Imported Upstream version 5.2.5 upstream/5.2.5
authorDongHun Kwak <dh0128.kwak@samsung.com>
Tue, 22 Dec 2020 23:14:28 +0000 (08:14 +0900)
committerDongHun Kwak <dh0128.kwak@samsung.com>
Tue, 22 Dec 2020 23:14:28 +0000 (08:14 +0900)
207 files changed:
ABOUT-NLS
ChangeLog
Doxyfile.in
INSTALL
INSTALL.generic
Makefile.am
Makefile.in
NEWS
README
THANKS
aclocal.m4
autogen.sh
build-aux/compile
build-aux/config.guess
build-aux/config.rpath
build-aux/config.sub
build-aux/depcomp
build-aux/install-sh
build-aux/ltmain.sh
build-aux/missing
config.h.in
configure
configure.ac
debug/Makefile.in
doc/man/pdf-a4/lzmainfo-a4.pdf
doc/man/pdf-a4/xz-a4.pdf
doc/man/pdf-a4/xzdec-a4.pdf
doc/man/pdf-a4/xzdiff-a4.pdf
doc/man/pdf-a4/xzgrep-a4.pdf
doc/man/pdf-a4/xzless-a4.pdf
doc/man/pdf-a4/xzmore-a4.pdf
doc/man/pdf-letter/lzmainfo-letter.pdf
doc/man/pdf-letter/xz-letter.pdf
doc/man/pdf-letter/xzdec-letter.pdf
doc/man/pdf-letter/xzdiff-letter.pdf
doc/man/pdf-letter/xzgrep-letter.pdf
doc/man/pdf-letter/xzless-letter.pdf
doc/man/pdf-letter/xzmore-letter.pdf
doc/man/txt/lzmainfo.txt
doc/man/txt/xz.txt
doc/man/txt/xzdec.txt
doc/man/txt/xzgrep.txt
dos/INSTALL.txt
dos/Makefile
dos/config.h
lib/Makefile.in
m4/ax_pthread.m4
m4/gettext.m4
m4/host-cpu-c-abi.m4 [new file with mode: 0644]
m4/iconv.m4
m4/intlmacosx.m4
m4/lib-ld.m4
m4/lib-link.m4
m4/lib-prefix.m4
m4/libtool.m4
m4/ltoptions.m4
m4/ltsugar.m4
m4/ltversion.m4
m4/lt~obsolete.m4
m4/nls.m4
m4/po.m4
m4/progtest.m4
m4/tuklib_integer.m4
m4/visibility.m4
po/LINGUAS
po/Makefile.in.in
po/Rules-quot
po/cs.gmo
po/cs.po
po/da.gmo [new file with mode: 0644]
po/da.po [new file with mode: 0644]
po/de.gmo
po/de.po
po/en@boldquot.header
po/en@quot.header
po/fi.gmo [new file with mode: 0644]
po/fi.po [new file with mode: 0644]
po/fr.gmo
po/fr.po
po/hu.gmo [new file with mode: 0644]
po/hu.po [new file with mode: 0644]
po/insert-header.sin
po/it.gmo
po/it.po
po/pl.gmo
po/pl.po
po/pt_BR.gmo [new file with mode: 0644]
po/pt_BR.po [new file with mode: 0644]
po/remove-potcdate.sin
po/vi.gmo
po/vi.po
po/xz.pot
po/zh_CN.gmo [new file with mode: 0644]
po/zh_CN.po [new file with mode: 0644]
po/zh_TW.gmo [new file with mode: 0644]
po/zh_TW.po [new file with mode: 0644]
po4a/.gitignore [new file with mode: 0644]
po4a/de.po [new file with mode: 0644]
po4a/man/de/lzmainfo.1 [new file with mode: 0644]
po4a/man/de/xz.1 [new file with mode: 0644]
po4a/man/de/xzdec.1 [new file with mode: 0644]
po4a/man/de/xzdiff.1 [new file with mode: 0644]
po4a/man/de/xzgrep.1 [new file with mode: 0644]
po4a/man/de/xzless.1 [new file with mode: 0644]
po4a/man/de/xzmore.1 [new file with mode: 0644]
po4a/po4a.conf [new file with mode: 0644]
po4a/update-po [new file with mode: 0755]
po4a/xz-man.pot [new file with mode: 0644]
src/Makefile.in
src/common/sysdefs.h
src/common/tuklib_cpucores.c
src/common/tuklib_exit.c
src/common/tuklib_integer.h
src/common/tuklib_mbstr.h
src/common/tuklib_mbstr_fw.c
src/common/tuklib_mbstr_width.c
src/liblzma/Makefile.am
src/liblzma/Makefile.in
src/liblzma/api/Makefile.in
src/liblzma/api/lzma.h
src/liblzma/api/lzma/block.h
src/liblzma/api/lzma/filter.h
src/liblzma/api/lzma/hardware.h
src/liblzma/api/lzma/lzma12.h
src/liblzma/api/lzma/version.h
src/liblzma/api/lzma/vli.h
src/liblzma/check/crc32_fast.c
src/liblzma/check/crc32_table.c
src/liblzma/check/crc64_fast.c
src/liblzma/check/crc64_table.c
src/liblzma/common/alone_decoder.c
src/liblzma/common/alone_encoder.c
src/liblzma/common/block_header_decoder.c
src/liblzma/common/block_header_encoder.c
src/liblzma/common/block_util.c
src/liblzma/common/common.c
src/liblzma/common/filter_common.h
src/liblzma/common/filter_decoder.h
src/liblzma/common/filter_flags_encoder.c
src/liblzma/common/hardware_physmem.c
src/liblzma/common/index.c
src/liblzma/common/memcmplen.h
src/liblzma/common/stream_encoder_mt.c
src/liblzma/common/stream_flags_decoder.c
src/liblzma/common/stream_flags_encoder.c
src/liblzma/common/vli_decoder.c
src/liblzma/delta/delta_decoder.c
src/liblzma/lz/lz_decoder.c
src/liblzma/lz/lz_encoder_hash.h
src/liblzma/lz/lz_encoder_mf.c
src/liblzma/lzma/fastpos.h
src/liblzma/lzma/fastpos_tablegen.c
src/liblzma/lzma/lzma2_decoder.c
src/liblzma/lzma/lzma_common.h
src/liblzma/lzma/lzma_decoder.c
src/liblzma/lzma/lzma_encoder.c
src/liblzma/lzma/lzma_encoder_optimum_normal.c
src/liblzma/lzma/lzma_encoder_private.h
src/liblzma/simple/arm.c
src/liblzma/simple/armthumb.c
src/liblzma/simple/ia64.c
src/liblzma/simple/powerpc.c
src/liblzma/simple/simple_coder.c
src/liblzma/simple/simple_decoder.c
src/liblzma/simple/simple_encoder.c
src/liblzma/simple/x86.c
src/lzmainfo/Makefile.in
src/scripts/Makefile.am
src/scripts/Makefile.in
src/scripts/xzdiff.in
src/scripts/xzgrep.in
src/scripts/xzless.in
src/scripts/xzmore.in
src/xz/Makefile.am
src/xz/Makefile.in
src/xz/args.c
src/xz/coder.c
src/xz/file_io.c
src/xz/file_io.h
src/xz/hardware.c
src/xz/main.c
src/xz/message.c
src/xz/message.h
src/xz/mytime.c
src/xz/mytime.h
src/xz/options.c
src/xz/private.h
src/xz/signals.c
src/xz/util.c
src/xz/xz.1
src/xzdec/Makefile.am
src/xzdec/Makefile.in
src/xzdec/xzdec.c
tests/Makefile.in
tests/create_compress_files.c
tests/test_block_header.c
tests/test_check.c
tests/test_stream_flags.c
tests/tests.h
windows/INSTALL-MSVC.txt
windows/build.bash
windows/vs2017/liblzma.vcxproj
windows/vs2017/liblzma_dll.vcxproj
windows/vs2019/config.h [new file with mode: 0644]
windows/vs2019/liblzma.vcxproj [new file with mode: 0644]
windows/vs2019/liblzma_dll.vcxproj [new file with mode: 0644]
windows/vs2019/xz_win.sln [new file with mode: 0644]

index b1de1b6..0a9d56d 100644 (file)
--- a/ABOUT-NLS
+++ b/ABOUT-NLS
@@ -1,1282 +1 @@
-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.
-
-1.1 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.  Installers may use special
-options at configuration time for changing the default behaviour.  The
-command:
-
-     ./configure --disable-nls
-
-will _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' library
-and will decide to use it.  If not, you may have to to use the
-`--with-libintl-prefix' option to tell `configure' where to look for it.
-
-   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.2 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.  If you happen to have the `LC_ALL' or some other
-`LC_xxx' environment variables set, you should unset them before
-setting `LANG', otherwise the setting of `LANG' will not have the
-desired effect.  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.3 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://translationproject.org/', in the "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 `coordinator@translationproject.org' 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.4 Available Packages
-======================
-
-Languages are not equally supported in all packages.  The following
-matrix shows the current state of internationalization, as of June
-2010.  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 an ar as ast az be be@latin bg bn_IN bs ca
-                        +--------------------------------------------------+
-     a2ps               |                       []                      [] |
-     aegis              |                                                  |
-     ant-phone          |                                                  |
-     anubis             |                                                  |
-     aspell             |                []                             [] |
-     bash               |                                                  |
-     bfd                |                                                  |
-     bibshelf           |                []                                |
-     binutils           |                                                  |
-     bison              |                                                  |
-     bison-runtime      |                []                                |
-     bluez-pin          | []             []                                |
-     bombono-dvd        |                                                  |
-     buzztard           |                                                  |
-     cflow              |                                                  |
-     clisp              |                                                  |
-     coreutils          |                                   []          [] |
-     cpio               |                                                  |
-     cppi               |                                                  |
-     cpplib             |                                               [] |
-     cryptsetup         |                                                  |
-     dfarc              |                                                  |
-     dialog             |                             []                [] |
-     dico               |                                                  |
-     diffutils          |                                               [] |
-     dink               |                                                  |
-     doodle             |                                                  |
-     e2fsprogs          |                                               [] |
-     enscript           |                                               [] |
-     exif               |                                                  |
-     fetchmail          |                                               [] |
-     findutils          |                                   []             |
-     flex               |                                               [] |
-     freedink           |                                                  |
-     gas                |                                                  |
-     gawk               |                []                             [] |
-     gcal               |                                               [] |
-     gcc                |                                                  |
-     gettext-examples   | []             []                 []          [] |
-     gettext-runtime    |                                   []          [] |
-     gettext-tools      |                                   []          [] |
-     gip                |                                   []             |
-     gjay               |                                                  |
-     gliv               |                                   []             |
-     glunarclock        |                []                 []             |
-     gnubiff            |                                                  |
-     gnucash            |                                               [] |
-     gnuedu             |                                                  |
-     gnulib             |                                                  |
-     gnunet             |                                                  |
-     gnunet-gtk         |                                                  |
-     gnutls             |                                                  |
-     gold               |                                                  |
-     gpe-aerial         |                                                  |
-     gpe-beam           |                                                  |
-     gpe-bluetooth      |                                                  |
-     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               |                                                  |
-     grub               |                []                             [] |
-     gsasl              |                                                  |
-     gss                |                                                  |
-     gst-plugins-bad    |                                   []             |
-     gst-plugins-base   |                                   []             |
-     gst-plugins-good   |                                   []             |
-     gst-plugins-ugly   |                                   []             |
-     gstreamer          | []                                []          [] |
-     gtick              |                                                  |
-     gtkam              |                       []                         |
-     gtkorphan          |                                   []             |
-     gtkspell           | []             []     []                         |
-     gutenprint         |                                                  |
-     hello              |                                   []             |
-     help2man           |                                                  |
-     hylafax            |                                                  |
-     idutils            |                                                  |
-     indent             |                                   []          [] |
-     iso_15924          |                                                  |
-     iso_3166           | []          []        []          []  []   [] [] |
-     iso_3166_2         |                                                  |
-     iso_4217           |                                                  |
-     iso_639            |             [] []     []              []         |
-     iso_639_3          |                                                  |
-     jwhois             |                                                  |
-     kbd                |                                                  |
-     keytouch           |                                               [] |
-     keytouch-editor    |                                                  |
-     keytouch-keyboa... |                                               [] |
-     klavaro            |          []                                      |
-     latrine            |                                                  |
-     ld                 |                                   []             |
-     leafpad            |                                   []          [] |
-     libc               |                                   []          [] |
-     libexif            |                       ()                         |
-     libextractor       |                                                  |
-     libgnutls          |                                                  |
-     libgpewidget       |                                                  |
-     libgpg-error       |                                                  |
-     libgphoto2         |                                                  |
-     libgphoto2_port    |                                                  |
-     libgsasl           |                                                  |
-     libiconv           |                                   []             |
-     libidn             |                                                  |
-     lifelines          |                                                  |
-     liferea            |                             []                [] |
-     lilypond           |                                                  |
-     linkdr             |          []                                      |
-     lordsawar          |                                                  |
-     lprng              |                                                  |
-     lynx               |                                               [] |
-     m4                 |                                                  |
-     mailfromd          |                                                  |
-     mailutils          |                                                  |
-     make               |                                                  |
-     man-db             |                                                  |
-     man-db-manpages    |                                                  |
-     minicom            |                                                  |
-     mkisofs            |                                                  |
-     myserver           |                                                  |
-     nano               |                                   []          [] |
-     opcodes            |                                                  |
-     parted             |                                                  |
-     pies               |                                                  |
-     popt               |                                                  |
-     psmisc             |                                                  |
-     pspp               |                                               [] |
-     pwdutils           |                                                  |
-     radius             |                                               [] |
-     recode             |                       []                      [] |
-     rosegarden         |                                                  |
-     rpm                |                                                  |
-     rush               |                                                  |
-     sarg               |                                                  |
-     screem             |                                                  |
-     scrollkeeper       |                    [] []                      [] |
-     sed                |                []                             [] |
-     sharutils          |                                   []          [] |
-     shishi             |                                                  |
-     skencil            |                                                  |
-     solfege            |                                                  |
-     solfege-manual     |                                                  |
-     soundtracker       |                                                  |
-     sp                 |                                                  |
-     sysstat            |                                                  |
-     tar                |                                   []             |
-     texinfo            |                                                  |
-     tin                |                                                  |
-     unicode-han-tra... |                                                  |
-     unicode-transla... |                                                  |
-     util-linux-ng      |                                               [] |
-     vice               |                                                  |
-     vmm                |                                                  |
-     vorbis-tools       |                                                  |
-     wastesedge         |                                                  |
-     wdiff              |                                                  |
-     wget               |                       []                      [] |
-     wyslij-po          |                                                  |
-     xchat              |                []     []          []          [] |
-     xdg-user-dirs      | []    []    [] []     []    []    []  []      [] |
-     xkeyboard-config   |                                   []          [] |
-                        +--------------------------------------------------+
-                          af am an ar as ast az be be@latin bg bn_IN bs ca
-                           6  0  1  2  3 19   1 10     3    28   3    1 38
-
-                          crh cs da  de  el en en_GB en_ZA eo es et eu fa
-                        +-------------------------------------------------+
-     a2ps               |     [] []  []  []     []            [] []       |
-     aegis              |        []  []                       []          |
-     ant-phone          |        []  ()                                   |
-     anubis             |        []  []                                   |
-     aspell             |     [] []  []         []            []          |
-     bash               |     []                           [] []          |
-     bfd                |                                     []          |
-     bibshelf           |        []  []                       []          |
-     binutils           |                                     []          |
-     bison              |            []  []                               |
-     bison-runtime      |        []  []  []                      []       |
-     bluez-pin          |     [] []  []  []                [] []          |
-     bombono-dvd        |        []                                       |
-     buzztard           |     [] []  []                                   |
-     cflow              |        []  []                                   |
-     clisp              |        []  []     []                []          |
-     coreutils          |     [] []  []                          []       |
-     cpio               |                                                 |
-     cppi               |                                                 |
-     cpplib             |        []  []                       []          |
-     cryptsetup         |            []                                   |
-     dfarc              |        []  []                       []          |
-     dialog             |        []  []                    [] []    []    |
-     dico               |                                                 |
-     diffutils          |     [] []  []  []                [] []          |
-     dink               |        []  []                       []          |
-     doodle             |            []                                   |
-     e2fsprogs          |     []     []                       []          |
-     enscript           |        []  []         []                        |
-     exif               |     () []  []                                   |
-     fetchmail          |     [] []  ()  []     []            []          |
-     findutils          |     [] []  []                                   |
-     flex               |            []                       []          |
-     freedink           |        []  []                       []          |
-     gas                |                                     []          |
-     gawk               |        []  []                       []          |
-     gcal               |                                     []          |
-     gcc                |            []                       []          |
-     gettext-examples   |            []  []                [] []          |
-     gettext-runtime    |        []  []                    [] []          |
-     gettext-tools      |            []                       []    []    |
-     gip                |        []  []                       []    []    |
-     gjay               |            []                                   |
-     gliv               |     [] []  []                                   |
-     glunarclock        |        []  []                                   |
-     gnubiff            |            ()                                   |
-     gnucash            |     []     ()  ()     ()            ()          |
-     gnuedu             |        []                           []          |
-     gnulib             |            []                       []          |
-     gnunet             |                                                 |
-     gnunet-gtk         |        []                                       |
-     gnutls             |     []     []                                   |
-     gold               |                                     []          |
-     gpe-aerial         |     [] []  []                       []          |
-     gpe-beam           |     [] []  []                       []          |
-     gpe-bluetooth      |        []  []                                   |
-     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               |     []                                          |
-     grub               |        []  []                                   |
-     gsasl              |            []                                   |
-     gss                |                                                 |
-     gst-plugins-bad    |     [] []  []                       []    []    |
-     gst-plugins-base   |     [] []  []                       []    []    |
-     gst-plugins-good   |     [] []  []  []                   []    []    |
-     gst-plugins-ugly   |     [] []  []  []                   []    []    |
-     gstreamer          |     [] []  []                       []    []    |
-     gtick              |        []  ()                    []             |
-     gtkam              |     [] []  ()                    [] []          |
-     gtkorphan          |     [] []  []                    []             |
-     gtkspell           |     [] []  []  []                [] []    []    |
-     gutenprint         |        []  []         []                        |
-     hello              |        []  []                    [] []          |
-     help2man           |            []                                   |
-     hylafax            |            []                       []          |
-     idutils            |        []  []                                   |
-     indent             |     [] []  []                    [] [] [] []    |
-     iso_15924          |        []      ()                [] []          |
-     iso_3166           | []  [] []  []  ()                [] [] [] ()    |
-     iso_3166_2         |                ()                               |
-     iso_4217           |     [] []  []  ()                   [] []       |
-     iso_639            | []  [] []  []  ()                [] []          |
-     iso_639_3          | []                                              |
-     jwhois             |                                     []          |
-     kbd                |     [] []  []  []                   []          |
-     keytouch           |        []  []                                   |
-     keytouch-editor    |        []  []                                   |
-     keytouch-keyboa... |        []                                       |
-     klavaro            |     [] []  []                    []             |
-     latrine            |        []  ()                                   |
-     ld                 |        []                           []          |
-     leafpad            |     [] []  []  []                   []    []    |
-     libc               |     [] []  []                       []          |
-     libexif            |        []  []         ()                        |
-     libextractor       |                                                 |
-     libgnutls          |     []                                          |
-     libgpewidget       |        []  []                                   |
-     libgpg-error       |     []     []                                   |
-     libgphoto2         |        []  ()                                   |
-     libgphoto2_port    |        []  ()                             []    |
-     libgsasl           |                                                 |
-     libiconv           |     [] []  []                    []    []       |
-     libidn             |     []     []                    []             |
-     lifelines          |        []  ()                                   |
-     liferea            |     []     []  []                   []    []    |
-     lilypond           |     []     []                       []          |
-     linkdr             |        []  []                       []          |
-     lordsawar          |        []                                       |
-     lprng              |                                                 |
-     lynx               |     [] []  []                          []       |
-     m4                 |     [] []  []  []                               |
-     mailfromd          |                                                 |
-     mailutils          |                                     []          |
-     make               |        []  []                       []          |
-     man-db             |                                                 |
-     man-db-manpages    |                                                 |
-     minicom            |     [] []  []                       []          |
-     mkisofs            |                                                 |
-     myserver           |                                                 |
-     nano               |            []                       []    []    |
-     opcodes            |            []                       []          |
-     parted             |     []     []                                   |
-     pies               |                                                 |
-     popt               |     [] []  []                    [] []          |
-     psmisc             |     []     []                             []    |
-     pspp               |                                     []          |
-     pwdutils           |        []                                       |
-     radius             |                                     []          |
-     recode             |     [] []  []  []                [] []          |
-     rosegarden         |     ()     ()                       ()          |
-     rpm                |        []  []                       []          |
-     rush               |                                                 |
-     sarg               |                                                 |
-     screem             |                                                 |
-     scrollkeeper       |     [] []  []         []            []          |
-     sed                |     []     []  []                [] [] []       |
-     sharutils          |        []  []                       [] []       |
-     shishi             |                                                 |
-     skencil            |        []  ()                       []          |
-     solfege            |            []                    []    []       |
-     solfege-manual     |                                  []    []       |
-     soundtracker       |        []  []                       []          |
-     sp                 |            []                                   |
-     sysstat            |        []  []                             []    |
-     tar                |     []     []                          [] []    |
-     texinfo            |            []                    [] []          |
-     tin                |            []                          []       |
-     unicode-han-tra... |                                                 |
-     unicode-transla... |                                                 |
-     util-linux-ng      |     [] []  []                       []          |
-     vice               |        ()  ()                                   |
-     vmm                |            []                                   |
-     vorbis-tools       |     []                           []             |
-     wastesedge         |        []                                       |
-     wdiff              |            []                       []          |
-     wget               |     []     []                          []       |
-     wyslij-po          |                                                 |
-     xchat              |     []     []  []                   [] []       |
-     xdg-user-dirs      | []  [] []  []  []                [] [] [] []    |
-     xkeyboard-config   | []  [] []  []                    [] []          |
-                        +-------------------------------------------------+
-                          crh cs da  de  el en en_GB en_ZA eo es et eu fa
-                           5  64 105 117 18  1   8     0   28 89 18 19  0
-
-                          fi  fr  ga gl gu he hi hr hu hy id  is it ja ka kn
-                        +----------------------------------------------------+
-     a2ps               | []  []                          []        []       |
-     aegis              |     []                                 []          |
-     ant-phone          |     []                                 []          |
-     anubis             | []  []                          []     []          |
-     aspell             |     []  []                      []     []          |
-     bash               | []  []                          []        []       |
-     bfd                | []  []                          []                 |
-     bibshelf           | []  []  []                      []     []          |
-     binutils           | []  []                          []                 |
-     bison              | []  []  []                      []                 |
-     bison-runtime      | []  []  []                      []     [] []       |
-     bluez-pin          | []  []  []                [] [] []  []    []       |
-     bombono-dvd        | []                                                 |
-     buzztard           |                                 []                 |
-     cflow              | []      []                      []                 |
-     clisp              |     []                                             |
-     coreutils          |     []  []                []    []     []          |
-     cpio               | []  []  []                      []                 |
-     cppi               | []  []                                             |
-     cpplib             | []  []                          []                 |
-     cryptsetup         |     []                          []     []          |
-     dfarc              | []  []                                 []          |
-     dialog             |     []  [] []                   []  [] [] []       |
-     dico               |                                                    |
-     diffutils          | []  []  [] []    []       []    []     [] []       |
-     dink               |     []                                             |
-     doodle             |         []                             []          |
-     e2fsprogs          |     []                          []                 |
-     enscript           |     []  []             []       []                 |
-     exif               | []  []                          []  [] [] []       |
-     fetchmail          |     []                          []     [] []       |
-     findutils          | []  []  []                []    []     []          |
-     flex               | []  []  []                                         |
-     freedink           | []  []                          []                 |
-     gas                |     []                          []                 |
-     gawk               |     []  []       []             []     () []       |
-     gcal               |     []                                             |
-     gcc                |                                 []                 |
-     gettext-examples   | []  []  []                []    []     [] []       |
-     gettext-runtime    | []  []  []                      []     [] []       |
-     gettext-tools      |     []                          []     [] []       |
-     gip                | []  []  [] []                   []        []       |
-     gjay               | []                                                 |
-     gliv               | []  ()                                             |
-     glunarclock        | []      []                []    []                 |
-     gnubiff            |     ()                          []     ()          |
-     gnucash            | ()  ()           ()       ()           () []       |
-     gnuedu             |     []                                 []          |
-     gnulib             | []  []  []                []           [] []       |
-     gnunet             |                                                    |
-     gnunet-gtk         |     []                                             |
-     gnutls             |     []                                 []          |
-     gold               | []                              []                 |
-     gpe-aerial         | []  []                          []                 |
-     gpe-beam           | []  []                          []        []       |
-     gpe-bluetooth      | []                              []     [] []       |
-     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               | []                                     []          |
-     grub               | []                        []    []     []          |
-     gsasl              | []  []  []                      []     []          |
-     gss                | []  []  []                      []     []          |
-     gst-plugins-bad    | []  []                    []    []     [] []       |
-     gst-plugins-base   | []  []                    []    []     [] []       |
-     gst-plugins-good   | []  []                    []    []     [] []       |
-     gst-plugins-ugly   | []  []                    []    []     [] []       |
-     gstreamer          | []  []                    []    []     []          |
-     gtick              | []  []  []                      []     []          |
-     gtkam              |     []                    []    []     [] []       |
-     gtkorphan          |     []                          []     []          |
-     gtkspell           | []  []  [] []             [] [] []     [] []       |
-     gutenprint         | []  []                    []           []          |
-     hello              | []      []                      []                 |
-     help2man           | []  []                                             |
-     hylafax            |                                 []                 |
-     idutils            | []  []  []                []    []     []          |
-     indent             | []  []  [] []             []    []     [] []       |
-     iso_15924          | []  ()                          []     []          |
-     iso_3166           | []  ()  [] [] [] [] [] [] []    []     [] []       |
-     iso_3166_2         |     ()                    []    []     []          |
-     iso_4217           | []  ()                    []    []     [] []       |
-     iso_639            | []  ()  []    []          []    []     [] []    [] |
-     iso_639_3          |     ()                                 []       [] |
-     jwhois             | []  []                    []    []     []          |
-     kbd                |     []                          []                 |
-     keytouch           | []  []  []                []    []     []          |
-     keytouch-editor    | []      []                []    []     []          |
-     keytouch-keyboa... | []      []                []    []     []          |
-     klavaro            |            []             []                       |
-     latrine            | []                              []     []          |
-     ld                 | []  []  []                      []                 |
-     leafpad            | []  []  []       []       []    []     [] ()       |
-     libc               | []  []     []                   []        []       |
-     libexif            |                                        []          |
-     libextractor       |                                                    |
-     libgnutls          |     []                                 []          |
-     libgpewidget       | []      []                      []        []       |
-     libgpg-error       |     []                                 []          |
-     libgphoto2         |     []                                 [] []       |
-     libgphoto2_port    |     []                                 [] []       |
-     libgsasl           | []  []  []                      []     []          |
-     libiconv           | []  []  []                      []     [] []       |
-     libidn             | []  []                          []     []          |
-     lifelines          |     ()                                             |
-     liferea            |     []                    []           [] []       |
-     lilypond           | []  []                                             |
-     linkdr             | []               []    [] []           []          |
-     lordsawar          |                                                    |
-     lprng              |                                 []                 |
-     lynx               |     []                    []    []     [] []       |
-     m4                 | []  []  [] []                   []        []       |
-     mailfromd          |                                                    |
-     mailutils          |     []                          []                 |
-     make               | []  []  [] []    []    []       []     [] []       |
-     man-db             |                                 []     []          |
-     man-db-manpages    |                                 []                 |
-     minicom            | []  []                    []    []        []       |
-     mkisofs            | []  []                          []     []          |
-     myserver           |                                                    |
-     nano               | []  []  [] []             []           []          |
-     opcodes            | []  []  []                      []                 |
-     parted             |     []                          []     [] []       |
-     pies               |                                                    |
-     popt               | []  []  [] []             []    []  [] [] []       |
-     psmisc             | []  []                          []                 |
-     pspp               |                                                    |
-     pwdutils           |     []                          []                 |
-     radius             |     []                          []                 |
-     recode             | []  []  [] []    []       []    []     []          |
-     rosegarden         | ()  ()                          ()     () ()       |
-     rpm                |                                 []        []       |
-     rush               |                                                    |
-     sarg               |     []                                             |
-     screem             |                                        [] []       |
-     scrollkeeper       | []                        []    []     []          |
-     sed                | []  []  [] []             []    []     [] []       |
-     sharutils          | []  []  []                []    []     [] []       |
-     shishi             |     []                                             |
-     skencil            |     []                                             |
-     solfege            | []  []     []                          []          |
-     solfege-manual     |     []     []                                      |
-     soundtracker       |     []                                 []          |
-     sp                 |     []                                    ()       |
-     sysstat            | []  []                          []     [] []       |
-     tar                | []  []  []                []    []     [] []       |
-     texinfo            |     []                          []     [] []       |
-     tin                |     []                                             |
-     unicode-han-tra... |                                                    |
-     unicode-transla... |     []  []                                         |
-     util-linux-ng      | []  []                    []    []     [] []       |
-     vice               |     ()                    ()           ()          |
-     vmm                |     []                                             |
-     vorbis-tools       |                                 []                 |
-     wastesedge         |     ()                                 ()          |
-     wdiff              | []                                                 |
-     wget               | []  []  []             [] []    []     [] []       |
-     wyslij-po          | []  []                          []                 |
-     xchat              | []  []        []    []    []    []     [] []    [] |
-     xdg-user-dirs      | []  []  [] [] [] [] []    []    []  [] [] []    [] |
-     xkeyboard-config   | []  []                    []    []     []          |
-                        +----------------------------------------------------+
-                          fi  fr  ga gl gu he hi hr hu hy id  is it ja ka kn
-                          105 121 53 20  4  8  3  5 53  2 120  5 84 67  0  4
-
-                          ko ku ky lg lt lv mk ml mn mr ms mt nb nds ne
-                        +-----------------------------------------------+
-     a2ps               |                               []              |
-     aegis              |                                               |
-     ant-phone          |                                               |
-     anubis             |                               []    []        |
-     aspell             |                         []                    |
-     bash               |                                               |
-     bfd                |                                               |
-     bibshelf           |                []             []              |
-     binutils           |                                               |
-     bison              |                               []              |
-     bison-runtime      |       []    [] []             []    []        |
-     bluez-pin          |    [] []    [] []             []              |
-     bombono-dvd        |                                               |
-     buzztard           |                                               |
-     cflow              |                                               |
-     clisp              |                                               |
-     coreutils          |          []                                   |
-     cpio               |                                               |
-     cppi               |                                               |
-     cpplib             |                                               |
-     cryptsetup         |                                               |
-     dfarc              |                   []                          |
-     dialog             |    []       [] []             []    []        |
-     dico               |                                               |
-     diffutils          |                []             []              |
-     dink               |                                               |
-     doodle             |                                               |
-     e2fsprogs          |                                               |
-     enscript           |                                               |
-     exif               |                []                             |
-     fetchmail          |                                               |
-     findutils          |                                               |
-     flex               |                                               |
-     freedink           |                                     []        |
-     gas                |                                               |
-     gawk               |                                               |
-     gcal               |                                               |
-     gcc                |                                               |
-     gettext-examples   |       []       []             [] []           |
-     gettext-runtime    | []                                            |
-     gettext-tools      | []                                            |
-     gip                |                []             []              |
-     gjay               |                                               |
-     gliv               |                                               |
-     glunarclock        |                []                             |
-     gnubiff            |                                               |
-     gnucash            | ()          ()                      ()     () |
-     gnuedu             |                                               |
-     gnulib             |                                               |
-     gnunet             |                                               |
-     gnunet-gtk         |                                               |
-     gnutls             |                               []              |
-     gold               |                                               |
-     gpe-aerial         |                []                             |
-     gpe-beam           |                []                             |
-     gpe-bluetooth      |                []                []           |
-     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               |                                               |
-     grub               |                                               |
-     gsasl              |                                               |
-     gss                |                                               |
-     gst-plugins-bad    |             [] []                [] []        |
-     gst-plugins-base   |             [] []                             |
-     gst-plugins-good   |                []                []           |
-     gst-plugins-ugly   |             [] []             [] [] []        |
-     gstreamer          |                                               |
-     gtick              |                                               |
-     gtkam              |                                     []        |
-     gtkorphan          |                []                      []     |
-     gtkspell           |       []    [] []       []    []    [] []     |
-     gutenprint         |                                               |
-     hello              | []             []             []              |
-     help2man           |                                               |
-     hylafax            |                                               |
-     idutils            |                                               |
-     indent             |                                               |
-     iso_15924          |             [] []                             |
-     iso_3166           | [] []       () [] [] []    []       []        |
-     iso_3166_2         |                                               |
-     iso_4217           |             []                      []        |
-     iso_639            |                      []    []                 |
-     iso_639_3          |                            []                 |
-     jwhois             |                []                             |
-     kbd                |                                               |
-     keytouch           |                []                             |
-     keytouch-editor    |                []                             |
-     keytouch-keyboa... |                []                             |
-     klavaro            |                                     []        |
-     latrine            |                []                             |
-     ld                 |                                               |
-     leafpad            | []          [] []                             |
-     libc               | []                                            |
-     libexif            |                                               |
-     libextractor       |                                               |
-     libgnutls          |                               []              |
-     libgpewidget       |                []             []              |
-     libgpg-error       |                                               |
-     libgphoto2         |                                               |
-     libgphoto2_port    |                                               |
-     libgsasl           |                                               |
-     libiconv           |                                               |
-     libidn             |                                               |
-     lifelines          |                                               |
-     liferea            |                                               |
-     lilypond           |                                               |
-     linkdr             |                                               |
-     lordsawar          |                                               |
-     lprng              |                                               |
-     lynx               |                                               |
-     m4                 |                                               |
-     mailfromd          |                                               |
-     mailutils          |                                               |
-     make               | []                                            |
-     man-db             |                                               |
-     man-db-manpages    |                                               |
-     minicom            |                                     []        |
-     mkisofs            |                                               |
-     myserver           |                                               |
-     nano               |                               []    []        |
-     opcodes            |                                               |
-     parted             |                                               |
-     pies               |                                               |
-     popt               | []             []                   []        |
-     psmisc             |                                               |
-     pspp               |                                               |
-     pwdutils           |                                               |
-     radius             |                                               |
-     recode             |                                               |
-     rosegarden         |                                               |
-     rpm                |                                               |
-     rush               |                                               |
-     sarg               |                                               |
-     screem             |                                               |
-     scrollkeeper       |                                     []     [] |
-     sed                |                                               |
-     sharutils          |                                               |
-     shishi             |                                               |
-     skencil            |                                               |
-     solfege            |                                     []        |
-     solfege-manual     |                                               |
-     soundtracker       |                                               |
-     sp                 |                                               |
-     sysstat            |                []                             |
-     tar                |       []                                      |
-     texinfo            |                                     []        |
-     tin                |                                               |
-     unicode-han-tra... |                                               |
-     unicode-transla... |                                               |
-     util-linux-ng      |                                               |
-     vice               |                                               |
-     vmm                |                                               |
-     vorbis-tools       |                                               |
-     wastesedge         |                                               |
-     wdiff              |                                               |
-     wget               |             []                                |
-     wyslij-po          |                                               |
-     xchat              | []             [] []                          |
-     xdg-user-dirs      | [] []       [] [] []       []       [] []     |
-     xkeyboard-config   | []    []    []                                |
-                        +-----------------------------------------------+
-                          ko ku ky lg lt lv mk ml mn mr ms mt nb nds ne
-                          20  5 10  1 13 48  4  2  2  4 24 10 20  3   1
-
-                          nl  nn or pa pl  ps pt pt_BR ro ru rw sk sl sq sr
-                        +---------------------------------------------------+
-     a2ps               | []           []     []  []   [] []       []    [] |
-     aegis              | []                      []      []                |
-     ant-phone          |                         []   []                   |
-     anubis             | []           []                 []                |
-     aspell             | []                           [] []    [] []       |
-     bash               | []                                    []          |
-     bfd                |                                 []                |
-     bibshelf           | []  []                                            |
-     binutils           |                                 []    []          |
-     bison              | []           []                 []                |
-     bison-runtime      | []           []     []  []   [] []       []       |
-     bluez-pin          | []           []         []   [] []    [] []    [] |
-     bombono-dvd        |     []                          ()                |
-     buzztard           | []  []                                            |
-     cflow              |              []                                   |
-     clisp              | []                              []                |
-     coreutils          | []           []     []  []      []       []       |
-     cpio               | []           []                 []                |
-     cppi               |              []                                   |
-     cpplib             | []                                                |
-     cryptsetup         | []                                                |
-     dfarc              |              []                                   |
-     dialog             | []           []         []      []                |
-     dico               |              []                                   |
-     diffutils          | []           []         []   [] []             [] |
-     dink               | ()                                                |
-     doodle             | []                                          []    |
-     e2fsprogs          | []           []                                   |
-     enscript           | []                      []   [] []       []       |
-     exif               | []           []              [] ()    []          |
-     fetchmail          | []           []                 []          []    |
-     findutils          | []           []     []          []       []       |
-     flex               | []           []         []   [] []                |
-     freedink           | []           []                                   |
-     gas                |                                                   |
-     gawk               | []           []         []   []                   |
-     gcal               |                                                   |
-     gcc                |                                                [] |
-     gettext-examples   | []           []     []       [] []    [] []    [] |
-     gettext-runtime    | []  []       []     []       [] []    [] []    [] |
-     gettext-tools      |              []              [] []    [] []    [] |
-     gip                | []           []                 []    []       [] |
-     gjay               |                                                   |
-     gliv               | []           []         []   [] []    []          |
-     glunarclock        | []                      []   []       []       [] |
-     gnubiff            | []                           ()                   |
-     gnucash            | []           ()         ()      ()                |
-     gnuedu             | []                                                |
-     gnulib             | []           []                 []       []       |
-     gnunet             |                                                   |
-     gnunet-gtk         |                                                   |
-     gnutls             | []           []                                   |
-     gold               |                                                   |
-     gpe-aerial         | []                  []  []   [] []       []    [] |
-     gpe-beam           | []                  []  []   [] []       []    [] |
-     gpe-bluetooth      | []                      []                        |
-     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               | []           []                 []    []          |
-     grub               | []           []                 []                |
-     gsasl              | []           []                       []       [] |
-     gss                |              []              []       []          |
-     gst-plugins-bad    | []           []         []      []    []    []    |
-     gst-plugins-base   | []           []         []      []    []          |
-     gst-plugins-good   | []           []         []      []    []          |
-     gst-plugins-ugly   | []           []         []      []    [] []       |
-     gstreamer          | []           []         []      []    []          |
-     gtick              | []                              []    []          |
-     gtkam              | []        [] []         []      []    []          |
-     gtkorphan          | []                                                |
-     gtkspell           | []           []     []  []   [] []    [] [] [] [] |
-     gutenprint         | []                              []                |
-     hello              | []           []                       [] []       |
-     help2man           |              []                 []                |
-     hylafax            | []                                                |
-     idutils            | []           []         []   [] []                |
-     indent             | []           []         []   [] []    []       [] |
-     iso_15924          | []           []                 []       []       |
-     iso_3166           | []  [] [] [] []     ()  []   [] [] [] [] [] [] [] |
-     iso_3166_2         | []           []                          []       |
-     iso_4217           | []  []       []     []          [] []    []    [] |
-     iso_639            | []     [] [] []                 [] [] [] []    [] |
-     iso_639_3          |        [] []                                      |
-     jwhois             | []           []         []   []                   |
-     kbd                | []           []              []                   |
-     keytouch           | []           []                       []          |
-     keytouch-editor    | []           []                       []          |
-     keytouch-keyboa... | []           []                       []          |
-     klavaro            | []                      []                        |
-     latrine            |              []                 []                |
-     ld                 |                                                   |
-     leafpad            | []  []       []     []  []      []    [] []    [] |
-     libc               | []           []                 []    []          |
-     libexif            | []           []         ()            []          |
-     libextractor       |                                                   |
-     libgnutls          | []           []                                   |
-     libgpewidget       | []           []                          []       |
-     libgpg-error       |              []              []                   |
-     libgphoto2         | []           []                                   |
-     libgphoto2_port    | []           []         []      []    []          |
-     libgsasl           | []           []              []       []       [] |
-     libiconv           | []           []                       [] []    [] |
-     libidn             | []           []                                   |
-     lifelines          | []           []                                   |
-     liferea            | []           []     []  []   [] ()    ()    []    |
-     lilypond           | []                                                |
-     linkdr             | []                  []          []                |
-     lordsawar          |                                                   |
-     lprng              |              []                                   |
-     lynx               | []                      []      []                |
-     m4                 | []           []         []   [] []                |
-     mailfromd          |              []                                   |
-     mailutils          |              []                                   |
-     make               | []           []         []      []                |
-     man-db             | []           []                 []                |
-     man-db-manpages    | []           []                 []                |
-     minicom            |              []         []   [] []                |
-     mkisofs            | []           []                 []                |
-     myserver           |                                                   |
-     nano               | []           []         []      []                |
-     opcodes            | []                           []                   |
-     parted             | []           []                 []    []          |
-     pies               |              []                                   |
-     popt               | []           []     []          []                |
-     psmisc             | []           []                 []                |
-     pspp               | []                      []                        |
-     pwdutils           |              []                                   |
-     radius             | []           []                 []                |
-     recode             | []           []     []  []   [] []    [] []       |
-     rosegarden         |              ()                 ()                |
-     rpm                | []           []     []                            |
-     rush               | []           []                                   |
-     sarg               |                                                   |
-     screem             |                                                   |
-     scrollkeeper       | []  []       []              [] []    []    [] [] |
-     sed                | []           []     []  []   [] []    [] []    [] |
-     sharutils          | []           []                 []             [] |
-     shishi             |              []                                   |
-     skencil            |                     []  []                        |
-     solfege            | []           []         []      []                |
-     solfege-manual     | []           []         []                        |
-     soundtracker       |                                       []          |
-     sp                 |                                                   |
-     sysstat            | []           []         []      []                |
-     tar                | []           []                 []       []       |
-     texinfo            | []           []              [] []                |
-     tin                |                                 []                |
-     unicode-han-tra... |                                                   |
-     unicode-transla... |                                                   |
-     util-linux-ng      | []           []         []      []       []       |
-     vice               | []                                                |
-     vmm                | []                                                |
-     vorbis-tools       | []           []                                   |
-     wastesedge         | []                                                |
-     wdiff              | []           []                                   |
-     wget               | []           []     []  []      []    [] []       |
-     wyslij-po          | []  []       []                                   |
-     xchat              | []        [] []     []          []    [] [] [] [] |
-     xdg-user-dirs      | []  [] [] [] []  [] []  []   [] []    [] [] [] [] |
-     xkeyboard-config   | []           []                 []                |
-                        +---------------------------------------------------+
-                          nl  nn or pa pl  ps pt pt_BR ro ru rw sk sl sq sr
-                          135 10  4  7 105  1 29  62   47 91  3 54 46  9 37
-
-                          sv  sw ta te tg th tr uk vi  wa zh_CN zh_HK zh_TW
-                        +---------------------------------------------------+
-     a2ps               | []              [] [] [] []                       | 27
-     aegis              |                          []                       |  9
-     ant-phone          | []                 []    []      []               |  9
-     anubis             | []                 [] [] []                       | 15
-     aspell             |                       [] []  []                   | 20
-     bash               | []                    [] []                       | 12
-     bfd                |                          []                       |  6
-     bibshelf           | []                       []      []               | 16
-     binutils           |                       [] []                       |  8
-     bison              | []                       []                       | 12
-     bison-runtime      | []              []    [] []      []          []   | 29
-     bluez-pin          | []              [] [] [] []  []  []          []   | 37
-     bombono-dvd        |                          []                       |  4
-     buzztard           |                          []                       |  7
-     cflow              |                       [] []      []               |  9
-     clisp              |                                                   | 10
-     coreutils          | []                    [] []      []               | 22
-     cpio               | []                 [] [] []      []          []   | 13
-     cppi               |                       [] []                       |  5
-     cpplib             | []                 [] [] []      []          []   | 14
-     cryptsetup         | []                       []                       |  7
-     dfarc              |                          []                       |  9
-     dialog             | []  []          []       []  []  []          []   | 30
-     dico               |                       []                          |  2
-     diffutils          | []                 [] [] []      []          []   | 30
-     dink               |                                                   |  4
-     doodle             | []                       []                       |  7
-     e2fsprogs          | []                 []    []                       | 11
-     enscript           | []                 [] [] []                       | 17
-     exif               | []                       []      []               | 16
-     fetchmail          |                    []    []      []               | 17
-     findutils          | []                 [] [] []      []               | 20
-     flex               | []                 []    []                  []   | 15
-     freedink           |                          []                       | 10
-     gas                |                    []                             |  4
-     gawk               | []                 []    []      []               | 18
-     gcal               | []                 []                             |  5
-     gcc                | []                 []            []               |  7
-     gettext-examples   | []                 [] [] []      []    []    []   | 34
-     gettext-runtime    | []                 [] [] []      []    []    []   | 29
-     gettext-tools      | []                 [] [] []      []          []   | 22
-     gip                | []                       []      []          []   | 22
-     gjay               |                          []                       |  3
-     gliv               | []                 []    []                       | 14
-     glunarclock        | []                       []  []  []          []   | 19
-     gnubiff            | []                       []                       |  4
-     gnucash            |                    () [] ()      []          ()   | 10
-     gnuedu             |                          []                  []   |  7
-     gnulib             | []                    [] []      []               | 16
-     gnunet             |                          []                       |  1
-     gnunet-gtk         | []                 []    []                       |  5
-     gnutls             | []                       []      []               | 10
-     gold               |                          []                       |  4
-     gpe-aerial         | []                       []      []               | 18
-     gpe-beam           | []                       []      []               | 19
-     gpe-bluetooth      | []                       []      []               | 13
-     gpe-calendar       | []                       []  []  []               | 12
-     gpe-clock          | []                 []    []  []  []               | 28
-     gpe-conf           | []                       []  []  []               | 20
-     gpe-contacts       | []                       []      []               | 17
-     gpe-edit           | []                       []      []               | 12
-     gpe-filemanager    | []                       []  []  []               | 16
-     gpe-go             | []                 []    []  []  []               | 25
-     gpe-login          | []                       []      []               | 11
-     gpe-ownerinfo      | []                 []    []      []          []   | 25
-     gpe-package        | []                       []      []               | 13
-     gpe-sketchbook     | []                       []      []               | 20
-     gpe-su             | []                 []    []  []  []               | 30
-     gpe-taskmanager    | []                 []    []  []  []               | 29
-     gpe-timesheet      | []                 []    []      []          []   | 25
-     gpe-today          | []                 []    []  []  []          []   | 30
-     gpe-todo           | []                       []  []  []               | 17
-     gphoto2            | []                    [] []      []          []   | 24
-     gprof              | []                 []    []                       | 15
-     gpsdrive           | []                       []      []               | 11
-     gramadoir          | []                       []      []               | 11
-     grep               |                 []       []      []               | 10
-     grub               | []                       []      []               | 14
-     gsasl              | []                       []      []          []   | 14
-     gss                | []                       []      []               | 11
-     gst-plugins-bad    | []                 []    []      []               | 26
-     gst-plugins-base   | []                 [] [] []      []               | 24
-     gst-plugins-good   | []                 []    []      []               | 24
-     gst-plugins-ugly   | []                 [] [] []      []               | 29
-     gstreamer          | []                    [] []      []               | 22
-     gtick              |                       [] []      []               | 13
-     gtkam              | []                       []      []               | 20
-     gtkorphan          | []                       []      []               | 14
-     gtkspell           | []              [] [] [] []  []  []    []    []   | 45
-     gutenprint         | []                                                | 10
-     hello              | []              [] []    []      []          []   | 21
-     help2man           | []                       []                       |  7
-     hylafax            |                          []                       |  5
-     idutils            | []                 []    []      []               | 17
-     indent             | []                 [] [] []      []          []   | 30
-     iso_15924          |                 ()    [] ()      []          []   | 16
-     iso_3166           | []        []    () [] [] ()  []  []    []    ()   | 53
-     iso_3166_2         |                 ()    [] ()      []               |  9
-     iso_4217           | []              () [] [] ()      []    []         | 26
-     iso_639            | []     [] []    ()    [] ()  []  []    []    []   | 38
-     iso_639_3          |        []                ()                       |  8
-     jwhois             | []                 []    []      []          []   | 16
-     kbd                | []                 [] [] []      []               | 15
-     keytouch           | []                       []      []               | 16
-     keytouch-editor    | []                       []      []               | 14
-     keytouch-keyboa... | []                       []      []               | 14
-     klavaro            |                          []                       | 11
-     latrine            |                    []    []      []               | 10
-     ld                 | []                 []    []                  []   | 11
-     leafpad            | []                 [] [] []      []          []   | 33
-     libc               | []                 []    []      []          []   | 21
-     libexif            |                          []      ()               |  7
-     libextractor       |                          []                       |  1
-     libgnutls          | []                       []      []               |  9
-     libgpewidget       | []                       []      []               | 14
-     libgpg-error       | []                       []      []               |  9
-     libgphoto2         |                       [] []                       |  8
-     libgphoto2_port    | []                    [] []                  []   | 14
-     libgsasl           | []                       []      []               | 13
-     libiconv           | []                       []  []  []               | 21
-     libidn             | ()                       []      []               | 11
-     lifelines          | []                                                |  4
-     liferea            | []                 []            []               | 21
-     lilypond           |                          []                       |  7
-     linkdr             | []                 []    []      []          []   | 17
-     lordsawar          |                                                   |  1
-     lprng              |                          []                       |  3
-     lynx               | []                 [] [] []                       | 17
-     m4                 | []                       []      []          []   | 19
-     mailfromd          |                       [] []                       |  3
-     mailutils          |                          []                       |  5
-     make               | []                 []    []      []               | 21
-     man-db             | []                       []      []               |  8
-     man-db-manpages    |                                                   |  4
-     minicom            | []                       []                       | 16
-     mkisofs            |                          []      []               |  9
-     myserver           |                                                   |  0
-     nano               | []                       []      []          []   | 21
-     opcodes            | []                 []    []                       | 11
-     parted             | []                 [] [] []                  []   | 15
-     pies               |                       [] []                       |  3
-     popt               | []              [] []    []      []          []   | 27
-     psmisc             | []                       []                       | 11
-     pspp               |                                                   |  4
-     pwdutils           | []                       []                       |  6
-     radius             |                       [] []                       |  9
-     recode             | []                 []    []      []               | 28
-     rosegarden         | ()                                                |  0
-     rpm                | []                       []                  []   | 11
-     rush               |                       [] []                       |  4
-     sarg               |                                                   |  1
-     screem             |                          []                       |  3
-     scrollkeeper       | []                 [] [] []                  []   | 27
-     sed                | []                 []    []      []          []   | 30
-     sharutils          | []                 []    []      []          []   | 22
-     shishi             |                          []                       |  3
-     skencil            | []                       []                       |  7
-     solfege            | []                 []    []      []               | 16
-     solfege-manual     |                    []                             |  8
-     soundtracker       | []                 []    []                       |  9
-     sp                 |                    []                             |  3
-     sysstat            |                          []      []               | 15
-     tar                | []                 [] [] []      []          []   | 23
-     texinfo            | []                 [] [] []      []               | 17
-     tin                |                                                   |  4
-     unicode-han-tra... |                                                   |  0
-     unicode-transla... |                                                   |  2
-     util-linux-ng      | []                 [] [] []                       | 20
-     vice               | ()                 ()                             |  1
-     vmm                |                          []                       |  4
-     vorbis-tools       |                          []                       |  6
-     wastesedge         |                                                   |  2
-     wdiff              | []                       []                       |  7
-     wget               | []                 []    []      []          []   | 26
-     wyslij-po          |                       [] []                       |  8
-     xchat              | []              []    [] []      []          []   | 36
-     xdg-user-dirs      | []     [] []    [] [] [] []      []    []    []   | 63
-     xkeyboard-config   | []                    [] []                       | 22
-                        +---------------------------------------------------+
-       85 teams           sv  sw ta te tg th tr uk vi  wa zh_CN zh_HK zh_TW
-      178 domains         119  1  3  3  0 10 65 51 155 17  98     7    41    2618
-
-   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 June 2010 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://translationproject.org/extra/matrix.html'.
-
-1.5 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
-`coordinator@translationproject.org' to make the `.pot' files available
-to the translation teams.
-
+<https://www.gnu.org/software/gettext/manual/html_node/Users.html>
index 955b113..37c0d95 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
+commit 2327a461e1afce862c22269b80d3517801103c1b
+Author: Lasse Collin <lasse.collin@tukaani.org>
+Date:   2020-03-17 16:27:42 +0200
+
+    Bump version and soname for 5.2.5.
+
+ src/liblzma/Makefile.am        | 2 +-
+ src/liblzma/api/lzma/version.h | 2 +-
+ 2 files changed, 2 insertions(+), 2 deletions(-)
+
+commit 3be82d2f7dc882258caf0f0a69214e5916b2bdda
+Author: Lasse Collin <lasse.collin@tukaani.org>
+Date:   2020-03-17 16:26:04 +0200
+
+    Update NEWS for 5.2.5.
+
+ NEWS | 105 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+ 1 file changed, 105 insertions(+)
+
+commit ab3e57539c7337f0653b13b75dbc5d03ade9700e
+Author: Lasse Collin <lasse.collin@tukaani.org>
+Date:   2020-03-16 21:57:21 +0200
+
+    Translations: Rebuild cs.po to avoid incorrect fuzzy strings.
+    
+    "make dist" updates the .po files and the fuzzy strings would
+    result in multiple very wrong translations.
+
+ po/cs.po | 592 ++++++++++++++++++++++++++++++++++-----------------------------
+ 1 file changed, 322 insertions(+), 270 deletions(-)
+
+commit 3a6f38309dc5d44d8a63ebb337b6b2028561c93e
+Author: Lasse Collin <lasse.collin@tukaani.org>
+Date:   2020-03-16 20:01:37 +0200
+
+    README: Update outdated sections.
+
+ README | 21 +++++++++++----------
+ 1 file changed, 11 insertions(+), 10 deletions(-)
+
+commit 9cc0901798217e258e91c13cf6fda7ad42ba108c
+Author: Lasse Collin <lasse.collin@tukaani.org>
+Date:   2020-03-16 19:46:27 +0200
+
+    README: Mention that translatable strings will change after 5.2.x.
+
+ README | 74 +++---------------------------------------------------------------
+ 1 file changed, 3 insertions(+), 71 deletions(-)
+
+commit cc163574249f6a4a66f3dc09d6fe5a71bee24fab
+Author: Lasse Collin <lasse.collin@tukaani.org>
+Date:   2020-03-16 19:39:45 +0200
+
+    README: Mention that man pages can be translated.
+
+ README | 7 ++++---
+ 1 file changed, 4 insertions(+), 3 deletions(-)
+
+commit ca261994edc3f2d03d5589c037171c63471ee9dc
+Author: Lasse Collin <lasse.collin@tukaani.org>
+Date:   2020-03-16 17:30:39 +0200
+
+    Translations: Add partial Danish translation.
+    
+    I made a few minor white space changes without getting them
+    approved by the Danish translation team.
+
+ po/LINGUAS |   1 +
+ po/da.po   | 896 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+ 2 files changed, 897 insertions(+)
+
+commit 51cd5d051fc730d61411dee292e863582784e189
+Author: Lasse Collin <lasse.collin@tukaani.org>
+Date:   2020-03-16 16:43:29 +0200
+
+    Update INSTALL.generic from Automake 1.16.1.
+
+ INSTALL.generic | 321 ++++++++++++++++++++++++++++----------------------------
+ 1 file changed, 162 insertions(+), 159 deletions(-)
+
+commit 69d694e5f1beae2bbfa3b6c348ec0ec5f14b5cd0
+Author: Lasse Collin <lasse.collin@tukaani.org>
+Date:   2020-03-15 15:27:22 +0200
+
+    Update INSTALL for Windows and DOS and add preliminary info for z/OS.
+
+ INSTALL | 51 +++++++++++++++++++++++++++++++++++++++++----------
+ 1 file changed, 41 insertions(+), 10 deletions(-)
+
+commit 2c3b1bb80a3ca7e09728fe4d7a1d8648a5cb9bca
+Author: Lasse Collin <lasse.collin@tukaani.org>
+Date:   2020-03-15 15:26:20 +0200
+
+    Build: Update m4/ax_pthread.m4 from Autoconf Archive (again).
+
+ m4/ax_pthread.m4 | 219 +++++++++++++++++++++++++++++--------------------------
+ 1 file changed, 117 insertions(+), 102 deletions(-)
+
+commit 74a5af180a6a6c4b8c90cefb37ee900d3fea7dc6
+Author: Lasse Collin <lasse.collin@tukaani.org>
+Date:   2020-03-11 21:15:35 +0200
+
+    xz: Never use thousand separators in DJGPP builds.
+    
+    DJGPP 2.05 added support for thousands separators but it's
+    broken at least under WinXP with Finnish locale that uses
+    a non-breaking space as the thousands separator. Workaround
+    by disabling thousands separators for DJGPP builds.
+
+ src/xz/util.c | 14 ++++++++++++--
+ 1 file changed, 12 insertions(+), 2 deletions(-)
+
+commit ceba0d25e826bcdbf64bb4cb03385a2a66f8cbcb
+Author: Lasse Collin <lasse.collin@tukaani.org>
+Date:   2020-03-11 19:38:08 +0200
+
+    DOS: Update dos/Makefile for DJGPP 2.05.
+    
+    It doesn't need -fgnu89-inline like 2.04beta did.
+
+ dos/Makefile | 4 +---
+ 1 file changed, 1 insertion(+), 3 deletions(-)
+
+commit 29e5bd71612253281fb22bbaa0a566990a74dcc3
+Author: Lasse Collin <lasse.collin@tukaani.org>
+Date:   2020-03-11 19:36:07 +0200
+
+    DOS: Update instructions in dos/INSTALL.txt.
+
+ dos/INSTALL.txt | 59 ++++++++++++++++++++++++++++-----------------------------
+ 1 file changed, 29 insertions(+), 30 deletions(-)
+
+commit 00a037ee9c8ee5a03cf9744e05570ae93d56b875
+Author: Lasse Collin <lasse.collin@tukaani.org>
+Date:   2020-03-11 17:58:51 +0200
+
+    DOS: Update config.h.
+    
+    The added defines assume GCC >= 4.8.
+
+ dos/config.h | 8 ++++++++
+ 1 file changed, 8 insertions(+)
+
+commit 4ec2feaefa310b4249eb41893caf526e5c51ee39
+Author: Lasse Collin <lasse.collin@tukaani.org>
+Date:   2020-03-11 22:37:54 +0200
+
+    Translations: Add hu, zh_CN, and zh_TW.
+    
+    I made a few white space changes to these without getting them
+    approved by the translation teams. (I tried to contact the hu and
+    zh_TW teams but didn't succeed. I didn't contact the zh_CN team.)
+
+ po/LINGUAS  |   3 +
+ po/hu.po    | 985 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+ po/zh_CN.po | 963 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+ po/zh_TW.po | 956 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+ 4 files changed, 2907 insertions(+)
+
+commit b6ed09729ae408be4533a0ddbc7df3d6f566846a
+Author: Lasse Collin <lasse.collin@tukaani.org>
+Date:   2020-03-11 14:33:30 +0200
+
+    Translations: Update vi.po to match the file from the TP.
+    
+    The translated strings haven't been updated but word wrapping
+    is different.
+
+ po/vi.po | 407 ++++++++++++++++++++++++++++-----------------------------------
+ 1 file changed, 179 insertions(+), 228 deletions(-)
+
+commit 7c85e8953ced204c858101872a15183e4639e9fb
+Author: Lasse Collin <lasse.collin@tukaani.org>
+Date:   2020-03-11 14:18:03 +0200
+
+    Translations: Add fi and pt_BR, and update de, fr, it, and pl.
+    
+    The German translation isn't identical to the file in
+    the Translation Project but the changes (white space changes
+    only) were approved by the translator Mario Blättermann.
+
+ po/LINGUAS  |    2 +
+ po/de.po    |  476 ++++++++++++++--------------
+ po/fi.po    |  974 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+ po/fr.po    |  272 ++++++++--------
+ po/it.po    |  479 ++++++++++++----------------
+ po/pl.po    |  239 +++++++-------
+ po/pt_BR.po | 1001 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+ 7 files changed, 2697 insertions(+), 746 deletions(-)
+
+commit 7da3ebc67fb5414034685ec16c7a29dad03dfa9b
+Author: Lasse Collin <lasse.collin@tukaani.org>
+Date:   2020-02-25 21:35:14 +0200
+
+    Update THANKS.
+
+ THANKS | 1 +
+ 1 file changed, 1 insertion(+)
+
+commit 1acc48794364606c9091cae6fa56db75a1325114
+Author: Lasse Collin <lasse.collin@tukaani.org>
+Date:   2020-03-11 13:05:29 +0200
+
+    Build: Add very limited experimental CMake support.
+    
+    This version matches CMake files in the master branch (commit
+    265daa873c0d871f5f23f9b56e133a6f20045a0a) except that this omits
+    two source files that aren't in v5.2 and in the beginning of
+    CMakeLists.txt the first paragraph in the comment is slightly
+    different to point out possible issues in building shared liblzma.
+
+ CMakeLists.txt              | 659 ++++++++++++++++++++++++++++++++++++++++++++
+ cmake/tuklib_common.cmake   |  49 ++++
+ cmake/tuklib_cpucores.cmake | 175 ++++++++++++
+ cmake/tuklib_integer.cmake  | 102 +++++++
+ cmake/tuklib_mbstr.cmake    |  20 ++
+ cmake/tuklib_physmem.cmake  | 150 ++++++++++
+ cmake/tuklib_progname.cmake |  19 ++
+ 7 files changed, 1174 insertions(+)
+
+commit 9acc6abea1552803c74c1486fbb10af119550772
+Author: Lasse Collin <lasse.collin@tukaani.org>
+Date:   2020-02-27 20:24:27 +0200
+
+    Build: Add support for --no-po4a option to autogen.sh.
+    
+    Normally, if po4a isn't available, autogen.sh will return
+    with non-zero exit status. The option --no-po4a can be useful
+    when one knows that po4a isn't available but wants autogen.sh
+    to still return with zero exit status.
+
+ autogen.sh | 11 ++++++++++-
+ 1 file changed, 10 insertions(+), 1 deletion(-)
+
+commit c8853b31545db7bd0551be85949624b1261efd47
+Author: Lasse Collin <lasse.collin@tukaani.org>
+Date:   2020-02-24 23:37:07 +0200
+
+    Update m4/.gitignore.
+
+ m4/.gitignore | 1 +
+ 1 file changed, 1 insertion(+)
+
+commit 901eb4a8c992354c3ea482f5bad60a1f8ad6fcc8
+Author: Lasse Collin <lasse.collin@tukaani.org>
+Date:   2020-02-24 23:01:00 +0200
+
+    liblzma: Remove unneeded <sys/types.h> from fastpos_tablegen.c.
+    
+    This file only generates fastpos_table.c.
+    It isn't built as a part of liblzma.
+
+ src/liblzma/lzma/fastpos_tablegen.c | 1 -
+ 1 file changed, 1 deletion(-)
+
+commit ac35c9585fb734b7a19785d490c152e0b8cd4663
+Author: Lasse Collin <lasse.collin@tukaani.org>
+Date:   2020-02-22 14:15:07 +0200
+
+    Use defined(__GNUC__) before __GNUC__ in preprocessor lines.
+    
+    This should silence the equivalent of -Wundef in compilers that
+    don't define __GNUC__.
+
+ src/common/sysdefs.h   | 3 ++-
+ src/liblzma/api/lzma.h | 5 +++--
+ 2 files changed, 5 insertions(+), 3 deletions(-)
+
+commit fb9cada7cfade1156d6277717280e05b5cd342d6
+Author: Lasse Collin <lasse.collin@tukaani.org>
+Date:   2020-02-21 17:40:02 +0200
+
+    liblzma: Add more uses of lzma_memcmplen() to the normal mode of LZMA.
+    
+    This gives a tiny encoder speed improvement. This could have been done
+    in 2014 after the commit 544aaa3d13554e8640f9caf7db717a96360ec0f6 but
+    it was forgotten.
+
+ src/liblzma/lzma/lzma_encoder_optimum_normal.c | 16 ++++++++++------
+ 1 file changed, 10 insertions(+), 6 deletions(-)
+
+commit 6117955af0b9cef5acde7859e86f773692b5f43c
+Author: Lasse Collin <lasse.collin@tukaani.org>
+Date:   2020-02-21 17:01:15 +0200
+
+    Build: Add visibility.m4 from gnulib.
+    
+    Appears that this file used to get included as a side effect of
+    gettext. After the change to gettext version requirements this file
+    no longer got copied to the package and so the build was broken.
+
+ m4/.gitignore    |  1 -
+ m4/visibility.m4 | 77 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+ 2 files changed, 77 insertions(+), 1 deletion(-)
+
+commit c2cc64d78c098834231f9cfd7d852c9cd8950d74
+Author: Lasse Collin <lasse.collin@tukaani.org>
+Date:   2020-02-21 16:10:44 +0200
+
+    xz: Silence a warning when sig_atomic_t is long int.
+    
+    It can be true at least on z/OS.
+
+ src/xz/signals.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+commit b6314aa275b35c714e0a191d0b2e9b6106129ea9
+Author: Lasse Collin <lasse.collin@tukaani.org>
+Date:   2020-02-21 15:59:26 +0200
+
+    xz: Avoid unneeded access of a volatile variable.
+
+ src/xz/signals.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+commit f772a1572f723e5dc7d2d32e1d4287ac7a0da55e
+Author: Lasse Collin <lasse.collin@tukaani.org>
+Date:   2020-02-21 01:24:18 +0200
+
+    tuklib_integer.m4: Optimize the check order.
+    
+    The __builtin byteswapping is the preferred one so check for it first.
+
+ m4/tuklib_integer.m4 | 56 +++++++++++++++++++++++++++-------------------------
+ 1 file changed, 29 insertions(+), 27 deletions(-)
+
+commit 641042e63f665f3231c2fd1241fd3dddda3fb313
+Author: Lasse Collin <lasse.collin@tukaani.org>
+Date:   2020-02-20 18:54:04 +0200
+
+    tuklib_exit: Add missing header.
+    
+    strerror() needs <string.h> which happened to be included via
+    tuklib_common.h -> tuklib_config.h -> sysdefs.h if HAVE_CONFIG_H
+    was defined. This wasn't tested without config.h before so it
+    had worked fine.
+
+ src/common/tuklib_exit.c | 1 +
+ 1 file changed, 1 insertion(+)
+
+commit dbd55a69e530fec9ae866aaf6c3ccc0b4daf1f1f
+Author: Lasse Collin <lasse.collin@tukaani.org>
+Date:   2020-02-16 11:18:28 +0200
+
+    sysdefs.h: Omit the conditionals around string.h and limits.h.
+    
+    string.h is used unconditionally elsewhere in the project and
+    configure has always stopped if limits.h is missing, so these
+    headers must have been always available even on the weirdest
+    systems.
+
+ src/common/sysdefs.h | 8 ++------
+ 1 file changed, 2 insertions(+), 6 deletions(-)
+
+commit 9294909861e6d22b32418467e0e988f953a82264
+Author: Lasse Collin <lasse.collin@tukaani.org>
+Date:   2020-02-15 15:07:11 +0200
+
+    Build: Bump Autoconf and Libtool version requirements.
+    
+    There is no specific reason for this other than blocking
+    the most ancient versions. These are still old:
+    
+    Autoconf 2.69 (2012)
+    Automake 1.12 (2012)
+    gettext 0.19.6 (2015)
+    Libtool 2.4 (2010)
+
+ configure.ac | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+commit bd09081bbdf552f730030d2fd0e5e39ccb3936af
+Author: Lasse Collin <lasse.collin@tukaani.org>
+Date:   2020-02-15 03:08:32 +0200
+
+    Build: Use AM_GNU_GETTEXT_REQUIRE_VERSION and require 0.19.6.
+    
+    This bumps the version requirement from 0.19 (from 2014) to
+    0.19.6 (2015).
+    
+    Using only the old AM_GNU_GETTEXT_VERSION results in old
+    gettext infrastructure being placed in the package. By using
+    both macros we get the latest gettext files while the other
+    programs in the Autotools family can still see the old macro.
+
+ configure.ac | 6 +++++-
+ 1 file changed, 5 insertions(+), 1 deletion(-)
+
+commit 1e5e08d86534aec7ca957982c7f6e90203c19e9f
+Author: Lasse Collin <lasse.collin@tukaani.org>
+Date:   2020-02-14 20:42:06 +0200
+
+    Translations: Add German translation of the man pages.
+    
+    Thanks to Mario Blättermann.
+
+ po4a/de.po     | 5532 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+ po4a/po4a.conf |    2 +-
+ 2 files changed, 5533 insertions(+), 1 deletion(-)
+
+commit 4b1447809ffbc0d77c0ad456bd6b3afcf0b8623e
+Author: Lasse Collin <lasse.collin@tukaani.org>
+Date:   2020-02-07 15:32:21 +0200
+
+    Build: Add support for translated man pages using po4a.
+    
+    The dependency on po4a is optional. It's never required to install
+    the translated man pages when xz is built from a release tarball.
+    If po4a is missing when building from xz.git, the translated man
+    pages won't be generated but otherwise the build will work normally.
+    
+    The translations are only updated automatically by autogen.sh and
+    by "make mydist". This makes it easy to keep po4a as an optional
+    dependency and ensures that I won't forget to put updated
+    translations to a release tarball.
+    
+    The translated man pages aren't installed if --disable-nls is used.
+    
+    The installation of translated man pages abuses Automake internals
+    by calling "install-man" with redefined dist_man_MANS and man_MANS.
+    This makes the hairy script code slightly less hairy. If it breaks
+    some day, this code needs to be fixed; don't blame Automake developers.
+    
+    Also, this adds more quotes to the existing shell script code in
+    the Makefile.am "-hook"s.
+
+ Makefile.am             |  4 ++++
+ autogen.sh              |  8 ++++---
+ po4a/.gitignore         |  2 ++
+ po4a/po4a.conf          | 14 +++++++++++
+ po4a/update-po          | 45 ++++++++++++++++++++++++++++++++++
+ src/scripts/Makefile.am | 64 +++++++++++++++++++++++++++++++++++++------------
+ src/xz/Makefile.am      | 50 +++++++++++++++++++++++++++-----------
+ src/xzdec/Makefile.am   | 55 ++++++++++++++++++++++++++++++++----------
+ 8 files changed, 197 insertions(+), 45 deletions(-)
+
+commit 882fcfdcd86525cc5c6f6d0bf0230d0089206d13
+Author: Lasse Collin <lasse.collin@tukaani.org>
+Date:   2020-02-06 00:04:42 +0200
+
+    Update THANKS (sync with the master branch).
+
+ THANKS | 3 +++
+ 1 file changed, 3 insertions(+)
+
+commit 134bb7765815d5f265eb0bc9e6ebacd9ae4a52bc
+Author: Lasse Collin <lasse.collin@tukaani.org>
+Date:   2020-02-05 22:35:06 +0200
+
+    Update tests/.gitignore.
+
+ .gitignore | 4 ++++
+ 1 file changed, 4 insertions(+)
+
+commit 6912472fafb656be8f4c5b4ac9ea28fea3065de4
+Author: Lasse Collin <lasse.collin@tukaani.org>
+Date:   2020-02-05 22:28:51 +0200
+
+    Update m4/.gitignore.
+
+ m4/.gitignore | 1 +
+ 1 file changed, 1 insertion(+)
+
+commit 68c60735bbb6e51d4205ba8a9fde307bcfb22f8c
+Author: Lasse Collin <lasse.collin@tukaani.org>
+Date:   2020-02-05 20:47:38 +0200
+
+    Update THANKS.
+
+ THANKS | 1 +
+ 1 file changed, 1 insertion(+)
+
+commit e1beaa74bc7cb5a409d59b55870e01ae7784ce3a
+Author: Lasse Collin <lasse.collin@tukaani.org>
+Date:   2020-02-05 20:33:50 +0200
+
+    xz: Comment out annoying sandboxing messages.
+
+ src/xz/file_io.c | 10 +++++++---
+ 1 file changed, 7 insertions(+), 3 deletions(-)
+
+commit 8238192652290df78bd728b20e3f6542d1a2819e
+Author: Lasse Collin <lasse.collin@tukaani.org>
+Date:   2020-02-05 19:33:37 +0200
+
+    Build: Workaround a POSIX shell detection problem on Solaris.
+    
+    I don't know if the problem is in gnulib's gl_POSIX_SHELL macro
+    or if xzgrep does something that isn't in POSIX. The workaround
+    adds a special case for Solaris: if /usr/xpg4/bin/sh exists and
+    gl_cv_posix_shell wasn't overriden on the configure command line,
+    use that shell for xzgrep and other scripts. That shell is known
+    to work and exists on most Solaris systems.
+
+ configure.ac | 10 ++++++++++
+ 1 file changed, 10 insertions(+)
+
+commit 93a1f61e892e145607dd938e3b30098af19a1672
+Author: Lasse Collin <lasse.collin@tukaani.org>
+Date:   2020-02-03 22:03:50 +0200
+
+    Build: Update m4/ax_pthread.m4 from Autoconf Archive.
+
+ m4/ax_pthread.m4 | 398 ++++++++++++++++++++++++++++++++++++++-----------------
+ 1 file changed, 279 insertions(+), 119 deletions(-)
+
+commit d0daa21792ff861e5423bbd82aaa6c8ba9fa0462
+Author: Lasse Collin <lasse.collin@tukaani.org>
+Date:   2020-02-01 19:56:18 +0200
+
+    xz: Limit --memlimit-compress to at most 4020 MiB for 32-bit xz.
+    
+    See the code comment for reasoning. It's far from perfect but
+    hopefully good enough for certain cases while hopefully doing
+    nothing bad in other situations.
+    
+    At presets -5 ... -9, 4020 MiB vs. 4096 MiB makes no difference
+    on how xz scales down the number of threads.
+    
+    The limit has to be a few MiB below 4096 MiB because otherwise
+    things like "xz --lzma2=dict=500MiB" won't scale down the dict
+    size enough and xz cannot allocate enough memory. With
+    "ulimit -v $((4096 * 1024))" on x86-64, the limit in xz had
+    to be no more than 4085 MiB. Some safety margin is good though.
+    
+    This is hack but it should be useful when running 32-bit xz on
+    a 64-bit kernel that gives full 4 GiB address space to xz.
+    Hopefully this is enough to solve this:
+    
+    https://bugzilla.redhat.com/show_bug.cgi?id=1196786
+    
+    FreeBSD has a patch that limits the result in tuklib_physmem()
+    to SIZE_MAX on 32-bit systems. While I think it's not the way
+    to do it, the results on --memlimit-compress have been good. This
+    commit should achieve practically identical results for compression
+    while leaving decompression and tuklib_physmem() and thus
+    lzma_physmem() unaffected.
+
+ src/xz/hardware.c | 32 +++++++++++++++++++++++++++++++-
+ src/xz/xz.1       | 21 ++++++++++++++++++++-
+ 2 files changed, 51 insertions(+), 2 deletions(-)
+
+commit 4433c2dc5727ee6aef570e001a5a024e0d94e609
+Author: Lasse Collin <lasse.collin@tukaani.org>
+Date:   2020-01-26 20:53:25 +0200
+
+    xz: Set the --flush-timeout deadline when the first input byte arrives.
+    
+    xz --flush-timeout=2000, old version:
+    
+      1. xz is started. The next flush will happen after two seconds.
+      2. No input for one second.
+      3. A burst of a few kilobytes of input.
+      4. No input for one second.
+      5. Two seconds have passed and flushing starts.
+    
+    The first second counted towards the flush-timeout even though
+    there was no pending data. This can cause flushing to occur more
+    often than needed.
+    
+    xz --flush-timeout=2000, after this commit:
+    
+      1. xz is started.
+      2. No input for one second.
+      3. A burst of a few kilobytes of input. The next flush will
+         happen after two seconds counted from the time when the
+         first bytes of the burst were read.
+      4. No input for one second.
+      5. No input for another second.
+      6. Two seconds have passed and flushing starts.
+
+ src/xz/coder.c   | 6 +-----
+ src/xz/file_io.c | 6 +++++-
+ src/xz/mytime.c  | 1 -
+ 3 files changed, 6 insertions(+), 7 deletions(-)
+
+commit acc0ef3ac80f18e349c6d0252177707105c0a29c
+Author: Lasse Collin <lasse.collin@tukaani.org>
+Date:   2020-01-26 20:19:19 +0200
+
+    xz: Move flush_needed from mytime.h to file_pair struct in file_io.h.
+
+ src/xz/coder.c   | 3 ++-
+ src/xz/file_io.c | 3 ++-
+ src/xz/file_io.h | 3 +++
+ src/xz/mytime.c  | 3 ---
+ src/xz/mytime.h  | 4 ----
+ 5 files changed, 7 insertions(+), 9 deletions(-)
+
+commit 4afe69d30b66812682a2016ee18441958019cbb2
+Author: Lasse Collin <lasse.collin@tukaani.org>
+Date:   2020-01-26 14:49:22 +0200
+
+    xz: coder.c: Make writing output a separate function.
+    
+    The same code sequence repeats so it's nicer as a separate function.
+    Note that in one case there was no test for opt_mode != MODE_TEST,
+    but that was only because that condition would always be true, so
+    this commit doesn't change the behavior there.
+
+ src/xz/coder.c | 30 +++++++++++++++++-------------
+ 1 file changed, 17 insertions(+), 13 deletions(-)
+
+commit ec26f3ace5f9b260ca91508030f07465ae2f9f78
+Author: Lasse Collin <lasse.collin@tukaani.org>
+Date:   2020-01-26 14:13:42 +0200
+
+    xz: Fix semi-busy-waiting in xz --flush-timeout.
+    
+    When input blocked, xz --flush-timeout=1 would wake up every
+    millisecond and initiate flushing which would have nothing to
+    flush and thus would just waste CPU time. The fix disables the
+    timeout when no input has been seen since the previous flush.
+
+ src/xz/coder.c   |  4 ++++
+ src/xz/file_io.c | 15 +++++++++++----
+ src/xz/file_io.h |  4 ++++
+ 3 files changed, 19 insertions(+), 4 deletions(-)
+
+commit 38915703241e69a64f133ff9a02ec9100c6019c6
+Author: Lasse Collin <lasse.collin@tukaani.org>
+Date:   2020-01-26 13:47:31 +0200
+
+    xz: Refactor io_read() a bit.
+
+ src/xz/file_io.c | 17 ++++++++---------
+ 1 file changed, 8 insertions(+), 9 deletions(-)
+
+commit f6d24245349cecfae6ec0d2366fa80716c9f6d37
+Author: Lasse Collin <lasse.collin@tukaani.org>
+Date:   2020-01-26 13:37:08 +0200
+
+    xz: Update a comment in file_io.h.
+
+ src/xz/file_io.h | 5 ++++-
+ 1 file changed, 4 insertions(+), 1 deletion(-)
+
+commit 15b55d5c63d27f81776edb1abc05872a751fc674
+Author: Lasse Collin <lasse.collin@tukaani.org>
+Date:   2020-01-26 13:27:51 +0200
+
+    xz: Move the setting of flush_needed in file_io.c to a nicer location.
+
+ src/xz/file_io.c | 6 ++----
+ 1 file changed, 2 insertions(+), 4 deletions(-)
+
+commit 609c7067859146ffc62ac655f6ba53599c891801
+Author: Lasse Collin <lasse.collin@tukaani.org>
+Date:   2020-02-05 19:56:09 +0200
+
+    xz: Enable Capsicum sandboxing by default if available.
+    
+    It has been enabled in FreeBSD for a while and reported to work fine.
+    
+    Thanks to Xin Li.
+
+ INSTALL      | 6 ------
+ configure.ac | 8 ++++----
+ 2 files changed, 4 insertions(+), 10 deletions(-)
+
+commit 00517d125cc26ecece0eebb84c1c3975cd19bee0
+Author: Lasse Collin <lasse.collin@tukaani.org>
+Date:   2019-12-31 22:41:45 +0200
+
+    Rename unaligned_read32ne to read32ne, and similarly for the others.
+
+ src/common/tuklib_integer.h               | 64 +++++++++++++++----------------
+ src/liblzma/common/alone_encoder.c        |  2 +-
+ src/liblzma/common/block_header_decoder.c |  2 +-
+ src/liblzma/common/block_header_encoder.c |  2 +-
+ src/liblzma/common/memcmplen.h            |  9 ++---
+ src/liblzma/common/stream_flags_decoder.c |  6 +--
+ src/liblzma/common/stream_flags_encoder.c |  8 ++--
+ src/liblzma/lz/lz_encoder_hash.h          |  2 +-
+ src/liblzma/lzma/lzma_decoder.c           |  2 +-
+ src/liblzma/lzma/lzma_encoder.c           |  2 +-
+ src/liblzma/lzma/lzma_encoder_private.h   |  3 +-
+ src/liblzma/simple/simple_decoder.c       |  2 +-
+ src/liblzma/simple/simple_encoder.c       |  2 +-
+ tests/test_block_header.c                 |  4 +-
+ tests/test_stream_flags.c                 |  6 +--
+ 15 files changed, 54 insertions(+), 62 deletions(-)
+
+commit 52d89d8443c4a31a69c0701062f2c7711d82bbed
+Author: Lasse Collin <lasse.collin@tukaani.org>
+Date:   2019-12-31 00:29:48 +0200
+
+    Rename read32ne to aligned_read32ne, and similarly for the others.
+    
+    Using the aligned methods requires more care to ensure that
+    the address really is aligned, so it's nicer if the aligned
+    methods are prefixed. The next commit will remove the unaligned_
+    prefix from the unaligned methods which in liblzma are used in
+    more places than the aligned ones.
+
+ src/common/tuklib_integer.h    | 56 +++++++++++++++++++++---------------------
+ src/liblzma/check/crc32_fast.c |  4 +--
+ src/liblzma/check/crc64_fast.c |  4 +--
+ 3 files changed, 32 insertions(+), 32 deletions(-)
+
+commit 850620468b57d49f16093e5870d1050886fcb37a
+Author: Lasse Collin <lasse.collin@tukaani.org>
+Date:   2019-12-31 00:18:24 +0200
+
+    Revise tuklib_integer.h and .m4.
+    
+    Add a configure option --enable-unsafe-type-punning to get the
+    old non-conforming memory access methods. It can be useful with
+    old compilers or in some other less typical situations but
+    shouldn't normally be used.
+    
+    Omit the packed struct trick for unaligned access. While it's
+    best in some cases, this is simpler. If the memcpy trick doesn't
+    work, one can request unsafe type punning from configure.
+    
+    Because CRC32/CRC64 code needs fast aligned reads, if no very
+    safe way to do it is found, type punning is used as a fallback.
+    This sucks but since it currently works in practice, it seems to
+    be the least bad option. It's never needed with GCC >= 4.7 or
+    Clang >= 3.6 since these support __builtin_assume_aligned and
+    thus fast aligned access can be done with the memcpy trick.
+    
+    Other things:
+      - Support GCC/Clang __builtin_bswapXX
+      - Cleaner bswap fallback macros
+      - Minor cleanups
+
+ m4/tuklib_integer.m4        |  43 ++++
+ src/common/tuklib_integer.h | 488 ++++++++++++++++++++++++--------------------
+ 2 files changed, 314 insertions(+), 217 deletions(-)
+
+commit a45badf0342666462cc6a7107a071418570ab773
+Author: Lasse Collin <lasse.collin@tukaani.org>
+Date:   2019-12-29 22:51:58 +0200
+
+    Tests: Hopefully fix test_check.c to work on EBCDIC systems.
+    
+    Thanks to Daniel Richard G.
+
+ tests/test_check.c | 9 +++++++--
+ 1 file changed, 7 insertions(+), 2 deletions(-)
+
+commit c9a8071e6690a8db8a485c075920df254e7c70ea
+Author: Lasse Collin <lasse.collin@tukaani.org>
+Date:   2019-09-24 23:02:40 +0300
+
+    Scripts: Put /usr/xpg4/bin to the beginning of PATH on Solaris.
+    
+    This adds a configure option --enable-path-for-scripts=PREFIX
+    which defaults to empty except on Solaris it is /usr/xpg4/bin
+    to make POSIX grep and others available. The Solaris case had
+    been documented in INSTALL with a manual fix but it's better
+    to do this automatically since it is needed on most Solaris
+    systems anyway.
+    
+    Thanks to Daniel Richard G.
+
+ INSTALL               | 43 +++++++++++++++++++++++++++++++++++--------
+ configure.ac          | 26 ++++++++++++++++++++++++++
+ src/scripts/xzdiff.in |  1 +
+ src/scripts/xzgrep.in |  1 +
+ src/scripts/xzless.in |  1 +
+ src/scripts/xzmore.in |  1 +
+ 6 files changed, 65 insertions(+), 8 deletions(-)
+
+commit aba140e2df3ff63ad124ae997de16d517b98ca50
+Author: Lasse Collin <lasse.collin@tukaani.org>
+Date:   2019-07-12 18:57:43 +0300
+
+    Fix comment typos in tuklib_mbstr* files.
+
+ src/common/tuklib_mbstr.h       | 2 +-
+ src/common/tuklib_mbstr_fw.c    | 2 +-
+ src/common/tuklib_mbstr_width.c | 2 +-
+ 3 files changed, 3 insertions(+), 3 deletions(-)
+
+commit 710f5bd769a5d2bd8684256c2727d15350ee2ab8
+Author: Lasse Collin <lasse.collin@tukaani.org>
+Date:   2019-07-12 18:30:46 +0300
+
+    Add missing include to tuklib_mbstr_width.c.
+    
+    It didn't matter in XZ Utils because sysdefs.h
+    includes string.h anyway.
+
+ src/common/tuklib_mbstr_width.c | 1 +
+ 1 file changed, 1 insertion(+)
+
+commit 0e491aa8cd72e0100cd15c1b9469cd57fae500b0
+Author: Lasse Collin <lasse.collin@tukaani.org>
+Date:   2019-06-25 23:15:21 +0300
+
+    liblzma: Fix a buggy comment.
+
+ src/liblzma/lz/lz_encoder_mf.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+commit bfc245569f340a75bd71ad32a6beba786712683b
+Author: Lasse Collin <lasse.collin@tukaani.org>
+Date:   2019-06-25 00:16:06 +0300
+
+    configure.ac: Fix a typo in a comment.
+
+ configure.ac | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+commit f18eee9d15a22c8449ef395a05f0eb637c4ad253
+Author: Lasse Collin <lasse.collin@tukaani.org>
+Date:   2019-06-25 00:08:13 +0300
+
+    Tests: Silence warnings from clang -Wassign-enum.
+    
+    Also changed 999 to 99 so it fits even if lzma_check happened
+    to be 8 bits wide.
+
+ tests/test_block_header.c | 3 ++-
+ tests/test_stream_flags.c | 2 +-
+ 2 files changed, 3 insertions(+), 2 deletions(-)
+
+commit 25f74554723e8deabc66fed1abf0ec27a4ed19d5
+Author: Lasse Collin <lasse.collin@tukaani.org>
+Date:   2019-06-24 23:52:17 +0300
+
+    liblzma: Add a comment.
+
+ src/liblzma/common/stream_encoder_mt.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+commit 44eb961f2a51d02420d017bc5ff470360663650c
+Author: Lasse Collin <lasse.collin@tukaani.org>
+Date:   2019-06-24 23:45:21 +0300
+
+    liblzma: Silence clang -Wmissing-variable-declarations.
+
+ src/liblzma/check/crc32_table.c | 3 +++
+ src/liblzma/check/crc64_table.c | 3 +++
+ 2 files changed, 6 insertions(+)
+
+commit 267afcd9955e668c1532b069230c21c348eb4f82
+Author: Lasse Collin <lasse.collin@tukaani.org>
+Date:   2019-06-24 22:57:43 +0300
+
+    xz: Silence a warning from clang -Wsign-conversion in main.c.
+
+ src/xz/main.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+commit 0e3c4002f809311ecef239b05e556d9c462b5703
+Author: Lasse Collin <lasse.collin@tukaani.org>
+Date:   2019-06-24 22:47:39 +0300
+
+    liblzma: Remove incorrect uses of lzma_attribute((__unused__)).
+    
+    Caught by clang -Wused-but-marked-unused.
+
+ src/liblzma/common/alone_decoder.c | 3 +--
+ src/liblzma/common/alone_encoder.c | 3 +--
+ src/liblzma/lz/lz_decoder.c        | 3 +--
+ 3 files changed, 3 insertions(+), 6 deletions(-)
+
+commit cb708e8fa3405ec13a0ebfebbbf2793f927deab1
+Author: Lasse Collin <lasse.collin@tukaani.org>
+Date:   2019-06-24 20:53:55 +0300
+
+    Tests: Silence a warning from -Wsign-conversion.
+
+ tests/create_compress_files.c | 8 ++++----
+ 1 file changed, 4 insertions(+), 4 deletions(-)
+
+commit c8cace3d6e965c0fb537591372bf71b9357dd76c
+Author: Lasse Collin <lasse.collin@tukaani.org>
+Date:   2019-06-24 20:45:49 +0300
+
+    xz: Fix an integer overflow with 32-bit off_t.
+    
+    Or any off_t which isn't very big (like signed 64 bit integer
+    that most system have). A small off_t could overflow if the
+    file being decompressed had long enough run of zero bytes,
+    which would result in corrupt output.
+
+ src/xz/file_io.c | 11 +++++++++--
+ 1 file changed, 9 insertions(+), 2 deletions(-)
+
+commit 65a42741e290fbcd85dfc5db8a62c4bce5f7712c
+Author: Lasse Collin <lasse.collin@tukaani.org>
+Date:   2019-06-24 00:57:23 +0300
+
+    Tests: Remove a duplicate branch from tests/tests.h.
+    
+    The duplication was introduced about eleven years ago and
+    should have been cleaned up back then already.
+    
+    This was caught by -Wduplicated-branches.
+
+ tests/tests.h | 9 ++-------
+ 1 file changed, 2 insertions(+), 7 deletions(-)
+
+commit 5c4fb60e8df026e933afab0cfe0a8b55be20036c
+Author: Lasse Collin <lasse.collin@tukaani.org>
+Date:   2019-06-23 23:22:45 +0300
+
+    tuklib_mbstr_width: Fix a warning from -Wsign-conversion.
+
+ src/common/tuklib_mbstr_width.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+commit 37df03ce52ce53710e1513387648763f8a744154
+Author: Lasse Collin <lasse.collin@tukaani.org>
+Date:   2019-06-23 23:19:34 +0300
+
+    xz: Fix some of the warnings from -Wsign-conversion.
+
+ src/xz/args.c    | 4 ++--
+ src/xz/coder.c   | 4 ++--
+ src/xz/file_io.c | 5 +++--
+ src/xz/message.c | 4 ++--
+ src/xz/mytime.c  | 4 ++--
+ src/xz/options.c | 2 +-
+ src/xz/util.c    | 4 ++--
+ 7 files changed, 14 insertions(+), 13 deletions(-)
+
+commit 7c65ae0f5f2e2431f88621e8fe6d1dc7907e30c1
+Author: Lasse Collin <lasse.collin@tukaani.org>
+Date:   2019-06-23 22:27:45 +0300
+
+    tuklib_cpucores: Silence warnings from -Wsign-conversion.
+
+ src/common/tuklib_cpucores.c | 10 +++++-----
+ 1 file changed, 5 insertions(+), 5 deletions(-)
+
+commit a502dd1d000b598406637d452f535f4bbd43e2a4
+Author: Lasse Collin <lasse.collin@tukaani.org>
+Date:   2019-06-23 21:40:47 +0300
+
+    xzdec: Fix warnings from -Wsign-conversion.
+
+ src/xzdec/xzdec.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+commit a45d1a5374ceb22e23255b0b595b9e641e9860af
+Author: Lasse Collin <lasse.collin@tukaani.org>
+Date:   2019-06-23 21:38:56 +0300
+
+    liblzma: Fix warnings from -Wsign-conversion.
+    
+    Also, more parentheses were added to the literal_subcoder
+    macro in lzma_comon.h (better style but no functional change
+    in the current usage).
+
+ src/liblzma/common/block_header_decoder.c |  2 +-
+ src/liblzma/delta/delta_decoder.c         |  2 +-
+ src/liblzma/lzma/fastpos.h                |  2 +-
+ src/liblzma/lzma/lzma2_decoder.c          |  8 ++++----
+ src/liblzma/lzma/lzma_common.h            |  3 ++-
+ src/liblzma/lzma/lzma_decoder.c           | 16 ++++++++--------
+ src/liblzma/simple/arm.c                  |  6 +++---
+ src/liblzma/simple/armthumb.c             |  8 ++++----
+ src/liblzma/simple/ia64.c                 |  2 +-
+ src/liblzma/simple/powerpc.c              |  9 +++++----
+ src/liblzma/simple/x86.c                  |  2 +-
+ 11 files changed, 31 insertions(+), 29 deletions(-)
+
+commit 4ff87ddf80ed7cb233444cddd86ab1940b5b55ec
+Author: Lasse Collin <lasse.collin@tukaani.org>
+Date:   2019-06-23 19:33:55 +0300
+
+    tuklib_integer: Silence warnings from -Wsign-conversion.
+
+ src/common/tuklib_integer.h | 6 +++---
+ 1 file changed, 3 insertions(+), 3 deletions(-)
+
+commit ed1a9d33984a3a37ae9a775a46859850d98ea4d0
+Author: Lasse Collin <lasse.collin@tukaani.org>
+Date:   2019-06-20 19:40:30 +0300
+
+    tuklib_integer: Fix usage of conv macros.
+    
+    Use a temporary variable instead of e.g.
+    conv32le(unaligned_read32ne(buf)) because the macro can
+    evaluate its argument multiple times.
+
+ src/common/tuklib_integer.h | 12 ++++++++----
+ 1 file changed, 8 insertions(+), 4 deletions(-)
+
+commit 612c88dfc08e2c572623954ecfde541d21c84882
+Author: Lasse Collin <lasse.collin@tukaani.org>
+Date:   2019-06-03 20:44:19 +0300
+
+    Update THANKS.
+
+ THANKS | 1 +
+ 1 file changed, 1 insertion(+)
+
+commit 85da31d8b882b8b9671ab3e3d74d88bd945cd0bb
+Author: Lasse Collin <lasse.collin@tukaani.org>
+Date:   2019-06-03 20:41:54 +0300
+
+    liblzma: Fix comments.
+    
+    Thanks to Bruce Stark.
+
+ src/liblzma/common/alone_encoder.c        | 4 ++--
+ src/liblzma/common/block_util.c           | 2 +-
+ src/liblzma/common/common.c               | 2 +-
+ src/liblzma/common/filter_common.h        | 2 +-
+ src/liblzma/common/filter_decoder.h       | 2 +-
+ src/liblzma/common/filter_flags_encoder.c | 2 +-
+ 6 files changed, 7 insertions(+), 7 deletions(-)
+
+commit 6a73a7889587aa394e236c7e9e4f870b44851036
+Author: Lasse Collin <lasse.collin@tukaani.org>
+Date:   2019-06-02 00:50:59 +0300
+
+    liblzma: Fix one more unaligned read to use unaligned_read16ne().
+
+ src/liblzma/lz/lz_encoder_hash.h | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+commit ce59b34ec9ac344d62a57cad5f94f695f42cdaee
+Author: Lasse Collin <lasse.collin@tukaani.org>
+Date:   2019-06-01 21:41:55 +0300
+
+    Update THANKS.
+
+ THANKS | 1 +
+ 1 file changed, 1 insertion(+)
+
+commit 94aa3fb568fe41dd4925a961966ed5cf8213bd1f
+Author: Lasse Collin <lasse.collin@tukaani.org>
+Date:   2019-06-01 21:36:13 +0300
+
+    liblzma: memcmplen: Use ctz32() from tuklib_integer.h.
+    
+    The same compiler-specific #ifdefs are already in tuklib_integer.h
+
+ src/liblzma/common/memcmplen.h | 10 +---------
+ 1 file changed, 1 insertion(+), 9 deletions(-)
+
+commit 412791486dfb430219d8e30bcbebbfc57a99484a
+Author: Lasse Collin <lasse.collin@tukaani.org>
+Date:   2019-06-01 21:30:03 +0300
+
+    tuklib_integer: Cleanup MSVC-specific code.
+
+ src/common/tuklib_integer.h | 20 +++++++++-----------
+ 1 file changed, 9 insertions(+), 11 deletions(-)
+
+commit efbf6e5f0932e6c1a4250f91ee99059f449f2470
+Author: Lasse Collin <lasse.collin@tukaani.org>
+Date:   2019-06-01 19:01:21 +0300
+
+    liblzma: Use unaligned_readXXne functions instead of type punning.
+    
+    Now gcc -fsanitize=undefined should be clean.
+    
+    Thanks to Jeffrey Walton.
+
+ src/liblzma/common/memcmplen.h          | 12 ++++++------
+ src/liblzma/lzma/lzma_encoder_private.h |  2 +-
+ 2 files changed, 7 insertions(+), 7 deletions(-)
+
+commit 29afef03486d461c23f57150ac5436684bff7811
+Author: Lasse Collin <lasse.collin@tukaani.org>
+Date:   2019-06-01 18:41:16 +0300
+
+    tuklib_integer: Improve unaligned memory access.
+    
+    Now memcpy() or GNU C packed structs for unaligned access instead
+    of type punning. See the comment in this commit for details.
+    
+    Avoiding type punning with unaligned access is needed to
+    silence gcc -fsanitize=undefined.
+    
+    New functions: unaliged_readXXne and unaligned_writeXXne where
+    XX is 16, 32, or 64.
+
+ src/common/tuklib_integer.h | 180 +++++++++++++++++++++++++++++++++++++++++---
+ 1 file changed, 168 insertions(+), 12 deletions(-)
+
+commit 596ed3de4485a4b1d83b5fe506ae9d0a172139b4
+Author: Lasse Collin <lasse.collin@tukaani.org>
+Date:   2019-05-13 20:05:17 +0300
+
+    liblzma: Avoid memcpy(NULL, foo, 0) because it is undefined behavior.
+    
+    I should have always known this but I didn't. Here is an example
+    as a reminder to myself:
+    
+        int mycopy(void *dest, void *src, size_t n)
+        {
+            memcpy(dest, src, n);
+            return dest == NULL;
+        }
+    
+    In the example, a compiler may assume that dest != NULL because
+    passing NULL to memcpy() would be undefined behavior. Testing
+    with GCC 8.2.1, mycopy(NULL, NULL, 0) returns 1 with -O0 and -O1.
+    With -O2 the return value is 0 because the compiler infers that
+    dest cannot be NULL because it was already used with memcpy()
+    and thus the test for NULL gets optimized out.
+    
+    In liblzma, if a null-pointer was passed to memcpy(), there were
+    no checks for NULL *after* the memcpy() call, so I cautiously
+    suspect that it shouldn't have caused bad behavior in practice,
+    but it's hard to be sure, and the problematic cases had to be
+    fixed anyway.
+    
+    Thanks to Jeffrey Walton.
+
+ src/liblzma/common/common.c       |  6 +++++-
+ src/liblzma/lz/lz_decoder.c       | 12 +++++++++---
+ src/liblzma/simple/simple_coder.c | 10 +++++++++-
+ 3 files changed, 23 insertions(+), 5 deletions(-)
+
+commit b4b83555c576e1d845a2b98a193b23c021437804
+Author: Lasse Collin <lasse.collin@tukaani.org>
+Date:   2019-05-11 20:56:08 +0300
+
+    Update THANKS.
+
+ THANKS | 1 +
+ 1 file changed, 1 insertion(+)
+
+commit 8d4906262b45557ed164cd74adb270e6ef7f6f03
+Author: Lasse Collin <lasse.collin@tukaani.org>
+Date:   2019-05-11 20:54:12 +0300
+
+    xz: Update xz man page date.
+
+ src/xz/xz.1 | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+commit 0d318402f8a022f707622c72f8f1894ea476cf89
+Author: Antoine Cœur <antoine.coeur@ef.com>
+Date:   2019-05-08 13:30:57 +0800
+
+    spelling
+
+ Doxyfile.in                            | 2 +-
+ NEWS                                   | 2 +-
+ src/liblzma/api/lzma/block.h           | 2 +-
+ src/liblzma/api/lzma/hardware.h        | 2 +-
+ src/liblzma/api/lzma/lzma12.h          | 2 +-
+ src/liblzma/api/lzma/vli.h             | 2 +-
+ src/liblzma/common/hardware_physmem.c  | 2 +-
+ src/liblzma/common/index.c             | 4 ++--
+ src/liblzma/common/stream_encoder_mt.c | 2 +-
+ src/liblzma/common/vli_decoder.c       | 2 +-
+ src/liblzma/lz/lz_decoder.c            | 2 +-
+ src/scripts/xzgrep.in                  | 2 +-
+ src/xz/args.c                          | 2 +-
+ src/xz/coder.c                         | 4 ++--
+ src/xz/main.c                          | 2 +-
+ src/xz/mytime.h                        | 2 +-
+ src/xz/private.h                       | 2 +-
+ src/xz/xz.1                            | 2 +-
+ windows/build.bash                     | 2 +-
+ 19 files changed, 21 insertions(+), 21 deletions(-)
+
+commit aeb3be8ac4c4b06a745c3799b80b38159fb78b1a
+Author: Lasse Collin <lasse.collin@tukaani.org>
+Date:   2019-03-04 22:49:04 +0200
+
+    README: Update translation instructions.
+    
+    XZ Utils is now part of the Translation Project
+    <https://translationproject.org/>.
+
+ README | 32 +++++++++++++-------------------
+ 1 file changed, 13 insertions(+), 19 deletions(-)
+
+commit 0c238dc3feb0a3eea1e713feb8d338c8dfba9f74
+Author: Lasse Collin <lasse.collin@tukaani.org>
+Date:   2018-12-20 20:42:29 +0200
+
+    Update THANKS.
+
+ THANKS | 1 +
+ 1 file changed, 1 insertion(+)
+
+commit 3ca432d9cce4bf7e793de173dd22025b68611c42
+Author: Lasse Collin <lasse.collin@tukaani.org>
+Date:   2018-12-14 20:34:30 +0200
+
+    xz: Fix a crash in progress indicator when in passthru mode.
+    
+    "xz -dcfv not_an_xz_file" crashed (all four options are
+    required to trigger it). It caused xz to call
+    lzma_get_progress(&strm, ...) when no coder was initialized
+    in strm. In this situation strm.internal is NULL which leads
+    to a crash in lzma_get_progress().
+    
+    The bug was introduced when xz started using lzma_get_progress()
+    to get progress info for multi-threaded compression, so the
+    bug is present in versions 5.1.3alpha and higher.
+    
+    Thanks to Filip Palian <Filip.Palian@pjwstk.edu.pl> for
+    the bug report.
+
+ src/xz/coder.c   | 11 +++++++----
+ src/xz/message.c | 18 ++++++++++++++++--
+ src/xz/message.h |  3 ++-
+ 3 files changed, 25 insertions(+), 7 deletions(-)
+
+commit fcc419e3c3f77a8b6fc5056a86b1b8abbe266e62
+Author: Lasse Collin <lasse.collin@tukaani.org>
+Date:   2018-11-22 17:20:31 +0200
+
+    xz: Update man page timestamp.
+
+ src/xz/xz.1 | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+commit 5a2fc3cd0194e55df329dd29f805299aaca5f32f
+Author: Pavel Raiskup <praiskup@redhat.com>
+Date:   2018-11-22 15:14:34 +0100
+
+    'have have' typos
+
+ src/xz/signals.c | 2 +-
+ src/xz/xz.1      | 2 +-
+ 2 files changed, 2 insertions(+), 2 deletions(-)
+
+commit 7143b04fe49390807f355b1dad686a3d8c4dbdcf
+Author: Lasse Collin <lasse.collin@tukaani.org>
+Date:   2018-07-27 18:10:44 +0300
+
+    xzless: Rename unused variables to silence static analysers.
+    
+    In this particular case I don't see this affecting readability
+    of the code.
+    
+    Thanks to Pavel Raiskup.
+
+ src/scripts/xzless.in | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+commit 273c33297bb69621045ed19665eaf8338bcf4a50
+Author: Lasse Collin <lasse.collin@tukaani.org>
+Date:   2018-07-27 16:02:58 +0300
+
+    liblzma: Remove an always-true condition from lzma_index_cat().
+    
+    This should help static analysis tools to see that newg
+    isn't leaked.
+    
+    Thanks to Pavel Raiskup.
+
+ src/liblzma/common/index.c | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+commit 65b4aba6d06d2cd24ba9ad01fa389c238ad8f352
+Author: Lasse Collin <lasse.collin@tukaani.org>
+Date:   2018-05-19 21:23:25 +0300
+
+    liblzma: Improve lzma_properties_decode() API documentation.
+
+ src/liblzma/api/lzma/filter.h | 7 ++++---
+ 1 file changed, 4 insertions(+), 3 deletions(-)
+
+commit 531e78e5a253a3e2c4d4dd1505acaccee48f4083
+Author: Lasse Collin <lasse.collin@tukaani.org>
+Date:   2019-05-01 16:52:36 +0300
+
+    Update THANKS.
+
+ THANKS | 1 +
+ 1 file changed, 1 insertion(+)
+
+commit 905de7e93528ca5a47039e7e1e5270163f9fc67e
+Author: Lasse Collin <lasse.collin@tukaani.org>
+Date:   2019-05-01 16:43:16 +0300
+
+    Windows: Update VS version in windows/vs2019/config.h.
+
+ windows/vs2019/config.h | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+commit 0ffd30e172fd18cc619823b2a86448bf56a67e22
+Author: Julien Marrec <julien.marrec@gmail.com>
+Date:   2019-04-25 17:44:06 +0200
+
+    Windows: Upgrade solution itself
+
+ windows/vs2019/xz_win.sln | 7 +++++--
+ 1 file changed, 5 insertions(+), 2 deletions(-)
+
+commit c2ef96685fc7ca36311649eeb2284b9808292040
+Author: Julien Marrec <julien.marrec@gmail.com>
+Date:   2019-04-25 17:40:24 +0200
+
+    Windows: Upgrade solution with VS2019
+
+ windows/vs2019/liblzma.vcxproj     | 15 ++++++++-------
+ windows/vs2019/liblzma_dll.vcxproj | 15 ++++++++-------
+ 2 files changed, 16 insertions(+), 14 deletions(-)
+
+commit 25fccaf00bea399d8aa026e5b8fa254ce196e6e0
+Author: Julien Marrec <julien.marrec@gmail.com>
+Date:   2019-04-25 17:39:32 +0200
+
+    Windows: Duplicate windows/vs2017 before upgrading
+
+ windows/vs2019/config.h            | 148 ++++++++++++++
+ windows/vs2019/liblzma.vcxproj     | 354 ++++++++++++++++++++++++++++++++++
+ windows/vs2019/liblzma_dll.vcxproj | 383 +++++++++++++++++++++++++++++++++++++
+ windows/vs2019/xz_win.sln          |  48 +++++
+ 4 files changed, 933 insertions(+)
+
+commit 1424078d6328291c7c524b64328ce9660617cb24
+Author: Lasse Collin <lasse.collin@tukaani.org>
+Date:   2019-01-13 17:29:23 +0200
+
+    Windows/VS2017: Omit WindowsTargetPlatformVersion from project files.
+    
+    I understood that if a WTPV is specified, it's often wrong
+    because different VS installations have different SDK version
+    installed. Omitting the WTPV tag makes VS2017 default to
+    Windows SDK 8.1 which often is also missing, so in any case
+    people may need to specify the WTPV before building. But some
+    day in the future a missing WTPV tag will start to default to
+    the latest installed SDK which sounds reasonable:
+    
+    https://developercommunity.visualstudio.com/content/problem/140294/windowstargetplatformversion-makes-it-impossible-t.html
+    
+    Thanks to "dom".
+
+ windows/INSTALL-MSVC.txt           | 4 ++++
+ windows/vs2017/liblzma.vcxproj     | 1 -
+ windows/vs2017/liblzma_dll.vcxproj | 1 -
+ 3 files changed, 4 insertions(+), 2 deletions(-)
+
 commit b5be61cc06088bb07f488f9baf7d447ff47b37c1
 Author: Lasse Collin <lasse.collin@tukaani.org>
 Date:   2018-04-29 19:00:06 +0300
index 386706a..1364ff2 100644 (file)
@@ -564,7 +564,7 @@ REFERENCES_RELATION    = YES
 # If the REFERENCES_LINK_SOURCE tag is set to YES (the default)
 # and SOURCE_BROWSER tag is set to YES, then the hyperlinks from
 # functions in REFERENCES_RELATION and REFERENCED_BY_RELATION lists will
-# link to the source code.  Otherwise they will link to the documentstion.
+# link to the source code.  Otherwise they will link to the documentation.
 
 REFERENCES_LINK_SOURCE = YES
 
diff --git a/INSTALL b/INSTALL
index c59bec5..a55affb 100644 (file)
--- a/INSTALL
+++ b/INSTALL
@@ -14,6 +14,7 @@ XZ Utils Installation
             1.2.6. Tru64
             1.2.7. Windows
             1.2.8. DOS
+            1.2.9. z/OS
        1.3. Adding support for new platforms
     2. configure options
        2.1. Static vs. dynamic linking of liblzma
@@ -123,8 +124,11 @@ XZ Utils Installation
     as an argument to the configure script.
 
     test_scripts.sh in "make check" may fail if good enough tools are
-    missing from PATH (/usr/xpg4/bin or /usr/xpg6/bin). See sections
-    4.5 and 3.2 for more information.
+    missing from PATH (/usr/xpg4/bin or /usr/xpg6/bin). Nowadays
+    /usr/xpg4/bin is added to the script PATH by default on Solaris
+    (see --enable-path-for-scripts=PREFIX in section 2), but old xz
+    releases needed extra steps. See sections 4.5 and 3.2 for more
+    information.
 
 
 1.2.6. Tru64
@@ -136,8 +140,22 @@ XZ Utils Installation
 
 1.2.7. Windows
 
-    Building XZ Utils on Windows is supported under the following
-    environments:
+    If it is enough to build liblzma (no command line tools):
+
+      - There is experimental CMake support. As it is, it should be
+        good enough to build static liblzma with Visual Studio.
+        Building liblzma.dll might work too (if it doesn't, it should
+        be fixed). The CMake support may work with MinGW or MinGW-w64.
+        Read the comment in the beginning of CMakeLists.txt before
+        running CMake!
+
+      - There are Visual Studio project files under the "windows"
+        directory. See windows/INSTALL-MSVC.txt. In the future the
+        project files will be removed when CMake support is good
+        enough. Thus, please test the CMake version and help fix
+        possible issues.
+
+    To build also the command line tools:
 
       - MinGW-w64 + MSYS (32-bit and 64-bit x86): This is used
         for building the official binary packages for Windows.
@@ -153,9 +171,6 @@ XZ Utils Installation
         which is safe under older Cygwin versions. You can check
         the Cygwin version with the command "cygcheck -V".
 
-      - Microsoft Visual Studio 2013 update 2 or later (MSVC for short):
-        See windows/INSTALL-MSVC.txt for more information.
-
     It may be possible to build liblzma with other toolchains too, but
     that will probably require writing a separate makefile. Building
     the command line tools with non-GNU toolchains will be harder than
@@ -168,12 +183,31 @@ XZ Utils Installation
 
 1.2.8. DOS
 
-    There is an experimental Makefile in the "dos" directory to build
-    XZ Utils on DOS using DJGPP. Support for long file names (LFN) is
-    needed. See dos/README for more information.
+    There is a Makefile in the "dos" directory to build XZ Utils on
+    DOS using DJGPP. Support for long file names (LFN) is needed at
+    build time but the resulting xz.exe works without LFN support too.
+    See dos/INSTALL.txt and dos/README.txt for more information.
+
+
+1.2.9. z/OS
+
+    To build XZ Utils on z/OS UNIX System Services using xlc, pass
+    these options to the configure script: CC='xlc -qhaltonmsg=CCN3296'
+    CPPFLAS='-D_UNIX03_THREADS -D_XOPEN_SOURCE=600'. The first makes
+    xlc throw an error if a header file is missing, which is required
+    to make the tests in configure work. The CPPFLAGS are needed to
+    get pthread support (some other CPPFLAGS may work too; if there
+    are problems, try -D_UNIX95_THREADS instead of -D_UNIX03_THREADS).
 
-    GNU Autotools based build hasn't been tried on DOS. If you try, I
-    would like to hear if it worked.
+    test_scripts.sh in "make check" will fail even if the scripts
+    actually work because the test data includes compressed files
+    with US-ASCII text.
+
+    No other tests should fail. If test_files.sh fails, check that
+    the included .xz test files weren't affected by EBCDIC conversion.
+
+    XZ Utils doesn't have code to detect the amount of physical RAM and
+    number of CPU cores on z/OS.
 
 
 1.3. Adding support for new platforms
@@ -400,12 +434,6 @@ XZ Utils Installation
                                 one thread, something bad may happen.
 
     --enable-sandbox=METHOD
-                This feature is EXPERIMENTAL in the XZ Utils 5.2.x and
-                disabled by default. If you test this, look especially
-                if message translations and locale-specific decimal and
-                thousand separators (e.g. xz --list foo.xz) work the
-                same way as they do without sandboxing.
-
                 There is limited sandboxing support in the xz tool. If
                 built with sandbox support, it's used automatically when
                 (de)compressing exactly one file to standard output and
@@ -443,6 +471,23 @@ XZ Utils Installation
                 and should work on most systems. This has no effect on the
                 resulting binaries.
 
+    --enable-path-for-scripts=PREFIX
+                If PREFIX isn't empty, PATH=PREFIX:$PATH will be set in
+                the beginning of the scripts (xzgrep and others).
+                The default is empty except on Solaris the default is
+                /usr/xpg4/bin.
+
+                This can be useful if the default PATH doesn't contain
+                modern POSIX tools (as can be the case on Solaris) or if
+                one wants to ensure that the correct xz binary is in the
+                PATH for the scripts. Note that the latter use can break
+                "make check" if the prefixed PATH causes a wrong xz binary
+                (other than the one that was just built) to be used.
+
+                Older xz releases support a different method for setting
+                the PATH for the scripts. It is described in section 3.2
+                and is supported in this xz version too.
+
 
 2.1. Static vs. dynamic linking of liblzma
 
@@ -515,11 +560,17 @@ XZ Utils Installation
 
 3.2. PATH
 
+    The method described below is supported by older xz releases.
+    It is supported by the current version too, but the newer
+    --enable-path-for-scripts=PREFIX described in section 2 may be
+    more convenient.
+
     The scripts assume that the required tools (standard POSIX utilities,
-    mktemp, and xz) are in PATH; the scripts don't set the PATH themselves.
-    Some people like this while some think this is a bug. Those in the
-    latter group can easily patch the scripts before running the configure
-    script by taking advantage of a placeholder line in the scripts.
+    mktemp, and xz) are in PATH; the scripts don't set the PATH themselves
+    (except as described for --enable-path-for-scripts=PREFIX). Some
+    people like this while some think this is a bug. Those in the latter
+    group can easily patch the scripts before running the configure script
+    by taking advantage of a placeholder line in the scripts.
 
     For example, to make the scripts prefix /usr/bin:/bin to PATH:
 
@@ -593,8 +644,9 @@ XZ Utils Installation
     some tools are missing from the current PATH or the tools lack
     support for some POSIX features. This can happen at least on
     Solaris where the tools in /bin may be ancient but good enough
-    tools are available in /usr/xpg4/bin or /usr/xpg6/bin. One fix
-    for this problem is described in section 3.2 of this file.
+    tools are available in /usr/xpg4/bin or /usr/xpg6/bin. For possible
+    fixes, see --enable-path-for-scripts=PREFIX in section 2 and the
+    older alternative method described in section 3.2 of this file.
 
     If tests other than test_scripts.sh fail, a likely reason is that
     libtool links the test programs against an installed version of
index 81fd332..8865734 100644 (file)
@@ -1,8 +1,8 @@
 Installation Instructions
 *************************
 
-Copyright (C) 1994, 1995, 1996, 1999, 2000, 2001, 2002, 2004, 2005,
-2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc.
+   Copyright (C) 1994-1996, 1999-2002, 2004-2016 Free Software
+Foundation, Inc.
 
    Copying and distribution of this file, with or without modification,
 are permitted in any medium without royalty provided the copyright
@@ -12,97 +12,96 @@ 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
+   Briefly, the shell command './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
+'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
+   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
+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').
+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.
+   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
+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
+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 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.
+  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
+     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.
+  2. Type 'make' to compile the package.
 
-  3. Optionally, type `make check' to run any self-tests that come with
+  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
+  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
+     user, and only the 'make install' phase executed with root
      privileges.
 
-  5. Optionally, type `make installcheck' to repeat any self-tests, but
+  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
+     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
+     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
+  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
+  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.
+     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'
+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:
+   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
 
@@ -113,21 +112,21 @@ 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
+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.
+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
+   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
+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
+"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" \
@@ -136,100 +135,104 @@ this:
 
    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.
+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
+   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
+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
+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
+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
+'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
+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
+'${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.
+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
+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
+   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.
+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
+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
+overridden with 'make V=1'; while running './configure
 --disable-silent-rules' sets the default to verbose, which can be
-overridden with `make V=0'.
+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
+   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
+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"
 
@@ -237,26 +240,26 @@ and if that doesn't work, try
 
      ./configure CC="cc -nodtk"
 
-   On Solaris, don't put `/usr/ucb' early in your `PATH'.  This
+   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'.
+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:
+   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
+   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
+_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:
+'--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
 
@@ -265,101 +268,101 @@ 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
+   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
+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'.
+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.
+   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
+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:
+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
+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 bug.  Until the bug is fixed you can use this workaround:
+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 /bin/bash ./configure CONFIG_SHELL=/bin/bash
+     CONFIG_SHELL=/bin/bash ./configure CONFIG_SHELL=/bin/bash
 
-`configure' Invocation
+'configure' Invocation
 ======================
 
-   `configure' recognizes the following options to control how it
+   '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'
+'-h'
+     Print a summary of all of the options to 'configure', and exit.
 
-`--help=short'
-`--help=recursive'
+'--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.
+     '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'
+'--version'
+'-V'
+     Print the version of Autoconf used to generate the 'configure'
      script, and exit.
 
-`--cache-file=FILE'
+'--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
+     traditionally 'config.cache'.  FILE defaults to '/dev/null' to
      disable caching.
 
-`--config-cache'
-`-C'
-     Alias for `--cache-file=config.cache'.
+'--config-cache'
+'-C'
+     Alias for '--cache-file=config.cache'.
 
-`--quiet'
-`--silent'
-`-q'
+'--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
+     suppress all normal output, redirect it to '/dev/null' (any error
      messages will still be shown).
 
-`--srcdir=DIR'
+'--srcdir=DIR'
      Look for the package's source code in directory DIR.  Usually
-     `configure' can determine that directory automatically.
+     '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.
+'--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'
+'--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.
-
+'configure' also accepts some other, not widely useful, options.  Run
+'configure --help' for more details.
index 16db514..3a63499 100644 (file)
@@ -47,6 +47,7 @@ dist_examplesold_DATA = \
 endif
 
 EXTRA_DIST = \
+       po4a \
        extra \
        dos \
        windows \
@@ -99,8 +100,11 @@ dist-hook:
        fi
 
 # This works with GNU tar and gives cleaner package than normal 'make dist'.
+# This also ensures that the man page translations are up to date (dist-hook
+# would be too late for that).
 mydist:
        sh "$(srcdir)/src/liblzma/validate_map.sh"
+       cd "$(srcdir)/po4a" && sh update-po
        VERSION=$(VERSION); \
        if test -d "$(srcdir)/.git" && type git > /dev/null 2>&1; then \
                SNAPSHOT=`cd "$(srcdir)" && git describe --abbrev=4 | cut -b2-`; \
index 4ce497d..e3c5e79 100644 (file)
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.15.1 from Makefile.am.
+# Makefile.in generated by automake 1.16.1 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2017 Free Software Foundation, Inc.
+# Copyright (C) 1994-2018 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -93,14 +93,15 @@ subdir = .
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/m4/ax_check_capsicum.m4 \
        $(top_srcdir)/m4/ax_pthread.m4 $(top_srcdir)/m4/getopt.m4 \
-       $(top_srcdir)/m4/gettext.m4 $(top_srcdir)/m4/iconv.m4 \
-       $(top_srcdir)/m4/intlmacosx.m4 $(top_srcdir)/m4/lib-ld.m4 \
-       $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \
-       $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \
-       $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \
-       $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/m4/nls.m4 \
-       $(top_srcdir)/m4/po.m4 $(top_srcdir)/m4/posix-shell.m4 \
-       $(top_srcdir)/m4/progtest.m4 $(top_srcdir)/m4/tuklib_common.m4 \
+       $(top_srcdir)/m4/gettext.m4 $(top_srcdir)/m4/host-cpu-c-abi.m4 \
+       $(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/intlmacosx.m4 \
+       $(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \
+       $(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/libtool.m4 \
+       $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \
+       $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \
+       $(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/po.m4 \
+       $(top_srcdir)/m4/posix-shell.m4 $(top_srcdir)/m4/progtest.m4 \
+       $(top_srcdir)/m4/tuklib_common.m4 \
        $(top_srcdir)/m4/tuklib_cpucores.m4 \
        $(top_srcdir)/m4/tuklib_integer.m4 \
        $(top_srcdir)/m4/tuklib_mbstr.m4 \
@@ -192,7 +193,7 @@ am__recursive_targets = \
   $(RECURSIVE_CLEAN_TARGETS) \
   $(am__extra_recursive_targets)
 AM_RECURSIVE_TARGETS = $(am__recursive_targets:-recursive=) TAGS CTAGS \
-       cscope distdir dist dist-all distcheck
+       cscope distdir distdir-am dist dist-all distcheck
 am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) \
        $(LISP)config.h.in
 # Read a list of newline-separated strings from the standard input,
@@ -330,8 +331,8 @@ MAKEINFO = @MAKEINFO@
 MANIFEST_TOOL = @MANIFEST_TOOL@
 MKDIR_P = @MKDIR_P@
 MSGFMT = @MSGFMT@
-MSGFMT_015 = @MSGFMT_015@
 MSGMERGE = @MSGMERGE@
+MSGMERGE_FOR_MSGFMT_OPTION = @MSGMERGE_FOR_MSGFMT_OPTION@
 NM = @NM@
 NMEDIT = @NMEDIT@
 OBJDUMP = @OBJDUMP@
@@ -387,6 +388,7 @@ datadir = @datadir@
 datarootdir = @datarootdir@
 docdir = @docdir@
 dvidir = @dvidir@
+enable_path_for_scripts = @enable_path_for_scripts@
 exec_prefix = @exec_prefix@
 host = @host@
 host_alias = @host_alias@
@@ -450,6 +452,7 @@ SUBDIRS = $(am__append_1) src po tests
 @COND_DOC_TRUE@        doc/examples_old/xz_pipe_decomp.c
 
 EXTRA_DIST = \
+       po4a \
        extra \
        dos \
        windows \
@@ -501,8 +504,8 @@ Makefile: $(srcdir)/Makefile.in $(top_builddir)/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);; \
+           echo ' cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__maybe_remake_depfiles)'; \
+           cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__maybe_remake_depfiles);; \
        esac;
 
 $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
@@ -709,7 +712,10 @@ distclean-tags:
        -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
        -rm -f cscope.out cscope.in.out cscope.po.out cscope.files
 
-distdir: $(DISTFILES)
+distdir: $(BUILT_SOURCES)
+       $(MAKE) $(AM_MAKEFLAGS) distdir-am
+
+distdir-am: $(DISTFILES)
        $(am__remove_distdir)
        test -d "$(distdir)" || mkdir "$(distdir)"
        @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
@@ -1066,8 +1072,11 @@ dist-hook:
        fi
 
 # This works with GNU tar and gives cleaner package than normal 'make dist'.
+# This also ensures that the man page translations are up to date (dist-hook
+# would be too late for that).
 mydist:
        sh "$(srcdir)/src/liblzma/validate_map.sh"
+       cd "$(srcdir)/po4a" && sh update-po
        VERSION=$(VERSION); \
        if test -d "$(srcdir)/.git" && type git > /dev/null 2>&1; then \
                SNAPSHOT=`cd "$(srcdir)" && git describe --abbrev=4 | cut -b2-`; \
diff --git a/NEWS b/NEWS
index f2a1ad3..d3f7d60 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -2,6 +2,111 @@
 XZ Utils Release Notes
 ======================
 
+5.2.5 (2020-03-17)
+
+    * liblzma:
+
+        - Fixed several C99/C11 conformance bugs. Now the code is clean
+          under gcc/clang -fsanitize=undefined. Some of these changes
+          might have a negative effect on performance with old GCC
+          versions or compilers other than GCC and Clang. The configure
+          option --enable-unsafe-type-punning can be used to (mostly)
+          restore the old behavior but it shouldn't normally be used.
+
+        - Improved API documentation of lzma_properties_decode().
+
+        - Added a very minor encoder speed optimization.
+
+    * xz:
+
+        - Fixed a crash in "xz -dcfv not_an_xz_file". All four options
+          were required to trigger it. The crash occurred in the
+          progress indicator code when xz was in passthru mode where
+          xz works like "cat".
+
+        - Fixed an integer overflow with 32-bit off_t. It could happen
+          when decompressing a file that has a long run of zero bytes
+          which xz would try to write as a sparse file. Since the build
+          system enables large file support by default, off_t is
+          normally 64-bit even on 32-bit systems.
+
+        - Fixes for --flush-timeout:
+            * Fix semi-busy-waiting.
+            * Avoid unneeded flushes when no new input has arrived
+              since the previous flush was completed.
+
+        - Added a special case for 32-bit xz: If --memlimit-compress is
+          used to specify a limit that exceeds 4020 MiB, the limit will
+          be set to 4020 MiB. The values "0" and "max" aren't affected
+          by this and neither is decompression. This hack can be
+          helpful when a 32-bit xz has access to 4 GiB address space
+          but the specified memlimit exceeds 4 GiB. This can happen
+          e.g. with some scripts.
+
+        - Capsicum sandbox is now enabled by default where available
+          (FreeBSD >= 10). The sandbox debug messages (xz -vv) were
+          removed since they seemed to be more annoying than useful.
+
+        - DOS build now requires DJGPP 2.05 instead of 2.04beta.
+          A workaround for a locale problem with DJGPP 2.05 was added.
+
+    * xzgrep and other scripts:
+
+        - Added a configure option --enable-path-for-scripts=PREFIX.
+          It is disabled by default except on Solaris where the default
+          is /usr/xpg4/bin. See INSTALL for details.
+
+        - Added a workaround for a POSIX shell detection problem on
+          Solaris.
+
+    * Build systems:
+
+        - Added preliminary build instructions for z/OS. See INSTALL
+          section 1.2.9.
+
+        - Experimental CMake support was added. It should work to build
+          static liblzma on a few operating systems. It may or may not
+          work to build shared liblzma. On some platforms it can build
+          xz and xzdec too but those are only for testing. See the
+          comment in the beginning of CMakeLists.txt for details.
+
+        - Visual Studio project files were updated.
+          WindowsTargetPlatformVersion was removed from VS2017 files
+          and set to "10.0" in the added VS2019 files. In the future
+          the VS project files will be removed when CMake support is
+          good enough.
+
+        - New #defines in config.h: HAVE___BUILTIN_ASSUME_ALIGNED,
+          HAVE___BUILTIN_BSWAPXX, and TUKLIB_USE_UNSAFE_TYPE_PUNNING.
+
+        - autogen.sh has a new optional dependency on po4a and a new
+          option --no-po4a to skip that step. This matters only if one
+          wants to remake the build files. po4a is used to update the
+          translated man pages but as long as the man pages haven't
+          been modified, there's nothing to update and one can use
+          --no-po4a to avoid the dependency on po4a.
+
+    * Translations:
+
+        - XZ Utils translations are now handled by the Translation
+          Project: https://translationproject.org/domain/xz.html
+
+        - All man pages are now included in German too.
+
+        - New xz translations: Brazilian Portuguese, Finnish,
+          Hungarian, Chinese (simplified), Chinese (traditional),
+          and Danish (partial translation)
+
+        - Updated xz translations: French, German, Italian, and Polish
+
+        - Unfortunately a few new xz translations weren't included due
+          to technical problems like too long lines in --help output or
+          misaligned column headings in tables. In the future, many of
+          these strings will be split and e.g. the table column
+          alignment will be handled in software. This should make the
+          strings easier to translate.
+
+
 5.2.4 (2018-04-29)
 
     * liblzma:
@@ -21,7 +126,7 @@ XZ Utils Release Notes
     * xz:
 
         - Fix "xz --list --robot missing_or_bad_file.xz" which would
-          try to print an unitialized string and thus produce garbage
+          try to print an uninitialized string and thus produce garbage
           output. Since the exit status is non-zero, most uses of such
           a command won't try to interpret the garbage output.
 
diff --git a/README b/README
index 720a1a5..3f0c38d 100644 (file)
--- a/README
+++ b/README
@@ -9,7 +9,7 @@ XZ Utils
        1.3. Documentation for liblzma
     2. Version numbering
     3. Reporting bugs
-    4. Translating the xz tool
+    4. Translations
     5. Other implementations of the .xz format
     6. Contact information
 
@@ -55,9 +55,11 @@ XZ Utils
     Similarly, it is possible that some day there is a filter that will
     compress better than LZMA2.
 
-    XZ Utils doesn't support multithreaded compression or decompression
-    yet. It has been planned though and taken into account when designing
-    the .xz file format.
+    XZ Utils supports multithreaded compression. XZ Utils doesn't support
+    multithreaded decompression yet. It has been planned though and taken
+    into account when designing the .xz file format. In the future, files
+    that were created in threaded mode can be decompressed in threaded
+    mode too.
 
 
 1. Documentation
@@ -103,14 +105,13 @@ XZ Utils
     and data type as Doxygen tags. These docs should be quite OK as
     a quick reference.
 
-    I have planned to write a bunch of very well documented example
-    programs, which (due to comments) should work as a tutorial to
-    various features of liblzma. No such example programs have been
-    written yet.
+    There are a few example/tutorial programs that should help in
+    getting started with liblzma. In the source package the examples
+    are in "doc/examples" and in binary packages they may be under
+    "examples" in the same directory as this README.
 
-    For now, if you have never used liblzma, libbzip2, or zlib, I
-    recommend learning the *basics* of the zlib API. Once you know that,
-    it should be easier to learn liblzma.
+    Since the liblzma API has similarities to the zlib API, some people
+    may find it useful to read the zlib docs and tutorial too:
 
         http://zlib.net/manual.html
         http://zlib.net/zlib_how.html
@@ -192,91 +193,18 @@ XZ Utils
     system.
 
 
-4. Translating the xz tool
---------------------------
-
-    The messages from the xz tool have been translated into a few
-    languages. Before starting to translate into a new language, ask
-    the author whether someone else hasn't already started working on it.
-
-    Test your translation. Testing includes comparing the translated
-    output to the original English version by running the same commands
-    in both your target locale and with LC_ALL=C. Ask someone to
-    proof-read and test the translation.
-
-    Testing can be done e.g. by installing xz into a temporary directory:
-
-        ./configure --disable-shared --prefix=/tmp/xz-test
-        # <Edit the .po file in the po directory.>
-        make -C po update-po
-        make install
-        bash debug/translation.bash | less
-        bash debug/translation.bash | less -S  # For --list outputs
-
-    Repeat the above as needed (no need to re-run configure though).
-
-    Note especially the following:
-
-      - The output of --help and --long-help must look nice on
-        an 80-column terminal. It's OK to add extra lines if needed.
-
-      - In contrast, don't add extra lines to error messages and such.
-        They are often preceded with e.g. a filename on the same line,
-        so you have no way to predict where to put a \n. Let the terminal
-        do the wrapping even if it looks ugly. Adding new lines will be
-        even uglier in the generic case even if it looks nice in a few
-        limited examples.
-
-      - Be careful with column alignment in tables and table-like output
-        (--list, --list --verbose --verbose, --info-memory, --help, and
-        --long-help):
-
-          * All descriptions of options in --help should start in the
-            same column (but it doesn't need to be the same column as
-            in the English messages; just be consistent if you change it).
-            Check that both --help and --long-help look OK, since they
-            share several strings.
-
-          * --list --verbose and --info-memory print lines that have
-            the format "Description:   %s". If you need a longer
-            description, you can put extra space between the colon
-            and %s. Then you may need to add extra space to other
-            strings too so that the result as a whole looks good (all
-            values start at the same column).
-
-          * The columns of the actual tables in --list --verbose --verbose
-            should be aligned properly. Abbreviate if necessary. It might
-            be good to keep at least 2 or 3 spaces between column headings
-            and avoid spaces in the headings so that the columns stand out
-            better, but this is a matter of opinion. Do what you think
-            looks best.
-
-      - Be careful to put a period at the end of a sentence when the
-        original version has it, and don't put it when the original
-        doesn't have it. Similarly, be careful with \n characters
-        at the beginning and end of the strings.
-
-      - Read the TRANSLATORS comments that have been extracted from the
-        source code and included in xz.pot. If they suggest testing the
-        translation with some type of command, do it. If testing needs
-        input files, use e.g. tests/files/good-*.xz.
-
-      - When updating the translation, read the fuzzy (modified) strings
-        carefully, and don't mark them as updated before you actually
-        have updated them. Reading through the unchanged messages can be
-        good too; sometimes you may find a better wording for them.
-
-      - If you find language problems in the original English strings,
-        feel free to suggest improvements. Ask if something is unclear.
-
-      - The translated messages should be understandable (sometimes this
-        may be a problem with the original English messages too). Don't
-        make a direct word-by-word translation from English especially if
-        the result doesn't sound good in your language.
-
-    In short, take your time and pay attention to the details. Making
-    a good translation is not a quick and trivial thing to do. The
-    translated xz should look as polished as the English version.
+4. Translations
+---------------
+
+    The xz command line tool and all man pages can be translated.
+    The translations are handled via the Translation Project. If you
+    wish to help translating xz, please join the Translation Project:
+
+        https://translationproject.org/html/translators.html
+
+    Several strings will change in a future version of xz so if you
+    wish to start a new translation, look at the code in the xz git
+    repostiory instead of a 5.2.x release.
 
 
 5. Other implementations of the .xz format
diff --git a/THANKS b/THANKS
index 30fbfb6..4301f20 100644 (file)
--- a/THANKS
+++ b/THANKS
@@ -23,6 +23,7 @@ has been important. :-) In alphabetical order:
   - Milo Casagrande
   - Marek Černocký
   - Tomer Chachamu
+  - Antoine Cœur
   - Gabi Davar
   - Chris Donawa
   - Andrew Dudman
@@ -45,6 +46,7 @@ has been important. :-) In alphabetical order:
   - Peter Ivanov
   - Jouk Jansen
   - Jun I Jin
+  - Kiyoshi Kanazawa
   - Per Øyvind Karlsen
   - Thomas Klausner
   - Richard Koch
@@ -58,10 +60,13 @@ has been important. :-) In alphabetical order:
   - Andraž 'ruskie' Levstik
   - Cary Lewis
   - Wim Lewis
+  - Xin Li
   - Eric Lindblad
   - Lorenzo De Liso
   - Bela Lubkin
   - Gregory Margo
+  - Julien Marrec
+  - Martin Matuška
   - Jim Meyering
   - Arkadiusz Miskiewicz
   - Conley Moorhous
@@ -72,6 +77,7 @@ has been important. :-) In alphabetical order:
   - Jonathan Nieder
   - Andre Noll
   - Peter O'Gorman
+  - Filip Palian
   - Peter Pallinger
   - Rui Paulo
   - Igor Pavlov
@@ -92,10 +98,12 @@ has been important. :-) In alphabetical order:
   - Alexandre Sauvé
   - Benno Schulenberg
   - Andreas Schwab
+  - Bhargava Shastry
   - Dan Shechter
   - Stuart Shelton
   - Sebastian Andrzej Siewior
   - Brad Smith
+  - Bruce Stark
   - Pippijn van Steenhoven
   - Jonathan Stott
   - Dan Stromberg
@@ -103,9 +111,11 @@ has been important. :-) In alphabetical order:
   - Paul Townsend
   - Mohammed Adnène Trojette
   - Alexey Tourbin
+  - Loganaden Velvindron
   - Patrick J. Volkerding
   - Martin Väth
   - Adam Walling
+  - Jeffrey Walton
   - Christian Weisgerber
   - Bert Wesarg
   - Fredrik Wikstrom
index debc0bf..e896dac 100644 (file)
@@ -1,6 +1,6 @@
-# generated automatically by aclocal 1.15.1 -*- Autoconf -*-
+# generated automatically by aclocal 1.16.1 -*- Autoconf -*-
 
-# Copyright (C) 1996-2017 Free Software Foundation, Inc.
+# Copyright (C) 1996-2018 Free Software Foundation, Inc.
 
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -20,7 +20,7 @@ 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-2017 Free Software Foundation, Inc.
+# Copyright (C) 2002-2018 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -32,10 +32,10 @@ To do so, use the procedure documented by the package, typically 'autoreconf'.])
 # 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.15'
+[am__api_version='1.16'
 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.15.1], [],
+m4_if([$1], [1.16.1], [],
       [AC_FATAL([Do not call $0, use AM_INIT_AUTOMAKE([$1]).])])dnl
 ])
 
@@ -51,14 +51,14 @@ m4_define([_AM_AUTOCONF_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.15.1])dnl
+[AM_AUTOMAKE_VERSION([1.16.1])dnl
 m4_ifndef([AC_AUTOCONF_VERSION],
   [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl
 _AM_AUTOCONF_VERSION(m4_defn([AC_AUTOCONF_VERSION]))])
 
 # Figure out how to run the assembler.                      -*- Autoconf -*-
 
-# Copyright (C) 2001-2017 Free Software Foundation, Inc.
+# Copyright (C) 2001-2018 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -78,7 +78,7 @@ _AM_IF_OPTION([no-dependencies],, [_AM_DEPENDENCIES([CCAS])])dnl
 
 # AM_AUX_DIR_EXPAND                                         -*- Autoconf -*-
 
-# Copyright (C) 2001-2017 Free Software Foundation, Inc.
+# Copyright (C) 2001-2018 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -130,7 +130,7 @@ am_aux_dir=`cd "$ac_aux_dir" && pwd`
 
 # AM_CONDITIONAL                                            -*- Autoconf -*-
 
-# Copyright (C) 1997-2017 Free Software Foundation, Inc.
+# Copyright (C) 1997-2018 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -161,7 +161,7 @@ AC_CONFIG_COMMANDS_PRE(
 Usually this means the macro was only invoked conditionally.]])
 fi])])
 
-# Copyright (C) 1999-2017 Free Software Foundation, Inc.
+# Copyright (C) 1999-2018 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -352,13 +352,12 @@ _AM_SUBST_NOTMAKE([am__nodep])dnl
 
 # Generate code to set up dependency tracking.              -*- Autoconf -*-
 
-# Copyright (C) 1999-2017 Free Software Foundation, Inc.
+# Copyright (C) 1999-2018 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_OUTPUT_DEPENDENCY_COMMANDS
 # ------------------------------
 AC_DEFUN([_AM_OUTPUT_DEPENDENCY_COMMANDS],
@@ -366,49 +365,41 @@ AC_DEFUN([_AM_OUTPUT_DEPENDENCY_COMMANDS],
   # Older Autoconf 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
+  # TODO: see whether this extra hack can be removed once we start
+  # requiring Autoconf 2.70 or later.
+  AS_CASE([$CONFIG_FILES],
+          [*\'*], [eval set x "$CONFIG_FILES"],
+          [*], [set x $CONFIG_FILES])
   shift
-  for mf
+  # Used to flag and report bootstrapping failures.
+  am_rc=0
+  for am_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
+    am_mf=`AS_ECHO(["$am_mf"]) | sed -e 's/:.*$//'`
+    # Check whether this is an Automake generated Makefile which includes
+    # dependency-tracking related rules and includes.
+    # Grep'ing the whole file directly is not great: 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"`
-    # 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'`; 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
+    sed -n 's,^am--depfiles:.*,X,p' "$am_mf" | grep X >/dev/null 2>&1 \
+      || continue
+    am_dirpart=`AS_DIRNAME(["$am_mf"])`
+    am_filepart=`AS_BASENAME(["$am_mf"])`
+    AM_RUN_LOG([cd "$am_dirpart" \
+      && sed -e '/# am--include-marker/d' "$am_filepart" \
+        | $MAKE -f - am--depfiles]) || am_rc=$?
   done
+  if test $am_rc -ne 0; then
+    AC_MSG_FAILURE([Something went wrong bootstrapping makefile fragments
+    for automatic dependency tracking.  Try re-running configure with the
+    '--disable-dependency-tracking' option to at least be able to build
+    the package (albeit without support for automatic dependency tracking).])
+  fi
+  AS_UNSET([am_dirpart])
+  AS_UNSET([am_filepart])
+  AS_UNSET([am_mf])
+  AS_UNSET([am_rc])
+  rm -f conftest-deps.mk
 }
 ])# _AM_OUTPUT_DEPENDENCY_COMMANDS
 
@@ -417,18 +408,17 @@ AC_DEFUN([_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.
+# This code is only required when automatic dependency tracking is enabled.
+# This creates each '.Po' and '.Plo' makefile fragment that we'll 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"])
-])
+     [AMDEP_TRUE="$AMDEP_TRUE" MAKE="${MAKE-make}"])])
 
 # Do all the work for Automake.                             -*- Autoconf -*-
 
-# Copyright (C) 1996-2017 Free Software Foundation, Inc.
+# Copyright (C) 1996-2018 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -515,8 +505,8 @@ AC_REQUIRE([AM_PROG_INSTALL_STRIP])dnl
 AC_REQUIRE([AC_PROG_MKDIR_P])dnl
 # For better backward compatibility.  To be removed once Automake 1.9.x
 # dies out for good.  For more background, see:
-# <http://lists.gnu.org/archive/html/automake/2012-07/msg00001.html>
-# <http://lists.gnu.org/archive/html/automake/2012-07/msg00014.html>
+# <https://lists.gnu.org/archive/html/automake/2012-07/msg00001.html>
+# <https://lists.gnu.org/archive/html/automake/2012-07/msg00014.html>
 AC_SUBST([mkdir_p], ['$(MKDIR_P)'])
 # We need awk for the "check" target (and possibly the TAP driver).  The
 # system "awk" is bad on some platforms.
@@ -583,7 +573,7 @@ END
 Aborting the configuration process, to ensure you take notice of the issue.
 
 You can download and install GNU coreutils to get an 'rm' implementation
-that behaves properly: <http://www.gnu.org/software/coreutils/>.
+that behaves properly: <https://www.gnu.org/software/coreutils/>.
 
 If you want to complete the configuration process using your problematic
 'rm' anyway, export the environment variable ACCEPT_INFERIOR_RM_PROGRAM
@@ -625,7 +615,7 @@ for _am_header in $config_headers :; do
 done
 echo "timestamp for $_am_arg" >`AS_DIRNAME(["$_am_arg"])`/stamp-h[]$_am_stamp_count])
 
-# Copyright (C) 2001-2017 Free Software Foundation, Inc.
+# Copyright (C) 2001-2018 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -646,7 +636,7 @@ if test x"${install_sh+set}" != xset; then
 fi
 AC_SUBST([install_sh])])
 
-# Copyright (C) 2003-2017 Free Software Foundation, Inc.
+# Copyright (C) 2003-2018 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -667,7 +657,7 @@ AC_SUBST([am__leading_dot])])
 
 # Check to see how 'make' treats includes.                 -*- Autoconf -*-
 
-# Copyright (C) 2001-2017 Free Software Foundation, Inc.
+# Copyright (C) 2001-2018 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -675,49 +665,42 @@ AC_SUBST([am__leading_dot])])
 
 # AM_MAKE_INCLUDE()
 # -----------------
-# Check to see how make treats includes.
+# Check whether make has an 'include' directive that can support all
+# the idioms we need for our automatic dependency tracking code.
 AC_DEFUN([AM_MAKE_INCLUDE],
-[am_make=${MAKE-make}
-cat > confinc << 'END'
+[AC_MSG_CHECKING([whether ${MAKE-make} supports the include directive])
+cat > confinc.mk << 'END'
 am__doit:
-       @echo this is the am__doit target
+       @echo this is the am__doit target >confinc.out
 .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
-])
+# BSD make does it like this.
+echo '.include "confinc.mk" # ignored' > confmf.BSD
+# Other make implementations (GNU, Solaris 10, AIX) do it like this.
+echo 'include confinc.mk # ignored' > confmf.GNU
+_am_result=no
+for s in GNU BSD; do
+  AM_RUN_LOG([${MAKE-make} -f confmf.$s && cat confinc.out])
+  AS_CASE([$?:`cat confinc.out 2>/dev/null`],
+      ['0:this is the am__doit target'],
+      [AS_CASE([$s],
+          [BSD], [am__include='.include' am__quote='"'],
+          [am__include='include' am__quote=''])])
+  if test "$am__include" != "#"; then
+    _am_result="yes ($s style)"
+    break
+  fi
+done
+rm -f confinc.* confmf.*
+AC_MSG_RESULT([${_am_result}])
+AC_SUBST([am__include])])
+AC_SUBST([am__quote])])
 
 # Fake the existence of programs that GNU maintainers use.  -*- Autoconf -*-
 
-# Copyright (C) 1997-2017 Free Software Foundation, Inc.
+# Copyright (C) 1997-2018 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -756,7 +739,7 @@ fi
 
 # Helper functions for option handling.                     -*- Autoconf -*-
 
-# Copyright (C) 2001-2017 Free Software Foundation, Inc.
+# Copyright (C) 2001-2018 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -785,7 +768,7 @@ AC_DEFUN([_AM_SET_OPTIONS],
 AC_DEFUN([_AM_IF_OPTION],
 [m4_ifset(_AM_MANGLE_OPTION([$1]), [$2], [$3])])
 
-# Copyright (C) 1999-2017 Free Software Foundation, Inc.
+# Copyright (C) 1999-2018 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -832,7 +815,7 @@ AC_LANG_POP([C])])
 # For backward compatibility.
 AC_DEFUN_ONCE([AM_PROG_CC_C_O], [AC_REQUIRE([AC_PROG_CC])])
 
-# Copyright (C) 2001-2017 Free Software Foundation, Inc.
+# Copyright (C) 2001-2018 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -851,7 +834,7 @@ AC_DEFUN([AM_RUN_LOG],
 
 # Check to make sure that the build environment is sane.    -*- Autoconf -*-
 
-# Copyright (C) 1996-2017 Free Software Foundation, Inc.
+# Copyright (C) 1996-2018 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -932,7 +915,7 @@ AC_CONFIG_COMMANDS_PRE(
 rm -f conftest.file
 ])
 
-# Copyright (C) 2009-2017 Free Software Foundation, Inc.
+# Copyright (C) 2009-2018 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -992,7 +975,7 @@ AC_SUBST([AM_BACKSLASH])dnl
 _AM_SUBST_NOTMAKE([AM_BACKSLASH])dnl
 ])
 
-# Copyright (C) 2001-2017 Free Software Foundation, Inc.
+# Copyright (C) 2001-2018 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -1020,7 +1003,7 @@ fi
 INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s"
 AC_SUBST([INSTALL_STRIP_PROGRAM])])
 
-# Copyright (C) 2006-2017 Free Software Foundation, Inc.
+# Copyright (C) 2006-2018 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -1039,7 +1022,7 @@ AC_DEFUN([AM_SUBST_NOTMAKE], [_AM_SUBST_NOTMAKE($@)])
 
 # Check how to create a tarball.                            -*- Autoconf -*-
 
-# Copyright (C) 2004-2017 Free Software Foundation, Inc.
+# Copyright (C) 2004-2018 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -1174,6 +1157,7 @@ m4_include([m4/ax_check_capsicum.m4])
 m4_include([m4/ax_pthread.m4])
 m4_include([m4/getopt.m4])
 m4_include([m4/gettext.m4])
+m4_include([m4/host-cpu-c-abi.m4])
 m4_include([m4/iconv.m4])
 m4_include([m4/intlmacosx.m4])
 m4_include([m4/lib-ld.m4])
index f0195ec..020c365 100755 (executable)
@@ -9,14 +9,25 @@
 #
 ###############################################################################
 
-# The result of using "autoreconf -fi" should be identical to using this
-# script. I'm leaving this script here just in case someone finds it useful.
-
 set -e -x
 
+# The following six lines are almost identical to "autoreconf -fi" but faster.
 ${AUTOPOINT:-autopoint} -f
 ${LIBTOOLIZE:-libtoolize} -c -f || glibtoolize -c -f
 ${ACLOCAL:-aclocal} -I m4
 ${AUTOCONF:-autoconf}
 ${AUTOHEADER:-autoheader}
 ${AUTOMAKE:-automake} -acf --foreign
+
+# Generate the translated man pages if the "po4a" tool is available.
+# This is *NOT* done by "autoreconf -fi" or when "make" is run.
+#
+# Pass --no-po4a to this script to skip this step. It can be useful when
+# you know that po4a isn't available and don't want autogen.sh to exit
+# with non-zero exit status.
+if test "x$1" != "x--no-po4a"; then
+       cd po4a
+       sh update-po
+fi
+
+exit 0
index 2ab71e4..99e5052 100755 (executable)
@@ -1,9 +1,9 @@
 #! /bin/sh
 # Wrapper for compilers which do not understand '-c -o'.
 
-scriptversion=2016-01-11.22; # UTC
+scriptversion=2018-03-07.03; # UTC
 
-# Copyright (C) 1999-2017 Free Software Foundation, Inc.
+# Copyright (C) 1999-2018 Free Software Foundation, Inc.
 # Written by Tom Tromey <tromey@cygnus.com>.
 #
 # This program is free software; you can redistribute it and/or modify
@@ -17,7 +17,7 @@ scriptversion=2016-01-11.22; # UTC
 # GNU General Public License for more details.
 #
 # You should have received a copy of the GNU General Public License
-# along with this program.  If not, see <http://www.gnu.org/licenses/>.
+# along with this program.  If not, see <https://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
@@ -340,7 +340,7 @@ exit $ret
 # Local Variables:
 # mode: shell-script
 # sh-indentation: 2
-# eval: (add-hook 'write-file-hooks 'time-stamp)
+# eval: (add-hook 'before-save-hook 'time-stamp)
 # time-stamp-start: "scriptversion="
 # time-stamp-format: "%:y-%02m-%02d.%02H"
 # time-stamp-time-zone: "UTC0"
index 2193702..256083a 100755 (executable)
@@ -1,8 +1,8 @@
 #! /bin/sh
 # Attempt to guess a canonical system name.
-#   Copyright 1992-2017 Free Software Foundation, Inc.
+#   Copyright 1992-2018 Free Software Foundation, Inc.
 
-timestamp='2017-05-27'
+timestamp='2018-03-08'
 
 # 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
@@ -15,7 +15,7 @@ timestamp='2017-05-27'
 # General Public License for more details.
 #
 # You should have received a copy of the GNU General Public License
-# along with this program; if not, see <http://www.gnu.org/licenses/>.
+# along with this program; if not, see <https://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
@@ -27,7 +27,7 @@ timestamp='2017-05-27'
 # Originally written by Per Bothner; maintained since 2000 by Ben Elliston.
 #
 # 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
+# https://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess
 #
 # Please send patches to <config-patches@gnu.org>.
 
@@ -39,7 +39,7 @@ Usage: $0 [OPTION]
 
 Output the configuration name of the system \`$me' is run on.
 
-Operation modes:
+Options:
   -h, --help         print this help, then exit
   -t, --time-stamp   print date of last modification, then exit
   -v, --version      print version number, then exit
@@ -50,7 +50,7 @@ version="\
 GNU config.guess ($timestamp)
 
 Originally written by Per Bothner.
-Copyright 1992-2017 Free Software Foundation, Inc.
+Copyright 1992-2018 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."
@@ -107,9 +107,9 @@ trap "rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null; exit 1" 1 2 13 15 ;
 dummy=$tmp/dummy ;
 tmpfiles="$dummy.c $dummy.o $dummy.rel $dummy" ;
 case $CC_FOR_BUILD,$HOST_CC,$CC in
- ,,)    echo "int x;" > $dummy.c ;
+ ,,)    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
+         if ($c -c -o "$dummy.o" "$dummy.c") >/dev/null 2>&1 ; then
             CC_FOR_BUILD="$c"; break ;
          fi ;
        done ;
@@ -132,14 +132,14 @@ 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
 
-case "${UNAME_SYSTEM}" in
+case "$UNAME_SYSTEM" in
 Linux|GNU|GNU/*)
        # If the system lacks a compiler, then just pick glibc.
        # We could probably try harder.
        LIBC=gnu
 
-       eval $set_cc_for_build
-       cat <<-EOF > $dummy.c
+       eval "$set_cc_for_build"
+       cat <<-EOF > "$dummy.c"
        #include <features.h>
        #if defined(__UCLIBC__)
        LIBC=uclibc
@@ -149,13 +149,20 @@ Linux|GNU|GNU/*)
        LIBC=gnu
        #endif
        EOF
-       eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^LIBC' | sed 's, ,,g'`
+       eval "`$CC_FOR_BUILD -E "$dummy.c" 2>/dev/null | grep '^LIBC' | sed 's, ,,g'`"
+
+       # If ldd exists, use it to detect musl libc.
+       if command -v ldd >/dev/null && \
+               ldd --version 2>&1 | grep -q ^musl
+       then
+           LIBC=musl
+       fi
        ;;
 esac
 
 # Note: order is significant - the case branches are not exclusive.
 
-case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
+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*,
@@ -169,30 +176,30 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
        # portion of the name.  We always set it to "unknown".
        sysctl="sysctl -n hw.machine_arch"
        UNAME_MACHINE_ARCH=`(uname -p 2>/dev/null || \
-           /sbin/$sysctl 2>/dev/null || \
-           /usr/sbin/$sysctl 2>/dev/null || \
+           "/sbin/$sysctl" 2>/dev/null || \
+           "/usr/sbin/$sysctl" 2>/dev/null || \
            echo unknown)`
-       case "${UNAME_MACHINE_ARCH}" in
+       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 ;;
            earmv*)
-               arch=`echo ${UNAME_MACHINE_ARCH} | sed -e 's,^e\(armv[0-9]\).*$,\1,'`
-               endian=`echo ${UNAME_MACHINE_ARCH} | sed -ne 's,^.*\(eb\)$,\1,p'`
-               machine=${arch}${endian}-unknown
+               arch=`echo "$UNAME_MACHINE_ARCH" | sed -e 's,^e\(armv[0-9]\).*$,\1,'`
+               endian=`echo "$UNAME_MACHINE_ARCH" | sed -ne 's,^.*\(eb\)$,\1,p'`
+               machine="${arch}${endian}"-unknown
                ;;
-           *) machine=${UNAME_MACHINE_ARCH}-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) and ABI.
-       case "${UNAME_MACHINE_ARCH}" in
+       case "$UNAME_MACHINE_ARCH" in
            earm*)
                os=netbsdelf
                ;;
            arm*|i386|m68k|ns32k|sh3*|sparc|vax)
-               eval $set_cc_for_build
+               eval "$set_cc_for_build"
                if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \
                        | grep -q __ELF__
                then
@@ -208,10 +215,10 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
                ;;
        esac
        # Determine ABI tags.
-       case "${UNAME_MACHINE_ARCH}" in
+       case "$UNAME_MACHINE_ARCH" in
            earm*)
                expr='s/^earmv[0-9]/-eabi/;s/eb$//'
-               abi=`echo ${UNAME_MACHINE_ARCH} | sed -e "$expr"`
+               abi=`echo "$UNAME_MACHINE_ARCH" | sed -e "$expr"`
                ;;
        esac
        # The OS release
@@ -219,46 +226,55 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
        # 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
+       case "$UNAME_VERSION" in
            Debian*)
                release='-gnu'
                ;;
            *)
-               release=`echo ${UNAME_RELEASE} | sed -e 's/[-_].*//' | cut -d. -f1,2`
+               release=`echo "$UNAME_RELEASE" | sed -e 's/[-_].*//' | cut -d. -f1,2`
                ;;
        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}${abi}"
+       echo "$machine-${os}${release}${abi}"
        exit ;;
     *:Bitrig:*:*)
        UNAME_MACHINE_ARCH=`arch | sed 's/Bitrig.//'`
-       echo ${UNAME_MACHINE_ARCH}-unknown-bitrig${UNAME_RELEASE}
+       echo "$UNAME_MACHINE_ARCH"-unknown-bitrig"$UNAME_RELEASE"
        exit ;;
     *:OpenBSD:*:*)
        UNAME_MACHINE_ARCH=`arch | sed 's/OpenBSD.//'`
-       echo ${UNAME_MACHINE_ARCH}-unknown-openbsd${UNAME_RELEASE}
+       echo "$UNAME_MACHINE_ARCH"-unknown-openbsd"$UNAME_RELEASE"
        exit ;;
     *:LibertyBSD:*:*)
        UNAME_MACHINE_ARCH=`arch | sed 's/^.*BSD\.//'`
-       echo ${UNAME_MACHINE_ARCH}-unknown-libertybsd${UNAME_RELEASE}
+       echo "$UNAME_MACHINE_ARCH"-unknown-libertybsd"$UNAME_RELEASE"
+       exit ;;
+    *:MidnightBSD:*:*)
+       echo "$UNAME_MACHINE"-unknown-midnightbsd"$UNAME_RELEASE"
        exit ;;
     *:ekkoBSD:*:*)
-       echo ${UNAME_MACHINE}-unknown-ekkobsd${UNAME_RELEASE}
+       echo "$UNAME_MACHINE"-unknown-ekkobsd"$UNAME_RELEASE"
        exit ;;
     *:SolidBSD:*:*)
-       echo ${UNAME_MACHINE}-unknown-solidbsd${UNAME_RELEASE}
+       echo "$UNAME_MACHINE"-unknown-solidbsd"$UNAME_RELEASE"
        exit ;;
     macppc:MirBSD:*:*)
-       echo powerpc-unknown-mirbsd${UNAME_RELEASE}
+       echo powerpc-unknown-mirbsd"$UNAME_RELEASE"
        exit ;;
     *:MirBSD:*:*)
-       echo ${UNAME_MACHINE}-unknown-mirbsd${UNAME_RELEASE}
+       echo "$UNAME_MACHINE"-unknown-mirbsd"$UNAME_RELEASE"
        exit ;;
     *:Sortix:*:*)
-       echo ${UNAME_MACHINE}-unknown-sortix
+       echo "$UNAME_MACHINE"-unknown-sortix
+       exit ;;
+    *:Redox:*:*)
+       echo "$UNAME_MACHINE"-unknown-redox
        exit ;;
+    mips:OSF1:*.*)
+        echo mips-dec-osf1
+        exit ;;
     alpha:OSF1:*:*)
        case $UNAME_RELEASE in
        *4.0)
@@ -310,28 +326,19 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
        # 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`
+       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
+       echo "$UNAME_MACHINE"-unknown-amigaos
        exit ;;
     *:[Mm]orph[Oo][Ss]:*:*)
-       echo ${UNAME_MACHINE}-unknown-morphos
+       echo "$UNAME_MACHINE"-unknown-morphos
        exit ;;
     *:OS/390:*:*)
        echo i370-ibm-openedition
@@ -343,7 +350,7 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
        echo powerpc-ibm-os400
        exit ;;
     arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*)
-       echo arm-acorn-riscix${UNAME_RELEASE}
+       echo arm-acorn-riscix"$UNAME_RELEASE"
        exit ;;
     arm*:riscos:*:*|arm*:RISCOS:*:*)
        echo arm-unknown-riscos
@@ -370,19 +377,19 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
            sparc) echo sparc-icl-nx7; exit ;;
        esac ;;
     s390x:SunOS:*:*)
-       echo ${UNAME_MACHINE}-ibm-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
+       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/[^.]*//'`
+       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/[^.]*//'`
+       echo sparc-sun-solaris2"`echo "$UNAME_RELEASE" | sed -e 's/[^.]*//'`"
        exit ;;
     i86pc:AuroraUX:5.*:* | i86xen:AuroraUX:5.*:*)
-       echo i386-pc-auroraux${UNAME_RELEASE}
+       echo i386-pc-auroraux"$UNAME_RELEASE"
        exit ;;
     i86pc:SunOS:5.*:* | i86xen:SunOS:5.*:*)
-       eval $set_cc_for_build
+       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.
@@ -395,13 +402,13 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
                SUN_ARCH=x86_64
            fi
        fi
-       echo ${SUN_ARCH}-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
+       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/[^.]*//'`
+       echo sparc-sun-solaris3"`echo "$UNAME_RELEASE"|sed -e 's/[^.]*//'`"
        exit ;;
     sun4*:SunOS:*:*)
        case "`/usr/bin/arch -k`" in
@@ -410,25 +417,25 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
                ;;
        esac
        # Japanese Language versions have a version number like `4.1.3-JL'.
-       echo sparc-sun-sunos`echo ${UNAME_RELEASE}|sed -e 's/-/_/'`
+       echo sparc-sun-sunos"`echo "$UNAME_RELEASE"|sed -e 's/-/_/'`"
        exit ;;
     sun3*:SunOS:*:*)
-       echo m68k-sun-sunos${UNAME_RELEASE}
+       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
+       test "x$UNAME_RELEASE" = x && UNAME_RELEASE=3
        case "`/bin/arch`" in
            sun3)
-               echo m68k-sun-sunos${UNAME_RELEASE}
+               echo m68k-sun-sunos"$UNAME_RELEASE"
                ;;
            sun4)
-               echo sparc-sun-sunos${UNAME_RELEASE}
+               echo sparc-sun-sunos"$UNAME_RELEASE"
                ;;
        esac
        exit ;;
     aushp:SunOS:*:*)
-       echo sparc-auspex-sunos${UNAME_RELEASE}
+       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
@@ -439,44 +446,44 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
     # 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}
+       echo m68k-atari-mint"$UNAME_RELEASE"
        exit ;;
     atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*)
-       echo m68k-atari-mint${UNAME_RELEASE}
+       echo m68k-atari-mint"$UNAME_RELEASE"
        exit ;;
     *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*)
-       echo m68k-atari-mint${UNAME_RELEASE}
+       echo m68k-atari-mint"$UNAME_RELEASE"
        exit ;;
     milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*)
-       echo m68k-milan-mint${UNAME_RELEASE}
+       echo m68k-milan-mint"$UNAME_RELEASE"
        exit ;;
     hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*)
-       echo m68k-hades-mint${UNAME_RELEASE}
+       echo m68k-hades-mint"$UNAME_RELEASE"
        exit ;;
     *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*)
-       echo m68k-unknown-mint${UNAME_RELEASE}
+       echo m68k-unknown-mint"$UNAME_RELEASE"
        exit ;;
     m68k:machten:*:*)
-       echo m68k-apple-machten${UNAME_RELEASE}
+       echo m68k-apple-machten"$UNAME_RELEASE"
        exit ;;
     powerpc:machten:*:*)
-       echo powerpc-apple-machten${UNAME_RELEASE}
+       echo powerpc-apple-machten"$UNAME_RELEASE"
        exit ;;
     RISC*:Mach:*:*)
        echo mips-dec-mach_bsd4.3
        exit ;;
     RISC*:ULTRIX:*:*)
-       echo mips-dec-ultrix${UNAME_RELEASE}
+       echo mips-dec-ultrix"$UNAME_RELEASE"
        exit ;;
     VAX*:ULTRIX*:*:*)
-       echo vax-dec-ultrix${UNAME_RELEASE}
+       echo vax-dec-ultrix"$UNAME_RELEASE"
        exit ;;
     2020:CLIX:*:* | 2430:CLIX:*:*)
-       echo clipper-intergraph-clix${UNAME_RELEASE}
+       echo clipper-intergraph-clix"$UNAME_RELEASE"
        exit ;;
     mips:*:*:UMIPS | mips:*:*:RISCos)
-       eval $set_cc_for_build
-       sed 's/^        //' << EOF >$dummy.c
+       eval "$set_cc_for_build"
+       sed 's/^        //' << EOF > "$dummy.c"
 #ifdef __cplusplus
 #include <stdio.h>  /* for printf() prototype */
        int main (int argc, char *argv[]) {
@@ -485,23 +492,23 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
 #endif
        #if defined (host_mips) && defined (MIPSEB)
        #if defined (SYSTYPE_SYSV)
-         printf ("mips-mips-riscos%ssysv\n", argv[1]); exit (0);
+         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);
+         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);
+         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` &&
+       $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}
+       echo mips-mips-riscos"$UNAME_RELEASE"
        exit ;;
     Motorola:PowerMAX_OS:*:*)
        echo powerpc-motorola-powermax
@@ -527,17 +534,17 @@ EOF
     AViiON:dgux:*:*)
        # DG/UX returns AViiON for all architectures
        UNAME_PROCESSOR=`/usr/bin/uname -p`
-       if [ $UNAME_PROCESSOR = mc88100 ] || [ $UNAME_PROCESSOR = mc88110 ]
+       if [ "$UNAME_PROCESSOR" = mc88100 ] || [ "$UNAME_PROCESSOR" = mc88110 ]
        then
-           if [ ${TARGET_BINARY_INTERFACE}x = m88kdguxelfx ] || \
-              [ ${TARGET_BINARY_INTERFACE}x = x ]
+           if [ "$TARGET_BINARY_INTERFACE"x = m88kdguxelfx ] || \
+              [ "$TARGET_BINARY_INTERFACE"x = x ]
            then
-               echo m88k-dg-dgux${UNAME_RELEASE}
+               echo m88k-dg-dgux"$UNAME_RELEASE"
            else
-               echo m88k-dg-dguxbcs${UNAME_RELEASE}
+               echo m88k-dg-dguxbcs"$UNAME_RELEASE"
            fi
        else
-           echo i586-dg-dgux${UNAME_RELEASE}
+           echo i586-dg-dgux"$UNAME_RELEASE"
        fi
        exit ;;
     M88*:DolphinOS:*:*)        # DolphinOS (SVR3)
@@ -554,7 +561,7 @@ EOF
        echo m68k-tektronix-bsd
        exit ;;
     *:IRIX*:*:*)
-       echo mips-sgi-irix`echo ${UNAME_RELEASE}|sed -e 's/-/_/g'`
+       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
@@ -566,14 +573,14 @@ EOF
        if [ -x /usr/bin/oslevel ] ; then
                IBM_REV=`/usr/bin/oslevel`
        else
-               IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE}
+               IBM_REV="$UNAME_VERSION.$UNAME_RELEASE"
        fi
-       echo ${UNAME_MACHINE}-ibm-aix${IBM_REV}
+       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
+               eval "$set_cc_for_build"
+               sed 's/^                //' << EOF > "$dummy.c"
                #include <sys/systemcfg.h>
 
                main()
@@ -584,7 +591,7 @@ EOF
                        exit(0);
                        }
 EOF
-               if $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy`
+               if $CC_FOR_BUILD -o "$dummy" "$dummy.c" && SYSTEM_NAME=`"$dummy"`
                then
                        echo "$SYSTEM_NAME"
                else
@@ -598,7 +605,7 @@ EOF
        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
+       if /usr/sbin/lsattr -El "$IBM_CPU_ID" | grep ' POWER' >/dev/null 2>&1; then
                IBM_ARCH=rs6000
        else
                IBM_ARCH=powerpc
@@ -607,18 +614,18 @@ EOF
                IBM_REV=`/usr/bin/lslpp -Lqc bos.rte.libc |
                           awk -F: '{ print $3 }' | sed s/[0-9]*$/0/`
        else
-               IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE}
+               IBM_REV="$UNAME_VERSION.$UNAME_RELEASE"
        fi
-       echo ${IBM_ARCH}-ibm-aix${IBM_REV}
+       echo "$IBM_ARCH"-ibm-aix"$IBM_REV"
        exit ;;
     *:AIX:*:*)
        echo rs6000-ibm-aix
        exit ;;
-    ibmrt:4.4BSD:*|romp-ibm:BSD:*)
+    ibmrt:4.4BSD:*|romp-ibm:4.4BSD:*)
        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
+       echo romp-ibm-bsd"$UNAME_RELEASE"   # 4.3 with uname added to
        exit ;;                             # report: romp-ibm BSD 4.3
     *:BOSX:*:*)
        echo rs6000-bull-bosx
@@ -633,28 +640,28 @@ EOF
        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 ;;
+       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
+                   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
+                       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
+               if [ "$HP_ARCH" = "" ]; then
+                   eval "$set_cc_for_build"
+                   sed 's/^            //' << EOF > "$dummy.c"
 
                #define _HPUX_SOURCE
                #include <stdlib.h>
@@ -687,13 +694,13 @@ EOF
                    exit (0);
                }
 EOF
-                   (CCOPTS="" $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null) && HP_ARCH=`$dummy`
+                   (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 ]
+       if [ "$HP_ARCH" = hppa2.0w ]
        then
-           eval $set_cc_for_build
+           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
@@ -712,15 +719,15 @@ EOF
                HP_ARCH=hppa64
            fi
        fi
-       echo ${HP_ARCH}-hp-hpux${HPUX_REV}
+       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}
+       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
+       eval "$set_cc_for_build"
+       sed 's/^        //' << EOF > "$dummy.c"
        #include <unistd.h>
        int
        main ()
@@ -745,11 +752,11 @@ EOF
          exit (0);
        }
 EOF
-       $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy` &&
+       $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:*:* )
+    9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:*)
        echo hppa1.1-hp-bsd
        exit ;;
     9000/8??:4.3bsd:*:*)
@@ -758,7 +765,7 @@ EOF
     *9??*:MPE/iX:*:* | *3000*:MPE/iX:*:*)
        echo hppa1.0-hp-mpeix
        exit ;;
-    hp7??:OSF1:*:* | hp8?[79]:OSF1:*:* )
+    hp7??:OSF1:*:* | hp8?[79]:OSF1:*:*)
        echo hppa1.1-hp-osf
        exit ;;
     hp8??:OSF1:*:*)
@@ -766,9 +773,9 @@ EOF
        exit ;;
     i*86:OSF1:*:*)
        if [ -x /usr/sbin/sysversion ] ; then
-           echo ${UNAME_MACHINE}-unknown-osf1mk
+           echo "$UNAME_MACHINE"-unknown-osf1mk
        else
-           echo ${UNAME_MACHINE}-unknown-osf1
+           echo "$UNAME_MACHINE"-unknown-osf1
        fi
        exit ;;
     parisc*:Lites*:*:*)
@@ -793,128 +800,109 @@ EOF
        echo c4-convex-bsd
        exit ;;
     CRAY*Y-MP:*:*:*)
-       echo ymp-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
+       echo ymp-cray-unicos"$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/'
        exit ;;
     CRAY*[A-Z]90:*:*:*)
-       echo ${UNAME_MACHINE}-cray-unicos${UNAME_RELEASE} \
+       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/'
+       echo t90-cray-unicos"$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/'
        exit ;;
     CRAY*T3E:*:*:*)
-       echo alphaev5-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
+       echo alphaev5-cray-unicosmk"$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/'
        exit ;;
     CRAY*SV1:*:*:*)
-       echo sv1-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
+       echo sv1-cray-unicos"$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/'
        exit ;;
     *:UNICOS/mp:*:*)
-       echo craynv-cray-unicosmp${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
+       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/ /_/'`
+       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/ /_/'`
+       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}
+       echo "$UNAME_MACHINE"-pc-bsdi"$UNAME_RELEASE"
        exit ;;
     sparc*:BSD/OS:*:*)
-       echo sparc-unknown-bsdi${UNAME_RELEASE}
+       echo sparc-unknown-bsdi"$UNAME_RELEASE"
        exit ;;
     *:BSD/OS:*:*)
-       echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE}
+       echo "$UNAME_MACHINE"-unknown-bsdi"$UNAME_RELEASE"
        exit ;;
     *:FreeBSD:*:*)
        UNAME_PROCESSOR=`/usr/bin/uname -p`
-       case ${UNAME_PROCESSOR} in
+       case "$UNAME_PROCESSOR" in
            amd64)
                UNAME_PROCESSOR=x86_64 ;;
            i386)
                UNAME_PROCESSOR=i586 ;;
        esac
-       echo ${UNAME_PROCESSOR}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`
+       echo "$UNAME_PROCESSOR"-unknown-freebsd"`echo "$UNAME_RELEASE"|sed -e 's/[-(].*//'`"
        exit ;;
     i*:CYGWIN*:*)
-       echo ${UNAME_MACHINE}-pc-cygwin
+       echo "$UNAME_MACHINE"-pc-cygwin
        exit ;;
     *:MINGW64*:*)
-       echo ${UNAME_MACHINE}-pc-mingw64
+       echo "$UNAME_MACHINE"-pc-mingw64
        exit ;;
     *:MINGW*:*)
-       echo ${UNAME_MACHINE}-pc-mingw32
+       echo "$UNAME_MACHINE"-pc-mingw32
        exit ;;
     *:MSYS*:*)
-       echo ${UNAME_MACHINE}-pc-msys
-       exit ;;
-    i*:windows32*:*)
-       # uname -m includes "-pc" on this system.
-       echo ${UNAME_MACHINE}-mingw32
+       echo "$UNAME_MACHINE"-pc-msys
        exit ;;
     i*:PW*:*)
-       echo ${UNAME_MACHINE}-pc-pw32
+       echo "$UNAME_MACHINE"-pc-pw32
        exit ;;
     *:Interix*:*)
-       case ${UNAME_MACHINE} in
+       case "$UNAME_MACHINE" in
            x86)
-               echo i586-pc-interix${UNAME_RELEASE}
+               echo i586-pc-interix"$UNAME_RELEASE"
                exit ;;
            authenticamd | genuineintel | EM64T)
-               echo x86_64-unknown-interix${UNAME_RELEASE}
+               echo x86_64-unknown-interix"$UNAME_RELEASE"
                exit ;;
            IA64)
-               echo ia64-unknown-interix${UNAME_RELEASE}
+               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
+       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/[^.]*//'`
+       echo powerpcle-unknown-solaris2"`echo "$UNAME_RELEASE"|sed -e 's/[^.]*//'`"
        exit ;;
     *:GNU:*:*)
        # the GNU system
-       echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-${LIBC}`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'`
+       echo "`echo "$UNAME_MACHINE"|sed -e 's,[-/].*$,,'`-unknown-$LIBC`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 "[:upper:]" "[:lower:]"``echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`-${LIBC}
+       echo "$UNAME_MACHINE-unknown-`echo "$UNAME_SYSTEM" | sed 's,^[^/]*/,,' | tr "[:upper:]" "[:lower:]"``echo "$UNAME_RELEASE"|sed -e 's/[-(].*//'`-$LIBC"
        exit ;;
     i*86:Minix:*:*)
-       echo ${UNAME_MACHINE}-pc-minix
+       echo "$UNAME_MACHINE"-pc-minix
        exit ;;
     aarch64:Linux:*:*)
-       echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+       echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
        exit ;;
     aarch64_be:Linux:*:*)
        UNAME_MACHINE=aarch64_be
-       echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+       echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
        exit ;;
     alpha:Linux:*:*)
        case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in
@@ -928,63 +916,63 @@ EOF
        esac
        objdump --private-headers /bin/sh | grep -q ld.so.1
        if test "$?" = 0 ; then LIBC=gnulibc1 ; fi
-       echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+       echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
        exit ;;
     arc:Linux:*:* | arceb:Linux:*:*)
-       echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+       echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
        exit ;;
     arm*:Linux:*:*)
-       eval $set_cc_for_build
+       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-${LIBC}
+           echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
        else
            if echo __ARM_PCS_VFP | $CC_FOR_BUILD -E - 2>/dev/null \
                | grep -q __ARM_PCS_VFP
            then
-               echo ${UNAME_MACHINE}-unknown-linux-${LIBC}eabi
+               echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"eabi
            else
-               echo ${UNAME_MACHINE}-unknown-linux-${LIBC}eabihf
+               echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"eabihf
            fi
        fi
        exit ;;
     avr32*:Linux:*:*)
-       echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+       echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
        exit ;;
     cris:Linux:*:*)
-       echo ${UNAME_MACHINE}-axis-linux-${LIBC}
+       echo "$UNAME_MACHINE"-axis-linux-"$LIBC"
        exit ;;
     crisv32:Linux:*:*)
-       echo ${UNAME_MACHINE}-axis-linux-${LIBC}
+       echo "$UNAME_MACHINE"-axis-linux-"$LIBC"
        exit ;;
     e2k:Linux:*:*)
-       echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+       echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
        exit ;;
     frv:Linux:*:*)
-       echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+       echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
        exit ;;
     hexagon:Linux:*:*)
-       echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+       echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
        exit ;;
     i*86:Linux:*:*)
-       echo ${UNAME_MACHINE}-pc-linux-${LIBC}
+       echo "$UNAME_MACHINE"-pc-linux-"$LIBC"
        exit ;;
     ia64:Linux:*:*)
-       echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+       echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
        exit ;;
     k1om:Linux:*:*)
-       echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+       echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
        exit ;;
     m32r*:Linux:*:*)
-       echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+       echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
        exit ;;
     m68*:Linux:*:*)
-       echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+       echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
        exit ;;
     mips:Linux:*:* | mips64:Linux:*:*)
-       eval $set_cc_for_build
-       sed 's/^        //' << EOF >$dummy.c
+       eval "$set_cc_for_build"
+       sed 's/^        //' << EOF > "$dummy.c"
        #undef CPU
        #undef ${UNAME_MACHINE}
        #undef ${UNAME_MACHINE}el
@@ -998,70 +986,70 @@ EOF
        #endif
        #endif
 EOF
-       eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^CPU'`
-       test x"${CPU}" != x && { echo "${CPU}-unknown-linux-${LIBC}"; exit; }
+       eval "`$CC_FOR_BUILD -E "$dummy.c" 2>/dev/null | grep '^CPU'`"
+       test "x$CPU" != x && { echo "$CPU-unknown-linux-$LIBC"; exit; }
        ;;
     mips64el:Linux:*:*)
-       echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+       echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
        exit ;;
     openrisc*:Linux:*:*)
-       echo or1k-unknown-linux-${LIBC}
+       echo or1k-unknown-linux-"$LIBC"
        exit ;;
     or32:Linux:*:* | or1k*:Linux:*:*)
-       echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+       echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
        exit ;;
     padre:Linux:*:*)
-       echo sparc-unknown-linux-${LIBC}
+       echo sparc-unknown-linux-"$LIBC"
        exit ;;
     parisc64:Linux:*:* | hppa64:Linux:*:*)
-       echo hppa64-unknown-linux-${LIBC}
+       echo hppa64-unknown-linux-"$LIBC"
        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-${LIBC} ;;
-         PA8*) echo hppa2.0-unknown-linux-${LIBC} ;;
-         *)    echo hppa-unknown-linux-${LIBC} ;;
+         PA7*) echo hppa1.1-unknown-linux-"$LIBC" ;;
+         PA8*) echo hppa2.0-unknown-linux-"$LIBC" ;;
+         *)    echo hppa-unknown-linux-"$LIBC" ;;
        esac
        exit ;;
     ppc64:Linux:*:*)
-       echo powerpc64-unknown-linux-${LIBC}
+       echo powerpc64-unknown-linux-"$LIBC"
        exit ;;
     ppc:Linux:*:*)
-       echo powerpc-unknown-linux-${LIBC}
+       echo powerpc-unknown-linux-"$LIBC"
        exit ;;
     ppc64le:Linux:*:*)
-       echo powerpc64le-unknown-linux-${LIBC}
+       echo powerpc64le-unknown-linux-"$LIBC"
        exit ;;
     ppcle:Linux:*:*)
-       echo powerpcle-unknown-linux-${LIBC}
+       echo powerpcle-unknown-linux-"$LIBC"
        exit ;;
     riscv32:Linux:*:* | riscv64:Linux:*:*)
-       echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+       echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
        exit ;;
     s390:Linux:*:* | s390x:Linux:*:*)
-       echo ${UNAME_MACHINE}-ibm-linux-${LIBC}
+       echo "$UNAME_MACHINE"-ibm-linux-"$LIBC"
        exit ;;
     sh64*:Linux:*:*)
-       echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+       echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
        exit ;;
     sh*:Linux:*:*)
-       echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+       echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
        exit ;;
     sparc:Linux:*:* | sparc64:Linux:*:*)
-       echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+       echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
        exit ;;
     tile*:Linux:*:*)
-       echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+       echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
        exit ;;
     vax:Linux:*:*)
-       echo ${UNAME_MACHINE}-dec-linux-${LIBC}
+       echo "$UNAME_MACHINE"-dec-linux-"$LIBC"
        exit ;;
     x86_64:Linux:*:*)
-       echo ${UNAME_MACHINE}-pc-linux-${LIBC}
+       echo "$UNAME_MACHINE"-pc-linux-"$LIBC"
        exit ;;
     xtensa*:Linux:*:*)
-       echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+       echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
        exit ;;
     i*86:DYNIX/ptx:4*:*)
        # ptx 4.0 does uname -s correctly, with DYNIX/ptx in there.
@@ -1075,34 +1063,34 @@ EOF
        # 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}
+       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
+       echo "$UNAME_MACHINE"-pc-os2-emx
        exit ;;
     i*86:XTS-300:*:STOP)
-       echo ${UNAME_MACHINE}-unknown-stop
+       echo "$UNAME_MACHINE"-unknown-stop
        exit ;;
     i*86:atheos:*:*)
-       echo ${UNAME_MACHINE}-unknown-atheos
+       echo "$UNAME_MACHINE"-unknown-atheos
        exit ;;
     i*86:syllable:*:*)
-       echo ${UNAME_MACHINE}-pc-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}
+       echo i386-unknown-lynxos"$UNAME_RELEASE"
        exit ;;
     i*86:*DOS:*:*)
-       echo ${UNAME_MACHINE}-pc-msdosdjgpp
+       echo "$UNAME_MACHINE"-pc-msdosdjgpp
        exit ;;
-    i*86:*:4.*:* | i*86:SYSTEM_V:4.*:*)
-       UNAME_REL=`echo ${UNAME_RELEASE} | sed 's/\/MP$//'`
+    i*86:*: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}
+               echo "$UNAME_MACHINE"-univel-sysv"$UNAME_REL"
        else
-               echo ${UNAME_MACHINE}-pc-sysv${UNAME_REL}
+               echo "$UNAME_MACHINE"-pc-sysv"$UNAME_REL"
        fi
        exit ;;
     i*86:*:5:[678]*)
@@ -1112,12 +1100,12 @@ EOF
            *Pentium)        UNAME_MACHINE=i586 ;;
            *Pent*|*Celeron) UNAME_MACHINE=i686 ;;
        esac
-       echo ${UNAME_MACHINE}-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}${UNAME_VERSION}
+       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
+               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
@@ -1127,9 +1115,9 @@ EOF
                        && UNAME_MACHINE=i686
                (/bin/uname -X|grep '^Machine.*Pentium Pro' >/dev/null) \
                        && UNAME_MACHINE=i686
-               echo ${UNAME_MACHINE}-pc-sco$UNAME_REL
+               echo "$UNAME_MACHINE"-pc-sco"$UNAME_REL"
        else
-               echo ${UNAME_MACHINE}-pc-sysv32
+               echo "$UNAME_MACHINE"-pc-sysv32
        fi
        exit ;;
     pc:*:*:*)
@@ -1149,9 +1137,9 @@ EOF
        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
+         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
+         echo i860-unknown-sysv"$UNAME_RELEASE"  # Unknown i860-SVR4
        fi
        exit ;;
     mini*:CTIX:SYS*5:*)
@@ -1171,9 +1159,9 @@ EOF
        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; }
+         && { 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; } ;;
+         && { 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; } ;;
@@ -1182,28 +1170,28 @@ EOF
        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; }
+           && { 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; }
+           && { 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; } ;;
+           && { echo i586-ncr-sysv4.3"$OS_REL"; exit; } ;;
     m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*)
-       echo m68k-unknown-lynxos${UNAME_RELEASE}
+       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}
+       echo sparc-unknown-lynxos"$UNAME_RELEASE"
        exit ;;
     rs6000:LynxOS:2.*:*)
-       echo rs6000-unknown-lynxos${UNAME_RELEASE}
+       echo rs6000-unknown-lynxos"$UNAME_RELEASE"
        exit ;;
     PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.[02]*:*)
-       echo powerpc-unknown-lynxos${UNAME_RELEASE}
+       echo powerpc-unknown-lynxos"$UNAME_RELEASE"
        exit ;;
     SM[BE]S:UNIX_SV:*:*)
-       echo mips-dde-sysv${UNAME_RELEASE}
+       echo mips-dde-sysv"$UNAME_RELEASE"
        exit ;;
     RM*:ReliantUNIX-*:*:*)
        echo mips-sni-sysv4
@@ -1214,7 +1202,7 @@ EOF
     *:SINIX-*:*:*)
        if uname -p 2>/dev/null >/dev/null ; then
                UNAME_MACHINE=`(uname -p) 2>/dev/null`
-               echo ${UNAME_MACHINE}-sni-sysv4
+               echo "$UNAME_MACHINE"-sni-sysv4
        else
                echo ns32k-sni-sysv
        fi
@@ -1234,23 +1222,23 @@ EOF
        exit ;;
     i*86:VOS:*:*)
        # From Paul.Green@stratus.com.
-       echo ${UNAME_MACHINE}-stratus-vos
+       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}
+       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}
+               echo mips-nec-sysv"$UNAME_RELEASE"
        else
-               echo mips-unknown-sysv${UNAME_RELEASE}
+               echo mips-unknown-sysv"$UNAME_RELEASE"
        fi
        exit ;;
     BeBox:BeOS:*:*)    # BeOS running on hardware made by Be, PPC only.
@@ -1269,39 +1257,39 @@ EOF
        echo x86_64-unknown-haiku
        exit ;;
     SX-4:SUPER-UX:*:*)
-       echo sx4-nec-superux${UNAME_RELEASE}
+       echo sx4-nec-superux"$UNAME_RELEASE"
        exit ;;
     SX-5:SUPER-UX:*:*)
-       echo sx5-nec-superux${UNAME_RELEASE}
+       echo sx5-nec-superux"$UNAME_RELEASE"
        exit ;;
     SX-6:SUPER-UX:*:*)
-       echo sx6-nec-superux${UNAME_RELEASE}
+       echo sx6-nec-superux"$UNAME_RELEASE"
        exit ;;
     SX-7:SUPER-UX:*:*)
-       echo sx7-nec-superux${UNAME_RELEASE}
+       echo sx7-nec-superux"$UNAME_RELEASE"
        exit ;;
     SX-8:SUPER-UX:*:*)
-       echo sx8-nec-superux${UNAME_RELEASE}
+       echo sx8-nec-superux"$UNAME_RELEASE"
        exit ;;
     SX-8R:SUPER-UX:*:*)
-       echo sx8r-nec-superux${UNAME_RELEASE}
+       echo sx8r-nec-superux"$UNAME_RELEASE"
        exit ;;
     SX-ACE:SUPER-UX:*:*)
-       echo sxace-nec-superux${UNAME_RELEASE}
+       echo sxace-nec-superux"$UNAME_RELEASE"
        exit ;;
     Power*:Rhapsody:*:*)
-       echo powerpc-apple-rhapsody${UNAME_RELEASE}
+       echo powerpc-apple-rhapsody"$UNAME_RELEASE"
        exit ;;
     *:Rhapsody:*:*)
-       echo ${UNAME_MACHINE}-apple-rhapsody${UNAME_RELEASE}
+       echo "$UNAME_MACHINE"-apple-rhapsody"$UNAME_RELEASE"
        exit ;;
     *:Darwin:*:*)
        UNAME_PROCESSOR=`uname -p` || UNAME_PROCESSOR=unknown
-       eval $set_cc_for_build
+       eval "$set_cc_for_build"
        if test "$UNAME_PROCESSOR" = unknown ; then
            UNAME_PROCESSOR=powerpc
        fi
-       if test `echo "$UNAME_RELEASE" | sed -e 's/\..*//'` -le 10 ; then
+       if test "`echo "$UNAME_RELEASE" | sed -e 's/\..*//'`" -le 10 ; then
            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) | \
@@ -1329,7 +1317,7 @@ EOF
            # that Apple uses in portable devices.
            UNAME_PROCESSOR=x86_64
        fi
-       echo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE}
+       echo "$UNAME_PROCESSOR"-apple-darwin"$UNAME_RELEASE"
        exit ;;
     *:procnto*:*:* | *:QNX:[0123456789]*:*)
        UNAME_PROCESSOR=`uname -p`
@@ -1337,22 +1325,25 @@ EOF
                UNAME_PROCESSOR=i386
                UNAME_MACHINE=pc
        fi
-       echo ${UNAME_PROCESSOR}-${UNAME_MACHINE}-nto-qnx${UNAME_RELEASE}
+       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}
+       echo neo-tandem-nsk"$UNAME_RELEASE"
        exit ;;
     NSE-*:NONSTOP_KERNEL:*:*)
-       echo nse-tandem-nsk${UNAME_RELEASE}
+       echo nse-tandem-nsk"$UNAME_RELEASE"
        exit ;;
     NSR-*:NONSTOP_KERNEL:*:*)
-       echo nsr-tandem-nsk${UNAME_RELEASE}
+       echo nsr-tandem-nsk"$UNAME_RELEASE"
+       exit ;;
+    NSV-*:NONSTOP_KERNEL:*:*)
+       echo nsv-tandem-nsk"$UNAME_RELEASE"
        exit ;;
     NSX-*:NONSTOP_KERNEL:*:*)
-       echo nsx-tandem-nsk${UNAME_RELEASE}
+       echo nsx-tandem-nsk"$UNAME_RELEASE"
        exit ;;
     *:NonStop-UX:*:*)
        echo mips-compaq-nonstopux
@@ -1361,7 +1352,7 @@ EOF
        echo bs2000-siemens-sysv
        exit ;;
     DS/*:UNIX_System_V:*:*)
-       echo ${UNAME_MACHINE}-${UNAME_SYSTEM}-${UNAME_RELEASE}
+       echo "$UNAME_MACHINE"-"$UNAME_SYSTEM"-"$UNAME_RELEASE"
        exit ;;
     *:Plan9:*:*)
        # "uname -m" is not consistent, so use $cputype instead. 386
@@ -1372,7 +1363,7 @@ EOF
        else
            UNAME_MACHINE="$cputype"
        fi
-       echo ${UNAME_MACHINE}-unknown-plan9
+       echo "$UNAME_MACHINE"-unknown-plan9
        exit ;;
     *:TOPS-10:*:*)
        echo pdp10-unknown-tops10
@@ -1393,14 +1384,14 @@ EOF
        echo pdp10-unknown-its
        exit ;;
     SEI:*:*:SEIUX)
-       echo mips-sei-seiux${UNAME_RELEASE}
+       echo mips-sei-seiux"$UNAME_RELEASE"
        exit ;;
     *:DragonFly:*:*)
-       echo ${UNAME_MACHINE}-unknown-dragonfly`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`
+       echo "$UNAME_MACHINE"-unknown-dragonfly"`echo "$UNAME_RELEASE"|sed -e 's/[-(].*//'`"
        exit ;;
     *:*VMS:*:*)
        UNAME_MACHINE=`(uname -p) 2>/dev/null`
-       case "${UNAME_MACHINE}" in
+       case "$UNAME_MACHINE" in
            A*) echo alpha-dec-vms ; exit ;;
            I*) echo ia64-dec-vms ; exit ;;
            V*) echo vax-dec-vms ; exit ;;
@@ -1409,32 +1400,44 @@ EOF
        echo i386-pc-xenix
        exit ;;
     i*86:skyos:*:*)
-       echo ${UNAME_MACHINE}-pc-skyos`echo ${UNAME_RELEASE} | sed -e 's/ .*$//'`
+       echo "$UNAME_MACHINE"-pc-skyos"`echo "$UNAME_RELEASE" | sed -e 's/ .*$//'`"
        exit ;;
     i*86:rdos:*:*)
-       echo ${UNAME_MACHINE}-pc-rdos
+       echo "$UNAME_MACHINE"-pc-rdos
        exit ;;
     i*86:AROS:*:*)
-       echo ${UNAME_MACHINE}-pc-aros
+       echo "$UNAME_MACHINE"-pc-aros
        exit ;;
     x86_64:VMkernel:*:*)
-       echo ${UNAME_MACHINE}-unknown-esx
+       echo "$UNAME_MACHINE"-unknown-esx
        exit ;;
     amd64:Isilon\ OneFS:*:*)
        echo x86_64-unknown-onefs
        exit ;;
 esac
 
+echo "$0: unable to guess system type" >&2
+
+case "$UNAME_MACHINE:$UNAME_SYSTEM" in
+    mips:Linux | mips64:Linux)
+       # If we got here on MIPS GNU/Linux, output extra information.
+       cat >&2 <<EOF
+
+NOTE: MIPS GNU/Linux systems require a C compiler to fully recognize
+the system type. Please install a C compiler and try again.
+EOF
+       ;;
+esac
+
 cat >&2 <<EOF
-$0: unable to guess system type
 
 This script (version $timestamp), has failed to recognize the
-operating system you are using. If your script is old, overwrite
-config.guess and config.sub with the latest versions from:
+operating system you are using. If your script is old, overwrite *all*
+copies of config.guess and config.sub with the latest versions from:
 
-  http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess
+  https://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess
 and
-  http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub
+  https://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub
 
 If $0 has already been updated, send the following data and any
 information you think might be pertinent to config-patches@gnu.org to
@@ -1457,16 +1460,16 @@ hostinfo               = `(hostinfo) 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}
+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)
+# eval: (add-hook 'before-save-hook 'time-stamp)
 # time-stamp-start: "timestamp='"
 # time-stamp-format: "%:y-%02m-%02d"
 # time-stamp-end: "'"
index ab6fd99..be202c1 100755 (executable)
@@ -2,7 +2,7 @@
 # Output a system dependent set of variables, describing how to set the
 # run time search path of shared libraries in an executable.
 #
-#   Copyright 1996-2014 Free Software Foundation, Inc.
+#   Copyright 1996-2019 Free Software Foundation, Inc.
 #   Taken from GNU libtool, 2001
 #   Originally by Gordon Matzigkeit <gord@gnu.ai.mit.edu>, 1996
 #
@@ -367,11 +367,7 @@ else
     dgux*)
       hardcode_libdir_flag_spec='-L$libdir'
       ;;
-    freebsd2.2*)
-      hardcode_libdir_flag_spec='-R$libdir'
-      hardcode_direct=yes
-      ;;
-    freebsd2*)
+    freebsd2.[01]*)
       hardcode_direct=yes
       hardcode_minus_L=yes
       ;;
@@ -548,13 +544,11 @@ case "$host_os" in
   dgux*)
     library_names_spec='$libname$shrext'
     ;;
+  freebsd[23].*)
+    library_names_spec='$libname$shrext$versuffix'
+    ;;
   freebsd* | dragonfly*)
-    case "$host_os" in
-      freebsd[123]*)
-        library_names_spec='$libname$shrext$versuffix' ;;
-      *)
-        library_names_spec='$libname$shrext' ;;
-    esac
+    library_names_spec='$libname$shrext'
     ;;
   gnu*)
     library_names_spec='$libname$shrext'
index 40ea5df..9ccf09a 100755 (executable)
@@ -1,8 +1,8 @@
 #! /bin/sh
 # Configuration validation subroutine script.
-#   Copyright 1992-2017 Free Software Foundation, Inc.
+#   Copyright 1992-2018 Free Software Foundation, Inc.
 
-timestamp='2017-04-02'
+timestamp='2018-03-08'
 
 # 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
@@ -15,7 +15,7 @@ timestamp='2017-04-02'
 # General Public License for more details.
 #
 # You should have received a copy of the GNU General Public License
-# along with this program; if not, see <http://www.gnu.org/licenses/>.
+# along with this program; if not, see <https://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
@@ -33,7 +33,7 @@ timestamp='2017-04-02'
 # 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
+# https://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub
 
 # This file is supposed to be the same for all GNU packages
 # and recognize all the CPU types, system types and aliases
@@ -57,7 +57,7 @@ Usage: $0 [OPTION] CPU-MFR-OPSYS or ALIAS
 
 Canonicalize a configuration name.
 
-Operation modes:
+Options:
   -h, --help         print this help, then exit
   -t, --time-stamp   print date of last modification, then exit
   -v, --version      print version number, then exit
@@ -67,7 +67,7 @@ Report bugs and patches to <config-patches@gnu.org>."
 version="\
 GNU config.sub ($timestamp)
 
-Copyright 1992-2017 Free Software Foundation, Inc.
+Copyright 1992-2018 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."
@@ -94,7 +94,7 @@ while test $# -gt 0 ; do
 
     *local*)
        # First pass through any local machine types.
-       echo $1
+       echo "$1"
        exit ;;
 
     * )
@@ -112,7 +112,7 @@ 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/'`
+maybe_os=`echo "$1" | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'`
 case $maybe_os in
   nto-qnx* | linux-gnu* | linux-android* | linux-dietlibc | linux-newlib* | \
   linux-musl* | linux-uclibc* | uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | \
@@ -120,16 +120,16 @@ case $maybe_os in
   kopensolaris*-gnu* | cloudabi*-eabi* | \
   storm-chaos* | os2-emx* | rtmk-nova*)
     os=-$maybe_os
-    basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`
+    basic_machine=`echo "$1" | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`
     ;;
   android-linux)
     os=-linux-android
-    basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`-unknown
+    basic_machine=`echo "$1" | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`-unknown
     ;;
   *)
-    basic_machine=`echo $1 | sed 's/-[^-]*$//'`
-    if [ $basic_machine != $1 ]
-    then os=`echo $1 | sed 's/.*-/-/'`
+    basic_machine=`echo "$1" | sed 's/-[^-]*$//'`
+    if [ "$basic_machine" != "$1" ]
+    then os=`echo "$1" | sed 's/.*-/-/'`
     else os=; fi
     ;;
 esac
@@ -178,44 +178,44 @@ case $os in
                ;;
        -sco6)
                os=-sco5v6
-               basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+               basic_machine=`echo "$1" | sed -e 's/86-.*/86-pc/'`
                ;;
        -sco5)
                os=-sco3.2v5
-               basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+               basic_machine=`echo "$1" | sed -e 's/86-.*/86-pc/'`
                ;;
        -sco4)
                os=-sco3.2v4
-               basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+               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/'`
+               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/'`
+               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/'`
+               basic_machine=`echo "$1" | sed -e 's/86-.*/86-pc/'`
                ;;
        -sco*)
                os=-sco3.2v2
-               basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+               basic_machine=`echo "$1" | sed -e 's/86-.*/86-pc/'`
                ;;
        -udk*)
-               basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+               basic_machine=`echo "$1" | sed -e 's/86-.*/86-pc/'`
                ;;
        -isc)
                os=-isc2.2
-               basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+               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/'`
+               basic_machine=`echo "$1" | sed -e 's/86-.*/86-pc/'`
                ;;
        -lynx*178)
                os=-lynxos178
@@ -227,10 +227,7 @@ case $os in
                os=-lynxos
                ;;
        -ptx*)
-               basic_machine=`echo $1 | sed -e 's/86-.*/86-sequent/'`
-               ;;
-       -windowsnt*)
-               os=`echo $os | sed -e 's/windowsnt/winnt/'`
+               basic_machine=`echo "$1" | sed -e 's/86-.*/86-sequent/'`
                ;;
        -psos*)
                os=-psos
@@ -299,7 +296,7 @@ case $basic_machine in
        | nios | nios2 | nios2eb | nios2el \
        | ns16k | ns32k \
        | open8 | or1k | or1knd | or32 \
-       | pdp10 | pdp11 | pj | pjl \
+       | pdp10 | pj | pjl \
        | powerpc | powerpc64 | powerpc64le | powerpcle \
        | pru \
        | pyramid \
@@ -316,7 +313,6 @@ case $basic_machine in
        | v850 | v850e | v850e1 | v850e2 | v850es | v850e2v3 \
        | visium \
        | wasm32 \
-       | we32k \
        | x86 | xc16x | xstormy16 | xtensa \
        | z8k | z80)
                basic_machine=$basic_machine-unknown
@@ -337,7 +333,7 @@ case $basic_machine in
                basic_machine=$basic_machine-unknown
                os=-none
                ;;
-       m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | v70 | w65 | z8k)
+       m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | v70 | w65)
                ;;
        ms1)
                basic_machine=mt-unknown
@@ -366,7 +362,7 @@ case $basic_machine in
          ;;
        # Object if more than one company name word.
        *-*-*)
-               echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2
+               echo Invalid configuration \`"$1"\': machine \`"$basic_machine"\' not recognized 1>&2
                exit 1
                ;;
        # Recognize the basic CPU types with company name.
@@ -461,7 +457,7 @@ case $basic_machine in
        # 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
+               basic_machine=i386-pc
                os=-bsd
                ;;
        3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc)
@@ -495,7 +491,7 @@ case $basic_machine in
                basic_machine=x86_64-pc
                ;;
        amd64-*)
-               basic_machine=x86_64-`echo $basic_machine | sed 's/^[^-]*-//'`
+               basic_machine=x86_64-`echo "$basic_machine" | sed 's/^[^-]*-//'`
                ;;
        amdahl)
                basic_machine=580-amdahl
@@ -540,7 +536,7 @@ case $basic_machine in
                os=-linux
                ;;
        blackfin-*)
-               basic_machine=bfin-`echo $basic_machine | sed 's/^[^-]*-//'`
+               basic_machine=bfin-`echo "$basic_machine" | sed 's/^[^-]*-//'`
                os=-linux
                ;;
        bluegene*)
@@ -548,13 +544,13 @@ case $basic_machine in
                os=-cnk
                ;;
        c54x-*)
-               basic_machine=tic54x-`echo $basic_machine | sed 's/^[^-]*-//'`
+               basic_machine=tic54x-`echo "$basic_machine" | sed 's/^[^-]*-//'`
                ;;
        c55x-*)
-               basic_machine=tic55x-`echo $basic_machine | sed 's/^[^-]*-//'`
+               basic_machine=tic55x-`echo "$basic_machine" | sed 's/^[^-]*-//'`
                ;;
        c6x-*)
-               basic_machine=tic6x-`echo $basic_machine | sed 's/^[^-]*-//'`
+               basic_machine=tic6x-`echo "$basic_machine" | sed 's/^[^-]*-//'`
                ;;
        c90)
                basic_machine=c90-cray
@@ -643,7 +639,7 @@ case $basic_machine in
                basic_machine=rs6000-bull
                os=-bosx
                ;;
-       dpx2* | dpx2*-bull)
+       dpx2*)
                basic_machine=m68k-bull
                os=-sysv3
                ;;
@@ -652,7 +648,7 @@ case $basic_machine in
                os=$os"spe"
                ;;
        e500v[12]-*)
-               basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'`
+               basic_machine=powerpc-`echo "$basic_machine" | sed 's/^[^-]*-//'`
                os=$os"spe"
                ;;
        ebmon29k)
@@ -744,9 +740,6 @@ case $basic_machine in
        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
@@ -759,26 +752,26 @@ case $basic_machine in
                basic_machine=i370-ibm
                ;;
        i*86v32)
-               basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
+               basic_machine=`echo "$1" | sed -e 's/86.*/86-pc/'`
                os=-sysv32
                ;;
        i*86v4*)
-               basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
+               basic_machine=`echo "$1" | sed -e 's/86.*/86-pc/'`
                os=-sysv4
                ;;
        i*86v)
-               basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
+               basic_machine=`echo "$1" | sed -e 's/86.*/86-pc/'`
                os=-sysv
                ;;
        i*86sol2)
-               basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
+               basic_machine=`echo "$1" | sed -e 's/86.*/86-pc/'`
                os=-solaris2
                ;;
        i386mach)
                basic_machine=i386-mach
                os=-mach
                ;;
-       i386-vsta | vsta)
+       vsta)
                basic_machine=i386-unknown
                os=-vsta
                ;;
@@ -797,19 +790,16 @@ case $basic_machine in
                os=-sysv
                ;;
        leon-*|leon[3-9]-*)
-               basic_machine=sparc-`echo $basic_machine | sed 's/-.*//'`
+               basic_machine=sparc-`echo "$basic_machine" | sed 's/-.*//'`
                ;;
        m68knommu)
                basic_machine=m68k-unknown
                os=-linux
                ;;
        m68knommu-*)
-               basic_machine=m68k-`echo $basic_machine | sed 's/^[^-]*-//'`
+               basic_machine=m68k-`echo "$basic_machine" | sed 's/^[^-]*-//'`
                os=-linux
                ;;
-       m88k-omron*)
-               basic_machine=m88k-omron
-               ;;
        magnum | m3230)
                basic_machine=mips-mips
                os=-sysv
@@ -841,10 +831,10 @@ case $basic_machine in
                os=-mint
                ;;
        mips3*-*)
-               basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`
+               basic_machine=`echo "$basic_machine" | sed -e 's/mips3/mips64/'`
                ;;
        mips3*)
-               basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`-unknown
+               basic_machine=`echo "$basic_machine" | sed -e 's/mips3/mips64/'`-unknown
                ;;
        monitor)
                basic_machine=m68k-rom68k
@@ -863,7 +853,7 @@ case $basic_machine in
                os=-msdos
                ;;
        ms1-*)
-               basic_machine=`echo $basic_machine | sed -e 's/ms1-/mt-/'`
+               basic_machine=`echo "$basic_machine" | sed -e 's/ms1-/mt-/'`
                ;;
        msys)
                basic_machine=i686-pc
@@ -905,7 +895,7 @@ case $basic_machine in
                basic_machine=v70-nec
                os=-sysv
                ;;
-       next | m*-next )
+       next | m*-next)
                basic_machine=m68k-next
                case $os in
                    -nextstep* )
@@ -950,6 +940,9 @@ case $basic_machine in
        nsr-tandem)
                basic_machine=nsr-tandem
                ;;
+       nsv-tandem)
+               basic_machine=nsv-tandem
+               ;;
        nsx-tandem)
                basic_machine=nsx-tandem
                ;;
@@ -985,7 +978,7 @@ case $basic_machine in
                os=-linux
                ;;
        parisc-*)
-               basic_machine=hppa-`echo $basic_machine | sed 's/^[^-]*-//'`
+               basic_machine=hppa-`echo "$basic_machine" | sed 's/^[^-]*-//'`
                os=-linux
                ;;
        pbd)
@@ -1001,7 +994,7 @@ case $basic_machine in
                basic_machine=i386-pc
                ;;
        pc98-*)
-               basic_machine=i386-`echo $basic_machine | sed 's/^[^-]*-//'`
+               basic_machine=i386-`echo "$basic_machine" | sed 's/^[^-]*-//'`
                ;;
        pentium | p5 | k5 | k6 | nexgen | viac3)
                basic_machine=i586-pc
@@ -1016,16 +1009,16 @@ case $basic_machine in
                basic_machine=i786-pc
                ;;
        pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*)
-               basic_machine=i586-`echo $basic_machine | sed 's/^[^-]*-//'`
+               basic_machine=i586-`echo "$basic_machine" | sed 's/^[^-]*-//'`
                ;;
        pentiumpro-* | p6-* | 6x86-* | athlon-*)
-               basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'`
+               basic_machine=i686-`echo "$basic_machine" | sed 's/^[^-]*-//'`
                ;;
        pentiumii-* | pentium2-* | pentiumiii-* | pentium3-*)
-               basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'`
+               basic_machine=i686-`echo "$basic_machine" | sed 's/^[^-]*-//'`
                ;;
        pentium4-*)
-               basic_machine=i786-`echo $basic_machine | sed 's/^[^-]*-//'`
+               basic_machine=i786-`echo "$basic_machine" | sed 's/^[^-]*-//'`
                ;;
        pn)
                basic_machine=pn-gould
@@ -1035,23 +1028,23 @@ case $basic_machine in
        ppc | ppcbe)    basic_machine=powerpc-unknown
                ;;
        ppc-* | ppcbe-*)
-               basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'`
+               basic_machine=powerpc-`echo "$basic_machine" | sed 's/^[^-]*-//'`
                ;;
        ppcle | powerpclittle)
                basic_machine=powerpcle-unknown
                ;;
        ppcle-* | powerpclittle-*)
-               basic_machine=powerpcle-`echo $basic_machine | sed 's/^[^-]*-//'`
+               basic_machine=powerpcle-`echo "$basic_machine" | sed 's/^[^-]*-//'`
                ;;
        ppc64)  basic_machine=powerpc64-unknown
                ;;
-       ppc64-*) basic_machine=powerpc64-`echo $basic_machine | sed 's/^[^-]*-//'`
+       ppc64-*) basic_machine=powerpc64-`echo "$basic_machine" | sed 's/^[^-]*-//'`
                ;;
        ppc64le | powerpc64little)
                basic_machine=powerpc64le-unknown
                ;;
        ppc64le-* | powerpc64little-*)
-               basic_machine=powerpc64le-`echo $basic_machine | sed 's/^[^-]*-//'`
+               basic_machine=powerpc64le-`echo "$basic_machine" | sed 's/^[^-]*-//'`
                ;;
        ps2)
                basic_machine=i386-ibm
@@ -1105,17 +1098,10 @@ case $basic_machine in
        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)
+       simso-wrs)
                basic_machine=sparclite-wrs
                os=-vxworks
                ;;
@@ -1134,7 +1120,7 @@ case $basic_machine in
                os=-sysv4
                ;;
        strongarm-* | thumb-*)
-               basic_machine=arm-`echo $basic_machine | sed 's/^[^-]*-//'`
+               basic_machine=arm-`echo "$basic_machine" | sed 's/^[^-]*-//'`
                ;;
        sun2)
                basic_machine=m68000-sun
@@ -1248,9 +1234,6 @@ case $basic_machine in
                basic_machine=a29k-wrs
                os=-vxworks
                ;;
-       wasm32)
-               basic_machine=wasm32-unknown
-               ;;
        w65*)
                basic_machine=w65-wdc
                os=-none
@@ -1259,6 +1242,9 @@ case $basic_machine in
                basic_machine=hppa1.1-winbond
                os=-proelf
                ;;
+       x64)
+               basic_machine=x86_64-pc
+               ;;
        xbox)
                basic_machine=i686-pc
                os=-mingw32
@@ -1267,20 +1253,12 @@ case $basic_machine in
                basic_machine=xps100-honeywell
                ;;
        xscale-* | xscalee[bl]-*)
-               basic_machine=`echo $basic_machine | sed 's/^xscale/arm/'`
+               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
@@ -1309,10 +1287,6 @@ case $basic_machine in
        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
                ;;
@@ -1322,9 +1296,6 @@ case $basic_machine in
        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
                ;;
@@ -1344,7 +1315,7 @@ case $basic_machine in
                # Make sure to match an already-canonicalized machine name.
                ;;
        *)
-               echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2
+               echo Invalid configuration \`"$1"\': machine \`"$basic_machine"\' not recognized 1>&2
                exit 1
                ;;
 esac
@@ -1352,10 +1323,10 @@ esac
 # Here we canonicalize certain aliases for manufacturers.
 case $basic_machine in
        *-digital*)
-               basic_machine=`echo $basic_machine | sed 's/digital.*/dec/'`
+               basic_machine=`echo "$basic_machine" | sed 's/digital.*/dec/'`
                ;;
        *-commodore*)
-               basic_machine=`echo $basic_machine | sed 's/commodore.*/cbm/'`
+               basic_machine=`echo "$basic_machine" | sed 's/commodore.*/cbm/'`
                ;;
        *)
                ;;
@@ -1366,8 +1337,8 @@ esac
 if [ x"$os" != x"" ]
 then
 case $os in
-       # First match some system type aliases
-       # that might get confused with valid system types.
+       # 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
@@ -1378,18 +1349,19 @@ case $os in
        -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.
+       # es1800 is here to avoid being matched by es* (a different OS)
+       -es1800*)
+               os=-ose
+               ;;
+       # Now accept the basic system types.
        # The portable systems comes first.
-       # Each alternative MUST END IN A *, to match a version number.
+       # 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]*\
@@ -1399,25 +1371,26 @@ case $os in
              | -aos* | -aros* | -cloudabi* | -sortix* \
              | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \
              | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \
-             | -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* \
+             | -hiux* | -knetbsd* | -mirbsd* | -netbsd* \
              | -bitrig* | -openbsd* | -solidbsd* | -libertybsd* \
              | -ekkobsd* | -kfreebsd* | -freebsd* | -riscix* | -lynxos* \
              | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \
              | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \
-             | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \
+             | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* | -hcos* \
              | -chorusos* | -chorusrdb* | -cegcc* | -glidix* \
              | -cygwin* | -msys* | -pe* | -psos* | -moss* | -proelf* | -rtems* \
              | -midipix* | -mingw32* | -mingw64* | -linux-gnu* | -linux-android* \
              | -linux-newlib* | -linux-musl* | -linux-uclibc* \
              | -uxpv* | -beos* | -mpeix* | -udk* | -moxiebox* \
-             | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \
+             | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* \
              | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \
              | -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* \
              | -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \
-             | -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \
+             | -morphos* | -superux* | -rtmk* | -windiss* \
              | -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \
              | -skyos* | -haiku* | -rdos* | -toppers* | -drops* | -es* \
-             | -onefs* | -tirtos* | -phoenix* | -fuchsia* | -redox*)
+             | -onefs* | -tirtos* | -phoenix* | -fuchsia* | -redox* | -bme* \
+             | -midnightbsd*)
        # Remember, each alternative MUST END IN *, to match a version number.
                ;;
        -qnx*)
@@ -1434,12 +1407,12 @@ case $os in
        -nto*)
                os=`echo $os | sed -e 's|nto|nto-qnx|'`
                ;;
-       -sim | -es1800* | -hms* | -xray | -os68k* | -none* | -v88r* \
-             | -windows* | -osx | -abug | -netware* | -os9* | -beos* | -haiku* \
+       -sim | -xray | -os68k* | -v88r* \
+             | -windows* | -osx | -abug | -netware* | -os9* \
              | -macos* | -mpw* | -magic* | -mmixware* | -mon960* | -lnews*)
                ;;
        -mac*)
-               os=`echo $os | sed -e 's|mac|macos|'`
+               os=`echo "$os" | sed -e 's|mac|macos|'`
                ;;
        -linux-dietlibc)
                os=-linux-dietlibc
@@ -1448,10 +1421,10 @@ case $os in
                os=`echo $os | sed -e 's|linux|linux-gnu|'`
                ;;
        -sunos5*)
-               os=`echo $os | sed -e 's|sunos5|solaris2|'`
+               os=`echo "$os" | sed -e 's|sunos5|solaris2|'`
                ;;
        -sunos6*)
-               os=`echo $os | sed -e 's|sunos6|solaris3|'`
+               os=`echo "$os" | sed -e 's|sunos6|solaris3|'`
                ;;
        -opened*)
                os=-openedition
@@ -1462,12 +1435,6 @@ case $os in
        -wince*)
                os=-wince
                ;;
-       -osfrose*)
-               os=-osfrose
-               ;;
-       -osf*)
-               os=-osf
-               ;;
        -utek*)
                os=-bsd
                ;;
@@ -1492,7 +1459,7 @@ case $os in
        -nova*)
                os=-rtmk-nova
                ;;
-       -ns2 )
+       -ns2)
                os=-nextstep2
                ;;
        -nsk*)
@@ -1514,7 +1481,7 @@ case $os in
        -oss*)
                os=-sysv3
                ;;
-       -svr4)
+       -svr4*)
                os=-sysv4
                ;;
        -svr3)
@@ -1529,24 +1496,28 @@ case $os in
        -ose*)
                os=-ose
                ;;
-       -es1800*)
-               os=-ose
-               ;;
-       -xenix)
-               os=-xenix
-               ;;
        -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*)
                os=-mint
                ;;
-       -aros*)
-               os=-aros
-               ;;
        -zvmoe)
                os=-zvmoe
                ;;
        -dicos*)
                os=-dicos
                ;;
+       -pikeos*)
+               # Until real need of OS specific support for
+               # particular features comes up, bare metal
+               # configurations are quite functional.
+               case $basic_machine in
+                   arm*)
+                       os=-eabi
+                       ;;
+                   *)
+                       os=-elf
+                       ;;
+               esac
+               ;;
        -nacl*)
                ;;
        -ios)
@@ -1556,7 +1527,7 @@ case $os in
        *)
                # Get rid of the `-' at the beginning of $os.
                os=`echo $os | sed 's/[^-]*-//'`
-               echo Invalid configuration \`$1\': system \`$os\' not recognized 1>&2
+               echo Invalid configuration \`"$1"\': system \`"$os"\' not recognized 1>&2
                exit 1
                ;;
 esac
@@ -1652,9 +1623,6 @@ case $basic_machine in
        *-be)
                os=-beos
                ;;
-       *-haiku)
-               os=-haiku
-               ;;
        *-ibm)
                os=-aix
                ;;
@@ -1694,7 +1662,7 @@ case $basic_machine in
        m88k-omron*)
                os=-luna
                ;;
-       *-next )
+       *-next)
                os=-nextstep
                ;;
        *-sequent)
@@ -1709,9 +1677,6 @@ case $basic_machine in
        i370-*)
                os=-mvs
                ;;
-       *-next)
-               os=-nextstep3
-               ;;
        *-gould)
                os=-sysv
                ;;
@@ -1821,15 +1786,15 @@ case $basic_machine in
                                vendor=stratus
                                ;;
                esac
-               basic_machine=`echo $basic_machine | sed "s/unknown/$vendor/"`
+               basic_machine=`echo "$basic_machine" | sed "s/unknown/$vendor/"`
                ;;
 esac
 
-echo $basic_machine$os
+echo "$basic_machine$os"
 exit
 
 # Local variables:
-# eval: (add-hook 'write-file-hooks 'time-stamp)
+# eval: (add-hook 'before-save-hook 'time-stamp)
 # time-stamp-start: "timestamp='"
 # time-stamp-format: "%:y-%02m-%02d"
 # time-stamp-end: "'"
index b39f98f..65cbf70 100755 (executable)
@@ -1,9 +1,9 @@
 #! /bin/sh
 # depcomp - compile a program generating dependencies as side-effects
 
-scriptversion=2016-01-11.22; # UTC
+scriptversion=2018-03-07.03; # UTC
 
-# Copyright (C) 1999-2017 Free Software Foundation, Inc.
+# Copyright (C) 1999-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
@@ -16,7 +16,7 @@ scriptversion=2016-01-11.22; # UTC
 # GNU General Public License for more details.
 
 # You should have received a copy of the GNU General Public License
-# along with this program.  If not, see <http://www.gnu.org/licenses/>.
+# along with this program.  If not, see <https://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
@@ -783,7 +783,7 @@ exit 0
 # Local Variables:
 # mode: shell-script
 # sh-indentation: 2
-# eval: (add-hook 'write-file-hooks 'time-stamp)
+# eval: (add-hook 'before-save-hook 'time-stamp)
 # time-stamp-start: "scriptversion="
 # time-stamp-format: "%:y-%02m-%02d.%02H"
 # time-stamp-time-zone: "UTC0"
index 0360b79..8175c64 100755 (executable)
@@ -1,7 +1,7 @@
 #!/bin/sh
 # install - install a program, script, or datafile
 
-scriptversion=2016-01-11.22; # UTC
+scriptversion=2018-03-11.20; # UTC
 
 # This originates from X11R5 (mit/util/scripts/install.sh), which was
 # later released in X11R6 (xc/config/util/install.sh) with the
@@ -271,15 +271,18 @@ do
     fi
     dst=$dst_arg
 
-    # If destination is a directory, append the input filename; won't work
-    # if double slashes aren't ignored.
+    # If destination is a directory, append the input filename.
     if test -d "$dst"; then
       if test "$is_target_a_directory" = never; then
         echo "$0: $dst_arg: Is a directory" >&2
         exit 1
       fi
       dstdir=$dst
-      dst=$dstdir/`basename "$src"`
+      dstbase=`basename "$src"`
+      case $dst in
+       */) dst=$dst$dstbase;;
+       *)  dst=$dst/$dstbase;;
+      esac
       dstdir_status=0
     else
       dstdir=`dirname "$dst"`
@@ -288,6 +291,11 @@ do
     fi
   fi
 
+  case $dstdir in
+    */) dstdirslash=$dstdir;;
+    *)  dstdirslash=$dstdir/;;
+  esac
+
   obsolete_mkdir_used=false
 
   if test $dstdir_status != 0; then
@@ -324,34 +332,43 @@ do
             # is incompatible with FreeBSD 'install' when (umask & 300) != 0.
             ;;
           *)
+            # Note that $RANDOM variable is not portable (e.g. dash);  Use it
+            # here however when possible just to lower collision chance.
             tmpdir=${TMPDIR-/tmp}/ins$RANDOM-$$
-            trap 'ret=$?; rmdir "$tmpdir/d" "$tmpdir" 2>/dev/null; exit $ret' 0
 
+            trap 'ret=$?; rmdir "$tmpdir/a/b" "$tmpdir/a" "$tmpdir" 2>/dev/null; exit $ret' 0
+
+            # Because "mkdir -p" follows existing symlinks and we likely work
+            # directly in world-writeable /tmp, make sure that the '$tmpdir'
+            # directory is successfully created first before we actually test
+            # 'mkdir -p' feature.
             if (umask $mkdir_umask &&
-                exec $mkdirprog $mkdir_mode -p -- "$tmpdir/d") >/dev/null 2>&1
+                $mkdirprog $mkdir_mode "$tmpdir" &&
+                exec $mkdirprog $mkdir_mode -p -- "$tmpdir/a/b") >/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"`
+                   test_tmpdir="$tmpdir/a"
+                   ls_ld_tmpdir=`ls -ld "$test_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"`
+                   $mkdirprog -m$different_mode -p -- "$test_tmpdir" && {
+                     ls_ld_tmpdir_1=`ls -ld "$test_tmpdir"`
                      test "$ls_ld_tmpdir" = "$ls_ld_tmpdir_1"
                    }
                  }
               then posix_mkdir=:
               fi
-              rmdir "$tmpdir/d" "$tmpdir"
+              rmdir "$tmpdir/a/b" "$tmpdir/a" "$tmpdir"
             else
               # Remove any dirs left behind by ancient mkdir implementations.
-              rmdir ./$mkdir_mode ./-p ./-- 2>/dev/null
+              rmdir ./$mkdir_mode ./-p ./-- "$tmpdir" 2>/dev/null
             fi
             trap '' 0;;
         esac;;
@@ -427,8 +444,8 @@ do
   else
 
     # Make a couple of temp file names in the proper directory.
-    dsttmp=$dstdir/_inst.$$_
-    rmtmp=$dstdir/_rm.$$_
+    dsttmp=${dstdirslash}_inst.$$_
+    rmtmp=${dstdirslash}_rm.$$_
 
     # Trap to clean up those temp files at exit.
     trap 'ret=$?; rm -f "$dsttmp" "$rmtmp" && exit $ret' 0
@@ -493,7 +510,7 @@ do
 done
 
 # Local variables:
-# eval: (add-hook 'write-file-hooks 'time-stamp)
+# eval: (add-hook 'before-save-hook 'time-stamp)
 # time-stamp-start: "scriptversion="
 # time-stamp-format: "%:y-%02m-%02d.%02H"
 # time-stamp-time-zone: "UTC0"
index 857338f..48cea9b 100644 (file)
@@ -1,12 +1,12 @@
 #! /bin/sh
 ## DO NOT EDIT - This file generated from ./build-aux/ltmain.in
-##               by inline-source v2016-02-21.11
+##               by inline-source v2018-07-24.06
 
-# libtool (GNU libtool) 2.4.6.40-6ca5-dirty
+# libtool (GNU libtool) 2.4.6.42-b88ce-dirty
 # Provide generalized library-building support services.
 # Written by Gordon Matzigkeit <gord@gnu.ai.mit.edu>, 1996
 
-# Copyright (C) 1996-2017 Free Software Foundation, Inc.
+# Copyright (C) 1996-2018 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.
 
@@ -31,8 +31,8 @@
 
 PROGRAM=libtool
 PACKAGE=libtool
-VERSION=2.4.6.40-6ca5-dirty
-package_revision=2.4.6.40
+VERSION=2.4.6.42-b88ce-dirty
+package_revision=2.4.6.42
 
 
 ## ------ ##
@@ -64,7 +64,7 @@ package_revision=2.4.6.40
 # libraries, which are installed to $pkgauxdir.
 
 # Set a version string for this script.
-scriptversion=2017-04-19.12; # UTC
+scriptversion=2018-07-24.06; # UTC
 
 # General shell script boiler plate, and helper functions.
 # Written by Gary V. Vaughan, 2004
@@ -72,7 +72,7 @@ scriptversion=2017-04-19.12; # UTC
 # This is free software.  There is NO warranty; not even for
 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
 #
-# Copyright (C) 2004-2017 Bootstrap Authors
+# Copyright (C) 2004-2018 Bootstrap Authors
 #
 # This file is dual licensed under the terms of the MIT license
 # <https://opensource.org/license/MIT>, and GPL version 3 or later
@@ -1497,7 +1497,7 @@ func_lt_ver ()
 # This is free software.  There is NO warranty; not even for
 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
 #
-# Copyright (C) 2010-2017 Bootstrap Authors
+# Copyright (C) 2010-2018 Bootstrap Authors
 #
 # This file is dual licensed under the terms of the MIT license
 # <https://opensource.org/license/MIT>, and GPL version 3 or later
@@ -1510,7 +1510,7 @@ func_lt_ver ()
 # <https://github.com/gnulib-modules/bootstrap/issues>
 
 # Set a version string for this script.
-scriptversion=2016-03-06.01; # UTC
+scriptversion=2018-07-24.06; # UTC
 
 
 ## ------ ##
@@ -2171,12 +2171,12 @@ func_version ()
 # mode: shell-script
 # sh-indentation: 2
 # eval: (add-hook 'before-save-hook 'time-stamp)
-# time-stamp-pattern: "10/scriptversion=%:y-%02m-%02d.%02H; # UTC"
+# time-stamp-pattern: "30/scriptversion=%:y-%02m-%02d.%02H; # UTC"
 # time-stamp-time-zone: "UTC"
 # End:
 
 # Set a version string.
-scriptversion='(GNU libtool) 2.4.6.40-6ca5-dirty'
+scriptversion='(GNU libtool) 2.4.6.42-b88ce-dirty'
 
 
 # func_echo ARG...
@@ -2267,7 +2267,7 @@ include the following information:
        compiler:       $LTCC
        compiler flags: $LTCFLAGS
        linker:         $LD (gnu? $with_gnu_ld)
-       version:        $progname (GNU libtool) 2.4.6.40-6ca5-dirty
+       version:        $progname (GNU libtool) 2.4.6.42-b88ce-dirty
        automake:       `($AUTOMAKE --version) 2>/dev/null |$SED 1q`
        autoconf:       `($AUTOCONF --version) 2>/dev/null |$SED 1q`
 
index c6e3795..625aeb1 100755 (executable)
@@ -1,9 +1,9 @@
 #! /bin/sh
 # Common wrapper for a few potentially missing GNU programs.
 
-scriptversion=2016-01-11.22; # UTC
+scriptversion=2018-03-07.03; # UTC
 
-# Copyright (C) 1996-2017 Free Software Foundation, Inc.
+# Copyright (C) 1996-2018 Free Software Foundation, Inc.
 # Originally written by Fran,cois Pinard <pinard@iro.umontreal.ca>, 1996.
 
 # This program is free software; you can redistribute it and/or modify
@@ -17,7 +17,7 @@ scriptversion=2016-01-11.22; # UTC
 # GNU General Public License for more details.
 
 # You should have received a copy of the GNU General Public License
-# along with this program.  If not, see <http://www.gnu.org/licenses/>.
+# along with this program.  If not, see <https://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
@@ -101,9 +101,9 @@ else
   exit $st
 fi
 
-perl_URL=http://www.perl.org/
-flex_URL=http://flex.sourceforge.net/
-gnu_software_URL=http://www.gnu.org/software
+perl_URL=https://www.perl.org/
+flex_URL=https://github.com/westes/flex
+gnu_software_URL=https://www.gnu.org/software
 
 program_details ()
 {
@@ -207,7 +207,7 @@ give_advice "$1" | sed -e '1s/^/WARNING: /' \
 exit $st
 
 # Local variables:
-# eval: (add-hook 'write-file-hooks 'time-stamp)
+# eval: (add-hook 'before-save-hook 'time-stamp)
 # time-stamp-start: "scriptversion="
 # time-stamp-format: "%:y-%02m-%02d.%02H"
 # time-stamp-time-zone: "UTC0"
index 45fedb1..ffed128 100644 (file)
    CoreFoundation framework. */
 #undef HAVE_CFLOCALECOPYCURRENT
 
+/* Define to 1 if you have the Mac OS X function
+   CFLocaleCopyPreferredLanguages in the CoreFoundation framework. */
+#undef HAVE_CFLOCALECOPYPREFERREDLANGUAGES
+
 /* Define to 1 if you have the Mac OS X function CFPreferencesCopyAppValue in
    the CoreFoundation framework. */
 #undef HAVE_CFPREFERENCESCOPYAPPVALUE
 /* Define to 1 if _mm_movemask_epi8 is available. */
 #undef HAVE__MM_MOVEMASK_EPI8
 
+/* Define to 1 if the GNU C extension __builtin_assume_aligned is supported.
+   */
+#undef HAVE___BUILTIN_ASSUME_ALIGNED
+
+/* Define to 1 if the GNU C extensions __builtin_bswap16/32/64 are supported.
+   */
+#undef HAVE___BUILTIN_BSWAPXX
+
 /* Define to the sub-directory where libtool stores uninstalled libraries. */
 #undef LT_OBJDIR
 
    sysinfo(). */
 #undef TUKLIB_PHYSMEM_SYSINFO
 
+/* Define to 1 to use unsafe type punning, e.g. char *x = ...; *(int *)x =
+   123; which violates strict aliasing rules and thus is undefined behavior
+   and might result in broken code. */
+#undef TUKLIB_USE_UNSAFE_TYPE_PUNNING
+
 /* Enable extensions on AIX 3, Interix.  */
 #ifndef _ALL_SOURCE
 # undef _ALL_SOURCE
index d3d911b..f103a6b 100755 (executable)
--- a/configure
+++ b/configure
@@ -1,6 +1,6 @@
 #! /bin/sh
 # Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.69 for XZ Utils 5.2.4.
+# Generated by GNU Autoconf 2.69 for XZ Utils 5.2.5.
 #
 # Report bugs to <lasse.collin@tukaani.org>.
 #
@@ -590,8 +590,8 @@ MAKEFLAGS=
 # Identity of this package.
 PACKAGE_NAME='XZ Utils'
 PACKAGE_TARNAME='xz'
-PACKAGE_VERSION='5.2.4'
-PACKAGE_STRING='XZ Utils 5.2.4'
+PACKAGE_VERSION='5.2.5'
+PACKAGE_STRING='XZ Utils 5.2.5'
 PACKAGE_BUGREPORT='lasse.collin@tukaani.org'
 PACKAGE_URL='https://tukaani.org/xz/'
 
@@ -655,11 +655,11 @@ LTLIBICONV
 LIBICONV
 INTL_MACOSX_LIBS
 XGETTEXT_EXTRA_OPTIONS
+MSGMERGE_FOR_MSGFMT_OPTION
 MSGMERGE
 XGETTEXT_015
 XGETTEXT
 GMSGFMT_015
-MSGFMT_015
 GMSGFMT
 MSGFMT
 GETTEXT_MACRO_VERSION
@@ -682,7 +682,6 @@ ac_ct_DUMPBIN
 DUMPBIN
 LD
 FGREP
-SED
 LIBTOOL
 OBJDUMP
 DLLTOOL
@@ -693,6 +692,7 @@ PTHREAD_CFLAGS
 PTHREAD_LIBS
 PTHREAD_CC
 ax_pthread_config
+SED
 EGREP
 GREP
 CPP
@@ -708,7 +708,6 @@ am__nodep
 AMDEPBACKSLASH
 AMDEP_FALSE
 AMDEP_TRUE
-am__quote
 am__include
 DEPDIR
 OBJEXT
@@ -748,6 +747,7 @@ INSTALL_SCRIPT
 INSTALL_PROGRAM
 PREFERABLY_POSIX_SHELL
 POSIX_SHELL
+enable_path_for_scripts
 COND_SYMVERS_FALSE
 COND_SYMVERS_TRUE
 COND_DOC_FALSE
@@ -894,7 +894,8 @@ PACKAGE_VERSION
 PACKAGE_TARNAME
 PACKAGE_NAME
 PATH_SEPARATOR
-SHELL'
+SHELL
+am__quote'
 ac_subst_files=''
 ac_user_opts='
 enable_option_checking
@@ -917,6 +918,7 @@ enable_scripts
 enable_doc
 enable_symbol_versions
 enable_sandbox
+enable_path_for_scripts
 enable_silent_rules
 enable_dependency_tracking
 enable_shared
@@ -933,6 +935,7 @@ with_libiconv_prefix
 with_libintl_prefix
 enable_largefile
 enable_unaligned_access
+enable_unsafe_type_punning
 enable_werror
 '
       ac_precious_vars='build_alias
@@ -1487,7 +1490,7 @@ if test "$ac_init_help" = "long"; then
   # Omit some internal or obsolete options to make the list less imposing.
   # This message is too long to be a string in the A/UX 3.1 sh.
   cat <<_ACEOF
-\`configure' configures XZ Utils 5.2.4 to adapt to many kinds of systems.
+\`configure' configures XZ Utils 5.2.5 to adapt to many kinds of systems.
 
 Usage: $0 [OPTION]... [VAR=VALUE]...
 
@@ -1557,7 +1560,7 @@ fi
 
 if test -n "$ac_init_help"; then
   case $ac_init_help in
-     short | recursive ) echo "Configuration of XZ Utils 5.2.4:";;
+     short | recursive ) echo "Configuration of XZ Utils 5.2.5:";;
    esac
   cat <<\_ACEOF
 
@@ -1610,9 +1613,15 @@ Optional Features:
                           Use symbol versioning for liblzma. Enabled by
                           default on GNU/Linux, other GNU-based systems, and
                           FreeBSD.
-  --enable-sandbox=METHOD This is an experimental feature. Sandboxing METHOD
-                          can be `auto', `no', or `capsicum'. The default is
-                          `no'.
+  --enable-sandbox=METHOD Sandboxing METHOD can be `auto', `no', or
+                          `capsicum'. The default is `auto' which enables
+                          sandboxing if a supported sandboxing method is
+                          found.
+  --enable-path-for-scripts=PREFIX
+                          If PREFIX isn't empty, PATH=PREFIX:$PATH will be set
+                          in the beginning of the scripts (xzgrep and others).
+                          The default is empty except on Solaris the default
+                          is /usr/xpg4/bin.
   --enable-silent-rules   less verbose build output (undo: "make V=1")
   --disable-silent-rules  verbose build output (undo: "make V=0")
   --enable-dependency-tracking
@@ -1632,6 +1641,12 @@ Optional Features:
                           memory access with 16-bit and 32-bit integers. By
                           default, this is enabled only on x86, x86_64, and
                           big endian PowerPC.
+  --enable-unsafe-type-punning
+                          This introduces strict aliasing violations and may
+                          result in broken code. However, this might improve
+                          performance in some cases, especially with old
+                          compilers (e.g. GCC 3 and early 4.x on x86, GCC < 6
+                          on ARMv6 and ARMv7).
   --enable-werror         Enable -Werror to abort compilation on all compiler
                           warnings.
 
@@ -1733,7 +1748,7 @@ fi
 test -n "$ac_init_help" && exit $ac_status
 if $ac_init_version; then
   cat <<\_ACEOF
-XZ Utils configure 5.2.4
+XZ Utils configure 5.2.5
 generated by GNU Autoconf 2.69
 
 Copyright (C) 2012 Free Software Foundation, Inc.
@@ -2572,7 +2587,7 @@ cat >config.log <<_ACEOF
 This file contains any messages produced by compilers while
 running configure, to aid debugging if configure makes a mistake.
 
-It was created by XZ Utils $as_me 5.2.4, which was
+It was created by XZ Utils $as_me 5.2.5, which was
 generated by GNU Autoconf 2.69.  Invocation command line was
 
   $ $0 $@
@@ -4162,7 +4177,7 @@ $as_echo_n "checking if sandboxing should be used... " >&6; }
 if test "${enable_sandbox+set}" = set; then :
   enableval=$enable_sandbox;
 else
-  enable_sandbox=no
+  enable_sandbox=auto
 fi
 
 case $enable_sandbox in
@@ -4182,11 +4197,47 @@ $as_echo "" >&6; }
 esac
 
 
+###########################
+# PATH prefix for scripts #
+###########################
+
+# The scripts can add a prefix to the search PATH so that POSIX tools
+# or the xz binary is always in the PATH.
+# Check whether --enable-path-for-scripts was given.
+if test "${enable_path_for_scripts+set}" = set; then :
+  enableval=$enable_path_for_scripts;
+else
+
+               case $host_os in
+                       solaris*) enable_path_for_scripts=/usr/xpg4/bin ;;
+                       *)        enable_path_for_scripts= ;;
+               esac
+
+fi
+
+if test -n "$enable_path_for_scripts" && test "x$enable_path_for_scripts" != xno ; then
+       enable_path_for_scripts="PATH=$enable_path_for_scripts:\$PATH"
+else
+       enable_path_for_scripts=
+fi
+
+
+
 ###############################################################################
 # Checks for programs.
 ###############################################################################
 
 echo
+case $host_os in
+       solaris*)
+               # The gnulib POSIX shell macro below may pick a shell that
+               # doesn't work with xzgrep. Workaround by picking a shell
+               # that is known to work.
+               if test -z "$gl_cv_posix_shell" && test -x /usr/xpg4/bin/sh; then
+                       gl_cv_posix_shell=/usr/xpg4/bin/sh
+               fi
+               ;;
+esac
 
   { $as_echo "$as_me:${as_lineno-$LINENO}: checking for a shell that conforms to POSIX" >&5
 $as_echo_n "checking for a shell that conforms to POSIX... " >&6; }
@@ -4254,7 +4305,7 @@ echo "Initializing Automake:"
 # http://debbugs.gnu.org/cgi/bugreport.cgi?bug=17354
 # The -Wno-unsupported is used to silence warnings about missing
 # "subdir-objects".
-am__api_version='1.15'
+am__api_version='1.16'
 
 # Find a good install program.  We prefer a C program (faster),
 # so one script is as good as another.  But avoid the broken or
@@ -4740,7 +4791,7 @@ fi
 
 # Define the identity of the package.
  PACKAGE='xz'
- VERSION='5.2.4'
+ VERSION='5.2.5'
 
 
 cat >>confdefs.h <<_ACEOF
@@ -4770,8 +4821,8 @@ MAKEINFO=${MAKEINFO-"${am_missing_run}makeinfo"}
 
 # For better backward compatibility.  To be removed once Automake 1.9.x
 # dies out for good.  For more background, see:
-# <http://lists.gnu.org/archive/html/automake/2012-07/msg00001.html>
-# <http://lists.gnu.org/archive/html/automake/2012-07/msg00014.html>
+# <https://lists.gnu.org/archive/html/automake/2012-07/msg00001.html>
+# <https://lists.gnu.org/archive/html/automake/2012-07/msg00014.html>
 mkdir_p='$(MKDIR_P)'
 
 # We need awk for the "check" target (and possibly the TAP driver).  The
@@ -4822,7 +4873,7 @@ END
 Aborting the configuration process, to ensure you take notice of the issue.
 
 You can download and install GNU coreutils to get an 'rm' implementation
-that behaves properly: <http://www.gnu.org/software/coreutils/>.
+that behaves properly: <https://www.gnu.org/software/coreutils/>.
 
 If you want to complete the configuration process using your problematic
 'rm' anyway, export the environment variable ACCEPT_INFERIOR_RM_PROGRAM
@@ -4849,45 +4900,45 @@ DEPDIR="${am__leading_dot}deps"
 
 ac_config_commands="$ac_config_commands depfiles"
 
-
-am_make=${MAKE-make}
-cat > confinc << 'END'
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ${MAKE-make} supports the include directive" >&5
+$as_echo_n "checking whether ${MAKE-make} supports the include directive... " >&6; }
+cat > confinc.mk << 'END'
 am__doit:
-       @echo this is the am__doit target
+       @echo this is the am__doit target >confinc.out
 .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
+# BSD make does it like this.
+echo '.include "confinc.mk" # ignored' > confmf.BSD
+# Other make implementations (GNU, Solaris 10, AIX) do it like this.
+echo 'include confinc.mk # ignored' > confmf.GNU
+_am_result=no
+for s in GNU BSD; do
+  { echo "$as_me:$LINENO: ${MAKE-make} -f confmf.$s && cat confinc.out" >&5
+   (${MAKE-make} -f confmf.$s && cat confinc.out) >&5 2>&5
+   ac_status=$?
+   echo "$as_me:$LINENO: \$? = $ac_status" >&5
+   (exit $ac_status); }
+  case $?:`cat confinc.out 2>/dev/null` in #(
+  '0:this is the am__doit target') :
+    case $s in #(
+  BSD) :
+    am__include='.include' am__quote='"' ;; #(
+  *) :
+    am__include='include' am__quote='' ;;
+esac ;; #(
+  *) :
      ;;
-   esac
-fi
-
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $_am_result" >&5
-$as_echo "$_am_result" >&6; }
-rm -f confinc confmf
+esac
+  if test "$am__include" != "#"; then
+    _am_result="yes ($s style)"
+    break
+  fi
+done
+rm -f confinc.* confmf.*
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: ${_am_result}" >&5
+$as_echo "${_am_result}" >&6; }
 
 # Check whether --enable-dependency-tracking was given.
 if test "${enable_dependency_tracking+set}" = set; then :
@@ -6663,6 +6714,77 @@ case $enable_threads in
        posix)
                echo
                echo "POSIX threading support:"
+               { $as_echo "$as_me:${as_lineno-$LINENO}: checking for a sed that does not truncate output" >&5
+$as_echo_n "checking for a sed that does not truncate output... " >&6; }
+if ${ac_cv_path_SED+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+            ac_script=s/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb/
+     for ac_i in 1 2 3 4 5 6 7; do
+       ac_script="$ac_script$as_nl$ac_script"
+     done
+     echo "$ac_script" 2>/dev/null | sed 99q >conftest.sed
+     { ac_script=; unset ac_script;}
+     if test -z "$SED"; then
+  ac_path_SED_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
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_prog in sed gsed; do
+    for ac_exec_ext in '' $ac_executable_extensions; do
+      ac_path_SED="$as_dir/$ac_prog$ac_exec_ext"
+      as_fn_executable_p "$ac_path_SED" || continue
+# Check for GNU ac_path_SED and select it if it is found.
+  # Check for GNU $ac_path_SED
+case `"$ac_path_SED" --version 2>&1` in
+*GNU*)
+  ac_cv_path_SED="$ac_path_SED" ac_path_SED_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 '' >> "conftest.nl"
+    "$ac_path_SED" -f conftest.sed < "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_SED_max-0}; then
+      # Best one so far, save it but keep looking for a better one
+      ac_cv_path_SED="$ac_path_SED"
+      ac_path_SED_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_SED_found && break 3
+    done
+  done
+  done
+IFS=$as_save_IFS
+  if test -z "$ac_cv_path_SED"; then
+    as_fn_error $? "no acceptable sed could be found in \$PATH" "$LINENO" 5
+  fi
+else
+  ac_cv_path_SED=$SED
+fi
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_SED" >&5
+$as_echo "$ac_cv_path_SED" >&6; }
+ SED="$ac_cv_path_SED"
+  rm -f conftest.sed
+
+
+
 
 
 ac_ext=c
@@ -6674,19 +6796,23 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu
 ax_pthread_ok=no
 
 # We used to check for pthread.h first, but this fails if pthread.h
-# requires special compiler flags (e.g. on True64 or Sequent).
+# requires special compiler flags (e.g. on Tru64 or Sequent).
 # It gets checked for in the link test anyway.
 
 # First of all, check if the user has set any of the PTHREAD_LIBS,
 # etcetera environment variables, and if threads linking works using
 # them:
-if test x"$PTHREAD_LIBS$PTHREAD_CFLAGS" != x; then
-        save_CFLAGS="$CFLAGS"
+if test "x$PTHREAD_CFLAGS$PTHREAD_LIBS" != "x"; then
+        ax_pthread_save_CC="$CC"
+        ax_pthread_save_CFLAGS="$CFLAGS"
+        ax_pthread_save_LIBS="$LIBS"
+        if test "x$PTHREAD_CC" != "x"; then :
+  CC="$PTHREAD_CC"
+fi
         CFLAGS="$CFLAGS $PTHREAD_CFLAGS"
-        save_LIBS="$LIBS"
         LIBS="$PTHREAD_LIBS $LIBS"
-        { $as_echo "$as_me:${as_lineno-$LINENO}: checking for pthread_join in LIBS=$PTHREAD_LIBS with CFLAGS=$PTHREAD_CFLAGS" >&5
-$as_echo_n "checking for pthread_join in LIBS=$PTHREAD_LIBS with CFLAGS=$PTHREAD_CFLAGS... " >&6; }
+        { $as_echo "$as_me:${as_lineno-$LINENO}: checking for pthread_join using $CC $PTHREAD_CFLAGS $PTHREAD_LIBS" >&5
+$as_echo_n "checking for pthread_join using $CC $PTHREAD_CFLAGS $PTHREAD_LIBS... " >&6; }
         cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
@@ -6712,12 +6838,13 @@ rm -f core conftest.err conftest.$ac_objext \
     conftest$ac_exeext conftest.$ac_ext
         { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_pthread_ok" >&5
 $as_echo "$ax_pthread_ok" >&6; }
-        if test x"$ax_pthread_ok" = xno; then
+        if test "x$ax_pthread_ok" = "xno"; then
                 PTHREAD_LIBS=""
                 PTHREAD_CFLAGS=""
         fi
-        LIBS="$save_LIBS"
-        CFLAGS="$save_CFLAGS"
+        CC="$ax_pthread_save_CC"
+        CFLAGS="$ax_pthread_save_CFLAGS"
+        LIBS="$ax_pthread_save_LIBS"
 fi
 
 # We must check for the threads library under a number of different
@@ -6725,12 +6852,14 @@ fi
 # (e.g. DEC) have both -lpthread and -lpthreads, where one of the
 # libraries is broken (non-POSIX).
 
-# Create a list of thread flags to try.  Items starting with a "-" are
-# C compiler flags, and other items are library names, except for "none"
-# which indicates that we try without any flags at all, and "pthread-config"
-# which is a program returning the flags for the Pth emulation library.
+# Create a list of thread flags to try. Items with a "," contain both
+# C compiler flags (before ",") and linker flags (after ","). Other items
+# starting with a "-" are C compiler flags, and remaining items are
+# library names, except for "none" which indicates that we try without
+# any flags at all, and "pthread-config" which is a program returning
+# the flags for the Pth emulation library.
 
-ax_pthread_flags="pthreads none -Kthread -kthread lthread -pthread -pthreads -mthreads pthread --thread-safe -mt pthread-config"
+ax_pthread_flags="pthreads none -Kthread -pthread -pthreads -mthreads pthread --thread-safe -mt pthread-config"
 
 # The ordering *is* (sometimes) important.  Some notes on the
 # individual items follow:
@@ -6739,82 +6868,172 @@ ax_pthread_flags="pthreads none -Kthread -kthread lthread -pthread -pthreads -mt
 # none: in case threads are in libc; should be tried before -Kthread and
 #       other compiler flags to prevent continual compiler warnings
 # -Kthread: Sequent (threads in libc, but -Kthread needed for pthread.h)
-# -kthread: FreeBSD kernel threads (preferred to -pthread since SMP-able)
-# lthread: LinuxThreads port on FreeBSD (also preferred to -pthread)
-# -pthread: Linux/gcc (kernel threads), BSD/gcc (userland threads)
-# -pthreads: Solaris/gcc
-# -mthreads: Mingw32/gcc, Lynx/gcc
+# -pthread: Linux/gcc (kernel threads), BSD/gcc (userland threads), Tru64
+#           (Note: HP C rejects this with "bad form for `-t' option")
+# -pthreads: Solaris/gcc (Note: HP C also rejects)
 # -mt: Sun Workshop C (may only link SunOS threads [-lthread], but it
-#      doesn't hurt to check since this sometimes defines pthreads too;
-#      also defines -D_REENTRANT)
-#      ... -mt is also the pthreads flag for HP/aCC
+#      doesn't hurt to check since this sometimes defines pthreads and
+#      -D_REENTRANT too), HP C (must be checked before -lpthread, which
+#      is present but should not be used directly; and before -mthreads,
+#      because the compiler interprets this as "-mt" + "-hreads")
+# -mthreads: Mingw32/gcc, Lynx/gcc
 # pthread: Linux, etcetera
 # --thread-safe: KAI C++
 # pthread-config: use pthread-config program (for GNU Pth library)
 
-case ${host_os} in
+case $host_os in
+
+        freebsd*)
+
+        # -kthread: FreeBSD kernel threads (preferred to -pthread since SMP-able)
+        # lthread: LinuxThreads port on FreeBSD (also preferred to -pthread)
+
+        ax_pthread_flags="-kthread lthread $ax_pthread_flags"
+        ;;
+
+        hpux*)
+
+        # From the cc(1) man page: "[-mt] Sets various -D flags to enable
+        # multi-threading and also sets -lpthread."
+
+        ax_pthread_flags="-mt -pthread pthread $ax_pthread_flags"
+        ;;
+
+        openedition*)
+
+        # IBM z/OS requires a feature-test macro to be defined in order to
+        # enable POSIX threads at all, so give the user a hint if this is
+        # not set. (We don't define these ourselves, as they can affect
+        # other portions of the system API in unpredictable ways.)
+
+        cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+#            if !defined(_OPEN_THREADS) && !defined(_UNIX03_THREADS)
+             AX_PTHREAD_ZOS_MISSING
+#            endif
+
+_ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+  $EGREP "AX_PTHREAD_ZOS_MISSING" >/dev/null 2>&1; then :
+  { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: IBM z/OS requires -D_OPEN_THREADS or -D_UNIX03_THREADS to enable pthreads support." >&5
+$as_echo "$as_me: WARNING: IBM z/OS requires -D_OPEN_THREADS or -D_UNIX03_THREADS to enable pthreads support." >&2;}
+fi
+rm -f conftest*
+
+        ;;
+
         solaris*)
 
         # On Solaris (at least, for some versions), libc contains stubbed
         # (non-functional) versions of the pthreads routines, so link-based
-        # tests will erroneously succeed.  (We need to link with -pthreads/-mt/
-        # -lpthread.)  (The stubs are missing pthread_cleanup_push, or rather
-        # a function called by this macro, so we could check for that, but
-        # who knows whether they'll stub that too in a future libc.)  So,
-        # we'll just look for -pthreads and -lpthread first:
-
-        ax_pthread_flags="-pthreads pthread -mt -pthread $ax_pthread_flags"
-        ;;
+        # tests will erroneously succeed. (N.B.: The stubs are missing
+        # pthread_cleanup_push, or rather a function called by this macro,
+        # so we could check for that, but who knows whether they'll stub
+        # that too in a future libc.)  So we'll check first for the
+        # standard Solaris way of linking pthreads (-mt -lpthread).
 
-        darwin*)
-        ax_pthread_flags="-pthread $ax_pthread_flags"
+        ax_pthread_flags="-mt,-lpthread pthread $ax_pthread_flags"
         ;;
 esac
 
-# Clang doesn't consider unrecognized options an error unless we specify
-# -Werror. We throw in some extra Clang-specific options to ensure that
-# this doesn't happen for GCC, which also accepts -Werror.
+# Are we compiling with Clang?
 
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if compiler needs -Werror to reject unknown flags" >&5
-$as_echo_n "checking if compiler needs -Werror to reject unknown flags... " >&6; }
-save_CFLAGS="$CFLAGS"
-ax_pthread_extra_flags="-Werror"
-CFLAGS="$CFLAGS $ax_pthread_extra_flags -Wunknown-warning-option -Wsizeof-array-argument"
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC is Clang" >&5
+$as_echo_n "checking whether $CC is Clang... " >&6; }
+if ${ax_cv_PTHREAD_CLANG+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  ax_cv_PTHREAD_CLANG=no
+     # Note that Autoconf sets GCC=yes for Clang as well as GCC
+     if test "x$GCC" = "xyes"; then
+        cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
-int foo(void);
-int
-main ()
-{
-foo()
-  ;
-  return 0;
-}
+/* Note: Clang 2.7 lacks __clang_[a-z]+__ */
+#            if defined(__clang__) && defined(__llvm__)
+             AX_PTHREAD_CC_IS_CLANG
+#            endif
+
 _ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+  $EGREP "AX_PTHREAD_CC_IS_CLANG" >/dev/null 2>&1; then :
+  ax_cv_PTHREAD_CLANG=yes
+fi
+rm -f conftest*
+
+     fi
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_cv_PTHREAD_CLANG" >&5
+$as_echo "$ax_cv_PTHREAD_CLANG" >&6; }
+ax_pthread_clang="$ax_cv_PTHREAD_CLANG"
+
+
+# GCC generally uses -pthread, or -pthreads on some platforms (e.g. SPARC)
+
+# Note that for GCC and Clang -pthread generally implies -lpthread,
+# except when -nostdlib is passed.
+# This is problematic using libtool to build C++ shared libraries with pthread:
+# [1] https://gcc.gnu.org/bugzilla/show_bug.cgi?id=25460
+# [2] https://bugzilla.redhat.com/show_bug.cgi?id=661333
+# [3] https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=468555
+# To solve this, first try -pthread together with -lpthread for GCC
+
+if test "x$GCC" = "xyes"; then :
+  ax_pthread_flags="-pthread,-lpthread -pthread -pthreads $ax_pthread_flags"
+fi
+
+# Clang takes -pthread (never supported any other flag), but we'll try with -lpthread first
+
+if test "x$ax_pthread_clang" = "xyes"; then :
+  ax_pthread_flags="-pthread,-lpthread -pthread"
+fi
+
+
+# The presence of a feature test macro requesting re-entrant function
+# definitions is, on some systems, a strong hint that pthreads support is
+# correctly enabled
+
+case $host_os in
+        darwin* | hpux* | linux* | osf* | solaris*)
+        ax_pthread_check_macro="_REENTRANT"
+        ;;
+
+        aix*)
+        ax_pthread_check_macro="_THREAD_SAFE"
+        ;;
+
+        *)
+        ax_pthread_check_macro="--"
+        ;;
+esac
+if test "x$ax_pthread_check_macro" = "x--"; then :
+  ax_pthread_check_cond=0
 else
-  ax_pthread_extra_flags=
-                   { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+  ax_pthread_check_cond="!defined($ax_pthread_check_macro)"
 fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-CFLAGS="$save_CFLAGS"
 
-if test x"$ax_pthread_ok" = xno; then
-for flag in $ax_pthread_flags; do
 
-        case $flag in
+if test "x$ax_pthread_ok" = "xno"; then
+for ax_pthread_try_flag in $ax_pthread_flags; do
+
+        case $ax_pthread_try_flag in
                 none)
                 { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether pthreads work without any flags" >&5
 $as_echo_n "checking whether pthreads work without any flags... " >&6; }
                 ;;
 
+                *,*)
+                PTHREAD_CFLAGS=`echo $ax_pthread_try_flag | sed "s/^\(.*\),\(.*\)$/\1/"`
+                PTHREAD_LIBS=`echo $ax_pthread_try_flag | sed "s/^\(.*\),\(.*\)$/\2/"`
+                { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether pthreads work with \"$PTHREAD_CFLAGS\" and \"$PTHREAD_LIBS\"" >&5
+$as_echo_n "checking whether pthreads work with \"$PTHREAD_CFLAGS\" and \"$PTHREAD_LIBS\"... " >&6; }
+                ;;
+
                 -*)
-                { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether pthreads work with $flag" >&5
-$as_echo_n "checking whether pthreads work with $flag... " >&6; }
-                PTHREAD_CFLAGS="$flag"
+                { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether pthreads work with $ax_pthread_try_flag" >&5
+$as_echo_n "checking whether pthreads work with $ax_pthread_try_flag... " >&6; }
+                PTHREAD_CFLAGS="$ax_pthread_try_flag"
                 ;;
 
                 pthread-config)
@@ -6856,22 +7075,24 @@ $as_echo "no" >&6; }
 fi
 
 
-                if test x"$ax_pthread_config" = xno; then continue; fi
+                if test "x$ax_pthread_config" = "xno"; then :
+  continue
+fi
                 PTHREAD_CFLAGS="`pthread-config --cflags`"
                 PTHREAD_LIBS="`pthread-config --ldflags` `pthread-config --libs`"
                 ;;
 
                 *)
-                { $as_echo "$as_me:${as_lineno-$LINENO}: checking for the pthreads library -l$flag" >&5
-$as_echo_n "checking for the pthreads library -l$flag... " >&6; }
-                PTHREAD_LIBS="-l$flag"
+                { $as_echo "$as_me:${as_lineno-$LINENO}: checking for the pthreads library -l$ax_pthread_try_flag" >&5
+$as_echo_n "checking for the pthreads library -l$ax_pthread_try_flag... " >&6; }
+                PTHREAD_LIBS="-l$ax_pthread_try_flag"
                 ;;
         esac
 
-        save_LIBS="$LIBS"
-        save_CFLAGS="$CFLAGS"
+        ax_pthread_save_CFLAGS="$CFLAGS"
+        ax_pthread_save_LIBS="$LIBS"
+        CFLAGS="$CFLAGS $PTHREAD_CFLAGS"
         LIBS="$PTHREAD_LIBS $LIBS"
-        CFLAGS="$CFLAGS $PTHREAD_CFLAGS $ax_pthread_extra_flags"
 
         # Check for various functions.  We must include pthread.h,
         # since some functions may be macros.  (On the Sequent, we
@@ -6882,10 +7103,20 @@ $as_echo_n "checking for the pthreads library -l$flag... " >&6; }
         # pthread_cleanup_push because it is one of the few pthread
         # functions on Solaris that doesn't have a non-functional libc stub.
         # We try pthread_create on general principles.
+
         cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 #include <pthread.h>
-                        static void routine(void *a) { a = 0; }
+#                       if $ax_pthread_check_cond
+#                        error "$ax_pthread_check_macro must be defined"
+#                       endif
+                        static void *some_global = NULL;
+                        static void routine(void *a)
+                          {
+                             /* To avoid any unused-parameter or
+                                unused-but-set-parameter warning.  */
+                             some_global = a;
+                          }
                         static void *start_routine(void *a) { return a; }
 int
 main ()
 rm -f core conftest.err conftest.$ac_objext \
     conftest$ac_exeext conftest.$ac_ext
 
-        LIBS="$save_LIBS"
-        CFLAGS="$save_CFLAGS"
+        CFLAGS="$ax_pthread_save_CFLAGS"
+        LIBS="$ax_pthread_save_LIBS"
 
         { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_pthread_ok" >&5
 $as_echo "$ax_pthread_ok" >&6; }
-        if test "x$ax_pthread_ok" = xyes; then
-                break;
-        fi
+        if test "x$ax_pthread_ok" = "xyes"; then :
+  break
+fi
 
         PTHREAD_LIBS=""
         PTHREAD_CFLAGS=""
 done
 fi
 
+
+# Clang needs special handling, because older versions handle the -pthread
+# option in a rather... idiosyncratic way
+
+if test "x$ax_pthread_clang" = "xyes"; then
+
+        # Clang takes -pthread; it has never supported any other flag
+
+        # (Note 1: This will need to be revisited if a system that Clang
+        # supports has POSIX threads in a separate library.  This tends not
+        # to be the way of modern systems, but it's conceivable.)
+
+        # (Note 2: On some systems, notably Darwin, -pthread is not needed
+        # to get POSIX threads support; the API is always present and
+        # active.  We could reasonably leave PTHREAD_CFLAGS empty.  But
+        # -pthread does define _REENTRANT, and while the Darwin headers
+        # ignore this macro, third-party headers might not.)
+
+        # However, older versions of Clang make a point of warning the user
+        # that, in an invocation where only linking and no compilation is
+        # taking place, the -pthread option has no effect ("argument unused
+        # during compilation").  They expect -pthread to be passed in only
+        # when source code is being compiled.
+        #
+        # Problem is, this is at odds with the way Automake and most other
+        # C build frameworks function, which is that the same flags used in
+        # compilation (CFLAGS) are also used in linking.  Many systems
+        # supported by AX_PTHREAD require exactly this for POSIX threads
+        # support, and in fact it is often not straightforward to specify a
+        # flag that is used only in the compilation phase and not in
+        # linking.  Such a scenario is extremely rare in practice.
+        #
+        # Even though use of the -pthread flag in linking would only print
+        # a warning, this can be a nuisance for well-run software projects
+        # that build with -Werror.  So if the active version of Clang has
+        # this misfeature, we search for an option to squash it.
+
+        { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether Clang needs flag to prevent \"argument unused\" warning when linking with -pthread" >&5
+$as_echo_n "checking whether Clang needs flag to prevent \"argument unused\" warning when linking with -pthread... " >&6; }
+if ${ax_cv_PTHREAD_CLANG_NO_WARN_FLAG+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  ax_cv_PTHREAD_CLANG_NO_WARN_FLAG=unknown
+             # Create an alternate version of $ac_link that compiles and
+             # links in two steps (.c -> .o, .o -> exe) instead of one
+             # (.c -> exe), because the warning occurs only in the second
+             # step
+             ax_pthread_save_ac_link="$ac_link"
+             ax_pthread_sed='s/conftest\.\$ac_ext/conftest.$ac_objext/g'
+             ax_pthread_link_step=`$as_echo "$ac_link" | sed "$ax_pthread_sed"`
+             ax_pthread_2step_ac_link="($ac_compile) && (echo ==== >&5) && ($ax_pthread_link_step)"
+             ax_pthread_save_CFLAGS="$CFLAGS"
+             for ax_pthread_try in '' -Qunused-arguments -Wno-unused-command-line-argument unknown; do
+                if test "x$ax_pthread_try" = "xunknown"; then :
+  break
+fi
+                CFLAGS="-Werror -Wunknown-warning-option $ax_pthread_try -pthread $ax_pthread_save_CFLAGS"
+                ac_link="$ax_pthread_save_ac_link"
+                cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+int main(void){return 0;}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+  ac_link="$ax_pthread_2step_ac_link"
+                     cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+int main(void){return 0;}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+  break
+fi
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
+
+fi
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
+             done
+             ac_link="$ax_pthread_save_ac_link"
+             CFLAGS="$ax_pthread_save_CFLAGS"
+             if test "x$ax_pthread_try" = "x"; then :
+  ax_pthread_try=no
+fi
+             ax_cv_PTHREAD_CLANG_NO_WARN_FLAG="$ax_pthread_try"
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_cv_PTHREAD_CLANG_NO_WARN_FLAG" >&5
+$as_echo "$ax_cv_PTHREAD_CLANG_NO_WARN_FLAG" >&6; }
+
+        case "$ax_cv_PTHREAD_CLANG_NO_WARN_FLAG" in
+                no | unknown) ;;
+                *) PTHREAD_CFLAGS="$ax_cv_PTHREAD_CLANG_NO_WARN_FLAG $PTHREAD_CFLAGS" ;;
+        esac
+
+fi # $ax_pthread_clang = yes
+
+
+
 # Various other checks:
-if test "x$ax_pthread_ok" = xyes; then
-        save_LIBS="$LIBS"
-        LIBS="$PTHREAD_LIBS $LIBS"
-        save_CFLAGS="$CFLAGS"
+if test "x$ax_pthread_ok" = "xyes"; then
+        ax_pthread_save_CFLAGS="$CFLAGS"
+        ax_pthread_save_LIBS="$LIBS"
         CFLAGS="$CFLAGS $PTHREAD_CFLAGS"
+        LIBS="$PTHREAD_LIBS $LIBS"
 
         # Detect AIX lossage: JOINABLE attribute is called UNDETACHED.
         { $as_echo "$as_me:${as_lineno-$LINENO}: checking for joinable pthread attribute" >&5
 $as_echo_n "checking for joinable pthread attribute... " >&6; }
-        attr_name=unknown
-        for attr in PTHREAD_CREATE_JOINABLE PTHREAD_CREATE_UNDETACHED; do
-            cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+if ${ax_cv_PTHREAD_JOINABLE_ATTR+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  ax_cv_PTHREAD_JOINABLE_ATTR=unknown
+             for ax_pthread_attr in PTHREAD_CREATE_JOINABLE PTHREAD_CREATE_UNDETACHED; do
+                 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 #include <pthread.h>
 int
 main ()
 {
-int attr = $attr; return attr /* ; */
+int attr = $ax_pthread_attr; return attr /* ; */
   ;
   return 0;
 }
 _ACEOF
 if ac_fn_c_try_link "$LINENO"; then :
-  attr_name=$attr; break
+  ax_cv_PTHREAD_JOINABLE_ATTR=$ax_pthread_attr; break
 fi
 rm -f core conftest.err conftest.$ac_objext \
     conftest$ac_exeext conftest.$ac_ext
-        done
-        { $as_echo "$as_me:${as_lineno-$LINENO}: result: $attr_name" >&5
-$as_echo "$attr_name" >&6; }
-        if test "$attr_name" != PTHREAD_CREATE_JOINABLE; then
+             done
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_cv_PTHREAD_JOINABLE_ATTR" >&5
+$as_echo "$ax_cv_PTHREAD_JOINABLE_ATTR" >&6; }
+        if test "x$ax_cv_PTHREAD_JOINABLE_ATTR" != "xunknown" && \
+               test "x$ax_cv_PTHREAD_JOINABLE_ATTR" != "xPTHREAD_CREATE_JOINABLE" && \
+               test "x$ax_pthread_joinable_attr_defined" != "xyes"; then :
 
 cat >>confdefs.h <<_ACEOF
-#define PTHREAD_CREATE_JOINABLE $attr_name
+#define PTHREAD_CREATE_JOINABLE $ax_cv_PTHREAD_JOINABLE_ATTR
 _ACEOF
 
-        fi
+               ax_pthread_joinable_attr_defined=yes
 
-        { $as_echo "$as_me:${as_lineno-$LINENO}: checking if more special flags are required for pthreads" >&5
-$as_echo_n "checking if more special flags are required for pthreads... " >&6; }
-        flag=no
-        case ${host_os} in
-            aix* | freebsd* | darwin*) flag="-D_THREAD_SAFE";;
-            osf* | hpux*) flag="-D_REENTRANT";;
-            solaris*)
-            if test "$GCC" = "yes"; then
-                flag="-D_REENTRANT"
-            else
-                # TODO: What about Clang on Solaris?
-                flag="-mt -D_REENTRANT"
-            fi
-            ;;
-        esac
-        { $as_echo "$as_me:${as_lineno-$LINENO}: result: $flag" >&5
-$as_echo "$flag" >&6; }
-        if test "x$flag" != xno; then
-            PTHREAD_CFLAGS="$flag $PTHREAD_CFLAGS"
-        fi
+fi
+
+        { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether more special flags are required for pthreads" >&5
+$as_echo_n "checking whether more special flags are required for pthreads... " >&6; }
+if ${ax_cv_PTHREAD_SPECIAL_FLAGS+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  ax_cv_PTHREAD_SPECIAL_FLAGS=no
+             case $host_os in
+             solaris*)
+             ax_cv_PTHREAD_SPECIAL_FLAGS="-D_POSIX_PTHREAD_SEMANTICS"
+             ;;
+             esac
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_cv_PTHREAD_SPECIAL_FLAGS" >&5
+$as_echo "$ax_cv_PTHREAD_SPECIAL_FLAGS" >&6; }
+        if test "x$ax_cv_PTHREAD_SPECIAL_FLAGS" != "xno" && \
+               test "x$ax_pthread_special_flags_added" != "xyes"; then :
+  PTHREAD_CFLAGS="$ax_cv_PTHREAD_SPECIAL_FLAGS $PTHREAD_CFLAGS"
+               ax_pthread_special_flags_added=yes
+fi
 
         { $as_echo "$as_me:${as_lineno-$LINENO}: checking for PTHREAD_PRIO_INHERIT" >&5
 $as_echo_n "checking for PTHREAD_PRIO_INHERIT... " >&6; }
 if ${ax_cv_PTHREAD_PRIO_INHERIT+:} false; then :
   $as_echo_n "(cached) " >&6
 else
-
-                cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 #include <pthread.h>
 int
 main ()
 {
 int i = PTHREAD_PRIO_INHERIT;
+                                               return i;
   ;
   return 0;
 }
@@ -7008,23 +7346,26 @@ rm -f core conftest.err conftest.$ac_objext \
 fi
 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_cv_PTHREAD_PRIO_INHERIT" >&5
 $as_echo "$ax_cv_PTHREAD_PRIO_INHERIT" >&6; }
-        if test "x$ax_cv_PTHREAD_PRIO_INHERIT" = "xyes"; then :
+        if test "x$ax_cv_PTHREAD_PRIO_INHERIT" = "xyes" && \
+               test "x$ax_pthread_prio_inherit_defined" != "xyes"; then :
 
 $as_echo "#define HAVE_PTHREAD_PRIO_INHERIT 1" >>confdefs.h
 
+               ax_pthread_prio_inherit_defined=yes
+
 fi
 
-        LIBS="$save_LIBS"
-        CFLAGS="$save_CFLAGS"
+        CFLAGS="$ax_pthread_save_CFLAGS"
+        LIBS="$ax_pthread_save_LIBS"
 
         # More AIX lossage: compile with *_r variant
-        if test "x$GCC" != xyes; then
+        if test "x$GCC" != "xyes"; then
             case $host_os in
                 aix*)
                 case "x/$CC" in #(
   x*/c89|x*/c89_128|x*/c99|x*/c99_128|x*/cc|x*/cc128|x*/xlc|x*/xlc_v6|x*/xlc128|x*/xlc128_v6) :
     #handle absolute path differently from PATH based program lookup
-                   case "x$CC" in #(
+                     case "x$CC" in #(
   x/*) :
     if as_fn_executable_p ${CC}_r; then :
   PTHREAD_CC="${CC}_r"
@@ -7089,7 +7430,7 @@ test -n "$PTHREAD_CC" || PTHREAD_CC="$CC"
 
 
 # Finally, execute ACTION-IF-FOUND/ACTION-IF-NOT-FOUND:
-if test x"$ax_pthread_ok" = xyes; then
+if test "x$ax_pthread_ok" = "xyes"; then
         :
         :
 else
@@ -7232,8 +7573,8 @@ esac
 
 
 
-macro_version='2.4.6.40-6ca5-dirty'
-macro_revision='2.4.6.40'
+macro_version='2.4.6.42-b88ce-dirty'
+macro_revision='2.4.6.42'
 
 
 
@@ -9148,7 +9489,7 @@ for ac_symprfx in "" "_"; do
   if test "$lt_cv_nm_interface" = "MS dumpbin"; then
     # Fake it for dumpbin and say T for any non-static function,
     # D for any global variable and I for any imported variable.
-    # Also find C++ and __fastcall symbols from MSVC++,
+    # Also find C++ and __fastcall symbols from MSVC++ or ICC,
     # which start with @ or ?.
     lt_cv_sys_global_symbol_pipe="$AWK '"\
 "     {last_section=section; section=\$ 3};"\
@@ -11112,8 +11453,8 @@ esac
 ofile=libtool
 can_build_shared=yes
 
-# All known linkers require a '.a' archive for static linking (except MSVC,
-# which needs '.lib').
+# All known linkers require a '.a' archive for static linking (except MSVC and
+# ICC, which need '.lib').
 libext=a
 
 with_gnu_ld=$lt_cv_prog_gnu_ld
@@ -12040,15 +12381,15 @@ $as_echo_n "checking whether the $compiler linker ($LD) supports shared librarie
 
   case $host_os in
   cygwin* | mingw* | pw32* | cegcc*)
-    # FIXME: the MSVC++ port hasn't been tested in a loooong time
+    # FIXME: the MSVC++ and ICC port hasn't been tested in a loooong time
     # When not using gcc, we currently assume that we are using
-    # Microsoft Visual C++.
+    # Microsoft Visual C++ or Intel C++ Compiler.
     if test yes != "$GCC"; then
       with_gnu_ld=no
     fi
     ;;
   interix*)
-    # we just hope/assume this is gcc and not c89 (= MSVC++)
+    # we just hope/assume this is gcc and not c89 (= MSVC++ or ICC)
     with_gnu_ld=yes
     ;;
   openbsd* | bitrig*)
 
     cygwin* | mingw* | pw32* | cegcc*)
       # When not using gcc, we currently assume that we are using
-      # Microsoft Visual C++.
+      # Microsoft Visual C++ or Intel C++ Compiler.
       # hardcode_libdir_flag_spec is actually meaningless, as there is
       # no search path for DLLs.
       case $cc_basename in
-      cl*)
-       # Native MSVC
+      cl* | icl*)
+       # Native MSVC or ICC
        hardcode_libdir_flag_spec=' '
        allow_undefined_flag=unsupported
        always_export_symbols=yes
@@ -12743,7 +13084,7 @@ fi
           fi'
        ;;
       *)
-       # Assume MSVC wrapper
+       # Assume MSVC and ICC wrapper
        hardcode_libdir_flag_spec=' '
        allow_undefined_flag=unsupported
        # Tell ltmain to make .lib files, not .a files.
@@ -13775,8 +14116,8 @@ cygwin* | mingw* | pw32* | cegcc*)
     dynamic_linker='Win32 ld.exe'
     ;;
 
-  *,cl*)
-    # Native MSVC
+  *,cl* | *,icl*)
+    # Native MSVC or ICC
     libname_spec='$name'
     soname_spec='$libname`echo $release | $SED -e 's/[.]/-/g'`$versuffix$shared_ext'
     library_names_spec='$libname.dll.lib'
@@ -13832,7 +14173,7 @@ cygwin* | mingw* | pw32* | cegcc*)
     ;;
 
   *)
-    # Assume MSVC wrapper
+    # Assume MSVC and ICC wrapper
     library_names_spec='$libname`echo $release | $SED -e 's/[.]/-/g'`$versuffix$shared_ext $libname.lib'
     dynamic_linker='Win32 ld.exe'
     ;;
@@ -15327,6 +15668,7 @@ echo
 echo "Initializing 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.
@@ -15342,7 +15684,7 @@ $as_echo "$USE_NLS" >&6; }
 
 
 
-      GETTEXT_MACRO_VERSION=0.19
+      GETTEXT_MACRO_VERSION=0.20
 
 
 
 
 
 
-    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
+    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
@@ -15614,7 +15951,15 @@ $as_echo "no" >&6; }
 fi
 
 
-        test -n "$localedir" || localedir='${datadir}/locale'
+    if LC_ALL=C $MSGMERGE --help | grep ' --for-msgfmt ' >/dev/null; then
+    MSGMERGE_FOR_MSGFMT_OPTION='--for-msgfmt'
+  else
+        if LC_ALL=C $MSGMERGE --help | grep ' --no-fuzzy-matching ' >/dev/null; then
+      MSGMERGE_FOR_MSGFMT_OPTION='--no-fuzzy-matching --no-location --quiet'
+    else
+                        MSGMERGE_FOR_MSGFMT_OPTION='--no-location --quiet'
+    fi
+  fi
 
 
     test -n "${XGETTEXT_EXTRA_OPTIONS+set}" || XGETTEXT_EXTRA_OPTIONS=
@@ -15661,38 +16006,12 @@ if test "${PATH_SEPARATOR+set}" != set; then
        }
 fi
 
-ac_prog=ld
-if test "$GCC" = yes; then
-  # Check if gcc -print-prog-name=ld gives a path.
+if test -n "$LD"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ld" >&5
+$as_echo_n "checking for ld... " >&6; }
+elif test "$GCC" = yes; then
   { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ld used by $CC" >&5
 $as_echo_n "checking for ld used by $CC... " >&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.
-    [\\/]* | ?:[\\/]*)
-      re_direlt='/[^/][^/]*/\.\./'
-      # Canonicalize the pathname 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; }
@@ -15700,44 +16019,129 @@ 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 :
+if test -n "$LD"; then
+  # Let the user override the test with a path.
+  :
+else
+  if ${acl_cv_path_LD+:} false; then :
   $as_echo_n "(cached) " >&6
 else
-  if test -z "$LD"; then
-  acl_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
-  for ac_dir in $PATH; do
-    IFS="$acl_save_ifs"
-    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 variants of GNU ld 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
-        ;;
+
+    acl_cv_path_LD= # Final result of this test
+    ac_prog=ld # Program to search in $PATH
+    if test "$GCC" = yes; then
+      # Check if gcc -print-prog-name=ld gives a path.
+      case $host in
+        *-*-mingw*)
+          # gcc leaves a trailing carriage return which upsets mingw
+          acl_output=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;;
+        *)
+          acl_output=`($CC -print-prog-name=ld) 2>&5` ;;
+      esac
+      case $acl_output in
+        # Accept absolute paths.
+        [\\/]* | ?:[\\/]*)
+          re_direlt='/[^/][^/]*/\.\./'
+          # Canonicalize the pathname of ld
+          acl_output=`echo "$acl_output" | sed 's%\\\\%/%g'`
+          while echo "$acl_output" | grep "$re_direlt" > /dev/null 2>&1; do
+            acl_output=`echo $acl_output | sed "s%$re_direlt%/%"`
+          done
+          # Got the pathname. No search in PATH is needed.
+          acl_cv_path_LD="$acl_output"
+          ac_prog=
+          ;;
+        "")
+          # If it fails, then pretend we aren't using GCC.
+          ;;
+        *)
+          # If it is relative, then search for the first ld in PATH.
+          with_gnu_ld=unknown
+          ;;
       esac
     fi
-  done
-  IFS="$acl_save_ifs"
+    if test -n "$ac_prog"; then
+      # Search for $ac_prog in $PATH.
+      acl_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
+      for ac_dir in $PATH; do
+        IFS="$acl_save_ifs"
+        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 variants of GNU ld 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="$acl_save_ifs"
+    fi
+    case $host in
+      *-*-aix*)
+        cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#if defined __powerpc64__ || defined _ARCH_PPC64
+                int ok;
+               #else
+                error fail
+               #endif
+
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+  # The compiler produces 64-bit code. Add option '-b64' so that the
+           # linker groks 64-bit object files.
+           case "$acl_cv_path_LD " in
+             *" -b64 "*) ;;
+             *) acl_cv_path_LD="$acl_cv_path_LD -b64" ;;
+           esac
+
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+        ;;
+      sparc64-*-netbsd*)
+        cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#if defined __sparcv9 || defined __arch64__
+                int ok;
+               #else
+                error fail
+               #endif
+
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+
 else
-  acl_cv_path_LD="$LD" # Let the user override the test with a path.
+  # The compiler produces 32-bit code. Add option '-m elf32_sparc'
+           # so that the linker groks 32-bit object files.
+           case "$acl_cv_path_LD " in
+             *" -m elf32_sparc "*) ;;
+             *) acl_cv_path_LD="$acl_cv_path_LD -m elf32_sparc" ;;
+           esac
+
 fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+        ;;
+    esac
+
 fi
 
-LD="$acl_cv_path_LD"
+  LD="$acl_cv_path_LD"
+fi
 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; }
+  as_fn_error $? "no acceptable ld found in \$PATH" "$LINENO" 5
 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 :
 
 
 
-  acl_libdirstem=lib
-  acl_libdirstem2=
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking 32-bit host C ABI" >&5
+$as_echo_n "checking 32-bit host C ABI... " >&6; }
+if ${gl_cv_host_cpu_c_abi_32bit+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  if test -n "$gl_cv_host_cpu_c_abi"; then
+       case "$gl_cv_host_cpu_c_abi" in
+         i386 | x86_64-x32 | arm | armhf | arm64-ilp32 | hppa | ia64-ilp32 | mips | mipsn32 | powerpc | riscv*-ilp32* | s390 | sparc)
+           gl_cv_host_cpu_c_abi_32bit=yes ;;
+         *)
+           gl_cv_host_cpu_c_abi_32bit=no ;;
+       esac
+     else
+       case "$host_cpu" in
+
+         i[4567]86 )
+           gl_cv_host_cpu_c_abi_32bit=yes
+           ;;
+
+         x86_64 )
+           # On x86_64 systems, the C compiler may be generating code in one of
+           # these ABIs:
+           # - 64-bit instruction set, 64-bit pointers, 64-bit 'long': x86_64.
+           # - 64-bit instruction set, 64-bit pointers, 32-bit 'long': x86_64
+           #   with native Windows (mingw, MSVC).
+           # - 64-bit instruction set, 32-bit pointers, 32-bit 'long': x86_64-x32.
+           # - 32-bit instruction set, 32-bit pointers, 32-bit 'long': i386.
+           cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#if (defined __x86_64__ || defined __amd64__ \
+                       || defined _M_X64 || defined _M_AMD64) \
+                      && !(defined __ILP32__ || defined _ILP32)
+                   int ok;
+                  #else
+                   error fail
+                  #endif
+
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+  gl_cv_host_cpu_c_abi_32bit=no
+else
+  gl_cv_host_cpu_c_abi_32bit=yes
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+           ;;
+
+         arm* | aarch64 )
+           # Assume arm with EABI.
+           # On arm64 systems, the C compiler may be generating code in one of
+           # these ABIs:
+           # - aarch64 instruction set, 64-bit pointers, 64-bit 'long': arm64.
+           # - aarch64 instruction set, 32-bit pointers, 32-bit 'long': arm64-ilp32.
+           # - 32-bit instruction set, 32-bit pointers, 32-bit 'long': arm or armhf.
+           cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#if defined __aarch64__ && !(defined __ILP32__ || defined _ILP32)
+                   int ok;
+                  #else
+                   error fail
+                  #endif
+
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+  gl_cv_host_cpu_c_abi_32bit=no
+else
+  gl_cv_host_cpu_c_abi_32bit=yes
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+           ;;
+
+         hppa1.0 | hppa1.1 | hppa2.0* | hppa64 )
+           # On hppa, the C compiler may be generating 32-bit code or 64-bit
+           # code. In the latter case, it defines _LP64 and __LP64__.
+           cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#ifdef __LP64__
+                   int ok;
+                  #else
+                   error fail
+                  #endif
+
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+  gl_cv_host_cpu_c_abi_32bit=no
+else
+  gl_cv_host_cpu_c_abi_32bit=yes
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+           ;;
+
+         ia64* )
+           # On ia64 on HP-UX, the C compiler may be generating 64-bit code or
+           # 32-bit code. In the latter case, it defines _ILP32.
+           cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#ifdef _ILP32
+                   int ok;
+                  #else
+                   error fail
+                  #endif
+
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+  gl_cv_host_cpu_c_abi_32bit=yes
+else
+  gl_cv_host_cpu_c_abi_32bit=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+           ;;
+
+         mips* )
+           # We should also check for (_MIPS_SZPTR == 64), but gcc keeps this
+           # at 32.
+           cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#if defined _MIPS_SZLONG && (_MIPS_SZLONG == 64)
+                   int ok;
+                  #else
+                   error fail
+                  #endif
+
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+  gl_cv_host_cpu_c_abi_32bit=no
+else
+  gl_cv_host_cpu_c_abi_32bit=yes
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+           ;;
+
+         powerpc* )
+           # Different ABIs are in use on AIX vs. Mac OS X vs. Linux,*BSD.
+           # No need to distinguish them here; the caller may distinguish
+           # them based on the OS.
+           # On powerpc64 systems, the C compiler may still be generating
+           # 32-bit code. And on powerpc-ibm-aix systems, the C compiler may
+           # be generating 64-bit code.
+           cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#if defined __powerpc64__ || defined _ARCH_PPC64
+                   int ok;
+                  #else
+                   error fail
+                  #endif
+
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+  gl_cv_host_cpu_c_abi_32bit=no
+else
+  gl_cv_host_cpu_c_abi_32bit=yes
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+           ;;
+
+         rs6000 )
+           gl_cv_host_cpu_c_abi_32bit=yes
+           ;;
+
+         riscv32 | riscv64 )
+           # There are 6 ABIs: ilp32, ilp32f, ilp32d, lp64, lp64f, lp64d.
+           # Size of 'long' and 'void *':
+           cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#if defined __LP64__
+                    int ok;
+                  #else
+                    error fail
+                  #endif
+
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+  gl_cv_host_cpu_c_abi_32bit=no
+else
+  gl_cv_host_cpu_c_abi_32bit=yes
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+           ;;
+
+         s390* )
+           # On s390x, the C compiler may be generating 64-bit (= s390x) code
+           # or 31-bit (= s390) code.
+           cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#if defined __LP64__ || defined __s390x__
+                    int ok;
+                  #else
+                    error fail
+                  #endif
+
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+  gl_cv_host_cpu_c_abi_32bit=no
+else
+  gl_cv_host_cpu_c_abi_32bit=yes
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+           ;;
+
+         sparc | sparc64 )
+           # UltraSPARCs running Linux have `uname -m` = "sparc64", but the
+           # C compiler still generates 32-bit code.
+           cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#if defined __sparcv9 || defined __arch64__
+                   int ok;
+                  #else
+                   error fail
+                  #endif
+
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+  gl_cv_host_cpu_c_abi_32bit=no
+else
+  gl_cv_host_cpu_c_abi_32bit=yes
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+           ;;
+
+         *)
+           gl_cv_host_cpu_c_abi_32bit=no
+           ;;
+       esac
+     fi
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_host_cpu_c_abi_32bit" >&5
+$as_echo "$gl_cv_host_cpu_c_abi_32bit" >&6; }
+
+  HOST_CPU_C_ABI_32BIT="$gl_cv_host_cpu_c_abi_32bit"
+
+
+
+
+
   case "$host_os" in
     solaris*)
-                                    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for 64-bit host" >&5
+      { $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
+                 int ok;
+                #else
+                 error fail
+                #endif
 
 _ACEOF
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
-  $EGREP "sixtyfour bits" >/dev/null 2>&1; then :
+if ac_fn_c_try_compile "$LINENO"; then :
   gl_cv_solaris_64bit=yes
 else
   gl_cv_solaris_64bit=no
 fi
-rm -f conftest*
-
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 
 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
-      ;;
+$as_echo "$gl_cv_solaris_64bit" >&6; };;
   esac
-  test -n "$acl_libdirstem2" || acl_libdirstem2="$acl_libdirstem"
 
+    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for the common suffixes of directories in the library search path" >&5
+$as_echo_n "checking for the common suffixes of directories in the library search path... " >&6; }
+if ${acl_cv_libdirstems+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  acl_libdirstem=lib
+     acl_libdirstem2=
+     case "$host_os" in
+       solaris*)
+                                                      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
+         ;;
+       *)
+                           if test "$HOST_CPU_C_ABI_32BIT" != yes; then
+                                            searchpath=`(if test -f /usr/bin/gcc \
+                           && LC_ALL=C /usr/bin/gcc -print-search-dirs >/dev/null 2>/dev/null; then \
+                          LC_ALL=C /usr/bin/gcc -print-search-dirs; \
+                        else \
+                          LC_ALL=C $CC -print-search-dirs; \
+                        fi) 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
+         fi
+         ;;
+     esac
+     test -n "$acl_libdirstem2" || acl_libdirstem2="$acl_libdirstem"
+     acl_cv_libdirstems="$acl_libdirstem,$acl_libdirstem2"
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $acl_cv_libdirstems" >&5
+$as_echo "$acl_cv_libdirstems" >&6; }
+  # Decompose acl_cv_libdirstems into acl_libdirstem and acl_libdirstem2.
+  acl_libdirstem=`echo "$acl_cv_libdirstems" | sed -e 's/,.*//'`
+  acl_libdirstem2=`echo "$acl_cv_libdirstems" | sed -e '/,/s/.*,//'`
 
 
 
@@ -15903,7 +16564,7 @@ if test "${with_libiconv_prefix+set}" = set; then :
         additional_includedir="$withval/include"
         additional_libdir="$withval/$acl_libdirstem"
         if test "$acl_libdirstem2" != "$acl_libdirstem" \
-           && ! test -d "$withval/$acl_libdirstem"; then
+           && test ! -d "$withval/$acl_libdirstem"; then
           additional_libdir="$withval/$acl_libdirstem2"
         fi
       fi
@@ -16343,8 +17004,6 @@ fi
 
 
 
-
-
     { $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 :
@@ -16413,8 +17072,44 @@ $as_echo "$gt_cv_func_CFLocaleCopyCurrent" >&6; }
 $as_echo "#define HAVE_CFLOCALECOPYCURRENT 1" >>confdefs.h
 
   fi
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for CFLocaleCopyPreferredLanguages" >&5
+$as_echo_n "checking for CFLocaleCopyPreferredLanguages... " >&6; }
+if ${gt_cv_func_CFLocaleCopyPreferredLanguages+:} 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 ()
+{
+CFLocaleCopyPreferredLanguages();
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+  gt_cv_func_CFLocaleCopyPreferredLanguages=yes
+else
+  gt_cv_func_CFLocaleCopyPreferredLanguages=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_CFLocaleCopyPreferredLanguages" >&5
+$as_echo "$gt_cv_func_CFLocaleCopyPreferredLanguages" >&6; }
+  if test $gt_cv_func_CFLocaleCopyPreferredLanguages = yes; then
+
+$as_echo "#define HAVE_CFLOCALECOPYPREFERREDLANGUAGES 1" >>confdefs.h
+
+  fi
   INTL_MACOSX_LIBS=
-  if test $gt_cv_func_CFPreferencesCopyAppValue = yes || test $gt_cv_func_CFLocaleCopyCurrent = yes; then
+  if test $gt_cv_func_CFPreferencesCopyAppValue = yes \
+     || test $gt_cv_func_CFLocaleCopyCurrent = yes \
+     || test $gt_cv_func_CFLocaleCopyPreferredLanguages = yes; then
     INTL_MACOSX_LIBS="-Wl,-framework -Wl,CoreFoundation"
   fi
 
@@ -16464,16 +17159,21 @@ else
 /* end confdefs.h.  */
 
 #include <libintl.h>
-$gt_revision_test_code
+#ifndef __GNU_GETTEXT_SUPPORTED_REVISION
 extern int _nl_msg_cat_cntr;
 extern int *_nl_domain_bindings;
+#define __GNU_GETTEXT_SYMBOL_EXPRESSION (_nl_msg_cat_cntr + *_nl_domain_bindings)
+#else
+#define __GNU_GETTEXT_SYMBOL_EXPRESSION 0
+#endif
+$gt_revision_test_code
 
 int
 main ()
 {
 
 bindtextdomain ("", "");
-return * gettext ("")$gt_expression_test_code + _nl_msg_cat_cntr + *_nl_domain_bindings
+return * gettext ("")$gt_expression_test_code + __GNU_GETTEXT_SYMBOL_EXPRESSION
 
   ;
   return 0;
@@ -16593,36 +17293,42 @@ else
       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
-
+      am_cv_func_iconv_works=no
+      for ac_iconv_const in '' 'const'; do
+        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 ()
+
+#ifndef ICONV_CONST
+# define ICONV_CONST $ac_iconv_const
+#endif
+
+int
+main ()
 {
-  int result = 0;
+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 */
+        static ICONV_CONST char input[] = "\342\202\254"; /* EURO SIGN */
         char buf[10];
-        const char *inptr = input;
+        ICONV_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,
+                            &inptr, &inbytesleft,
                             &outptr, &outbytesleft);
         if (res == 0)
           result |= 1;
@@ -16635,14 +17341,14 @@ int main ()
     iconv_t cd_ascii_to_88591 = iconv_open ("ISO8859-1", "646");
     if (cd_ascii_to_88591 != (iconv_t)(-1))
       {
-        static const char input[] = "\263";
+        static ICONV_CONST char input[] = "\263";
         char buf[10];
-        const char *inptr = input;
+        ICONV_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,
+                            &inptr, &inbytesleft,
                             &outptr, &outbytesleft);
         if (res == 0)
           result |= 2;
@@ -16654,14 +17360,14 @@ int main ()
     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 ICONV_CONST char input[] = "\304";
         static char buf[2] = { (char)0xDE, (char)0xAD };
-        const char *inptr = input;
+        ICONV_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,
+                            &inptr, &inbytesleft,
                             &outptr, &outbytesleft);
         if (res != (size_t)(-1) || outptr - buf > 1 || buf[1] != (char)0xAD)
           result |= 4;
@@ -16674,14 +17380,14 @@ int main ()
     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";
+        static ICONV_CONST char input[] = "\304rger mit b\366sen B\374bchen ohne Augenma\337";
         char buf[50];
-        const char *inptr = input;
+        ICONV_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,
+                            &inptr, &inbytesleft,
                             &outptr, &outbytesleft);
         if ((int)res > 0)
           result |= 8;
@@ -16691,27 +17397,42 @@ int main ()
 #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;
+  {
+    /* Try standardized names.  */
+    iconv_t cd1 = iconv_open ("UTF-8", "EUC-JP");
+    /* Try IRIX, OSF/1 names.  */
+    iconv_t cd2 = iconv_open ("UTF-8", "eucJP");
+    /* Try AIX names.  */
+    iconv_t cd3 = iconv_open ("UTF-8", "IBM-eucJP");
+    /* Try HP-UX names.  */
+    iconv_t cd4 = iconv_open ("utf8", "eucJP");
+    if (cd1 == (iconv_t)(-1) && cd2 == (iconv_t)(-1)
+        && cd3 == (iconv_t)(-1) && cd4 == (iconv_t)(-1))
+      result |= 16;
+    if (cd1 != (iconv_t)(-1))
+      iconv_close (cd1);
+    if (cd2 != (iconv_t)(-1))
+      iconv_close (cd2);
+    if (cd3 != (iconv_t)(-1))
+      iconv_close (cd3);
+    if (cd4 != (iconv_t)(-1))
+      iconv_close (cd4);
+  }
   return result;
+
+  ;
+  return 0;
 }
 _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
 
+        test "$am_cv_func_iconv_works" = no || break
+      done
       LIBS="$am_save_LIBS"
 
 fi
@@ -16749,7 +17470,6 @@ $as_echo "$LIBICONV" >&6; }
 
 
 
-
     use_additional=yes
 
   acl_save_prefix="$prefix"
@@ -16787,7 +17507,7 @@ if test "${with_libintl_prefix+set}" = set; then :
         additional_includedir="$withval/include"
         additional_libdir="$withval/$acl_libdirstem"
         if test "$acl_libdirstem2" != "$acl_libdirstem" \
-           && ! test -d "$withval/$acl_libdirstem"; then
+           && test ! -d "$withval/$acl_libdirstem"; then
           additional_libdir="$withval/$acl_libdirstem2"
         fi
       fi
@@ -17203,7 +17923,6 @@ 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 :
@@ -17217,20 +17936,25 @@ else
 /* end confdefs.h.  */
 
 #include <libintl.h>
-$gt_revision_test_code
+#ifndef __GNU_GETTEXT_SUPPORTED_REVISION
 extern int _nl_msg_cat_cntr;
 extern
 #ifdef __cplusplus
 "C"
 #endif
 const char *_nl_expand_alias (const char *);
+#define __GNU_GETTEXT_SYMBOL_EXPRESSION (_nl_msg_cat_cntr + *_nl_expand_alias (""))
+#else
+#define __GNU_GETTEXT_SYMBOL_EXPRESSION 0
+#endif
+$gt_revision_test_code
 
 int
 main ()
 {
 
 bindtextdomain ("", "");
-return * gettext ("")$gt_expression_test_code + _nl_msg_cat_cntr + *_nl_expand_alias ("")
+return * gettext ("")$gt_expression_test_code + __GNU_GETTEXT_SYMBOL_EXPRESSION
 
   ;
   return 0;
@@ -17249,20 +17973,25 @@ rm -f core conftest.err conftest.$ac_objext \
 /* end confdefs.h.  */
 
 #include <libintl.h>
-$gt_revision_test_code
+#ifndef __GNU_GETTEXT_SUPPORTED_REVISION
 extern int _nl_msg_cat_cntr;
 extern
 #ifdef __cplusplus
 "C"
 #endif
 const char *_nl_expand_alias (const char *);
+#define __GNU_GETTEXT_SYMBOL_EXPRESSION (_nl_msg_cat_cntr + *_nl_expand_alias (""))
+#else
+#define __GNU_GETTEXT_SYMBOL_EXPRESSION 0
+#endif
+$gt_revision_test_code
 
 int
 main ()
 {
 
 bindtextdomain ("", "");
-return * gettext ("")$gt_expression_test_code + _nl_msg_cat_cntr + *_nl_expand_alias ("")
+return * gettext ("")$gt_expression_test_code + __GNU_GETTEXT_SYMBOL_EXPRESSION
 
   ;
   return 0;
@@ -18282,7 +19011,37 @@ _ACEOF
 
 
 
-for ac_header in byteswap.h sys/endian.h sys/byteorder.h
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if __builtin_bswap16/32/64 are supported" >&5
+$as_echo_n "checking if __builtin_bswap16/32/64 are supported... " >&6; }
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+int
+main ()
+{
+__builtin_bswap16(1);
+                       __builtin_bswap32(1);
+                       __builtin_bswap64(1);
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+
+
+$as_echo "#define HAVE___BUILTIN_BSWAPXX 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; }
+
+       # Look for other byteswapping methods.
+       for ac_header in byteswap.h sys/endian.h sys/byteorder.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"
 done
 
 
-# Even if we have byteswap.h, we may lack the specific macros/functions.
-if test x$ac_cv_header_byteswap_h = xyes ; then
+       # Even if we have byteswap.h we may lack the specific macros/functions.
+       if test x$ac_cv_header_byteswap_h = xyes ; then
 
-               { $as_echo "$as_me:${as_lineno-$LINENO}: checking if bswap_16 is available" >&5
+                       { $as_echo "$as_me:${as_lineno-$LINENO}: checking if bswap_16 is available" >&5
 $as_echo_n "checking if bswap_16 is available... " >&6; }
-               cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+                       cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
 #include <byteswap.h>
@@ -18318,7 +19077,7 @@ if ac_fn_c_try_link "$LINENO"; then :
 
 $as_echo "#define HAVE_BSWAP_16 1" >>confdefs.h
 
-                       { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+                               { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
 $as_echo "yes" >&6; }
 
 else
@@ -18329,9 +19088,9 @@ rm -f core conftest.err conftest.$ac_objext \
     conftest$ac_exeext conftest.$ac_ext
 
 
-               { $as_echo "$as_me:${as_lineno-$LINENO}: checking if bswap_32 is available" >&5
+                       { $as_echo "$as_me:${as_lineno-$LINENO}: checking if bswap_32 is available" >&5
 $as_echo_n "checking if bswap_32 is available... " >&6; }
-               cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+                       cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
 #include <byteswap.h>
@@ -18348,7 +19107,7 @@ if ac_fn_c_try_link "$LINENO"; then :
 
 $as_echo "#define HAVE_BSWAP_32 1" >>confdefs.h
 
-                       { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+                               { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
 $as_echo "yes" >&6; }
 
 else
@@ -18359,9 +19118,9 @@ rm -f core conftest.err conftest.$ac_objext \
     conftest$ac_exeext conftest.$ac_ext
 
 
-               { $as_echo "$as_me:${as_lineno-$LINENO}: checking if bswap_64 is available" >&5
+                       { $as_echo "$as_me:${as_lineno-$LINENO}: checking if bswap_64 is available" >&5
 $as_echo_n "checking if bswap_64 is available... " >&6; }
-               cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+                       cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
 #include <byteswap.h>
@@ -18378,7 +19137,7 @@ if ac_fn_c_try_link "$LINENO"; then :
 
 $as_echo "#define HAVE_BSWAP_64 1" >>confdefs.h
 
-                       { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+                               { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
 $as_echo "yes" >&6; }
 
 else
 rm -f core conftest.err conftest.$ac_objext \
     conftest$ac_exeext conftest.$ac_ext
 
-       fi
+                       fi
+
+fi
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
 
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking if unaligned memory access should be used" >&5
 $as_echo_n "checking if unaligned memory access should be used... " >&6; }
@@ -18422,6 +19185,56 @@ else
 $as_echo "no" >&6; }
 fi
 
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if unsafe type punning should be used" >&5
+$as_echo_n "checking if unsafe type punning should be used... " >&6; }
+# Check whether --enable-unsafe-type-punning was given.
+if test "${enable_unsafe_type_punning+set}" = set; then :
+  enableval=$enable_unsafe_type_punning;
+else
+  enable_unsafe_type_punning=no
+fi
+
+if test "x$enable_unsafe_type_punning" = xyes ; then
+
+$as_echo "#define TUKLIB_USE_UNSAFE_TYPE_PUNNING 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
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if __builtin_assume_aligned is supported" >&5
+$as_echo_n "checking if __builtin_assume_aligned is supported... " >&6; }
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+int
+main ()
+{
+__builtin_assume_aligned("", 1);
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+
+
+$as_echo "#define HAVE___BUILTIN_ASSUME_ALIGNED 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
+
 
 
 
@@ -18957,7 +19770,7 @@ done
 
 
 
-# If requsted, check for system-provided SHA-256. At least the following
+# If requested, check for system-provided SHA-256. At least the following
 # implementations are supported:
 #
 # OS       Headers                     Library  Type           Function
   if test -n "$GCC"; then
                 { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the -Werror option is usable" >&5
 $as_echo_n "checking whether the -Werror option is usable... " >&6; }
-    if ${gl_cv_cc_vis_werror+:} false; then :
+if ${gl_cv_cc_vis_werror+:} false; then :
   $as_echo_n "(cached) " >&6
 else
-
-      gl_save_CFLAGS="$CFLAGS"
-      CFLAGS="$CFLAGS -Werror"
-      cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+  gl_save_CFLAGS="$CFLAGS"
+       CFLAGS="$CFLAGS -Werror"
+       cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
 int
@@ -19388,29 +20200,28 @@ else
   gl_cv_cc_vis_werror=no
 fi
 rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-      CFLAGS="$gl_save_CFLAGS"
-fi
+       CFLAGS="$gl_save_CFLAGS"
 
-    { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_cc_vis_werror" >&5
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_cc_vis_werror" >&5
 $as_echo "$gl_cv_cc_vis_werror" >&6; }
         { $as_echo "$as_me:${as_lineno-$LINENO}: checking for simple visibility declarations" >&5
 $as_echo_n "checking for simple visibility declarations... " >&6; }
-    if ${gl_cv_cc_visibility+:} false; then :
+if ${gl_cv_cc_visibility+:} false; then :
   $as_echo_n "(cached) " >&6
 else
-
-      gl_save_CFLAGS="$CFLAGS"
-      CFLAGS="$CFLAGS -fvisibility=hidden"
-                                    if test $gl_cv_cc_vis_werror = yes; then
-        CFLAGS="$CFLAGS -Werror"
-      fi
-      cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+  gl_save_CFLAGS="$CFLAGS"
+       CFLAGS="$CFLAGS -fvisibility=hidden"
+                                          if test $gl_cv_cc_vis_werror = yes; then
+         CFLAGS="$CFLAGS -Werror"
+       fi
+       cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 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) {}
+              extern __attribute__((__visibility__("default"))) int exportedvar;
+              extern __attribute__((__visibility__("hidden"))) int hiddenfunc (void);
+              extern __attribute__((__visibility__("default"))) int exportedfunc (void);
+              void dummyfunc (void) {}
 
 int
 main ()
@@ -19426,10 +20237,10 @@ else
   gl_cv_cc_visibility=no
 fi
 rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-      CFLAGS="$gl_save_CFLAGS"
-fi
+       CFLAGS="$gl_save_CFLAGS"
 
-    { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_cc_visibility" >&5
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_cc_visibility" >&5
 $as_echo "$gl_cv_cc_visibility" >&6; }
     if test $gl_cv_cc_visibility = yes; then
       CFLAG_VISIBILITY="-fvisibility=hidden"
@@ -20307,7 +21118,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
 # report actual input values of CONFIG_FILES etc. instead of their
 # values after options handling.
 ac_log="
-This file was extended by XZ Utils $as_me 5.2.4, which was
+This file was extended by XZ Utils $as_me 5.2.5, which was
 generated by GNU Autoconf 2.69.  Invocation command line was
 
   CONFIG_FILES    = $CONFIG_FILES
@@ -20374,7 +21185,7 @@ _ACEOF
 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
 ac_cs_version="\\
-XZ Utils config.status 5.2.4
+XZ Utils config.status 5.2.5
 configured by $0, generated by GNU Autoconf 2.69,
   with options \\"\$ac_cs_config\\"
 
@@ -20493,7 +21304,7 @@ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
 #
 # INIT-COMMANDS
 #
-AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir"
+AMDEP_TRUE="$AMDEP_TRUE" MAKE="${MAKE-make}"
 
 
 # The HP-UX ksh and POSIX shell print the target directory to stdout
@@ -20854,9 +21665,8 @@ fi
 
 
 # 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"'
+    # POFILES, UPDATEPOFILES, DUMMYPOFILES, GMOFILES, CATALOGS.
+    OBSOLETE_ALL_LINGUAS="$ALL_LINGUAS"
     # Capture the value of LINGUAS because we need it to compute CATALOGS.
     LINGUAS="${LINGUAS-%UNSET%}"
 
@@ -21489,29 +22299,35 @@ $as_echo "$as_me: executing $ac_file commands" >&6;}
   # Older Autoconf 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
+  # TODO: see whether this extra hack can be removed once we start
+  # requiring Autoconf 2.70 or later.
+  case $CONFIG_FILES in #(
+  *\'*) :
+    eval set x "$CONFIG_FILES" ;; #(
+  *) :
+    set x $CONFIG_FILES ;; #(
+  *) :
+     ;;
+esac
   shift
-  for mf
+  # Used to flag and report bootstrapping failures.
+  am_rc=0
+  for am_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
+    am_mf=`$as_echo "$am_mf" | sed -e 's/:.*$//'`
+    # Check whether this is an Automake generated Makefile which includes
+    # dependency-tracking related rules and includes.
+    # Grep'ing the whole file directly is not great: 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 -n 's,^am--depfiles:.*,X,p' "$am_mf" | grep X >/dev/null 2>&1 \
+      || continue
+    am_dirpart=`$as_dirname -- "$am_mf" ||
+$as_expr X"$am_mf" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+        X"$am_mf" : 'X\(//\)[^/]' \| \
+        X"$am_mf" : 'X\(//\)$' \| \
+        X"$am_mf" : 'X\(/\)' \| . 2>/dev/null ||
+$as_echo X"$am_mf" |
     sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
            s//\1/
            q
@@ -21529,53 +22345,48 @@ $as_echo X"$mf" |
            q
          }
          s/.*/./; q'`
-    else
-      continue
-    fi
-    # Extract the definition of DEPDIR, am__include, and am__quote
-    # from the Makefile without running 'make'.
-    DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"`
-    test -z "$DEPDIR" && continue
-    am__include=`sed -n 's/^am__include = //p' < "$mf"`
-    test -z "$am__include" && continue
-    am__quote=`sed -n 's/^am__quote = //p' < "$mf"`
-    # 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'`; 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\(\/\/\)[^/].*/{
+    am_filepart=`$as_basename -- "$am_mf" ||
+$as_expr X/"$am_mf" : '.*/\([^/][^/]*\)/*$' \| \
+        X"$am_mf" : 'X\(//\)$' \| \
+        X"$am_mf" : 'X\(/\)' \| . 2>/dev/null ||
+$as_echo X/"$am_mf" |
+    sed '/^.*\/\([^/][^/]*\)\/*$/{
            s//\1/
            q
          }
-         /^X\(\/\/\)$/{
+         /^X\/\(\/\/\)$/{
            s//\1/
            q
          }
-         /^X\(\/\).*/{
+         /^X\/\(\/\).*/{
            s//\1/
            q
          }
          s/.*/./; q'`
-      as_dir=$dirpart/$fdir; as_fn_mkdir_p
-      # echo "creating $dirpart/$file"
-      echo '# dummy' > "$dirpart/$file"
-    done
+    { echo "$as_me:$LINENO: cd "$am_dirpart" \
+      && sed -e '/# am--include-marker/d' "$am_filepart" \
+        | $MAKE -f - am--depfiles" >&5
+   (cd "$am_dirpart" \
+      && sed -e '/# am--include-marker/d' "$am_filepart" \
+        | $MAKE -f - am--depfiles) >&5 2>&5
+   ac_status=$?
+   echo "$as_me:$LINENO: \$? = $ac_status" >&5
+   (exit $ac_status); } || am_rc=$?
   done
+  if test $am_rc -ne 0; 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 $? "Something went wrong bootstrapping makefile fragments
+    for automatic dependency tracking.  Try re-running configure with the
+    '--disable-dependency-tracking' option to at least be able to build
+    the package (albeit without support for automatic dependency tracking).
+See \`config.log' for more details" "$LINENO" 5; }
+  fi
+  { am_dirpart=; unset am_dirpart;}
+  { am_filepart=; unset am_filepart;}
+  { am_mf=; unset am_mf;}
+  { am_rc=; unset am_rc;}
+  rm -f conftest-deps.mk
 }
  ;;
     "libtool":C)
@@ -21593,7 +22404,6 @@ $as_echo X"$file" |
     cat <<_LT_EOF >> "$cfgfile"
 #! $SHELL
 # Generated automatically by $as_me ($PACKAGE) $VERSION
-# Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`:
 # NOTE: Changes made to this file will be lost: look at ltmain.sh.
 
 # Provide generalized library-building support services.
@@ -22303,14 +23113,11 @@ _LT_EOF
             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 assignment from automake < 1.5.
-            eval 'ALL_LINGUAS''=$ALL_LINGUAS_'
+            ALL_LINGUAS=`sed -e "/^#/d" -e "s/#.*//" "$ac_given_srcdir/$ac_dir/LINGUAS"`
             POMAKEFILEDEPS="$POMAKEFILEDEPS LINGUAS"
           else
             # The set of available languages was given in configure.in.
-            # Hide the ALL_LINGUAS assignment from automake < 1.5.
-            eval 'ALL_LINGUAS''=$OBSOLETE_ALL_LINGUAS'
+            ALL_LINGUAS=$OBSOLETE_ALL_LINGUAS
           fi
           # Compute POFILES
           # as      $(foreach lang, $(ALL_LINGUAS), $(srcdir)/$(lang).po)
index c4f8a4c..2418e4b 100644 (file)
@@ -15,7 +15,7 @@
 # of malloc(), stat(), or lstat(), since we don't use those functions in
 # a way that would cause the problems the autoconf macros check.
 
-AC_PREREQ([2.64])
+AC_PREREQ([2.69])
 
 AC_INIT([XZ Utils], m4_esyscmd([/bin/sh build-aux/version.sh]),
        [lasse.collin@tukaani.org], [xz], [https://tukaani.org/xz/])
@@ -498,10 +498,10 @@ AM_CONDITIONAL([COND_SYMVERS], [test "x$enable_symbol_versions" = xyes])
 
 AC_MSG_CHECKING([if sandboxing should be used])
 AC_ARG_ENABLE([sandbox], [AS_HELP_STRING([--enable-sandbox=METHOD],
-               [This is an experimental feature.
-               Sandboxing METHOD can be `auto', `no', or `capsicum'.
-               The default is `no'.])],
-       [], [enable_sandbox=no])
+               [Sandboxing METHOD can be `auto', `no', or `capsicum'.
+               The default is `auto' which enables sandboxing if
+               a supported sandboxing method is found.])],
+       [], [enable_sandbox=auto])
 case $enable_sandbox in
        auto)
                AC_MSG_RESULT([maybe (autodetect)])
@@ -516,11 +516,47 @@ case $enable_sandbox in
 esac
 
 
+###########################
+# PATH prefix for scripts #
+###########################
+
+# The scripts can add a prefix to the search PATH so that POSIX tools
+# or the xz binary is always in the PATH.
+AC_ARG_ENABLE([path-for-scripts],
+       [AS_HELP_STRING([--enable-path-for-scripts=PREFIX],
+               [If PREFIX isn't empty, PATH=PREFIX:$PATH will be set in
+               the beginning of the scripts (xzgrep and others).
+               The default is empty except on Solaris the default is
+               /usr/xpg4/bin.])],
+       [], [
+               case $host_os in
+                       solaris*) enable_path_for_scripts=/usr/xpg4/bin ;;
+                       *)        enable_path_for_scripts= ;;
+               esac
+       ])
+if test -n "$enable_path_for_scripts" && test "x$enable_path_for_scripts" != xno ; then
+       enable_path_for_scripts="PATH=$enable_path_for_scripts:\$PATH"
+else
+       enable_path_for_scripts=
+fi
+AC_SUBST([enable_path_for_scripts])
+
+
 ###############################################################################
 # Checks for programs.
 ###############################################################################
 
 echo
+case $host_os in
+       solaris*)
+               # The gnulib POSIX shell macro below may pick a shell that
+               # doesn't work with xzgrep. Workaround by picking a shell
+               # that is known to work.
+               if test -z "$gl_cv_posix_shell" && test -x /usr/xpg4/bin/sh; then
+                       gl_cv_posix_shell=/usr/xpg4/bin/sh
+               fi
+               ;;
+esac
 gl_POSIX_SHELL
 if test -z "$POSIX_SHELL" && test "x$enable_scripts" = xyes ; then
        AC_MSG_ERROR([No POSIX conforming shell (sh) was found.])
@@ -592,7 +628,7 @@ AM_CONDITIONAL([COND_THREADS], [test "x$enable_threads" != xno])
 
 echo
 echo "Initializing Libtool:"
-LT_PREREQ([2.2])
+LT_PREREQ([2.4])
 LT_INIT([win32-dll])
 LT_LANG([Windows Resource])
 
@@ -607,9 +643,13 @@ AM_CONDITIONAL([COND_SHARED], [test "x$enable_shared" != xno])
 # Checks for libraries.
 ###############################################################################
 
+dnl Support for _REQUIRE_VERSION was added in gettext 0.19.6. If both
+dnl _REQUIRE_VERSION and _VERSION are present, the _VERSION is ignored.
+dnl We use both for compatibility with other programs in the Autotools family.
 echo
 echo "Initializing gettext:"
-AM_GNU_GETTEXT_VERSION([0.19])
+AM_GNU_GETTEXT_REQUIRE_VERSION([0.19.6])
+AM_GNU_GETTEXT_VERSION([0.19.6])
 AM_GNU_GETTEXT([external])
 
 
@@ -683,7 +723,7 @@ TUKLIB_PHYSMEM
 TUKLIB_CPUCORES
 TUKLIB_MBSTR
 
-# If requsted, check for system-provided SHA-256. At least the following
+# If requested, check for system-provided SHA-256. At least the following
 # implementations are supported:
 #
 # OS       Headers                     Library  Type           Function
index dae0927..92c899a 100644 (file)
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.15.1 from Makefile.am.
+# Makefile.in generated by automake 1.16.1 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2017 Free Software Foundation, Inc.
+# Copyright (C) 1994-2018 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -96,14 +96,15 @@ subdir = debug
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/m4/ax_check_capsicum.m4 \
        $(top_srcdir)/m4/ax_pthread.m4 $(top_srcdir)/m4/getopt.m4 \
-       $(top_srcdir)/m4/gettext.m4 $(top_srcdir)/m4/iconv.m4 \
-       $(top_srcdir)/m4/intlmacosx.m4 $(top_srcdir)/m4/lib-ld.m4 \
-       $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \
-       $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \
-       $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \
-       $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/m4/nls.m4 \
-       $(top_srcdir)/m4/po.m4 $(top_srcdir)/m4/posix-shell.m4 \
-       $(top_srcdir)/m4/progtest.m4 $(top_srcdir)/m4/tuklib_common.m4 \
+       $(top_srcdir)/m4/gettext.m4 $(top_srcdir)/m4/host-cpu-c-abi.m4 \
+       $(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/intlmacosx.m4 \
+       $(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \
+       $(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/libtool.m4 \
+       $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \
+       $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \
+       $(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/po.m4 \
+       $(top_srcdir)/m4/posix-shell.m4 $(top_srcdir)/m4/progtest.m4 \
+       $(top_srcdir)/m4/tuklib_common.m4 \
        $(top_srcdir)/m4/tuklib_cpucores.m4 \
        $(top_srcdir)/m4/tuklib_integer.m4 \
        $(top_srcdir)/m4/tuklib_mbstr.m4 \
@@ -172,7 +173,11 @@ am__v_at_0 = @
 am__v_at_1 = 
 DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
 depcomp = $(SHELL) $(top_srcdir)/build-aux/depcomp
-am__depfiles_maybe = depfiles
+am__maybe_remake_depfiles = depfiles
+am__depfiles_remade = ./$(DEPDIR)/crc32.Po ./$(DEPDIR)/full_flush.Po \
+       ./$(DEPDIR)/hex2bin.Po ./$(DEPDIR)/known_sizes.Po \
+       ./$(DEPDIR)/memusage.Po ./$(DEPDIR)/repeat.Po \
+       ./$(DEPDIR)/sync_flush.Po
 am__mv = mv -f
 COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
        $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
@@ -286,8 +291,8 @@ MAKEINFO = @MAKEINFO@
 MANIFEST_TOOL = @MANIFEST_TOOL@
 MKDIR_P = @MKDIR_P@
 MSGFMT = @MSGFMT@
-MSGFMT_015 = @MSGFMT_015@
 MSGMERGE = @MSGMERGE@
+MSGMERGE_FOR_MSGFMT_OPTION = @MSGMERGE_FOR_MSGFMT_OPTION@
 NM = @NM@
 NMEDIT = @NMEDIT@
 OBJDUMP = @OBJDUMP@
@@ -343,6 +348,7 @@ datadir = @datadir@
 datarootdir = @datarootdir@
 docdir = @docdir@
 dvidir = @dvidir@
+enable_path_for_scripts = @enable_path_for_scripts@
 exec_prefix = @exec_prefix@
 host = @host@
 host_alias = @host_alias@
@@ -403,8 +409,8 @@ Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
          *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);; \
+           echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles)'; \
+           cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles);; \
        esac;
 
 $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
@@ -459,13 +465,19 @@ mostlyclean-compile:
 distclean-compile:
        -rm -f *.tab.c
 
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/crc32.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/full_flush.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/hex2bin.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/known_sizes.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/memusage.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/repeat.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sync_flush.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/crc32.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/full_flush.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/hex2bin.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/known_sizes.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/memusage.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/repeat.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sync_flush.Po@am__quote@ # am--include-marker
+
+$(am__depfiles_remade):
+       @$(MKDIR_P) $(@D)
+       @echo '# dummy' >$@-t && $(am__mv) $@-t $@
+
+am--depfiles: $(am__depfiles_remade)
 
 .c.o:
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
@@ -546,7 +558,10 @@ cscopelist-am: $(am__tagged_files)
 distclean-tags:
        -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
 
-distdir: $(DISTFILES)
+distdir: $(BUILT_SOURCES)
+       $(MAKE) $(AM_MAKEFLAGS) distdir-am
+
+distdir-am: $(DISTFILES)
        @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
        topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
        list='$(DISTFILES)'; \
@@ -616,7 +631,13 @@ clean-am: clean-generic clean-libtool clean-noinstPROGRAMS \
        mostlyclean-am
 
 distclean: distclean-am
-       -rm -rf ./$(DEPDIR)
+               -rm -f ./$(DEPDIR)/crc32.Po
+       -rm -f ./$(DEPDIR)/full_flush.Po
+       -rm -f ./$(DEPDIR)/hex2bin.Po
+       -rm -f ./$(DEPDIR)/known_sizes.Po
+       -rm -f ./$(DEPDIR)/memusage.Po
+       -rm -f ./$(DEPDIR)/repeat.Po
+       -rm -f ./$(DEPDIR)/sync_flush.Po
        -rm -f Makefile
 distclean-am: clean-am distclean-compile distclean-generic \
        distclean-tags
@@ -662,7 +683,13 @@ install-ps-am:
 installcheck-am:
 
 maintainer-clean: maintainer-clean-am
-       -rm -rf ./$(DEPDIR)
+               -rm -f ./$(DEPDIR)/crc32.Po
+       -rm -f ./$(DEPDIR)/full_flush.Po
+       -rm -f ./$(DEPDIR)/hex2bin.Po
+       -rm -f ./$(DEPDIR)/known_sizes.Po
+       -rm -f ./$(DEPDIR)/memusage.Po
+       -rm -f ./$(DEPDIR)/repeat.Po
+       -rm -f ./$(DEPDIR)/sync_flush.Po
        -rm -f Makefile
 maintainer-clean-am: distclean-am maintainer-clean-generic
 
@@ -683,9 +710,9 @@ uninstall-am:
 
 .MAKE: install-am install-strip
 
-.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \
-       clean-libtool clean-noinstPROGRAMS cscopelist-am ctags \
-       ctags-am distclean distclean-compile distclean-generic \
+.PHONY: CTAGS GTAGS TAGS all all-am am--depfiles check check-am clean \
+       clean-generic clean-libtool clean-noinstPROGRAMS cscopelist-am \
+       ctags ctags-am distclean distclean-compile distclean-generic \
        distclean-libtool 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 \
index 879a68d..36472db 100644 (file)
Binary files a/doc/man/pdf-a4/lzmainfo-a4.pdf and b/doc/man/pdf-a4/lzmainfo-a4.pdf differ
index 88ae8b1..09f2966 100644 (file)
Binary files a/doc/man/pdf-a4/xz-a4.pdf and b/doc/man/pdf-a4/xz-a4.pdf differ
index 6d798ad..21ceb60 100644 (file)
Binary files a/doc/man/pdf-a4/xzdec-a4.pdf and b/doc/man/pdf-a4/xzdec-a4.pdf differ
index f59e551..c08dc2a 100644 (file)
Binary files a/doc/man/pdf-a4/xzdiff-a4.pdf and b/doc/man/pdf-a4/xzdiff-a4.pdf differ
index a321c09..ccae450 100644 (file)
Binary files a/doc/man/pdf-a4/xzgrep-a4.pdf and b/doc/man/pdf-a4/xzgrep-a4.pdf differ
index 8172f9d..833477c 100644 (file)
Binary files a/doc/man/pdf-a4/xzless-a4.pdf and b/doc/man/pdf-a4/xzless-a4.pdf differ
index 5948c04..f112cf4 100644 (file)
Binary files a/doc/man/pdf-a4/xzmore-a4.pdf and b/doc/man/pdf-a4/xzmore-a4.pdf differ
index 49b88c3..13f9bcd 100644 (file)
Binary files a/doc/man/pdf-letter/lzmainfo-letter.pdf and b/doc/man/pdf-letter/lzmainfo-letter.pdf differ
index 05f0ad5..59df02f 100644 (file)
Binary files a/doc/man/pdf-letter/xz-letter.pdf and b/doc/man/pdf-letter/xz-letter.pdf differ
index 3339328..fdb5051 100644 (file)
Binary files a/doc/man/pdf-letter/xzdec-letter.pdf and b/doc/man/pdf-letter/xzdec-letter.pdf differ
index 024b1ca..497616a 100644 (file)
Binary files a/doc/man/pdf-letter/xzdiff-letter.pdf and b/doc/man/pdf-letter/xzdiff-letter.pdf differ
index 0675837..2951394 100644 (file)
Binary files a/doc/man/pdf-letter/xzgrep-letter.pdf and b/doc/man/pdf-letter/xzgrep-letter.pdf differ
index b7feffc..25f7711 100644 (file)
Binary files a/doc/man/pdf-letter/xzless-letter.pdf and b/doc/man/pdf-letter/xzless-letter.pdf differ
index bccce82..dc73774 100644 (file)
Binary files a/doc/man/pdf-letter/xzmore-letter.pdf and b/doc/man/pdf-letter/xzmore-letter.pdf differ
index a47a68a..fa4e51c 100644 (file)
@@ -16,9 +16,9 @@ DESCRIPTION
 
        Usually the most interesting information is the uncompressed  size  and
        the  dictionary  size.  Uncompressed size can be shown only if the file
-       is in the non-streamed .lzma format  variant.   The  amount  of  memory
-       required  to decompress the file is a few dozen kilobytes plus the dic-
-       tionary size.
+       is in the non-streamed .lzma format variant.  The amount of memory  re-
+       quired to decompress the file is a few dozen kilobytes plus the dictio-
+       nary size.
 
        lzmainfo is included in XZ Utils primarily for  backward  compatibility
        with LZMA Utils.
index 2e13b09..921c5b0 100644 (file)
@@ -71,8 +71,8 @@ DESCRIPTION
        source  file  to the target file.  If copying the group fails, the per-
        missions are modified so that the target file doesn't become accessible
        to  users  who  didn't  have  permission to access the source file.  xz
-       doesn't support copying other metadata like  access  control  lists  or
-       extended attributes yet.
+       doesn't support copying other metadata like access control lists or ex-
+       tended attributes yet.
 
        Once  the  target file has been successfully closed, the source file is
        removed unless --keep was specified.  The source file is never  removed
@@ -97,18 +97,18 @@ DESCRIPTION
        large memory usage annoying.  To prevent  uncomfortable  surprises,  xz
        has  a  built-in  memory  usage  limiter, which is disabled by default.
        While some operating systems provide ways to limit the memory usage  of
-       processes,  relying  on  it  wasn't  deemed to be flexible enough (e.g.
-       using ulimit(1) to limit virtual memory tends to cripple mmap(2)).
+       processes,  relying on it wasn't deemed to be flexible enough (e.g. us-
+       ing ulimit(1) to limit virtual memory tends to cripple mmap(2)).
 
        The memory usage limiter can be enabled with the  command  line  option
        --memlimit=limit.  Often it is more convenient to enable the limiter by
-       default  by  setting  the  environment   variable   XZ_DEFAULTS,   e.g.
-       XZ_DEFAULTS=--memlimit=150MiB.   It is possible to set the limits sepa-
-       rately for  compression  and  decompression  by  using  --memlimit-com-
-       press=limit  and  --memlimit-decompress=limit.  Using these two options
-       outside XZ_DEFAULTS is rarely useful because a single run of xz  cannot
-       do  both  compression  and  decompression  and  --memlimit=limit (or -M
-       limit) is shorter to type on the command line.
+       default by setting the environment variable  XZ_DEFAULTS,  e.g.  XZ_DE-
+       FAULTS=--memlimit=150MiB.   It is possible to set the limits separately
+       for compression and decompression  by  using  --memlimit-compress=limit
+       and  --memlimit-decompress=limit.   Using  these  two  options  outside
+       XZ_DEFAULTS is rarely useful because a single run of xz cannot do  both
+       compression  and  decompression  and  --memlimit=limit (or -M limit) is
+       shorter to type on the command line.
 
        If the specified memory usage limit is exceeded when decompressing,  xz
        will  display  an  error  and decompressing the file will fail.  If the
@@ -124,11 +124,11 @@ DESCRIPTION
        It is possible to concatenate .xz files as is.  xz will decompress such
        files as if they were a single .xz file.
 
-       It  is  possible  to  insert  padding between the concatenated parts or
-       after the last part.  The padding must consist of null  bytes  and  the
-       size of the padding must be a multiple of four bytes.  This can be use-
-       ful e.g. if the .xz file is stored on a medium that measures file sizes
-       in 512-byte blocks.
+       It  is possible to insert padding between the concatenated parts or af-
+       ter the last part.  The padding must consist of null bytes and the size
+       of  the  padding  must be a multiple of four bytes.  This can be useful
+       e.g. if the .xz file is stored on a medium that measures file sizes  in
+       512-byte blocks.
 
        Concatenation  and  padding  are  not  allowed  with .lzma files or raw
        streams.
@@ -152,8 +152,8 @@ OPTIONS
        supported by the option.
 
    Operation mode
-       If multiple operation mode  options  are  given,  the  last  one  takes
-       effect.
+       If multiple operation mode options are given, the last  one  takes  ef-
+       fect.
 
        -z, --compress
               Compress.   This is the default operation mode when no operation
@@ -183,8 +183,8 @@ OPTIONS
               output exceeds 80 characters,  so  piping  the  output  to  e.g.
               less -S may be convenient if the terminal isn't wide enough.
 
-              The  exact  output  may  vary  between xz versions and different
-              locales.  For machine-readable output, --robot --list should  be
+              The  exact output may vary between xz versions and different lo-
+              cales.  For machine-readable output, --robot  --list  should  be
               used.
 
    Operation modifiers
@@ -213,8 +213,8 @@ OPTIONS
                  mat.
 
        -c, --stdout, --to-stdout
-              Write  the  compressed  or  decompressed data to standard output
-              instead of a file.  This implies --keep.
+              Write the compressed or decompressed data to standard output in-
+              stead of a file.  This implies --keep.
 
        --single-stream
               Decompress only the first .xz stream, and silently ignore possi-
@@ -230,8 +230,8 @@ OPTIONS
 
        --no-sparse
               Disable  creation of sparse files.  By default, if decompressing
-              into a regular file, xz tries to make the  file  sparse  if  the
-              decompressed  data  contains long sequences of binary zeros.  It
+              into a regular file, xz tries to make the file sparse if the de-
+              compressed  data  contains  long  sequences of binary zeros.  It
               also works when writing to standard output as long  as  standard
               output  is  connected  to  a regular file and certain additional
               conditions are met to make it safe.  Creating sparse  files  may
@@ -239,13 +239,13 @@ OPTIONS
               amount of disk I/O.
 
        -S .suf, --suffix=.suf
-              When compressing, use .suf as the suffix  for  the  target  file
-              instead  of .xz or .lzma.  If not writing to standard output and
+              When compressing, use .suf as the suffix for the target file in-
+              stead  of  .xz  or .lzma.  If not writing to standard output and
               the source file already has the suffix .suf, a warning  is  dis-
               played and the file is skipped.
 
-              When  decompressing,  recognize  files  with  the suffix .suf in
-              addition to files with the .xz, .txz, .lzma, or .tlz suffix.  If
+              When  decompressing, recognize files with the suffix .suf in ad-
+              dition to files with the .xz, .txz, .lzma, or .tlz  suffix.   If
               the  source  file  has the suffix .suf, the suffix is removed to
               get the target filename.
 
@@ -258,8 +258,8 @@ OPTIONS
               filenames  are read from standard input.  Filenames must be ter-
               minated with the newline character.  A dash (-) is  taken  as  a
               regular  filename; it doesn't mean standard input.  If filenames
-              are given also as command line  arguments,  they  are  processed
-              before the filenames read from file.
+              are given also as command line arguments, they are processed be-
+              fore the filenames read from file.
 
        --files0[=file]
               This  is  identical  to --files[=file] except that each filename
@@ -318,9 +318,9 @@ OPTIONS
               is not possible to change or disable it.
 
        --ignore-check
-              Don't verify the integrity check of  the  compressed  data  when
-              decompressing.   The  CRC32 values in the .xz headers will still
-              be verified normally.
+              Don't verify the integrity check of the compressed data when de-
+              compressing.   The CRC32 values in the .xz headers will still be
+              verified normally.
 
               Do not use this option unless you know what you are doing.  Pos-
               sible reasons to use this option:
@@ -340,11 +340,11 @@ OPTIONS
 
               The  differences  between  the presets are more significant than
               with gzip(1) and bzip2(1).  The  selected  compression  settings
-              determine  the  memory  requirements  of  the decompressor, thus
-              using a too high preset level might make it  painful  to  decom-
-              press  the file on an old system with little RAM.  Specifically,
-              it's not a good idea to blindly use -9 for  everything  like  it
-              often is with gzip(1) and bzip2(1).
+              determine  the memory requirements of the decompressor, thus us-
+              ing a too high preset level might make it painful to  decompress
+              the  file  on an old system with little RAM.  Specifically, it's
+              not a good idea to blindly use -9 for everything like  it  often
+              is with gzip(1) and bzip2(1).
 
               -0 ... -3
                      These  are somewhat fast presets.  -0 is sometimes faster
@@ -410,17 +410,17 @@ OPTIONS
 
               o  DecMem contains the decompressor memory  requirements.   That
                  is,  the  compression  settings determine the memory require-
-                 ments of the decompressor.   The  exact  decompressor  memory
-                 usage  is  slightly  more than the LZMA2 dictionary size, but
-                 the values in the table have been rounded up to the next full
+                 ments of the decompressor.  The exact decompressor memory us-
+                 age  is slightly more than the LZMA2 dictionary size, but the
+                 values in the table have been rounded up  to  the  next  full
                  MiB.
 
        -e, --extreme
               Use  a  slower  variant of the selected compression preset level
-              (-0 ... -9) to hopefully get a  little  bit  better  compression
-              ratio,  but  with  bad luck this can also make it worse.  Decom-
-              pressor memory usage is  not  affected,  but  compressor  memory
-              usage increases a little at preset levels -0 ... -3.
+              (-0 ... -9) to hopefully get a little bit better compression ra-
+              tio,  but with bad luck this can also make it worse.  Decompres-
+              sor memory usage is not affected, but  compressor  memory  usage
+              increases a little at preset levels -0 ... -3.
 
               Since  there  are  two  presets  with dictionary sizes 4 MiB and
               8 MiB, the presets -3e and  -5e  use  slightly  faster  settings
@@ -456,9 +456,9 @@ OPTIONS
               cally used to override the default block size in  multi-threaded
               mode, but this option can be used in single-threaded mode too.
 
-              In  multi-threaded  mode  about  three  times size bytes will be
-              allocated in each thread for buffering input  and  output.   The
-              default  size is three times the LZMA2 dictionary size or 1 MiB,
+              In  multi-threaded mode about three times size bytes will be al-
+              located in each thread for buffering input and output.  The  de-
+              fault  size  is  three times the LZMA2 dictionary size or 1 MiB,
               whichever is more.  Typically a good value is 2-4 times the size
               of the LZMA2 dictionary or at least 1 MiB.  Using size less than
               the LZMA2 dictionary size is waste of RAM because then the LZMA2
@@ -487,11 +487,11 @@ OPTIONS
               value of 0 may be used as the last value to  indicate  that  the
               rest of the file should be encoded as a single block.
 
-              If  one  specifies  sizes  that  exceed the encoder's block size
-              (either the default value in threaded mode or the  value  speci-
-              fied with --block-size=size), the encoder will create additional
-              blocks while keeping the boundaries  specified  in  sizes.   For
-              example,      if      one      specifies      --block-size=10MiB
+              If one specifies sizes that exceed the encoder's block size (ei-
+              ther the default value in threaded mode or the  value  specified
+              with  --block-size=size),  the  encoder  will  create additional
+              blocks while keeping the boundaries specified in sizes.  For ex-
+              ample,       if       one      specifies      --block-size=10MiB
               --block-list=5MiB,10MiB,8MiB,12MiB,24MiB and the input  file  is
               80  MiB, one will get 11 blocks: 5, 10, 8, 10, 2, 10, 10, 4, 10,
               10, and 1 MiB.
@@ -528,9 +528,9 @@ OPTIONS
 
               If the compression settings exceed the limit, xz will adjust the
               settings  downwards  so that the limit is no longer exceeded and
-              display a notice  that  automatic  adjustment  was  done.   Such
-              adjustments  are  not made when compressing with --format=raw or
-              if --no-adjust has been specified.  In those cases, an error  is
+              display a notice that automatic adjustment was done.   Such  ad-
+              justments  are not made when compressing with --format=raw or if
+              --no-adjust has been specified.  In those  cases,  an  error  is
               displayed and xz will exit with exit status 1.
 
               The limit can be specified in multiple ways:
@@ -553,148 +553,155 @@ OPTIONS
                  max for the multithreaded case, so it is recommended to use 0
                  instead of max until the details have been decided.
 
+              For  32-bit  xz  there  is a special case: if the limit would be
+              over 4020 MiB, the limit is set to 4020 MiB.  (The values 0  and
+              max  aren't  affected  by this.  A similar feature doesn't exist
+              for decompression.)  This can be  helpful  when  a  32-bit  exe-
+              cutable  has access to 4 GiB address space while hopefully doing
+              no harm in other situations.
+
               See also the section Memory usage.
 
        --memlimit-decompress=limit
-              Set  a  memory usage limit for decompression.  This also affects
-              the --list mode.  If  the  operation  is  not  possible  without
-              exceeding  the limit, xz will display an error and decompressing
-              the file will fail.  See --memlimit-compress=limit for  possible
+              Set a memory usage limit for decompression.  This  also  affects
+              the  --list  mode.  If the operation is not possible without ex-
+              ceeding the limit, xz will display an  error  and  decompressing
+              the  file will fail.  See --memlimit-compress=limit for possible
               ways to specify the limit.
 
        -M limit, --memlimit=limit, --memory=limit
-              This   is  equivalent  to  specifying  --memlimit-compress=limit
+              This  is  equivalent  to  specifying   --memlimit-compress=limit
               --memlimit-decompress=limit.
 
        --no-adjust
               Display an error and exit if the compression settings exceed the
               memory usage limit.  The default is to adjust the settings down-
               wards so that the memory usage limit is not exceeded.  Automatic
-              adjusting  is  always disabled when creating raw streams (--for-
+              adjusting is always disabled when creating raw  streams  (--for-
               mat=raw).
 
        -T threads, --threads=threads
               Specify the number of worker threads to use.  Setting threads to
-              a  special value 0 makes xz use as many threads as there are CPU
-              cores on the system.  The actual number of threads can  be  less
-              than  threads  if the input file is not big enough for threading
-              with the given settings or if using more  threads  would  exceed
+              a special value 0 makes xz use as many threads as there are  CPU
+              cores  on  the system.  The actual number of threads can be less
+              than threads if the input file is not big enough  for  threading
+              with  the  given  settings or if using more threads would exceed
               the memory usage limit.
 
-              Currently  the  only threading method is to split the input into
-              blocks and compress them independently  from  each  other.   The
-              default  block  size depends on the compression level and can be
-              overriden with the --block-size=size option.
+              Currently the only threading method is to split the  input  into
+              blocks and compress them independently from each other.  The de-
+              fault block size depends on the compression  level  and  can  be
+              overridden with the --block-size=size option.
 
-              Threaded decompression hasn't been  implemented  yet.   It  will
+              Threaded  decompression  hasn't  been  implemented yet.  It will
               only work on files that contain multiple blocks with size infor-
               mation in block headers.  All files compressed in multi-threaded
-              mode  meet  this  condition,  but  files  compressed  in single-
+              mode meet  this  condition,  but  files  compressed  in  single-
               threaded mode don't even if --block-size=size is used.
 
    Custom compressor filter chains
-       A custom filter chain allows specifying  the  compression  settings  in
-       detail  instead  of  relying on the settings associated to the presets.
-       When a custom filter chain is specified, preset options (-0 ... -9  and
-       --extreme)  earlier  on  the  command  line are forgotten.  If a preset
-       option is specified after one or more custom filter chain options,  the
-       new  preset  takes effect and the custom filter chain options specified
+       A custom filter chain allows specifying the compression settings in de-
+       tail instead of relying on the  settings  associated  to  the  presets.
+       When  a custom filter chain is specified, preset options (-0 ... -9 and
+       --extreme) earlier on the command line are forgotten.  If a preset  op-
+       tion  is  specified  after one or more custom filter chain options, the
+       new preset takes effect and the custom filter chain  options  specified
        earlier are forgotten.
 
-       A filter chain is comparable to piping on the command line.  When  com-
+       A  filter chain is comparable to piping on the command line.  When com-
        pressing, the uncompressed input goes to the first filter, whose output
-       goes to the next filter (if any).  The output of the last  filter  gets
-       written  to  the compressed file.  The maximum number of filters in the
-       chain is four, but typically a filter chain has only one  or  two  fil-
+       goes  to  the next filter (if any).  The output of the last filter gets
+       written to the compressed file.  The maximum number of filters  in  the
+       chain  is  four,  but typically a filter chain has only one or two fil-
        ters.
 
        Many filters have limitations on where they can be in the filter chain:
-       some filters can work only as the last filter in the chain,  some  only
-       as  a  non-last  filter,  and  some  work in any position in the chain.
-       Depending on the filter, this limitation is either inherent to the fil-
-       ter design or exists to prevent security issues.
-
-       A  custom filter chain is specified by using one or more filter options
-       in the order they are wanted in the filter chain.  That is,  the  order
-       of  filter  options  is significant!  When decoding raw streams (--for-
-       mat=raw), the filter chain is specified in the same  order  as  it  was
+       some  filters  can work only as the last filter in the chain, some only
+       as a non-last filter, and some work in any position in the chain.   De-
+       pending on the filter, this limitation is either inherent to the filter
+       design or exists to prevent security issues.
+
+       A custom filter chain is specified by using one or more filter  options
+       in  the  order they are wanted in the filter chain.  That is, the order
+       of filter options is significant!  When decoding  raw  streams  (--for-
+       mat=raw),  the  filter  chain  is specified in the same order as it was
        specified when compressing.
 
-       Filters  take filter-specific options as a comma-separated list.  Extra
-       commas in options are ignored.  Every option has a  default  value,  so
+       Filters take filter-specific options as a comma-separated list.   Extra
+       commas  in  options  are ignored.  Every option has a default value, so
        you need to specify only those you want to change.
 
-       To  see  the  whole  filter chain and options, use xz -vv (that is, use
+       To see the whole filter chain and options, use xz  -vv  (that  is,  use
        --verbose twice).  This works also for viewing the filter chain options
        used by presets.
 
        --lzma1[=options]
        --lzma2[=options]
-              Add  LZMA1  or  LZMA2 filter to the filter chain.  These filters
+              Add LZMA1 or LZMA2 filter to the filter  chain.   These  filters
               can be used only as the last filter in the chain.
 
-              LZMA1 is a legacy filter, which is supported almost  solely  due
-              to  the  legacy  .lzma  file  format, which supports only LZMA1.
-              LZMA2 is an updated version  of  LZMA1  to  fix  some  practical
-              issues  of LZMA1.  The .xz format uses LZMA2 and doesn't support
-              LZMA1 at all.  Compression speed and ratios of LZMA1  and  LZMA2
+              LZMA1  is  a legacy filter, which is supported almost solely due
+              to the legacy .lzma file  format,  which  supports  only  LZMA1.
+              LZMA2  is  an updated version of LZMA1 to fix some practical is-
+              sues of LZMA1.  The .xz format uses LZMA2  and  doesn't  support
+              LZMA1  at  all.  Compression speed and ratios of LZMA1 and LZMA2
               are practically the same.
 
               LZMA1 and LZMA2 share the same set of options:
 
               preset=preset
-                     Reset  all LZMA1 or LZMA2 options to preset.  Preset con-
-                     sist of an integer, which may be followed by  single-let-
-                     ter  preset  modifiers.   The integer can be from 0 to 9,
-                     matching the command line options -0 ...  -9.   The  only
-                     supported   modifier   is   currently  e,  which  matches
-                     --extreme.  If no preset is specified, the default values
-                     of LZMA1 or LZMA2 options are taken from the preset 6.
+                     Reset all LZMA1 or LZMA2 options to preset.  Preset  con-
+                     sist  of an integer, which may be followed by single-let-
+                     ter preset modifiers.  The integer can be from  0  to  9,
+                     matching  the  command  line options -0 ... -9.  The only
+                     supported modifier is currently e,  which  matches  --ex-
+                     treme.   If no preset is specified, the default values of
+                     LZMA1 or LZMA2 options are taken from the preset 6.
 
               dict=size
                      Dictionary (history buffer) size indicates how many bytes
-                     of the recently processed uncompressed data  is  kept  in
-                     memory.   The  algorithm  tries  to  find  repeating byte
-                     sequences (matches) in the uncompressed data, and replace
+                     of  the  recently  processed uncompressed data is kept in
+                     memory.  The algorithm tries to find repeating  byte  se-
+                     quences  (matches)  in the uncompressed data, and replace
                      them with references to the data currently in the dictio-
-                     nary.  The bigger  the  dictionary,  the  higher  is  the
+                     nary.   The  bigger  the  dictionary,  the  higher is the
                      chance to find a match.  Thus, increasing dictionary size
                      usually improves compression ratio, but a dictionary big-
                      ger than the uncompressed file is waste of memory.
 
-                     Typical  dictionary  size  is from 64 KiB to 64 MiB.  The
-                     minimum is 4 KiB.  The maximum for  compression  is  cur-
+                     Typical dictionary size is from 64 KiB  to  64 MiB.   The
+                     minimum  is  4 KiB.   The maximum for compression is cur-
                      rently 1.5 GiB (1536 MiB).  The decompressor already sup-
-                     ports dictionaries up to one byte less than 4 GiB,  which
+                     ports  dictionaries up to one byte less than 4 GiB, which
                      is the maximum for the LZMA1 and LZMA2 stream formats.
 
-                     Dictionary  size and match finder (mf) together determine
+                     Dictionary size and match finder (mf) together  determine
                      the memory usage of the LZMA1 or LZMA2 encoder.  The same
                      (or bigger) dictionary size is required for decompressing
-                     that was used when compressing, thus the memory usage  of
-                     the  decoder  is  determined  by the dictionary size used
-                     when compressing.  The .xz headers store  the  dictionary
-                     size  either  as 2^n or 2^n + 2^(n-1), so these sizes are
+                     that  was used when compressing, thus the memory usage of
+                     the decoder is determined by  the  dictionary  size  used
+                     when  compressing.   The .xz headers store the dictionary
+                     size either as 2^n or 2^n + 2^(n-1), so these  sizes  are
                      somewhat preferred for compression.  Other sizes will get
                      rounded up when stored in the .xz headers.
 
-              lc=lc  Specify  the number of literal context bits.  The minimum
-                     is 0 and the maximum is 4; the default is  3.   In  addi-
+              lc=lc  Specify the number of literal context bits.  The  minimum
+                     is  0  and  the maximum is 4; the default is 3.  In addi-
                      tion, the sum of lc and lp must not exceed 4.
 
-                     All  bytes  that cannot be encoded as matches are encoded
-                     as literals.  That is, literals are  simply  8-bit  bytes
+                     All bytes that cannot be encoded as matches  are  encoded
+                     as  literals.   That  is, literals are simply 8-bit bytes
                      that are encoded one at a time.
 
-                     The  literal  coding makes an assumption that the highest
-                     lc bits of the previous uncompressed byte correlate  with
-                     the  next  byte.  E.g. in typical English text, an upper-
+                     The literal coding makes an assumption that  the  highest
+                     lc  bits of the previous uncompressed byte correlate with
+                     the next byte.  E.g. in typical English text,  an  upper-
                      case letter is often followed by a lower-case letter, and
                      a lower-case letter is usually followed by another lower-
-                     case letter.  In the US-ASCII character set, the  highest
-                     three  bits  are  010  for upper-case letters and 011 for
-                     lower-case letters.  When lc is at least 3,  the  literal
-                     coding  can take advantage of this property in the uncom-
+                     case  letter.  In the US-ASCII character set, the highest
+                     three bits are 010 for upper-case  letters  and  011  for
+                     lower-case  letters.   When lc is at least 3, the literal
+                     coding can take advantage of this property in the  uncom-
                      pressed data.
 
                      The default value (3) is usually good.  If you want maxi-
@@ -705,40 +712,40 @@ OPTIONS
               lp=lp  Specify the number of literal position bits.  The minimum
                      is 0 and the maximum is 4; the default is 0.
 
-                     Lp affects what kind of  alignment  in  the  uncompressed
+                     Lp  affects  what  kind  of alignment in the uncompressed
                      data is assumed when encoding literals.  See pb below for
                      more information about alignment.
 
-              pb=pb  Specify the number of position bits.  The  minimum  is  0
+              pb=pb  Specify  the  number  of position bits.  The minimum is 0
                      and the maximum is 4; the default is 2.
 
-                     Pb  affects  what  kind  of alignment in the uncompressed
-                     data is assumed in general.  The default means  four-byte
+                     Pb affects what kind of  alignment  in  the  uncompressed
+                     data  is assumed in general.  The default means four-byte
                      alignment (2^pb=2^2=4), which is often a good choice when
                      there's no better guess.
 
-                     When the aligment is known, setting  pb  accordingly  may
+                     When  the  aligment  is known, setting pb accordingly may
                      reduce the file size a little.  E.g. with text files hav-
-                     ing one-byte  alignment  (US-ASCII,  ISO-8859-*,  UTF-8),
+                     ing  one-byte  alignment  (US-ASCII,  ISO-8859-*, UTF-8),
                      setting  pb=0  can  improve  compression  slightly.   For
-                     UTF-16 text, pb=1 is a good choice.  If the alignment  is
-                     an  odd  number  like  3  bytes,  pb=0  might be the best
+                     UTF-16  text, pb=1 is a good choice.  If the alignment is
+                     an odd number like  3  bytes,  pb=0  might  be  the  best
                      choice.
 
                      Even though the assumed alignment can be adjusted with pb
-                     and  lp,  LZMA1  and  LZMA2  still slightly favor 16-byte
-                     alignment.  It might be worth taking  into  account  when
-                     designing  file  formats that are likely to be often com-
+                     and lp, LZMA1 and  LZMA2  still  slightly  favor  16-byte
+                     alignment.   It  might  be worth taking into account when
+                     designing file formats that are likely to be  often  com-
                      pressed with LZMA1 or LZMA2.
 
-              mf=mf  Match finder has a major effect on encoder speed,  memory
-                     usage,  and  compression ratio.  Usually Hash Chain match
-                     finders are faster than Binary Tree match  finders.   The
-                     default  depends  on the preset: 0 uses hc3, 1-3 use hc4,
+              mf=mf  Match  finder has a major effect on encoder speed, memory
+                     usage, and compression ratio.  Usually Hash  Chain  match
+                     finders  are  faster than Binary Tree match finders.  The
+                     default depends on the preset: 0 uses hc3, 1-3  use  hc4,
                      and the rest use bt4.
 
-                     The following match finders are  supported.   The  memory
-                     usage  formulas below are rough approximations, which are
+                     The  following  match  finders are supported.  The memory
+                     usage formulas below are rough approximations, which  are
                      closest to the reality when dict is a power of two.
 
                      hc3    Hash Chain with 2- and 3-byte hashing
@@ -771,36 +778,36 @@ OPTIONS
 
               mode=mode
                      Compression mode specifies the method to analyze the data
-                     produced  by  the match finder.  Supported modes are fast
+                     produced by the match finder.  Supported modes  are  fast
                      and normal.  The default is fast for presets 0-3 and nor-
                      mal for presets 4-9.
 
-                     Usually  fast  is  used with Hash Chain match finders and
+                     Usually fast is used with Hash Chain  match  finders  and
                      normal with Binary Tree match finders.  This is also what
                      the presets do.
 
               nice=nice
-                     Specify  what  is  considered  to  be a nice length for a
+                     Specify what is considered to be  a  nice  length  for  a
                      match.  Once a match of at least nice bytes is found, the
                      algorithm stops looking for possibly better matches.
 
                      Nice can be 2-273 bytes.  Higher values tend to give bet-
-                     ter compression ratio  at  the  expense  of  speed.   The
-                     default depends on the preset.
+                     ter  compression  ratio at the expense of speed.  The de-
+                     fault depends on the preset.
 
               depth=depth
-                     Specify  the  maximum  search  depth in the match finder.
-                     The default is the special value of 0,  which  makes  the
+                     Specify the maximum search depth  in  the  match  finder.
+                     The  default  is  the special value of 0, which makes the
                      compressor determine a reasonable depth from mf and nice.
 
                      Reasonable depth for Hash Chains is 4-100 and 16-1000 for
-                     Binary Trees.  Using very high values for depth can  make
-                     the  encoder  extremely slow with some files.  Avoid set-
-                     ting the depth over  1000  unless  you  are  prepared  to
-                     interrupt  the  compression  in case it is taking far too
+                     Binary  Trees.  Using very high values for depth can make
+                     the encoder extremely slow with some files.   Avoid  set-
+                     ting  the  depth over 1000 unless you are prepared to in-
+                     terrupt the compression in case  it  is  taking  far  too
                      long.
 
-              When decoding raw streams (--format=raw), LZMA2 needs  only  the
+              When  decoding  raw streams (--format=raw), LZMA2 needs only the
               dictionary size.  LZMA1 needs also lc, lp, and pb.
 
        --x86[=options]
@@ -809,53 +816,53 @@ OPTIONS
        --arm[=options]
        --armthumb[=options]
        --sparc[=options]
-              Add  a branch/call/jump (BCJ) filter to the filter chain.  These
-              filters can be used only as a  non-last  filter  in  the  filter
+              Add a branch/call/jump (BCJ) filter to the filter chain.   These
+              filters  can  be  used  only  as a non-last filter in the filter
               chain.
 
-              A  BCJ filter converts relative addresses in the machine code to
-              their absolute counterparts.  This doesn't change  the  size  of
-              the  data,  but it increases redundancy, which can help LZMA2 to
-              produce 0-15 % smaller .xz file.  The  BCJ  filters  are  always
-              reversible, so using a BCJ filter for wrong type of data doesn't
-              cause any data loss, although it may make the compression  ratio
+              A BCJ filter converts relative addresses in the machine code  to
+              their  absolute  counterparts.   This doesn't change the size of
+              the data, but it increases redundancy, which can help  LZMA2  to
+              produce 0-15 % smaller .xz file.  The BCJ filters are always re-
+              versible, so using a BCJ filter for wrong type of  data  doesn't
+              cause  any data loss, although it may make the compression ratio
               slightly worse.
 
-              It  is fine to apply a BCJ filter on a whole executable; there's
-              no need to apply it only on the executable section.  Applying  a
-              BCJ  filter on an archive that contains both executable and non-
-              executable files may or may not give good results, so it  gener-
-              ally  isn't  good to blindly apply a BCJ filter when compressing
+              It is fine to apply a BCJ filter on a whole executable;  there's
+              no  need to apply it only on the executable section.  Applying a
+              BCJ filter on an archive that contains both executable and  non-
+              executable  files may or may not give good results, so it gener-
+              ally isn't good to blindly apply a BCJ filter  when  compressing
               binary packages for distribution.
 
-              These BCJ filters are very fast and use insignificant amount  of
-              memory.   If  a BCJ filter improves compression ratio of a file,
-              it can improve decompression speed at the same  time.   This  is
-              because,  on the same hardware, the decompression speed of LZMA2
-              is roughly a fixed number of bytes of compressed data  per  sec-
+              These  BCJ filters are very fast and use insignificant amount of
+              memory.  If a BCJ filter improves compression ratio of  a  file,
+              it  can  improve  decompression speed at the same time.  This is
+              because, on the same hardware, the decompression speed of  LZMA2
+              is  roughly  a fixed number of bytes of compressed data per sec-
               ond.
 
               These BCJ filters have known problems related to the compression
               ratio:
 
-              o  Some types of files containing executable code  (e.g.  object
-                 files,  static  libraries, and Linux kernel modules) have the
-                 addresses in the  instructions  filled  with  filler  values.
+              o  Some  types  of files containing executable code (e.g. object
+                 files, static libraries, and Linux kernel modules)  have  the
+                 addresses  in  the  instructions  filled  with filler values.
                  These BCJ filters will still do the address conversion, which
                  will make the compression worse with these files.
 
               o  Applying a BCJ filter on an archive containing multiple simi-
                  lar executables can make the compression ratio worse than not
-                 using a BCJ filter.  This is because the BCJ  filter  doesn't
-                 detect  the  boundaries  of the executable files, and doesn't
+                 using  a  BCJ filter.  This is because the BCJ filter doesn't
+                 detect the boundaries of the executable  files,  and  doesn't
                  reset the address conversion counter for each executable.
 
-              Both of the above problems will be fixed in the future in a  new
-              filter.   The  old  BCJ filters will still be useful in embedded
-              systems, because the decoder of the new filter  will  be  bigger
+              Both  of the above problems will be fixed in the future in a new
+              filter.  The old BCJ filters will still be  useful  in  embedded
+              systems,  because  the  decoder of the new filter will be bigger
               and use more memory.
 
-              Different instruction sets have have different alignment:
+              Different instruction sets have different alignment:
 
                      Filter      Alignment   Notes
                      x86             1       32-bit or 64-bit x86
@@ -865,39 +872,39 @@ OPTIONS
                      IA-64          16       Big or little endian
                      SPARC           4       Big or little endian
 
-              Since  the  BCJ-filtered  data is usually compressed with LZMA2,
-              the compression ratio may be  improved  slightly  if  the  LZMA2
-              options  are set to match the alignment of the selected BCJ fil-
-              ter.  For example, with the IA-64 filter, it's good to set  pb=4
-              with  LZMA2 (2^4=16).  The x86 filter is an exception; it's usu-
-              ally good to stick to LZMA2's default four-byte  alignment  when
-              compressing x86 executables.
+              Since the BCJ-filtered data is usually  compressed  with  LZMA2,
+              the  compression ratio may be improved slightly if the LZMA2 op-
+              tions are set to match the alignment of the selected BCJ filter.
+              For  example,  with the IA-64 filter, it's good to set pb=4 with
+              LZMA2 (2^4=16).  The x86 filter is an  exception;  it's  usually
+              good  to  stick to LZMA2's default four-byte alignment when com-
+              pressing x86 executables.
 
               All BCJ filters support the same options:
 
               start=offset
-                     Specify  the  start  offset  that is used when converting
-                     between relative and absolute addresses.  The offset must
+                     Specify the start offset that is used when converting be-
+                     tween  relative  and absolute addresses.  The offset must
                      be a multiple of the alignment of the filter (see the ta-
-                     ble above).  The  default  is  zero.   In  practice,  the
-                     default  is  good;  specifying  a custom offset is almost
-                     never useful.
+                     ble  above).   The default is zero.  In practice, the de-
+                     fault is good; specifying a custom offset is almost never
+                     useful.
 
        --delta[=options]
-              Add the Delta filter to the filter chain.  The Delta filter  can
+              Add  the Delta filter to the filter chain.  The Delta filter can
               be only used as a non-last filter in the filter chain.
 
-              Currently  only simple byte-wise delta calculation is supported.
-              It can be  useful  when  compressing  e.g.  uncompressed  bitmap
-              images  or  uncompressed  PCM  audio.   However, special purpose
-              algorithms may give significantly better results  than  Delta  +
-              LZMA2.   This  is  true  especially with audio, which compresses
-              faster and better e.g. with flac(1).
+              Currently only simple byte-wise delta calculation is  supported.
+              It  can  be useful when compressing e.g. uncompressed bitmap im-
+              ages or uncompressed PCM audio.  However, special purpose  algo-
+              rithms may give significantly better results than Delta + LZMA2.
+              This is true especially with audio, which compresses faster  and
+              better e.g. with flac(1).
 
               Supported options:
 
               dist=distance
-                     Specify the distance of the delta calculation  in  bytes.
+                     Specify  the  distance of the delta calculation in bytes.
                      distance must be 1-256.  The default is 1.
 
                      For example, with dist=2 and eight-byte input A1 B1 A2 B3
@@ -905,88 +912,88 @@ OPTIONS
 
    Other options
        -q, --quiet
-              Suppress warnings and notices.  Specify this twice  to  suppress
+              Suppress  warnings  and notices.  Specify this twice to suppress
               errors too.  This option has no effect on the exit status.  That
-              is, even if a warning was suppressed, the exit status  to  indi-
+              is,  even  if a warning was suppressed, the exit status to indi-
               cate a warning is still used.
 
        -v, --verbose
-              Be  verbose.   If  standard error is connected to a terminal, xz
-              will display a progress indicator.  Specifying  --verbose  twice
+              Be verbose.  If standard error is connected to  a  terminal,  xz
+              will  display  a progress indicator.  Specifying --verbose twice
               will give even more verbose output.
 
               The progress indicator shows the following information:
 
-              o  Completion  percentage is shown if the size of the input file
+              o  Completion percentage is shown if the size of the input  file
                  is known.  That is, the percentage cannot be shown in pipes.
 
-              o  Amount of compressed data produced (compressing) or  consumed
+              o  Amount  of compressed data produced (compressing) or consumed
                  (decompressing).
 
-              o  Amount  of  uncompressed  data consumed (compressing) or pro-
+              o  Amount of uncompressed data consumed  (compressing)  or  pro-
                  duced (decompressing).
 
               o  Compression ratio, which is calculated by dividing the amount
-                 of  compressed  data processed so far by the amount of uncom-
+                 of compressed data processed so far by the amount  of  uncom-
                  pressed data processed so far.
 
-              o  Compression or decompression speed.  This is measured as  the
-                 amount  of  uncompressed  data consumed (compression) or pro-
-                 duced (decompression) per second.  It is shown  after  a  few
+              o  Compression  or decompression speed.  This is measured as the
+                 amount of uncompressed data consumed  (compression)  or  pro-
+                 duced  (decompression)  per  second.  It is shown after a few
                  seconds have passed since xz started processing the file.
 
               o  Elapsed time in the format M:SS or H:MM:SS.
 
-              o  Estimated  remaining  time is shown only when the size of the
-                 input file is known and a  couple  of  seconds  have  already
-                 passed  since  xz  started  processing the file.  The time is
-                 shown in a less precise format which never  has  any  colons,
+              o  Estimated remaining time is shown only when the size  of  the
+                 input  file  is  known  and  a couple of seconds have already
+                 passed since xz started processing the  file.   The  time  is
+                 shown  in  a  less precise format which never has any colons,
                  e.g. 2 min 30 s.
 
-              When  standard  error  is not a terminal, --verbose will make xz
+              When standard error is not a terminal, --verbose  will  make  xz
               print the filename, compressed size, uncompressed size, compres-
-              sion  ratio,  and  possibly also the speed and elapsed time on a
+              sion ratio, and possibly also the speed and elapsed  time  on  a
               single line to standard error after compressing or decompressing
               the file.  The speed and elapsed time are included only when the
-              operation took at least a few seconds.  If the operation  didn't
-              finish,  e.g. due to user interruption, also the completion per-
+              operation  took at least a few seconds.  If the operation didn't
+              finish, e.g. due to user interruption, also the completion  per-
               centage is printed if the size of the input file is known.
 
        -Q, --no-warn
               Don't set the exit status to 2 even if a condition worth a warn-
-              ing  was  detected.   This  option  doesn't affect the verbosity
-              level, thus both --quiet and --no-warn have to be  used  to  not
+              ing was detected.  This  option  doesn't  affect  the  verbosity
+              level,  thus  both  --quiet and --no-warn have to be used to not
               display warnings and to not alter the exit status.
 
        --robot
-              Print  messages  in a machine-parsable format.  This is intended
-              to ease writing  frontends  that  want  to  use  xz  instead  of
-              liblzma, which may be the case with various scripts.  The output
-              with this option  enabled  is  meant  to  be  stable  across  xz
-              releases.  See the section ROBOT MODE for details.
+              Print messages in a machine-parsable format.  This  is  intended
+              to  ease  writing  frontends  that want to use xz instead of li-
+              blzma, which may be the case with various scripts.   The  output
+              with  this  option  enabled  is meant to be stable across xz re-
+              leases.  See the section ROBOT MODE for details.
 
        --info-memory
-              Display,  in  human-readable  format,  how  much physical memory
-              (RAM) xz thinks the system has and the memory usage  limits  for
+              Display, in human-readable  format,  how  much  physical  memory
+              (RAM)  xz  thinks the system has and the memory usage limits for
               compression and decompression, and exit successfully.
 
        -h, --help
-              Display  a  help  message  describing  the  most  commonly  used
-              options, and exit successfully.
+              Display a help message describing the  most  commonly  used  op-
+              tions, and exit successfully.
 
        -H, --long-help
-              Display a help message describing all features of xz,  and  exit
+              Display  a  help message describing all features of xz, and exit
               successfully
 
        -V, --version
-              Display  the  version number of xz and liblzma in human readable
-              format.  To get machine-parsable output, specify --robot  before
+              Display the version number of xz and liblzma in  human  readable
+              format.   To get machine-parsable output, specify --robot before
               --version.
 
 ROBOT MODE
        The robot mode is activated with the --robot option.  It makes the out-
        put of xz easier to parse by other programs.  Currently --robot is sup-
-       ported  only  together  with  --version, --info-memory, and --list.  It
+       ported only together with --version,  --info-memory,  and  --list.   It
        will be supported for compression and decompression in the future.
 
    Version
@@ -998,10 +1005,10 @@ ROBOT MODE
 
        X      Major version.
 
-       YYY    Minor  version.  Even numbers are stable.  Odd numbers are alpha
+       YYY    Minor version.  Even numbers are stable.  Odd numbers are  alpha
               or beta versions.
 
-       ZZZ    Patch level for stable releases or just a counter  for  develop-
+       ZZZ    Patch  level  for stable releases or just a counter for develop-
               ment releases.
 
        S      Stability.  0 is alpha, 1 is beta, and 2 is stable.  S should be
@@ -1013,25 +1020,25 @@ ROBOT MODE
        Examples: 4.999.9beta is 49990091 and 5.0.0 is 50000002.
 
    Memory limit information
-       xz  --robot --info-memory prints a single line with three tab-separated
+       xz --robot --info-memory prints a single line with three  tab-separated
        columns:
 
        1.  Total amount of physical memory (RAM) in bytes
 
-       2.  Memory usage limit for compression in bytes.  A  special  value  of
-           zero  indicates the default setting, which for single-threaded mode
+       2.  Memory  usage  limit  for compression in bytes.  A special value of
+           zero indicates the default setting, which for single-threaded  mode
            is the same as no limit.
 
-       3.  Memory usage limit for decompression in bytes.  A special value  of
-           zero  indicates the default setting, which for single-threaded mode
+       3.  Memory  usage limit for decompression in bytes.  A special value of
+           zero indicates the default setting, which for single-threaded  mode
            is the same as no limit.
 
-       In the future, the output of xz --robot  --info-memory  may  have  more
+       In  the  future,  the  output of xz --robot --info-memory may have more
        columns, but never more than a single line.
 
    List mode
        xz --robot --list uses tab-separated output.  The first column of every
-       line has a string that indicates the type of the information  found  on
+       line  has  a string that indicates the type of the information found on
        that line:
 
        name   This is always the first line when starting to list a file.  The
@@ -1044,17 +1051,17 @@ ROBOT MODE
               are as many stream lines as there are streams in the .xz file.
 
        block  This line type is used only when --verbose was specified.  There
-              are  as  many  block  lines as there are blocks in the .xz file.
-              The block lines are shown after all the stream lines;  different
+              are as many block lines as there are blocks  in  the  .xz  file.
+              The  block lines are shown after all the stream lines; different
               line types are not interleaved.
 
        summary
-              This  line type is used only when --verbose was specified twice.
+              This line type is used only when --verbose was specified  twice.
               This line is printed after all block lines.  Like the file line,
-              the  summary  line  contains  overall  information about the .xz
+              the summary line contains  overall  information  about  the  .xz
               file.
 
-       totals This line is always the very last line of the list  output.   It
+       totals This  line  is always the very last line of the list output.  It
               shows the total counts and sizes.
 
        The columns of the file lines:
@@ -1062,13 +1069,13 @@ ROBOT MODE
               3.  Total number of blocks in the stream(s)
               4.  Compressed size of the file
               5.  Uncompressed size of the file
-              6.  Compression  ratio,  for  example  0.123.   If ratio is over
-                  9.999, three dashes  (---)  are  displayed  instead  of  the
-                  ratio.
-              7.  Comma-separated  list of integrity check names.  The follow-
+              6.  Compression ratio, for example  0.123.   If  ratio  is  over
+                  9.999,  three  dashes (---) are displayed instead of the ra-
+                  tio.
+              7.  Comma-separated list of integrity check names.  The  follow-
                   ing strings are used for the known check types: None, CRC32,
-                  CRC64,  and  SHA-256.  For unknown check types, Unknown-N is
-                  used, where N is the Check ID as a decimal  number  (one  or
+                  CRC64, and SHA-256.  For unknown check types,  Unknown-N  is
+                  used,  where  N  is the Check ID as a decimal number (one or
                   two digits).
               8.  Total size of stream padding in the file
 
@@ -1085,41 +1092,41 @@ ROBOT MODE
 
        The columns of the block lines:
               2.  Number of the stream containing this block
-              3.  Block  number  relative  to the beginning of the stream (the
+              3.  Block number relative to the beginning of  the  stream  (the
                   first block is 1)
               4.  Block number relative to the beginning of the file
-              5.  Compressed start offset relative to  the  beginning  of  the
+              5.  Compressed  start  offset  relative  to the beginning of the
                   file
-              6.  Uncompressed  start  offset relative to the beginning of the
+              6.  Uncompressed start offset relative to the beginning  of  the
                   file
               7.  Total compressed size of the block (includes headers)
               8.  Uncompressed size
               9.  Compression ratio
               10. Name of the integrity check
 
-       If --verbose was specified twice, additional columns  are  included  on
-       the  block  lines.   These  are  not displayed with a single --verbose,
-       because getting this information requires many seeks and  can  thus  be
+       If  --verbose  was  specified twice, additional columns are included on
+       the block lines.  These are not displayed with a single --verbose,  be-
+       cause  getting  this  information  requires  many seeks and can thus be
        slow:
               11. Value of the integrity check in hexadecimal
               12. Block header size
-              13. Block  flags:  c  indicates that compressed size is present,
-                  and u indicates that uncompressed size is present.   If  the
-                  flag  is  not  set,  a dash (-) is shown instead to keep the
-                  string length fixed.  New flags may be added to the  end  of
+              13. Block flags: c indicates that compressed  size  is  present,
+                  and  u  indicates that uncompressed size is present.  If the
+                  flag is not set, a dash (-) is shown  instead  to  keep  the
+                  string  length  fixed.  New flags may be added to the end of
                   the string in the future.
-              14. Size  of  the  actual  compressed  data  in  the block (this
-                  excludes the block header, block padding, and check fields)
-              15. Amount of memory (in  bytes)  required  to  decompress  this
+              14. Size of the actual compressed data in the  block  (this  ex-
+                  cludes the block header, block padding, and check fields)
+              15. Amount  of  memory  (in  bytes)  required to decompress this
                   block with this xz version
-              16. Filter  chain.   Note  that most of the options used at com-
+              16. Filter chain.  Note that most of the options  used  at  com-
                   pression time cannot be known, because only the options that
                   are needed for decompression are stored in the .xz headers.
 
        The columns of the summary lines:
               2.  Amount of memory (in bytes) required to decompress this file
                   with this xz version
-              3.  yes or no indicating if all block  headers  have  both  com-
+              3.  yes  or  no  indicating  if all block headers have both com-
                   pressed size and uncompressed size stored in them
               Since xz 5.1.2alpha:
               4.  Minimum xz version required to decompress the file
@@ -1130,22 +1137,22 @@ ROBOT MODE
               4.  Compressed size
               5.  Uncompressed size
               6.  Average compression ratio
-              7.  Comma-separated  list  of  integrity  check  names that were
+              7.  Comma-separated list of  integrity  check  names  that  were
                   present in the files
               8.  Stream padding size
               9.  Number of files.  This is here to keep the order of the ear-
                   lier columns the same as on file lines.
 
-       If  --verbose  was  specified twice, additional columns are included on
+       If --verbose was specified twice, additional columns  are  included  on
        the totals line:
-              10. Maximum amount of memory (in bytes) required  to  decompress
+              10. Maximum  amount  of memory (in bytes) required to decompress
                   the files with this xz version
-              11. yes  or  no  indicating  if all block headers have both com-
+              11. yes or no indicating if all block  headers  have  both  com-
                   pressed size and uncompressed size stored in them
               Since xz 5.1.2alpha:
               12. Minimum xz version required to decompress the file
 
-       Future versions may add new line types and new columns can be added  to
+       Future  versions may add new line types and new columns can be added to
        the existing line types, but the existing columns won't be changed.
 
 EXIT STATUS
@@ -1153,35 +1160,35 @@ EXIT STATUS
 
        1      An error occurred.
 
-       2      Something  worth  a  warning  occurred,  but  no  actual  errors
-              occurred.
+       2      Something worth a warning occurred, but  no  actual  errors  oc-
+              curred.
 
        Notices (not warnings or errors) printed on standard error don't affect
        the exit status.
 
 ENVIRONMENT
-       xz  parses  space-separated lists of options from the environment vari-
+       xz parses space-separated lists of options from the  environment  vari-
        ables XZ_DEFAULTS and XZ_OPT, in this order, before parsing the options
-       from  the  command  line.   Note  that only options are parsed from the
-       environment variables; all non-options are silently  ignored.   Parsing
-       is  done  with  getopt_long(3)  which is used also for the command line
-       arguments.
+       from the command line.  Note that only options are parsed from the  en-
+       vironment  variables; all non-options are silently ignored.  Parsing is
+       done with getopt_long(3) which is used also for the command line  argu-
+       ments.
 
        XZ_DEFAULTS
               User-specific or system-wide default options.  Typically this is
               set in a shell initialization script to enable xz's memory usage
-              limiter by default.  Excluding shell initialization scripts  and
-              similar   special   cases,  scripts  must  never  set  or  unset
-              XZ_DEFAULTS.
+              limiter  by default.  Excluding shell initialization scripts and
+              similar special cases, scripts must never set  or  unset  XZ_DE-
+              FAULTS.
 
        XZ_OPT This is for passing options to xz when it is not possible to set
-              the  options  directly on the xz command line.  This is the case
+              the options directly on the xz command line.  This is  the  case
               e.g. when xz is run by a script or tool, e.g. GNU tar(1):
 
                      XZ_OPT=-2v tar caf foo.tar.xz foo
 
-              Scripts may use XZ_OPT e.g. to set script-specific default  com-
-              pression  options.   It  is  still recommended to allow users to
+              Scripts  may use XZ_OPT e.g. to set script-specific default com-
+              pression options.  It is still recommended  to  allow  users  to
               override XZ_OPT if that is reasonable, e.g. in sh(1) scripts one
               may use something like this:
 
@@ -1189,16 +1196,16 @@ ENVIRONMENT
                      export XZ_OPT
 
 LZMA UTILS COMPATIBILITY
-       The  command  line  syntax  of  xz  is  practically a superset of lzma,
-       unlzma, and lzcat as found from LZMA Utils 4.32.x.  In most  cases,  it
-       is possible to replace LZMA Utils with XZ Utils without breaking exist-
-       ing scripts.  There are some incompatibilities though, which may  some-
-       times cause problems.
+       The command line syntax of xz is practically a superset  of  lzma,  un-
+       lzma,  and lzcat as found from LZMA Utils 4.32.x.  In most cases, it is
+       possible to replace LZMA Utils with XZ Utils without breaking  existing
+       scripts.   There are some incompatibilities though, which may sometimes
+       cause problems.
 
    Compression preset levels
-       The  numbering  of the compression level presets is not identical in xz
-       and LZMA Utils.  The most important difference is how dictionary  sizes
-       are  mapped  to different presets.  Dictionary size is roughly equal to
+       The numbering of the compression level presets is not identical  in  xz
+       and  LZMA Utils.  The most important difference is how dictionary sizes
+       are mapped to different presets.  Dictionary size is roughly  equal  to
        the decompressor memory usage.
 
               Level     xz      LZMA Utils
@@ -1214,7 +1221,7 @@ LZMA UTILS COMPATIBILITY
                -9      64 MiB     32 MiB
 
        The dictionary size differences affect the compressor memory usage too,
-       but  there  are some other differences between LZMA Utils and XZ Utils,
+       but there are some other differences between LZMA Utils and  XZ  Utils,
        which make the difference even bigger:
 
               Level     xz      LZMA Utils 4.32.x
@@ -1229,99 +1236,99 @@ LZMA UTILS COMPATIBILITY
                -8     370 MiB        159 MiB
                -9     674 MiB        311 MiB
 
-       The default preset level in LZMA Utils is -7 while in XZ  Utils  it  is
+       The  default  preset  level in LZMA Utils is -7 while in XZ Utils it is
        -6, so both use an 8 MiB dictionary by default.
 
    Streamed vs. non-streamed .lzma files
-       The  uncompressed  size  of the file can be stored in the .lzma header.
-       LZMA Utils does that when compressing regular files.   The  alternative
-       is  to  mark  that  uncompressed size is unknown and use end-of-payload
+       The uncompressed size of the file can be stored in  the  .lzma  header.
+       LZMA  Utils  does that when compressing regular files.  The alternative
+       is to mark that uncompressed size is  unknown  and  use  end-of-payload
        marker to indicate where the decompressor should stop.  LZMA Utils uses
-       this  method  when uncompressed size isn't known, which is the case for
+       this method when uncompressed size isn't known, which is the  case  for
        example in pipes.
 
-       xz supports decompressing .lzma files with  or  without  end-of-payload
-       marker,  but  all  .lzma  files  created  by xz will use end-of-payload
-       marker and have uncompressed  size  marked  as  unknown  in  the  .lzma
-       header.   This may be a problem in some uncommon situations.  For exam-
-       ple, a .lzma decompressor in an embedded device might  work  only  with
-       files  that have known uncompressed size.  If you hit this problem, you
-       need to use LZMA Utils or LZMA SDK to create  .lzma  files  with  known
-       uncompressed size.
+       xz  supports  decompressing  .lzma files with or without end-of-payload
+       marker, but all .lzma files  created  by  xz  will  use  end-of-payload
+       marker  and  have  uncompressed  size  marked  as  unknown in the .lzma
+       header.  This may be a problem in some uncommon situations.  For  exam-
+       ple,  a  .lzma  decompressor in an embedded device might work only with
+       files that have known uncompressed size.  If you hit this problem,  you
+       need to use LZMA Utils or LZMA SDK to create .lzma files with known un-
+       compressed size.
 
    Unsupported .lzma files
        The .lzma format allows lc values up to 8, and lp values up to 4.  LZMA
        Utils can decompress files with any lc and lp, but always creates files
-       with  lc=3  and  lp=0.  Creating files with other lc and lp is possible
+       with lc=3 and lp=0.  Creating files with other lc and  lp  is  possible
        with xz and with LZMA SDK.
 
        The implementation of the LZMA1 filter in liblzma requires that the sum
-       of  lc  and lp must not exceed 4.  Thus, .lzma files, which exceed this
+       of lc and lp must not exceed 4.  Thus, .lzma files, which  exceed  this
        limitation, cannot be decompressed with xz.
 
        LZMA Utils creates only .lzma files which have a dictionary size of 2^n
-       (a  power  of  2)  but accepts files with any dictionary size.  liblzma
-       accepts only .lzma files which have a dictionary size of 2^n or  2^n  +
-       2^(n-1).   This  is  to  decrease  false positives when detecting .lzma
+       (a power of 2) but accepts files with any dictionary size.  liblzma ac-
+       cepts  only  .lzma  files  which have a dictionary size of 2^n or 2^n +
+       2^(n-1).  This is to decrease  false  positives  when  detecting  .lzma
        files.
 
        These limitations shouldn't be a problem in practice, since practically
-       all  .lzma  files  have been compressed with settings that liblzma will
+       all .lzma files have been compressed with settings  that  liblzma  will
        accept.
 
    Trailing garbage
-       When decompressing, LZMA Utils silently  ignore  everything  after  the
-       first  .lzma  stream.   In  most  situations, this is a bug.  This also
-       means that LZMA Utils don't support  decompressing  concatenated  .lzma
+       When  decompressing,  LZMA  Utils  silently ignore everything after the
+       first .lzma stream.  In most situations, this  is  a  bug.   This  also
+       means  that  LZMA  Utils don't support decompressing concatenated .lzma
        files.
 
-       If  there  is  data left after the first .lzma stream, xz considers the
-       file to be corrupt unless --single-stream was  used.   This  may  break
-       obscure scripts which have assumed that trailing garbage is ignored.
+       If there is data left after the first .lzma stream,  xz  considers  the
+       file to be corrupt unless --single-stream was used.  This may break ob-
+       scure scripts which have assumed that trailing garbage is ignored.
 
 NOTES
    Compressed output may vary
-       The  exact  compressed output produced from the same uncompressed input
+       The exact compressed output produced from the same  uncompressed  input
        file may vary between XZ Utils versions even if compression options are
        identical.  This is because the encoder can be improved (faster or bet-
-       ter compression) without affecting the file  format.   The  output  can
-       vary  even  between  different  builds of the same XZ Utils version, if
+       ter  compression)  without  affecting  the file format.  The output can
+       vary even between different builds of the same  XZ  Utils  version,  if
        different build options are used.
 
        The above means that once --rsyncable has been implemented, the result-
-       ing  files won't necessarily be rsyncable unless both old and new files
-       have been compressed with the same xz version.   This  problem  can  be
+       ing files won't necessarily be rsyncable unless both old and new  files
+       have  been  compressed  with  the same xz version.  This problem can be
        fixed if a part of the encoder implementation is frozen to keep rsynca-
        ble output stable across xz versions.
 
    Embedded .xz decompressors
        Embedded .xz decompressor implementations like XZ Embedded don't neces-
        sarily support files created with integrity check types other than none
-       and  crc32.   Since  the  default  is  --check=crc64,  you   must   use
+       and   crc32.    Since  the  default  is  --check=crc64,  you  must  use
        --check=none or --check=crc32 when creating files for embedded systems.
 
-       Outside  embedded systems, all .xz format decompressors support all the
-       check types, or at least are able to decompress the file without  veri-
+       Outside embedded systems, all .xz format decompressors support all  the
+       check  types, or at least are able to decompress the file without veri-
        fying the integrity check if the particular check is not supported.
 
-       XZ  Embedded supports BCJ filters, but only with the default start off-
+       XZ Embedded supports BCJ filters, but only with the default start  off-
        set.
 
 EXAMPLES
    Basics
-       Compress the file foo into foo.xz using the default  compression  level
+       Compress  the  file foo into foo.xz using the default compression level
        (-6), and remove foo if compression is successful:
 
               xz foo
 
-       Decompress  bar.xz  into bar and don't remove bar.xz even if decompres-
+       Decompress bar.xz into bar and don't remove bar.xz even  if  decompres-
        sion is successful:
 
               xz -dk bar.xz
 
-       Create baz.tar.xz with the preset -4e (-4 --extreme), which  is  slower
-       than  e.g.  the  default  -6, but needs less memory for compression and
-       decompression (48 MiB and 5 MiB, respectively):
+       Create  baz.tar.xz  with the preset -4e (-4 --extreme), which is slower
+       than e.g. the default -6, but needs less memory for compression and de-
+       compression (48 MiB and 5 MiB, respectively):
 
               tar cf - baz | xz -4e > baz.tar.xz
 
@@ -1331,31 +1338,31 @@ EXAMPLES
               xz -dcf a.txt b.txt.xz c.txt d.txt.lzma > abcd.txt
 
    Parallel compression of many files
-       On  GNU  and *BSD, find(1) and xargs(1) can be used to parallelize com-
+       On GNU and *BSD, find(1) and xargs(1) can be used to  parallelize  com-
        pression of many files:
 
               find . -type f \! -name '*.xz' -print0 \
                   | xargs -0r -P4 -n16 xz -T1
 
-       The -P option to xargs(1) sets the number  of  parallel  xz  processes.
+       The  -P  option  to  xargs(1) sets the number of parallel xz processes.
        The best value for the -n option depends on how many files there are to
-       be compressed.  If there are only a couple of files, the  value  should
+       be  compressed.   If there are only a couple of files, the value should
        probably be 1; with tens of thousands of files, 100 or even more may be
-       appropriate to reduce the number of xz  processes  that  xargs(1)  will
+       appropriate  to  reduce  the  number of xz processes that xargs(1) will
        eventually create.
 
-       The  option  -T1  for  xz is there to force it to single-threaded mode,
-       because xargs(1) is used to control the amount of parallelization.
+       The option -T1 for xz is there to force it to single-threaded mode, be-
+       cause xargs(1) is used to control the amount of parallelization.
 
    Robot mode
-       Calculate how many bytes have been saved  in  total  after  compressing
+       Calculate  how  many  bytes  have been saved in total after compressing
        multiple files:
 
               xz --robot --list *.xz | awk '/^totals/{print $5-$4}'
 
-       A  script may want to know that it is using new enough xz.  The follow-
-       ing sh(1) script checks that the version number of the xz  tool  is  at
-       least  5.0.0.   This method is compatible with old beta versions, which
+       A script may want to know that it is using new enough xz.  The  follow-
+       ing  sh(1)  script  checks that the version number of the xz tool is at
+       least 5.0.0.  This method is compatible with old beta  versions,  which
        didn't support the --robot option:
 
               if ! eval "$(xz --robot --version 2> /dev/null)" ||
@@ -1375,18 +1382,17 @@ EXAMPLES
               fi
 
    Custom compressor filter chains
-       The  simplest  use for custom filter chains is customizing a LZMA2 pre-
-       set.  This can be useful, because the presets cover only  a  subset  of
+       The simplest use for custom filter chains is customizing a  LZMA2  pre-
+       set.   This  can  be useful, because the presets cover only a subset of
        the potentially useful combinations of compression settings.
 
-       The  CompCPU columns of the tables from the descriptions of the options
-       -0 ... -9 and --extreme are  useful  when  customizing  LZMA2  presets.
+       The CompCPU columns of the tables from the descriptions of the  options
+       -0  ...  -9  and  --extreme  are useful when customizing LZMA2 presets.
        Here are the relevant parts collected from those two tables:
 
               Preset   CompCPU
                -0         0
                -1         1
-
                -2         2
                -3         3
                -4         4
@@ -1395,83 +1401,83 @@ EXAMPLES
                -5e        7
                -6e        8
 
-       If  you know that a file requires somewhat big dictionary (e.g. 32 MiB)
-       to compress well, but you want to compress it quicker than xz -8  would
+       If you know that a file requires somewhat big dictionary (e.g. 32  MiB)
+       to  compress well, but you want to compress it quicker than xz -8 would
        do, a preset with a low CompCPU value (e.g. 1) can be modified to use a
        bigger dictionary:
 
               xz --lzma2=preset=1,dict=32MiB foo.tar
 
-       With certain files, the above command may be faster than  xz  -6  while
-       compressing  significantly better.  However, it must be emphasized that
+       With  certain  files,  the above command may be faster than xz -6 while
+       compressing significantly better.  However, it must be emphasized  that
        only some files benefit from a big dictionary while keeping the CompCPU
        value low.  The most obvious situation, where a big dictionary can help
-       a lot, is an archive containing very similar files of at  least  a  few
-       megabytes  each.   The  dictionary  size has to be significantly bigger
-       than any individual file to allow LZMA2 to take full advantage  of  the
+       a  lot,  is  an archive containing very similar files of at least a few
+       megabytes each.  The dictionary size has  to  be  significantly  bigger
+       than  any  individual file to allow LZMA2 to take full advantage of the
        similarities between consecutive files.
 
-       If  very high compressor and decompressor memory usage is fine, and the
-       file being compressed is at least several hundred megabytes, it may  be
-       useful  to  use  an  even  bigger dictionary than the 64 MiB that xz -9
+       If very high compressor and decompressor memory usage is fine, and  the
+       file  being compressed is at least several hundred megabytes, it may be
+       useful to use an even bigger dictionary than the  64  MiB  that  xz  -9
        would use:
 
               xz -vv --lzma2=dict=192MiB big_foo.tar
 
        Using -vv (--verbose --verbose) like in the above example can be useful
-       to  see  the  memory  requirements  of the compressor and decompressor.
-       Remember that using a dictionary bigger than the  size  of  the  uncom-
-       pressed  file is waste of memory, so the above command isn't useful for
-       small files.
-
-       Sometimes the compression time doesn't  matter,  but  the  decompressor
-       memory  usage has to be kept low e.g. to make it possible to decompress
-       the file on an embedded system.  The following  command  uses  -6e  (-6
-       --extreme)  as  a  base  and  sets  the dictionary to only 64 KiB.  The
-       resulting file can be decompressed with XZ Embedded (that's  why  there
-       is --check=crc32) using about 100 KiB of memory.
+       to see the memory requirements of the compressor and decompressor.  Re-
+       member that using a dictionary bigger than the size of the uncompressed
+       file is waste of memory, so the above command isn't  useful  for  small
+       files.
+
+       Sometimes  the  compression  time  doesn't matter, but the decompressor
+       memory usage has to be kept low e.g. to make it possible to  decompress
+       the  file  on  an  embedded system.  The following command uses -6e (-6
+       --extreme) as a base and sets the dictionary to only 64 KiB.   The  re-
+       sulting  file can be decompressed with XZ Embedded (that's why there is
+       --check=crc32) using about 100 KiB of memory.
 
               xz --check=crc32 --lzma2=preset=6e,dict=64KiB foo
 
-       If  you  want  to  squeeze out as many bytes as possible, adjusting the
-       number of literal context bits (lc) and number of  position  bits  (pb)
+       If you want to squeeze out as many bytes  as  possible,  adjusting  the
+       number  of  literal  context bits (lc) and number of position bits (pb)
        can sometimes help.  Adjusting the number of literal position bits (lp)
-       might help too, but usually lc and  pb  are  more  important.   E.g.  a
-       source  code  archive  contains mostly US-ASCII text, so something like
+       might  help  too,  but  usually  lc  and pb are more important.  E.g. a
+       source code archive contains mostly US-ASCII text,  so  something  like
        the following might give slightly (like 0.1 %) smaller file than xz -6e
        (try also without lc=4):
 
               xz --lzma2=preset=6e,pb=0,lc=4 source_code.tar
 
-       Using  another  filter together with LZMA2 can improve compression with
+       Using another filter together with LZMA2 can improve  compression  with
        certain file types.  E.g. to compress a x86-32 or x86-64 shared library
        using the x86 BCJ filter:
 
               xz --x86 --lzma2 libfoo.so
 
-       Note  that the order of the filter options is significant.  If --x86 is
+       Note that the order of the filter options is significant.  If --x86  is
        specified after --lzma2, xz will give an error, because there cannot be
-       any  filter  after LZMA2, and also because the x86 BCJ filter cannot be
+       any filter after LZMA2, and also because the x86 BCJ filter  cannot  be
        used as the last filter in the chain.
 
-       The Delta filter together with LZMA2 can give good results with  bitmap
+       The  Delta filter together with LZMA2 can give good results with bitmap
        images.  It should usually beat PNG, which has a few more advanced fil-
        ters than simple delta but uses Deflate for the actual compression.
 
-       The image has to be saved in uncompressed format, e.g. as  uncompressed
-       TIFF.   The  distance parameter of the Delta filter is set to match the
-       number of bytes per pixel in the image.  E.g. 24-bit RGB  bitmap  needs
-       dist=3,  and  it  is also good to pass pb=0 to LZMA2 to accommodate the
+       The  image has to be saved in uncompressed format, e.g. as uncompressed
+       TIFF.  The distance parameter of the Delta filter is set to  match  the
+       number  of  bytes per pixel in the image.  E.g. 24-bit RGB bitmap needs
+       dist=3, and it is also good to pass pb=0 to LZMA2  to  accommodate  the
        three-byte alignment:
 
               xz --delta=dist=3 --lzma2=pb=0 foo.tiff
 
        If multiple images have been put into a single archive (e.g. .tar), the
-       Delta  filter will work on that too as long as all images have the same
+       Delta filter will work on that too as long as all images have the  same
        number of bytes per pixel.
 
 SEE ALSO
-       xzdec(1),  xzdiff(1),   xzgrep(1),   xzless(1),   xzmore(1),   gzip(1),
+       xzdec(1),   xzdiff(1),   xzgrep(1),   xzless(1),   xzmore(1),  gzip(1),
        bzip2(1), 7z(1)
 
        XZ Utils: <https://tukaani.org/xz/>
@@ -1480,4 +1486,4 @@ SEE ALSO
 
 
 
-Tukaani                           2017-04-19                             XZ(1)
+Tukaani                           2020-02-01                             XZ(1)
index 17cc72b..a914e20 100644 (file)
@@ -14,14 +14,14 @@ DESCRIPTION
        files.  xzdec is intended to work as a drop-in replacement for xz(1) in
        the  most  common  situations where a script has been written to use xz
        --decompress --stdout (and possibly a few other commonly used  options)
-       to  decompress  .xz  files.   lzmadec is identical to xzdec except that
-       lzmadec supports .lzma files instead of .xz files.
+       to decompress .xz files.  lzmadec is identical to xzdec except that lz-
+       madec supports .lzma files instead of .xz files.
 
        To reduce the size of the  executable,  xzdec  doesn't  support  multi-
        threading  or  localization,  and doesn't read options from XZ_DEFAULTS
-       and XZ_OPT environment variables.   xzdec  doesn't  support  displaying
-       intermediate  progress information: sending SIGINFO to xzdec does noth-
-       ing, but sending SIGUSR1 terminates the process instead  of  displaying
+       and XZ_OPT environment variables.  xzdec doesn't support displaying in-
+       termediate progress information: sending SIGINFO to xzdec does nothing,
+       but sending  SIGUSR1  terminates  the  process  instead  of  displaying
        progress information.
 
 OPTIONS
index 3671042..1a792ba 100644 (file)
@@ -15,8 +15,8 @@ SYNOPSIS
 
 DESCRIPTION
        xzgrep  invokes  grep(1)  on  files which may be either uncompressed or
-       compressed with xz(1), lzma(1), gzip(1),  bzip2(1),  or  lzop(1).   All
-       options specified are passed directly to grep(1).
+       compressed with xz(1), lzma(1), gzip(1), bzip2(1), or lzop(1).  All op-
+       tions specified are passed directly to grep(1).
 
        If  no file is specified, then standard input is decompressed if neces-
        sary and fed to grep(1).  When reading from  standard  input,  gzip(1),
index 26dc611..4c13211 100644 (file)
@@ -6,52 +6,50 @@ Introduction
 
     This document explains how to build XZ Utils for DOS using DJGPP.
     The resulting binaries should run at least on various DOS versions
-    and under Windows 95/98/98SE/ME, although the Windows version of
-    XZ Utils is recommended under Windows 95 and later.
+    and under Windows 95/98/98SE/ME.
 
-    This is currently experimental and has got very little testing.
+    This is somewhat experimental and has got very little testing.
 
     Note: Makefile and config.h are updated only now and then. This
-    means that especially if you checked out a development version,
-    building for DOS probably won't work without updating Makefile
-    and config.h first.
+    means that if you checked out a development version, building for
+    DOS might not work without updating Makefile and config.h first.
 
 
 Getting and Installing DJGPP
 
     You may use <http://www.delorie.com/djgpp/zip-picker.html> to help
-    deciding what to download, but as of writing (2010-10-09) that may
-    not be the most convenient way taking into account what components
-    are actually required to build XZ Utils. However, using the
-    zip-picker can still be worth doing to get nice short summary of
-    installation instructions (they can be found from readme.1st too).
+    deciding what to download. If you are only interested in building
+    XZ Utils, the zip-picker may list files that you don't strictly
+    need. However, using the zip-picker can still be worth it to get a
+    nice short summary of installation instructions (they can be found
+    from readme.1st too).
 
     For a more manual method, first select a mirror from
-    <http://www.delorie.com/djgpp/getting.html>. You need
-    the following files:
+    <http://www.delorie.com/djgpp/getting.html> and go the
+    subdirectory named "current". You need the following files:
 
         unzip32.exe  (if you don't already have a LFN-capable unzipper)
-        beta/v2/djdev204.zip
-        v2gnu/bnu219b.zip
-        v2gnu/gcc444b.zip
-        v2gnu/mak3791b.zip
+        v2/djdev205.zip
+        v2gnu/bnu234b.zip
+        v2gnu/gcc920b.zip
+        v2gnu/mak43b.zip
         v2misc/csdpmi7b.zip
 
     If newer versions are available, probably you should try them first.
-    Note that djdev203.zip is too old to build XZ Utils; you need at
-    least djdev204.zip. Also note that you want csdpmi7b.zip even if you
-    run under Windows or DOSEMU, because the XZ Utils Makefile will embed
-    cwsdstub.exe to the resulting binaries.
+    Note that versions older than djdev205.zip aren't supported. Also
+    note that you want csdpmi7b.zip even if you run under Windows or
+    DOSEMU because the XZ Utils Makefile will embed cwsdstub.exe to
+    the resulting xz.exe.
 
-    See the instructions in readme.1st found from djdev204.zip. Here's
+    See the instructions in readme.1st found from djdev205.zip. Here's
     a short summary, but you should still read readme.1st.
 
         C:\> mkdir DJGPP
         C:\> cd DJGPP
-        C:\DJGPP> c:\download\unzip32 c:\download\djdev204.zip
-        C:\DJGPP> c:\download\unzip32 c:\download\bnu219b.zip
-        C:\DJGPP> c:\download\unzip32 c:\download\gcc444b.zip
-        C:\DJGPP> c:\download\unzip32 c:\download\mak3791b.zip
+        C:\DJGPP> c:\download\unzip32 c:\download\djdev205.zip
+        C:\DJGPP> c:\download\unzip32 c:\download\bnu234b.zip
+        C:\DJGPP> c:\download\unzip32 c:\download\gcc920b.zip
+        C:\DJGPP> c:\download\unzip32 c:\download\mak43b.zip
         C:\DJGPP> c:\download\unzip32 c:\download\csdpmi7b.zip
 
         C:\DJGPP> set PATH=C:\DJGPP\BIN;%PATH%
@@ -72,8 +70,9 @@ Building
     Once you have built XZ Utils, the resulting binaries can be run
     without long filename support.
 
-    Run "make" in this directory (the directory containing this README).
-    You should get xz.exe (and a bunch of temporary files). Other tools
-    are not built. Having e.g. xzdec.exe doesn't save much space compared
-    to xz.exe, because the DJGPP runtime makes the .exe quite big anyway.
+    Run "make" in this directory (the directory containing this
+    INSTALL.txt). You should get xz.exe (and a bunch of temporary files).
+    Other tools are not built. Having e.g. xzdec.exe doesn't save much
+    space compared to xz.exe because the DJGPP runtime makes the .exe
+    quite big anyway.
 
index 0ddb43c..e42bdfb 100644 (file)
@@ -18,9 +18,7 @@ CPPFLAGS =
 CFLAGS = -g -Wall -Wextra -Wfatal-errors -march=i386 -mtune=i686 -O2
 LDFLAGS = -lemu
 
-# NOTE: -fgnu89-inline is needed on DJGPP 2.04 beta and GCC >= 4.3.0
-# because time.h uses GNU-style "extern inline".
-ALL_CFLAGS = -std=gnu99 -fgnu89-inline
+ALL_CFLAGS = -std=gnu99
 
 ALL_CPPFLAGS = \
        -I. \
index 7a385e1..5b0e089 100644 (file)
 /* Define to 1 if the system has the type `_Bool'. */
 #define HAVE__BOOL 1
 
+/* Define to 1 if the GNU C extension __builtin_assume_aligned is supported.
+   */
+#define HAVE___BUILTIN_ASSUME_ALIGNED 1
+
+/* Define to 1 if the GNU C extensions __builtin_bswap16/32/64 are supported.
+   */
+#define HAVE___BUILTIN_BSWAPXX 1
+
 /* Define to 1 to disable debugging code. */
 #define NDEBUG 1
 
index ee2053e..cf8718f 100644 (file)
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.15.1 from Makefile.am.
+# Makefile.in generated by automake 1.16.1 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2017 Free Software Foundation, Inc.
+# Copyright (C) 1994-2018 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -92,14 +92,15 @@ subdir = lib
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/m4/ax_check_capsicum.m4 \
        $(top_srcdir)/m4/ax_pthread.m4 $(top_srcdir)/m4/getopt.m4 \
-       $(top_srcdir)/m4/gettext.m4 $(top_srcdir)/m4/iconv.m4 \
-       $(top_srcdir)/m4/intlmacosx.m4 $(top_srcdir)/m4/lib-ld.m4 \
-       $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \
-       $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \
-       $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \
-       $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/m4/nls.m4 \
-       $(top_srcdir)/m4/po.m4 $(top_srcdir)/m4/posix-shell.m4 \
-       $(top_srcdir)/m4/progtest.m4 $(top_srcdir)/m4/tuklib_common.m4 \
+       $(top_srcdir)/m4/gettext.m4 $(top_srcdir)/m4/host-cpu-c-abi.m4 \
+       $(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/intlmacosx.m4 \
+       $(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \
+       $(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/libtool.m4 \
+       $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \
+       $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \
+       $(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/po.m4 \
+       $(top_srcdir)/m4/posix-shell.m4 $(top_srcdir)/m4/progtest.m4 \
+       $(top_srcdir)/m4/tuklib_common.m4 \
        $(top_srcdir)/m4/tuklib_cpucores.m4 \
        $(top_srcdir)/m4/tuklib_integer.m4 \
        $(top_srcdir)/m4/tuklib_mbstr.m4 \
@@ -136,7 +137,8 @@ am__v_at_0 = @
 am__v_at_1 = 
 DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
 depcomp = $(SHELL) $(top_srcdir)/build-aux/depcomp
-am__depfiles_maybe = depfiles
+am__maybe_remake_depfiles = depfiles
+am__depfiles_remade = $(DEPDIR)/getopt.Po $(DEPDIR)/getopt1.Po
 am__mv = mv -f
 COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
        $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
@@ -234,8 +236,8 @@ MAKEINFO = @MAKEINFO@
 MANIFEST_TOOL = @MANIFEST_TOOL@
 MKDIR_P = @MKDIR_P@
 MSGFMT = @MSGFMT@
-MSGFMT_015 = @MSGFMT_015@
 MSGMERGE = @MSGMERGE@
+MSGMERGE_FOR_MSGFMT_OPTION = @MSGMERGE_FOR_MSGFMT_OPTION@
 NM = @NM@
 NMEDIT = @NMEDIT@
 OBJDUMP = @OBJDUMP@
@@ -291,6 +293,7 @@ datadir = @datadir@
 datarootdir = @datarootdir@
 docdir = @docdir@
 dvidir = @dvidir@
+enable_path_for_scripts = @enable_path_for_scripts@
 exec_prefix = @exec_prefix@
 host = @host@
 host_alias = @host_alias@
@@ -350,8 +353,8 @@ Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
          *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);; \
+           echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles)'; \
+           cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles);; \
        esac;
 
 $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
@@ -377,8 +380,14 @@ mostlyclean-compile:
 distclean-compile:
        -rm -f *.tab.c
 
-@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)/getopt.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/getopt1.Po@am__quote@ # am--include-marker
+
+$(am__depfiles_remade):
+       @$(MKDIR_P) $(@D)
+       @echo '# dummy' >$@-t && $(am__mv) $@-t $@
+
+am--depfiles: $(am__depfiles_remade)
 
 .c.o:
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
@@ -413,7 +422,10 @@ ctags CTAGS:
 cscope cscopelist:
 
 
-distdir: $(DISTFILES)
+distdir: $(BUILT_SOURCES)
+       $(MAKE) $(AM_MAKEFLAGS) distdir-am
+
+distdir-am: $(DISTFILES)
        @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
        topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
        list='$(DISTFILES)'; \
@@ -487,7 +499,8 @@ clean-am: clean-generic clean-libtool clean-noinstLIBRARIES \
        mostlyclean-am
 
 distclean: distclean-am
-       -rm -rf $(DEPDIR)
+               -rm -f $(DEPDIR)/getopt.Po
+       -rm -f $(DEPDIR)/getopt1.Po
        -rm -f Makefile
 distclean-am: clean-am distclean-compile distclean-generic
 
@@ -532,7 +545,8 @@ install-ps-am:
 installcheck-am:
 
 maintainer-clean: maintainer-clean-am
-       -rm -rf $(DEPDIR)
+               -rm -f $(DEPDIR)/getopt.Po
+       -rm -f $(DEPDIR)/getopt1.Po
        -rm -f Makefile
 maintainer-clean-am: distclean-am maintainer-clean-generic
 
@@ -553,18 +567,18 @@ uninstall-am:
 
 .MAKE: all check install install-am install-strip
 
-.PHONY: all all-am check check-am clean clean-generic clean-libtool \
-       clean-noinstLIBRARIES cscopelist-am ctags-am distclean \
-       distclean-compile distclean-generic distclean-libtool 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 mostlyclean-libtool pdf pdf-am ps ps-am \
-       tags-am uninstall uninstall-am
+.PHONY: all all-am am--depfiles check check-am clean clean-generic \
+       clean-libtool clean-noinstLIBRARIES cscopelist-am ctags-am \
+       distclean distclean-compile distclean-generic \
+       distclean-libtool 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 mostlyclean-libtool \
+       pdf pdf-am ps ps-am tags-am uninstall uninstall-am
 
 .PRECIOUS: Makefile
 
index d383ad5..1598d07 100644 (file)
@@ -1,5 +1,5 @@
 # ===========================================================================
-#        http://www.gnu.org/software/autoconf-archive/ax_pthread.html
+#        https://www.gnu.org/software/autoconf-archive/ax_pthread.html
 # ===========================================================================
 #
 # SYNOPSIS
 #   is necessary on AIX to use the special cc_r compiler alias.)
 #
 #   NOTE: You are assumed to not only compile your program with these flags,
-#   but also link it with them as well. e.g. you should link with
+#   but also to link with them as well. For example, you might link with
 #   $PTHREAD_CC $CFLAGS $PTHREAD_CFLAGS $LDFLAGS ... $PTHREAD_LIBS $LIBS
 #
-#   If you are only building threads programs, you may wish to use these
+#   If you are only building threaded programs, you may wish to use these
 #   variables in your default LIBS, CFLAGS, and CC:
 #
 #     LIBS="$PTHREAD_LIBS $LIBS"
@@ -30,8 +30,8 @@
 #     CC="$PTHREAD_CC"
 #
 #   In addition, if the PTHREAD_CREATE_JOINABLE thread-attribute constant
-#   has a nonstandard name, defines PTHREAD_CREATE_JOINABLE to that name
-#   (e.g. PTHREAD_CREATE_UNDETACHED on AIX).
+#   has a nonstandard name, this macro defines PTHREAD_CREATE_JOINABLE to
+#   that name (e.g. PTHREAD_CREATE_UNDETACHED on AIX).
 #
 #   Also HAVE_PTHREAD_PRIO_INHERIT is defined if pthread is found and the
 #   PTHREAD_PRIO_INHERIT symbol is defined when compiling with
@@ -55,6 +55,7 @@
 #
 #   Copyright (c) 2008 Steven G. Johnson <stevenj@alum.mit.edu>
 #   Copyright (c) 2011 Daniel Richard G. <skunk@iSKUNK.ORG>
+#   Copyright (c) 2019 Marc Stevens <marc.stevens@cwi.nl>
 #
 #   This program is free software: you can redistribute it and/or modify it
 #   under the terms of the GNU General Public License as published by the
@@ -67,7 +68,7 @@
 #   Public License for more details.
 #
 #   You should have received a copy of the GNU General Public License along
-#   with this program. If not, see <http://www.gnu.org/licenses/>.
+#   with this program. If not, see <https://www.gnu.org/licenses/>.
 #
 #   As a special exception, the respective Autoconf Macro's copyright owner
 #   gives unlimited permission to copy, distribute and modify the configure
 #   modified version of the Autoconf Macro, you may extend this special
 #   exception to the GPL to apply to your modified version as well.
 
-#serial 21
+#serial 27
 
 AU_ALIAS([ACX_PTHREAD], [AX_PTHREAD])
 AC_DEFUN([AX_PTHREAD], [
 AC_REQUIRE([AC_CANONICAL_HOST])
+AC_REQUIRE([AC_PROG_CC])
+AC_REQUIRE([AC_PROG_SED])
 AC_LANG_PUSH([C])
 ax_pthread_ok=no
 
 # We used to check for pthread.h first, but this fails if pthread.h
-# requires special compiler flags (e.g. on True64 or Sequent).
+# requires special compiler flags (e.g. on Tru64 or Sequent).
 # It gets checked for in the link test anyway.
 
 # First of all, check if the user has set any of the PTHREAD_LIBS,
 # etcetera environment variables, and if threads linking works using
 # them:
-if test x"$PTHREAD_LIBS$PTHREAD_CFLAGS" != x; then
-        save_CFLAGS="$CFLAGS"
+if test "x$PTHREAD_CFLAGS$PTHREAD_LIBS" != "x"; then
+        ax_pthread_save_CC="$CC"
+        ax_pthread_save_CFLAGS="$CFLAGS"
+        ax_pthread_save_LIBS="$LIBS"
+        AS_IF([test "x$PTHREAD_CC" != "x"], [CC="$PTHREAD_CC"])
         CFLAGS="$CFLAGS $PTHREAD_CFLAGS"
-        save_LIBS="$LIBS"
         LIBS="$PTHREAD_LIBS $LIBS"
-        AC_MSG_CHECKING([for pthread_join in LIBS=$PTHREAD_LIBS with CFLAGS=$PTHREAD_CFLAGS])
-        AC_TRY_LINK_FUNC([pthread_join], [ax_pthread_ok=yes])
+        AC_MSG_CHECKING([for pthread_join using $CC $PTHREAD_CFLAGS $PTHREAD_LIBS])
+        AC_LINK_IFELSE([AC_LANG_CALL([], [pthread_join])], [ax_pthread_ok=yes])
         AC_MSG_RESULT([$ax_pthread_ok])
-        if test x"$ax_pthread_ok" = xno; then
+        if test "x$ax_pthread_ok" = "xno"; then
                 PTHREAD_LIBS=""
                 PTHREAD_CFLAGS=""
         fi
-        LIBS="$save_LIBS"
-        CFLAGS="$save_CFLAGS"
+        CC="$ax_pthread_save_CC"
+        CFLAGS="$ax_pthread_save_CFLAGS"
+        LIBS="$ax_pthread_save_LIBS"
 fi
 
 # We must check for the threads library under a number of different
@@ -118,12 +124,14 @@ fi
 # (e.g. DEC) have both -lpthread and -lpthreads, where one of the
 # libraries is broken (non-POSIX).
 
-# Create a list of thread flags to try.  Items starting with a "-" are
-# C compiler flags, and other items are library names, except for "none"
-# which indicates that we try without any flags at all, and "pthread-config"
-# which is a program returning the flags for the Pth emulation library.
+# Create a list of thread flags to try. Items with a "," contain both
+# C compiler flags (before ",") and linker flags (after ","). Other items
+# starting with a "-" are C compiler flags, and remaining items are
+# library names, except for "none" which indicates that we try without
+# any flags at all, and "pthread-config" which is a program returning
+# the flags for the Pth emulation library.
 
-ax_pthread_flags="pthreads none -Kthread -kthread lthread -pthread -pthreads -mthreads pthread --thread-safe -mt pthread-config"
+ax_pthread_flags="pthreads none -Kthread -pthread -pthreads -mthreads pthread --thread-safe -mt pthread-config"
 
 # The ordering *is* (sometimes) important.  Some notes on the
 # individual items follow:
@@ -132,82 +140,163 @@ ax_pthread_flags="pthreads none -Kthread -kthread lthread -pthread -pthreads -mt
 # none: in case threads are in libc; should be tried before -Kthread and
 #       other compiler flags to prevent continual compiler warnings
 # -Kthread: Sequent (threads in libc, but -Kthread needed for pthread.h)
-# -kthread: FreeBSD kernel threads (preferred to -pthread since SMP-able)
-# lthread: LinuxThreads port on FreeBSD (also preferred to -pthread)
-# -pthread: Linux/gcc (kernel threads), BSD/gcc (userland threads)
-# -pthreads: Solaris/gcc
-# -mthreads: Mingw32/gcc, Lynx/gcc
+# -pthread: Linux/gcc (kernel threads), BSD/gcc (userland threads), Tru64
+#           (Note: HP C rejects this with "bad form for `-t' option")
+# -pthreads: Solaris/gcc (Note: HP C also rejects)
 # -mt: Sun Workshop C (may only link SunOS threads [-lthread], but it
-#      doesn't hurt to check since this sometimes defines pthreads too;
-#      also defines -D_REENTRANT)
-#      ... -mt is also the pthreads flag for HP/aCC
+#      doesn't hurt to check since this sometimes defines pthreads and
+#      -D_REENTRANT too), HP C (must be checked before -lpthread, which
+#      is present but should not be used directly; and before -mthreads,
+#      because the compiler interprets this as "-mt" + "-hreads")
+# -mthreads: Mingw32/gcc, Lynx/gcc
 # pthread: Linux, etcetera
 # --thread-safe: KAI C++
 # pthread-config: use pthread-config program (for GNU Pth library)
 
-case ${host_os} in
+case $host_os in
+
+        freebsd*)
+
+        # -kthread: FreeBSD kernel threads (preferred to -pthread since SMP-able)
+        # lthread: LinuxThreads port on FreeBSD (also preferred to -pthread)
+
+        ax_pthread_flags="-kthread lthread $ax_pthread_flags"
+        ;;
+
+        hpux*)
+
+        # From the cc(1) man page: "[-mt] Sets various -D flags to enable
+        # multi-threading and also sets -lpthread."
+
+        ax_pthread_flags="-mt -pthread pthread $ax_pthread_flags"
+        ;;
+
+        openedition*)
+
+        # IBM z/OS requires a feature-test macro to be defined in order to
+        # enable POSIX threads at all, so give the user a hint if this is
+        # not set. (We don't define these ourselves, as they can affect
+        # other portions of the system API in unpredictable ways.)
+
+        AC_EGREP_CPP([AX_PTHREAD_ZOS_MISSING],
+            [
+#            if !defined(_OPEN_THREADS) && !defined(_UNIX03_THREADS)
+             AX_PTHREAD_ZOS_MISSING
+#            endif
+            ],
+            [AC_MSG_WARN([IBM z/OS requires -D_OPEN_THREADS or -D_UNIX03_THREADS to enable pthreads support.])])
+        ;;
+
         solaris*)
 
         # On Solaris (at least, for some versions), libc contains stubbed
         # (non-functional) versions of the pthreads routines, so link-based
-        # tests will erroneously succeed.  (We need to link with -pthreads/-mt/
-        # -lpthread.)  (The stubs are missing pthread_cleanup_push, or rather
-        # a function called by this macro, so we could check for that, but
-        # who knows whether they'll stub that too in a future libc.)  So,
-        # we'll just look for -pthreads and -lpthread first:
+        # tests will erroneously succeed. (N.B.: The stubs are missing
+        # pthread_cleanup_push, or rather a function called by this macro,
+        # so we could check for that, but who knows whether they'll stub
+        # that too in a future libc.)  So we'll check first for the
+        # standard Solaris way of linking pthreads (-mt -lpthread).
+
+        ax_pthread_flags="-mt,-lpthread pthread $ax_pthread_flags"
+        ;;
+esac
+
+# Are we compiling with Clang?
+
+AC_CACHE_CHECK([whether $CC is Clang],
+    [ax_cv_PTHREAD_CLANG],
+    [ax_cv_PTHREAD_CLANG=no
+     # Note that Autoconf sets GCC=yes for Clang as well as GCC
+     if test "x$GCC" = "xyes"; then
+        AC_EGREP_CPP([AX_PTHREAD_CC_IS_CLANG],
+            [/* Note: Clang 2.7 lacks __clang_[a-z]+__ */
+#            if defined(__clang__) && defined(__llvm__)
+             AX_PTHREAD_CC_IS_CLANG
+#            endif
+            ],
+            [ax_cv_PTHREAD_CLANG=yes])
+     fi
+    ])
+ax_pthread_clang="$ax_cv_PTHREAD_CLANG"
+
+
+# GCC generally uses -pthread, or -pthreads on some platforms (e.g. SPARC)
+
+# Note that for GCC and Clang -pthread generally implies -lpthread,
+# except when -nostdlib is passed.
+# This is problematic using libtool to build C++ shared libraries with pthread:
+# [1] https://gcc.gnu.org/bugzilla/show_bug.cgi?id=25460
+# [2] https://bugzilla.redhat.com/show_bug.cgi?id=661333
+# [3] https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=468555
+# To solve this, first try -pthread together with -lpthread for GCC
+
+AS_IF([test "x$GCC" = "xyes"],
+      [ax_pthread_flags="-pthread,-lpthread -pthread -pthreads $ax_pthread_flags"])
+
+# Clang takes -pthread (never supported any other flag), but we'll try with -lpthread first
+
+AS_IF([test "x$ax_pthread_clang" = "xyes"],
+      [ax_pthread_flags="-pthread,-lpthread -pthread"])
 
-        ax_pthread_flags="-pthreads pthread -mt -pthread $ax_pthread_flags"
+
+# The presence of a feature test macro requesting re-entrant function
+# definitions is, on some systems, a strong hint that pthreads support is
+# correctly enabled
+
+case $host_os in
+        darwin* | hpux* | linux* | osf* | solaris*)
+        ax_pthread_check_macro="_REENTRANT"
         ;;
 
-        darwin*)
-        ax_pthread_flags="-pthread $ax_pthread_flags"
+        aix*)
+        ax_pthread_check_macro="_THREAD_SAFE"
         ;;
-esac
 
-# Clang doesn't consider unrecognized options an error unless we specify
-# -Werror. We throw in some extra Clang-specific options to ensure that
-# this doesn't happen for GCC, which also accepts -Werror.
+        *)
+        ax_pthread_check_macro="--"
+        ;;
+esac
+AS_IF([test "x$ax_pthread_check_macro" = "x--"],
+      [ax_pthread_check_cond=0],
+      [ax_pthread_check_cond="!defined($ax_pthread_check_macro)"])
 
-AC_MSG_CHECKING([if compiler needs -Werror to reject unknown flags])
-save_CFLAGS="$CFLAGS"
-ax_pthread_extra_flags="-Werror"
-CFLAGS="$CFLAGS $ax_pthread_extra_flags -Wunknown-warning-option -Wsizeof-array-argument"
-AC_COMPILE_IFELSE([AC_LANG_PROGRAM([int foo(void);],[foo()])],
-                  [AC_MSG_RESULT([yes])],
-                  [ax_pthread_extra_flags=
-                   AC_MSG_RESULT([no])])
-CFLAGS="$save_CFLAGS"
 
-if test x"$ax_pthread_ok" = xno; then
-for flag in $ax_pthread_flags; do
+if test "x$ax_pthread_ok" = "xno"; then
+for ax_pthread_try_flag in $ax_pthread_flags; do
 
-        case $flag in
+        case $ax_pthread_try_flag in
                 none)
                 AC_MSG_CHECKING([whether pthreads work without any flags])
                 ;;
 
+                *,*)
+                PTHREAD_CFLAGS=`echo $ax_pthread_try_flag | sed "s/^\(.*\),\(.*\)$/\1/"`
+                PTHREAD_LIBS=`echo $ax_pthread_try_flag | sed "s/^\(.*\),\(.*\)$/\2/"`
+                AC_MSG_CHECKING([whether pthreads work with "$PTHREAD_CFLAGS" and "$PTHREAD_LIBS"])
+                ;;
+
                 -*)
-                AC_MSG_CHECKING([whether pthreads work with $flag])
-                PTHREAD_CFLAGS="$flag"
+                AC_MSG_CHECKING([whether pthreads work with $ax_pthread_try_flag])
+                PTHREAD_CFLAGS="$ax_pthread_try_flag"
                 ;;
 
                 pthread-config)
                 AC_CHECK_PROG([ax_pthread_config], [pthread-config], [yes], [no])
-                if test x"$ax_pthread_config" = xno; then continue; fi
+                AS_IF([test "x$ax_pthread_config" = "xno"], [continue])
                 PTHREAD_CFLAGS="`pthread-config --cflags`"
                 PTHREAD_LIBS="`pthread-config --ldflags` `pthread-config --libs`"
                 ;;
 
                 *)
-                AC_MSG_CHECKING([for the pthreads library -l$flag])
-                PTHREAD_LIBS="-l$flag"
+                AC_MSG_CHECKING([for the pthreads library -l$ax_pthread_try_flag])
+                PTHREAD_LIBS="-l$ax_pthread_try_flag"
                 ;;
         esac
 
-        save_LIBS="$LIBS"
-        save_CFLAGS="$CFLAGS"
+        ax_pthread_save_CFLAGS="$CFLAGS"
+        ax_pthread_save_LIBS="$LIBS"
+        CFLAGS="$CFLAGS $PTHREAD_CFLAGS"
         LIBS="$PTHREAD_LIBS $LIBS"
-        CFLAGS="$CFLAGS $PTHREAD_CFLAGS $ax_pthread_extra_flags"
 
         # Check for various functions.  We must include pthread.h,
         # since some functions may be macros.  (On the Sequent, we
@@ -218,8 +307,18 @@ for flag in $ax_pthread_flags; do
         # pthread_cleanup_push because it is one of the few pthread
         # functions on Solaris that doesn't have a non-functional libc stub.
         # We try pthread_create on general principles.
+
         AC_LINK_IFELSE([AC_LANG_PROGRAM([#include <pthread.h>
-                        static void routine(void *a) { a = 0; }
+#                       if $ax_pthread_check_cond
+#                        error "$ax_pthread_check_macro must be defined"
+#                       endif
+                        static void *some_global = NULL;
+                        static void routine(void *a)
+                          {
+                             /* To avoid any unused-parameter or
+                                unused-but-set-parameter warning.  */
+                             some_global = a;
+                          }
                         static void *start_routine(void *a) { return a; }],
                        [pthread_t th; pthread_attr_t attr;
                         pthread_create(&th, 0, start_routine, 0);
@@ -227,88 +326,164 @@ for flag in $ax_pthread_flags; do
                         pthread_attr_init(&attr);
                         pthread_cleanup_push(routine, 0);
                         pthread_cleanup_pop(0) /* ; */])],
-                [ax_pthread_ok=yes],
-                [])
+            [ax_pthread_ok=yes],
+            [])
 
-        LIBS="$save_LIBS"
-        CFLAGS="$save_CFLAGS"
+        CFLAGS="$ax_pthread_save_CFLAGS"
+        LIBS="$ax_pthread_save_LIBS"
 
         AC_MSG_RESULT([$ax_pthread_ok])
-        if test "x$ax_pthread_ok" = xyes; then
-                break;
-        fi
+        AS_IF([test "x$ax_pthread_ok" = "xyes"], [break])
 
         PTHREAD_LIBS=""
         PTHREAD_CFLAGS=""
 done
 fi
 
+
+# Clang needs special handling, because older versions handle the -pthread
+# option in a rather... idiosyncratic way
+
+if test "x$ax_pthread_clang" = "xyes"; then
+
+        # Clang takes -pthread; it has never supported any other flag
+
+        # (Note 1: This will need to be revisited if a system that Clang
+        # supports has POSIX threads in a separate library.  This tends not
+        # to be the way of modern systems, but it's conceivable.)
+
+        # (Note 2: On some systems, notably Darwin, -pthread is not needed
+        # to get POSIX threads support; the API is always present and
+        # active.  We could reasonably leave PTHREAD_CFLAGS empty.  But
+        # -pthread does define _REENTRANT, and while the Darwin headers
+        # ignore this macro, third-party headers might not.)
+
+        # However, older versions of Clang make a point of warning the user
+        # that, in an invocation where only linking and no compilation is
+        # taking place, the -pthread option has no effect ("argument unused
+        # during compilation").  They expect -pthread to be passed in only
+        # when source code is being compiled.
+        #
+        # Problem is, this is at odds with the way Automake and most other
+        # C build frameworks function, which is that the same flags used in
+        # compilation (CFLAGS) are also used in linking.  Many systems
+        # supported by AX_PTHREAD require exactly this for POSIX threads
+        # support, and in fact it is often not straightforward to specify a
+        # flag that is used only in the compilation phase and not in
+        # linking.  Such a scenario is extremely rare in practice.
+        #
+        # Even though use of the -pthread flag in linking would only print
+        # a warning, this can be a nuisance for well-run software projects
+        # that build with -Werror.  So if the active version of Clang has
+        # this misfeature, we search for an option to squash it.
+
+        AC_CACHE_CHECK([whether Clang needs flag to prevent "argument unused" warning when linking with -pthread],
+            [ax_cv_PTHREAD_CLANG_NO_WARN_FLAG],
+            [ax_cv_PTHREAD_CLANG_NO_WARN_FLAG=unknown
+             # Create an alternate version of $ac_link that compiles and
+             # links in two steps (.c -> .o, .o -> exe) instead of one
+             # (.c -> exe), because the warning occurs only in the second
+             # step
+             ax_pthread_save_ac_link="$ac_link"
+             ax_pthread_sed='s/conftest\.\$ac_ext/conftest.$ac_objext/g'
+             ax_pthread_link_step=`$as_echo "$ac_link" | sed "$ax_pthread_sed"`
+             ax_pthread_2step_ac_link="($ac_compile) && (echo ==== >&5) && ($ax_pthread_link_step)"
+             ax_pthread_save_CFLAGS="$CFLAGS"
+             for ax_pthread_try in '' -Qunused-arguments -Wno-unused-command-line-argument unknown; do
+                AS_IF([test "x$ax_pthread_try" = "xunknown"], [break])
+                CFLAGS="-Werror -Wunknown-warning-option $ax_pthread_try -pthread $ax_pthread_save_CFLAGS"
+                ac_link="$ax_pthread_save_ac_link"
+                AC_LINK_IFELSE([AC_LANG_SOURCE([[int main(void){return 0;}]])],
+                    [ac_link="$ax_pthread_2step_ac_link"
+                     AC_LINK_IFELSE([AC_LANG_SOURCE([[int main(void){return 0;}]])],
+                         [break])
+                    ])
+             done
+             ac_link="$ax_pthread_save_ac_link"
+             CFLAGS="$ax_pthread_save_CFLAGS"
+             AS_IF([test "x$ax_pthread_try" = "x"], [ax_pthread_try=no])
+             ax_cv_PTHREAD_CLANG_NO_WARN_FLAG="$ax_pthread_try"
+            ])
+
+        case "$ax_cv_PTHREAD_CLANG_NO_WARN_FLAG" in
+                no | unknown) ;;
+                *) PTHREAD_CFLAGS="$ax_cv_PTHREAD_CLANG_NO_WARN_FLAG $PTHREAD_CFLAGS" ;;
+        esac
+
+fi # $ax_pthread_clang = yes
+
+
+
 # Various other checks:
-if test "x$ax_pthread_ok" = xyes; then
-        save_LIBS="$LIBS"
-        LIBS="$PTHREAD_LIBS $LIBS"
-        save_CFLAGS="$CFLAGS"
+if test "x$ax_pthread_ok" = "xyes"; then
+        ax_pthread_save_CFLAGS="$CFLAGS"
+        ax_pthread_save_LIBS="$LIBS"
         CFLAGS="$CFLAGS $PTHREAD_CFLAGS"
+        LIBS="$PTHREAD_LIBS $LIBS"
 
         # Detect AIX lossage: JOINABLE attribute is called UNDETACHED.
-        AC_MSG_CHECKING([for joinable pthread attribute])
-        attr_name=unknown
-        for attr in PTHREAD_CREATE_JOINABLE PTHREAD_CREATE_UNDETACHED; do
-            AC_LINK_IFELSE([AC_LANG_PROGRAM([#include <pthread.h>],
-                           [int attr = $attr; return attr /* ; */])],
-                [attr_name=$attr; break],
-                [])
-        done
-        AC_MSG_RESULT([$attr_name])
-        if test "$attr_name" != PTHREAD_CREATE_JOINABLE; then
-            AC_DEFINE_UNQUOTED([PTHREAD_CREATE_JOINABLE], [$attr_name],
-                               [Define to necessary symbol if this constant
-                                uses a non-standard name on your system.])
-        fi
-
-        AC_MSG_CHECKING([if more special flags are required for pthreads])
-        flag=no
-        case ${host_os} in
-            aix* | freebsd* | darwin*) flag="-D_THREAD_SAFE";;
-            osf* | hpux*) flag="-D_REENTRANT";;
-            solaris*)
-            if test "$GCC" = "yes"; then
-                flag="-D_REENTRANT"
-            else
-                # TODO: What about Clang on Solaris?
-                flag="-mt -D_REENTRANT"
-            fi
-            ;;
-        esac
-        AC_MSG_RESULT([$flag])
-        if test "x$flag" != xno; then
-            PTHREAD_CFLAGS="$flag $PTHREAD_CFLAGS"
-        fi
+        AC_CACHE_CHECK([for joinable pthread attribute],
+            [ax_cv_PTHREAD_JOINABLE_ATTR],
+            [ax_cv_PTHREAD_JOINABLE_ATTR=unknown
+             for ax_pthread_attr in PTHREAD_CREATE_JOINABLE PTHREAD_CREATE_UNDETACHED; do
+                 AC_LINK_IFELSE([AC_LANG_PROGRAM([#include <pthread.h>],
+                                                 [int attr = $ax_pthread_attr; return attr /* ; */])],
+                                [ax_cv_PTHREAD_JOINABLE_ATTR=$ax_pthread_attr; break],
+                                [])
+             done
+            ])
+        AS_IF([test "x$ax_cv_PTHREAD_JOINABLE_ATTR" != "xunknown" && \
+               test "x$ax_cv_PTHREAD_JOINABLE_ATTR" != "xPTHREAD_CREATE_JOINABLE" && \
+               test "x$ax_pthread_joinable_attr_defined" != "xyes"],
+              [AC_DEFINE_UNQUOTED([PTHREAD_CREATE_JOINABLE],
+                                  [$ax_cv_PTHREAD_JOINABLE_ATTR],
+                                  [Define to necessary symbol if this constant
+                                   uses a non-standard name on your system.])
+               ax_pthread_joinable_attr_defined=yes
+              ])
+
+        AC_CACHE_CHECK([whether more special flags are required for pthreads],
+            [ax_cv_PTHREAD_SPECIAL_FLAGS],
+            [ax_cv_PTHREAD_SPECIAL_FLAGS=no
+             case $host_os in
+             solaris*)
+             ax_cv_PTHREAD_SPECIAL_FLAGS="-D_POSIX_PTHREAD_SEMANTICS"
+             ;;
+             esac
+            ])
+        AS_IF([test "x$ax_cv_PTHREAD_SPECIAL_FLAGS" != "xno" && \
+               test "x$ax_pthread_special_flags_added" != "xyes"],
+              [PTHREAD_CFLAGS="$ax_cv_PTHREAD_SPECIAL_FLAGS $PTHREAD_CFLAGS"
+               ax_pthread_special_flags_added=yes])
 
         AC_CACHE_CHECK([for PTHREAD_PRIO_INHERIT],
-            [ax_cv_PTHREAD_PRIO_INHERIT], [
-                AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <pthread.h>]],
-                                                [[int i = PTHREAD_PRIO_INHERIT;]])],
-                    [ax_cv_PTHREAD_PRIO_INHERIT=yes],
-                    [ax_cv_PTHREAD_PRIO_INHERIT=no])
+            [ax_cv_PTHREAD_PRIO_INHERIT],
+            [AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <pthread.h>]],
+                                             [[int i = PTHREAD_PRIO_INHERIT;
+                                               return i;]])],
+                            [ax_cv_PTHREAD_PRIO_INHERIT=yes],
+                            [ax_cv_PTHREAD_PRIO_INHERIT=no])
             ])
-        AS_IF([test "x$ax_cv_PTHREAD_PRIO_INHERIT" = "xyes"],
-            [AC_DEFINE([HAVE_PTHREAD_PRIO_INHERIT], [1], [Have PTHREAD_PRIO_INHERIT.])])
+        AS_IF([test "x$ax_cv_PTHREAD_PRIO_INHERIT" = "xyes" && \
+               test "x$ax_pthread_prio_inherit_defined" != "xyes"],
+              [AC_DEFINE([HAVE_PTHREAD_PRIO_INHERIT], [1], [Have PTHREAD_PRIO_INHERIT.])
+               ax_pthread_prio_inherit_defined=yes
+              ])
 
-        LIBS="$save_LIBS"
-        CFLAGS="$save_CFLAGS"
+        CFLAGS="$ax_pthread_save_CFLAGS"
+        LIBS="$ax_pthread_save_LIBS"
 
         # More AIX lossage: compile with *_r variant
-        if test "x$GCC" != xyes; then
+        if test "x$GCC" != "xyes"; then
             case $host_os in
                 aix*)
                 AS_CASE(["x/$CC"],
-                  [x*/c89|x*/c89_128|x*/c99|x*/c99_128|x*/cc|x*/cc128|x*/xlc|x*/xlc_v6|x*/xlc128|x*/xlc128_v6],
-                  [#handle absolute path differently from PATH based program lookup
-                   AS_CASE(["x$CC"],
-                     [x/*],
-                     [AS_IF([AS_EXECUTABLE_P([${CC}_r])],[PTHREAD_CC="${CC}_r"])],
-                     [AC_CHECK_PROGS([PTHREAD_CC],[${CC}_r],[$CC])])])
+                    [x*/c89|x*/c89_128|x*/c99|x*/c99_128|x*/cc|x*/cc128|x*/xlc|x*/xlc_v6|x*/xlc128|x*/xlc128_v6],
+                    [#handle absolute path differently from PATH based program lookup
+                     AS_CASE(["x$CC"],
+                         [x/*],
+                         [AS_IF([AS_EXECUTABLE_P([${CC}_r])],[PTHREAD_CC="${CC}_r"])],
+                         [AC_CHECK_PROGS([PTHREAD_CC],[${CC}_r],[$CC])])])
                 ;;
             esac
         fi
@@ -321,7 +496,7 @@ AC_SUBST([PTHREAD_CFLAGS])
 AC_SUBST([PTHREAD_CC])
 
 # Finally, execute ACTION-IF-FOUND/ACTION-IF-NOT-FOUND:
-if test x"$ax_pthread_ok" = xyes; then
+if test "x$ax_pthread_ok" = "xyes"; then
         ifelse([$1],,[AC_DEFINE([HAVE_PTHREAD],[1],[Define if you have POSIX threads libraries and header files.])],[$1])
         :
 else
index be247bf..e783241 100644 (file)
@@ -1,16 +1,16 @@
-# gettext.m4 serial 66 (gettext-0.18.2)
-dnl Copyright (C) 1995-2014 Free Software Foundation, Inc.
+# gettext.m4 serial 70 (gettext-0.20)
+dnl Copyright (C) 1995-2014, 2016, 2018 Free Software Foundation, Inc.
 dnl This file is free software; the Free 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 This file 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 gettext package is covered by the GNU General Public License.
 dnl They are *not* in the public domain.
 
 dnl Authors:
@@ -20,15 +20,13 @@ 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 INTLSYMBOL must be one of 'external', 'use-libtool'.
+dnl    INTLSYMBOL should be 'external' for packages other than GNU gettext, and
+dnl    'use-libtool' for the packages 'gettext-runtime' and 'gettext-tools'.
 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    AM-DISABLE-SHARED).
 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
@@ -57,19 +55,17 @@ dnl
 AC_DEFUN([AM_GNU_GETTEXT],
 [
   dnl Argument checking.
-  ifelse([$1], [], , [ifelse([$1], [external], , [ifelse([$1], [no-libtool], , [ifelse([$1], [use-libtool], ,
+  ifelse([$1], [], , [ifelse([$1], [external], , [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.])])
+    [errprint([ERROR: Use of AM_GNU_GETTEXT without [external] argument is no longer supported.
+])])
   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], []))
+    ifelse([$1], [external], [no], [yes]))
   gt_NEEDS_INIT
   AM_GNU_GETTEXT_NEED([$2])
 
@@ -91,8 +87,7 @@ AC_DEFUN([AM_GNU_GETTEXT],
   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.
+  dnl Since AC_PROVIDE_IFELSE is not documented, we avoid it.
   ifelse(gt_included_intl, yes, , [
     AC_REQUIRE([AM_ICONV_LINKFLAGS_BODY])
   ])
@@ -161,13 +156,18 @@ changequote([,])dnl
             [AC_LANG_PROGRAM(
                [[
 #include <libintl.h>
-$gt_revision_test_code
+#ifndef __GNU_GETTEXT_SUPPORTED_REVISION
 extern int _nl_msg_cat_cntr;
 extern int *_nl_domain_bindings;
+#define __GNU_GETTEXT_SYMBOL_EXPRESSION (_nl_msg_cat_cntr + *_nl_domain_bindings)
+#else
+#define __GNU_GETTEXT_SYMBOL_EXPRESSION 0
+#endif
+$gt_revision_test_code
                ]],
                [[
 bindtextdomain ("", "");
-return * gettext ("")$gt_expression_test_code + _nl_msg_cat_cntr + *_nl_domain_bindings
+return * gettext ("")$gt_expression_test_code + __GNU_GETTEXT_SYMBOL_EXPRESSION
                ]])],
             [eval "$gt_func_gnugettext_libc=yes"],
             [eval "$gt_func_gnugettext_libc=no"])])
@@ -193,17 +193,22 @@ return * gettext ("")$gt_expression_test_code + _nl_msg_cat_cntr + *_nl_domain_b
               [AC_LANG_PROGRAM(
                  [[
 #include <libintl.h>
-$gt_revision_test_code
+#ifndef __GNU_GETTEXT_SUPPORTED_REVISION
 extern int _nl_msg_cat_cntr;
 extern
 #ifdef __cplusplus
 "C"
 #endif
 const char *_nl_expand_alias (const char *);
+#define __GNU_GETTEXT_SYMBOL_EXPRESSION (_nl_msg_cat_cntr + *_nl_expand_alias (""))
+#else
+#define __GNU_GETTEXT_SYMBOL_EXPRESSION 0
+#endif
+$gt_revision_test_code
                  ]],
                  [[
 bindtextdomain ("", "");
-return * gettext ("")$gt_expression_test_code + _nl_msg_cat_cntr + *_nl_expand_alias ("")
+return * gettext ("")$gt_expression_test_code + __GNU_GETTEXT_SYMBOL_EXPRESSION
                  ]])],
               [eval "$gt_func_gnugettext_libintl=yes"],
               [eval "$gt_func_gnugettext_libintl=no"])
@@ -214,17 +219,22 @@ return * gettext ("")$gt_expression_test_code + _nl_msg_cat_cntr + *_nl_expand_a
                 [AC_LANG_PROGRAM(
                    [[
 #include <libintl.h>
-$gt_revision_test_code
+#ifndef __GNU_GETTEXT_SUPPORTED_REVISION
 extern int _nl_msg_cat_cntr;
 extern
 #ifdef __cplusplus
 "C"
 #endif
 const char *_nl_expand_alias (const char *);
+#define __GNU_GETTEXT_SYMBOL_EXPRESSION (_nl_msg_cat_cntr + *_nl_expand_alias (""))
+#else
+#define __GNU_GETTEXT_SYMBOL_EXPRESSION 0
+#endif
+$gt_revision_test_code
                    ]],
                    [[
 bindtextdomain ("", "");
-return * gettext ("")$gt_expression_test_code + _nl_msg_cat_cntr + *_nl_expand_alias ("")
+return * gettext ("")$gt_expression_test_code + __GNU_GETTEXT_SYMBOL_EXPRESSION
                    ]])],
                 [LIBINTL="$LIBINTL $LIBICONV"
                  LTLIBINTL="$LTLIBINTL $LTLIBICONV"
@@ -263,8 +273,8 @@ return * gettext ("")$gt_expression_test_code + _nl_msg_cat_cntr + *_nl_expand_a
         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"
+        LIBINTL="ifelse([$3],[],\${top_builddir}/intl,[$3])/libintl.la $LIBICONV $LIBTHREAD"
+        LTLIBINTL="ifelse([$3],[],\${top_builddir}/intl,[$3])/libintl.la $LTLIBICONV $LTLIBTHREAD"
         LIBS=`echo " $LIBS " | sed -e 's/ -lintl / /' -e 's/^ //' -e 's/ $//'`
       fi
 
@@ -332,43 +342,14 @@ return * gettext ("")$gt_expression_test_code + _nl_msg_cat_cntr + *_nl_expand_a
   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 In GNU gettext we have to set BUILD_INCLUDED_LIBINTL to 'yes'
+    dnl because some of the testsuite requires it.
+    BUILD_INCLUDED_LIBINTL=yes
 
     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.
@@ -399,3 +380,7 @@ AC_DEFUN([AM_GNU_GETTEXT_NEED],
 
 dnl Usage: AM_GNU_GETTEXT_VERSION([gettext-version])
 AC_DEFUN([AM_GNU_GETTEXT_VERSION], [])
+
+
+dnl Usage: AM_GNU_GETTEXT_REQUIRE_VERSION([gettext-version])
+AC_DEFUN([AM_GNU_GETTEXT_REQUIRE_VERSION], [])
diff --git a/m4/host-cpu-c-abi.m4 b/m4/host-cpu-c-abi.m4
new file mode 100644 (file)
index 0000000..4407296
--- /dev/null
@@ -0,0 +1,644 @@
+# host-cpu-c-abi.m4 serial 11
+dnl Copyright (C) 2002-2019 Free Software Foundation, Inc.
+dnl This file is free software; the Free Software Foundation
+dnl gives unlimited permission to copy and/or distribute it,
+dnl with or without modifications, as long as this notice is preserved.
+
+dnl From Bruno Haible and Sam Steingold.
+
+dnl Sets the HOST_CPU variable to the canonical name of the CPU.
+dnl Sets the HOST_CPU_C_ABI variable to the canonical name of the CPU with its
+dnl C language ABI (application binary interface).
+dnl Also defines __${HOST_CPU}__ and __${HOST_CPU_C_ABI}__ as C macros in
+dnl config.h.
+dnl
+dnl This canonical name can be used to select a particular assembly language
+dnl source file that will interoperate with C code on the given host.
+dnl
+dnl For example:
+dnl * 'i386' and 'sparc' are different canonical names, because code for i386
+dnl   will not run on SPARC CPUs and vice versa. They have different
+dnl   instruction sets.
+dnl * 'sparc' and 'sparc64' are different canonical names, because code for
+dnl   'sparc' and code for 'sparc64' cannot be linked together: 'sparc' code
+dnl   contains 32-bit instructions, whereas 'sparc64' code contains 64-bit
+dnl   instructions. A process on a SPARC CPU can be in 32-bit mode or in 64-bit
+dnl   mode, but not both.
+dnl * 'mips' and 'mipsn32' are different canonical names, because they use
+dnl   different argument passing and return conventions for C functions, and
+dnl   although the instruction set of 'mips' is a large subset of the
+dnl   instruction set of 'mipsn32'.
+dnl * 'mipsn32' and 'mips64' are different canonical names, because they use
+dnl   different sizes for the C types like 'int' and 'void *', and although
+dnl   the instruction sets of 'mipsn32' and 'mips64' are the same.
+dnl * The same canonical name is used for different endiannesses. You can
+dnl   determine the endianness through preprocessor symbols:
+dnl   - 'arm': test __ARMEL__.
+dnl   - 'mips', 'mipsn32', 'mips64': test _MIPSEB vs. _MIPSEL.
+dnl   - 'powerpc64': test _BIG_ENDIAN vs. _LITTLE_ENDIAN.
+dnl * The same name 'i386' is used for CPUs of type i386, i486, i586
+dnl   (Pentium), AMD K7, Pentium II, Pentium IV, etc., because
+dnl   - Instructions that do not exist on all of these CPUs (cmpxchg,
+dnl     MMX, SSE, SSE2, 3DNow! etc.) are not frequently used. If your
+dnl     assembly language source files use such instructions, you will
+dnl     need to make the distinction.
+dnl   - Speed of execution of the common instruction set is reasonable across
+dnl     the entire family of CPUs. If you have assembly language source files
+dnl     that are optimized for particular CPU types (like GNU gmp has), you
+dnl     will need to make the distinction.
+dnl   See <https://en.wikipedia.org/wiki/X86_instruction_listings>.
+AC_DEFUN([gl_HOST_CPU_C_ABI],
+[
+  AC_REQUIRE([AC_CANONICAL_HOST])
+  AC_REQUIRE([gl_C_ASM])
+  AC_CACHE_CHECK([host CPU and C ABI], [gl_cv_host_cpu_c_abi],
+    [case "$host_cpu" in
+
+changequote(,)dnl
+       i[4567]86 )
+changequote([,])dnl
+         gl_cv_host_cpu_c_abi=i386
+         ;;
+
+       x86_64 )
+         # On x86_64 systems, the C compiler may be generating code in one of
+         # these ABIs:
+         # - 64-bit instruction set, 64-bit pointers, 64-bit 'long': x86_64.
+         # - 64-bit instruction set, 64-bit pointers, 32-bit 'long': x86_64
+         #   with native Windows (mingw, MSVC).
+         # - 64-bit instruction set, 32-bit pointers, 32-bit 'long': x86_64-x32.
+         # - 32-bit instruction set, 32-bit pointers, 32-bit 'long': i386.
+         AC_COMPILE_IFELSE(
+           [AC_LANG_SOURCE(
+              [[#if (defined __x86_64__ || defined __amd64__ \
+                     || defined _M_X64 || defined _M_AMD64)
+                 int ok;
+                #else
+                 error fail
+                #endif
+              ]])],
+           [AC_COMPILE_IFELSE(
+              [AC_LANG_SOURCE(
+                 [[#if defined __ILP32__ || defined _ILP32
+                    int ok;
+                   #else
+                    error fail
+                   #endif
+                 ]])],
+              [gl_cv_host_cpu_c_abi=x86_64-x32],
+              [gl_cv_host_cpu_c_abi=x86_64])],
+           [gl_cv_host_cpu_c_abi=i386])
+         ;;
+
+changequote(,)dnl
+       alphaev[4-8] | alphaev56 | alphapca5[67] | alphaev6[78] )
+changequote([,])dnl
+         gl_cv_host_cpu_c_abi=alpha
+         ;;
+
+       arm* | aarch64 )
+         # Assume arm with EABI.
+         # On arm64 systems, the C compiler may be generating code in one of
+         # these ABIs:
+         # - aarch64 instruction set, 64-bit pointers, 64-bit 'long': arm64.
+         # - aarch64 instruction set, 32-bit pointers, 32-bit 'long': arm64-ilp32.
+         # - 32-bit instruction set, 32-bit pointers, 32-bit 'long': arm or armhf.
+         AC_COMPILE_IFELSE(
+           [AC_LANG_SOURCE(
+              [[#ifdef __aarch64__
+                 int ok;
+                #else
+                 error fail
+                #endif
+              ]])],
+           [AC_COMPILE_IFELSE(
+              [AC_LANG_SOURCE(
+                [[#if defined __ILP32__ || defined _ILP32
+                   int ok;
+                  #else
+                   error fail
+                  #endif
+                ]])],
+              [gl_cv_host_cpu_c_abi=arm64-ilp32],
+              [gl_cv_host_cpu_c_abi=arm64])],
+           [# Don't distinguish little-endian and big-endian arm, since they
+            # don't require different machine code for simple operations and
+            # since the user can distinguish them through the preprocessor
+            # defines __ARMEL__ vs. __ARMEB__.
+            # But distinguish arm which passes floating-point arguments and
+            # return values in integer registers (r0, r1, ...) - this is
+            # gcc -mfloat-abi=soft or gcc -mfloat-abi=softfp - from arm which
+            # passes them in float registers (s0, s1, ...) and double registers
+            # (d0, d1, ...) - this is gcc -mfloat-abi=hard. GCC 4.6 or newer
+            # sets the preprocessor defines __ARM_PCS (for the first case) and
+            # __ARM_PCS_VFP (for the second case), but older GCC does not.
+            echo 'double ddd; void func (double dd) { ddd = dd; }' > conftest.c
+            # Look for a reference to the register d0 in the .s file.
+            AC_TRY_COMMAND(${CC-cc} $CFLAGS $CPPFLAGS $gl_c_asm_opt conftest.c) >/dev/null 2>&1
+            if LC_ALL=C grep 'd0,' conftest.$gl_asmext >/dev/null; then
+              gl_cv_host_cpu_c_abi=armhf
+            else
+              gl_cv_host_cpu_c_abi=arm
+            fi
+            rm -f conftest*
+           ])
+         ;;
+
+       hppa1.0 | hppa1.1 | hppa2.0* | hppa64 )
+         # On hppa, the C compiler may be generating 32-bit code or 64-bit
+         # code. In the latter case, it defines _LP64 and __LP64__.
+         AC_COMPILE_IFELSE(
+           [AC_LANG_SOURCE(
+              [[#ifdef __LP64__
+                 int ok;
+                #else
+                 error fail
+                #endif
+              ]])],
+           [gl_cv_host_cpu_c_abi=hppa64],
+           [gl_cv_host_cpu_c_abi=hppa])
+         ;;
+
+       ia64* )
+         # On ia64 on HP-UX, the C compiler may be generating 64-bit code or
+         # 32-bit code. In the latter case, it defines _ILP32.
+         AC_COMPILE_IFELSE(
+           [AC_LANG_SOURCE(
+              [[#ifdef _ILP32
+                 int ok;
+                #else
+                 error fail
+                #endif
+              ]])],
+           [gl_cv_host_cpu_c_abi=ia64-ilp32],
+           [gl_cv_host_cpu_c_abi=ia64])
+         ;;
+
+       mips* )
+         # We should also check for (_MIPS_SZPTR == 64), but gcc keeps this
+         # at 32.
+         AC_COMPILE_IFELSE(
+           [AC_LANG_SOURCE(
+              [[#if defined _MIPS_SZLONG && (_MIPS_SZLONG == 64)
+                 int ok;
+                #else
+                 error fail
+                #endif
+              ]])],
+           [gl_cv_host_cpu_c_abi=mips64],
+           [# In the n32 ABI, _ABIN32 is defined, _ABIO32 is not defined (but
+            # may later get defined by <sgidefs.h>), and _MIPS_SIM == _ABIN32.
+            # In the 32 ABI, _ABIO32 is defined, _ABIN32 is not defined (but
+            # may later get defined by <sgidefs.h>), and _MIPS_SIM == _ABIO32.
+            AC_COMPILE_IFELSE(
+              [AC_LANG_SOURCE(
+                 [[#if (_MIPS_SIM == _ABIN32)
+                    int ok;
+                   #else
+                    error fail
+                   #endif
+                 ]])],
+              [gl_cv_host_cpu_c_abi=mipsn32],
+              [gl_cv_host_cpu_c_abi=mips])])
+         ;;
+
+       powerpc* )
+         # Different ABIs are in use on AIX vs. Mac OS X vs. Linux,*BSD.
+         # No need to distinguish them here; the caller may distinguish
+         # them based on the OS.
+         # On powerpc64 systems, the C compiler may still be generating
+         # 32-bit code. And on powerpc-ibm-aix systems, the C compiler may
+         # be generating 64-bit code.
+         AC_COMPILE_IFELSE(
+           [AC_LANG_SOURCE(
+              [[#if defined __powerpc64__ || defined _ARCH_PPC64
+                 int ok;
+                #else
+                 error fail
+                #endif
+              ]])],
+           [# On powerpc64, there are two ABIs on Linux: The AIX compatible
+            # one and the ELFv2 one. The latter defines _CALL_ELF=2.
+            AC_COMPILE_IFELSE(
+              [AC_LANG_SOURCE(
+                 [[#if defined _CALL_ELF && _CALL_ELF == 2
+                    int ok;
+                   #else
+                    error fail
+                   #endif
+                 ]])],
+              [gl_cv_host_cpu_c_abi=powerpc64-elfv2],
+              [gl_cv_host_cpu_c_abi=powerpc64])
+           ],
+           [gl_cv_host_cpu_c_abi=powerpc])
+         ;;
+
+       rs6000 )
+         gl_cv_host_cpu_c_abi=powerpc
+         ;;
+
+       riscv32 | riscv64 )
+         # There are 2 architectures (with variants): rv32* and rv64*.
+         AC_COMPILE_IFELSE(
+           [AC_LANG_SOURCE(
+              [[#if __riscv_xlen == 64
+                  int ok;
+                #else
+                  error fail
+                #endif
+              ]])],
+           [cpu=riscv64],
+           [cpu=riscv32])
+         # There are 6 ABIs: ilp32, ilp32f, ilp32d, lp64, lp64f, lp64d.
+         # Size of 'long' and 'void *':
+         AC_COMPILE_IFELSE(
+           [AC_LANG_SOURCE(
+              [[#if defined __LP64__
+                  int ok;
+                #else
+                  error fail
+                #endif
+              ]])],
+           [main_abi=lp64],
+           [main_abi=ilp32])
+         # Float ABIs:
+         # __riscv_float_abi_double:
+         #   'float' and 'double' are passed in floating-point registers.
+         # __riscv_float_abi_single:
+         #   'float' are passed in floating-point registers.
+         # __riscv_float_abi_soft:
+         #   No values are passed in floating-point registers.
+         AC_COMPILE_IFELSE(
+           [AC_LANG_SOURCE(
+              [[#if defined __riscv_float_abi_double
+                  int ok;
+                #else
+                  error fail
+                #endif
+              ]])],
+           [float_abi=d],
+           [AC_COMPILE_IFELSE(
+              [AC_LANG_SOURCE(
+                 [[#if defined __riscv_float_abi_single
+                     int ok;
+                   #else
+                     error fail
+                   #endif
+                 ]])],
+              [float_abi=f],
+              [float_abi=''])
+           ])
+         gl_cv_host_cpu_c_abi="${cpu}-${main_abi}${float_abi}"
+         ;;
+
+       s390* )
+         # On s390x, the C compiler may be generating 64-bit (= s390x) code
+         # or 31-bit (= s390) code.
+         AC_COMPILE_IFELSE(
+           [AC_LANG_SOURCE(
+              [[#if defined __LP64__ || defined __s390x__
+                  int ok;
+                #else
+                  error fail
+                #endif
+              ]])],
+           [gl_cv_host_cpu_c_abi=s390x],
+           [gl_cv_host_cpu_c_abi=s390])
+         ;;
+
+       sparc | sparc64 )
+         # UltraSPARCs running Linux have `uname -m` = "sparc64", but the
+         # C compiler still generates 32-bit code.
+         AC_COMPILE_IFELSE(
+           [AC_LANG_SOURCE(
+              [[#if defined __sparcv9 || defined __arch64__
+                 int ok;
+                #else
+                 error fail
+                #endif
+              ]])],
+           [gl_cv_host_cpu_c_abi=sparc64],
+           [gl_cv_host_cpu_c_abi=sparc])
+         ;;
+
+       *)
+         gl_cv_host_cpu_c_abi="$host_cpu"
+         ;;
+     esac
+    ])
+
+  dnl In most cases, $HOST_CPU and $HOST_CPU_C_ABI are the same.
+  HOST_CPU=`echo "$gl_cv_host_cpu_c_abi" | sed -e 's/-.*//'`
+  HOST_CPU_C_ABI="$gl_cv_host_cpu_c_abi"
+  AC_SUBST([HOST_CPU])
+  AC_SUBST([HOST_CPU_C_ABI])
+
+  # This was
+  #   AC_DEFINE_UNQUOTED([__${HOST_CPU}__])
+  #   AC_DEFINE_UNQUOTED([__${HOST_CPU_C_ABI}__])
+  # earlier, but KAI C++ 3.2d doesn't like this.
+  sed -e 's/-/_/g' >> confdefs.h <<EOF
+#ifndef __${HOST_CPU}__
+#define __${HOST_CPU}__ 1
+#endif
+#ifndef __${HOST_CPU_C_ABI}__
+#define __${HOST_CPU_C_ABI}__ 1
+#endif
+EOF
+  AH_TOP([/* CPU and C ABI indicator */
+#ifndef __i386__
+#undef __i386__
+#endif
+#ifndef __x86_64_x32__
+#undef __x86_64_x32__
+#endif
+#ifndef __x86_64__
+#undef __x86_64__
+#endif
+#ifndef __alpha__
+#undef __alpha__
+#endif
+#ifndef __arm__
+#undef __arm__
+#endif
+#ifndef __armhf__
+#undef __armhf__
+#endif
+#ifndef __arm64_ilp32__
+#undef __arm64_ilp32__
+#endif
+#ifndef __arm64__
+#undef __arm64__
+#endif
+#ifndef __hppa__
+#undef __hppa__
+#endif
+#ifndef __hppa64__
+#undef __hppa64__
+#endif
+#ifndef __ia64_ilp32__
+#undef __ia64_ilp32__
+#endif
+#ifndef __ia64__
+#undef __ia64__
+#endif
+#ifndef __m68k__
+#undef __m68k__
+#endif
+#ifndef __mips__
+#undef __mips__
+#endif
+#ifndef __mipsn32__
+#undef __mipsn32__
+#endif
+#ifndef __mips64__
+#undef __mips64__
+#endif
+#ifndef __powerpc__
+#undef __powerpc__
+#endif
+#ifndef __powerpc64__
+#undef __powerpc64__
+#endif
+#ifndef __powerpc64_elfv2__
+#undef __powerpc64_elfv2__
+#endif
+#ifndef __riscv32__
+#undef __riscv32__
+#endif
+#ifndef __riscv64__
+#undef __riscv64__
+#endif
+#ifndef __riscv32_ilp32__
+#undef __riscv32_ilp32__
+#endif
+#ifndef __riscv32_ilp32f__
+#undef __riscv32_ilp32f__
+#endif
+#ifndef __riscv32_ilp32d__
+#undef __riscv32_ilp32d__
+#endif
+#ifndef __riscv64_ilp32__
+#undef __riscv64_ilp32__
+#endif
+#ifndef __riscv64_ilp32f__
+#undef __riscv64_ilp32f__
+#endif
+#ifndef __riscv64_ilp32d__
+#undef __riscv64_ilp32d__
+#endif
+#ifndef __riscv64_lp64__
+#undef __riscv64_lp64__
+#endif
+#ifndef __riscv64_lp64f__
+#undef __riscv64_lp64f__
+#endif
+#ifndef __riscv64_lp64d__
+#undef __riscv64_lp64d__
+#endif
+#ifndef __s390__
+#undef __s390__
+#endif
+#ifndef __s390x__
+#undef __s390x__
+#endif
+#ifndef __sh__
+#undef __sh__
+#endif
+#ifndef __sparc__
+#undef __sparc__
+#endif
+#ifndef __sparc64__
+#undef __sparc64__
+#endif
+])
+
+])
+
+
+dnl Sets the HOST_CPU_C_ABI_32BIT variable to 'yes' if the C language ABI
+dnl (application binary interface) is a 32-bit one, or to 'no' otherwise.
+dnl This is a simplified variant of gl_HOST_CPU_C_ABI.
+AC_DEFUN([gl_HOST_CPU_C_ABI_32BIT],
+[
+  AC_REQUIRE([AC_CANONICAL_HOST])
+  AC_CACHE_CHECK([32-bit host C ABI], [gl_cv_host_cpu_c_abi_32bit],
+    [if test -n "$gl_cv_host_cpu_c_abi"; then
+       case "$gl_cv_host_cpu_c_abi" in
+         i386 | x86_64-x32 | arm | armhf | arm64-ilp32 | hppa | ia64-ilp32 | mips | mipsn32 | powerpc | riscv*-ilp32* | s390 | sparc)
+           gl_cv_host_cpu_c_abi_32bit=yes ;;
+         *)
+           gl_cv_host_cpu_c_abi_32bit=no ;;
+       esac
+     else
+       case "$host_cpu" in
+
+changequote(,)dnl
+         i[4567]86 )
+changequote([,])dnl
+           gl_cv_host_cpu_c_abi_32bit=yes
+           ;;
+
+         x86_64 )
+           # On x86_64 systems, the C compiler may be generating code in one of
+           # these ABIs:
+           # - 64-bit instruction set, 64-bit pointers, 64-bit 'long': x86_64.
+           # - 64-bit instruction set, 64-bit pointers, 32-bit 'long': x86_64
+           #   with native Windows (mingw, MSVC).
+           # - 64-bit instruction set, 32-bit pointers, 32-bit 'long': x86_64-x32.
+           # - 32-bit instruction set, 32-bit pointers, 32-bit 'long': i386.
+           AC_COMPILE_IFELSE(
+             [AC_LANG_SOURCE(
+                [[#if (defined __x86_64__ || defined __amd64__ \
+                       || defined _M_X64 || defined _M_AMD64) \
+                      && !(defined __ILP32__ || defined _ILP32)
+                   int ok;
+                  #else
+                   error fail
+                  #endif
+                ]])],
+             [gl_cv_host_cpu_c_abi_32bit=no],
+             [gl_cv_host_cpu_c_abi_32bit=yes])
+           ;;
+
+         arm* | aarch64 )
+           # Assume arm with EABI.
+           # On arm64 systems, the C compiler may be generating code in one of
+           # these ABIs:
+           # - aarch64 instruction set, 64-bit pointers, 64-bit 'long': arm64.
+           # - aarch64 instruction set, 32-bit pointers, 32-bit 'long': arm64-ilp32.
+           # - 32-bit instruction set, 32-bit pointers, 32-bit 'long': arm or armhf.
+           AC_COMPILE_IFELSE(
+             [AC_LANG_SOURCE(
+                [[#if defined __aarch64__ && !(defined __ILP32__ || defined _ILP32)
+                   int ok;
+                  #else
+                   error fail
+                  #endif
+                ]])],
+             [gl_cv_host_cpu_c_abi_32bit=no],
+             [gl_cv_host_cpu_c_abi_32bit=yes])
+           ;;
+
+         hppa1.0 | hppa1.1 | hppa2.0* | hppa64 )
+           # On hppa, the C compiler may be generating 32-bit code or 64-bit
+           # code. In the latter case, it defines _LP64 and __LP64__.
+           AC_COMPILE_IFELSE(
+             [AC_LANG_SOURCE(
+                [[#ifdef __LP64__
+                   int ok;
+                  #else
+                   error fail
+                  #endif
+                ]])],
+             [gl_cv_host_cpu_c_abi_32bit=no],
+             [gl_cv_host_cpu_c_abi_32bit=yes])
+           ;;
+
+         ia64* )
+           # On ia64 on HP-UX, the C compiler may be generating 64-bit code or
+           # 32-bit code. In the latter case, it defines _ILP32.
+           AC_COMPILE_IFELSE(
+             [AC_LANG_SOURCE(
+                [[#ifdef _ILP32
+                   int ok;
+                  #else
+                   error fail
+                  #endif
+                ]])],
+             [gl_cv_host_cpu_c_abi_32bit=yes],
+             [gl_cv_host_cpu_c_abi_32bit=no])
+           ;;
+
+         mips* )
+           # We should also check for (_MIPS_SZPTR == 64), but gcc keeps this
+           # at 32.
+           AC_COMPILE_IFELSE(
+             [AC_LANG_SOURCE(
+                [[#if defined _MIPS_SZLONG && (_MIPS_SZLONG == 64)
+                   int ok;
+                  #else
+                   error fail
+                  #endif
+                ]])],
+             [gl_cv_host_cpu_c_abi_32bit=no],
+             [gl_cv_host_cpu_c_abi_32bit=yes])
+           ;;
+
+         powerpc* )
+           # Different ABIs are in use on AIX vs. Mac OS X vs. Linux,*BSD.
+           # No need to distinguish them here; the caller may distinguish
+           # them based on the OS.
+           # On powerpc64 systems, the C compiler may still be generating
+           # 32-bit code. And on powerpc-ibm-aix systems, the C compiler may
+           # be generating 64-bit code.
+           AC_COMPILE_IFELSE(
+             [AC_LANG_SOURCE(
+                [[#if defined __powerpc64__ || defined _ARCH_PPC64
+                   int ok;
+                  #else
+                   error fail
+                  #endif
+                ]])],
+             [gl_cv_host_cpu_c_abi_32bit=no],
+             [gl_cv_host_cpu_c_abi_32bit=yes])
+           ;;
+
+         rs6000 )
+           gl_cv_host_cpu_c_abi_32bit=yes
+           ;;
+
+         riscv32 | riscv64 )
+           # There are 6 ABIs: ilp32, ilp32f, ilp32d, lp64, lp64f, lp64d.
+           # Size of 'long' and 'void *':
+           AC_COMPILE_IFELSE(
+             [AC_LANG_SOURCE(
+                [[#if defined __LP64__
+                    int ok;
+                  #else
+                    error fail
+                  #endif
+                ]])],
+             [gl_cv_host_cpu_c_abi_32bit=no],
+             [gl_cv_host_cpu_c_abi_32bit=yes])
+           ;;
+
+         s390* )
+           # On s390x, the C compiler may be generating 64-bit (= s390x) code
+           # or 31-bit (= s390) code.
+           AC_COMPILE_IFELSE(
+             [AC_LANG_SOURCE(
+                [[#if defined __LP64__ || defined __s390x__
+                    int ok;
+                  #else
+                    error fail
+                  #endif
+                ]])],
+             [gl_cv_host_cpu_c_abi_32bit=no],
+             [gl_cv_host_cpu_c_abi_32bit=yes])
+           ;;
+
+         sparc | sparc64 )
+           # UltraSPARCs running Linux have `uname -m` = "sparc64", but the
+           # C compiler still generates 32-bit code.
+           AC_COMPILE_IFELSE(
+             [AC_LANG_SOURCE(
+                [[#if defined __sparcv9 || defined __arch64__
+                   int ok;
+                  #else
+                   error fail
+                  #endif
+                ]])],
+             [gl_cv_host_cpu_c_abi_32bit=no],
+             [gl_cv_host_cpu_c_abi_32bit=yes])
+           ;;
+
+         *)
+           gl_cv_host_cpu_c_abi_32bit=no
+           ;;
+       esac
+     fi
+    ])
+
+  HOST_CPU_C_ABI_32BIT="$gl_cv_host_cpu_c_abi_32bit"
+])
index 4b29c5f..a285e9d 100644 (file)
@@ -1,5 +1,6 @@
-# iconv.m4 serial 18 (gettext-0.18.2)
-dnl Copyright (C) 2000-2002, 2007-2014 Free Software Foundation, Inc.
+# iconv.m4 serial 21
+dnl Copyright (C) 2000-2002, 2007-2014, 2016-2019 Free Software Foundation,
+dnl Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
 dnl with or without modifications, as long as this notice is preserved.
@@ -72,27 +73,33 @@ AC_DEFUN([AM_ICONV_LINK],
       if test $am_cv_lib_iconv = yes; then
         LIBS="$LIBS $LIBICONV"
       fi
-      AC_RUN_IFELSE(
-        [AC_LANG_SOURCE([[
+      am_cv_func_iconv_works=no
+      for ac_iconv_const in '' 'const'; do
+        AC_RUN_IFELSE(
+          [AC_LANG_PROGRAM(
+             [[
 #include <iconv.h>
 #include <string.h>
-int main ()
-{
-  int result = 0;
+
+#ifndef ICONV_CONST
+# define ICONV_CONST $ac_iconv_const
+#endif
+             ]],
+             [[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 */
+        static ICONV_CONST char input[] = "\342\202\254"; /* EURO SIGN */
         char buf[10];
-        const char *inptr = input;
+        ICONV_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,
+                            &inptr, &inbytesleft,
                             &outptr, &outbytesleft);
         if (res == 0)
           result |= 1;
@@ -105,14 +112,14 @@ int main ()
     iconv_t cd_ascii_to_88591 = iconv_open ("ISO8859-1", "646");
     if (cd_ascii_to_88591 != (iconv_t)(-1))
       {
-        static const char input[] = "\263";
+        static ICONV_CONST char input[] = "\263";
         char buf[10];
-        const char *inptr = input;
+        ICONV_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,
+                            &inptr, &inbytesleft,
                             &outptr, &outbytesleft);
         if (res == 0)
           result |= 2;
@@ -124,14 +131,14 @@ int main ()
     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 ICONV_CONST char input[] = "\304";
         static char buf[2] = { (char)0xDE, (char)0xAD };
-        const char *inptr = input;
+        ICONV_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,
+                            &inptr, &inbytesleft,
                             &outptr, &outbytesleft);
         if (res != (size_t)(-1) || outptr - buf > 1 || buf[1] != (char)0xAD)
           result |= 4;
@@ -144,14 +151,14 @@ int main ()
     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";
+        static ICONV_CONST char input[] = "\304rger mit b\366sen B\374bchen ohne Augenma\337";
         char buf[50];
-        const char *inptr = input;
+        ICONV_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,
+                            &inptr, &inbytesleft,
                             &outptr, &outbytesleft);
         if ((int)res > 0)
           result |= 8;
@@ -161,27 +168,36 @@ int main ()
 #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;
+  {
+    /* Try standardized names.  */
+    iconv_t cd1 = iconv_open ("UTF-8", "EUC-JP");
+    /* Try IRIX, OSF/1 names.  */
+    iconv_t cd2 = iconv_open ("UTF-8", "eucJP");
+    /* Try AIX names.  */
+    iconv_t cd3 = iconv_open ("UTF-8", "IBM-eucJP");
+    /* Try HP-UX names.  */
+    iconv_t cd4 = iconv_open ("utf8", "eucJP");
+    if (cd1 == (iconv_t)(-1) && cd2 == (iconv_t)(-1)
+        && cd3 == (iconv_t)(-1) && cd4 == (iconv_t)(-1))
+      result |= 16;
+    if (cd1 != (iconv_t)(-1))
+      iconv_close (cd1);
+    if (cd2 != (iconv_t)(-1))
+      iconv_close (cd2);
+    if (cd3 != (iconv_t)(-1))
+      iconv_close (cd3);
+    if (cd4 != (iconv_t)(-1))
+      iconv_close (cd4);
+  }
   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
-        ])
+]])],
+          [am_cv_func_iconv_works=yes], ,
+          [case "$host_os" in
+             aix* | hpux*) am_cv_func_iconv_works="guessing no" ;;
+             *)            am_cv_func_iconv_works="guessing yes" ;;
+           esac])
+        test "$am_cv_func_iconv_works" = no || break
+      done
       LIBS="$am_save_LIBS"
     ])
     case "$am_cv_func_iconv_works" in
@@ -255,14 +271,18 @@ size_t iconv();
     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
-      ])
+  else
+    dnl When compiling GNU libiconv on a system that does not have iconv yet,
+    dnl pick the POSIX compliant declaration without 'const'.
+    am_cv_proto_iconv_arg1=""
   fi
+  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
+    ])
 ])
index 8a045f6..30e6f50 100644 (file)
@@ -1,23 +1,23 @@
-# intlmacosx.m4 serial 5 (gettext-0.18.2)
-dnl Copyright (C) 2004-2014 Free Software Foundation, Inc.
+# intlmacosx.m4 serial 6 (gettext-0.20)
+dnl Copyright (C) 2004-2014, 2016, 2019 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
 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 This file 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 gettext package is covered by the GNU General Public License.
 dnl They are *not* in the public domain.
 
 dnl Checks for special options needed on Mac OS X.
 dnl Defines INTL_MACOSX_LIBS.
 AC_DEFUN([gt_INTL_MACOSX],
 [
-  dnl Check for API introduced in Mac OS X 10.2.
+  dnl Check for API introduced in Mac OS X 10.4.
   AC_CACHE_CHECK([for CFPreferencesCopyAppValue],
     [gt_cv_func_CFPreferencesCopyAppValue],
     [gt_save_LIBS="$LIBS"
@@ -33,7 +33,7 @@ AC_DEFUN([gt_INTL_MACOSX],
     AC_DEFINE([HAVE_CFPREFERENCESCOPYAPPVALUE], [1],
       [Define to 1 if you have the Mac OS X function CFPreferencesCopyAppValue in the CoreFoundation framework.])
   fi
-  dnl Check for API introduced in Mac OS X 10.3.
+  dnl Check for API introduced in Mac OS X 10.5.
   AC_CACHE_CHECK([for CFLocaleCopyCurrent], [gt_cv_func_CFLocaleCopyCurrent],
     [gt_save_LIBS="$LIBS"
      LIBS="$LIBS -Wl,-framework -Wl,CoreFoundation"
@@ -48,8 +48,24 @@ AC_DEFUN([gt_INTL_MACOSX],
     AC_DEFINE([HAVE_CFLOCALECOPYCURRENT], [1],
       [Define to 1 if you have the Mac OS X function CFLocaleCopyCurrent in the CoreFoundation framework.])
   fi
+  AC_CACHE_CHECK([for CFLocaleCopyPreferredLanguages], [gt_cv_func_CFLocaleCopyPreferredLanguages],
+    [gt_save_LIBS="$LIBS"
+     LIBS="$LIBS -Wl,-framework -Wl,CoreFoundation"
+     AC_LINK_IFELSE(
+       [AC_LANG_PROGRAM(
+          [[#include <CoreFoundation/CFLocale.h>]],
+          [[CFLocaleCopyPreferredLanguages();]])],
+       [gt_cv_func_CFLocaleCopyPreferredLanguages=yes],
+       [gt_cv_func_CFLocaleCopyPreferredLanguages=no])
+     LIBS="$gt_save_LIBS"])
+  if test $gt_cv_func_CFLocaleCopyPreferredLanguages = yes; then
+    AC_DEFINE([HAVE_CFLOCALECOPYPREFERREDLANGUAGES], [1],
+      [Define to 1 if you have the Mac OS X function CFLocaleCopyPreferredLanguages in the CoreFoundation framework.])
+  fi
   INTL_MACOSX_LIBS=
-  if test $gt_cv_func_CFPreferencesCopyAppValue = yes || test $gt_cv_func_CFLocaleCopyCurrent = yes; then
+  if test $gt_cv_func_CFPreferencesCopyAppValue = yes \
+     || test $gt_cv_func_CFLocaleCopyCurrent = yes \
+     || test $gt_cv_func_CFLocaleCopyPreferredLanguages = yes; then
     INTL_MACOSX_LIBS="-Wl,-framework -Wl,CoreFoundation"
   fi
   AC_SUBST([INTL_MACOSX_LIBS])
index ddc569f..a187196 100644 (file)
@@ -1,5 +1,5 @@
-# lib-ld.m4 serial 6
-dnl Copyright (C) 1996-2003, 2009-2014 Free Software Foundation, Inc.
+# lib-ld.m4 serial 9
+dnl Copyright (C) 1996-2003, 2009-2019 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
 dnl with or without modifications, as long as this notice is preserved.
@@ -47,73 +47,122 @@ if test "${PATH_SEPARATOR+set}" != set; then
        }
 fi
 
-ac_prog=ld
-if test "$GCC" = yes; then
-  # Check if gcc -print-prog-name=ld gives a path.
+if test -n "$LD"; then
+  AC_MSG_CHECKING([for ld])
+elif test "$GCC" = yes; then
   AC_MSG_CHECKING([for ld used by $CC])
-  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.
-    [[\\/]]* | ?:[[\\/]]*)
-      re_direlt='/[[^/]][[^/]]*/\.\./'
-      # Canonicalize the pathname 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
-  acl_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
-  for ac_dir in $PATH; do
-    IFS="$acl_save_ifs"
-    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 variants of GNU ld 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
-        ;;
+if test -n "$LD"; then
+  # Let the user override the test with a path.
+  :
+else
+  AC_CACHE_VAL([acl_cv_path_LD],
+  [
+    acl_cv_path_LD= # Final result of this test
+    ac_prog=ld # Program to search in $PATH
+    if test "$GCC" = yes; then
+      # Check if gcc -print-prog-name=ld gives a path.
+      case $host in
+        *-*-mingw*)
+          # gcc leaves a trailing carriage return which upsets mingw
+          acl_output=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;;
+        *)
+          acl_output=`($CC -print-prog-name=ld) 2>&5` ;;
+      esac
+      case $acl_output in
+        # Accept absolute paths.
+        [[\\/]]* | ?:[[\\/]]*)
+          re_direlt='/[[^/]][[^/]]*/\.\./'
+          # Canonicalize the pathname of ld
+          acl_output=`echo "$acl_output" | sed 's%\\\\%/%g'`
+          while echo "$acl_output" | grep "$re_direlt" > /dev/null 2>&1; do
+            acl_output=`echo $acl_output | sed "s%$re_direlt%/%"`
+          done
+          # Got the pathname. No search in PATH is needed.
+          acl_cv_path_LD="$acl_output"
+          ac_prog=
+          ;;
+        "")
+          # If it fails, then pretend we aren't using GCC.
+          ;;
+        *)
+          # If it is relative, then search for the first ld in PATH.
+          with_gnu_ld=unknown
+          ;;
       esac
     fi
-  done
-  IFS="$acl_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 "$ac_prog"; then
+      # Search for $ac_prog in $PATH.
+      acl_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
+      for ac_dir in $PATH; do
+        IFS="$acl_save_ifs"
+        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 variants of GNU ld 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="$acl_save_ifs"
+    fi
+    case $host in
+      *-*-aix*)
+        AC_COMPILE_IFELSE(
+          [AC_LANG_SOURCE(
+             [[#if defined __powerpc64__ || defined _ARCH_PPC64
+                int ok;
+               #else
+                error fail
+               #endif
+             ]])],
+          [# The compiler produces 64-bit code. Add option '-b64' so that the
+           # linker groks 64-bit object files.
+           case "$acl_cv_path_LD " in
+             *" -b64 "*) ;;
+             *) acl_cv_path_LD="$acl_cv_path_LD -b64" ;;
+           esac
+          ], [])
+        ;;
+      sparc64-*-netbsd*)
+        AC_COMPILE_IFELSE(
+          [AC_LANG_SOURCE(
+             [[#if defined __sparcv9 || defined __arch64__
+                int ok;
+               #else
+                error fail
+               #endif
+             ]])],
+          [],
+          [# The compiler produces 32-bit code. Add option '-m elf32_sparc'
+           # so that the linker groks 32-bit object files.
+           case "$acl_cv_path_LD " in
+             *" -m elf32_sparc "*) ;;
+             *) acl_cv_path_LD="$acl_cv_path_LD -m elf32_sparc" ;;
+           esac
+          ])
+        ;;
+    esac
+  ])
+  LD="$acl_cv_path_LD"
+fi
 if test -n "$LD"; then
   AC_MSG_RESULT([$LD])
 else
   AC_MSG_RESULT([no])
+  AC_MSG_ERROR([no acceptable ld found in \$PATH])
 fi
-test -z "$LD" && AC_MSG_ERROR([no acceptable ld found in \$PATH])
 AC_LIB_PROG_LD_GNU
 ])
index 3522d99..0ff1073 100644 (file)
@@ -1,12 +1,12 @@
-# lib-link.m4 serial 26 (gettext-0.18.2)
-dnl Copyright (C) 2001-2014 Free Software Foundation, Inc.
+# lib-link.m4 serial 28
+dnl Copyright (C) 2001-2019 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
 dnl with or without modifications, as long as this notice is preserved.
 
 dnl From Bruno Haible.
 
-AC_PREREQ([2.54])
+AC_PREREQ([2.61])
 
 dnl AC_LIB_LINKFLAGS(name [, dependencies]) searches for libname and
 dnl the libraries corresponding to explicit and implicit dependencies.
@@ -124,8 +124,8 @@ 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])])
+  dnl Complain if config.rpath is missing.
+  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
@@ -187,17 +187,15 @@ AC_DEFUN([AC_LIB_LINKFLAGS_BODY],
   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]],
+  AC_ARG_WITH(PACK[-prefix],
+[[  --with-]]PACK[[-prefix[=DIR]  search for ]PACKLIBS[ in DIR/include and DIR/lib
+  --without-]]PACK[[-prefix     don't search for ]PACKLIBS[ in includedir and libdir]],
 [
     if test "X$withval" = "Xno"; then
       use_additional=no
@@ -211,7 +209,7 @@ AC_DEFUN([AC_LIB_LINKFLAGS_BODY],
         additional_includedir="$withval/include"
         additional_libdir="$withval/$acl_libdirstem"
         if test "$acl_libdirstem2" != "$acl_libdirstem" \
-           && ! test -d "$withval/$acl_libdirstem"; then
+           && test ! -d "$withval/$acl_libdirstem"; then
           additional_libdir="$withval/$acl_libdirstem2"
         fi
       fi
@@ -670,7 +668,6 @@ AC_DEFUN([AC_LIB_LINKFLAGS_BODY],
       LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-R$found_dir"
     done
   fi
-  popdef([P_A_C_K])
   popdef([PACKLIBS])
   popdef([PACKUP])
   popdef([PACK])
index 31f49e4..8adb17b 100644 (file)
@@ -1,18 +1,11 @@
-# lib-prefix.m4 serial 7 (gettext-0.18)
-dnl Copyright (C) 2001-2005, 2008-2014 Free Software Foundation, Inc.
+# lib-prefix.m4 serial 14
+dnl Copyright (C) 2001-2005, 2008-2019 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
 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
@@ -32,9 +25,9 @@ AC_DEFUN([AC_LIB_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],
+  AC_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
@@ -174,51 +167,83 @@ AC_DEFUN([AC_LIB_PREPARE_MULTILIB],
   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=
+  AC_REQUIRE([gl_HOST_CPU_C_ABI_32BIT])
+
   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
-      ;;
+        [AC_COMPILE_IFELSE(
+           [AC_LANG_SOURCE(
+              [[#ifdef _LP64
+                 int ok;
+                #else
+                 error fail
+                #endif
+              ]])],
+           [gl_cv_solaris_64bit=yes],
+           [gl_cv_solaris_64bit=no])
+        ]);;
   esac
-  test -n "$acl_libdirstem2" || acl_libdirstem2="$acl_libdirstem"
+
+  dnl Allow the user to override the result by setting acl_cv_libdirstems.
+  AC_CACHE_CHECK([for the common suffixes of directories in the library search path],
+    [acl_cv_libdirstems],
+    [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 <https://docs.oracle.com/cd/E19253-01/816-5138/dev-env/index.html>.
+         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.
+         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
+         ;;
+       *)
+         dnl If $CC generates code for a 32-bit ABI, the libraries are
+         dnl surely under $prefix/lib, not $prefix/lib64.
+         if test "$HOST_CPU_C_ABI_32BIT" != yes; then
+           dnl The result is a property of the system. However, non-system
+           dnl compilers sometimes have odd library search paths. Therefore
+           dnl prefer asking /usr/bin/gcc, if available, rather than $CC.
+           searchpath=`(if test -f /usr/bin/gcc \
+                           && LC_ALL=C /usr/bin/gcc -print-search-dirs >/dev/null 2>/dev/null; then \
+                          LC_ALL=C /usr/bin/gcc -print-search-dirs; \
+                        else \
+                          LC_ALL=C $CC -print-search-dirs; \
+                        fi) 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
+         fi
+         ;;
+     esac
+     test -n "$acl_libdirstem2" || acl_libdirstem2="$acl_libdirstem"
+     acl_cv_libdirstems="$acl_libdirstem,$acl_libdirstem2"
+    ])
+  # Decompose acl_cv_libdirstems into acl_libdirstem and acl_libdirstem2.
+  acl_libdirstem=`echo "$acl_cv_libdirstems" | sed -e 's/,.*//'`
+  acl_libdirstem2=`echo "$acl_cv_libdirstems" | sed -e '/,/s/.*,//'`
 ])
index 597c604..2b73e38 100644 (file)
@@ -1,6 +1,6 @@
 # libtool.m4 - Configure libtool for the host system. -*-Autoconf-*-
 #
-#   Copyright (C) 1996-2001, 2003-2017 Free Software Foundation, Inc.
+#   Copyright (C) 1996-2001, 2003-2018 Free Software Foundation, Inc.
 #   Written by Gordon Matzigkeit, 1996
 #
 # This file is free software; the Free Software Foundation gives
@@ -219,8 +219,8 @@ esac
 ofile=libtool
 can_build_shared=yes
 
-# All known linkers require a '.a' archive for static linking (except MSVC,
-# which needs '.lib').
+# All known linkers require a '.a' archive for static linking (except MSVC and
+# ICC, which need '.lib').
 libext=a
 
 with_gnu_ld=$lt_cv_prog_gnu_ld
@@ -728,7 +728,6 @@ _LT_CONFIG_SAVE_COMMANDS([
     cat <<_LT_EOF >> "$cfgfile"
 #! $SHELL
 # Generated automatically by $as_me ($PACKAGE) $VERSION
-# Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`:
 # NOTE: Changes made to this file will be lost: look at ltmain.sh.
 
 # Provide generalized library-building support services.
@@ -2587,8 +2586,8 @@ m4_if([$1], [],[
     dynamic_linker='Win32 ld.exe'
     ;;
 
-  *,cl*)
-    # Native MSVC
+  *,cl* | *,icl*)
+    # Native MSVC or ICC
     libname_spec='$name'
     soname_spec='$libname`echo $release | $SED -e 's/[[.]]/-/g'`$versuffix$shared_ext'
     library_names_spec='$libname.dll.lib'
@@ -2644,7 +2643,7 @@ m4_if([$1], [],[
     ;;
 
   *)
-    # Assume MSVC wrapper
+    # Assume MSVC and ICC wrapper
     library_names_spec='$libname`echo $release | $SED -e 's/[[.]]/-/g'`$versuffix$shared_ext $libname.lib'
     dynamic_linker='Win32 ld.exe'
     ;;
@@ -4032,7 +4031,7 @@ for ac_symprfx in "" "_"; do
   if test "$lt_cv_nm_interface" = "MS dumpbin"; then
     # Fake it for dumpbin and say T for any non-static function,
     # D for any global variable and I for any imported variable.
-    # Also find C++ and __fastcall symbols from MSVC++,
+    # Also find C++ and __fastcall symbols from MSVC++ or ICC,
     # which start with @ or ?.
     lt_cv_sys_global_symbol_pipe="$AWK ['"\
 "     {last_section=section; section=\$ 3};"\
@@ -4949,7 +4948,7 @@ m4_if([$1], [CXX], [
     ;;
   cygwin* | mingw* | cegcc*)
     case $cc_basename in
-    cl*)
+    cl* | icl*)
       _LT_TAGVAR(exclude_expsyms, $1)='_NULL_IMPORT_DESCRIPTOR|_IMPORT_DESCRIPTOR_.*'
       ;;
     *)
@@ -5006,15 +5005,15 @@ dnl Note also adjust exclude_expsyms for C++ above.
 
   case $host_os in
   cygwin* | mingw* | pw32* | cegcc*)
-    # FIXME: the MSVC++ port hasn't been tested in a loooong time
+    # FIXME: the MSVC++ and ICC port hasn't been tested in a loooong time
     # When not using gcc, we currently assume that we are using
-    # Microsoft Visual C++.
+    # Microsoft Visual C++ or Intel C++ Compiler.
     if test yes != "$GCC"; then
       with_gnu_ld=no
     fi
     ;;
   interix*)
-    # we just hope/assume this is gcc and not c89 (= MSVC++)
+    # we just hope/assume this is gcc and not c89 (= MSVC++ or ICC)
     with_gnu_ld=yes
     ;;
   openbsd* | bitrig*)
@@ -5579,12 +5578,12 @@ _LT_EOF
 
     cygwin* | mingw* | pw32* | cegcc*)
       # When not using gcc, we currently assume that we are using
-      # Microsoft Visual C++.
+      # Microsoft Visual C++ or Intel C++ Compiler.
       # hardcode_libdir_flag_spec is actually meaningless, as there is
       # no search path for DLLs.
       case $cc_basename in
-      cl*)
-       # Native MSVC
+      cl* | icl*)
+       # Native MSVC or ICC
        _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=' '
        _LT_TAGVAR(allow_undefined_flag, $1)=unsupported
        _LT_TAGVAR(always_export_symbols, $1)=yes
@@ -5625,7 +5624,7 @@ _LT_EOF
           fi'
        ;;
       *)
-       # Assume MSVC wrapper
+       # Assume MSVC and ICC wrapper
        _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=' '
        _LT_TAGVAR(allow_undefined_flag, $1)=unsupported
        # Tell ltmain to make .lib files, not .a files.
@@ -6655,8 +6654,8 @@ if test yes != "$_lt_caught_CXX_error"; then
 
       cygwin* | mingw* | pw32* | cegcc*)
        case $GXX,$cc_basename in
-       ,cl* | no,cl*)
-         # Native MSVC
+       ,cl* | no,cl* | ,icl* | no,icl*)
+         # Native MSVC or ICC
          # hardcode_libdir_flag_spec is actually meaningless, as there is
          # no search path for DLLs.
          _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=' '
index 621bd18..07421d9 100644 (file)
@@ -1,6 +1,6 @@
 # Helper functions for option handling.                    -*- Autoconf -*-
 #
-#   Copyright (C) 2004-2005, 2007-2009, 2011-2017 Free Software
+#   Copyright (C) 2004-2005, 2007-2009, 2011-2018 Free Software
 #   Foundation, Inc.
 #   Written by Gary V. Vaughan, 2004
 #
index ab69a6b..3985c56 100644 (file)
@@ -1,6 +1,6 @@
 # ltsugar.m4 -- libtool m4 base layer.                         -*-Autoconf-*-
 #
-# Copyright (C) 2004-2005, 2007-2008, 2011-2017 Free Software
+# Copyright (C) 2004-2005, 2007-2008, 2011-2018 Free Software
 # Foundation, Inc.
 # Written by Gary V. Vaughan, 2004
 #
index 8250ea4..7f9a3ad 100644 (file)
@@ -1,6 +1,6 @@
 # ltversion.m4 -- version numbers                      -*- Autoconf -*-
 #
-#   Copyright (C) 2004, 2011-2017 Free Software Foundation, Inc.
+#   Copyright (C) 2004, 2011-2018 Free Software Foundation, Inc.
 #   Written by Scott James Remnant, 2004
 #
 # This file is free software; the Free Software Foundation gives
@@ -9,15 +9,15 @@
 
 # @configure_input@
 
-# serial 4219 ltversion.m4
+# serial 4221 ltversion.m4
 # This file is part of GNU Libtool
 
-m4_define([LT_PACKAGE_VERSION], [2.4.6.40-6ca5-dirty])
-m4_define([LT_PACKAGE_REVISION], [2.4.6.40])
+m4_define([LT_PACKAGE_VERSION], [2.4.6.42-b88ce-dirty])
+m4_define([LT_PACKAGE_REVISION], [2.4.6.42])
 
 AC_DEFUN([LTVERSION_VERSION],
-[macro_version='2.4.6.40-6ca5-dirty'
-macro_revision='2.4.6.40'
+[macro_version='2.4.6.42-b88ce-dirty'
+macro_revision='2.4.6.42'
 _LT_DECL(, macro_version, 0, [Which release of libtool.m4 was used?])
 _LT_DECL(, macro_revision, 0)
 ])
index 9919d4d..54ea1c4 100644 (file)
@@ -1,6 +1,6 @@
 # lt~obsolete.m4 -- aclocal satisfying obsolete definitions.    -*-Autoconf-*-
 #
-#   Copyright (C) 2004-2005, 2007, 2009, 2011-2017 Free Software
+#   Copyright (C) 2004-2005, 2007, 2009, 2011-2018 Free Software
 #   Foundation, Inc.
 #   Written by Scott James Remnant, 2004.
 #
index 53cdc8b..b62f614 100644 (file)
--- a/m4/nls.m4
+++ b/m4/nls.m4
@@ -1,17 +1,17 @@
 # nls.m4 serial 5 (gettext-0.18)
-dnl Copyright (C) 1995-2003, 2005-2006, 2008-2014 Free Software Foundation,
-dnl Inc.
+dnl Copyright (C) 1995-2003, 2005-2006, 2008-2014, 2016, 2019 Free Software
+dnl Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
 dnl with or without modifications, as long as this notice is preserved.
 dnl
-dnl This file can can be used in projects which are not available under
+dnl This file 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 gettext package is covered by the GNU General Public License.
 dnl They are *not* in the public domain.
 
 dnl Authors:
index 84659ea..143792d 100644 (file)
--- a/m4/po.m4
+++ b/m4/po.m4
@@ -1,16 +1,16 @@
-# po.m4 serial 22 (gettext-0.19)
-dnl Copyright (C) 1995-2014 Free Software Foundation, Inc.
+# po.m4 serial 30 (gettext-0.20)
+dnl Copyright (C) 1995-2014, 2016, 2018-2019 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
 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 This file 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 gettext package is covered by the GNU General Public License.
 dnl They are *not* in the public domain.
 
 dnl Authors:
@@ -30,7 +30,7 @@ AC_DEFUN([AM_PO_SUBDIRS],
 
   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.19])
+  AC_SUBST([GETTEXT_MACRO_VERSION], [0.20])
 
   dnl Perform the following tests also if --disable-nls has been given,
   dnl because they are needed for "make dist" to work.
@@ -46,13 +46,6 @@ AC_DEFUN([AM_PO_SUBDIRS],
 
   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 ;;
@@ -83,11 +76,21 @@ changequote([,])dnl
   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 Test whether it is GNU msgmerge >= 0.20.
+  if LC_ALL=C $MSGMERGE --help | grep ' --for-msgfmt ' >/dev/null; then
+    MSGMERGE_FOR_MSGFMT_OPTION='--for-msgfmt'
+  else
+    dnl Test whether it is GNU msgmerge >= 0.12.
+    if LC_ALL=C $MSGMERGE --help | grep ' --no-fuzzy-matching ' >/dev/null; then
+      MSGMERGE_FOR_MSGFMT_OPTION='--no-fuzzy-matching --no-location --quiet'
+    else
+      dnl With these old versions, $(MSGMERGE) $(MSGMERGE_FOR_MSGFMT_OPTION) is
+      dnl slow. But this is not a big problem, as such old gettext versions are
+      dnl hardly in use any more.
+      MSGMERGE_FOR_MSGFMT_OPTION='--no-location --quiet'
+    fi
+  fi
+  AC_SUBST([MSGMERGE_FOR_MSGFMT_OPTION])
 
   dnl Support for AM_XGETTEXT_OPTION.
   test -n "${XGETTEXT_EXTRA_OPTIONS+set}" || XGETTEXT_EXTRA_OPTIONS=
@@ -130,14 +133,11 @@ changequote([,])dnl
             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 assignment from automake < 1.5.
-            eval 'ALL_LINGUAS''=$ALL_LINGUAS_'
+            ALL_LINGUAS=`sed -e "/^#/d" -e "s/#.*//" "$ac_given_srcdir/$ac_dir/LINGUAS"`
             POMAKEFILEDEPS="$POMAKEFILEDEPS LINGUAS"
           else
             # The set of available languages was given in configure.in.
-            # Hide the ALL_LINGUAS assignment from automake < 1.5.
-            eval 'ALL_LINGUAS''=$OBSOLETE_ALL_LINGUAS'
+            ALL_LINGUAS=$OBSOLETE_ALL_LINGUAS
           fi
           # Compute POFILES
           # as      $(foreach lang, $(ALL_LINGUAS), $(srcdir)/$(lang).po)
@@ -208,9 +208,8 @@ changequote([,])dnl
       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"'
+    # POFILES, UPDATEPOFILES, DUMMYPOFILES, GMOFILES, CATALOGS.
+    OBSOLETE_ALL_LINGUAS="$ALL_LINGUAS"
     # Capture the value of LINGUAS because we need it to compute CATALOGS.
     LINGUAS="${LINGUAS-%UNSET%}"
    ])
@@ -311,15 +310,13 @@ changequote([,])dnl
   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"`
+    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"`
+    ALL_LINGUAS=`sed -n -e "$sed_x_LINGUAS" < "$ac_file"`
   fi
-  # Hide the ALL_LINGUAS assignment from automake < 1.5.
-  eval 'ALL_LINGUAS''=$ALL_LINGUAS_'
   # Compute POFILES
   # as      $(foreach lang, $(ALL_LINGUAS), $(srcdir)/$(lang).po)
   # Compute UPDATEPOFILES
@@ -329,9 +326,9 @@ changequote([,])dnl
   # Compute GMOFILES
   # as      $(foreach lang, $(ALL_LINGUAS), $(srcdir)/$(lang).gmo)
   # Compute PROPERTIESFILES
-  # as      $(foreach lang, $(ALL_LINGUAS), $(top_srcdir)/$(DOMAIN)_$(lang).properties)
+  # as      $(foreach lang, $(ALL_LINGUAS), $(srcdir)/$(DOMAIN)_$(lang).properties)
   # Compute CLASSFILES
-  # as      $(foreach lang, $(ALL_LINGUAS), $(top_srcdir)/$(DOMAIN)_$(lang).class)
+  # as      $(foreach lang, $(ALL_LINGUAS), $(srcdir)/$(DOMAIN)_$(lang).class)
   # Compute QMFILES
   # as      $(foreach lang, $(ALL_LINGUAS), $(srcdir)/$(lang).qm)
   # Compute MSGFILES
@@ -356,8 +353,8 @@ changequote([,])dnl
     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"
+    PROPERTIESFILES="$PROPERTIESFILES \$(srcdir)/\$(DOMAIN)_$lang.properties"
+    CLASSFILES="$CLASSFILES \$(srcdir)/\$(DOMAIN)_$lang.class"
     QMFILES="$QMFILES $srcdirpre$lang.qm"
     frobbedlang=`echo $lang | sed -e 's/\..*$//' -e 'y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/'`
     MSGFILES="$MSGFILES $srcdirpre$frobbedlang.msg"
index b499f79..5f186b1 100644 (file)
@@ -1,16 +1,16 @@
 # progtest.m4 serial 7 (gettext-0.18.2)
-dnl Copyright (C) 1996-2003, 2005, 2008-2014 Free Software Foundation, Inc.
+dnl Copyright (C) 1996-2003, 2005, 2008-2019 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
 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 This file 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 gettext package is covered by the GNU General Public License.
 dnl They are *not* in the public domain.
 
 dnl Authors:
index 2ab72a2..3030510 100644 (file)
@@ -7,7 +7,7 @@
 #
 #   Checks for tuklib_integer.h:
 #     - Endianness
-#     - Does operating system provide byte swapping macros
+#     - Does the compiler or the operating system provide byte swapping macros
 #     - Does the hardware support fast unaligned access to 16-bit
 #       and 32-bit integers
 #
 AC_DEFUN_ONCE([TUKLIB_INTEGER], [
 AC_REQUIRE([TUKLIB_COMMON])
 AC_REQUIRE([AC_C_BIGENDIAN])
-AC_CHECK_HEADERS([byteswap.h sys/endian.h sys/byteorder.h], [break])
 
-# Even if we have byteswap.h, we may lack the specific macros/functions.
-if test x$ac_cv_header_byteswap_h = xyes ; then
-       m4_foreach([FUNC], [bswap_16,bswap_32,bswap_64], [
-               AC_MSG_CHECKING([if FUNC is available])
-               AC_LINK_IFELSE([AC_LANG_SOURCE([
+AC_MSG_CHECKING([if __builtin_bswap16/32/64 are supported])
+AC_LINK_IFELSE([AC_LANG_PROGRAM([[]],
+                       [[__builtin_bswap16(1);
+                       __builtin_bswap32(1);
+                       __builtin_bswap64(1);]])],
+[
+       AC_DEFINE([HAVE___BUILTIN_BSWAPXX], [1],
+               [Define to 1 if the GNU C extensions
+               __builtin_bswap16/32/64 are supported.])
+       AC_MSG_RESULT([yes])
+], [
+       AC_MSG_RESULT([no])
+
+       # Look for other byteswapping methods.
+       AC_CHECK_HEADERS([byteswap.h sys/endian.h sys/byteorder.h], [break])
+
+       # Even if we have byteswap.h we may lack the specific macros/functions.
+       if test x$ac_cv_header_byteswap_h = xyes ; then
+               m4_foreach([FUNC], [bswap_16,bswap_32,bswap_64], [
+                       AC_MSG_CHECKING([if FUNC is available])
+                       AC_LINK_IFELSE([AC_LANG_SOURCE([
 #include <byteswap.h>
 int
 main(void)
@@ -36,14 +51,15 @@ main(void)
        FUNC[](42);
        return 0;
 }
-               ])], [
-                       AC_DEFINE(HAVE_[]m4_toupper(FUNC), [1],
+                       ])], [
+                               AC_DEFINE(HAVE_[]m4_toupper(FUNC), [1],
                                        [Define to 1 if] FUNC [is available.])
-                       AC_MSG_RESULT([yes])
-               ], [AC_MSG_RESULT([no])])
+                               AC_MSG_RESULT([yes])
+                       ], [AC_MSG_RESULT([no])])
 
-       ])dnl
-fi
+               ])dnl
+       fi
+])
 
 AC_MSG_CHECKING([if unaligned memory access should be used])
 AC_ARG_ENABLE([unaligned-access], AS_HELP_STRING([--enable-unaligned-access],
@@ -71,4 +87,33 @@ if test "x$enable_unaligned_access" = xyes ; then
 else
        AC_MSG_RESULT([no])
 fi
+
+AC_MSG_CHECKING([if unsafe type punning should be used])
+AC_ARG_ENABLE([unsafe-type-punning],
+       AS_HELP_STRING([--enable-unsafe-type-punning],
+               [This introduces strict aliasing violations and may result
+               in broken code. However, this might improve performance in
+               some cases, especially with old compilers (e.g.
+               GCC 3 and early 4.x on x86, GCC < 6 on ARMv6 and ARMv7).]),
+       [], [enable_unsafe_type_punning=no])
+if test "x$enable_unsafe_type_punning" = xyes ; then
+       AC_DEFINE([TUKLIB_USE_UNSAFE_TYPE_PUNNING], [1], [Define to 1 to use
+               unsafe type punning, e.g. char *x = ...; *(int *)x = 123;
+               which violates strict aliasing rules and thus is
+               undefined behavior and might result in broken code.])
+       AC_MSG_RESULT([yes])
+else
+       AC_MSG_RESULT([no])
+fi
+
+AC_MSG_CHECKING([if __builtin_assume_aligned is supported])
+AC_LINK_IFELSE([AC_LANG_PROGRAM([[]], [[__builtin_assume_aligned("", 1);]])],
+       [
+               AC_DEFINE([HAVE___BUILTIN_ASSUME_ALIGNED], [1],
+                       [Define to 1 if the GNU C extension
+                       __builtin_assume_aligned is supported.])
+               AC_MSG_RESULT([yes])
+       ], [
+               AC_MSG_RESULT([no])
+       ])
 ])dnl
index 552e397..9f493ba 100644 (file)
@@ -1,5 +1,5 @@
-# visibility.m4 serial 5 (gettext-0.18.2)
-dnl Copyright (C) 2005, 2008, 2010-2014 Free Software Foundation, Inc.
+# visibility.m4 serial 6
+dnl Copyright (C) 2005, 2008, 2010-2020 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
 dnl with or without modifications, as long as this notice is preserved.
@@ -29,42 +29,42 @@ AC_DEFUN([gl_VISIBILITY],
     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_COMPILE_IFELSE(
-        [AC_LANG_PROGRAM([[]], [[]])],
-        [gl_cv_cc_vis_werror=yes],
-        [gl_cv_cc_vis_werror=no])
-      CFLAGS="$gl_save_CFLAGS"])
-    AC_MSG_RESULT([$gl_cv_cc_vis_werror])
+    AC_CACHE_CHECK([whether the -Werror option is usable],
+      [gl_cv_cc_vis_werror],
+      [gl_save_CFLAGS="$CFLAGS"
+       CFLAGS="$CFLAGS -Werror"
+       AC_COMPILE_IFELSE(
+         [AC_LANG_PROGRAM([[]], [[]])],
+         [gl_cv_cc_vis_werror=yes],
+         [gl_cv_cc_vis_werror=no])
+       CFLAGS="$gl_save_CFLAGS"
+      ])
     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_COMPILE_IFELSE(
-        [AC_LANG_PROGRAM(
-           [[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])
+    AC_CACHE_CHECK([for simple visibility declarations],
+      [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_COMPILE_IFELSE(
+         [AC_LANG_PROGRAM(
+            [[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"
+      ])
     if test $gl_cv_cc_visibility = yes; then
       CFLAG_VISIBILITY="-fvisibility=hidden"
       HAVE_VISIBILITY=1
index e095f6c..5297781 100644 (file)
@@ -1,6 +1,12 @@
 cs
+da
 de
+fi
 fr
+hu
 it
 pl
+pt_BR
 vi
+zh_CN
+zh_TW
index 65184f6..fdb6ad3 100644 (file)
@@ -1,15 +1,14 @@
 # Makefile for PO directory in any package using GNU gettext.
-# Copyright (C) 1995-1997, 2000-2007, 2009-2010 by Ulrich Drepper <drepper@gnu.ai.mit.edu>
+# Copyright (C) 1995-2000 Ulrich Drepper <drepper@gnu.ai.mit.edu>
+# Copyright (C) 2000-2019 Free Software Foundation, Inc.
 #
-# 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.
+# 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 any warranty.
 #
-# Origin: gettext-0.19
-GETTEXT_MACRO_VERSION = 0.19
+# Origin: gettext-0.20
+GETTEXT_MACRO_VERSION = 0.20
 
 PACKAGE = @PACKAGE@
 VERSION = @VERSION@
@@ -45,20 +44,22 @@ install_sh = $(SHELL) @install_sh@
 MKDIR_P = @MKDIR_P@
 mkdir_p = @mkdir_p@
 
+# When building gettext-tools, we prefer to use the built programs
+# rather than installed programs.  However, we can't do that when we
+# are cross compiling.
+CROSS_COMPILING = @CROSS_COMPILING@
+
 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 = @MSGMERGE@
 MSGMERGE_UPDATE = @MSGMERGE@ --update
+MSGMERGE_FOR_MSGFMT_OPTION = @MSGMERGE_FOR_MSGFMT_OPTION@
 MSGINIT = msginit
 MSGCONV = msgconv
 MSGFILTER = msgfilter
@@ -90,17 +91,32 @@ DISTFILESDEPS = $(DISTFILESDEPS_$(DIST_DEPENDS_ON_UPDATE_PO))
 # 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:
+.SUFFIXES: .po .gmo .sed .sin .nop .po-create .po-update
+
+# The .pot file, stamp-po, .po files, and .gmo files appear in release tarballs.
+# The GNU Coding Standards say in
+# <https://www.gnu.org/prep/standards/html_node/Makefile-Basics.html>:
+#   "GNU distributions usually contain some files which are not source files
+#    ... . Since these files normally appear in the source directory, they
+#    should always appear in the source directory, not in the build directory.
+#    So Makefile rules to update them should put the updated files in the
+#    source directory."
+# Therefore we put these files in the source directory, not the build directory.
+
+# During .po -> .gmo conversion, take into account the most recent changes to
+# the .pot file. This eliminates the need to update the .po files when the
+# .pot file has changed, which would be troublesome if the .po files are put
+# under version control.
+.po.gmo: $(srcdir)/$(DOMAIN).pot
        @lang=`echo $* | sed -e 's,.*/,,'`; \
        test "$(srcdir)" = . && cdcmd="" || cdcmd="cd $(srcdir) && "; \
-       echo "$${cdcmd}rm -f $${lang}.gmo && $(GMSGFMT) -c --statistics --verbose -o $${lang}.gmo $${lang}.po"; \
-       cd $(srcdir) && rm -f $${lang}.gmo && $(GMSGFMT) -c --statistics --verbose -o t-$${lang}.gmo $${lang}.po && mv t-$${lang}.gmo $${lang}.gmo
+       echo "$${cdcmd}rm -f $${lang}.gmo && $(MSGMERGE) $(MSGMERGE_FOR_MSGFMT_OPTION) -o $${lang}.1po $${lang}.po $(DOMAIN).pot && $(GMSGFMT) -c --statistics --verbose -o $${lang}.gmo $${lang}.1po && rm -f $${lang}.1po"; \
+       cd $(srcdir) && \
+       rm -f $${lang}.gmo && \
+       $(MSGMERGE) $(MSGMERGE_FOR_MSGFMT_OPTION) -o $${lang}.1po $${lang}.po $(DOMAIN).pot && \
+       $(GMSGFMT) -c --statistics --verbose -o t-$${lang}.gmo $${lang}.1po && \
+       mv t-$${lang}.gmo $${lang}.gmo && \
+       rm -f $${lang}.1po
 
 .sin.sed:
        sed -e '/^#/d' $< > t-$@
@@ -109,7 +125,7 @@ DISTFILESDEPS = $(DISTFILESDEPS_$(DIST_DEPENDS_ON_UPDATE_PO))
 
 all: all-@USE_NLS@
 
-all-yes: stamp-po
+all-yes: $(srcdir)/stamp-po
 all-no:
 
 # Ensure that the gettext macros and this Makefile.in.in are in sync.
@@ -123,24 +139,24 @@ CHECK_MACRO_VERSION = \
 # 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
+# In this case, $(srcdir)/stamp-po is a nop (i.e. a phony target).
+
+# $(srcdir)/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 from a version control system, and the $(DOMAIN).pot
+# file is not under version control, "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.
+$(srcdir)/stamp-po: $(srcdir)/$(DOMAIN).pot
        @$(CHECK_MACRO_VERSION)
        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; \
+         echo "touch $(srcdir)/stamp-po" && \
+         echo timestamp > $(srcdir)/stamp-poT && \
+         mv $(srcdir)/stamp-poT $(srcdir)/stamp-po; \
        }
 
 # Note: Target 'all' must not depend on target '$(DOMAIN).pot-update',
@@ -156,11 +172,9 @@ $(DOMAIN).pot-update: $(POTFILES) $(srcdir)/POTFILES.in remove-potcdate.sed
        package_gnu="$(PACKAGE_GNU)"; \
        test -n "$$package_gnu" || { \
          if { if (LC_ALL=C find --version) 2>/dev/null | grep GNU >/dev/null; then \
-                LC_ALL=C find -L $(top_srcdir) -maxdepth 1 -type f \
-                              -size -10000000c -exec grep 'GNU @PACKAGE@' \
-                              /dev/null '{}' ';' 2>/dev/null; \
+                LC_ALL=C find -L $(top_srcdir) -maxdepth 1 -type f -size -10000000c -exec grep -i 'GNU @PACKAGE@' /dev/null '{}' ';' 2>/dev/null; \
               else \
-                LC_ALL=C grep 'GNU @PACKAGE@' $(top_srcdir)/* 2>/dev/null; \
+                LC_ALL=C grep -i 'GNU @PACKAGE@' $(top_srcdir)/* 2>/dev/null; \
               fi; \
             } | grep -v 'libtool:' >/dev/null; then \
             package_gnu=yes; \
@@ -181,22 +195,30 @@ $(DOMAIN).pot-update: $(POTFILES) $(srcdir)/POTFILES.in remove-potcdate.sed
        case `$(XGETTEXT) --version | sed 1q | sed -e 's,^[^0-9]*,,'` in \
          '' | 0.[0-9] | 0.[0-9].* | 0.1[0-5] | 0.1[0-5].* | 0.16 | 0.16.[0-1]*) \
            $(XGETTEXT) --default-domain=$(DOMAIN) --directory=$(top_srcdir) \
-             --add-comments=TRANSLATORS: $(XGETTEXT_OPTIONS) @XGETTEXT_EXTRA_OPTIONS@ \
+             --add-comments=TRANSLATORS: \
              --files-from=$(srcdir)/POTFILES.in \
              --copyright-holder='$(COPYRIGHT_HOLDER)' \
              --msgid-bugs-address="$$msgid_bugs_address" \
+             $(XGETTEXT_OPTIONS) @XGETTEXT_EXTRA_OPTIONS@ \
            ;; \
          *) \
            $(XGETTEXT) --default-domain=$(DOMAIN) --directory=$(top_srcdir) \
-             --add-comments=TRANSLATORS: $(XGETTEXT_OPTIONS) @XGETTEXT_EXTRA_OPTIONS@ \
+             --add-comments=TRANSLATORS: \
              --files-from=$(srcdir)/POTFILES.in \
              --copyright-holder='$(COPYRIGHT_HOLDER)' \
              --package-name="$${package_prefix}@PACKAGE@" \
              --package-version='@VERSION@' \
              --msgid-bugs-address="$$msgid_bugs_address" \
+             $(XGETTEXT_OPTIONS) @XGETTEXT_EXTRA_OPTIONS@ \
            ;; \
        esac
        test ! -f $(DOMAIN).po || { \
+         if test -f $(srcdir)/$(DOMAIN).pot-header; then \
+           sed -e '1,/^#$$/d' < $(DOMAIN).po > $(DOMAIN).1po && \
+           cat $(srcdir)/$(DOMAIN).pot-header $(DOMAIN).1po > $(DOMAIN).po && \
+           rm -f $(DOMAIN).1po \
+           || exit 1; \
+         fi; \
          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 && \
@@ -220,17 +242,19 @@ $(srcdir)/$(DOMAIN).pot:
 # 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): $(POFILESDEPS)
+       @test -f $(srcdir)/$(DOMAIN).pot || $(MAKE) $(srcdir)/$(DOMAIN).pot
        @lang=`echo $@ | sed -e 's,.*/,,' -e 's/\.po$$//'`; \
        if test -f "$(srcdir)/$${lang}.po"; then \
-         test -f $(srcdir)/$(DOMAIN).pot || $(MAKE) $(srcdir)/$(DOMAIN).pot; \
          test "$(srcdir)" = . && cdcmd="" || cdcmd="cd $(srcdir) && "; \
-         echo "$${cdcmd}$(MSGMERGE_UPDATE) $(MSGMERGE_OPTIONS) --lang=$${lang} $${lang}.po $(DOMAIN).pot"; \
+         echo "$${cdcmd}$(MSGMERGE_UPDATE) $(MSGMERGE_OPTIONS) --lang=$${lang} --previous $${lang}.po $(DOMAIN).pot"; \
          cd $(srcdir) \
            && { case `$(MSGMERGE_UPDATE) --version | sed 1q | sed -e 's,^[^0-9]*,,'` in \
-                  '' | 0.[0-9] | 0.[0-9].* | 0.1[0-7] | 0.1[0-7].*) \
+                  '' | 0.[0-9] | 0.[0-9].* | 0.1[0-5] | 0.1[0-5].*) \
                     $(MSGMERGE_UPDATE) $(MSGMERGE_OPTIONS) $${lang}.po $(DOMAIN).pot;; \
+                  0.1[6-7] | 0.1[6-7].*) \
+                    $(MSGMERGE_UPDATE) $(MSGMERGE_OPTIONS) --previous $${lang}.po $(DOMAIN).pot;; \
                   *) \
-                    $(MSGMERGE_UPDATE) $(MSGMERGE_OPTIONS) --lang=$${lang} $${lang}.po $(DOMAIN).pot;; \
+                    $(MSGMERGE_UPDATE) $(MSGMERGE_OPTIONS) --lang=$${lang} --previous $${lang}.po $(DOMAIN).pot;; \
                 esac; \
               }; \
        else \
@@ -365,28 +389,30 @@ check: all
 
 info dvi ps pdf html tags TAGS ctags CTAGS ID:
 
+install-dvi install-ps install-pdf install-html:
+
 mostlyclean:
        rm -f remove-potcdate.sed
-       rm -f stamp-poT
+       rm -f $(srcdir)/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
+       rm -f Makefile Makefile.in POTFILES
 
 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)
+       rm -f $(srcdir)/$(DOMAIN).pot $(srcdir)/stamp-po $(GMOFILES)
 
 distdir = $(top_builddir)/$(PACKAGE)-$(VERSION)/$(subdir)
 dist distdir:
        test -z "$(DISTFILESDEPS)" || $(MAKE) $(DISTFILESDEPS)
        @$(MAKE) dist2
 # This is a separate target because 'update-po' must be executed before.
-dist2: stamp-po $(DISTFILES)
+dist2: $(srcdir)/stamp-po $(DISTFILES)
        dists="$(DISTFILES)"; \
        if test "$(PACKAGE)" = "gettext-tools"; then \
          dists="$$dists Makevars.template"; \
@@ -427,17 +453,19 @@ update-po: Makefile
 
 .nop.po-update:
        @lang=`echo $@ | sed -e 's/\.po-update$$//'`; \
-       if test "$(PACKAGE)" = "gettext-tools"; then PATH=`pwd`/../src:$$PATH; fi; \
+       if test "$(PACKAGE)" = "gettext-tools" && test "$(CROSS_COMPILING)" != "yes"; then PATH=`pwd`/../src:$$PATH; fi; \
        tmpdir=`pwd`; \
        echo "$$lang:"; \
        test "$(srcdir)" = . && cdcmd="" || cdcmd="cd $(srcdir) && "; \
-       echo "$${cdcmd}$(MSGMERGE) $(MSGMERGE_OPTIONS) --lang=$$lang $$lang.po $(DOMAIN).pot -o $$lang.new.po"; \
+       echo "$${cdcmd}$(MSGMERGE) $(MSGMERGE_OPTIONS) --lang=$$lang --previous $$lang.po $(DOMAIN).pot -o $$lang.new.po"; \
        cd $(srcdir); \
        if { case `$(MSGMERGE) --version | sed 1q | sed -e 's,^[^0-9]*,,'` in \
-              '' | 0.[0-9] | 0.[0-9].* | 0.1[0-7] | 0.1[0-7].*) \
+              '' | 0.[0-9] | 0.[0-9].* | 0.1[0-5] | 0.1[0-5].*) \
                 $(MSGMERGE) $(MSGMERGE_OPTIONS) -o $$tmpdir/$$lang.new.po $$lang.po $(DOMAIN).pot;; \
+              0.1[6-7] | 0.1[6-7].*) \
+                $(MSGMERGE) $(MSGMERGE_OPTIONS) --previous -o $$tmpdir/$$lang.new.po $$lang.po $(DOMAIN).pot;; \
               *) \
-                $(MSGMERGE) $(MSGMERGE_OPTIONS) --lang=$$lang -o $$tmpdir/$$lang.new.po $$lang.po $(DOMAIN).pot;; \
+                $(MSGMERGE) $(MSGMERGE_OPTIONS) --lang=$$lang --previous -o $$tmpdir/$$lang.new.po $$lang.po $(DOMAIN).pot;; \
             esac; \
           }; then \
          if cmp $$lang.po $$tmpdir/$$lang.new.po >/dev/null 2>&1; then \
index 7b92c7e..18c024b 100644 (file)
@@ -1,5 +1,9 @@
-# This file, Rules-quot, can be copied and used freely without restrictions.
 # Special Makefile rules for English message catalogs with quotation marks.
+#
+# Copyright (C) 2001-2017 Free Software Foundation, Inc.
+# This file, Rules-quot, and its auxiliary files (listed under
+# DISTFILES.common.extra1) are free software; the Free Software Foundation
+# gives unlimited permission to use, copy, distribute, and modify them.
 
 DISTFILES.common.extra1 = quot.sed boldquot.sed en@quot.header en@boldquot.header insert-header.sin Rules-quot
 
@@ -15,13 +19,13 @@ 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-tools"; then PATH=`pwd`/../src:$$PATH; GETTEXTLIBDIR=`cd $(top_srcdir)/src && pwd`; export GETTEXTLIBDIR; fi; \
+       if test "$(PACKAGE)" = "gettext-tools" && test "$(CROSS_COMPILING)" != "yes"; 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 $$lang -o - 2>/dev/null \
+       if $(MSGINIT) $(MSGINIT_OPTIONS) -i $(DOMAIN).pot --no-translator -l $$lang -o - 2>/dev/null \
           | $(SED) -f $$tmpdir/$$lang.insert-header | $(MSGCONV) -t UTF-8 | \
           { case `$(MSGFILTER) --version | sed 1q | sed -e 's,^[^0-9]*,,'` in \
             '' | 0.[0-9] | 0.[0-9].* | 0.1[0-8] | 0.1[0-8].*) \
index 67c1724..d1a0c96 100644 (file)
Binary files a/po/cs.gmo and b/po/cs.gmo differ
index dd89f68..41ca1c8 100644 (file)
--- a/po/cs.po
+++ b/po/cs.po
@@ -6,7 +6,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: xz-utils\n"
 "Report-Msgid-Bugs-To: lasse.collin@tukaani.org\n"
-"POT-Creation-Date: 2018-04-29 18:19+0300\n"
+"POT-Creation-Date: 2020-03-17 16:29+0200\n"
 "PO-Revision-Date: 2010-12-03 11:32+0100\n"
 "Last-Translator: Marek Černocký <marek@manet.cz>\n"
 "Language-Team: Czech <diskuze@lists.l10n.cz>\n"
@@ -106,9 +106,9 @@ msgid "Decompression will need %s MiB of memory."
 msgstr "Dekomprimace bude vyžadovat %s MiB paměti."
 
 #: src/xz/coder.c:300
-#, fuzzy, c-format
+#, c-format
 msgid "Adjusted the number of threads from %s to %s to not exceed the memory usage limit of %s MiB"
-msgstr "Přizpůsobit velikost slovníku LZMA%c z %s MiB na %s MiB, tak aby nebylo překročeno omezení použitelné paměti %s MiB"
+msgstr ""
 
 #: src/xz/coder.c:354
 #, c-format
@@ -116,26 +116,18 @@ msgid "Adjusted LZMA%c dictionary size from %s MiB to %s MiB to not exceed the m
 msgstr "Přizpůsobit velikost slovníku LZMA%c z %s MiB na %s MiB, tak aby nebylo překročeno omezení použitelné paměti %s MiB"
 
 #: src/xz/file_io.c:110 src/xz/file_io.c:118
-#, fuzzy, c-format
+#, c-format
 msgid "Error creating a pipe: %s"
-msgstr "%s: Chyba při čtení názvů souborů: %s"
-
-#: src/xz/file_io.c:173
-msgid "Sandbox is disabled due to incompatible command line arguments"
-msgstr ""
-
-#: src/xz/file_io.c:216
-msgid "Sandbox was successfully enabled"
 msgstr ""
 
-#: src/xz/file_io.c:220
+#: src/xz/file_io.c:224
 msgid "Failed to enable the sandbox"
 msgstr ""
 
-#: src/xz/file_io.c:262
-#, fuzzy, c-format
+#: src/xz/file_io.c:266
+#, c-format
 msgid "%s: poll() failed: %s"
-msgstr "%s: Selhalo zavření souboru: %s"
+msgstr ""
 
 #. TRANSLATORS: When compression or decompression finishes,
 #. and xz is going to remove the source file, xz first checks
@@ -147,126 +139,126 @@ msgstr "%s: Selhalo zavření souboru: %s"
 #. it is possible that the user has put a new file in place
 #. of the original file, and in that case it obviously
 #. shouldn't be removed.
-#: src/xz/file_io.c:332
+#: src/xz/file_io.c:333
 #, c-format
 msgid "%s: File seems to have been moved, not removing"
 msgstr "%s: Vypadá to, že soubor byl přesunut, proto nebude odstraněn"
 
-#: src/xz/file_io.c:339 src/xz/file_io.c:878
+#: src/xz/file_io.c:340 src/xz/file_io.c:882
 #, c-format
 msgid "%s: Cannot remove: %s"
 msgstr "%s: Nelze odstranit: %s"
 
-#: src/xz/file_io.c:364
+#: src/xz/file_io.c:366
 #, c-format
 msgid "%s: Cannot set the file owner: %s"
 msgstr "%s: Nelze nastavit vlastníka souboru: %s"
 
-#: src/xz/file_io.c:370
+#: src/xz/file_io.c:372
 #, c-format
 msgid "%s: Cannot set the file group: %s"
 msgstr "%s: Nelze nastavit skupinu souboru: %s"
 
-#: src/xz/file_io.c:389
+#: src/xz/file_io.c:391
 #, c-format
 msgid "%s: Cannot set the file permissions: %s"
 msgstr "%s: Nelze nastavit oprávnění souboru: %s"
 
-#: src/xz/file_io.c:515
-#, fuzzy, c-format
+#: src/xz/file_io.c:517
+#, c-format
 msgid "Error getting the file status flags from standard input: %s"
-msgstr "Chyba při obnovení příznaku O_APPEND na standardní výstup: %s"
+msgstr ""
 
-#: src/xz/file_io.c:572 src/xz/file_io.c:634
+#: src/xz/file_io.c:574 src/xz/file_io.c:636
 #, c-format
 msgid "%s: Is a symbolic link, skipping"
 msgstr "%s: Jedná se o symbolický odkaz, vynechává se"
 
-#: src/xz/file_io.c:663
+#: src/xz/file_io.c:665
 #, c-format
 msgid "%s: Is a directory, skipping"
 msgstr "%s: Jedná se o složku, vynechává se"
 
-#: src/xz/file_io.c:669
+#: src/xz/file_io.c:671
 #, c-format
 msgid "%s: Not a regular file, skipping"
 msgstr "%s: Nejedná se o běžný soubor, vynechává se"
 
-#: src/xz/file_io.c:686
+#: src/xz/file_io.c:688
 #, c-format
 msgid "%s: File has setuid or setgid bit set, skipping"
 msgstr "%s: Soubor má nastavený bit setuid nebo setgid, vynechává se"
 
-#: src/xz/file_io.c:693
+#: src/xz/file_io.c:695
 #, c-format
 msgid "%s: File has sticky bit set, skipping"
 msgstr "%s: Soubor má nastavený bit sticky, vynechává se"
 
-#: src/xz/file_io.c:700
+#: src/xz/file_io.c:702
 #, c-format
 msgid "%s: Input file has more than one hard link, skipping"
 msgstr "%s: Vstupní soubor má více než jeden pevný odkaz, vynechává se"
 
-#: src/xz/file_io.c:788
-#, fuzzy, c-format
+#: src/xz/file_io.c:792
+#, c-format
 msgid "Error restoring the status flags to standard input: %s"
-msgstr "Chyba při obnovení příznaku O_APPEND na standardní výstup: %s"
+msgstr ""
 
-#: src/xz/file_io.c:836
-#, fuzzy, c-format
+#: src/xz/file_io.c:840
+#, c-format
 msgid "Error getting the file status flags from standard output: %s"
-msgstr "Chyba při obnovení příznaku O_APPEND na standardní výstup: %s"
+msgstr ""
 
-#: src/xz/file_io.c:1014
+#: src/xz/file_io.c:1018
 #, c-format
 msgid "Error restoring the O_APPEND flag to standard output: %s"
 msgstr "Chyba při obnovení příznaku O_APPEND na standardní výstup: %s"
 
-#: src/xz/file_io.c:1026
+#: src/xz/file_io.c:1030
 #, c-format
 msgid "%s: Closing the file failed: %s"
 msgstr "%s: Selhalo zavření souboru: %s"
 
-#: src/xz/file_io.c:1062 src/xz/file_io.c:1288
+#: src/xz/file_io.c:1066 src/xz/file_io.c:1309
 #, c-format
 msgid "%s: Seeking failed when trying to create a sparse file: %s"
 msgstr "%s: Selhalo nastavení pozice při pokusu o vytvoření souboru řídké matice: %s"
 
-#: src/xz/file_io.c:1157
+#: src/xz/file_io.c:1167
 #, c-format
 msgid "%s: Read error: %s"
 msgstr "%s: Chyba čtení: %s"
 
-#: src/xz/file_io.c:1177
+#: src/xz/file_io.c:1191
 #, c-format
 msgid "%s: Error seeking the file: %s"
 msgstr "%s: Chyba při posunu v rámci souboru: %s"
 
-#: src/xz/file_io.c:1187
+#: src/xz/file_io.c:1201
 #, c-format
 msgid "%s: Unexpected end of file"
 msgstr "%s: Neočekávaný konec souboru"
 
-#: src/xz/file_io.c:1246
+#: src/xz/file_io.c:1260
 #, c-format
 msgid "%s: Write error: %s"
 msgstr "%s: Chyba zápisu: %s"
 
-#: src/xz/hardware.c:107
+#: src/xz/hardware.c:137
 msgid "Disabled"
 msgstr "Vypnuto"
 
 #. TRANSLATORS: Test with "xz --info-memory" to see if
 #. the alignment looks nice.
-#: src/xz/hardware.c:126
+#: src/xz/hardware.c:156
 msgid "Total amount of physical memory (RAM): "
 msgstr "Celkové množství fyzické paměti (RAM):     "
 
-#: src/xz/hardware.c:128
+#: src/xz/hardware.c:158
 msgid "Memory usage limit for compression:    "
 msgstr "Omezení použitelné paměti pro komprimaci:  "
 
-#: src/xz/hardware.c:130
+#: src/xz/hardware.c:160
 msgid "Memory usage limit for decompression:  "
 msgstr "Omezení použitelné paměti pro dekomprimaci:"
 
@@ -494,68 +486,68 @@ msgstr "Ze standardního vstupu nelze číst data, když se ze standardního vst
 #. of the line in messages. Usually it becomes "xz: ".
 #. This is a translatable string because French needs
 #. a space before a colon.
-#: src/xz/message.c:714
+#: src/xz/message.c:728
 #, c-format
 msgid "%s: "
 msgstr ""
 
-#: src/xz/message.c:777 src/xz/message.c:827
+#: src/xz/message.c:791 src/xz/message.c:841
 msgid "Internal error (bug)"
 msgstr "Interní chyba"
 
-#: src/xz/message.c:784
+#: src/xz/message.c:798
 msgid "Cannot establish signal handlers"
 msgstr "Nelze ustanovit ovladač signálu"
 
-#: src/xz/message.c:793
+#: src/xz/message.c:807
 msgid "No integrity check; not verifying file integrity"
 msgstr "Žádná kontrola integrity; integrita souboru se nebude ověřovat"
 
-#: src/xz/message.c:796
+#: src/xz/message.c:810
 msgid "Unsupported type of integrity check; not verifying file integrity"
 msgstr "Nepodporovaný typ kontroly integrity; integrita souboru se nebude ověřovat"
 
-#: src/xz/message.c:803
+#: src/xz/message.c:817
 msgid "Memory usage limit reached"
 msgstr "Dosaženo omezení použitelné paměti"
 
-#: src/xz/message.c:806
+#: src/xz/message.c:820
 msgid "File format not recognized"
 msgstr "Formát souboru nebyl rozpoznán"
 
-#: src/xz/message.c:809
+#: src/xz/message.c:823
 msgid "Unsupported options"
 msgstr "Nepodporovaná volba"
 
-#: src/xz/message.c:812
+#: src/xz/message.c:826
 msgid "Compressed data is corrupt"
 msgstr "Komprimovaná data jsou poškozená"
 
-#: src/xz/message.c:815
+#: src/xz/message.c:829
 msgid "Unexpected end of input"
 msgstr "Neočekávaný konec vstupu"
 
-#: src/xz/message.c:848
-#, fuzzy, c-format
+#: src/xz/message.c:862
+#, c-format
 msgid "%s MiB of memory is required. The limiter is disabled."
-msgstr "Je vyžadováno %s MiB paměti. Limit je %s."
+msgstr ""
 
-#: src/xz/message.c:876
+#: src/xz/message.c:890
 #, c-format
 msgid "%s MiB of memory is required. The limit is %s."
 msgstr "Je vyžadováno %s MiB paměti. Limit je %s."
 
-#: src/xz/message.c:1043
+#: src/xz/message.c:1057
 #, c-format
 msgid "%s: Filter chain: %s\n"
 msgstr "%s: Omezující filtr: %s\n"
 
-#: src/xz/message.c:1053
+#: src/xz/message.c:1067
 #, c-format
 msgid "Try `%s --help' for more information."
 msgstr "Zkuste „%s --help“ pro více informací"
 
-#: src/xz/message.c:1079
+#: src/xz/message.c:1093
 #, c-format
 msgid ""
 "Usage: %s [OPTION]... [FILE]...\n"
@@ -566,15 +558,15 @@ msgstr ""
 "Komprimuje nebo dekomprimuje SOUBORy ve formátu xz.\n"
 "\n"
 
-#: src/xz/message.c:1086
+#: src/xz/message.c:1100
 msgid "Mandatory arguments to long options are mandatory for short options too.\n"
 msgstr "Povinné argumenty pro dlouhé přepínače jsou povinné rovněž pro krátké přepínače.\n"
 
-#: src/xz/message.c:1090
+#: src/xz/message.c:1104
 msgid " Operation mode:\n"
 msgstr "Operační režim:\n"
 
-#: src/xz/message.c:1093
+#: src/xz/message.c:1107
 msgid ""
 "  -z, --compress      force compression\n"
 "  -d, --decompress    force decompression\n"
@@ -586,7 +578,7 @@ msgstr ""
 " -t, --test            testovat integritu komprimovaného souboru\n"
 " -l, --list            vypsat informace o souborech .xz"
 
-#: src/xz/message.c:1099
+#: src/xz/message.c:1113
 msgid ""
 "\n"
 " Operation modifiers:\n"
@@ -594,7 +586,7 @@ msgstr ""
 "\n"
 "Modifikátory operací:\n"
 
-#: src/xz/message.c:1102
+#: src/xz/message.c:1116
 msgid ""
 "  -k, --keep          keep (don't delete) input files\n"
 "  -f, --force         force overwrite of output file and (de)compress links\n"
@@ -604,13 +596,13 @@ msgstr ""
 " -f, --force           vynutit přepis výstupního souboru a de/komprimovat odkazy\n"
 " -c, --stdout          zapisovat na standardní výstup a nemazat vstupní soubory"
 
-#: src/xz/message.c:1108
+#: src/xz/message.c:1122
 msgid ""
 "      --single-stream decompress only the first stream, and silently\n"
 "                      ignore possible remaining input data"
 msgstr ""
 
-#: src/xz/message.c:1111
+#: src/xz/message.c:1125
 msgid ""
 "      --no-sparse     do not create sparse files when decompressing\n"
 "  -S, --suffix=.SUF   use the suffix `.SUF' on compressed files\n"
@@ -626,7 +618,7 @@ msgstr ""
 "                       názvy souborů musí být zakončeny znakem nového řádku\n"
 "     --files0[=SOUBOR] stejné jako --files, ale použít k zakončování nulový znak"
 
-#: src/xz/message.c:1120
+#: src/xz/message.c:1134
 msgid ""
 "\n"
 " Basic file format and compression options:\n"
@@ -634,7 +626,7 @@ msgstr ""
 "\n"
 "Základní přepínače pro formát souboru a komprimaci:\n"
 
-#: src/xz/message.c:1122
+#: src/xz/message.c:1136
 msgid ""
 "  -F, --format=FMT    file format to encode or decode; possible values are\n"
 "                      `auto' (default), `xz', `lzma', and `raw'\n"
@@ -646,11 +638,11 @@ msgstr ""
 " -C, --check=KONTROLA  typ kontroly integrity: „none“ (používejte s rozmyslem),\n"
 "                       „crc32“, „crc64“ (výchozí) nebo „sha256“"
 
-#: src/xz/message.c:1127
+#: src/xz/message.c:1141
 msgid "      --ignore-check  don't verify the integrity check when decompressing"
 msgstr ""
 
-#: src/xz/message.c:1131
+#: src/xz/message.c:1145
 msgid ""
 "  -0 ... -9           compression preset; default is 6; take compressor *and*\n"
 "                      decompressor memory usage into account before using 7-9!"
@@ -658,7 +650,7 @@ msgstr ""
 " -0 .. -9              přednastavení komprimace; výchozí je 6; než použijete\n"
 "                       hodnoty 7 – 9, vezměte do úvahy množství použité paměti"
 
-#: src/xz/message.c:1135
+#: src/xz/message.c:1149
 msgid ""
 "  -e, --extreme       try to improve compression ratio by using more CPU time;\n"
 "                      does not affect decompressor memory requirements"
@@ -666,27 +658,27 @@ msgstr ""
 " -e, --extreme         zkusit zlepšit poměr komprimace využitím více času\n"
 "                       procesoru; nemá vliv na paměťové nároky dekomprimace"
 
-#: src/xz/message.c:1139
+#: src/xz/message.c:1153
 msgid ""
 "  -T, --threads=NUM   use at most NUM threads; the default is 1; set to 0\n"
 "                      to use as many threads as there are processor cores"
 msgstr ""
 
-#: src/xz/message.c:1144
+#: src/xz/message.c:1158
 msgid ""
 "      --block-size=SIZE\n"
 "                      start a new .xz block after every SIZE bytes of input;\n"
 "                      use this to set the block size for threaded compression"
 msgstr ""
 
-#: src/xz/message.c:1148
+#: src/xz/message.c:1162
 msgid ""
 "      --block-list=SIZES\n"
 "                      start a new .xz block after the given comma-separated\n"
 "                      intervals of uncompressed data"
 msgstr ""
 
-#: src/xz/message.c:1152
+#: src/xz/message.c:1166
 msgid ""
 "      --flush-timeout=TIMEOUT\n"
 "                      when compressing, if more than TIMEOUT milliseconds has\n"
@@ -694,7 +686,7 @@ msgid ""
 "                      would block, all pending data is flushed out"
 msgstr ""
 
-#: src/xz/message.c:1158
+#: src/xz/message.c:1172
 #, no-c-format
 msgid ""
 "      --memlimit-compress=LIMIT\n"
@@ -710,7 +702,7 @@ msgstr ""
 "                       dekomprimaci nebo obojí; LIMIT je v bajtech, % z paměti\n"
 "                       RAM nebo 0 pro výchozí"
 
-#: src/xz/message.c:1165
+#: src/xz/message.c:1179
 msgid ""
 "      --no-adjust     if compression settings exceed the memory usage limit,\n"
 "                      give an error instead of adjusting the settings downwards"
@@ -718,7 +710,7 @@ msgstr ""
 "     --no-adjust       pokud nastavení komprimace přesáhne omezení použitelné\n"
 "                       paměti, předat chybu namísto snížení nastavení"
 
-#: src/xz/message.c:1171
+#: src/xz/message.c:1185
 msgid ""
 "\n"
 " Custom filter chain for compression (alternative for using presets):"
@@ -726,7 +718,7 @@ msgstr ""
 "\n"
 "Vlastní omezující filtr pro komprimaci (alternativa k použití přednastavených):"
 
-#: src/xz/message.c:1180
+#: src/xz/message.c:1194
 msgid ""
 "\n"
 "  --lzma1[=OPTS]      LZMA1 or LZMA2; OPTS is a comma-separated list of zero or\n"
@@ -755,7 +747,7 @@ msgstr ""
 "                         depth=POČ  maximální hloubka prohledávání;\n"
 "                                    0 = automaticky (výchozí)"
 
-#: src/xz/message.c:1195
+#: src/xz/message.c:1209
 msgid ""
 "\n"
 "  --x86[=OPTS]        x86 BCJ filter (32-bit and 64-bit)\n"
@@ -777,7 +769,7 @@ msgstr ""
 "                       Platné volby pro všechny filtry BCJ:\n"
 "                         start=POČ  počáteční posun pro převody (výchozí=0)"
 
-#: src/xz/message.c:1207
+#: src/xz/message.c:1221
 msgid ""
 "\n"
 "  --delta[=OPTS]      Delta filter; valid OPTS (valid values; default):\n"
@@ -789,7 +781,7 @@ msgstr ""
 "                         dist=POČ   vzdálenost mezi bajty, které jsou odečítány\n"
 "                                    jeden od druhého (1 – 256; 1)"
 
-#: src/xz/message.c:1215
+#: src/xz/message.c:1229
 msgid ""
 "\n"
 " Other options:\n"
@@ -797,7 +789,7 @@ msgstr ""
 "\n"
 " Ostatní přepínače:\n"
 
-#: src/xz/message.c:1218
+#: src/xz/message.c:1232
 msgid ""
 "  -q, --quiet         suppress warnings; specify twice to suppress errors too\n"
 "  -v, --verbose       be verbose; specify twice for even more verbose"
@@ -806,17 +798,17 @@ msgstr ""
 " -v, --verbose         podrobnější zprávy; zadáním dvakrát, budou ještě\n"
 "                       podrobnější"
 
-#: src/xz/message.c:1223
+#: src/xz/message.c:1237
 msgid "  -Q, --no-warn       make warnings not affect the exit status"
 msgstr " -Q, --no-warn         způsobí, že varování neovlivní stav ukončení"
 
-#: src/xz/message.c:1225
+#: src/xz/message.c:1239
 msgid "      --robot         use machine-parsable messages (useful for scripts)"
 msgstr ""
 "     --robot           použít strojově analyzovatelné zprávy (užitečné pro\n"
 "                       skripty)"
 
-#: src/xz/message.c:1228
+#: src/xz/message.c:1242
 msgid ""
 "      --info-memory   display the total amount of RAM and the currently active\n"
 "                      memory usage limits, and exit"
@@ -824,7 +816,7 @@ msgstr ""
 "     --info-memory     zobrazit celkové množství paměti RAM a současné aktivní\n"
 "                       omezení použitelné paměti a skončit"
 
-#: src/xz/message.c:1231
+#: src/xz/message.c:1245
 msgid ""
 "  -h, --help          display the short help (lists only the basic options)\n"
 "  -H, --long-help     display this long help and exit"
@@ -832,7 +824,7 @@ msgstr ""
 " -h, --help            zobrazit krátkou nápovědu (vypíše jen základní přepínače)\n"
 " -H, --long-help       zobrazit tuto úplnou nápovědu a skončit"
 
-#: src/xz/message.c:1235
+#: src/xz/message.c:1249
 msgid ""
 "  -h, --help          display this short help and exit\n"
 "  -H, --long-help     display the long help (lists also the advanced options)"
@@ -840,11 +832,11 @@ msgstr ""
 " -h, --help            zobrazit tuto zkrácenou nápovědu a skončit\n"
 " -H, --long-help       zobrazit úplnou nápovědu (vypíše i pokročilé přepínače)"
 
-#: src/xz/message.c:1240
+#: src/xz/message.c:1254
 msgid "  -V, --version       display the version number and exit"
 msgstr " -V, --version         zobrazit číslo verze a skončit"
 
-#: src/xz/message.c:1242
+#: src/xz/message.c:1256
 msgid ""
 "\n"
 "With no FILE, or when FILE is -, read standard input.\n"
@@ -856,17 +848,17 @@ msgstr ""
 #. for this package. Please add _another line_ saying
 #. "Report translation bugs to <...>\n" with the email or WWW
 #. address for translation bugs. Thanks.
-#: src/xz/message.c:1248
+#: src/xz/message.c:1262
 #, c-format
 msgid "Report bugs to <%s> (in English or Finnish).\n"
 msgstr "Chyby hlaste na <%s> (v angličtině nebo finštině).\n"
 
-#: src/xz/message.c:1250
+#: src/xz/message.c:1264
 #, c-format
 msgid "%s home page: <%s>\n"
 msgstr "Domovská stránka %s: <%s>\n"
 
-#: src/xz/message.c:1254
+#: src/xz/message.c:1268
 msgid "THIS IS A DEVELOPMENT VERSION NOT INTENDED FOR PRODUCTION USE."
 msgstr ""
 
@@ -938,23 +930,23 @@ msgstr "Platné jednotky s předponami jsou „KiB“ (2^10 B), „MiB“ (2^20
 msgid "Value of the option `%s' must be in the range [%<PRIu64>, %<PRIu64>]"
 msgstr "Hodnota volby „%s“ musí být v rozsahu [%<PRIu64>, %<PRIu64>]"
 
-#: src/xz/util.c:257
+#: src/xz/util.c:267
 msgid "Empty filename, skipping"
 msgstr "Prázdný název souboru, vynechává se"
 
-#: src/xz/util.c:271
+#: src/xz/util.c:281
 msgid "Compressed data cannot be read from a terminal"
 msgstr "Z terminálu nelze číst komprimovaná data"
 
-#: src/xz/util.c:284
+#: src/xz/util.c:294
 msgid "Compressed data cannot be written to a terminal"
 msgstr "Do terminálu nelze zapisovat komprimovaná data"
 
-#: src/common/tuklib_exit.c:39
+#: src/common/tuklib_exit.c:40
 msgid "Writing to standard output failed"
 msgstr "Zápis do standardního výstupu selhal"
 
-#: src/common/tuklib_exit.c:42
+#: src/common/tuklib_exit.c:43
 msgid "Unknown error"
 msgstr "Neznámá chyba"
 
diff --git a/po/da.gmo b/po/da.gmo
new file mode 100644 (file)
index 0000000..66a9a1b
Binary files /dev/null and b/po/da.gmo differ
diff --git a/po/da.po b/po/da.po
new file mode 100644 (file)
index 0000000..c2dd7e9
--- /dev/null
+++ b/po/da.po
@@ -0,0 +1,894 @@
+# Danish translation xz.
+# This file is put in the public domain.
+# Joe Hansen <joedalton2@yahoo.dk>, 2019.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: xz 5.2.4\n"
+"Report-Msgid-Bugs-To: lasse.collin@tukaani.org\n"
+"POT-Creation-Date: 2020-03-17 16:29+0200\n"
+"PO-Revision-Date: 2019-03-04 23:08+0100\n"
+"Last-Translator: Joe Hansen <joedalton2@yahoo.dk>\n"
+"Language-Team: Danish <dansk@dansk-gruppen.dk>\n"
+"Language: da\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Bugs: Report translation errors to the Language-Team address.\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#: src/xz/args.c:63
+#, c-format
+msgid "%s: Invalid argument to --block-list"
+msgstr "%s: Ugyldigt parameter til --block-list"
+
+#: src/xz/args.c:73
+#, c-format
+msgid "%s: Too many arguments to --block-list"
+msgstr "%s: For mange argumenter til --block-list"
+
+#: src/xz/args.c:102
+msgid "0 can only be used as the last element in --block-list"
+msgstr "0 kan kun bruges som det sidste element i --block-list"
+
+#: src/xz/args.c:406
+#, c-format
+msgid "%s: Unknown file format type"
+msgstr "%s: Ukendt filformattype"
+
+#: src/xz/args.c:429 src/xz/args.c:437
+#, c-format
+msgid "%s: Unsupported integrity check type"
+msgstr "%s: Typen for integritetkontrol er ikke understøttet"
+
+#: src/xz/args.c:473
+msgid "Only one file can be specified with `--files' or `--files0'."
+msgstr "Kun en fil kan angives med »--files« eller »--files0«."
+
+#: src/xz/args.c:541
+#, c-format
+msgid "The environment variable %s contains too many arguments"
+msgstr "Miljøvariablen %s indeholder for mange argumenter"
+
+#: src/xz/args.c:643
+msgid "Compression support was disabled at build time"
+msgstr "Komprimeringsunderstøttelse blev deaktiveret på byggetidspunktet"
+
+#: src/xz/args.c:650
+msgid "Decompression support was disabled at build time"
+msgstr "Dekomprimeringsunderstøttelse blev deaktiveret på byggetidspunktet"
+
+#: src/xz/coder.c:110
+msgid "Maximum number of filters is four"
+msgstr "Maksimalt antal filtre er fire"
+
+#: src/xz/coder.c:129
+msgid "Memory usage limit is too low for the given filter setup."
+msgstr "Begræsningen for brug af hukommelse er for lav for den givne filteropsætning."
+
+#: src/xz/coder.c:159
+msgid "Using a preset in raw mode is discouraged."
+msgstr "Det frarådes at bruge en forhåndskonfiguration i rå tilstand (raw mode)."
+
+#: src/xz/coder.c:161
+msgid "The exact options of the presets may vary between software versions."
+msgstr "De præcise indstillinger for forhåndskonfigurationerne kan variere mellem programversioner."
+
+#: src/xz/coder.c:184
+msgid "The .lzma format supports only the LZMA1 filter"
+msgstr "Formatet .lzma understøtter kun LZMA1-filteret"
+
+#: src/xz/coder.c:192
+msgid "LZMA1 cannot be used with the .xz format"
+msgstr "LZMA1 kan ikke bruges med .xz-formatet"
+
+#: src/xz/coder.c:209
+msgid "The filter chain is incompatible with --flush-timeout"
+msgstr "Filterkæden er ikke kompatibel med --flush-timeout"
+
+#: src/xz/coder.c:215
+msgid "Switching to single-threaded mode due to --flush-timeout"
+msgstr "Skifter til enkelt trådet tilstand på grund af --flush-timeout"
+
+#: src/xz/coder.c:235
+#, c-format
+msgid "Using up to %<PRIu32> threads."
+msgstr "Bruger op til %<PRIu32> tråde."
+
+#: src/xz/coder.c:251
+msgid "Unsupported filter chain or filter options"
+msgstr "Filterkæde eller filterindstillinger er ikke understøttet"
+
+#: src/xz/coder.c:263
+#, c-format
+msgid "Decompression will need %s MiB of memory."
+msgstr "Dekomprimering vil kræve %s MiB hukommelse."
+
+#: src/xz/coder.c:300
+#, c-format
+msgid "Adjusted the number of threads from %s to %s to not exceed the memory usage limit of %s MiB"
+msgstr "Justerede antallet af tråde fra %s til %s for ikke at overskride begræsningen på brug af hukommelse på %s MiB"
+
+#: src/xz/coder.c:354
+#, c-format
+msgid "Adjusted LZMA%c dictionary size from %s MiB to %s MiB to not exceed the memory usage limit of %s MiB"
+msgstr "Justerede LZMA%c-ordbogsstørrelsen fra %s MiB til %s MiB for ikke at overskride begrænsningen på brug af hukommelse på %s MiB"
+
+#: src/xz/file_io.c:110 src/xz/file_io.c:118
+#, c-format
+msgid "Error creating a pipe: %s"
+msgstr "Det opstod en fejl under oprettelse af en datakanal: %s"
+
+#: src/xz/file_io.c:224
+msgid "Failed to enable the sandbox"
+msgstr "Kunne ikke aktivere sandkassen"
+
+#: src/xz/file_io.c:266
+#, c-format
+msgid "%s: poll() failed: %s"
+msgstr "%s: poll() mislykkedes: %s"
+
+#. TRANSLATORS: When compression or decompression finishes,
+#. and xz is going to remove the source file, xz first checks
+#. if the source file still exists, and if it does, does its
+#. device and inode numbers match what xz saw when it opened
+#. the source file. If these checks fail, this message is
+#. shown, %s being the filename, and the file is not deleted.
+#. The check for device and inode numbers is there, because
+#. it is possible that the user has put a new file in place
+#. of the original file, and in that case it obviously
+#. shouldn't be removed.
+#: src/xz/file_io.c:333
+#, c-format
+msgid "%s: File seems to have been moved, not removing"
+msgstr "%s: Filen er vist blevet flyttet, sletter ikke"
+
+#: src/xz/file_io.c:340 src/xz/file_io.c:882
+#, c-format
+msgid "%s: Cannot remove: %s"
+msgstr "%s: Kan ikke fjerne: %s"
+
+#: src/xz/file_io.c:366
+#, c-format
+msgid "%s: Cannot set the file owner: %s"
+msgstr "%s: Kan ikke angive filejeren: %s"
+
+#: src/xz/file_io.c:372
+#, c-format
+msgid "%s: Cannot set the file group: %s"
+msgstr "%s: Kan ikke angive filgruppen: %s"
+
+#: src/xz/file_io.c:391
+#, c-format
+msgid "%s: Cannot set the file permissions: %s"
+msgstr "%s: Kan ikke angive filtilladelser: %s"
+
+#: src/xz/file_io.c:517
+#, c-format
+msgid "Error getting the file status flags from standard input: %s"
+msgstr "Der opstod en fejl under indhentelse af filstatusflag fra standardind: %s"
+
+#: src/xz/file_io.c:574 src/xz/file_io.c:636
+#, c-format
+msgid "%s: Is a symbolic link, skipping"
+msgstr "%s: Er en symbolsk henvisning, udelader"
+
+#: src/xz/file_io.c:665
+#, c-format
+msgid "%s: Is a directory, skipping"
+msgstr "%s: Er en mappe, udelader"
+
+#: src/xz/file_io.c:671
+#, c-format
+msgid "%s: Not a regular file, skipping"
+msgstr "%s: Er ikke en normal fil, udelader"
+
+#: src/xz/file_io.c:688
+#, c-format
+msgid "%s: File has setuid or setgid bit set, skipping"
+msgstr "%s: Filen har setuid- eller setgid-bitsæt, udelader"
+
+#: src/xz/file_io.c:695
+#, c-format
+msgid "%s: File has sticky bit set, skipping"
+msgstr "%s: Fil har klæbende bitsæt, udelader"
+
+#: src/xz/file_io.c:702
+#, c-format
+msgid "%s: Input file has more than one hard link, skipping"
+msgstr "%s: Inddatafil har mere end en hård henvisning, udelader"
+
+#: src/xz/file_io.c:792
+#, c-format
+msgid "Error restoring the status flags to standard input: %s"
+msgstr "Der opstod en fejl under gendannelse af statusflagene til standardind: %s"
+
+#: src/xz/file_io.c:840
+#, c-format
+msgid "Error getting the file status flags from standard output: %s"
+msgstr "Der opstod en fejl under indhentelse af filstatusflag fra standardud: %s"
+
+#: src/xz/file_io.c:1018
+#, c-format
+msgid "Error restoring the O_APPEND flag to standard output: %s"
+msgstr "Der opstod en fejl under gendannelse af flaget O_APPEND til standardud: %s"
+
+#: src/xz/file_io.c:1030
+#, c-format
+msgid "%s: Closing the file failed: %s"
+msgstr "%s: Lukning af filen fejlede: %s"
+
+#: src/xz/file_io.c:1066 src/xz/file_io.c:1309
+#, c-format
+msgid "%s: Seeking failed when trying to create a sparse file: %s"
+msgstr "%s: Søgning fejlede under forsøg på at oprette en tynd fil: %s"
+
+#: src/xz/file_io.c:1167
+#, c-format
+msgid "%s: Read error: %s"
+msgstr "%s: Læsefejl: %s"
+
+#: src/xz/file_io.c:1191
+#, c-format
+msgid "%s: Error seeking the file: %s"
+msgstr "%s: Der opstod en fejl under søgning efter filen: %s"
+
+#: src/xz/file_io.c:1201
+#, c-format
+msgid "%s: Unexpected end of file"
+msgstr "%s: Uventet filafslutning"
+
+#: src/xz/file_io.c:1260
+#, c-format
+msgid "%s: Write error: %s"
+msgstr "%s: Skrivefejl: %s"
+
+#: src/xz/hardware.c:137
+msgid "Disabled"
+msgstr "Deaktiveret"
+
+#. TRANSLATORS: Test with "xz --info-memory" to see if
+#. the alignment looks nice.
+#: src/xz/hardware.c:156
+msgid "Total amount of physical memory (RAM): "
+msgstr "Samlet mængde fysisk hukommelse (RAM):           "
+
+#: src/xz/hardware.c:158
+msgid "Memory usage limit for compression:    "
+msgstr "Grænse for hukommelsesforbrug til komprimering:  "
+
+#: src/xz/hardware.c:160
+msgid "Memory usage limit for decompression:  "
+msgstr "Grænse for hukommelsesforbug til dekomprimering: "
+
+#. TRANSLATORS: Indicates that there is no integrity check.
+#. This string is used in tables, so the width must not
+#. exceed ten columns with a fixed-width font.
+#: src/xz/list.c:65
+msgid "None"
+msgstr "Ingen"
+
+#. TRANSLATORS: Indicates that integrity check name is not known,
+#. but the Check ID is known (here 2). This and other "Unknown-N"
+#. strings are used in tables, so the width must not exceed ten
+#. columns with a fixed-width font. It's OK to omit the dash if
+#. you need space for one extra letter, but don't use spaces.
+#: src/xz/list.c:72
+msgid "Unknown-2"
+msgstr "Ukendt-2"
+
+#: src/xz/list.c:73
+msgid "Unknown-3"
+msgstr "Ukendt-3"
+
+#: src/xz/list.c:75
+msgid "Unknown-5"
+msgstr "Ukendt-5"
+
+#: src/xz/list.c:76
+msgid "Unknown-6"
+msgstr "Ukendt-6"
+
+#: src/xz/list.c:77
+msgid "Unknown-7"
+msgstr "Ukendt-7"
+
+#: src/xz/list.c:78
+msgid "Unknown-8"
+msgstr "Ukendt-8"
+
+#: src/xz/list.c:79
+msgid "Unknown-9"
+msgstr "Ukendt-9"
+
+#: src/xz/list.c:81
+msgid "Unknown-11"
+msgstr "Ukendt-11"
+
+#: src/xz/list.c:82
+msgid "Unknown-12"
+msgstr "Ukendt-12"
+
+#: src/xz/list.c:83
+msgid "Unknown-13"
+msgstr "Ukendt-13"
+
+#: src/xz/list.c:84
+msgid "Unknown-14"
+msgstr "Ukendt-14"
+
+#: src/xz/list.c:85
+msgid "Unknown-15"
+msgstr "Ukendt-15"
+
+#: src/xz/list.c:153
+#, c-format
+msgid "%s: File is empty"
+msgstr "%s: Filen er tom"
+
+#: src/xz/list.c:158
+#, c-format
+msgid "%s: Too small to be a valid .xz file"
+msgstr "%s: For lille til at være en gyldig .xz-fil"
+
+#. TRANSLATORS: These are column headings. From Strms (Streams)
+#. to Ratio, the columns are right aligned. Check and Filename
+#. are left aligned. If you need longer words, it's OK to
+#. use two lines here. Test with "xz -l foo.xz".
+#: src/xz/list.c:677
+msgid "Strms  Blocks   Compressed Uncompressed  Ratio  Check   Filename"
+msgstr ""
+
+#: src/xz/list.c:717
+#, c-format
+msgid "  Streams:            %s\n"
+msgstr "  Strømme:            %s\n"
+
+#: src/xz/list.c:719
+#, c-format
+msgid "  Blocks:             %s\n"
+msgstr "  Blokke:             %s\n"
+
+#: src/xz/list.c:721
+#, c-format
+msgid "  Compressed size:    %s\n"
+msgstr "  Komprimeret str.:   %s\n"
+
+#: src/xz/list.c:724
+#, c-format
+msgid "  Uncompressed size:  %s\n"
+msgstr "  Ukomprimeret str.:  %s\n"
+
+#: src/xz/list.c:727
+#, c-format
+msgid "  Ratio:              %s\n"
+msgstr "  Pakkeforhold:       %s\n"
+
+#: src/xz/list.c:729
+#, c-format
+msgid "  Check:              %s\n"
+msgstr "  Kontrol:            %s\n"
+
+#: src/xz/list.c:730
+#, c-format
+msgid "  Stream padding:     %s\n"
+msgstr "  Strømfyld:          %s\n"
+
+#. TRANSLATORS: The second line is column headings. All except
+#. Check are right aligned; Check is left aligned. Test with
+#. "xz -lv foo.xz".
+#: src/xz/list.c:758
+msgid ""
+"  Streams:\n"
+"    Stream    Blocks      CompOffset    UncompOffset        CompSize      UncompSize  Ratio  Check      Padding"
+msgstr ""
+"  Strømme:\n"
+"     Strøm    Blokke      KompForsk.    DekompForsk.        KompStr.      DekompStr.  Forh.  Kontrol       Fyld"
+
+#. TRANSLATORS: The second line is column headings. All
+#. except Check are right aligned; Check is left aligned.
+#: src/xz/list.c:813
+#, c-format
+msgid ""
+"  Blocks:\n"
+"    Stream     Block      CompOffset    UncompOffset       TotalSize      UncompSize  Ratio  Check"
+msgstr ""
+"  Blokke:\n"
+"     Strøm     Blok       KompForsk.    DekompForsk.        Ialtstr.      DekompStr.  Forh.  Kontrol"
+
+#. TRANSLATORS: These are additional column headings
+#. for the most verbose listing mode. CheckVal
+#. (Check value), Flags, and Filters are left aligned.
+#. Header (Block Header Size), CompSize, and MemUsage
+#. are right aligned. %*s is replaced with 0-120
+#. spaces to make the CheckVal column wide enough.
+#. Test with "xz -lvv foo.xz".
+#: src/xz/list.c:825
+#, c-format
+msgid "      CheckVal %*s Header  Flags        CompSize    MemUsage  Filters"
+msgstr "    KontrolVær %*sTeksth Flag         Kompstr.    HukForb.  Filtre"
+
+#: src/xz/list.c:903 src/xz/list.c:1078
+#, c-format
+msgid "  Memory needed:      %s MiB\n"
+msgstr "  Hukommelse krævet:  %s MiB\n"
+
+#: src/xz/list.c:905 src/xz/list.c:1080
+#, c-format
+msgid "  Sizes in headers:   %s\n"
+msgstr "  Størrelser i teksthoveder: %s\n"
+
+#: src/xz/list.c:906 src/xz/list.c:1081
+msgid "Yes"
+msgstr "Ja"
+
+#: src/xz/list.c:906 src/xz/list.c:1081
+msgid "No"
+msgstr "Nej"
+
+#: src/xz/list.c:907 src/xz/list.c:1082
+#, c-format
+msgid "  Minimum XZ Utils version: %s\n"
+msgstr "  Minimum for XZ Utils-version: %s\n"
+
+#. TRANSLATORS: %s is an integer. Only the plural form of this
+#. message is used (e.g. "2 files"). Test with "xz -l foo.xz bar.xz".
+#: src/xz/list.c:1057
+#, c-format
+msgid "%s file\n"
+msgid_plural "%s files\n"
+msgstr[0] "%s fil\n"
+msgstr[1] "%s filer\n"
+
+#: src/xz/list.c:1070
+msgid "Totals:"
+msgstr "I alt:"
+
+#: src/xz/list.c:1071
+#, c-format
+msgid "  Number of files:    %s\n"
+msgstr "  Antal filer:        %s\n"
+
+#: src/xz/list.c:1146
+msgid "--list works only on .xz files (--format=xz or --format=auto)"
+msgstr ""
+
+#: src/xz/list.c:1152
+msgid "--list does not support reading from standard input"
+msgstr "--list understøtter ikke læsning fra standardind"
+
+#: src/xz/main.c:89
+#, c-format
+msgid "%s: Error reading filenames: %s"
+msgstr "%s: Der opstod en fejl under forsøg på læsning af filnavne: %s"
+
+#: src/xz/main.c:96
+#, c-format
+msgid "%s: Unexpected end of input when reading filenames"
+msgstr "%s: Uventet afslutning på inddata under forsøg på læsning af filnavne"
+
+#: src/xz/main.c:120
+#, c-format
+msgid "%s: Null character found when reading filenames; maybe you meant to use `--files0' instead of `--files'?"
+msgstr ""
+
+#: src/xz/main.c:174
+msgid "Compression and decompression with --robot are not supported yet."
+msgstr "Komprimering og dekomprimering med --robot er endnu ikke understøttet."
+
+#: src/xz/main.c:252
+msgid "Cannot read data from standard input when reading filenames from standard input"
+msgstr ""
+
+#. TRANSLATORS: This is the program name in the beginning
+#. of the line in messages. Usually it becomes "xz: ".
+#. This is a translatable string because French needs
+#. a space before a colon.
+#: src/xz/message.c:728
+#, c-format
+msgid "%s: "
+msgstr "%s: "
+
+#: src/xz/message.c:791 src/xz/message.c:841
+msgid "Internal error (bug)"
+msgstr "Intern fejl (fejl)"
+
+#: src/xz/message.c:798
+msgid "Cannot establish signal handlers"
+msgstr "Kan ikke etbalere signalhåndteringer"
+
+#: src/xz/message.c:807
+msgid "No integrity check; not verifying file integrity"
+msgstr "Ingen integritetkontrol; verificerer ikke filintegritet"
+
+#: src/xz/message.c:810
+msgid "Unsupported type of integrity check; not verifying file integrity"
+msgstr ""
+
+#: src/xz/message.c:817
+msgid "Memory usage limit reached"
+msgstr "Begrænsning på brug af hukommelse er nået"
+
+#: src/xz/message.c:820
+msgid "File format not recognized"
+msgstr "Filformatet blev ikke genkendt"
+
+#: src/xz/message.c:823
+msgid "Unsupported options"
+msgstr "Tilvalg er ikke understøttede"
+
+#: src/xz/message.c:826
+msgid "Compressed data is corrupt"
+msgstr "Komprimerede data er ødelagte"
+
+#: src/xz/message.c:829
+msgid "Unexpected end of input"
+msgstr "Uventet afslutning på inddata"
+
+#: src/xz/message.c:862
+#, c-format
+msgid "%s MiB of memory is required. The limiter is disabled."
+msgstr "%s MiB hukommelse er krævet. Begrænseren er deaktiveret."
+
+#: src/xz/message.c:890
+#, c-format
+msgid "%s MiB of memory is required. The limit is %s."
+msgstr "%s MiB hukommelse er krævet. Begrænsningen er %s."
+
+#: src/xz/message.c:1057
+#, c-format
+msgid "%s: Filter chain: %s\n"
+msgstr "%s: Filterkæde: %s\n"
+
+#: src/xz/message.c:1067
+#, c-format
+msgid "Try `%s --help' for more information."
+msgstr "Prøv »%s --help« for yderligere information."
+
+#: src/xz/message.c:1093
+#, c-format
+msgid ""
+"Usage: %s [OPTION]... [FILE]...\n"
+"Compress or decompress FILEs in the .xz format.\n"
+"\n"
+msgstr ""
+
+#: src/xz/message.c:1100
+msgid "Mandatory arguments to long options are mandatory for short options too.\n"
+msgstr ""
+"Obligatoriske argumenter til lange tilvalg er også obligatoriske for korte\n"
+"tilvalg.\n"
+
+#: src/xz/message.c:1104
+msgid " Operation mode:\n"
+msgstr " Operationstilstand:\n"
+
+#: src/xz/message.c:1107
+msgid ""
+"  -z, --compress      force compression\n"
+"  -d, --decompress    force decompression\n"
+"  -t, --test          test compressed file integrity\n"
+"  -l, --list          list information about .xz files"
+msgstr ""
+
+#: src/xz/message.c:1113
+msgid ""
+"\n"
+" Operation modifiers:\n"
+msgstr ""
+"\n"
+"Operationsændrere:\n"
+
+#: src/xz/message.c:1116
+msgid ""
+"  -k, --keep          keep (don't delete) input files\n"
+"  -f, --force         force overwrite of output file and (de)compress links\n"
+"  -c, --stdout        write to standard output and don't delete input files"
+msgstr ""
+
+#: src/xz/message.c:1122
+msgid ""
+"      --single-stream decompress only the first stream, and silently\n"
+"                      ignore possible remaining input data"
+msgstr ""
+
+#: src/xz/message.c:1125
+msgid ""
+"      --no-sparse     do not create sparse files when decompressing\n"
+"  -S, --suffix=.SUF   use the suffix `.SUF' on compressed files\n"
+"      --files[=FILE]  read filenames to process from FILE; if FILE is\n"
+"                      omitted, filenames are read from the standard input;\n"
+"                      filenames must be terminated with the newline character\n"
+"      --files0[=FILE] like --files but use the null character as terminator"
+msgstr ""
+
+#: src/xz/message.c:1134
+msgid ""
+"\n"
+" Basic file format and compression options:\n"
+msgstr ""
+
+#: src/xz/message.c:1136
+msgid ""
+"  -F, --format=FMT    file format to encode or decode; possible values are\n"
+"                      `auto' (default), `xz', `lzma', and `raw'\n"
+"  -C, --check=CHECK   integrity check type: `none' (use with caution),\n"
+"                      `crc32', `crc64' (default), or `sha256'"
+msgstr ""
+
+#: src/xz/message.c:1141
+msgid "      --ignore-check  don't verify the integrity check when decompressing"
+msgstr ""
+
+#: src/xz/message.c:1145
+msgid ""
+"  -0 ... -9           compression preset; default is 6; take compressor *and*\n"
+"                      decompressor memory usage into account before using 7-9!"
+msgstr ""
+
+#: src/xz/message.c:1149
+msgid ""
+"  -e, --extreme       try to improve compression ratio by using more CPU time;\n"
+"                      does not affect decompressor memory requirements"
+msgstr ""
+
+#: src/xz/message.c:1153
+msgid ""
+"  -T, --threads=NUM   use at most NUM threads; the default is 1; set to 0\n"
+"                      to use as many threads as there are processor cores"
+msgstr ""
+
+#: src/xz/message.c:1158
+msgid ""
+"      --block-size=SIZE\n"
+"                      start a new .xz block after every SIZE bytes of input;\n"
+"                      use this to set the block size for threaded compression"
+msgstr ""
+
+#: src/xz/message.c:1162
+msgid ""
+"      --block-list=SIZES\n"
+"                      start a new .xz block after the given comma-separated\n"
+"                      intervals of uncompressed data"
+msgstr ""
+
+#: src/xz/message.c:1166
+msgid ""
+"      --flush-timeout=TIMEOUT\n"
+"                      when compressing, if more than TIMEOUT milliseconds has\n"
+"                      passed since the previous flush and reading more input\n"
+"                      would block, all pending data is flushed out"
+msgstr ""
+
+#: src/xz/message.c:1172
+#, no-c-format
+msgid ""
+"      --memlimit-compress=LIMIT\n"
+"      --memlimit-decompress=LIMIT\n"
+"  -M, --memlimit=LIMIT\n"
+"                      set memory usage limit for compression, decompression,\n"
+"                      or both; LIMIT is in bytes, % of RAM, or 0 for defaults"
+msgstr ""
+
+#: src/xz/message.c:1179
+msgid ""
+"      --no-adjust     if compression settings exceed the memory usage limit,\n"
+"                      give an error instead of adjusting the settings downwards"
+msgstr ""
+
+#: src/xz/message.c:1185
+msgid ""
+"\n"
+" Custom filter chain for compression (alternative for using presets):"
+msgstr ""
+
+#: src/xz/message.c:1194
+msgid ""
+"\n"
+"  --lzma1[=OPTS]      LZMA1 or LZMA2; OPTS is a comma-separated list of zero or\n"
+"  --lzma2[=OPTS]      more of the following options (valid values; default):\n"
+"                        preset=PRE reset options to a preset (0-9[e])\n"
+"                        dict=NUM   dictionary size (4KiB - 1536MiB; 8MiB)\n"
+"                        lc=NUM     number of literal context bits (0-4; 3)\n"
+"                        lp=NUM     number of literal position bits (0-4; 0)\n"
+"                        pb=NUM     number of position bits (0-4; 2)\n"
+"                        mode=MODE  compression mode (fast, normal; normal)\n"
+"                        nice=NUM   nice length of a match (2-273; 64)\n"
+"                        mf=NAME    match finder (hc3, hc4, bt2, bt3, bt4; bt4)\n"
+"                        depth=NUM  maximum search depth; 0=automatic (default)"
+msgstr ""
+
+#: src/xz/message.c:1209
+msgid ""
+"\n"
+"  --x86[=OPTS]        x86 BCJ filter (32-bit and 64-bit)\n"
+"  --powerpc[=OPTS]    PowerPC BCJ filter (big endian only)\n"
+"  --ia64[=OPTS]       IA-64 (Itanium) BCJ filter\n"
+"  --arm[=OPTS]        ARM BCJ filter (little endian only)\n"
+"  --armthumb[=OPTS]   ARM-Thumb BCJ filter (little endian only)\n"
+"  --sparc[=OPTS]      SPARC BCJ filter\n"
+"                      Valid OPTS for all BCJ filters:\n"
+"                        start=NUM  start offset for conversions (default=0)"
+msgstr ""
+
+#: src/xz/message.c:1221
+msgid ""
+"\n"
+"  --delta[=OPTS]      Delta filter; valid OPTS (valid values; default):\n"
+"                        dist=NUM   distance between bytes being subtracted\n"
+"                                   from each other (1-256; 1)"
+msgstr ""
+
+#: src/xz/message.c:1229
+msgid ""
+"\n"
+" Other options:\n"
+msgstr ""
+"\n"
+"Andre tilvalg:\n"
+
+#: src/xz/message.c:1232
+msgid ""
+"  -q, --quiet         suppress warnings; specify twice to suppress errors too\n"
+"  -v, --verbose       be verbose; specify twice for even more verbose"
+msgstr ""
+
+#: src/xz/message.c:1237
+msgid "  -Q, --no-warn       make warnings not affect the exit status"
+msgstr ""
+
+#: src/xz/message.c:1239
+msgid "      --robot         use machine-parsable messages (useful for scripts)"
+msgstr ""
+"      --robot         brug beskeder der kan fortolkes maskinelt (nyttigt\n"
+"                      for skripter)"
+
+#: src/xz/message.c:1242
+msgid ""
+"      --info-memory   display the total amount of RAM and the currently active\n"
+"                      memory usage limits, and exit"
+msgstr ""
+
+#: src/xz/message.c:1245
+msgid ""
+"  -h, --help          display the short help (lists only the basic options)\n"
+"  -H, --long-help     display this long help and exit"
+msgstr ""
+"  -h, --help          vis den korte hjælpetekst (viser kun grundlæggende\n"
+"                      tilvalg)\n"
+"  -H, --long-help     vis den lange hjælpetekst og afslut"
+
+#: src/xz/message.c:1249
+msgid ""
+"  -h, --help          display this short help and exit\n"
+"  -H, --long-help     display the long help (lists also the advanced options)"
+msgstr ""
+"  -h, --help          vis den korte hjælpetekst og afslut\n"
+"  -H, --long-help     vis den lange hjælpetekst (viser også de avancerede\n"
+"                      tilvalg)"
+
+#: src/xz/message.c:1254
+msgid "  -V, --version       display the version number and exit"
+msgstr "  -V, --version       vis versionsnummer og afslut"
+
+#: src/xz/message.c:1256
+msgid ""
+"\n"
+"With no FILE, or when FILE is -, read standard input.\n"
+msgstr ""
+"\n"
+"Med ingen FIL, eller når FIL er -, læs standardind.\n"
+
+#. TRANSLATORS: This message indicates the bug reporting address
+#. for this package. Please add _another line_ saying
+#. "Report translation bugs to <...>\n" with the email or WWW
+#. address for translation bugs. Thanks.
+#: src/xz/message.c:1262
+#, c-format
+msgid "Report bugs to <%s> (in English or Finnish).\n"
+msgstr ""
+"Rapporter fejl til <%s> (på engelsk eller finsk).\n"
+"Rapporter oversættelsesfejl til <dansk@dansk-gruppen.dk>.\n"
+
+#: src/xz/message.c:1264
+#, c-format
+msgid "%s home page: <%s>\n"
+msgstr "%s hjemmeside: <%s>\n"
+
+#: src/xz/message.c:1268
+msgid "THIS IS A DEVELOPMENT VERSION NOT INTENDED FOR PRODUCTION USE."
+msgstr "DETTE ER EN UDVIKLINGSVERSION - BRUG IKKE I PRODUKTION."
+
+#: src/xz/options.c:86
+#, c-format
+msgid "%s: Options must be `name=value' pairs separated with commas"
+msgstr "%s: Tilvalg skal være »navne=værdi«-par adskilt med kommaer"
+
+#: src/xz/options.c:93
+#, c-format
+msgid "%s: Invalid option name"
+msgstr "%s: Ugyldigt tilvalgsnavn"
+
+#: src/xz/options.c:113
+#, c-format
+msgid "%s: Invalid option value"
+msgstr "%s: Ugyldigt tilvalgsværdi"
+
+#: src/xz/options.c:247
+#, c-format
+msgid "Unsupported LZMA1/LZMA2 preset: %s"
+msgstr "LZMA1/LZMA2-forhåndskonfiguration er ikke understøttet: %s"
+
+#: src/xz/options.c:355
+msgid "The sum of lc and lp must not exceed 4"
+msgstr "Summen af lc og lp må ikke være højere end 4"
+
+#: src/xz/options.c:359
+#, c-format
+msgid "The selected match finder requires at least nice=%<PRIu32>"
+msgstr "Den valgte matchfinder kræver mindst nice=%<PRIu32>"
+
+#: src/xz/suffix.c:133 src/xz/suffix.c:258
+#, c-format
+msgid "%s: With --format=raw, --suffix=.SUF is required unless writing to stdout"
+msgstr "%s: med --format=raw, --suffix=.SUF er krævet med mindre der skrives til standardud"
+
+#: src/xz/suffix.c:164
+#, c-format
+msgid "%s: Filename has an unknown suffix, skipping"
+msgstr "%s: Filnavn har ukendt endelse, udelader"
+
+#: src/xz/suffix.c:185
+#, c-format
+msgid "%s: File already has `%s' suffix, skipping"
+msgstr "%s: Filen har allrede endelsen »%s«, udelader."
+
+#: src/xz/suffix.c:393
+#, c-format
+msgid "%s: Invalid filename suffix"
+msgstr "%s: Ugyldig filnavnendelse"
+
+#: src/xz/util.c:71
+#, c-format
+msgid "%s: Value is not a non-negative decimal integer"
+msgstr "%s: Værdi er ikke et positivt decimalheltal"
+
+#: src/xz/util.c:113
+#, c-format
+msgid "%s: Invalid multiplier suffix"
+msgstr "%s: Ugyldig multiplikatorendelse"
+
+#: src/xz/util.c:115
+msgid "Valid suffixes are `KiB' (2^10), `MiB' (2^20), and `GiB' (2^30)."
+msgstr "Gyldige endelser er »KiB« (2^10), »MiB« (2^20) og »GiB« (2^30)."
+
+#: src/xz/util.c:132
+#, c-format
+msgid "Value of the option `%s' must be in the range [%<PRIu64>, %<PRIu64>]"
+msgstr "Værdien for tilvalget »%s« skal være i intervallet [%<PRIu64>, %<PRIu64>]"
+
+#: src/xz/util.c:267
+msgid "Empty filename, skipping"
+msgstr "Tomt filnavn, udelader"
+
+#: src/xz/util.c:281
+msgid "Compressed data cannot be read from a terminal"
+msgstr "Komprimerede data kan ikke læses fra en terminal"
+
+#: src/xz/util.c:294
+msgid "Compressed data cannot be written to a terminal"
+msgstr "Komprimerede data kan ikke skrives til en terminal"
+
+#: src/common/tuklib_exit.c:40
+msgid "Writing to standard output failed"
+msgstr "Skrivning til standardud mislykkedes"
+
+#: src/common/tuklib_exit.c:43
+msgid "Unknown error"
+msgstr "Ukendt fejl"
+
+#~ msgid "Sandbox is disabled due to incompatible command line arguments"
+#~ msgstr "Sandkassen er deaktiveret på grund af inkompatible kommandolinjeargumenter"
+
+#~ msgid "Sandbox was successfully enabled"
+#~ msgstr "Sandkassen blev aktiveret"
index 1f3ebd7..3809dd1 100644 (file)
Binary files a/po/de.gmo and b/po/de.gmo differ
index c283ffe..5510a04 100644 (file)
--- a/po/de.po
+++ b/po/de.po
@@ -1,20 +1,24 @@
 # XZ Utils German translation
 # This file is put in the public domain.
-# Andre Noll <maan@tuebingen.mpg.de>, 2010.
 #
+# André Noll <maan@tuebingen.mpg.de>, 2010.
+# Anna Henningsen <sqrt@entless.org>, 2015.
+# Mario Blättermann <mario.blaettermann@gmail.com>, 2019.
 msgid ""
 msgstr ""
-"Project-Id-Version: XZ Utils 4.999.9beta\n"
+"Project-Id-Version: xz 5.2.4\n"
 "Report-Msgid-Bugs-To: lasse.collin@tukaani.org\n"
-"POT-Creation-Date: 2018-04-29 18:19+0300\n"
-"PO-Revision-Date: 2015-08-07 14:00+0200\n"
-"Last-Translator:  <sqrt@entless.org>\n"
-"Language-Team: German\n"
+"POT-Creation-Date: 2020-03-17 16:29+0200\n"
+"PO-Revision-Date: 2019-04-12 11:00+0200\n"
+"Last-Translator: Mario Blättermann <mario.blaettermann@gmail.com>\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"
+"X-Bugs: Report translation errors to the Language-Team address.\n"
 "Plural-Forms: nplurals=2; plural=(n != 1);\n"
+"X-Generator: Lokalize 18.12.3\n"
 
 #: src/xz/args.c:63
 #, c-format
@@ -38,11 +42,11 @@ msgstr "%s: Unbekanntes Dateiformat"
 #: src/xz/args.c:429 src/xz/args.c:437
 #, c-format
 msgid "%s: Unsupported integrity check type"
-msgstr "%s: Integritäts-Check-Typ nicht unterstützt"
+msgstr "%s: Integritätsprüfungstyp nicht unterstützt"
 
 #: src/xz/args.c:473
 msgid "Only one file can be specified with `--files' or `--files0'."
-msgstr "Nur eine Datei kann als Argument für --files oder --files0 angegeben werden."
+msgstr "Nur eine Datei kann als Argument für »--files« oder »--files0« angegeben werden."
 
 #: src/xz/args.c:541
 #, c-format
@@ -51,11 +55,11 @@ msgstr "Die Umgebungsvariable %s enthält zu viele Argumente"
 
 #: src/xz/args.c:643
 msgid "Compression support was disabled at build time"
-msgstr ""
+msgstr "Die Unterstützung für Kompression wurde zum Zeitpunkt der Erstellung deaktiviert"
 
 #: src/xz/args.c:650
 msgid "Decompression support was disabled at build time"
-msgstr ""
+msgstr "Die Unterstützung für Dekompression wurde zum Zeitpunkt der Erstellung deaktiviert"
 
 #: src/xz/coder.c:110
 msgid "Maximum number of filters is four"
@@ -63,11 +67,11 @@ msgstr "Maximal vier Filter möglich"
 
 #: src/xz/coder.c:129
 msgid "Memory usage limit is too low for the given filter setup."
-msgstr "Das Speicher-Limit ist zu niedrig für die gegebene Filter-Konfiguration."
+msgstr "Die Speicherbedarfsbegrenzung ist für die gegebene Filter-Konfiguration zu niedrig."
 
 #: src/xz/coder.c:159
 msgid "Using a preset in raw mode is discouraged."
-msgstr "Verwendung einer Voreinstellung im Raw-Modus wird nicht empfohlen."
+msgstr "Verwendung einer Voreinstellung im Roh-Modus wird nicht empfohlen."
 
 #: src/xz/coder.c:161
 msgid "The exact options of the presets may vary between software versions."
@@ -87,53 +91,45 @@ msgstr "Diese Filterkette ist inkompatibel zu --flush-timeout"
 
 #: src/xz/coder.c:215
 msgid "Switching to single-threaded mode due to --flush-timeout"
-msgstr "Schalte um auf Single-Thread-Modus wegen --flush-timeout"
+msgstr "Wegen --flush-timeout wird auf den Einzelthread-Modus umgeschaltet"
 
 #: src/xz/coder.c:235
 #, c-format
 msgid "Using up to %<PRIu32> threads."
-msgstr "Benutze bis zu %<PRIu32> Threads."
+msgstr "Bis zu %<PRIu32> Threads werden benutzt."
 
 #: src/xz/coder.c:251
 msgid "Unsupported filter chain or filter options"
-msgstr "Optionen nicht unterstützt"
+msgstr "Filterkette oder Filteroptionen werden nicht unterstützt"
 
 #: src/xz/coder.c:263
 #, c-format
 msgid "Decompression will need %s MiB of memory."
-msgstr "Dekomprimierung wird %s MiB Speicher brauchen."
+msgstr "Dekompression wird %s MiB Speicher brauchen."
 
 #: src/xz/coder.c:300
 #, c-format
 msgid "Adjusted the number of threads from %s to %s to not exceed the memory usage limit of %s MiB"
-msgstr "Passte die Anzahl Threads von %s auf %s an um nicht das Speichernutzungslimit von %s MiB zu übersteigen"
+msgstr "Anzahl der Threads wurde von %s auf %s angepasst, um die Speicherbedarfsbegrenzung von %s MiB nicht zu übersteigen"
 
 #: src/xz/coder.c:354
 #, c-format
 msgid "Adjusted LZMA%c dictionary size from %s MiB to %s MiB to not exceed the memory usage limit of %s MiB"
-msgstr "Passte LZMA%c-Wörterbuchgröße von %s MiB to %s MiB an, um nicht das Speichernutzungslimit von %s MiB zu übersteigen"
+msgstr "Die LZMA%c-Wörterbuchgröße wurde von %s MiB auf %s MiB angepasst, um die Speicherbedarfsbegrenzung von %s MiB nicht zu übersteigen"
 
 #: src/xz/file_io.c:110 src/xz/file_io.c:118
 #, c-format
 msgid "Error creating a pipe: %s"
 msgstr "Fehler beim Erzeugen der Pipeline: %s"
 
-#: src/xz/file_io.c:173
-msgid "Sandbox is disabled due to incompatible command line arguments"
-msgstr "Sandbox ist wegen inkompatibler Kommandozeilenargumente deaktiviert"
-
-#: src/xz/file_io.c:216
-msgid "Sandbox was successfully enabled"
-msgstr "Sandbox wurde erfolgreich aktiviert"
-
-#: src/xz/file_io.c:220
+#: src/xz/file_io.c:224
 msgid "Failed to enable the sandbox"
-msgstr "Konnte Sandbox nicht aktivieren"
+msgstr "Sandbox konnte nicht aktiviert werden"
 
-#: src/xz/file_io.c:262
+#: src/xz/file_io.c:266
 #, c-format
 msgid "%s: poll() failed: %s"
-msgstr "%s: poll() Fehler: %s"
+msgstr "%s: poll() ist fehlgeschlagen: %s"
 
 #. TRANSLATORS: When compression or decompression finishes,
 #. and xz is going to remove the source file, xz first checks
@@ -145,135 +141,135 @@ msgstr "%s: poll() Fehler: %s"
 #. it is possible that the user has put a new file in place
 #. of the original file, and in that case it obviously
 #. shouldn't be removed.
-#: src/xz/file_io.c:332
+#: src/xz/file_io.c:333
 #, c-format
 msgid "%s: File seems to have been moved, not removing"
-msgstr "%s: Datei scheint umbenannt worden zu sein, daher wird sie nicht gelöscht"
+msgstr "%s: Datei scheint verschoben worden zu sein, daher wird sie nicht gelöscht"
 
-#: src/xz/file_io.c:339 src/xz/file_io.c:878
+#: src/xz/file_io.c:340 src/xz/file_io.c:882
 #, c-format
 msgid "%s: Cannot remove: %s"
-msgstr "%s: Kann nicht löschen: %s"
+msgstr "%s: Löschen nicht möglich: %s"
 
-#: src/xz/file_io.c:364
+#: src/xz/file_io.c:366
 #, c-format
 msgid "%s: Cannot set the file owner: %s"
-msgstr "%s: Kann Dateieigentümer nicht setzen: %s"
+msgstr "%s: Dateieigentümer kann nicht gesetzt werden: %s"
 
-#: src/xz/file_io.c:370
+#: src/xz/file_io.c:372
 #, c-format
 msgid "%s: Cannot set the file group: %s"
-msgstr "%s: Kann Dateigruppe nicht setzen: %s"
+msgstr "%s: Dateigruppe kann nicht gesetzt werden: %s"
 
-#: src/xz/file_io.c:389
+#: src/xz/file_io.c:391
 #, c-format
 msgid "%s: Cannot set the file permissions: %s"
-msgstr "%s: Kann Zugriffsrechte nicht setzen: %s"
+msgstr "%s: Zugriffsrechte können nicht gesetzt werden: %s"
 
-#: src/xz/file_io.c:515
+#: src/xz/file_io.c:517
 #, c-format
 msgid "Error getting the file status flags from standard input: %s"
-msgstr "Kann Status-Flags der Standardeingabe nicht ermitteln: %s"
+msgstr "Dateistatus-Markierungen können nicht aus der Standardeingabe ermittelt werden: %s"
 
-#: src/xz/file_io.c:572 src/xz/file_io.c:634
+#: src/xz/file_io.c:574 src/xz/file_io.c:636
 #, c-format
 msgid "%s: Is a symbolic link, skipping"
-msgstr "%s: Überspringe symbolischen Link"
+msgstr "%s: Ist ein symbolischer Link, wird übersprungen"
 
-#: src/xz/file_io.c:663
+#: src/xz/file_io.c:665
 #, c-format
 msgid "%s: Is a directory, skipping"
-msgstr "%s: Überspringe Verzeichnis"
+msgstr "%s: Ist ein Verzeichnis, wird übersprungen"
 
-#: src/xz/file_io.c:669
+#: src/xz/file_io.c:671
 #, c-format
 msgid "%s: Not a regular file, skipping"
-msgstr "%s: Keine reguläre Datei, überspringe"
+msgstr "%s: Keine reguläre Datei, wird übersprungen"
 
-#: src/xz/file_io.c:686
+#: src/xz/file_io.c:688
 #, c-format
 msgid "%s: File has setuid or setgid bit set, skipping"
-msgstr "%s: Datei hat das setuid- oder setgid-Bit gesetzt, überspringe"
+msgstr "%s: Datei hat das setuid- oder setgid-Bit gesetzt, wird übersprungen"
 
-#: src/xz/file_io.c:693
+#: src/xz/file_io.c:695
 #, c-format
 msgid "%s: File has sticky bit set, skipping"
-msgstr "%s: Datei hat sticky-Bit gesetzt, überspringe"
+msgstr "%s: Datei hat sticky-Bit gesetzt, wird übersprungen"
 
-#: src/xz/file_io.c:700
+#: src/xz/file_io.c:702
 #, c-format
 msgid "%s: Input file has more than one hard link, skipping"
-msgstr "%s: Eingabedatei hat mehr als einen Hard Link, überspringe"
+msgstr "%s: Eingabedatei hat mehr als einen harten Link, wird übersprungen"
 
-#: src/xz/file_io.c:788
+#: src/xz/file_io.c:792
 #, c-format
 msgid "Error restoring the status flags to standard input: %s"
-msgstr "Fehler beim Wiederherstellen der Status-Flags für die Standardausgabe: %s"
+msgstr "Fehler beim Wiederherstellen der Status-Markierungen für die Standardeingabe: %s"
 
-#: src/xz/file_io.c:836
+#: src/xz/file_io.c:840
 #, c-format
 msgid "Error getting the file status flags from standard output: %s"
-msgstr "Kann Status-Flags der Standardausgabe nicht ermitteln: %s"
+msgstr "Status-Markierungen der Standardausgabe können nicht ermittelt werden: %s"
 
-#: src/xz/file_io.c:1014
+#: src/xz/file_io.c:1018
 #, c-format
 msgid "Error restoring the O_APPEND flag to standard output: %s"
-msgstr "Fehler beim Wiederherstellen des O_APPEND-Flags bei Standardausgabe: %s"
+msgstr "Fehler beim Wiederherstellen der O_APPEND-Markierungen für die Standardausgabe: %s"
 
-#: src/xz/file_io.c:1026
+#: src/xz/file_io.c:1030
 #, c-format
 msgid "%s: Closing the file failed: %s"
 msgstr "%s: Fehler beim Schließen der Datei: %s"
 
-#: src/xz/file_io.c:1062 src/xz/file_io.c:1288
+#: src/xz/file_io.c:1066 src/xz/file_io.c:1309
 #, c-format
 msgid "%s: Seeking failed when trying to create a sparse file: %s"
-msgstr "%s: Positionierungsfehler beim Versuch eine sparse (dünnbesetzte) Datei zu erzeugen: %s"
+msgstr "%s: Positionierungsfehler beim Versuch, eine Sparse-Datei (dünnbesetzte Datei) zu erzeugen: %s"
 
-#: src/xz/file_io.c:1157
+#: src/xz/file_io.c:1167
 #, c-format
 msgid "%s: Read error: %s"
 msgstr "%s: Lesefehler: %s"
 
-#: src/xz/file_io.c:1177
+#: src/xz/file_io.c:1191
 #, c-format
 msgid "%s: Error seeking the file: %s"
-msgstr "%s: Fehler beim Lesen der Dateinamen: %s"
+msgstr "%s: Fehler beim Durchsuchen der Datei: %s"
 
-#: src/xz/file_io.c:1187
+#: src/xz/file_io.c:1201
 #, c-format
 msgid "%s: Unexpected end of file"
 msgstr "%s: Unerwartetes Ende der Datei"
 
-#: src/xz/file_io.c:1246
+#: src/xz/file_io.c:1260
 #, c-format
 msgid "%s: Write error: %s"
 msgstr "%s: Schreibfehler: %s"
 
-#: src/xz/hardware.c:107
+#: src/xz/hardware.c:137
 msgid "Disabled"
 msgstr "Deaktiviert"
 
 #. TRANSLATORS: Test with "xz --info-memory" to see if
 #. the alignment looks nice.
-#: src/xz/hardware.c:126
+#: src/xz/hardware.c:156
 msgid "Total amount of physical memory (RAM): "
-msgstr "Gesamtmenge physikalischer Speicher (RAM):  "
+msgstr "Gesamtmenge physischer Speicher (RAM):        "
 
-#: src/xz/hardware.c:128
+#: src/xz/hardware.c:158
 msgid "Memory usage limit for compression:    "
-msgstr "Speichernutzungslimit für Komprimierung:    "
+msgstr "Speicherbedarfsbegrenzung für Kompression:    "
 
-#: src/xz/hardware.c:130
+#: src/xz/hardware.c:160
 msgid "Memory usage limit for decompression:  "
-msgstr "Speichernutzungslimit für Dekomprimierung:  "
+msgstr "Speicherbedarfsbegrenzung für Dekompression:  "
 
 #. TRANSLATORS: Indicates that there is no integrity check.
 #. This string is used in tables, so the width must not
 #. exceed ten columns with a fixed-width font.
 #: src/xz/list.c:65
 msgid "None"
-msgstr "Kein"
+msgstr "Keine"
 
 #. TRANSLATORS: Indicates that integrity check name is not known,
 #. but the Check ID is known (here 2). This and other "Unknown-N"
@@ -336,7 +332,7 @@ msgstr "%s: Datei ist leer"
 #: src/xz/list.c:158
 #, c-format
 msgid "%s: Too small to be a valid .xz file"
-msgstr "%s: Zu klein um eine gültige .xz-Datei zu sein"
+msgstr "%s: Zu klein, um eine gültige .xz-Datei zu sein"
 
 #. TRANSLATORS: These are column headings. From Strms (Streams)
 #. to Ratio, the columns are right aligned. Check and Filename
@@ -349,37 +345,37 @@ msgstr " Str.  Blöcke       Kompr.     Unkompr.  Verh.  Check   Dateiname"
 #: src/xz/list.c:717
 #, c-format
 msgid "  Streams:            %s\n"
-msgstr "  Ströme:              %s\n"
+msgstr "  Datenströme:          %s\n"
 
 #: src/xz/list.c:719
 #, c-format
 msgid "  Blocks:             %s\n"
-msgstr "  Blöcke:              %s\n"
+msgstr "  Blöcke:               %s\n"
 
 #: src/xz/list.c:721
 #, c-format
 msgid "  Compressed size:    %s\n"
-msgstr "  Größe komprimiert:   %s\n"
+msgstr "  Größe komprimiert:    %s\n"
 
 #: src/xz/list.c:724
 #, c-format
 msgid "  Uncompressed size:  %s\n"
-msgstr "  Größe unkomprimiert: %s\n"
+msgstr "  Größe unkomprimiert:  %s\n"
 
 #: src/xz/list.c:727
 #, c-format
 msgid "  Ratio:              %s\n"
-msgstr "  Verhältnis:          %s\n"
+msgstr "  Verhältnis:           %s\n"
 
 #: src/xz/list.c:729
 #, c-format
 msgid "  Check:              %s\n"
-msgstr "  Check:               %s\n"
+msgstr "  Check:                %s\n"
 
 #: src/xz/list.c:730
 #, c-format
 msgid "  Stream padding:     %s\n"
-msgstr "  Strom-Auffüllung:    %s\n"
+msgstr "  Datenstromauffüllung: %s\n"
 
 #. TRANSLATORS: The second line is column headings. All except
 #. Check are right aligned; Check is left aligned. Test with
@@ -389,8 +385,8 @@ msgid ""
 "  Streams:\n"
 "    Stream    Blocks      CompOffset    UncompOffset        CompSize      UncompSize  Ratio  Check      Padding"
 msgstr ""
-"  Ströme:\n"
-"     Strom    Blöcke      KompOffset    UnkompOffset       KompGröße     UnkompGröße  Verh.  Check   Auffüllung"
+"  Datenströme:\n"
+"     D.Strom  Blöcke      KompOffset    UnkompOffset       KompGröße     UnkompGröße  Verh.  Check   Auffüllung"
 
 #. TRANSLATORS: The second line is column headings. All
 #. except Check are right aligned; Check is left aligned.
@@ -413,7 +409,7 @@ msgstr ""
 #: src/xz/list.c:825
 #, c-format
 msgid "      CheckVal %*s Header  Flags        CompSize    MemUsage  Filters"
-msgstr "      CheckWert %*s  Kopf  Schalter    KompGröße    Speicher  Filter"
+msgstr "      PrüfWert %*s   Kopf  Schalter    KompGröße    Speicher  Filter"
 
 #: src/xz/list.c:903 src/xz/list.c:1078
 #, c-format
@@ -436,7 +432,7 @@ msgstr "Nein"
 #: src/xz/list.c:907 src/xz/list.c:1082
 #, c-format
 msgid "  Minimum XZ Utils version: %s\n"
-msgstr "  Kleinste XZ Utils-Version: %s\n"
+msgstr "  Minimal erforderliche XZ Utils-Version: %s\n"
 
 #. TRANSLATORS: %s is an integer. Only the plural form of this
 #. message is used (e.g. "2 files"). Test with "xz -l foo.xz bar.xz".
@@ -454,7 +450,7 @@ msgstr "Gesamt:"
 #: src/xz/list.c:1071
 #, c-format
 msgid "  Number of files:    %s\n"
-msgstr "   Anzahl Dateien:     %s\n"
+msgstr "  Anzahl Dateien:     %s\n"
 
 #: src/xz/list.c:1146
 msgid "--list works only on .xz files (--format=xz or --format=auto)"
@@ -462,7 +458,7 @@ msgstr "--list funktioniert nur mit .xz-Dateien (--format=xz oder --format=auto)
 
 #: src/xz/list.c:1152
 msgid "--list does not support reading from standard input"
-msgstr "--list unterstützt kein Lesen der Standardeingabe"
+msgstr "--list unterstützt kein Lesen aus der Standardeingabe"
 
 #: src/xz/main.c:89
 #, c-format
@@ -472,148 +468,149 @@ msgstr "%s: Fehler beim Lesen der Dateinamen: %s"
 #: src/xz/main.c:96
 #, c-format
 msgid "%s: Unexpected end of input when reading filenames"
-msgstr "%s: Unerwartetes Ende beim Lesen der Dateinamen"
+msgstr "%s: Unerwartetes Ende der Eingabe beim Lesen der Dateinamen"
 
 #: src/xz/main.c:120
 #, c-format
 msgid "%s: Null character found when reading filenames; maybe you meant to use `--files0' instead of `--files'?"
-msgstr "%s: Null-Zeichen gefunden beim Lesen der Dateinamen; Meinten Sie `--files0' statt `--files'?"
+msgstr "%s: Null-Zeichen beim Lesen der Dateinamen gefunden; meinten Sie »--files0« statt »--files«?"
 
 #: src/xz/main.c:174
 msgid "Compression and decompression with --robot are not supported yet."
-msgstr "Komprimierung und Dekomprimierung mit --robot ist noch nicht unterstützt."
+msgstr "Kompression und Dekompression mit --robot wird noch nicht unterstützt."
 
 #: src/xz/main.c:252
 msgid "Cannot read data from standard input when reading filenames from standard input"
-msgstr "Lesen der Standardeingabe ist nicht möglich, wenn die Dateinamen auch von der Standardeingabe gelesen werden"
+msgstr "Lesen der Daten aus der Standardeingabe ist nicht möglich, wenn die Dateinamen auch aus der Standardeingabe gelesen werden"
 
 #. TRANSLATORS: This is the program name in the beginning
 #. of the line in messages. Usually it becomes "xz: ".
 #. This is a translatable string because French needs
 #. a space before a colon.
-#: src/xz/message.c:714
+#: src/xz/message.c:728
 #, c-format
 msgid "%s: "
 msgstr "%s: "
 
-#: src/xz/message.c:777 src/xz/message.c:827
+#: src/xz/message.c:791 src/xz/message.c:841
 msgid "Internal error (bug)"
 msgstr "Interner Fehler (Bug)"
 
-#: src/xz/message.c:784
+#: src/xz/message.c:798
 msgid "Cannot establish signal handlers"
-msgstr "Kann Signalroutine nicht setzen"
+msgstr "Signalroutine kann nicht gesetzt werden"
 
-#: src/xz/message.c:793
+#: src/xz/message.c:807
 msgid "No integrity check; not verifying file integrity"
-msgstr "Kein Integritäts-Check; werde Datei-Integrität nicht überprüfen"
+msgstr "Keine Integritätsprüfung; Integrität der Datei wird nicht überprüft"
 
-#: src/xz/message.c:796
+#: src/xz/message.c:810
 msgid "Unsupported type of integrity check; not verifying file integrity"
-msgstr "Typ des Integritäts-Checks nicht unterstützt; werde Datei-Integrität nicht überprüfen"
+msgstr "Typ der Integritätsprüfung wird nicht unterstützt; Integrität der Datei wird nicht überprüft"
 
-#: src/xz/message.c:803
+#: src/xz/message.c:817
 msgid "Memory usage limit reached"
-msgstr "Speichernutzungslimit erreicht"
+msgstr "Speicherbedarfsbegrenzung erreicht"
 
-#: src/xz/message.c:806
+#: src/xz/message.c:820
 msgid "File format not recognized"
 msgstr "Dateiformat nicht erkannt"
 
-#: src/xz/message.c:809
+#: src/xz/message.c:823
 msgid "Unsupported options"
 msgstr "Optionen nicht unterstützt"
 
-#: src/xz/message.c:812
+#: src/xz/message.c:826
 msgid "Compressed data is corrupt"
-msgstr "Komprimierte Daten sind korrupt"
+msgstr "Komprimierte Daten sind beschädigt"
 
-#: src/xz/message.c:815
+#: src/xz/message.c:829
 msgid "Unexpected end of input"
 msgstr "Unerwartetes Ende der Eingabe"
 
-#: src/xz/message.c:848
+#: src/xz/message.c:862
 #, c-format
 msgid "%s MiB of memory is required. The limiter is disabled."
-msgstr "%s MiB Speicher wird benötigt. Der Begrenzer ist deaktiviert."
+msgstr "%s MiB Speicher wird benötigt. Die Begrenzung ist deaktiviert."
 
-#: src/xz/message.c:876
+#: src/xz/message.c:890
 #, c-format
 msgid "%s MiB of memory is required. The limit is %s."
-msgstr "%s MiB Speicher wird benötigt. Limit ist %s."
+msgstr "%s MiB Speicher wird benötigt. Die Begrenzung ist %s."
 
-#: src/xz/message.c:1043
+#: src/xz/message.c:1057
 #, c-format
 msgid "%s: Filter chain: %s\n"
 msgstr "%s: Filterkette: %s\n"
 
-#: src/xz/message.c:1053
+#: src/xz/message.c:1067
 #, c-format
 msgid "Try `%s --help' for more information."
-msgstr "Versuchen Sie `%s --help' für mehr Informationen."
+msgstr "Versuchen Sie »%s --help« für mehr Informationen."
 
-#: src/xz/message.c:1079
+#: src/xz/message.c:1093
 #, c-format
 msgid ""
 "Usage: %s [OPTION]... [FILE]...\n"
 "Compress or decompress FILEs in the .xz format.\n"
 "\n"
 msgstr ""
-"Benutzung: %s [OPTION]... [DATEI]...\n"
+"Aufruf: %s [OPTION]… [DATEI]…\n"
 "Komprimiert oder dekomprimiert .xz-DATEI(EN).\n"
 "\n"
 
-#: src/xz/message.c:1086
+#: src/xz/message.c:1100
 msgid "Mandatory arguments to long options are mandatory for short options too.\n"
 msgstr ""
 "Obligatorische Argumente für lange Optionen sind auch für kurze Optionen\n"
 "zwingend.\n"
 
-#: src/xz/message.c:1090
+#: src/xz/message.c:1104
 msgid " Operation mode:\n"
-msgstr " Operationsmodus:\n"
+msgstr " Aktionsmodus:\n"
 
-#: src/xz/message.c:1093
+#: src/xz/message.c:1107
 msgid ""
 "  -z, --compress      force compression\n"
 "  -d, --decompress    force decompression\n"
 "  -t, --test          test compressed file integrity\n"
 "  -l, --list          list information about .xz files"
 msgstr ""
-"  -z, --compress        Erzwinge Komprimierung\n"
-"  -d, --decompress      Erzwinge Dekomprimierung\n"
-"  -t, --test            Überprüfe Dateiintegrität\n"
-"  -l, --list            Führe Dateiinformationen auf"
+"  -z, --compress        Kompression erzwingen\n"
+"  -d, --decompress      Dekompression erzwingen\n"
+"  -t, --test            Dateiintegrität überprüfen\n"
+"  -l, --list            Dateiinformationen anzeigen"
 
-#: src/xz/message.c:1099
+#: src/xz/message.c:1113
 msgid ""
 "\n"
 " Operation modifiers:\n"
 msgstr ""
 "\n"
-" Operationsmodifikatoren:\n"
+" Aktionsmodifikatoren:\n"
 
-#: src/xz/message.c:1102
+#: src/xz/message.c:1116
 msgid ""
 "  -k, --keep          keep (don't delete) input files\n"
 "  -f, --force         force overwrite of output file and (de)compress links\n"
 "  -c, --stdout        write to standard output and don't delete input files"
 msgstr ""
 "  -k, --keep            Eingabedateien beibehalten (nicht löschen)\n"
-"  -f, --force           Erzwinge Überschreiben der Ausgabedatei und\n"
-"                        (de)komprimiere Verweise (Links)\n"
-"  -c, --stdout          Schreibe nach Standardausgabe und lösche nicht die\n"
-"                        Eingabedateien"
+"  -f, --force           Überschreiben der Ausgabedatei erzwingen\n"
+"                          und Links (de)komprimieren\n"
+"  -c, --stdout          In die Standardausgabe schreiben und die\n"
+"                          Eingabedateien nicht löschen"
 
-#: src/xz/message.c:1108
+#: src/xz/message.c:1122
 msgid ""
 "      --single-stream decompress only the first stream, and silently\n"
 "                      ignore possible remaining input data"
 msgstr ""
-"      --single-stream   Dekomprimiere nur den ersten Datenstrom und ignoriere\n"
-"                        stillschweigend mögliche weitere Eingabedaten"
+"      --single-stream   Nur den ersten Datenstrom dekomprimieren und\n"
+"                          stillschweigend mögliche weitere Eingabedaten\n"
+"                          ignorieren"
 
-#: src/xz/message.c:1111
+#: src/xz/message.c:1125
 msgid ""
 "      --no-sparse     do not create sparse files when decompressing\n"
 "  -S, --suffix=.SUF   use the suffix `.SUF' on compressed files\n"
@@ -622,24 +619,27 @@ msgid ""
 "                      filenames must be terminated with the newline character\n"
 "      --files0[=FILE] like --files but use the null character as terminator"
 msgstr ""
-"      --no-sparse       Erzeuge beim Dekomprimieren keine dünnbesetzten\n"
-"                        (sparse) Dateien\n"
-"  -S, --suffix=.SUF     Benutze `.SUF' als Endung für komprimierte Dateien\n"
-"      --files=[DATEI]   Lese zu verarbeitende Dateinamen von DATEI; falls\n"
-"                        DATEI nicht angegeben wurde, werden Dateinamen\n"
-"                        von der Standardeingabe gelesen. Dateinamen müssen mit\n"
-"                        einem Zeilenumbruch voneinander getrennt werden\n"
-"      --files0=[DATEI]  Wie --files, aber benutze das Null-Zeichen als Trenner"
-
-#: src/xz/message.c:1120
+"      --no-sparse       Beim Dekomprimieren keine Sparse-Dateien\n"
+"                          erzeugen\n"
+"  -S, --suffix=.END     ».END« als Endung für komprimierte Dateien\n"
+"                          benutzen\n"
+"      --files=[DATEI]   Zu verarbeitende Dateinamen aus DATEI lesen;\n"
+"                          falls keine DATEI angegeben wurde, werden \n"
+"                          Dateinamen aus der Standardeingabe gelesen.\n"
+"                          Dateinamen müssen durch einen Zeilenumbruch\n"
+"                          voneinander getrennt werden\n"
+"      --files0=[DATEI]  Wie --files, aber das Null-Zeichen wird als\n"
+"                          Trenner benutzt"
+
+#: src/xz/message.c:1134
 msgid ""
 "\n"
 " Basic file format and compression options:\n"
 msgstr ""
 "\n"
-" Grundlegende Optionen für Dateiformat und Komprimierung:\n"
+" Grundlegende Optionen für Dateiformat und Kompression:\n"
 
-#: src/xz/message.c:1122
+#: src/xz/message.c:1136
 msgid ""
 "  -F, --format=FMT    file format to encode or decode; possible values are\n"
 "                      `auto' (default), `xz', `lzma', and `raw'\n"
@@ -647,80 +647,83 @@ msgid ""
 "                      `crc32', `crc64' (default), or `sha256'"
 msgstr ""
 "  -F, --format=FMT      Dateiformat zur Kodierung oder Dekodierung; mögliche\n"
-"                        Werte sind `auto' (Voreinstellung), `xz', `lzma' und\n"
-"                        `raw'\n"
-"  -C, --check=CHECK     Typ des Integritätschecks: `none' (Vorsicht), `crc32',\n"
-"                        `crc64' (Voreinstellung), oder `sha256'"
+"                          Werte sind »auto« (Voreinstellung), »xz«, »lzma« und\n"
+"                          »raw«\n"
+"  -C, --check=PRÜFUNG   Typ der Integritätsprüfung: »none« (Vorsicht),\n"
+"                          »crc32«, »crc64« (Voreinstellung) oder »sha256«"
 
-#: src/xz/message.c:1127
+#: src/xz/message.c:1141
 msgid "      --ignore-check  don't verify the integrity check when decompressing"
-msgstr "     --ignore-check     überprüfe nicht den Integritätscheck beim Dekomprimieren"
+msgstr ""
+"     --ignore-check     Integritätsprüfung beim Dekomprimieren\n"
+"                          nicht ausführen"
 
-#: src/xz/message.c:1131
+#: src/xz/message.c:1145
 msgid ""
 "  -0 ... -9           compression preset; default is 6; take compressor *and*\n"
 "                      decompressor memory usage into account before using 7-9!"
 msgstr ""
-"  -0 .. -9              Kompressionseinstellung; Voreinstellung is 6. Beachten\n"
-"                        Sie den Speicherverbrauch des Komprimierers *und* des\n"
-"                        Dekomprimierers, wenn Sie 7-9 benutzen!"
+"  -0 .. -9              Kompressionseinstellung; Voreinstellung ist 6.\n"
+"                          Beachten Sie den Speicherbedarf des Kompressors\n"
+"                          *und* des Dekompressors, wenn Sie 7-9 benutzen!"
 
-#: src/xz/message.c:1135
+#: src/xz/message.c:1149
 msgid ""
 "  -e, --extreme       try to improve compression ratio by using more CPU time;\n"
 "                      does not affect decompressor memory requirements"
 msgstr ""
-"  -e, --extreme         Versuche durch stärkere CPU-Nutzung das Kompressions-\n"
-"                        verhältnis zu verbessern. Dies beeinflusst nicht den\n"
-"                        Speicherbedarf des Dekomprimierers."
+"  -e, --extreme         Versuchen, durch stärkere CPU-Auslastung das\n"
+"                          Kompressionsverhältnis zu verbessern. Dies beeinflusst\n"
+"                          den Speicherbedarf des Dekompressors nicht."
 
-#: src/xz/message.c:1139
+#: src/xz/message.c:1153
 msgid ""
 "  -T, --threads=NUM   use at most NUM threads; the default is 1; set to 0\n"
 "                      to use as many threads as there are processor cores"
 msgstr ""
-"  -T, --threads=ZAHL    Erzeuge höchstens ZAHL viele Threads; die Grund-\n"
-"                        einstellung ist 1. Wenn der Wert 0 angegeben wird, dann\n"
-"                        werden so viele Threads erzeugt, wie es Prozessorkerne\n"
-"                        gibt"
+"  -T, --threads=ANZAHL  Höchstens die angegebene ANZAHL Threads erzeugen;\n"
+"                          die Voreinstellung ist 1. Wenn der Wert 0 angegeben\n"
+"                          wird, dann werden so viele Threads erzeugt, wie\n"
+"                          Prozessorkerne vorhanden sind"
 
-#: src/xz/message.c:1144
+#: src/xz/message.c:1158
 msgid ""
 "      --block-size=SIZE\n"
 "                      start a new .xz block after every SIZE bytes of input;\n"
 "                      use this to set the block size for threaded compression"
 msgstr ""
 "      --block-size=GRÖẞE\n"
-"                        Beginne einen neuen .xz-Block nach GRÖẞE Bytes Eingabe;\n"
-"                        Benutzen Sie diese Option um die Block Größe für\n"
-"                        Komprimierung mit mehreren Threads zu setzen"
+"                        Einen neuen .xz-Block nach der angegebenen GRÖẞE\n"
+"                          der Eingabe in Bytes beginnen; benutzen Sie diese\n"
+"                          Option, um die Blockgröße für die Kompression mit\n"
+"                          mehreren Threads zu setzen"
 
-#: src/xz/message.c:1148
+#: src/xz/message.c:1162
 msgid ""
 "      --block-list=SIZES\n"
 "                      start a new .xz block after the given comma-separated\n"
 "                      intervals of uncompressed data"
 msgstr ""
 "      --block-list=GRÖẞEN\n"
-"                        Beginne einen neuen .xz-Block gemäß der angegebenen,\n"
-"                        durch Kommata getrennten Intervalle an unkomprimierten\n"
-"                        Daten"
+"                        Einen neuen .xz-Block gemäß der angegebenen, durch\n"
+"                          Kommata getrennten Intervalle an unkomprimierten\n"
+"                          Daten beginnen"
 
-#: src/xz/message.c:1152
+#: src/xz/message.c:1166
 msgid ""
 "      --flush-timeout=TIMEOUT\n"
 "                      when compressing, if more than TIMEOUT milliseconds has\n"
 "                      passed since the previous flush and reading more input\n"
 "                      would block, all pending data is flushed out"
 msgstr ""
-"      --flush-timeout=ZEITÜBERSCHREITUNG\n"
-"                        Wenn beim Komprimieren mehr als ZEITÜBERSCHREITUNG\n"
-"                        Millisekunden seit der letzten Flush-Operation ver-\n"
-"                        gangen sind und das Lesen von zusätzlichen Eingabe-\n"
-"                        daten den Prozess blockieren würde, dann werden alle\n"
-"                        noch ausstehenden Daten geschrieben"
+"      --flush-timeout=ZEIT\n"
+"                        Wenn beim Komprimieren mehr als die angegebene ZEIT\n"
+"                          in Millisekunden seit der letzten Leerungsaktion\n"
+"                          vergangen ist und das Lesen von zusätzlichen\n"
+"                          Eingabedaten den Prozess blockieren würde, dann werden\n"
+"                          alle noch ausstehenden Daten geschrieben"
 
-#: src/xz/message.c:1158
+#: src/xz/message.c:1172
 #, no-c-format
 msgid ""
 "      --memlimit-compress=LIMIT\n"
@@ -729,30 +732,34 @@ msgid ""
 "                      set memory usage limit for compression, decompression,\n"
 "                      or both; LIMIT is in bytes, % of RAM, or 0 for defaults"
 msgstr ""
-"      --memlimit-compress=LIMIT\n"
-"      --memlimit-decompress=LIMIT\n"
-"  -M, --memlimit=LIMIT  Setze Speichernutzungslimit für Komprimierung,\n"
-"                        Dekomprimierung, oder beides; LIMIT ist in Bytes, % RAM,\n"
-"                        oder 0 für Verwenden der Grundeinstellungen."
+"      --memlimit-compress=BEGRENZUNG\n"
+"      --memlimit-decompress=BEGRENZUNG\n"
+"  -M, --memlimit=BEGRENZUNG\n"
+"                        Speicherbedarfsbegrenzung für Kompression,\n"
+"                          Dekompression oder beides setzen; die BEGRENZUNG\n"
+"                          wird in Bytes oder als Prozentsatz RAM angegeben.\n"
+"                          Geben Sie 0 an, um die Grundeinstellungen zu\n"
+"                          verwenden."
 
-#: src/xz/message.c:1165
+#: src/xz/message.c:1179
 msgid ""
 "      --no-adjust     if compression settings exceed the memory usage limit,\n"
 "                      give an error instead of adjusting the settings downwards"
 msgstr ""
-"      --no-adjust       Wenn die Kompressionseinstellungen das Speicher-\n"
-"                        nutzungslimit übersteigen, erzeuge einen Fehler statt\n"
-"                        die Einstellungen nach unten anzupassen."
+"      --no-adjust       Wenn die Kompressionseinstellungen die\n"
+"                          Speicherbedarfsbegrenzung übersteigen, wird ein\n"
+"                          Fehler ausgegeben, statt die Einstellungen\n"
+"                          nach unten anzupassen."
 
-#: src/xz/message.c:1171
+#: src/xz/message.c:1185
 msgid ""
 "\n"
 " Custom filter chain for compression (alternative for using presets):"
 msgstr ""
 "\n"
-" Benutzerdef. Filterkette für Komprimierung (alternativ zu Voreinstellung):"
+" Benutzerdefinierte Filterkette für Kompression (alternativ zu Voreinstellung):"
 
-#: src/xz/message.c:1180
+#: src/xz/message.c:1194
 msgid ""
 "\n"
 "  --lzma1[=OPTS]      LZMA1 or LZMA2; OPTS is a comma-separated list of zero or\n"
@@ -769,23 +776,23 @@ msgid ""
 msgstr ""
 "\n"
 "  --lzma1[=OPTIONEN]    LZMA1 oder LZMA2; OPTIONEN ist eine durch Kommata\n"
-"  --lzma2[=OPTIONEN]    Getrennte Liste bestehend aus den folgenden Optionen\n"
+"  --lzma2[=OPTIONEN]    getrennte Liste bestehend aus den folgenden Optionen\n"
 "                        (zulässige Werte; Voreinstellung):\n"
-"                          preset=NUM Setze Optionen zurück zu Voreinstellung\n"
-"                                     (0-9[e])\n"
-"                          dict=NUM   Wörterbuchgröße (4 KiB - 1536 MiB; 8 MiB)\n"
-"                          lc=NUM     Anzahl der Literal-Kontext-Bits (0-4; 3)\n"
-"                          lp=NUM     Anzahl der Literal-Positions-Bits (0-4; 0)\n"
-"                          pb=NUM     Anzahl der Positions-Bits (0-4; 2)\n"
-"                          mode=MODUS Kompressionsmodus (fast, normal; normal)\n"
-"                          nice=NUM   Nice-Länge eines Treffers (2-273; 64)\n"
-"                          mf=NAME    Algorithmus zum Auffinden von\n"
-"                                     Übereinstimmungen (hc3, hc4, bt2, bt3, bt4;\n"
-"                                     bt4)\n"
-"                          depth=NUM  Maximale Suchtiefe; 0=automatisch\n"
-"                                     (Voreinstellung)"
-
-#: src/xz/message.c:1195
+"                          preset=ZAHL Optionen auf Voreinstellungsstufe\n"
+"                                        zurücksetzen (0-9[e])\n"
+"                          dict=ZAHL   Wörterbuchgröße (4 KiB - 1536 MiB; 8 MiB)\n"
+"                          lc=ZAHL     Anzahl der Literal-Kontext-Bits (0-4; 3)\n"
+"                          lp=ZAHL     Anzahl der Literal-Positions-Bits (0-4; 0)\n"
+"                          pb=ZAHL     Anzahl der Positions-Bits (0-4; 2)\n"
+"                          mode=MODUS  Kompressionsmodus (fast, normal; normal)\n"
+"                          nice=ZAHL   Nice-Länge eines Treffers (2-273; 64)\n"
+"                          mf=NAME     Algorithmus zum Auffinden von\n"
+"                                      Übereinstimmungen\n"
+"                                      (hc3, hc4, bt2, bt3, bt4; bt4)\n"
+"                          depth=ZAHL  Maximale Suchtiefe; 0=automatisch\n"
+"                                      (Voreinstellung)"
+
+#: src/xz/message.c:1209
 msgid ""
 "\n"
 "  --x86[=OPTS]        x86 BCJ filter (32-bit and 64-bit)\n"
@@ -805,10 +812,10 @@ msgstr ""
 "  --armthumb[=OPTIONEN] ARM-Thumb-BCJ-Filter (nur Little Endian)\n"
 "  --sparc[=OPTIONEN]    SPARC-BCJ-Filter\n"
 "                        Zulässige Optionen für alle BCJ-Filter:\n"
-"                          start=NUM  Start-Offset für Konversion\n"
+"                          start=ZAHL Startversatz für Konversion\n"
 "                          (Voreinstellung=0)"
 
-#: src/xz/message.c:1207
+#: src/xz/message.c:1221
 msgid ""
 "\n"
 "  --delta[=OPTS]      Delta filter; valid OPTS (valid values; default):\n"
@@ -821,7 +828,7 @@ msgstr ""
 "                          dist=NUM  Abstand zwischen den Bytes, die voneinander\n"
 "                                    subtrahiert werden (1-256; 1)"
 
-#: src/xz/message.c:1215
+#: src/xz/message.c:1229
 msgid ""
 "\n"
 " Other options:\n"
@@ -829,102 +836,103 @@ msgstr ""
 "\n"
 " Andere Optionen:\n"
 
-#: src/xz/message.c:1218
+#: src/xz/message.c:1232
 msgid ""
 "  -q, --quiet         suppress warnings; specify twice to suppress errors too\n"
 "  -v, --verbose       be verbose; specify twice for even more verbose"
 msgstr ""
-"  -q, --quiet           Unterdrücke Warnungen; benutze diese Option zweimal\n"
-"                        um auch Fehlermeldungen zu unterdrücken\n"
-"  -v, --verbose         Sei gesprächig; benutze diese Option zweimal um noch\n"
-"                        gesprächiger zu sein"
+"  -q, --quiet           Warnungen unterdrücken; wird diese Option zweimal\n"
+"                          angegeben, werden auch Fehlermeldungen unterdrückt\n"
+"  -v, --verbose         Ausführlicher Modus; wird diese Option zweimal\n"
+"                          angegeben, erfolgen noch ausführlichere Ausgaben"
 
-#: src/xz/message.c:1223
+#: src/xz/message.c:1237
 msgid "  -Q, --no-warn       make warnings not affect the exit status"
-msgstr "  -Q, --no-warn         Warnungen verändern nicht den Exit Status"
+msgstr "  -Q, --no-warn         Warnungen verändern nicht den Exit-Status"
 
-#: src/xz/message.c:1225
+#: src/xz/message.c:1239
 msgid "      --robot         use machine-parsable messages (useful for scripts)"
 msgstr ""
-"      --robot           Benutze maschinen-lesbare Meldungen (nützlich für\n"
+"      --robot           Maschinenlesbare Meldungen ausgeben (nützlich für\n"
 "                        Skripte)"
 
-#: src/xz/message.c:1228
+#: src/xz/message.c:1242
 msgid ""
 "      --info-memory   display the total amount of RAM and the currently active\n"
 "                      memory usage limits, and exit"
-msgstr "      --info-memory     Zeige Speicherlimit an und terminiere"
+msgstr ""
+"      --info-memory     Gesamtspeicher (RAM) sowie die gegenwärtig aktive\n"
+"                          Speicherbedarfsbegrenzung anzeigen\n"
+"                          und das Programm beenden"
 
-#: src/xz/message.c:1231
+#: src/xz/message.c:1245
 msgid ""
 "  -h, --help          display the short help (lists only the basic options)\n"
 "  -H, --long-help     display this long help and exit"
 msgstr ""
-"  -h, --help            Zeige kurze Hilfe an (zeigt nur die grundlegenden\n"
-"                        Optionen)\n"
-"  -H, --long-help       Zeige diese lange Hilfe an und terminiere"
+"  -h, --help            Kurze Hilfe anzeigen (zeigt nur die grundlegenden\n"
+"                          Optionen)\n"
+"  -H, --long-help       Diese lange Hilfe anzeigen und das Programm beenden"
 
-#: src/xz/message.c:1235
+#: src/xz/message.c:1249
 msgid ""
 "  -h, --help          display this short help and exit\n"
 "  -H, --long-help     display the long help (lists also the advanced options)"
 msgstr ""
-"  -h, --help            Zeige diese kurze Hilfe an und terminiere\n"
-"  -H, --long-help       Zeige die lange Hilfe an (zeigt auch fortgeschrittene\n"
-"                        Optionen an)"
+"  -h, --help            Diese kurze Hilfe anzeigen und das Programm beenden\n"
+"  -H, --long-help       Die lange Hilfe (und damit auch fortgeschrittene\n"
+"                          Optionen) anzeigen"
 
-#: src/xz/message.c:1240
+#: src/xz/message.c:1254
 msgid "  -V, --version       display the version number and exit"
-msgstr "  -V, --version         Zeige Versionsnummer an und terminiere"
+msgstr "  -V, --version         Versionsnummer anzeigen und beenden"
 
-#: src/xz/message.c:1242
+#: src/xz/message.c:1256
 msgid ""
 "\n"
 "With no FILE, or when FILE is -, read standard input.\n"
 msgstr ""
 "\n"
-"Wenn DATEI nicht angegeben wurde, oder DATEI gleich - ist, dann wird von\n"
+"Wenn DATEI nicht angegeben wurde oder DATEI gleich - ist, dann wird aus\n"
 "der Standardeingabe gelesen.\n"
 
 #. TRANSLATORS: This message indicates the bug reporting address
 #. for this package. Please add _another line_ saying
 #. "Report translation bugs to <...>\n" with the email or WWW
 #. address for translation bugs. Thanks.
-#: src/xz/message.c:1248
+#: src/xz/message.c:1262
 #, c-format
 msgid "Report bugs to <%s> (in English or Finnish).\n"
-msgstr ""
-"Melde Bugs an <%s> (auf Englisch oder Finnisch).\n"
-"Melde Übersetzungsfehler an <maan@tuebingen.mpg.de> (auf Engl. oder Deutsch).\n"
+msgstr "Melden Sie Fehler an <%s> (auf Englisch oder Finnisch).\n"
 
-#: src/xz/message.c:1250
+#: src/xz/message.c:1264
 #, c-format
 msgid "%s home page: <%s>\n"
-msgstr "%s Homepage: <%s>\n"
+msgstr "%s-Homepage: <%s>\n"
 
-#: src/xz/message.c:1254
+#: src/xz/message.c:1268
 msgid "THIS IS A DEVELOPMENT VERSION NOT INTENDED FOR PRODUCTION USE."
 msgstr "DIES IST EINE NICHT FÜR DEN PRODUKTIVBETRIEB GEEIGNETE ENTWICKLERVERSION."
 
 #: src/xz/options.c:86
 #, c-format
 msgid "%s: Options must be `name=value' pairs separated with commas"
-msgstr "%s: Optionen müssen in der Form `Name=Wert` gegeben werden, getrennt durch Kommata"
+msgstr "%s: Optionen müssen in der Form »Name=Wert« gegeben werden, getrennt durch Kommata"
 
 #: src/xz/options.c:93
 #, c-format
 msgid "%s: Invalid option name"
-msgstr "%s: Ungültige Option"
+msgstr "%s: Ungültiger Optionsname"
 
 #: src/xz/options.c:113
 #, c-format
 msgid "%s: Invalid option value"
-msgstr "%s: Ungültiger Wert für Option"
+msgstr "%s: Ungültiger Optionswert"
 
 #: src/xz/options.c:247
 #, c-format
 msgid "Unsupported LZMA1/LZMA2 preset: %s"
-msgstr "LZMA1/LZMA2 Voreinstellung ist ungültig: %s"
+msgstr "LZMA1/LZMA2-Voreinstellung wird nicht unterstützt: %s"
 
 #: src/xz/options.c:355
 msgid "The sum of lc and lp must not exceed 4"
@@ -938,17 +946,17 @@ msgstr "Der ausgewählte Algorithmus zum Auffinden von Übereinstimmungen brauch
 #: src/xz/suffix.c:133 src/xz/suffix.c:258
 #, c-format
 msgid "%s: With --format=raw, --suffix=.SUF is required unless writing to stdout"
-msgstr "%s: Mit --format=raw ist --suffix=.SUF notwendig, falls nicht auf die Standardausgabe geschrieben wird"
+msgstr "%s: Mit --format=raw ist --suffix=.SUF notwendig, falls nicht in die Standardausgabe geschrieben wird"
 
 #: src/xz/suffix.c:164
 #, c-format
 msgid "%s: Filename has an unknown suffix, skipping"
-msgstr "%s: Dateiname hat unbekannte Endung, überspringe"
+msgstr "%s: Dateiname hat unbekanntes Suffix, wird übersprungen"
 
 #: src/xz/suffix.c:185
 #, c-format
 msgid "%s: File already has `%s' suffix, skipping"
-msgstr "%s: Datei hat bereits `%s'-Endung, überspringe"
+msgstr "%s: Datei hat bereits das Suffix »%s«, wird übersprungen"
 
 #: src/xz/suffix.c:393
 #, c-format
@@ -958,7 +966,7 @@ msgstr "%s: Ungültige Dateiendung"
 #: src/xz/util.c:71
 #, c-format
 msgid "%s: Value is not a non-negative decimal integer"
-msgstr "%s: Wert ist keine nicht-negative ganze Zahl"
+msgstr "%s: Wert ist keine nicht-negative dezimale Ganzzahl"
 
 #: src/xz/util.c:113
 #, c-format
@@ -967,35 +975,35 @@ msgstr "%s: Ungültige Einheit"
 
 #: src/xz/util.c:115
 msgid "Valid suffixes are `KiB' (2^10), `MiB' (2^20), and `GiB' (2^30)."
-msgstr "Gültige Einheiten sind `KiB' (2^10), `MiB' (2^20), und `GiB' (2^30)."
+msgstr "Gültige Einheiten sind »KiB« (2^10), »MiB« (2^20) und »GiB« (2^30)."
 
 #: src/xz/util.c:132
 #, c-format
 msgid "Value of the option `%s' must be in the range [%<PRIu64>, %<PRIu64>]"
-msgstr "Wert der Option `%s' muss im Bereich [%<PRIu64>, %<PRIu64>] sein"
+msgstr "Wert der Option »%s« muss im Bereich [%<PRIu64>, %<PRIu64>] sein"
 
-#: src/xz/util.c:257
+#: src/xz/util.c:267
 msgid "Empty filename, skipping"
-msgstr "Leerer Dateiname, überspringe"
+msgstr "Leerer Dateiname, wird übersprungen"
 
-#: src/xz/util.c:271
+#: src/xz/util.c:281
 msgid "Compressed data cannot be read from a terminal"
 msgstr "Komprimierte Daten können nicht vom Terminal gelesen werden"
 
-#: src/xz/util.c:284
+#: src/xz/util.c:294
 msgid "Compressed data cannot be written to a terminal"
 msgstr "Komprimierte Daten können nicht auf das Terminal geschrieben werden"
 
-#: src/common/tuklib_exit.c:39
+#: src/common/tuklib_exit.c:40
 msgid "Writing to standard output failed"
-msgstr "Schreiben auf die Standardausgabe fehlgeschlagen"
+msgstr "Schreiben in die Standardausgabe fehlgeschlagen"
 
-#: src/common/tuklib_exit.c:42
+#: src/common/tuklib_exit.c:43
 msgid "Unknown error"
 msgstr "Unbekannter Fehler"
 
-#~ msgid "Error setting O_NONBLOCK on standard input: %s"
-#~ msgstr "Fehler beim Setzen des O_NONBLOCK-Flags für Standardausgabe: %s"
+#~ msgid "Sandbox is disabled due to incompatible command line arguments"
+#~ msgstr "Sandbox ist wegen inkompatibler Befehlszeilenargumente deaktiviert"
 
-#~ msgid "Error setting O_NONBLOCK on standard output: %s"
-#~ msgstr "Fehler beim Setzen von O_NONBLOCK für die Standardausgabe: %s"
+#~ msgid "Sandbox was successfully enabled"
+#~ msgstr "Sandbox wurde erfolgreich aktiviert"
index fedb6a0..506ca9e 100644 (file)
@@ -2,7 +2,7 @@
 # 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
+# https://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).
index a9647fc..6522f0c 100644 (file)
@@ -2,7 +2,7 @@
 # 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
+# https://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).
diff --git a/po/fi.gmo b/po/fi.gmo
new file mode 100644 (file)
index 0000000..3f3640c
Binary files /dev/null and b/po/fi.gmo differ
diff --git a/po/fi.po b/po/fi.po
new file mode 100644 (file)
index 0000000..2e7c485
--- /dev/null
+++ b/po/fi.po
@@ -0,0 +1,972 @@
+# Finnish translations for xz package
+# Suomenkielinen käännös xz-paketille.
+# This file is put in the public domain.
+# Lauri Nurmi <lanurmi@iki.fi>, 2019, 2020.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: xz 5.2.4\n"
+"Report-Msgid-Bugs-To: lasse.collin@tukaani.org\n"
+"POT-Creation-Date: 2020-03-17 16:29+0200\n"
+"PO-Revision-Date: 2020-02-14 18:33+0200\n"
+"Last-Translator: Lauri Nurmi <lanurmi@iki.fi>\n"
+"Language-Team: Finnish <translation-team-fi@lists.sourceforge.net>\n"
+"Language: fi\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Bugs: Report translation errors to the Language-Team address.\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+"X-Generator: Poedit 2.2.4\n"
+
+#: src/xz/args.c:63
+#, c-format
+msgid "%s: Invalid argument to --block-list"
+msgstr "%s: Virheellinen argumentti valitsimelle --block-list"
+
+#: src/xz/args.c:73
+#, c-format
+msgid "%s: Too many arguments to --block-list"
+msgstr "%s: Liian monta argumenttia valitsimelle --block-list"
+
+#: src/xz/args.c:102
+msgid "0 can only be used as the last element in --block-list"
+msgstr "0:aa voi käyttää vain viimeisenä alkiona valitsimen --block-list kanssa"
+
+#: src/xz/args.c:406
+#, c-format
+msgid "%s: Unknown file format type"
+msgstr "%s: Tuntematon tiedostomuototyyppi"
+
+#: src/xz/args.c:429 src/xz/args.c:437
+#, c-format
+msgid "%s: Unsupported integrity check type"
+msgstr "%s: Eheystarkistuksen tyyppiä ei tueta"
+
+#: src/xz/args.c:473
+msgid "Only one file can be specified with `--files' or `--files0'."
+msgstr "Vain yksi tiedosto voidaan antaa valitsimille ”--files” ja ”--files0”."
+
+#: src/xz/args.c:541
+#, c-format
+msgid "The environment variable %s contains too many arguments"
+msgstr "Ympäristömuuttuja %s sisältää liian monta argumenttia"
+
+#: src/xz/args.c:643
+msgid "Compression support was disabled at build time"
+msgstr "Tiivistämistuki on poistettu käytöstä käännösaikana"
+
+#: src/xz/args.c:650
+msgid "Decompression support was disabled at build time"
+msgstr "Purkutuki on poistettu käytöstä käännösaikana"
+
+#: src/xz/coder.c:110
+msgid "Maximum number of filters is four"
+msgstr "Suodattimien enimmäismäärä on neljä"
+
+#: src/xz/coder.c:129
+msgid "Memory usage limit is too low for the given filter setup."
+msgstr "Muistinkäytön raja on liian matala valituille suotimille."
+
+#: src/xz/coder.c:159
+msgid "Using a preset in raw mode is discouraged."
+msgstr "Esiasetusten käyttö raw-tilassa ei ole suositeltavaa."
+
+#: src/xz/coder.c:161
+msgid "The exact options of the presets may vary between software versions."
+msgstr "Esiasetusten tarkat asetukset saattavat vaihdella ohjelmistoversioiden välillä."
+
+#: src/xz/coder.c:184
+msgid "The .lzma format supports only the LZMA1 filter"
+msgstr ".lzma-muoto tukee vain LZMA1-suodinta"
+
+#: src/xz/coder.c:192
+msgid "LZMA1 cannot be used with the .xz format"
+msgstr "LZMA1:tä ei voi käyttää .xz-muodon kanssa"
+
+#: src/xz/coder.c:209
+msgid "The filter chain is incompatible with --flush-timeout"
+msgstr "Suodinketju on yhteensopimaton valitsimen --flush-timeout kanssa"
+
+#: src/xz/coder.c:215
+msgid "Switching to single-threaded mode due to --flush-timeout"
+msgstr "Vaihdetaan yksisäikeiseen tilaan valitsimen --flush-timeout vuoksi"
+
+#: src/xz/coder.c:235
+#, c-format
+msgid "Using up to %<PRIu32> threads."
+msgstr "Käytetään enintään %<PRIu32> säiettä."
+
+#: src/xz/coder.c:251
+msgid "Unsupported filter chain or filter options"
+msgstr "Ei-tuettu suodinketju tai suotimen asetukset"
+
+#: src/xz/coder.c:263
+#, c-format
+msgid "Decompression will need %s MiB of memory."
+msgstr "Purkaminen vaatii %s MiB muistia."
+
+#: src/xz/coder.c:300
+#, c-format
+msgid "Adjusted the number of threads from %s to %s to not exceed the memory usage limit of %s MiB"
+msgstr "Pudotettiin säikeiden määrä %s säikeestä %s:een, jottei ylitettäisi %s MiB:n rajaa muistinkäytölle"
+
+#: src/xz/coder.c:354
+#, c-format
+msgid "Adjusted LZMA%c dictionary size from %s MiB to %s MiB to not exceed the memory usage limit of %s MiB"
+msgstr "Pudotettiin LZMA%c-sanaston koko %s MiB:stä %s MiB:hen, jottei ylitettäisi %s MiB:n rajaa muistinkäytölle"
+
+#: src/xz/file_io.c:110 src/xz/file_io.c:118
+#, c-format
+msgid "Error creating a pipe: %s"
+msgstr "Virhe putkea luodessa: %s"
+
+#: src/xz/file_io.c:224
+msgid "Failed to enable the sandbox"
+msgstr "Hiekkalaatikon ottaminen käyttöön epäonnistui"
+
+#: src/xz/file_io.c:266
+#, c-format
+msgid "%s: poll() failed: %s"
+msgstr "%s: poll()-kutsu epäonnistui: %s"
+
+#. TRANSLATORS: When compression or decompression finishes,
+#. and xz is going to remove the source file, xz first checks
+#. if the source file still exists, and if it does, does its
+#. device and inode numbers match what xz saw when it opened
+#. the source file. If these checks fail, this message is
+#. shown, %s being the filename, and the file is not deleted.
+#. The check for device and inode numbers is there, because
+#. it is possible that the user has put a new file in place
+#. of the original file, and in that case it obviously
+#. shouldn't be removed.
+#: src/xz/file_io.c:333
+#, c-format
+msgid "%s: File seems to have been moved, not removing"
+msgstr "%s: Tiedosto on nähtävästi siirretty, ei poisteta"
+
+#: src/xz/file_io.c:340 src/xz/file_io.c:882
+#, c-format
+msgid "%s: Cannot remove: %s"
+msgstr "%s: Ei voi poistaa: %s"
+
+#: src/xz/file_io.c:366
+#, c-format
+msgid "%s: Cannot set the file owner: %s"
+msgstr "%s: Tiedoston omistajaa ei voi asettaa: %s"
+
+#: src/xz/file_io.c:372
+#, c-format
+msgid "%s: Cannot set the file group: %s"
+msgstr "%s: Tiedoston ryhmää ei voi asettaa: %s"
+
+#: src/xz/file_io.c:391
+#, c-format
+msgid "%s: Cannot set the file permissions: %s"
+msgstr "%s: Tiedoston oikeuksia ei voi asettaa: %s"
+
+#: src/xz/file_io.c:517
+#, c-format
+msgid "Error getting the file status flags from standard input: %s"
+msgstr "Virhe tiedoston tilalippujen noutamisessa vakiosyötteelle: %s"
+
+#: src/xz/file_io.c:574 src/xz/file_io.c:636
+#, c-format
+msgid "%s: Is a symbolic link, skipping"
+msgstr "%s: On symbolinen linkki, ohitetaan"
+
+#: src/xz/file_io.c:665
+#, c-format
+msgid "%s: Is a directory, skipping"
+msgstr "%s: On hakemisto, ohitetaan"
+
+#: src/xz/file_io.c:671
+#, c-format
+msgid "%s: Not a regular file, skipping"
+msgstr "%s: Ei ole tavallinen tiedosto, ohitetaan"
+
+#: src/xz/file_io.c:688
+#, c-format
+msgid "%s: File has setuid or setgid bit set, skipping"
+msgstr "%s: Tiedostolla on setuid- tai setgid-bitti, ohitetaan"
+
+#: src/xz/file_io.c:695
+#, c-format
+msgid "%s: File has sticky bit set, skipping"
+msgstr "%s: Tiedostolla on sticky-bitti, ohitetaan"
+
+#: src/xz/file_io.c:702
+#, c-format
+msgid "%s: Input file has more than one hard link, skipping"
+msgstr "%s: Syötetiedostoon on yli yksi kova linkki, ohitetaan"
+
+#: src/xz/file_io.c:792
+#, c-format
+msgid "Error restoring the status flags to standard input: %s"
+msgstr "Virhe tilalippujen palauttamisessa vakiosyötteelle: %s"
+
+#: src/xz/file_io.c:840
+#, c-format
+msgid "Error getting the file status flags from standard output: %s"
+msgstr "Virhe tiedoston tilalippujen noutamisessa vakiotulosteelle: %s"
+
+#: src/xz/file_io.c:1018
+#, c-format
+msgid "Error restoring the O_APPEND flag to standard output: %s"
+msgstr "Virhe O_APPEND-lipun palauttamisessa vakiosyötteelle: %s"
+
+#: src/xz/file_io.c:1030
+#, c-format
+msgid "%s: Closing the file failed: %s"
+msgstr "%s: Tiedoston sulkeminen epäonnistui: %s"
+
+#: src/xz/file_io.c:1066 src/xz/file_io.c:1309
+#, c-format
+msgid "%s: Seeking failed when trying to create a sparse file: %s"
+msgstr "%s: Siirtyminen epäonnistui yritettäessä luoda hajanaista tiedostoa: %s"
+
+#: src/xz/file_io.c:1167
+#, c-format
+msgid "%s: Read error: %s"
+msgstr "%s: Lukuvirhe: %s"
+
+#: src/xz/file_io.c:1191
+#, c-format
+msgid "%s: Error seeking the file: %s"
+msgstr "%s: Virhe tiedostossa siirtymisessä: %s"
+
+#: src/xz/file_io.c:1201
+#, c-format
+msgid "%s: Unexpected end of file"
+msgstr "%s: Odottamaton tiedoston loppu"
+
+#: src/xz/file_io.c:1260
+#, c-format
+msgid "%s: Write error: %s"
+msgstr "%s: Kirjoitusvirhe: %s"
+
+#: src/xz/hardware.c:137
+msgid "Disabled"
+msgstr "Pois käytöstä"
+
+#. TRANSLATORS: Test with "xz --info-memory" to see if
+#. the alignment looks nice.
+#: src/xz/hardware.c:156
+msgid "Total amount of physical memory (RAM): "
+msgstr "Fyysisen muistin kokonaismäärä (RAM):  "
+
+#: src/xz/hardware.c:158
+msgid "Memory usage limit for compression:    "
+msgstr "Muistinkäytön raja tiivistykselle:     "
+
+#: src/xz/hardware.c:160
+msgid "Memory usage limit for decompression:  "
+msgstr "Muistinkäytön raja purkamiselle:       "
+
+#. TRANSLATORS: Indicates that there is no integrity check.
+#. This string is used in tables, so the width must not
+#. exceed ten columns with a fixed-width font.
+#: src/xz/list.c:65
+msgid "None"
+msgstr "Ei mitään"
+
+#. TRANSLATORS: Indicates that integrity check name is not known,
+#. but the Check ID is known (here 2). This and other "Unknown-N"
+#. strings are used in tables, so the width must not exceed ten
+#. columns with a fixed-width font. It's OK to omit the dash if
+#. you need space for one extra letter, but don't use spaces.
+#: src/xz/list.c:72
+msgid "Unknown-2"
+msgstr "Tuntematon-2"
+
+#: src/xz/list.c:73
+msgid "Unknown-3"
+msgstr "Tuntematon-3"
+
+#: src/xz/list.c:75
+msgid "Unknown-5"
+msgstr "Tuntematon-5"
+
+#: src/xz/list.c:76
+msgid "Unknown-6"
+msgstr "Tuntematon-6"
+
+#: src/xz/list.c:77
+msgid "Unknown-7"
+msgstr "Tuntematon-7"
+
+#: src/xz/list.c:78
+msgid "Unknown-8"
+msgstr "Tuntematon-8"
+
+#: src/xz/list.c:79
+msgid "Unknown-9"
+msgstr "Tuntematon-9"
+
+#: src/xz/list.c:81
+msgid "Unknown-11"
+msgstr "Tuntematon-11"
+
+#: src/xz/list.c:82
+msgid "Unknown-12"
+msgstr "Tuntematon-12"
+
+#: src/xz/list.c:83
+msgid "Unknown-13"
+msgstr "Tuntematon-13"
+
+#: src/xz/list.c:84
+msgid "Unknown-14"
+msgstr "Tuntematon-14"
+
+#: src/xz/list.c:85
+msgid "Unknown-15"
+msgstr "Tuntematon-15"
+
+#: src/xz/list.c:153
+#, c-format
+msgid "%s: File is empty"
+msgstr "%s: Tiedosto on tyhjä"
+
+#: src/xz/list.c:158
+#, c-format
+msgid "%s: Too small to be a valid .xz file"
+msgstr "%s: Liian pieni kelvolliseksi .xz-tiedostoksi"
+
+#. TRANSLATORS: These are column headings. From Strms (Streams)
+#. to Ratio, the columns are right aligned. Check and Filename
+#. are left aligned. If you need longer words, it's OK to
+#. use two lines here. Test with "xz -l foo.xz".
+#: src/xz/list.c:677
+msgid "Strms  Blocks   Compressed Uncompressed  Ratio  Check   Filename"
+msgstr "Virrat Lohkot   Tiivist.   Tiivistämätön Suhde  Tark.   Tiedostonimi"
+
+#: src/xz/list.c:717
+#, c-format
+msgid "  Streams:            %s\n"
+msgstr "  Virrat:             %s\n"
+
+#: src/xz/list.c:719
+#, c-format
+msgid "  Blocks:             %s\n"
+msgstr "  Lohkot:             %s\n"
+
+#: src/xz/list.c:721
+#, c-format
+msgid "  Compressed size:    %s\n"
+msgstr "  Tiivistetty koko:   %s\n"
+
+#: src/xz/list.c:724
+#, c-format
+msgid "  Uncompressed size:  %s\n"
+msgstr "  Tiivistämätön koko: %s\n"
+
+#: src/xz/list.c:727
+#, c-format
+msgid "  Ratio:              %s\n"
+msgstr "  Suhde:              %s\n"
+
+#: src/xz/list.c:729
+#, c-format
+msgid "  Check:              %s\n"
+msgstr "  Tarkistus:          %s\n"
+
+#: src/xz/list.c:730
+#, c-format
+msgid "  Stream padding:     %s\n"
+msgstr "  Virran tasaus:      %s\n"
+
+#. TRANSLATORS: The second line is column headings. All except
+#. Check are right aligned; Check is left aligned. Test with
+#. "xz -lv foo.xz".
+#: src/xz/list.c:758
+msgid ""
+"  Streams:\n"
+"    Stream    Blocks      CompOffset    UncompOffset        CompSize      UncompSize  Ratio  Check      Padding"
+msgstr ""
+"  Virrat:\n"
+"     Virta    Lohkot      TiivSiirr.    Tv:tönSiirr.        TiivKoko      Tv:tönKoko  Suhde  Tark.       Tasaus"
+
+#. TRANSLATORS: The second line is column headings. All
+#. except Check are right aligned; Check is left aligned.
+#: src/xz/list.c:813
+#, c-format
+msgid ""
+"  Blocks:\n"
+"    Stream     Block      CompOffset    UncompOffset       TotalSize      UncompSize  Ratio  Check"
+msgstr ""
+"  Lohkot:\n"
+"     Virta     Lohko      TiivSiirr.    Tv:tönSiirr.        Yht.Koko      Tv:tönKoko  Suhde  Tark."
+
+#. TRANSLATORS: These are additional column headings
+#. for the most verbose listing mode. CheckVal
+#. (Check value), Flags, and Filters are left aligned.
+#. Header (Block Header Size), CompSize, and MemUsage
+#. are right aligned. %*s is replaced with 0-120
+#. spaces to make the CheckVal column wide enough.
+#. Test with "xz -lvv foo.xz".
+#: src/xz/list.c:825
+#, c-format
+msgid "      CheckVal %*s Header  Flags        CompSize    MemUsage  Filters"
+msgstr "      Tark.arvo%*s Otsake  Liput        TiivKoko  Muist.käyt. Suotimet"
+
+#: src/xz/list.c:903 src/xz/list.c:1078
+#, c-format
+msgid "  Memory needed:      %s MiB\n"
+msgstr "  Tarvittava muisti:  %s MiB\n"
+
+#: src/xz/list.c:905 src/xz/list.c:1080
+#, c-format
+msgid "  Sizes in headers:   %s\n"
+msgstr "  Koot otsakkeissa:   %s\n"
+
+#: src/xz/list.c:906 src/xz/list.c:1081
+msgid "Yes"
+msgstr "Kyllä"
+
+#: src/xz/list.c:906 src/xz/list.c:1081
+msgid "No"
+msgstr "Ei"
+
+#: src/xz/list.c:907 src/xz/list.c:1082
+#, c-format
+msgid "  Minimum XZ Utils version: %s\n"
+msgstr "  XZ Utilsin vähimmäisversio: %s\n"
+
+#. TRANSLATORS: %s is an integer. Only the plural form of this
+#. message is used (e.g. "2 files"). Test with "xz -l foo.xz bar.xz".
+#: src/xz/list.c:1057
+#, c-format
+msgid "%s file\n"
+msgid_plural "%s files\n"
+msgstr[0] "%s tiedosto\n"
+msgstr[1] "%s tiedostoa\n"
+
+#: src/xz/list.c:1070
+msgid "Totals:"
+msgstr "Yhteensä:"
+
+#: src/xz/list.c:1071
+#, c-format
+msgid "  Number of files:    %s\n"
+msgstr "  Tiedostojen määrä:  %s\n"
+
+#: src/xz/list.c:1146
+msgid "--list works only on .xz files (--format=xz or --format=auto)"
+msgstr "--list toimii vain .xz-tiedostoille (--format=xz tai --format=auto)"
+
+#: src/xz/list.c:1152
+msgid "--list does not support reading from standard input"
+msgstr "--list ei tue lukemista vakiosyötteestä"
+
+#: src/xz/main.c:89
+#, c-format
+msgid "%s: Error reading filenames: %s"
+msgstr "%s: Virhe luettaessa tiedostonimiä: %s"
+
+#: src/xz/main.c:96
+#, c-format
+msgid "%s: Unexpected end of input when reading filenames"
+msgstr "%s: Odottamaton syötteen loppu tiedostonimiä luettaessa"
+
+#: src/xz/main.c:120
+#, c-format
+msgid "%s: Null character found when reading filenames; maybe you meant to use `--files0' instead of `--files'?"
+msgstr "%s: Nul-merkki kohdattiin tiedostonimiä lukiessa; oliko tarkoitus antaa valitsin ”--files0” eikä ”--files”?"
+
+#: src/xz/main.c:174
+msgid "Compression and decompression with --robot are not supported yet."
+msgstr "Tiivistys ja purku --robot -valitsimen kanssa eivät ole vielä tuettuja."
+
+#: src/xz/main.c:252
+msgid "Cannot read data from standard input when reading filenames from standard input"
+msgstr "Dataa ei voi lukea vakiosyötteestä kun tiedostonimiä luetaan vakiosyötteestä"
+
+#. TRANSLATORS: This is the program name in the beginning
+#. of the line in messages. Usually it becomes "xz: ".
+#. This is a translatable string because French needs
+#. a space before a colon.
+#: src/xz/message.c:728
+#, c-format
+msgid "%s: "
+msgstr "%s: "
+
+#: src/xz/message.c:791 src/xz/message.c:841
+msgid "Internal error (bug)"
+msgstr "Sisäinen virhe (ohjelmistovika)"
+
+#: src/xz/message.c:798
+msgid "Cannot establish signal handlers"
+msgstr "Signaalinkäsittelimiä ei voi muodostaa"
+
+#: src/xz/message.c:807
+msgid "No integrity check; not verifying file integrity"
+msgstr "Ei eheystarkastusta; ei varmenneta tiedoston eheyttä"
+
+#: src/xz/message.c:810
+msgid "Unsupported type of integrity check; not verifying file integrity"
+msgstr "Ei-tuettu eheystarkastuksen tyyppi; ei varmenneta tiedoston eheyttä"
+
+#: src/xz/message.c:817
+msgid "Memory usage limit reached"
+msgstr "Muistinkäytön raja saavutettu"
+
+#: src/xz/message.c:820
+msgid "File format not recognized"
+msgstr "Tiedostomuotoa ei tunnistettu"
+
+#: src/xz/message.c:823
+msgid "Unsupported options"
+msgstr "Ei-tuetut valitsimet"
+
+#: src/xz/message.c:826
+msgid "Compressed data is corrupt"
+msgstr "Tiivistetty data on turmeltunut"
+
+#: src/xz/message.c:829
+msgid "Unexpected end of input"
+msgstr "Odottamaton syötteen loppu"
+
+#: src/xz/message.c:862
+#, c-format
+msgid "%s MiB of memory is required. The limiter is disabled."
+msgstr "%s MiB muistia vaaditaan. Rajoitin on poistettu käytöstä."
+
+#: src/xz/message.c:890
+#, c-format
+msgid "%s MiB of memory is required. The limit is %s."
+msgstr "%s MiB muistia vaaditaan. Raja on %s."
+
+#: src/xz/message.c:1057
+#, c-format
+msgid "%s: Filter chain: %s\n"
+msgstr "%s: Suodinketju: %s\n"
+
+#: src/xz/message.c:1067
+#, c-format
+msgid "Try `%s --help' for more information."
+msgstr "Komento ”%s --help” antaa lisää tietoa."
+
+#: src/xz/message.c:1093
+#, c-format
+msgid ""
+"Usage: %s [OPTION]... [FILE]...\n"
+"Compress or decompress FILEs in the .xz format.\n"
+"\n"
+msgstr ""
+"Käyttö: %s [VALITSIN]... [TIEDOSTO]...\n"
+"Tiivistä tai pura .xz-muotoisia TIEDOSTOja.\n"
+"\n"
+
+#: src/xz/message.c:1100
+msgid "Mandatory arguments to long options are mandatory for short options too.\n"
+msgstr "Pitkien valitsinten pakolliset argumentit ovat pakollisia myös lyhyille.\n"
+
+#: src/xz/message.c:1104
+msgid " Operation mode:\n"
+msgstr " Toimintatila:\n"
+
+#: src/xz/message.c:1107
+msgid ""
+"  -z, --compress      force compression\n"
+"  -d, --decompress    force decompression\n"
+"  -t, --test          test compressed file integrity\n"
+"  -l, --list          list information about .xz files"
+msgstr ""
+"  -z, --compress      pakota tiivistys\n"
+"  -d, --decompress    pakota purku\n"
+"  -t, --test          testaa tiivistetyn tiedoston eheys\n"
+"  -l, --list          näytä tietoja .xz-tiedostoista"
+
+#: src/xz/message.c:1113
+msgid ""
+"\n"
+" Operation modifiers:\n"
+msgstr ""
+"\n"
+" Toimintomääreet:\n"
+
+#: src/xz/message.c:1116
+msgid ""
+"  -k, --keep          keep (don't delete) input files\n"
+"  -f, --force         force overwrite of output file and (de)compress links\n"
+"  -c, --stdout        write to standard output and don't delete input files"
+msgstr ""
+"  -k, --keep          säilytä (poistamatta) syötetiedostot\n"
+"  -f, --force         pakota tulostiedostojen ylikirjoitus ja pura/tiivistä\n"
+"                      linkit\n"
+"  -c, --stdout        kirjoita vakiotulosteeseen äläkä poista syötetiedostoja"
+
+#: src/xz/message.c:1122
+msgid ""
+"      --single-stream decompress only the first stream, and silently\n"
+"                      ignore possible remaining input data"
+msgstr ""
+"      --single-stream pura vain ensimmäinen virta, ja ohita\n"
+"                      hiljaisesti mahdollinen jäljellä oleva syötedata"
+
+#: src/xz/message.c:1125
+msgid ""
+"      --no-sparse     do not create sparse files when decompressing\n"
+"  -S, --suffix=.SUF   use the suffix `.SUF' on compressed files\n"
+"      --files[=FILE]  read filenames to process from FILE; if FILE is\n"
+"                      omitted, filenames are read from the standard input;\n"
+"                      filenames must be terminated with the newline character\n"
+"      --files0[=FILE] like --files but use the null character as terminator"
+msgstr ""
+"      --no-sparse     älä luo hajanaisia tiedostoja purettaessa\n"
+"  -S, --suffix=.PÄÄTE käytä ”.PÄÄTE”-päätettä tiivistetyille tiedostoille\n"
+"      --files[=TIED]  lue käsiteltävät tiedostonimet TIEDostosta; jos TIED\n"
+"                      jätetään antamatta, tiedostonimet luetaan vakiosyötteestä;\n"
+"                      tiedostonimet on päätettävä rivinvaihtomerkillä\n"
+"      --files0[=TIED] kuten --files mutta käytä päättämiseen nul-merkkiä"
+
+#: src/xz/message.c:1134
+msgid ""
+"\n"
+" Basic file format and compression options:\n"
+msgstr ""
+"\n"
+" Tiedostomuodon ja tiivistyksen perusvalitsimet:\n"
+
+#: src/xz/message.c:1136
+msgid ""
+"  -F, --format=FMT    file format to encode or decode; possible values are\n"
+"                      `auto' (default), `xz', `lzma', and `raw'\n"
+"  -C, --check=CHECK   integrity check type: `none' (use with caution),\n"
+"                      `crc32', `crc64' (default), or `sha256'"
+msgstr ""
+"  -F, --format=MUOTO  tuotettava tai luettava tiedostomuotoa; vaihtoehdot\n"
+"                      ovat ”auto” (oletus), ”xz”, ”lzma” ja ”raw”\n"
+"  -C, --check=CHECK   eheystarkastuksen tyyppi: ”none” (käytä varoen),\n"
+"                      ”crc32”, ”crc64” (oletus) tai ”sha256”"
+
+#: src/xz/message.c:1141
+msgid "      --ignore-check  don't verify the integrity check when decompressing"
+msgstr "      --ignore-check  älä suorita eheystarkastusta purettaessa"
+
+#: src/xz/message.c:1145
+msgid ""
+"  -0 ... -9           compression preset; default is 6; take compressor *and*\n"
+"                      decompressor memory usage into account before using 7-9!"
+msgstr ""
+"  -0 ... -9           tiivistyksen esiasetus; oletus on 6; ota tiivistyksen\n"
+"                      *ja* purun muistinkäyttö huomioon ennen kuin käytät\n"
+"                      arvoja 7–9!"
+
+#: src/xz/message.c:1149
+msgid ""
+"  -e, --extreme       try to improve compression ratio by using more CPU time;\n"
+"                      does not affect decompressor memory requirements"
+msgstr ""
+"  -e, --extreme       yritä parantaa tiivistyssuhdetta käyttämällä enemmän\n"
+"                      suoritinaikaa; ei vaikuta purkimen muistivaatimuksiin"
+
+#: src/xz/message.c:1153
+msgid ""
+"  -T, --threads=NUM   use at most NUM threads; the default is 1; set to 0\n"
+"                      to use as many threads as there are processor cores"
+msgstr ""
+"  -T, --threads=MÄÄRÄ käytä enintää MÄÄRÄä säiettä; oletus on 1; asettamalla\n"
+"                      0:ksi käytetään suoritinytimien määrän verran säikeitä"
+
+#: src/xz/message.c:1158
+msgid ""
+"      --block-size=SIZE\n"
+"                      start a new .xz block after every SIZE bytes of input;\n"
+"                      use this to set the block size for threaded compression"
+msgstr ""
+"      --block-size=KOKO\n"
+"                      aloita uusi .xz-lohko aina KOKO syötetavun jälkeen; käytä\n"
+"                      tätä säikeistetyn tiivistyksen lohkokoon asettamiseen"
+
+#: src/xz/message.c:1162
+msgid ""
+"      --block-list=SIZES\n"
+"                      start a new .xz block after the given comma-separated\n"
+"                      intervals of uncompressed data"
+msgstr ""
+"      --block-list=KOOT\n"
+"                      aloita uusi .xz-lohko kun tiivistämätöntä dataa on\n"
+"                      käsitelty pilkuilla erotellut tavumäärät"
+
+# FIXME: tarvitaan kiva suomenkielinen termi block-verbille tässä merkityksessä
+#: src/xz/message.c:1166
+msgid ""
+"      --flush-timeout=TIMEOUT\n"
+"                      when compressing, if more than TIMEOUT milliseconds has\n"
+"                      passed since the previous flush and reading more input\n"
+"                      would block, all pending data is flushed out"
+msgstr ""
+"      --flush-timeout=AIKAKATKAISU\n"
+"                      jos tiivistettäessä on kulunut yli AIKAKATKAISU ms\n"
+"                      edellisestä huuhtomisesta ja syötteen lukemisen\n"
+"                      jatkaminen pysähtyisi, kaikki odottava data huuhdellaan"
+
+#: src/xz/message.c:1172
+#, no-c-format
+msgid ""
+"      --memlimit-compress=LIMIT\n"
+"      --memlimit-decompress=LIMIT\n"
+"  -M, --memlimit=LIMIT\n"
+"                      set memory usage limit for compression, decompression,\n"
+"                      or both; LIMIT is in bytes, % of RAM, or 0 for defaults"
+msgstr ""
+"      --memlimit-compress=RAJA\n"
+"      --memlimit-decompress=RAJA\n"
+"  -M, --memlimit=RAJA\n"
+"                      aseta muistinkäytön raja tiivistykselle, purkamiselle\n"
+"                      tai molemmille; RAJA on tavuja, %-osuus RAM-muistista\n"
+"                      tai 0 oletusarvojen käyttämiseksi"
+
+#: src/xz/message.c:1179
+msgid ""
+"      --no-adjust     if compression settings exceed the memory usage limit,\n"
+"                      give an error instead of adjusting the settings downwards"
+msgstr ""
+"      --no-adjust     jos tiivistysasetukset ylittävät muistinkäytön rajan,\n"
+"                      anna virhe äläkä pudota asetuksia alaspäin"
+
+#: src/xz/message.c:1185
+msgid ""
+"\n"
+" Custom filter chain for compression (alternative for using presets):"
+msgstr ""
+"\n"
+" Mukautettu suodinketju tiivistykselle (vaihtoehto esiasetuksille):"
+
+#: src/xz/message.c:1194
+msgid ""
+"\n"
+"  --lzma1[=OPTS]      LZMA1 or LZMA2; OPTS is a comma-separated list of zero or\n"
+"  --lzma2[=OPTS]      more of the following options (valid values; default):\n"
+"                        preset=PRE reset options to a preset (0-9[e])\n"
+"                        dict=NUM   dictionary size (4KiB - 1536MiB; 8MiB)\n"
+"                        lc=NUM     number of literal context bits (0-4; 3)\n"
+"                        lp=NUM     number of literal position bits (0-4; 0)\n"
+"                        pb=NUM     number of position bits (0-4; 2)\n"
+"                        mode=MODE  compression mode (fast, normal; normal)\n"
+"                        nice=NUM   nice length of a match (2-273; 64)\n"
+"                        mf=NAME    match finder (hc3, hc4, bt2, bt3, bt4; bt4)\n"
+"                        depth=NUM  maximum search depth; 0=automatic (default)"
+msgstr ""
+"\n"
+"  --lzma1[=ASET]      LZMA1 tai LZMA2; ASETukset ovat yksi tai useampi\n"
+"  --lzma2[=ASET]      seuraavista asetuksista pilkuilla eroteltuina\n"
+"                      (kelvolliset arvot; oletus):\n"
+"                        preset=ESI palauta asetukset esiasetukseen (0-9[e])\n"
+"                        dict=LUKU  sanaston koko (4KiB – 1536MiB; 8MiB)\n"
+"                        lc=LUKU    literal context -bittien määrä (0-4; 3)\n"
+"                        lp=LUKU    literal position -bittien määrä (0-4; 0)\n"
+"                        pb=LUKU    position -bittien määrä (0-4; 2)\n"
+"                        mode=TILA  tiivistystila (fast, normal; normal)\n"
+"                        nice=LUKU  täsmäävyyden nice-pituus (2–273; 64)\n"
+"                        mf=NIMI    täsmäävyydenetsin (hc3, hc4, bt2, bt3,\n"
+"                                   bt4; bt4)\n"
+"                        depth=LUKU enimmäishakusyvyys; 0=automaattinen (oletus)"
+
+#: src/xz/message.c:1209
+msgid ""
+"\n"
+"  --x86[=OPTS]        x86 BCJ filter (32-bit and 64-bit)\n"
+"  --powerpc[=OPTS]    PowerPC BCJ filter (big endian only)\n"
+"  --ia64[=OPTS]       IA-64 (Itanium) BCJ filter\n"
+"  --arm[=OPTS]        ARM BCJ filter (little endian only)\n"
+"  --armthumb[=OPTS]   ARM-Thumb BCJ filter (little endian only)\n"
+"  --sparc[=OPTS]      SPARC BCJ filter\n"
+"                      Valid OPTS for all BCJ filters:\n"
+"                        start=NUM  start offset for conversions (default=0)"
+msgstr ""
+"\n"
+"  --x86[=ASET]        x86:n BCJ-suodin (32- ja 64-bittiset)\n"
+"  --powerpc[=ASET]    PowerPC:n BCJ-suodin (vain big endian)\n"
+"  --ia64[=ASET]       IA-64:n (Itanium) BCJ-suodin\n"
+"  --arm[=ASET]        ARMin BCJ-suodin (vain little endian)\n"
+"  --armthumb[=ASET]   ARM-Thumbin BCJ-suodin (vain little endian)\n"
+"  --sparc[=ASET]      SPARCin BCJ-suodin\n"
+"                      Kelvolliset ASETukset kaikille BCJ-suotimille:\n"
+"                        start=LUKU muunnoksien aloitussiirtymä (oletus=0)"
+
+#: src/xz/message.c:1221
+msgid ""
+"\n"
+"  --delta[=OPTS]      Delta filter; valid OPTS (valid values; default):\n"
+"                        dist=NUM   distance between bytes being subtracted\n"
+"                                   from each other (1-256; 1)"
+msgstr ""
+"\n"
+"  --delta[=ASET]      Muutossuodin; kelvolliset ASETukset (kelv. arvot; oletus):\n"
+"                        dist=LUKU  toisistaan vähennettävien tavujen\n"
+"                                   välinen etäisyys (1–256; 1)"
+
+#: src/xz/message.c:1229
+msgid ""
+"\n"
+" Other options:\n"
+msgstr ""
+"\n"
+" Muut valitsimet:\n"
+
+#: src/xz/message.c:1232
+msgid ""
+"  -q, --quiet         suppress warnings; specify twice to suppress errors too\n"
+"  -v, --verbose       be verbose; specify twice for even more verbose"
+msgstr ""
+"  -q, --quiet         vaienna varoitukset; kahdesti antamalla myös virheet\n"
+"  -v, --verbose       ole lavea; kahdesti antamalla vieläkin laveampi"
+
+#: src/xz/message.c:1237
+msgid "  -Q, --no-warn       make warnings not affect the exit status"
+msgstr "  -Q, --no-warn       älkööt varoitukset vaikuttako paluuarvoon"
+
+#: src/xz/message.c:1239
+msgid "      --robot         use machine-parsable messages (useful for scripts)"
+msgstr "      --robot         käytä koneluettavia viestejä (sopii skripteihin)"
+
+#: src/xz/message.c:1242
+msgid ""
+"      --info-memory   display the total amount of RAM and the currently active\n"
+"                      memory usage limits, and exit"
+msgstr ""
+"      --info-memory   näytä RAM-muistin kokonaismäärä ja parhaillaan\n"
+"                      vallitsevat muistinkäytön rajat, ja poistu"
+
+#: src/xz/message.c:1245
+msgid ""
+"  -h, --help          display the short help (lists only the basic options)\n"
+"  -H, --long-help     display this long help and exit"
+msgstr ""
+"  -h, --help          näytä lyhyt ohje (kertoo vain perusvalitsimet)\n"
+"  -H, --long-help     näytä tämä pitkä ohje ja poistu"
+
+#: src/xz/message.c:1249
+msgid ""
+"  -h, --help          display this short help and exit\n"
+"  -H, --long-help     display the long help (lists also the advanced options)"
+msgstr ""
+"  -h, --help          näytä tämä lyhyt ohje ja poistu\n"
+"  -H, --long-help     näytä pitkä ohje (kertoo myös lisävalitsimet)"
+
+#: src/xz/message.c:1254
+msgid "  -V, --version       display the version number and exit"
+msgstr "  -V, --version       näytä versionumero ja poistu"
+
+#: src/xz/message.c:1256
+msgid ""
+"\n"
+"With no FILE, or when FILE is -, read standard input.\n"
+msgstr ""
+"\n"
+"Jos TIEDOSTOa ei ole annettu, tai se on ”-”, luetaan vakiosyötettä.\n"
+
+#. TRANSLATORS: This message indicates the bug reporting address
+#. for this package. Please add _another line_ saying
+#. "Report translation bugs to <...>\n" with the email or WWW
+#. address for translation bugs. Thanks.
+#: src/xz/message.c:1262
+#, c-format
+msgid "Report bugs to <%s> (in English or Finnish).\n"
+msgstr "Ilmoita ohjelmistovioista (suomeksi) osoitteeseen <%s>.\n"
+
+#: src/xz/message.c:1264
+#, c-format
+msgid "%s home page: <%s>\n"
+msgstr "%s -kotisivu: <%s>\n"
+
+#: src/xz/message.c:1268
+msgid "THIS IS A DEVELOPMENT VERSION NOT INTENDED FOR PRODUCTION USE."
+msgstr "TÄMÄ ON KEHITYSVERSIO, JOTA EI OLE TARKOITETTU TUOTANTOKÄYTTÖÖN."
+
+#: src/xz/options.c:86
+#, c-format
+msgid "%s: Options must be `name=value' pairs separated with commas"
+msgstr "%s: Asetusten on oltava pilkuilla eroteltuja ”nimi=arvo” -pareja"
+
+#: src/xz/options.c:93
+#, c-format
+msgid "%s: Invalid option name"
+msgstr "%s: Virheellinen asetuksen nimi"
+
+#: src/xz/options.c:113
+#, c-format
+msgid "%s: Invalid option value"
+msgstr "%s: Virheellinen asetuksen arvo"
+
+#: src/xz/options.c:247
+#, c-format
+msgid "Unsupported LZMA1/LZMA2 preset: %s"
+msgstr "Ei-tuettu LZMA1/LZMA2-esiasetus: %s"
+
+#: src/xz/options.c:355
+msgid "The sum of lc and lp must not exceed 4"
+msgstr "lc:n ja lp:n summa ei saa olla yli 4"
+
+#: src/xz/options.c:359
+#, c-format
+msgid "The selected match finder requires at least nice=%<PRIu32>"
+msgstr "Valittu täsmäävyydenetsin vaatii vähintään nice-arvon=%<PRIu32>"
+
+#: src/xz/suffix.c:133 src/xz/suffix.c:258
+#, c-format
+msgid "%s: With --format=raw, --suffix=.SUF is required unless writing to stdout"
+msgstr "%s: --format=raw vaatii, että --suffix=.PÄÄTE on annettu, ellei kirjoiteta vakiotulosteeseen"
+
+#: src/xz/suffix.c:164
+#, c-format
+msgid "%s: Filename has an unknown suffix, skipping"
+msgstr "%s: Tiedostonimen pääte on tuntematon, ohitetaan"
+
+#: src/xz/suffix.c:185
+#, c-format
+msgid "%s: File already has `%s' suffix, skipping"
+msgstr "%s: Tiedostolla on jo ”%s”-pääte, ohitetaan"
+
+#: src/xz/suffix.c:393
+#, c-format
+msgid "%s: Invalid filename suffix"
+msgstr "%s: Virheellinen tiedostonimen pääte"
+
+#: src/xz/util.c:71
+#, c-format
+msgid "%s: Value is not a non-negative decimal integer"
+msgstr "%s: Arvo ei ole ei ole epänegatiivinen kymmenkantainen kokonaisluku"
+
+#: src/xz/util.c:113
+#, c-format
+msgid "%s: Invalid multiplier suffix"
+msgstr "%s: Tuntematon kerroin"
+
+#: src/xz/util.c:115
+msgid "Valid suffixes are `KiB' (2^10), `MiB' (2^20), and `GiB' (2^30)."
+msgstr "Kelvolliset kertoimet ovat ”KiB” (2¹⁰), ”MiB” (2²⁰) ja ”GiB” (2³⁰)."
+
+#: src/xz/util.c:132
+#, c-format
+msgid "Value of the option `%s' must be in the range [%<PRIu64>, %<PRIu64>]"
+msgstr "Valitsimen ”%s” arvon on oltava välillä [%<PRIu64>, %<PRIu64>]"
+
+#: src/xz/util.c:267
+msgid "Empty filename, skipping"
+msgstr "Tyhjä tiedostonimi, ohitetaan"
+
+#: src/xz/util.c:281
+msgid "Compressed data cannot be read from a terminal"
+msgstr "Tiivistettyä dataa ei voi lukea päätteestä"
+
+#: src/xz/util.c:294
+msgid "Compressed data cannot be written to a terminal"
+msgstr "Tiivistettyä dataa ei voi kirjoittaa päätteeseen"
+
+#: src/common/tuklib_exit.c:40
+msgid "Writing to standard output failed"
+msgstr "Vakiotulosteeseen kirjoitus epäonnistui"
+
+#: src/common/tuklib_exit.c:43
+msgid "Unknown error"
+msgstr "Tuntematon virhe"
+
+#~ msgid "Sandbox is disabled due to incompatible command line arguments"
+#~ msgstr "Hiekkalaatikko on poistettu käytöstä yhteensopimattomien komentoriviargumenttien vuoksi"
+
+#~ msgid "Sandbox was successfully enabled"
+#~ msgstr "Hiekkalaatikko otettiin onnistuneesti käyttöön"
index a5f7eda..b4f2487 100644 (file)
Binary files a/po/fr.gmo and b/po/fr.gmo differ
index 8029a00..bce4234 100644 (file)
--- a/po/fr.po
+++ b/po/fr.po
@@ -1,34 +1,36 @@
 # XZ Utils French Translation
 # This file is put in the public domain.
 # Adrien Nader <adrien@notk.org>, 2011-2014.
+# Stéphane Aulery <lkppo@free.fr>, 2019.
 #
 msgid ""
 msgstr ""
-"Project-Id-Version: xz-utils\n"
+"Project-Id-Version: xz-5.2.4\n"
 "Report-Msgid-Bugs-To: lasse.collin@tukaani.org\n"
-"POT-Creation-Date: 2018-04-29 18:19+0300\n"
-"PO-Revision-Date: 2010-09-24 21;12+0200\n"
-"Last-Translator: Adrien Nader <adrien@notk.org>\n"
-"Language-Team: None\n"
+"POT-Creation-Date: 2020-03-17 16:29+0200\n"
+"PO-Revision-Date: 2019-05-12 05:46+0200\n"
+"Last-Translator: Stéphane Aulery <lkppo@free.fr>\n"
+"Language-Team: French <traduc@traduc.org>\n"
 "Language: fr\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
+"X-Bugs: Report translation errors to the Language-Team address.\n"
 "Plural-Forms: nplurals=2; plural=(n==1) ? 0 : 1;\n"
 
 #: src/xz/args.c:63
 #, c-format
 msgid "%s: Invalid argument to --block-list"
-msgstr ""
+msgstr "%s : argument de l'option --block-list invalide"
 
 #: src/xz/args.c:73
 #, c-format
 msgid "%s: Too many arguments to --block-list"
-msgstr ""
+msgstr "%s : trop d'arguments pour l'option --block-list"
 
 #: src/xz/args.c:102
 msgid "0 can only be used as the last element in --block-list"
-msgstr ""
+msgstr "0 peut seulement être utilisé en dernier élément de --block-list"
 
 #: src/xz/args.c:406
 #, c-format
@@ -51,11 +53,11 @@ msgstr "La variable d'environnement %s contient trop d'arguments"
 
 #: src/xz/args.c:643
 msgid "Compression support was disabled at build time"
-msgstr ""
+msgstr "Le support de la compression à était désactivé lors de la compilaton"
 
 #: src/xz/args.c:650
 msgid "Decompression support was disabled at build time"
-msgstr ""
+msgstr "Le support de la décompression a été désactivé lors de la compilation"
 
 #: src/xz/coder.c:110
 msgid "Maximum number of filters is four"
@@ -83,11 +85,11 @@ msgstr "Le filtre LZMA1 ne peut être utilisé avec le format .xz"
 
 #: src/xz/coder.c:209
 msgid "The filter chain is incompatible with --flush-timeout"
-msgstr ""
+msgstr "La Chaine de filtre est incompatible avec --flush-timeout"
 
 #: src/xz/coder.c:215
 msgid "Switching to single-threaded mode due to --flush-timeout"
-msgstr ""
+msgstr "Bascule en mode mono-processus à cause de --flush-timeout"
 
 #: src/xz/coder.c:235
 #, c-format
@@ -118,19 +120,11 @@ msgstr "Taille du dictionnaire LZMA%c réduite de %s MiB à %s MiB pour ne pas d
 msgid "Error creating a pipe: %s"
 msgstr "Impossible de créer un tube anonyme (pipe) : %s"
 
-#: src/xz/file_io.c:173
-msgid "Sandbox is disabled due to incompatible command line arguments"
-msgstr ""
-
-#: src/xz/file_io.c:216
-msgid "Sandbox was successfully enabled"
-msgstr ""
-
-#: src/xz/file_io.c:220
+#: src/xz/file_io.c:224
 msgid "Failed to enable the sandbox"
-msgstr ""
+msgstr "Echec de l'activation de la sandboxe"
 
-#: src/xz/file_io.c:262
+#: src/xz/file_io.c:266
 #, c-format
 msgid "%s: poll() failed: %s"
 msgstr "%s : L'appel à la fonction poll() a échoué : %s"
@@ -145,27 +139,27 @@ msgstr "%s : L'appel à la fonction poll() a échoué : %s"
 #. it is possible that the user has put a new file in place
 #. of the original file, and in that case it obviously
 #. shouldn't be removed.
-#: src/xz/file_io.c:332
+#: src/xz/file_io.c:333
 #, c-format
 msgid "%s: File seems to have been moved, not removing"
 msgstr "%s : Le fichier a apparemment été déplacé, suppression annulée"
 
-#: src/xz/file_io.c:339 src/xz/file_io.c:878
+#: src/xz/file_io.c:340 src/xz/file_io.c:882
 #, c-format
 msgid "%s: Cannot remove: %s"
 msgstr "%s : Impossible de supprimer : %s"
 
-#: src/xz/file_io.c:364
+#: src/xz/file_io.c:366
 #, c-format
 msgid "%s: Cannot set the file owner: %s"
 msgstr "%s : Impossible de modifier le propriétaire du fichier : %s"
 
-#: src/xz/file_io.c:370
+#: src/xz/file_io.c:372
 #, c-format
 msgid "%s: Cannot set the file group: %s"
 msgstr "%s : Impossible de modifier le groupe propriétaire du fichier : %s"
 
-#: src/xz/file_io.c:389
+#: src/xz/file_io.c:391
 #, c-format
 msgid "%s: Cannot set the file permissions: %s"
 msgstr "%s : Impossible de modifier les permissions du fichier : %s"
@@ -178,103 +172,103 @@ msgstr "%s : Impossible de modifier les permissions du fichier : %s"
 # - make it more difficult to look up in search engines; it might happen one in
 # a million times, if we dilute the error message in 20 languages, it will be
 # almost impossible to find an explanation and support for the error.
-#: src/xz/file_io.c:515
+#: src/xz/file_io.c:517
 #, c-format
 msgid "Error getting the file status flags from standard input: %s"
-msgstr ""
+msgstr "Echec de la lecture du drapeau d'état du fichier depuis la sortie standard : %s"
 
-#: src/xz/file_io.c:572 src/xz/file_io.c:634
+#: src/xz/file_io.c:574 src/xz/file_io.c:636
 #, c-format
 msgid "%s: Is a symbolic link, skipping"
 msgstr "%s est un lien symbolique : ignoré"
 
-#: src/xz/file_io.c:663
+#: src/xz/file_io.c:665
 #, c-format
 msgid "%s: Is a directory, skipping"
 msgstr "%s est un répertoire : ignoré"
 
-#: src/xz/file_io.c:669
+#: src/xz/file_io.c:671
 #, c-format
 msgid "%s: Not a regular file, skipping"
 msgstr "%s n'est pas un fichier régulier : ignoré"
 
-#: src/xz/file_io.c:686
+#: src/xz/file_io.c:688
 #, c-format
 msgid "%s: File has setuid or setgid bit set, skipping"
 msgstr "%s : Le fichier possède les bits `setuid' ou `setgid' : ignoré"
 
-#: src/xz/file_io.c:693
+#: src/xz/file_io.c:695
 #, c-format
 msgid "%s: File has sticky bit set, skipping"
 msgstr "%s : Le fichier possède le bit `sticky' : ignoré"
 
-#: src/xz/file_io.c:700
+#: src/xz/file_io.c:702
 #, c-format
 msgid "%s: Input file has more than one hard link, skipping"
 msgstr "%s : Le fichier d'entrée a plus d'un lien matériel : ignoré"
 
 # See note from translator above titled "file status flags".
-#: src/xz/file_io.c:788
+#: src/xz/file_io.c:792
 #, c-format
 msgid "Error restoring the status flags to standard input: %s"
-msgstr ""
+msgstr "Erreur de restauration du drapeau d'état de l'entrée standard : %s"
 
 # See note from translator above titled "file status flags".
-#: src/xz/file_io.c:836
+#: src/xz/file_io.c:840
 #, c-format
 msgid "Error getting the file status flags from standard output: %s"
-msgstr ""
+msgstr "Erreur de lecture du drapeau d'état du fichier depuis la sortie standard : %s"
 
-#: src/xz/file_io.c:1014
+#: src/xz/file_io.c:1018
 #, c-format
 msgid "Error restoring the O_APPEND flag to standard output: %s"
 msgstr "Impossible de rétablir le drapeau O_APPEND sur la sortie standard : %s"
 
-#: src/xz/file_io.c:1026
+#: src/xz/file_io.c:1030
 #, c-format
 msgid "%s: Closing the file failed: %s"
 msgstr "%s : Impossible de fermer le fichier : %s"
 
-#: src/xz/file_io.c:1062 src/xz/file_io.c:1288
+#: src/xz/file_io.c:1066 src/xz/file_io.c:1309
 #, c-format
 msgid "%s: Seeking failed when trying to create a sparse file: %s"
 msgstr "%s : Impossible de se déplacer dans le fichier pour créer un 'sparse file' : %s"
 
-#: src/xz/file_io.c:1157
+#: src/xz/file_io.c:1167
 #, c-format
 msgid "%s: Read error: %s"
 msgstr "%s : Erreur d'écriture : %s"
 
-#: src/xz/file_io.c:1177
+#: src/xz/file_io.c:1191
 #, c-format
 msgid "%s: Error seeking the file: %s"
 msgstr "%s : Impossible de se déplacer dans le fichier : %s"
 
-#: src/xz/file_io.c:1187
+#: src/xz/file_io.c:1201
 #, c-format
 msgid "%s: Unexpected end of file"
 msgstr "%s : Fin de fichier inattendue"
 
-#: src/xz/file_io.c:1246
+#: src/xz/file_io.c:1260
 #, c-format
 msgid "%s: Write error: %s"
 msgstr "%s : Erreur d'écriture : %s"
 
-#: src/xz/hardware.c:107
+#: src/xz/hardware.c:137
 msgid "Disabled"
 msgstr "Désactivé"
 
 #. TRANSLATORS: Test with "xz --info-memory" to see if
 #. the alignment looks nice.
-#: src/xz/hardware.c:126
+#: src/xz/hardware.c:156
 msgid "Total amount of physical memory (RAM): "
 msgstr "Quantité totale de mémoire physique (RAM) :  "
 
-#: src/xz/hardware.c:128
+#: src/xz/hardware.c:158
 msgid "Memory usage limit for compression:    "
 msgstr "Limite d'utilisation pour la compression :   "
 
-#: src/xz/hardware.c:130
+#: src/xz/hardware.c:160
 msgid "Memory usage limit for decompression:  "
 msgstr "Limite d'utilisation pour la décompression : "
 
@@ -501,68 +495,68 @@ msgstr "Impossible de lire à la fois les données et les noms de fichiers depui
 #. of the line in messages. Usually it becomes "xz: ".
 #. This is a translatable string because French needs
 #. a space before a colon.
-#: src/xz/message.c:714
+#: src/xz/message.c:728
 #, c-format
 msgid "%s: "
 msgstr "%s : "
 
-#: src/xz/message.c:777 src/xz/message.c:827
+#: src/xz/message.c:791 src/xz/message.c:841
 msgid "Internal error (bug)"
 msgstr "Erreur interne (bug)"
 
-#: src/xz/message.c:784
+#: src/xz/message.c:798
 msgid "Cannot establish signal handlers"
 msgstr "Impossible d'installer le gestionnaire de signaux"
 
-#: src/xz/message.c:793
+#: src/xz/message.c:807
 msgid "No integrity check; not verifying file integrity"
 msgstr "Pas de données de vérification d'intégrité ; vérification non effectuée"
 
-#: src/xz/message.c:796
+#: src/xz/message.c:810
 msgid "Unsupported type of integrity check; not verifying file integrity"
 msgstr "Méthode de vérification d'intégrité non prise en charge ; vérification non effectuée"
 
-#: src/xz/message.c:803
+#: src/xz/message.c:817
 msgid "Memory usage limit reached"
 msgstr "Limite d'utilisation mémoire atteinte"
 
-#: src/xz/message.c:806
+#: src/xz/message.c:820
 msgid "File format not recognized"
 msgstr "Format de fichier inconnu"
 
-#: src/xz/message.c:809
+#: src/xz/message.c:823
 msgid "Unsupported options"
 msgstr "Options non prises en charge"
 
-#: src/xz/message.c:812
+#: src/xz/message.c:826
 msgid "Compressed data is corrupt"
 msgstr "Les données compressées sont corrompues"
 
-#: src/xz/message.c:815
+#: src/xz/message.c:829
 msgid "Unexpected end of input"
 msgstr "Fin des données inattendue "
 
-#: src/xz/message.c:848
+#: src/xz/message.c:862
 #, c-format
 msgid "%s MiB of memory is required. The limiter is disabled."
 msgstr "%s MiB de mémoire sont nécessaires. La limite est désactivée."
 
-#: src/xz/message.c:876
+#: src/xz/message.c:890
 #, c-format
 msgid "%s MiB of memory is required. The limit is %s."
 msgstr "%s MiB de mémoire sont nécessaires, la limite étant %s."
 
-#: src/xz/message.c:1043
+#: src/xz/message.c:1057
 #, c-format
 msgid "%s: Filter chain: %s\n"
 msgstr "%s : Enchaînement de filtres : %s\n"
 
-#: src/xz/message.c:1053
+#: src/xz/message.c:1067
 #, c-format
 msgid "Try `%s --help' for more information."
 msgstr "Éxécutez `%s --help' pour obtenir davantage d'informations."
 
-#: src/xz/message.c:1079
+#: src/xz/message.c:1093
 #, c-format
 msgid ""
 "Usage: %s [OPTION]... [FILE]...\n"
@@ -573,17 +567,17 @@ msgstr ""
 "Compresse ou decompresse FICHIER(s) au format .xz.\n"
 "\n"
 
-#: src/xz/message.c:1086
+#: src/xz/message.c:1100
 msgid "Mandatory arguments to long options are mandatory for short options too.\n"
 msgstr ""
 "Les arguments obligatoires pour les options longues le sont aussi pour les\n"
 "options courtes.\n"
 
-#: src/xz/message.c:1090
+#: src/xz/message.c:1104
 msgid " Operation mode:\n"
 msgstr " Mode d'opération :\n"
 
-#: src/xz/message.c:1093
+#: src/xz/message.c:1107
 msgid ""
 "  -z, --compress      force compression\n"
 "  -d, --decompress    force decompression\n"
@@ -595,7 +589,7 @@ msgstr ""
 "  -t, --test          tester l'intégrité du fichier compressé\n"
 "  -l, --list          lister les informations sur les fichiers .xz"
 
-#: src/xz/message.c:1099
+#: src/xz/message.c:1113
 msgid ""
 "\n"
 " Operation modifiers:\n"
@@ -603,7 +597,7 @@ msgstr ""
 "\n"
 " Modificateurs :\n"
 
-#: src/xz/message.c:1102
+#: src/xz/message.c:1116
 msgid ""
 "  -k, --keep          keep (don't delete) input files\n"
 "  -f, --force         force overwrite of output file and (de)compress links\n"
@@ -615,7 +609,7 @@ msgstr ""
 "  -c, --stdout        écrire sur la sortie standard et ne pas supprimer les\n"
 "                      fichiers d'entrée"
 
-#: src/xz/message.c:1108
+#: src/xz/message.c:1122
 msgid ""
 "      --single-stream decompress only the first stream, and silently\n"
 "                      ignore possible remaining input data"
@@ -623,7 +617,7 @@ msgstr ""
 "      --single-stream décompresser uniquement le premier flux et ignorer\n"
 "                      silencieusement les données éventuellement restantes"
 
-#: src/xz/message.c:1111
+#: src/xz/message.c:1125
 msgid ""
 "      --no-sparse     do not create sparse files when decompressing\n"
 "  -S, --suffix=.SUF   use the suffix `.SUF' on compressed files\n"
@@ -639,7 +633,7 @@ msgstr ""
 "                      et doivent être suivis d'un caractère retour à la ligne\n"
 "      --files0[=FILE] comme --files mais avec un caractère null comme séparateur"
 
-#: src/xz/message.c:1120
+#: src/xz/message.c:1134
 msgid ""
 "\n"
 " Basic file format and compression options:\n"
@@ -647,7 +641,7 @@ msgstr ""
 "\n"
 " Options basiques de format de fichier et de compression :\n"
 
-#: src/xz/message.c:1122
+#: src/xz/message.c:1136
 msgid ""
 "  -F, --format=FMT    file format to encode or decode; possible values are\n"
 "                      `auto' (default), `xz', `lzma', and `raw'\n"
@@ -659,13 +653,13 @@ msgstr ""
 "  -C, --check=CHECK   type de vérification d'intégrité : `none' (à utiliser avec\n"
 "                      précaution), `crc32', `crc64' (par défaut) ou `sha256'"
 
-#: src/xz/message.c:1127
+#: src/xz/message.c:1141
 msgid "      --ignore-check  don't verify the integrity check when decompressing"
 msgstr ""
 "      --ignore-check  ne pas vérifier l'intégrité des données lors de\n"
 "                      la décompression"
 
-#: src/xz/message.c:1131
+#: src/xz/message.c:1145
 msgid ""
 "  -0 ... -9           compression preset; default is 6; take compressor *and*\n"
 "                      decompressor memory usage into account before using 7-9!"
@@ -674,7 +668,7 @@ msgstr ""
 "                      l'utilisation mémoire du compresseur *et* du décompresseur\n"
 "                      avant d'utiliser 7, 8 ou 9 !"
 
-#: src/xz/message.c:1135
+#: src/xz/message.c:1149
 msgid ""
 "  -e, --extreme       try to improve compression ratio by using more CPU time;\n"
 "                      does not affect decompressor memory requirements"
@@ -683,7 +677,7 @@ msgstr ""
 "                      de temps processeur ;\n"
 "                      n'affecte pas les besoins mémoire du décompresseur"
 
-#: src/xz/message.c:1139
+#: src/xz/message.c:1153
 msgid ""
 "  -T, --threads=NUM   use at most NUM threads; the default is 1; set to 0\n"
 "                      to use as many threads as there are processor cores"
@@ -692,7 +686,7 @@ msgstr ""
 "                      valeur 0 est spéciale et équivaut au nombre de processeurs\n"
 "                      de la machine"
 
-#: src/xz/message.c:1144
+#: src/xz/message.c:1158
 msgid ""
 "      --block-size=SIZE\n"
 "                      start a new .xz block after every SIZE bytes of input;\n"
@@ -702,7 +696,7 @@ msgstr ""
 "                      débuter un bloc XZ après chaque TAILLE octets de données\n"
 "                      d'entrée ; ce réglage sert pour la compression paralléle"
 
-#: src/xz/message.c:1148
+#: src/xz/message.c:1162
 msgid ""
 "      --block-list=SIZES\n"
 "                      start a new .xz block after the given comma-separated\n"
@@ -712,15 +706,19 @@ msgstr ""
 "                      débuter des blocs XZ après les TAILLES octets de données\n"
 "                      spécifiées avec des virgules pour séparateur"
 
-#: src/xz/message.c:1152
+#: src/xz/message.c:1166
 msgid ""
 "      --flush-timeout=TIMEOUT\n"
 "                      when compressing, if more than TIMEOUT milliseconds has\n"
 "                      passed since the previous flush and reading more input\n"
 "                      would block, all pending data is flushed out"
 msgstr ""
+"      --flush-timeout=TIMEOUT\n"
+"                      pendant la compression, si plus de TIMEOUT ms ont passées\n"
+"                      depuis le dernier flush et que la lecture est bloquée,\n"
+"                      toutes les données en attente snt écrites"
 
-#: src/xz/message.c:1158
+#: src/xz/message.c:1172
 #, no-c-format
 msgid ""
 "      --memlimit-compress=LIMIT\n"
@@ -736,7 +734,7 @@ msgstr ""
 "                      décompression ou les deux ; LIMIT est en octets,\n"
 "                      pourcentage de RAM, ou 0 pour la valeur par défaut"
 
-#: src/xz/message.c:1165
+#: src/xz/message.c:1179
 msgid ""
 "      --no-adjust     if compression settings exceed the memory usage limit,\n"
 "                      give an error instead of adjusting the settings downwards"
@@ -745,7 +743,7 @@ msgstr ""
 "                      d'utilisation mémoire, renvoyer une erreur plutôt que de\n"
 "                      diminuer les réglages"
 
-#: src/xz/message.c:1171
+#: src/xz/message.c:1185
 msgid ""
 "\n"
 " Custom filter chain for compression (alternative for using presets):"
@@ -753,7 +751,7 @@ msgstr ""
 "\n"
 " Chaîne de filtres de compression personnalisée (en lieu des préréglages) :"
 
-#: src/xz/message.c:1180
+#: src/xz/message.c:1194
 msgid ""
 "\n"
 "  --lzma1[=OPTS]      LZMA1 or LZMA2; OPTS is a comma-separated list of zero or\n"
@@ -782,7 +780,7 @@ msgstr ""
 "                        depth=NUM  profondeur de recherche maximale ;\n"
 "                                      0=automatique (par défaut)"
 
-#: src/xz/message.c:1195
+#: src/xz/message.c:1209
 msgid ""
 "\n"
 "  --x86[=OPTS]        x86 BCJ filter (32-bit and 64-bit)\n"
@@ -804,7 +802,7 @@ msgstr ""
 "                      OPTS valides pour tous les filtres BCJ :\n"
 "                        start=NUM  position de début de la conversion (défaut=0)"
 
-#: src/xz/message.c:1207
+#: src/xz/message.c:1221
 msgid ""
 "\n"
 "  --delta[=OPTS]      Delta filter; valid OPTS (valid values; default):\n"
@@ -816,7 +814,7 @@ msgstr ""
 "                        dist=NUM   distance entre les octets soustraits les\n"
 "                                   uns aux autres (1-256 ; 1)"
 
-#: src/xz/message.c:1215
+#: src/xz/message.c:1229
 msgid ""
 "\n"
 " Other options:\n"
@@ -824,7 +822,7 @@ msgstr ""
 "\n"
 " Autres options :\n"
 
-#: src/xz/message.c:1218
+#: src/xz/message.c:1232
 msgid ""
 "  -q, --quiet         suppress warnings; specify twice to suppress errors too\n"
 "  -v, --verbose       be verbose; specify twice for even more verbose"
@@ -833,17 +831,17 @@ msgstr ""
 "                      aussi masquer les erreurs\n"
 "  -v, --verbose       être bavard ; spécifier deux fois pour l'être davantage"
 
-#: src/xz/message.c:1223
+#: src/xz/message.c:1237
 msgid "  -Q, --no-warn       make warnings not affect the exit status"
 msgstr "  -Q, --no-warn       les avertissements ne modifient pas le code de sortie"
 
-#: src/xz/message.c:1225
+#: src/xz/message.c:1239
 msgid "      --robot         use machine-parsable messages (useful for scripts)"
 msgstr ""
 "      --robot         utiliser des messages lisibles par un programme\n"
 "                      (utile pour les scripts)"
 
-#: src/xz/message.c:1228
+#: src/xz/message.c:1242
 msgid ""
 "      --info-memory   display the total amount of RAM and the currently active\n"
 "                      memory usage limits, and exit"
@@ -851,7 +849,7 @@ msgstr ""
 "      --info-memory   afficher la quantité totale de RAM ainsi que la limite\n"
 "                      actuelle d'utilisation mémoire puis quitter"
 
-#: src/xz/message.c:1231
+#: src/xz/message.c:1245
 msgid ""
 "  -h, --help          display the short help (lists only the basic options)\n"
 "  -H, --long-help     display this long help and exit"
@@ -859,7 +857,7 @@ msgstr ""
 "  -h, --help          afficher l'aide courte (ne liste que les options de base)\n"
 "  -H, --long-help     afficher l'aide longue (ceci) puis quitter"
 
-#: src/xz/message.c:1235
+#: src/xz/message.c:1249
 msgid ""
 "  -h, --help          display this short help and exit\n"
 "  -H, --long-help     display the long help (lists also the advanced options)"
@@ -867,11 +865,11 @@ msgstr ""
 "  -h, --help          afficher l'aide courte (ceci) puis quitter\n"
 "  -H, --long-help     afficher l'aide longue (liste aussi les options avancées)"
 
-#: src/xz/message.c:1240
+#: src/xz/message.c:1254
 msgid "  -V, --version       display the version number and exit"
 msgstr "  -V, --version       afficher le numéro de version puis quitter"
 
-#: src/xz/message.c:1242
+#: src/xz/message.c:1256
 msgid ""
 "\n"
 "With no FILE, or when FILE is -, read standard input.\n"
@@ -883,21 +881,21 @@ msgstr ""
 #. for this package. Please add _another line_ saying
 #. "Report translation bugs to <...>\n" with the email or WWW
 #. address for translation bugs. Thanks.
-#: src/xz/message.c:1248
+#: src/xz/message.c:1262
 #, c-format
 msgid "Report bugs to <%s> (in English or Finnish).\n"
 msgstr ""
-"Signaler les bogues à <%s> (en anglais ou en finlandais).\n"
-"Signaler les bogues de traduction à <adrien@notk.org>.\n"
+"Signaler les bogues à <%s> (en anglais ou en finnois).\n"
+"Signaler les bogues de traduction à <lkppo@free.fr>.\n"
 
-#: src/xz/message.c:1250
+#: src/xz/message.c:1264
 #, c-format
 msgid "%s home page: <%s>\n"
 msgstr "Page du projet %s : <%s>\n"
 
-#: src/xz/message.c:1254
+#: src/xz/message.c:1268
 msgid "THIS IS A DEVELOPMENT VERSION NOT INTENDED FOR PRODUCTION USE."
-msgstr ""
+msgstr "CECI EST UNE VERSION DE DEVELOPPEMENT QUI NE DOIT PAS ÊTRE UTILISEE EN PRODUCTION."
 
 #: src/xz/options.c:86
 #, c-format
@@ -967,26 +965,32 @@ msgstr "Les suffixes valides sont 'KiB' (2^10), 'MiB' (2^20) et 'GiB' (2^30)."
 msgid "Value of the option `%s' must be in the range [%<PRIu64>, %<PRIu64>]"
 msgstr "La valeur de l'option '%s' doit être inclue entre %<PRIu64> et %<PRIu64>"
 
-#: src/xz/util.c:257
+#: src/xz/util.c:267
 msgid "Empty filename, skipping"
 msgstr "Nom de fichier vide, ignoré"
 
-#: src/xz/util.c:271
+#: src/xz/util.c:281
 msgid "Compressed data cannot be read from a terminal"
 msgstr "Les données compressées ne peuvent pas être lues depuis un terminal"
 
-#: src/xz/util.c:284
+#: src/xz/util.c:294
 msgid "Compressed data cannot be written to a terminal"
 msgstr "Les données compressées ne peuvent pas être écrites dans un terminal"
 
-#: src/common/tuklib_exit.c:39
+#: src/common/tuklib_exit.c:40
 msgid "Writing to standard output failed"
 msgstr "Impossible d'écrire vers la sortie standard"
 
-#: src/common/tuklib_exit.c:42
+#: src/common/tuklib_exit.c:43
 msgid "Unknown error"
 msgstr "Erreur inconnue"
 
+#~ msgid "Sandbox is disabled due to incompatible command line arguments"
+#~ msgstr "La sandbox est désactivée car elle est incompatible avec les arguments passés"
+
+#~ msgid "Sandbox was successfully enabled"
+#~ msgstr "La sandboxe a été activée avec succès"
+
 #~ msgid "Error setting O_NONBLOCK on standard input: %s"
 #~ msgstr "Impossible d'établir le drapeau O_NONBLOCK sur la sortie standard : %s"
 
diff --git a/po/hu.gmo b/po/hu.gmo
new file mode 100644 (file)
index 0000000..26551d8
Binary files /dev/null and b/po/hu.gmo differ
diff --git a/po/hu.po b/po/hu.po
new file mode 100644 (file)
index 0000000..5d21284
--- /dev/null
+++ b/po/hu.po
@@ -0,0 +1,983 @@
+# Hungarian translation for xz.
+# This file is put in the public domain.
+#
+# Meskó Balázs <mesko.balazs@fsf.hu>, 2019.
+msgid ""
+msgstr ""
+"Project-Id-Version: xz 5.2.4\n"
+"Report-Msgid-Bugs-To: lasse.collin@tukaani.org\n"
+"POT-Creation-Date: 2020-03-17 16:29+0200\n"
+"PO-Revision-Date: 2019-11-18 09:57+0100\n"
+"Last-Translator: Meskó Balázs <mesko.balazs@fsf.hu>\n"
+"Language-Team: Hungarian <translation-team-hu@lists.sourceforge.net>\n"
+"Language: hu\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Bugs: Report translation errors to the Language-Team address.\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+"X-Generator: Lokalize 19.08.2\n"
+
+#: src/xz/args.c:63
+#, c-format
+msgid "%s: Invalid argument to --block-list"
+msgstr "%s: Érvénytelen argumentum a --block-list kapcsolóhoz"
+
+#: src/xz/args.c:73
+#, c-format
+msgid "%s: Too many arguments to --block-list"
+msgstr "%s: Túl sok argumentum a --block-list kapcsolóhoz"
+
+#: src/xz/args.c:102
+msgid "0 can only be used as the last element in --block-list"
+msgstr "A 0 csak utolsó elemként használható a --block-list kapcsolónál"
+
+#: src/xz/args.c:406
+#, c-format
+msgid "%s: Unknown file format type"
+msgstr "%s: Ismeretlen fájlformátumtípus"
+
+#: src/xz/args.c:429 src/xz/args.c:437
+#, c-format
+msgid "%s: Unsupported integrity check type"
+msgstr "%s: Nem támogatott integritás-ellenőrzési típus"
+
+#: src/xz/args.c:473
+msgid "Only one file can be specified with `--files' or `--files0'."
+msgstr "Csak egy fájl adható meg a „--files” vagy „--files0” kapcsolóknál."
+
+#: src/xz/args.c:541
+#, c-format
+msgid "The environment variable %s contains too many arguments"
+msgstr "A(z) %s környezeti változó túl sok argumentumot tartalmaz"
+
+#: src/xz/args.c:643
+msgid "Compression support was disabled at build time"
+msgstr "A tömörítési támogatás ki lett kapcsolva fordítási időben"
+
+#: src/xz/args.c:650
+msgid "Decompression support was disabled at build time"
+msgstr "A kibontási támogatás ki lett kapcsolva fordítási időben"
+
+#: src/xz/coder.c:110
+msgid "Maximum number of filters is four"
+msgstr "A szűrők legnagyobb száma négy"
+
+#: src/xz/coder.c:129
+msgid "Memory usage limit is too low for the given filter setup."
+msgstr "A memóriahasználat túl alacsony a megadott szűrőbeállításokhoz."
+
+#: src/xz/coder.c:159
+msgid "Using a preset in raw mode is discouraged."
+msgstr "Az előbeállítások használata nyers módban nem javasolt."
+
+#: src/xz/coder.c:161
+msgid "The exact options of the presets may vary between software versions."
+msgstr "Az előbeállítások pontos beállításai különbözhetnek a szoftververziók között."
+
+#: src/xz/coder.c:184
+msgid "The .lzma format supports only the LZMA1 filter"
+msgstr "Az .lzma formátum csak az LZMA1 szűrőt támogatja"
+
+#: src/xz/coder.c:192
+msgid "LZMA1 cannot be used with the .xz format"
+msgstr "Az LZMA1 nem használható az .xz formátummal"
+
+#: src/xz/coder.c:209
+msgid "The filter chain is incompatible with --flush-timeout"
+msgstr "A szűrőlánc nem kompatibilis a --flush-timeout kapcsolóval"
+
+#: src/xz/coder.c:215
+msgid "Switching to single-threaded mode due to --flush-timeout"
+msgstr "Egyszálú módra váltás a --flush-timeout kapcsoló miatt"
+
+#: src/xz/coder.c:235
+#, c-format
+msgid "Using up to %<PRIu32> threads."
+msgstr "Legfeljebb %<PRIu32> szál használata."
+
+#: src/xz/coder.c:251
+msgid "Unsupported filter chain or filter options"
+msgstr "Nem támogatott szűrőlánc vagy szűrőkapcsolók"
+
+#: src/xz/coder.c:263
+#, c-format
+msgid "Decompression will need %s MiB of memory."
+msgstr "A kibontáshoz %s MiB memória szükséges."
+
+#: src/xz/coder.c:300
+#, c-format
+msgid "Adjusted the number of threads from %s to %s to not exceed the memory usage limit of %s MiB"
+msgstr "A szálak számának módosítása erről: %s, erre: %s, hogy ne lépje túl a(z) %s MiB-os korlátot"
+
+#: src/xz/coder.c:354
+#, c-format
+msgid "Adjusted LZMA%c dictionary size from %s MiB to %s MiB to not exceed the memory usage limit of %s MiB"
+msgstr "Az LZMA%c szótár méretének módosítása erről: %s MiB, erre: %s MiB, hogy ne lépje túl a(z) %s MiB-os korlátot"
+
+#: src/xz/file_io.c:110 src/xz/file_io.c:118
+#, c-format
+msgid "Error creating a pipe: %s"
+msgstr "Hiba a csővezeték létrehozásakor: %s"
+
+#: src/xz/file_io.c:224
+msgid "Failed to enable the sandbox"
+msgstr "A homokozó engedélyezése sikertelen"
+
+#: src/xz/file_io.c:266
+#, c-format
+msgid "%s: poll() failed: %s"
+msgstr "%s: poll() sikertelen: %s"
+
+#. TRANSLATORS: When compression or decompression finishes,
+#. and xz is going to remove the source file, xz first checks
+#. if the source file still exists, and if it does, does its
+#. device and inode numbers match what xz saw when it opened
+#. the source file. If these checks fail, this message is
+#. shown, %s being the filename, and the file is not deleted.
+#. The check for device and inode numbers is there, because
+#. it is possible that the user has put a new file in place
+#. of the original file, and in that case it obviously
+#. shouldn't be removed.
+#: src/xz/file_io.c:333
+#, c-format
+msgid "%s: File seems to have been moved, not removing"
+msgstr "%s: Úgy tűnik, hogy a fájl át lett helyezve, nincs eltávolítás"
+
+#: src/xz/file_io.c:340 src/xz/file_io.c:882
+#, c-format
+msgid "%s: Cannot remove: %s"
+msgstr "%s: Nem távolítható el: %s"
+
+#: src/xz/file_io.c:366
+#, c-format
+msgid "%s: Cannot set the file owner: %s"
+msgstr "%s: A fájl tulajdonosa nem adható meg: %s"
+
+#: src/xz/file_io.c:372
+#, c-format
+msgid "%s: Cannot set the file group: %s"
+msgstr "%s: A fájl csoportja nem adható meg: %s"
+
+#: src/xz/file_io.c:391
+#, c-format
+msgid "%s: Cannot set the file permissions: %s"
+msgstr "%s: A fájl jogosultságai nem adhatók meg: %s"
+
+#: src/xz/file_io.c:517
+#, c-format
+msgid "Error getting the file status flags from standard input: %s"
+msgstr "Hiba a fájl állapotjelzőinek lekérdezésekor a szabványos bemenetről: %s"
+
+#: src/xz/file_io.c:574 src/xz/file_io.c:636
+#, c-format
+msgid "%s: Is a symbolic link, skipping"
+msgstr "%s: Szimbolikus link, kihagyás"
+
+#: src/xz/file_io.c:665
+#, c-format
+msgid "%s: Is a directory, skipping"
+msgstr "%s: Könyvtár, kihagyás"
+
+#: src/xz/file_io.c:671
+#, c-format
+msgid "%s: Not a regular file, skipping"
+msgstr "%s: Nem szabályos fájl, kihagyás"
+
+#: src/xz/file_io.c:688
+#, c-format
+msgid "%s: File has setuid or setgid bit set, skipping"
+msgstr "%s: A fájlon setuid vagy setgid bit van beállítva, kihagyás"
+
+#: src/xz/file_io.c:695
+#, c-format
+msgid "%s: File has sticky bit set, skipping"
+msgstr "%s: A fájlon sticky bit van beállítva, kihagyás"
+
+#: src/xz/file_io.c:702
+#, c-format
+msgid "%s: Input file has more than one hard link, skipping"
+msgstr "%s: A bemeneti fájlhoz több mint egy hard link tartozik, kihagyás"
+
+#: src/xz/file_io.c:792
+#, c-format
+msgid "Error restoring the status flags to standard input: %s"
+msgstr "Hiba a fájl állapotjelzőinek visszaállításakor a szabványos bemenetre: %s"
+
+#: src/xz/file_io.c:840
+#, c-format
+msgid "Error getting the file status flags from standard output: %s"
+msgstr "Hiba a fájl állapotjelzőinek lekérdezésekor a szabványos kimenetről: %s"
+
+#: src/xz/file_io.c:1018
+#, c-format
+msgid "Error restoring the O_APPEND flag to standard output: %s"
+msgstr "Hiba az O_APPEND visszaállításakor a szabványos kimenetre: %s"
+
+#: src/xz/file_io.c:1030
+#, c-format
+msgid "%s: Closing the file failed: %s"
+msgstr "%s: A fájl lezárása sikertelen: %s"
+
+#: src/xz/file_io.c:1066 src/xz/file_io.c:1309
+#, c-format
+msgid "%s: Seeking failed when trying to create a sparse file: %s"
+msgstr "%s: A pozícionálás sikertelen a ritka fájl létrehozásának kísérletekor: %s"
+
+#: src/xz/file_io.c:1167
+#, c-format
+msgid "%s: Read error: %s"
+msgstr "%s: Olvasási hiba: %s"
+
+#: src/xz/file_io.c:1191
+#, c-format
+msgid "%s: Error seeking the file: %s"
+msgstr "%s: Hiba a fájlban pozícionáláskor: %s"
+
+#: src/xz/file_io.c:1201
+#, c-format
+msgid "%s: Unexpected end of file"
+msgstr "%s: Váratlan fájlvég"
+
+#: src/xz/file_io.c:1260
+#, c-format
+msgid "%s: Write error: %s"
+msgstr "%s: Írási hiba: %s"
+
+#: src/xz/hardware.c:137
+msgid "Disabled"
+msgstr "Letiltva"
+
+#. TRANSLATORS: Test with "xz --info-memory" to see if
+#. the alignment looks nice.
+#: src/xz/hardware.c:156
+msgid "Total amount of physical memory (RAM): "
+msgstr "Az összes fizikai memória (RAM):        "
+
+#: src/xz/hardware.c:158
+msgid "Memory usage limit for compression:    "
+msgstr "Memóriahasználat korlátja tömörítéskor: "
+
+#: src/xz/hardware.c:160
+msgid "Memory usage limit for decompression:  "
+msgstr "Memóriahasználat korlátja kibontáskor:  "
+
+#. TRANSLATORS: Indicates that there is no integrity check.
+#. This string is used in tables, so the width must not
+#. exceed ten columns with a fixed-width font.
+#: src/xz/list.c:65
+msgid "None"
+msgstr "Nincs"
+
+#. TRANSLATORS: Indicates that integrity check name is not known,
+#. but the Check ID is known (here 2). This and other "Unknown-N"
+#. strings are used in tables, so the width must not exceed ten
+#. columns with a fixed-width font. It's OK to omit the dash if
+#. you need space for one extra letter, but don't use spaces.
+#: src/xz/list.c:72
+msgid "Unknown-2"
+msgstr "Névtelen-2"
+
+#: src/xz/list.c:73
+msgid "Unknown-3"
+msgstr "Névtelen-3"
+
+#: src/xz/list.c:75
+msgid "Unknown-5"
+msgstr "Névtelen-5"
+
+#: src/xz/list.c:76
+msgid "Unknown-6"
+msgstr "Névtelen-6"
+
+#: src/xz/list.c:77
+msgid "Unknown-7"
+msgstr "Névtelen-7"
+
+#: src/xz/list.c:78
+msgid "Unknown-8"
+msgstr "Névtelen-8"
+
+#: src/xz/list.c:79
+msgid "Unknown-9"
+msgstr "Névtelen-9"
+
+#: src/xz/list.c:81
+msgid "Unknown-11"
+msgstr "Névtelen-11"
+
+#: src/xz/list.c:82
+msgid "Unknown-12"
+msgstr "Névtelen-12"
+
+#: src/xz/list.c:83
+msgid "Unknown-13"
+msgstr "Névtelen-13"
+
+#: src/xz/list.c:84
+msgid "Unknown-14"
+msgstr "Névtelen-14"
+
+#: src/xz/list.c:85
+msgid "Unknown-15"
+msgstr "Névtelen-15"
+
+#: src/xz/list.c:153
+#, c-format
+msgid "%s: File is empty"
+msgstr "%s: A fájl üres"
+
+#: src/xz/list.c:158
+#, c-format
+msgid "%s: Too small to be a valid .xz file"
+msgstr "%s: Túl kicsi, hogy érvényes .xz fájl legyen"
+
+#. TRANSLATORS: These are column headings. From Strms (Streams)
+#. to Ratio, the columns are right aligned. Check and Filename
+#. are left aligned. If you need longer words, it's OK to
+#. use two lines here. Test with "xz -l foo.xz".
+#: src/xz/list.c:677
+msgid "Strms  Blocks   Compressed Uncompressed  Ratio  Check   Filename"
+msgstr "Folyam  Blokkok  Tömörített Kibontott  Arány  Ellenőrzés  Fájlnév"
+
+#: src/xz/list.c:717
+#, c-format
+msgid "  Streams:            %s\n"
+msgstr "  Adatfolyamok:       %s\n"
+
+#: src/xz/list.c:719
+#, c-format
+msgid "  Blocks:             %s\n"
+msgstr "  Blokkok:            %s\n"
+
+#: src/xz/list.c:721
+#, c-format
+msgid "  Compressed size:    %s\n"
+msgstr "  Tömörített méret:   %s\n"
+
+#: src/xz/list.c:724
+#, c-format
+msgid "  Uncompressed size:  %s\n"
+msgstr "  Kibontott méret:    %s\n"
+
+#: src/xz/list.c:727
+#, c-format
+msgid "  Ratio:              %s\n"
+msgstr "  Arány:              %s\n"
+
+#: src/xz/list.c:729
+#, c-format
+msgid "  Check:              %s\n"
+msgstr "  Ellenőrzés:         %s\n"
+
+#: src/xz/list.c:730
+#, c-format
+msgid "  Stream padding:     %s\n"
+msgstr "  Adatfolyam kerete:  %s\n"
+
+#. TRANSLATORS: The second line is column headings. All except
+#. Check are right aligned; Check is left aligned. Test with
+#. "xz -lv foo.xz".
+#: src/xz/list.c:758
+msgid ""
+"  Streams:\n"
+"    Stream    Blocks      CompOffset    UncompOffset        CompSize      UncompSize  Ratio  Check      Padding"
+msgstr ""
+"  Adatfolyamok:\n"
+"    Folyam   Blokkok      TömEltolás      KibEltolás        TömMéret        KibMéret  Arány  Ellenőrzés   Keret"
+
+#. TRANSLATORS: The second line is column headings. All
+#. except Check are right aligned; Check is left aligned.
+#: src/xz/list.c:813
+#, c-format
+msgid ""
+"  Blocks:\n"
+"    Stream     Block      CompOffset    UncompOffset       TotalSize      UncompSize  Ratio  Check"
+msgstr ""
+"  Blokkok:\n"
+"    Folyam   Blokkok      TömEltolás      KibEltolás        TömMéret        KibMéret  Arány  Ellenőrzés"
+
+#. TRANSLATORS: These are additional column headings
+#. for the most verbose listing mode. CheckVal
+#. (Check value), Flags, and Filters are left aligned.
+#. Header (Block Header Size), CompSize, and MemUsage
+#. are right aligned. %*s is replaced with 0-120
+#. spaces to make the CheckVal column wide enough.
+#. Test with "xz -lvv foo.xz".
+#: src/xz/list.c:825
+#, c-format
+msgid "      CheckVal %*s Header  Flags        CompSize    MemUsage  Filters"
+msgstr " ÉrtékEll %*s Fejléc  Jelzők       TömMéret  MemHasználat  Szűrők"
+
+#: src/xz/list.c:903 src/xz/list.c:1078
+#, c-format
+msgid "  Memory needed:      %s MiB\n"
+msgstr "  Szükséges memória:      %s MiB\n"
+
+#: src/xz/list.c:905 src/xz/list.c:1080
+#, c-format
+msgid "  Sizes in headers:   %s\n"
+msgstr "  Méretek a fejlécekben:  %s\n"
+
+#: src/xz/list.c:906 src/xz/list.c:1081
+msgid "Yes"
+msgstr "Igen"
+
+#: src/xz/list.c:906 src/xz/list.c:1081
+msgid "No"
+msgstr "Nem"
+
+#: src/xz/list.c:907 src/xz/list.c:1082
+#, c-format
+msgid "  Minimum XZ Utils version: %s\n"
+msgstr "  Legkisebb XZ Utils verzió: %s\n"
+
+#. TRANSLATORS: %s is an integer. Only the plural form of this
+#. message is used (e.g. "2 files"). Test with "xz -l foo.xz bar.xz".
+#: src/xz/list.c:1057
+#, c-format
+msgid "%s file\n"
+msgid_plural "%s files\n"
+msgstr[0] "%s fájl\n"
+msgstr[1] "%s fájl\n"
+
+#: src/xz/list.c:1070
+msgid "Totals:"
+msgstr "Összesen:"
+
+#: src/xz/list.c:1071
+#, c-format
+msgid "  Number of files:    %s\n"
+msgstr "  Fájlok száma:       %s\n"
+
+#: src/xz/list.c:1146
+msgid "--list works only on .xz files (--format=xz or --format=auto)"
+msgstr "A --list csak .xz fájlokkal működik (--format=xz vagy --format=auto)"
+
+#: src/xz/list.c:1152
+msgid "--list does not support reading from standard input"
+msgstr "A --list nem támogatja a szabványos bemenetről beolvasást"
+
+#: src/xz/main.c:89
+#, c-format
+msgid "%s: Error reading filenames: %s"
+msgstr "%s: Hiba a fájlnevek olvasásakor: %s"
+
+#: src/xz/main.c:96
+#, c-format
+msgid "%s: Unexpected end of input when reading filenames"
+msgstr "%s: A bemenet váratlanul véget ért a fájlnevek olvasásakor"
+
+#: src/xz/main.c:120
+#, c-format
+msgid "%s: Null character found when reading filenames; maybe you meant to use `--files0' instead of `--files'?"
+msgstr "%s: Null karakter található a fájlnevek olvasásakor; talán a „--files0” kapcsolóra gondolt a „--files” helyett?"
+
+#: src/xz/main.c:174
+msgid "Compression and decompression with --robot are not supported yet."
+msgstr "A tömörítés és kibontás még nem támogatott a --robot kapcsolóval."
+
+#: src/xz/main.c:252
+msgid "Cannot read data from standard input when reading filenames from standard input"
+msgstr "Az adatok nem olvashatók be a szabványos bemenetről a fájlnevek olvasásakor"
+
+#. TRANSLATORS: This is the program name in the beginning
+#. of the line in messages. Usually it becomes "xz: ".
+#. This is a translatable string because French needs
+#. a space before a colon.
+#: src/xz/message.c:728
+#, c-format
+msgid "%s: "
+msgstr "%s: "
+
+#: src/xz/message.c:791 src/xz/message.c:841
+msgid "Internal error (bug)"
+msgstr "Belső hiba (bug)"
+
+#: src/xz/message.c:798
+msgid "Cannot establish signal handlers"
+msgstr "A szignálkezelők nem hozhatók létre"
+
+#: src/xz/message.c:807
+msgid "No integrity check; not verifying file integrity"
+msgstr "Nincs integritás-ellenőrzés; a fájl épsége nem lesz ellenőrizve"
+
+#: src/xz/message.c:810
+msgid "Unsupported type of integrity check; not verifying file integrity"
+msgstr "Nem támogatott integritás-ellenőrzési típus; a fájl épsége nem lesz ellenőrizve"
+
+#: src/xz/message.c:817
+msgid "Memory usage limit reached"
+msgstr "Memóriahasználat korlátja elérve"
+
+#: src/xz/message.c:820
+msgid "File format not recognized"
+msgstr "A fájlformátum nem felismert"
+
+#: src/xz/message.c:823
+msgid "Unsupported options"
+msgstr "Nem támogatott kapcsolók"
+
+#: src/xz/message.c:826
+msgid "Compressed data is corrupt"
+msgstr "A tömörített adatok megsérültek"
+
+#: src/xz/message.c:829
+msgid "Unexpected end of input"
+msgstr "A bemenet váratlanul véget ért"
+
+#: src/xz/message.c:862
+#, c-format
+msgid "%s MiB of memory is required. The limiter is disabled."
+msgstr "%s MiB memória szükséges. A korlátozás letiltva."
+
+#: src/xz/message.c:890
+#, c-format
+msgid "%s MiB of memory is required. The limit is %s."
+msgstr "%s MiB memória szükséges. A korlát %s."
+
+#: src/xz/message.c:1057
+#, c-format
+msgid "%s: Filter chain: %s\n"
+msgstr "%s: Szűrőlánc: %s\n"
+
+#: src/xz/message.c:1067
+#, c-format
+msgid "Try `%s --help' for more information."
+msgstr "További információkért adja ki a következő parancsot: „%s --help”."
+
+#: src/xz/message.c:1093
+#, c-format
+msgid ""
+"Usage: %s [OPTION]... [FILE]...\n"
+"Compress or decompress FILEs in the .xz format.\n"
+"\n"
+msgstr ""
+"Használat: %s [KAPCSOLÓ]... [FÁJL]...\n"
+".xz formátumú FÁJLok tömörítése vagy kibontása.\n"
+"\n"
+
+#: src/xz/message.c:1100
+msgid "Mandatory arguments to long options are mandatory for short options too.\n"
+msgstr "A hosszú kapcsolók kötelező argumentumai a rövid kapcsolók esetén is kötelezők.\n"
+
+#: src/xz/message.c:1104
+msgid " Operation mode:\n"
+msgstr " Működési mód:\n"
+
+#: src/xz/message.c:1107
+msgid ""
+"  -z, --compress      force compression\n"
+"  -d, --decompress    force decompression\n"
+"  -t, --test          test compressed file integrity\n"
+"  -l, --list          list information about .xz files"
+msgstr ""
+"  -z, --compress      kényszerített tömörítés\n"
+"  -d, --decompress    kényszerített kibontás\n"
+"  -t, --test          tömörített fájl épségének tesztelése\n"
+"  -l, --list          információk kiírása az .xz fájlokról"
+
+#: src/xz/message.c:1113
+msgid ""
+"\n"
+" Operation modifiers:\n"
+msgstr ""
+"\n"
+" Műveleti módosítók:\n"
+
+#: src/xz/message.c:1116
+msgid ""
+"  -k, --keep          keep (don't delete) input files\n"
+"  -f, --force         force overwrite of output file and (de)compress links\n"
+"  -c, --stdout        write to standard output and don't delete input files"
+msgstr ""
+"  -k, --keep          bemeneti fájlok megtartása (ne törölje)\n"
+"  -f, --force         kimeneti fájl kényszerített felülírása,\n"
+"                      és a linkek tömörítése/kibontása\n"
+"  -c, --stdout        írás a szabványos kimenetre írás, és nem törli a\n"
+"                      bemeneti fájlokat"
+
+#: src/xz/message.c:1122
+msgid ""
+"      --single-stream decompress only the first stream, and silently\n"
+"                      ignore possible remaining input data"
+msgstr ""
+"      --single-stream csak az első adatfolyam kibontása, és a\n"
+"                      lehetséges hátralévő bemeneti adatok mellőzése"
+
+#: src/xz/message.c:1125
+msgid ""
+"      --no-sparse     do not create sparse files when decompressing\n"
+"  -S, --suffix=.SUF   use the suffix `.SUF' on compressed files\n"
+"      --files[=FILE]  read filenames to process from FILE; if FILE is\n"
+"                      omitted, filenames are read from the standard input;\n"
+"                      filenames must be terminated with the newline character\n"
+"      --files0[=FILE] like --files but use the null character as terminator"
+msgstr ""
+"      --no-sparse     ne hozzon létre ritka fájlokat kibontáskor\n"
+"  -S, --suffix=.SUF   a „.SUF” utótag használata a tömörített fájlokon\n"
+"      --files[=FÁJL]  fájlnevek beolvasása a FÁJLból; ha a FÁJL nincs megadva,\n"
+"                      akkor a fájlnevek a szabványos bemenetről lesznek\n"
+"                      beolvasva; a fájlneveket újsor karakterrel kell zárni\n"
+"      --files0[=FÁJL] mint a --files, de a null karakter használata\n"
+"                      elválasztóként"
+
+#: src/xz/message.c:1134
+msgid ""
+"\n"
+" Basic file format and compression options:\n"
+msgstr ""
+"\n"
+" Alapvető fájlformátum és tömörítési beállítások:\n"
+
+#: src/xz/message.c:1136
+msgid ""
+"  -F, --format=FMT    file format to encode or decode; possible values are\n"
+"                      `auto' (default), `xz', `lzma', and `raw'\n"
+"  -C, --check=CHECK   integrity check type: `none' (use with caution),\n"
+"                      `crc32', `crc64' (default), or `sha256'"
+msgstr ""
+"  -F, --format=FMT    a kódoláshoz vagy dekódoláshoz használt fájlformátum;\n"
+"                      lehetséges értékek „auto” (alapértelmezett), „xz”,\n"
+"                      „lzma” és „raw”\n"
+"  -C, --check=ELL     integritás-ellenőrzés típusa: „none” (óvatosan használja),\n"
+"                      „crc32”, „crc64” (alapértelmezett) vagy „sha256”"
+
+#: src/xz/message.c:1141
+msgid "      --ignore-check  don't verify the integrity check when decompressing"
+msgstr "      --ignore-check  kibontáskor ne ellenőrizze az épséget"
+
+#: src/xz/message.c:1145
+msgid ""
+"  -0 ... -9           compression preset; default is 6; take compressor *and*\n"
+"                      decompressor memory usage into account before using 7-9!"
+msgstr ""
+"  -0 ... -9           tömörítési előbeállítás; alapértelmezett a 6;\n"
+"                      a 7-9 használata előtt vegye figyelembe a tömörítő\n"
+"                      *és* kibontó memóriahasználatát!"
+
+#: src/xz/message.c:1149
+msgid ""
+"  -e, --extreme       try to improve compression ratio by using more CPU time;\n"
+"                      does not affect decompressor memory requirements"
+msgstr ""
+"  -e, --extreme       a tömörítési arány javítási kísérlete több CPU-idő\n"
+"                      használatával; nincs hatással a kibontó memóriaigényére"
+
+#: src/xz/message.c:1153
+msgid ""
+"  -T, --threads=NUM   use at most NUM threads; the default is 1; set to 0\n"
+"                      to use as many threads as there are processor cores"
+msgstr ""
+"  -T, --threads=SZÁM  legfeljebb ennyi szál használata; alapértelmezett az 1;\n"
+"                      állítsa 0-ra, hogy annyi szálat használjon, amennyi\n"
+"                      processzormag áll rendelkezésre"
+
+#: src/xz/message.c:1158
+msgid ""
+"      --block-size=SIZE\n"
+"                      start a new .xz block after every SIZE bytes of input;\n"
+"                      use this to set the block size for threaded compression"
+msgstr ""
+"      --block-size=MÉRET\n"
+"                      új .xz blokk indítása minden MÉRETnyi bájt bemenet után;\n"
+"                      a többszálas tömörítés blokkméretének megadásához"
+
+#: src/xz/message.c:1162
+msgid ""
+"      --block-list=SIZES\n"
+"                      start a new .xz block after the given comma-separated\n"
+"                      intervals of uncompressed data"
+msgstr ""
+"      --block-list=MÉRETEK\n"
+"                      új .xz blokk indítása a vesszőkkel felsorolva megadott\n"
+"                      méretű tömörítetlen adatszakaszok után"
+
+#: src/xz/message.c:1166
+msgid ""
+"      --flush-timeout=TIMEOUT\n"
+"                      when compressing, if more than TIMEOUT milliseconds has\n"
+"                      passed since the previous flush and reading more input\n"
+"                      would block, all pending data is flushed out"
+msgstr ""
+"      --flush-timeout=IDŐTÚLLÉPÉS\n"
+"                      tömörítéskor, ha több mint IDŐTÚLLÉPÉS ezredmásodperc\n"
+"                      telt el az előző kiírástól, és a bemenetolvasás\n"
+"                      blokkolna, akkor minden adat ki lesz írva"
+
+#: src/xz/message.c:1172
+#, no-c-format
+msgid ""
+"      --memlimit-compress=LIMIT\n"
+"      --memlimit-decompress=LIMIT\n"
+"  -M, --memlimit=LIMIT\n"
+"                      set memory usage limit for compression, decompression,\n"
+"                      or both; LIMIT is in bytes, % of RAM, or 0 for defaults"
+msgstr ""
+"      --memlimit-compress=KORLÁT\n"
+"      --memlimit-decompress=KORLÁT\n"
+"  -M, --memlimit=KORLÁT\n"
+"                      a memóriahasználati korlát megadása tömörítéshez,\n"
+"                      kibontáshoz vagy mindkettőhöz; a KORLÁT bájtokban van\n"
+"                      megadva, a RAM %-ában, vagy 0 az alapértelmezéshez"
+
+#: src/xz/message.c:1179
+msgid ""
+"      --no-adjust     if compression settings exceed the memory usage limit,\n"
+"                      give an error instead of adjusting the settings downwards"
+msgstr ""
+"      --no-adjust     ha a tömörítési beállítások túllépik a memóriahasználati\n"
+"                      korlátot, akkor hibát fog adni a beállítások lefelé\n"
+"                      állítása helyett"
+
+#: src/xz/message.c:1185
+msgid ""
+"\n"
+" Custom filter chain for compression (alternative for using presets):"
+msgstr ""
+"\n"
+" Egyéni szűrőlánc a tömörítéshez (alternatíva az előbeállításokra):"
+
+#: src/xz/message.c:1194
+msgid ""
+"\n"
+"  --lzma1[=OPTS]      LZMA1 or LZMA2; OPTS is a comma-separated list of zero or\n"
+"  --lzma2[=OPTS]      more of the following options (valid values; default):\n"
+"                        preset=PRE reset options to a preset (0-9[e])\n"
+"                        dict=NUM   dictionary size (4KiB - 1536MiB; 8MiB)\n"
+"                        lc=NUM     number of literal context bits (0-4; 3)\n"
+"                        lp=NUM     number of literal position bits (0-4; 0)\n"
+"                        pb=NUM     number of position bits (0-4; 2)\n"
+"                        mode=MODE  compression mode (fast, normal; normal)\n"
+"                        nice=NUM   nice length of a match (2-273; 64)\n"
+"                        mf=NAME    match finder (hc3, hc4, bt2, bt3, bt4; bt4)\n"
+"                        depth=NUM  maximum search depth; 0=automatic (default)"
+msgstr ""
+"\n"
+"  --lzma1[=KAPCS]     LZMA1 vagy LZMA2; a KAPCS nulla vagy több vesszővel\n"
+"  --lzma2[=KAPCS]     elválasztott kapcsoló az alábbiak közül\n"
+"                      (érvényes érték; alapértelmezett):\n"
+"                        preset=ELŐ visszaállítás egy előbeállításra (0-9[e])\n"
+"                        dict=SZÁM  szótárméret (4KiB - 1536MiB; 8MiB)\n"
+"                        lc=SZÁM    literál környezeti bitek száma (0-4; 3)\n"
+"                        lp=SZÁM    literál pozícióbitek száma (0-4; 0)\n"
+"                        pb=SZÁM    pozícióbitek száma (0-4; 2)\n"
+"                        mode=MÓD   tömörítési mód (fast, normal; normal)\n"
+"                        nice=SZÁM  az egyezés „nice” hossza (2-273; 64)\n"
+"                        mf=NÉV     egyezéskereső (hc3, hc4, bt2, bt3, bt4; bt4)\n"
+"                        depth=SZÁM legnagyobb keresési mélység; 0=automatikus\n"
+"                                   (alapértelmezett)"
+
+#: src/xz/message.c:1209
+msgid ""
+"\n"
+"  --x86[=OPTS]        x86 BCJ filter (32-bit and 64-bit)\n"
+"  --powerpc[=OPTS]    PowerPC BCJ filter (big endian only)\n"
+"  --ia64[=OPTS]       IA-64 (Itanium) BCJ filter\n"
+"  --arm[=OPTS]        ARM BCJ filter (little endian only)\n"
+"  --armthumb[=OPTS]   ARM-Thumb BCJ filter (little endian only)\n"
+"  --sparc[=OPTS]      SPARC BCJ filter\n"
+"                      Valid OPTS for all BCJ filters:\n"
+"                        start=NUM  start offset for conversions (default=0)"
+msgstr ""
+"\n"
+"  --x86[=KAPCS]       x86 BCJ szűrő (32 bites és 64 bites)\n"
+"  --powerpc[=KAPCS]   PowerPC BCJ szűrő (csak big endian esetén)\n"
+"  --ia64[=KAPCS]      IA-64 (Itanium) BCJ szűrő\n"
+"  --arm[=KAPCS]       ARM BCJ szűrő (csak little endian esetén)\n"
+"  --armthumb[=KAPCS]  ARM-Thumb BCJ szűrő (csak little endian esetén)\n"
+"  --sparc[=KAPCS]     SPARC BCJ szűrő\n"
+"                      Érvényes KAPCS az összes BCJ szűrőhöz:\n"
+"                        start=SZÁM kezdési eltolás az átalakításokhoz\n"
+"                                   (alapértelmezett=0)"
+
+#: src/xz/message.c:1221
+msgid ""
+"\n"
+"  --delta[=OPTS]      Delta filter; valid OPTS (valid values; default):\n"
+"                        dist=NUM   distance between bytes being subtracted\n"
+"                                   from each other (1-256; 1)"
+msgstr ""
+"\n"
+"  --delta[=OPTS]      Delta szűrő; érvényes KAPCSOLÓK\n"
+"                      (érvényes értékek; alapértelmezett default):\n"
+"                        dist=SZÁM  az egymásból kivont bájtok közti\n"
+"                                   távolság (1-256; 1)"
+
+#: src/xz/message.c:1229
+msgid ""
+"\n"
+" Other options:\n"
+msgstr ""
+"\n"
+" Egyéb kapcsolók:\n"
+
+#: src/xz/message.c:1232
+msgid ""
+"  -q, --quiet         suppress warnings; specify twice to suppress errors too\n"
+"  -v, --verbose       be verbose; specify twice for even more verbose"
+msgstr ""
+"  -q, --quiet         figyelmeztetések elrejtése; adja meg kétszer, hogy a\n"
+"                      hibákat is elrejtse\n"
+"  -v, --verbose       legyen bőbeszédű; adja meg kétszer, hogy még bőbeszédűbb\n"
+"                      legyen"
+
+#: src/xz/message.c:1237
+msgid "  -Q, --no-warn       make warnings not affect the exit status"
+msgstr ""
+"  -Q, --no-warn       a figyelmeztetések nem befolyásolják a kilépési\n"
+"                      állapotkódot"
+
+#: src/xz/message.c:1239
+msgid "      --robot         use machine-parsable messages (useful for scripts)"
+msgstr ""
+"      --robot         géppel értelmezhető üzenetek használata\n"
+"                      (parancsfájlok esetén hasznos)"
+
+#: src/xz/message.c:1242
+msgid ""
+"      --info-memory   display the total amount of RAM and the currently active\n"
+"                      memory usage limits, and exit"
+msgstr ""
+"      --info-memory   az összes RAM mennyiségének és a jelenlegi\n"
+"                      memóriahasználati korlátok megjelenítése, és kilépés"
+
+#: src/xz/message.c:1245
+msgid ""
+"  -h, --help          display the short help (lists only the basic options)\n"
+"  -H, --long-help     display this long help and exit"
+msgstr ""
+"  -h, --help          a rövid súgó megjelenítése (csak az alapvető kapcsolók)\n"
+"  -H, --long-help     ezen hosszú súgó megjelenítése, és kilépés"
+
+#: src/xz/message.c:1249
+msgid ""
+"  -h, --help          display this short help and exit\n"
+"  -H, --long-help     display the long help (lists also the advanced options)"
+msgstr ""
+"  -h, --help          ezen rövid súgó megjelenítése, és kilépés\n"
+"  -H, --long-help     a hosszú súgó megjelenítése (speciális kapcsolókhoz)"
+
+#: src/xz/message.c:1254
+msgid "  -V, --version       display the version number and exit"
+msgstr "  -V, --version       a verziószám kiírása és kilépés"
+
+#: src/xz/message.c:1256
+msgid ""
+"\n"
+"With no FILE, or when FILE is -, read standard input.\n"
+msgstr ""
+"\n"
+"FÁJL nélkül, vagy ha a FÁJL -, olvasás a szabványos bemenetről.\n"
+
+#. TRANSLATORS: This message indicates the bug reporting address
+#. for this package. Please add _another line_ saying
+#. "Report translation bugs to <...>\n" with the email or WWW
+#. address for translation bugs. Thanks.
+#: src/xz/message.c:1262
+#, c-format
+msgid "Report bugs to <%s> (in English or Finnish).\n"
+msgstr "Ide jelentse a hibákat: <%s> (angolul vagy finnül).\n"
+
+#: src/xz/message.c:1264
+#, c-format
+msgid "%s home page: <%s>\n"
+msgstr "%s honlap: <%s>\n"
+
+#: src/xz/message.c:1268
+msgid "THIS IS A DEVELOPMENT VERSION NOT INTENDED FOR PRODUCTION USE."
+msgstr "EZ EGY FEJLESZTŐI VÁLTOZAT, NEM ÉLES HASZNÁLATRA SZÁNT."
+
+#: src/xz/options.c:86
+#, c-format
+msgid "%s: Options must be `name=value' pairs separated with commas"
+msgstr "%s: A kapcsolóknak vesszőkkel elválasztott „név=érték” pároknak kell lenniük"
+
+#: src/xz/options.c:93
+#, c-format
+msgid "%s: Invalid option name"
+msgstr "%s: Érvénytelen kapcsolónév"
+
+#: src/xz/options.c:113
+#, c-format
+msgid "%s: Invalid option value"
+msgstr "%s: Érvénytelen kapcsolóérték"
+
+#: src/xz/options.c:247
+#, c-format
+msgid "Unsupported LZMA1/LZMA2 preset: %s"
+msgstr "Nem támogatott LZMA1/LZMA2 előbeállítás: %s"
+
+#: src/xz/options.c:355
+msgid "The sum of lc and lp must not exceed 4"
+msgstr "Az lc és lp összege nem haladhatja meg a 4-et"
+
+#: src/xz/options.c:359
+#, c-format
+msgid "The selected match finder requires at least nice=%<PRIu32>"
+msgstr "A kiválasztott egyezéskeresőhöz legalább nice=%<PRIu32> szükséges"
+
+#: src/xz/suffix.c:133 src/xz/suffix.c:258
+#, c-format
+msgid "%s: With --format=raw, --suffix=.SUF is required unless writing to stdout"
+msgstr "%s: --format=raw esetén, --suffix=.SUF szükséges, hacsak nem a szabványosra kimenetre ír"
+
+#: src/xz/suffix.c:164
+#, c-format
+msgid "%s: Filename has an unknown suffix, skipping"
+msgstr "%s: A fájlnév utótagja ismeretlen, kihagyás"
+
+#: src/xz/suffix.c:185
+#, c-format
+msgid "%s: File already has `%s' suffix, skipping"
+msgstr "%s: A(z) „%s” fájlnak már van utótagja, kihagyás"
+
+#: src/xz/suffix.c:393
+#, c-format
+msgid "%s: Invalid filename suffix"
+msgstr "%s: Érvénytelen fájlnév utótag"
+
+#: src/xz/util.c:71
+#, c-format
+msgid "%s: Value is not a non-negative decimal integer"
+msgstr "%s: Az érték nem nemnegatív decimális egész szám"
+
+#: src/xz/util.c:113
+#, c-format
+msgid "%s: Invalid multiplier suffix"
+msgstr "%s: Érvénytelen szorzó utótag"
+
+#: src/xz/util.c:115
+msgid "Valid suffixes are `KiB' (2^10), `MiB' (2^20), and `GiB' (2^30)."
+msgstr "Az érvényes utótagok: „KiB” (2^10), „MiB” (2^20) és „GiB” (2^30)."
+
+#: src/xz/util.c:132
+#, c-format
+msgid "Value of the option `%s' must be in the range [%<PRIu64>, %<PRIu64>]"
+msgstr "A(z) „%s” kapcsoló értékének a(z) [%<PRIu64>, %<PRIu64>] tartományban kell lennie"
+
+#: src/xz/util.c:267
+msgid "Empty filename, skipping"
+msgstr "Üres fájlnév, kihagyás"
+
+#: src/xz/util.c:281
+msgid "Compressed data cannot be read from a terminal"
+msgstr "A tömörített adatokat nem lehet beolvasni a terminálból"
+
+#: src/xz/util.c:294
+msgid "Compressed data cannot be written to a terminal"
+msgstr "A tömörített adatokat nem lehet kiírni a terminálba"
+
+#: src/common/tuklib_exit.c:40
+msgid "Writing to standard output failed"
+msgstr "A szabványos kimenetre írás sikertelen"
+
+#: src/common/tuklib_exit.c:43
+msgid "Unknown error"
+msgstr "Ismeretlen hiba"
+
+#~ msgid "Sandbox is disabled due to incompatible command line arguments"
+#~ msgstr "A homokozó ki lett kapcsolva a nem kompatibilis parancssori argumentumok miatt"
+
+#~ msgid "Sandbox was successfully enabled"
+#~ msgstr "A homokozó sikeresen engedélyezve"
index b26de01..ceeebb9 100644 (file)
@@ -1,5 +1,10 @@
 # Sed script that inserts the file called HEADER before the header entry.
 #
+# Copyright (C) 2001 Free Software Foundation, Inc.
+# Written by Bruno Haible <bruno@clisp.org>, 2001.
+# This file is free software; the Free Software Foundation gives
+# unlimited permission to use, copy, distribute, and modify it.
+#
 # 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
index 498ff1a..0f350fe 100644 (file)
Binary files a/po/it.gmo and b/po/it.gmo differ
index 8b819ee..bf6ad92 100644 (file)
--- a/po/it.po
+++ b/po/it.po
@@ -1,23 +1,24 @@
-# Italian translation for xz-utils
-# This file is in the public domain
+# Italian translation for xz
+# This file is put in the public domain.
 # Gruppo traduzione italiano di Ubuntu-it <gruppo-traduzione@ubuntu-it.org>, 2009, 2010
 # Lorenzo De Liso <blackz@ubuntu.com>, 2010.
-# Milo Casagrande <milo@ubuntu.com>, 2009, 2010, 2011, 2014.
+# Milo Casagrande <milo@milo.name>, 2009, 2010, 2011, 2014, 2019.
 #
 msgid ""
 msgstr ""
-"Project-Id-Version: xz-utils\n"
+"Project-Id-Version: xz 5.2.4\n"
 "Report-Msgid-Bugs-To: lasse.collin@tukaani.org\n"
-"POT-Creation-Date: 2018-04-29 18:19+0300\n"
-"PO-Revision-Date: 2014-10-20 13:16+0100\n"
+"POT-Creation-Date: 2020-03-17 16:29+0200\n"
+"PO-Revision-Date: 2019-03-04 14:21+0100\n"
 "Last-Translator: Milo Casagrande <milo@milo.name>\n"
 "Language-Team: Italian <tp@lists.linux.it>\n"
 "Language: it\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
+"X-Bugs: Report translation errors to the Language-Team address.\n"
 "X-Launchpad-Export-Date: 2010-08-16 19:16+0000\n"
-"X-Generator: Poedit 1.6.10\n"
+"X-Generator: Poedit 2.2.1\n"
 "Plural-Forms: nplurals=2; plural=(n != 1);\n"
 
 #: src/xz/args.c:63
@@ -55,11 +56,11 @@ msgstr "La variabile d'ambiente %s contiene troppi argomenti"
 
 #: src/xz/args.c:643
 msgid "Compression support was disabled at build time"
-msgstr ""
+msgstr "Il supporto alla compressione è stato disabilitato in fase di compilazione"
 
 #: src/xz/args.c:650
 msgid "Decompression support was disabled at build time"
-msgstr ""
+msgstr "Il supporto alla decompressione è stato disabilitato in fase di compilazione"
 
 #: src/xz/coder.c:110
 msgid "Maximum number of filters is four"
@@ -122,19 +123,11 @@ msgstr "Regolata la dimensione del dizionario LZMA%c da %s MiB a %s MiB per non
 msgid "Error creating a pipe: %s"
 msgstr "Errore nel creare una pipe: %s"
 
-#: src/xz/file_io.c:173
-msgid "Sandbox is disabled due to incompatible command line arguments"
-msgstr ""
-
-#: src/xz/file_io.c:216
-msgid "Sandbox was successfully enabled"
-msgstr ""
-
-#: src/xz/file_io.c:220
+#: src/xz/file_io.c:224
 msgid "Failed to enable the sandbox"
-msgstr ""
+msgstr "Abilitazione modalità sandbox non riuscita"
 
-#: src/xz/file_io.c:262
+#: src/xz/file_io.c:266
 #, c-format
 msgid "%s: poll() failed: %s"
 msgstr "%s: poll() non riuscita: %s"
@@ -149,126 +142,126 @@ msgstr "%s: poll() non riuscita: %s"
 #. it is possible that the user has put a new file in place
 #. of the original file, and in that case it obviously
 #. shouldn't be removed.
-#: src/xz/file_io.c:332
+#: src/xz/file_io.c:333
 #, c-format
 msgid "%s: File seems to have been moved, not removing"
 msgstr "%s: sembra che il file sia stato spostato, non viene rimosso"
 
-#: src/xz/file_io.c:339 src/xz/file_io.c:878
+#: src/xz/file_io.c:340 src/xz/file_io.c:882
 #, c-format
 msgid "%s: Cannot remove: %s"
 msgstr "%s: impossibile rimuovere: %s"
 
-#: src/xz/file_io.c:364
+#: src/xz/file_io.c:366
 #, c-format
 msgid "%s: Cannot set the file owner: %s"
 msgstr "%s: impossibile impostare il proprietario del file: %s"
 
-#: src/xz/file_io.c:370
+#: src/xz/file_io.c:372
 #, c-format
 msgid "%s: Cannot set the file group: %s"
 msgstr "%s: impossibile impostare il gruppo del file: %s"
 
-#: src/xz/file_io.c:389
+#: src/xz/file_io.c:391
 #, c-format
 msgid "%s: Cannot set the file permissions: %s"
 msgstr "%s: impossibile impostare i permessi del file: %s"
 
-#: src/xz/file_io.c:515
+#: src/xz/file_io.c:517
 #, c-format
 msgid "Error getting the file status flags from standard input: %s"
 msgstr "Errore nel recuperare le flag di stato del file dallo standard input: %s"
 
-#: src/xz/file_io.c:572 src/xz/file_io.c:634
+#: src/xz/file_io.c:574 src/xz/file_io.c:636
 #, c-format
 msgid "%s: Is a symbolic link, skipping"
 msgstr "%s: è un collegamento simbolico, viene saltato"
 
-#: src/xz/file_io.c:663
+#: src/xz/file_io.c:665
 #, c-format
 msgid "%s: Is a directory, skipping"
 msgstr "%s: è una directory, viene saltata"
 
-#: src/xz/file_io.c:669
+#: src/xz/file_io.c:671
 #, c-format
 msgid "%s: Not a regular file, skipping"
 msgstr "%s: non è un file regolare, viene saltato"
 
-#: src/xz/file_io.c:686
+#: src/xz/file_io.c:688
 #, c-format
 msgid "%s: File has setuid or setgid bit set, skipping"
 msgstr "%s: il file ha il bit setuid o setgid impostato, viene saltato"
 
-#: src/xz/file_io.c:693
+#: src/xz/file_io.c:695
 #, c-format
 msgid "%s: File has sticky bit set, skipping"
 msgstr "%s: il file ha lo sticky bit impostato, viene saltato"
 
-#: src/xz/file_io.c:700
+#: src/xz/file_io.c:702
 #, c-format
 msgid "%s: Input file has more than one hard link, skipping"
 msgstr "%s: il file di input ha più di un collegamento fisico, viene saltato"
 
-#: src/xz/file_io.c:788
+#: src/xz/file_io.c:792
 #, c-format
 msgid "Error restoring the status flags to standard input: %s"
 msgstr "Errore nel ripristinare le flag di stato sullo standard input: %s"
 
-#: src/xz/file_io.c:836
+#: src/xz/file_io.c:840
 #, c-format
 msgid "Error getting the file status flags from standard output: %s"
 msgstr "Errore nel recuperare le flag di stato del file dallo standard output: %s"
 
-#: src/xz/file_io.c:1014
+#: src/xz/file_io.c:1018
 #, c-format
 msgid "Error restoring the O_APPEND flag to standard output: %s"
 msgstr "Errore nel ripristinare la flag O_APPEND sullo standard output: %s"
 
-#: src/xz/file_io.c:1026
+#: src/xz/file_io.c:1030
 #, c-format
 msgid "%s: Closing the file failed: %s"
 msgstr "%s: chiusura del file non riuscita: %s"
 
-#: src/xz/file_io.c:1062 src/xz/file_io.c:1288
+#: src/xz/file_io.c:1066 src/xz/file_io.c:1309
 #, c-format
 msgid "%s: Seeking failed when trying to create a sparse file: %s"
 msgstr "%s: posizionamento non riuscito nel tentativo di creare un file sparso: %s"
 
-#: src/xz/file_io.c:1157
+#: src/xz/file_io.c:1167
 #, c-format
 msgid "%s: Read error: %s"
 msgstr "%s: errore di lettura: %s"
 
-#: src/xz/file_io.c:1177
+#: src/xz/file_io.c:1191
 #, c-format
 msgid "%s: Error seeking the file: %s"
 msgstr "%s: errore nel cercare il file: %s"
 
-#: src/xz/file_io.c:1187
+#: src/xz/file_io.c:1201
 #, c-format
 msgid "%s: Unexpected end of file"
 msgstr "%s: fine del file inaspettata"
 
-#: src/xz/file_io.c:1246
+#: src/xz/file_io.c:1260
 #, c-format
 msgid "%s: Write error: %s"
 msgstr "%s: errore di scrittura: %s"
 
-#: src/xz/hardware.c:107
+#: src/xz/hardware.c:137
 msgid "Disabled"
 msgstr "Disabilitato"
 
 #. TRANSLATORS: Test with "xz --info-memory" to see if
 #. the alignment looks nice.
-#: src/xz/hardware.c:126
+#: src/xz/hardware.c:156
 msgid "Total amount of physical memory (RAM): "
 msgstr "Quantità totale di memoria fisica (RAM):     "
 
-#: src/xz/hardware.c:128
+#: src/xz/hardware.c:158
 msgid "Memory usage limit for compression:    "
 msgstr "Limite utilizzo memoria per la compressione: "
 
-#: src/xz/hardware.c:130
+#: src/xz/hardware.c:160
 msgid "Memory usage limit for decompression:  "
 msgstr "Limite utilizzo memoria per l'estrazione:    "
 
@@ -495,68 +488,68 @@ msgstr "Impossibile leggere i dati dallo standard input durante la lettura dei n
 #. of the line in messages. Usually it becomes "xz: ".
 #. This is a translatable string because French needs
 #. a space before a colon.
-#: src/xz/message.c:714
+#: src/xz/message.c:728
 #, c-format
 msgid "%s: "
 msgstr "%s: "
 
-#: src/xz/message.c:777 src/xz/message.c:827
+#: src/xz/message.c:791 src/xz/message.c:841
 msgid "Internal error (bug)"
 msgstr "Errore interno (bug)"
 
-#: src/xz/message.c:784
+#: src/xz/message.c:798
 msgid "Cannot establish signal handlers"
 msgstr "Impossibile stabilire i gestori dei segnali"
 
-#: src/xz/message.c:793
+#: src/xz/message.c:807
 msgid "No integrity check; not verifying file integrity"
 msgstr "Nessun controllo d'integrità; l'integrità del file non viene verificata"
 
-#: src/xz/message.c:796
+#: src/xz/message.c:810
 msgid "Unsupported type of integrity check; not verifying file integrity"
 msgstr "Tipo di controllo di integrità non supportato; l'integrità del file non viene verificata"
 
-#: src/xz/message.c:803
+#: src/xz/message.c:817
 msgid "Memory usage limit reached"
 msgstr "Limite di utilizzo della memoria raggiunto"
 
-#: src/xz/message.c:806
+#: src/xz/message.c:820
 msgid "File format not recognized"
 msgstr "Formato di file non riconosciuto"
 
-#: src/xz/message.c:809
+#: src/xz/message.c:823
 msgid "Unsupported options"
 msgstr "Opzioni non supportate"
 
-#: src/xz/message.c:812
+#: src/xz/message.c:826
 msgid "Compressed data is corrupt"
 msgstr "I dati compressi sono danneggiati"
 
-#: src/xz/message.c:815
+#: src/xz/message.c:829
 msgid "Unexpected end of input"
 msgstr "Fine dell'input non attesa"
 
-#: src/xz/message.c:848
+#: src/xz/message.c:862
 #, c-format
 msgid "%s MiB of memory is required. The limiter is disabled."
 msgstr "%s MiB di memoria sono richiesti. Il limite è disabilitato."
 
-#: src/xz/message.c:876
+#: src/xz/message.c:890
 #, c-format
 msgid "%s MiB of memory is required. The limit is %s."
 msgstr "%s MiB di memoria sono richiesti. Il limite è %s."
 
-#: src/xz/message.c:1043
+#: src/xz/message.c:1057
 #, c-format
 msgid "%s: Filter chain: %s\n"
 msgstr "%s: catena di filtri: %s\n"
 
-#: src/xz/message.c:1053
+#: src/xz/message.c:1067
 #, c-format
 msgid "Try `%s --help' for more information."
 msgstr "Provare \"%s --help\" per maggiori informazioni."
 
-#: src/xz/message.c:1079
+#: src/xz/message.c:1093
 #, c-format
 msgid ""
 "Usage: %s [OPTION]... [FILE]...\n"
@@ -567,15 +560,15 @@ msgstr ""
 "Comprime o estrae i FILE nel formato .xz.\n"
 "\n"
 
-#: src/xz/message.c:1086
+#: src/xz/message.c:1100
 msgid "Mandatory arguments to long options are mandatory for short options too.\n"
 msgstr "Gli argomenti obbligatori per le opzioni lunghe lo sono anche per quelle brevi.\n"
 
-#: src/xz/message.c:1090
+#: src/xz/message.c:1104
 msgid " Operation mode:\n"
 msgstr " Modalità di operazione:\n"
 
-#: src/xz/message.c:1093
+#: src/xz/message.c:1107
 msgid ""
 "  -z, --compress      force compression\n"
 "  -d, --decompress    force decompression\n"
@@ -587,7 +580,7 @@ msgstr ""
 "  -t, --test          Verifica l'integrità dei file compressi\n"
 "  -l, --list          Elenca informazioni sui file .xz"
 
-#: src/xz/message.c:1099
+#: src/xz/message.c:1113
 msgid ""
 "\n"
 " Operation modifiers:\n"
@@ -595,7 +588,7 @@ msgstr ""
 "\n"
 " Modificatori di operazioni:\n"
 
-#: src/xz/message.c:1102
+#: src/xz/message.c:1116
 msgid ""
 "  -k, --keep          keep (don't delete) input files\n"
 "  -f, --force         force overwrite of output file and (de)compress links\n"
@@ -606,7 +599,7 @@ msgstr ""
 "                      collegamenti\n"
 "  -c, --stdout        Scrive sullo standard output e non elimina i file di input"
 
-#: src/xz/message.c:1108
+#: src/xz/message.c:1122
 msgid ""
 "      --single-stream decompress only the first stream, and silently\n"
 "                      ignore possible remaining input data"
@@ -614,7 +607,7 @@ msgstr ""
 "      --single-stream Decomprime solamente il primo stream e ignora\n"
 "                      silenziosamente i restanti dati di input"
 
-#: src/xz/message.c:1111
+#: src/xz/message.c:1125
 msgid ""
 "      --no-sparse     do not create sparse files when decompressing\n"
 "  -S, --suffix=.SUF   use the suffix `.SUF' on compressed files\n"
@@ -631,7 +624,7 @@ msgstr ""
 "                      di newline\n"
 "      --files0=[FILE] Come --files ma usa il carattere null come terminatore"
 
-#: src/xz/message.c:1120
+#: src/xz/message.c:1134
 msgid ""
 "\n"
 " Basic file format and compression options:\n"
@@ -639,7 +632,7 @@ msgstr ""
 "\n"
 " Formato file di base e opzioni di compressione:\n"
 
-#: src/xz/message.c:1122
+#: src/xz/message.c:1136
 msgid ""
 "  -F, --format=FMT    file format to encode or decode; possible values are\n"
 "                      `auto' (default), `xz', `lzma', and `raw'\n"
@@ -651,11 +644,11 @@ msgstr ""
 "  -C, --check=CHECK   Tipo di verifica integrità: \"none\" (usare con attenzione),\n"
 "                      \"crc32\", \"crc64\" (predefinito) o \"sha256\""
 
-#: src/xz/message.c:1127
+#: src/xz/message.c:1141
 msgid "      --ignore-check  don't verify the integrity check when decompressing"
 msgstr "      --ignore-check  Non verifica il codice di integrità quando decomprime"
 
-#: src/xz/message.c:1131
+#: src/xz/message.c:1145
 msgid ""
 "  -0 ... -9           compression preset; default is 6; take compressor *and*\n"
 "                      decompressor memory usage into account before using 7-9!"
@@ -664,7 +657,7 @@ msgstr ""
 "                      l'utilizzo di memoria per comprimere ed estrarre prima\n"
 "                      di usare 7-9"
 
-#: src/xz/message.c:1135
+#: src/xz/message.c:1149
 msgid ""
 "  -e, --extreme       try to improve compression ratio by using more CPU time;\n"
 "                      does not affect decompressor memory requirements"
@@ -673,7 +666,7 @@ msgstr ""
 "                      utilizzando più tempo di CPU; non cambia i requisiti di\n"
 "                      memoria in fase di estrazione"
 
-#: src/xz/message.c:1139
+#: src/xz/message.c:1153
 msgid ""
 "  -T, --threads=NUM   use at most NUM threads; the default is 1; set to 0\n"
 "                      to use as many threads as there are processor cores"
@@ -682,7 +675,7 @@ msgstr ""
 "                      impostare a 0 per usare tanti thread quanti core la CPU\n"
 "                      ha a disposizione"
 
-#: src/xz/message.c:1144
+#: src/xz/message.c:1158
 msgid ""
 "      --block-size=SIZE\n"
 "                      start a new .xz block after every SIZE bytes of input;\n"
@@ -693,7 +686,7 @@ msgstr ""
 "                      usare per impostare la dimensione del blocco durante la\n"
 "                      compressione con thread"
 
-#: src/xz/message.c:1148
+#: src/xz/message.c:1162
 msgid ""
 "      --block-list=SIZES\n"
 "                      start a new .xz block after the given comma-separated\n"
@@ -703,7 +696,7 @@ msgstr ""
 "                      Avvia un nuovo blocco .xz dopo gli intervalli, sperati\n"
 "                      da virgole, di dati non compressi"
 
-#: src/xz/message.c:1152
+#: src/xz/message.c:1166
 msgid ""
 "      --flush-timeout=TIMEOUT\n"
 "                      when compressing, if more than TIMEOUT milliseconds has\n"
@@ -716,7 +709,7 @@ msgstr ""
 "                      ulteriore input risulterebbe bloccata, viene eseguito il\n"
 "                      flush di tutti i dati pendenti"
 
-#: src/xz/message.c:1158
+#: src/xz/message.c:1172
 #, no-c-format
 msgid ""
 "      --memlimit-compress=LIMIT\n"
@@ -732,7 +725,7 @@ msgstr ""
 "                      compressione, l'estrazione o entrambe; LIMIT è in byte,\n"
 "                      % della memoria RAM oppure 0 per il valore predefinito"
 
-#: src/xz/message.c:1165
+#: src/xz/message.c:1179
 msgid ""
 "      --no-adjust     if compression settings exceed the memory usage limit,\n"
 "                      give an error instead of adjusting the settings downwards"
@@ -741,7 +734,7 @@ msgstr ""
 "                      utilizzo della memoria, lancia un errore invece di\n"
 "                      utilizzare valori più piccoli"
 
-#: src/xz/message.c:1171
+#: src/xz/message.c:1185
 msgid ""
 "\n"
 " Custom filter chain for compression (alternative for using presets):"
@@ -750,7 +743,7 @@ msgstr ""
 " Catena di filtri personalizzati per la compressione (alternative per\n"
 " l'utilizzo di preset):"
 
-#: src/xz/message.c:1180
+#: src/xz/message.c:1194
 msgid ""
 "\n"
 "  --lzma1[=OPTS]      LZMA1 or LZMA2; OPTS is a comma-separated list of zero or\n"
@@ -783,7 +776,7 @@ msgstr ""
 "                        depth=NUM  Profondità massima di ricerca; 0=automatica\n"
 "                                   (predefinito)"
 
-#: src/xz/message.c:1195
+#: src/xz/message.c:1209
 msgid ""
 "\n"
 "  --x86[=OPTS]        x86 BCJ filter (32-bit and 64-bit)\n"
@@ -806,7 +799,7 @@ msgstr ""
 "                      start=NUM Offset iniziale per le conversioni\n"
 "                                (predefinito=0)"
 
-#: src/xz/message.c:1207
+#: src/xz/message.c:1221
 msgid ""
 "\n"
 "  --delta[=OPTS]      Delta filter; valid OPTS (valid values; default):\n"
@@ -818,7 +811,7 @@ msgstr ""
 "                      dist=NUM   Distanza tra byte sottratti\n"
 "                                 gli uni dagli altri (1-256; 1)"
 
-#: src/xz/message.c:1215
+#: src/xz/message.c:1229
 msgid ""
 "\n"
 " Other options:\n"
@@ -826,7 +819,7 @@ msgstr ""
 "\n"
 " Altre opzioni:\n"
 
-#: src/xz/message.c:1218
+#: src/xz/message.c:1232
 msgid ""
 "  -q, --quiet         suppress warnings; specify twice to suppress errors too\n"
 "  -v, --verbose       be verbose; specify twice for even more verbose"
@@ -836,15 +829,15 @@ msgstr ""
 "  -v, --verbose       Output prolisso; specificare due volte per output ancora\n"
 "                      più prolisso"
 
-#: src/xz/message.c:1223
+#: src/xz/message.c:1237
 msgid "  -Q, --no-warn       make warnings not affect the exit status"
 msgstr "  -Q, --no-warn       Gli avvisi non influenzano lo stato d'uscita"
 
-#: src/xz/message.c:1225
+#: src/xz/message.c:1239
 msgid "      --robot         use machine-parsable messages (useful for scripts)"
 msgstr "      --robot         Usa messaggi analizzabili (utile per gli script)"
 
-#: src/xz/message.c:1228
+#: src/xz/message.c:1242
 msgid ""
 "      --info-memory   display the total amount of RAM and the currently active\n"
 "                      memory usage limits, and exit"
@@ -852,7 +845,7 @@ msgstr ""
 "      --info-memory   Visualizza la quantità totale di RAM, il limite attuale\n"
 "                      attivo di utilizzo della memore ed esce"
 
-#: src/xz/message.c:1231
+#: src/xz/message.c:1245
 msgid ""
 "  -h, --help          display the short help (lists only the basic options)\n"
 "  -H, --long-help     display this long help and exit"
@@ -860,7 +853,7 @@ msgstr ""
 "  -h, --help          Stampa l'aiuto breve (elenca solo le opzioni di base)\n"
 "  -H, --long-help     Stampa questo lungo aiuto ed esce"
 
-#: src/xz/message.c:1235
+#: src/xz/message.c:1249
 msgid ""
 "  -h, --help          display this short help and exit\n"
 "  -H, --long-help     display the long help (lists also the advanced options)"
@@ -868,11 +861,11 @@ msgstr ""
 "  -h, --help          Stampa questo breve aiuto ed esce\n"
 "  -H, --long-help     Stampa l'aiuto lungo (elenca anche le opzioni avanzate)"
 
-#: src/xz/message.c:1240
+#: src/xz/message.c:1254
 msgid "  -V, --version       display the version number and exit"
 msgstr "  -V, --version       Stampa il numero della versione ed esce"
 
-#: src/xz/message.c:1242
+#: src/xz/message.c:1256
 msgid ""
 "\n"
 "With no FILE, or when FILE is -, read standard input.\n"
@@ -884,19 +877,19 @@ msgstr ""
 #. for this package. Please add _another line_ saying
 #. "Report translation bugs to <...>\n" with the email or WWW
 #. address for translation bugs. Thanks.
-#: src/xz/message.c:1248
+#: src/xz/message.c:1262
 #, c-format
 msgid "Report bugs to <%s> (in English or Finnish).\n"
 msgstr ""
 "Segnalare i bug a <%s> (in inglese o finlandese).\n"
 "Segnalare i bug di traduzione a <tp@lists.linux.it>.\n"
 
-#: src/xz/message.c:1250
+#: src/xz/message.c:1264
 #, c-format
 msgid "%s home page: <%s>\n"
 msgstr "Sito web di %s: <%s>\n"
 
-#: src/xz/message.c:1254
+#: src/xz/message.c:1268
 msgid "THIS IS A DEVELOPMENT VERSION NOT INTENDED FOR PRODUCTION USE."
 msgstr "Questa è una versione di sviluppo non adatta per utilizzi in produzione."
 
@@ -968,28 +961,28 @@ msgstr "I suffissi validi sono \"KiB\" (2^10), \"MiB\" (2^20), e \"GiB\" (2^30).
 msgid "Value of the option `%s' must be in the range [%<PRIu64>, %<PRIu64>]"
 msgstr "Il valore dell'opzione \"%s\" deve essere nell'intervallo [%<PRIu64>, %<PRIu64>]"
 
-#: src/xz/util.c:257
+#: src/xz/util.c:267
 msgid "Empty filename, skipping"
 msgstr "Nome file vuoto, viene saltato"
 
-#: src/xz/util.c:271
+#: src/xz/util.c:281
 msgid "Compressed data cannot be read from a terminal"
 msgstr "I dati compressi non possono essere letti da un terminale"
 
-#: src/xz/util.c:284
+#: src/xz/util.c:294
 msgid "Compressed data cannot be written to a terminal"
 msgstr "I dati compressi non possono essere scritti ad un terminale"
 
-#: src/common/tuklib_exit.c:39
+#: src/common/tuklib_exit.c:40
 msgid "Writing to standard output failed"
 msgstr "Scrittura sullo standard ouput non riuscita"
 
-#: src/common/tuklib_exit.c:42
+#: src/common/tuklib_exit.c:43
 msgid "Unknown error"
 msgstr "Errore sconosciuto"
 
-#~ msgid "Error setting O_NONBLOCK on standard input: %s"
-#~ msgstr "Errore nell'impostare O_NONBLOCK sullo standard input: %s"
+#~ msgid "Sandbox is disabled due to incompatible command line arguments"
+#~ msgstr "La modalità sandbox è disabilitata a causa di argomenti a riga di comando non compatibili"
 
-#~ msgid "Error setting O_NONBLOCK on standard output: %s"
-#~ msgstr "Errore nell'impostare O_NONBLOCK sullo standard output: %s"
+#~ msgid "Sandbox was successfully enabled"
+#~ msgstr "Sandbox abilitata con successo"
index 2f532a4..b2bd291 100644 (file)
Binary files a/po/pl.gmo and b/po/pl.gmo differ
index ade4850..9188b4a 100644 (file)
--- a/po/pl.po
+++ b/po/pl.po
@@ -1,19 +1,20 @@
 # Polish translation for xz.
-# This file is in the public domain.
-# Jakub Bogusz <qboosh@pld-linux.org>, 2011-2014.
+# This file is put in the public domain.
+# Jakub Bogusz <qboosh@pld-linux.org>, 2011-2019.
 #
 msgid ""
 msgstr ""
-"Project-Id-Version: xz 5.1.4\n"
+"Project-Id-Version: xz 5.2.4\n"
 "Report-Msgid-Bugs-To: lasse.collin@tukaani.org\n"
-"POT-Creation-Date: 2018-04-29 18:19+0300\n"
-"PO-Revision-Date: 2014-10-15 20:53+0200\n"
+"POT-Creation-Date: 2020-03-17 16:29+0200\n"
+"PO-Revision-Date: 2019-03-05 05:30+0100\n"
 "Last-Translator: Jakub Bogusz <qboosh@pld-linux.org>\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: 8bit\n"
+"X-Bugs: Report translation errors to the Language-Team address.\n"
 "Plural-Forms: nplurals=3; plural=n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
 
 #: src/xz/args.c:63
@@ -51,11 +52,11 @@ msgstr "Zmienna środowiskowa %s zawiera zbyt dużo argumentów"
 
 #: src/xz/args.c:643
 msgid "Compression support was disabled at build time"
-msgstr ""
+msgstr "Obsługa kompresji została wyłączona na etapie budowania"
 
 #: src/xz/args.c:650
 msgid "Decompression support was disabled at build time"
-msgstr ""
+msgstr "Obsługa dekompresji została wyłączona na etapie budowania"
 
 #: src/xz/coder.c:110
 msgid "Maximum number of filters is four"
@@ -118,19 +119,11 @@ msgstr "Skorygowano rozmiar słownika LZMA%c z %s MiB do %s MiB aby nie przekroc
 msgid "Error creating a pipe: %s"
 msgstr "Błąd tworzenia potoku: %s"
 
-#: src/xz/file_io.c:173
-msgid "Sandbox is disabled due to incompatible command line arguments"
-msgstr ""
-
-#: src/xz/file_io.c:216
-msgid "Sandbox was successfully enabled"
-msgstr ""
-
-#: src/xz/file_io.c:220
+#: src/xz/file_io.c:224
 msgid "Failed to enable the sandbox"
-msgstr ""
+msgstr "Nie udało się włączyć piaskownicy"
 
-#: src/xz/file_io.c:262
+#: src/xz/file_io.c:266
 #, c-format
 msgid "%s: poll() failed: %s"
 msgstr "%s: poll() nie powiodło się: %s"
@@ -145,126 +138,126 @@ msgstr "%s: poll() nie powiodło się: %s"
 #. it is possible that the user has put a new file in place
 #. of the original file, and in that case it obviously
 #. shouldn't be removed.
-#: src/xz/file_io.c:332
+#: src/xz/file_io.c:333
 #, c-format
 msgid "%s: File seems to have been moved, not removing"
 msgstr "%s: Plik wygląda na przeniesiony, nie zostanie usunięty"
 
-#: src/xz/file_io.c:339 src/xz/file_io.c:878
+#: src/xz/file_io.c:340 src/xz/file_io.c:882
 #, c-format
 msgid "%s: Cannot remove: %s"
 msgstr "%s: Nie można usunąć: %s"
 
-#: src/xz/file_io.c:364
+#: src/xz/file_io.c:366
 #, c-format
 msgid "%s: Cannot set the file owner: %s"
 msgstr "%s: Nie można ustawić właściciela pliku: %s"
 
-#: src/xz/file_io.c:370
+#: src/xz/file_io.c:372
 #, c-format
 msgid "%s: Cannot set the file group: %s"
 msgstr "%s: Nie można ustawić grupy pliku: %s"
 
-#: src/xz/file_io.c:389
+#: src/xz/file_io.c:391
 #, c-format
 msgid "%s: Cannot set the file permissions: %s"
 msgstr "%s: Nie można ustawić uprawnień pliku: %s"
 
-#: src/xz/file_io.c:515
+#: src/xz/file_io.c:517
 #, c-format
 msgid "Error getting the file status flags from standard input: %s"
 msgstr "Błąd podczas pobierania flag stanu pliku ze standardowego wejścia: %s"
 
-#: src/xz/file_io.c:572 src/xz/file_io.c:634
+#: src/xz/file_io.c:574 src/xz/file_io.c:636
 #, c-format
 msgid "%s: Is a symbolic link, skipping"
 msgstr "%s: Jest dowiązaniem symbolicznym, pominięto"
 
-#: src/xz/file_io.c:663
+#: src/xz/file_io.c:665
 #, c-format
 msgid "%s: Is a directory, skipping"
 msgstr "%s: Jest katalogiem, pominięto"
 
-#: src/xz/file_io.c:669
+#: src/xz/file_io.c:671
 #, c-format
 msgid "%s: Not a regular file, skipping"
 msgstr "%s: Nie jest zwykłym plikiem, pominięto"
 
-#: src/xz/file_io.c:686
+#: src/xz/file_io.c:688
 #, c-format
 msgid "%s: File has setuid or setgid bit set, skipping"
 msgstr "%s: Plik ma ustawiony bit setuid lub setgid, pominięto"
 
-#: src/xz/file_io.c:693
+#: src/xz/file_io.c:695
 #, c-format
 msgid "%s: File has sticky bit set, skipping"
 msgstr "%s: Plik ma ustawiony bit sticky, pominięto"
 
-#: src/xz/file_io.c:700
+#: src/xz/file_io.c:702
 #, c-format
 msgid "%s: Input file has more than one hard link, skipping"
 msgstr "%s: Plik wejściowy ma więcej niż jedno dowiązanie zwykłe, pominięto"
 
-#: src/xz/file_io.c:788
+#: src/xz/file_io.c:792
 #, c-format
 msgid "Error restoring the status flags to standard input: %s"
 msgstr "Błąd podczas odtwarzania flag stanu dla standardowego wejścia: %s"
 
-#: src/xz/file_io.c:836
+#: src/xz/file_io.c:840
 #, c-format
 msgid "Error getting the file status flags from standard output: %s"
 msgstr "Błąd podczas pobierania flag stanu pliku ze standardowego wyjścia: %s"
 
-#: src/xz/file_io.c:1014
+#: src/xz/file_io.c:1018
 #, c-format
 msgid "Error restoring the O_APPEND flag to standard output: %s"
 msgstr "Błąd podczas odtwarzania flagi O_APPEND dla standardowego wyjścia: %s"
 
-#: src/xz/file_io.c:1026
+#: src/xz/file_io.c:1030
 #, c-format
 msgid "%s: Closing the file failed: %s"
 msgstr "%s: Zamknięcie pliku nie powiodło się: %s"
 
-#: src/xz/file_io.c:1062 src/xz/file_io.c:1288
+#: src/xz/file_io.c:1066 src/xz/file_io.c:1309
 #, c-format
 msgid "%s: Seeking failed when trying to create a sparse file: %s"
 msgstr "%s: Zmiana pozycji nie powiodła się podczas próby utworzenia pliku rzadkiego: %s"
 
-#: src/xz/file_io.c:1157
+#: src/xz/file_io.c:1167
 #, c-format
 msgid "%s: Read error: %s"
 msgstr "%s: Błąd odczytu: %s"
 
-#: src/xz/file_io.c:1177
+#: src/xz/file_io.c:1191
 #, c-format
 msgid "%s: Error seeking the file: %s"
 msgstr "%s: Błąd podczas zmiany pozycji w pliku: %s"
 
-#: src/xz/file_io.c:1187
+#: src/xz/file_io.c:1201
 #, c-format
 msgid "%s: Unexpected end of file"
 msgstr "%s: Nieoczekiwany koniec pliku"
 
-#: src/xz/file_io.c:1246
+#: src/xz/file_io.c:1260
 #, c-format
 msgid "%s: Write error: %s"
 msgstr "%s: Błąd zapisu: %s"
 
-#: src/xz/hardware.c:107
+#: src/xz/hardware.c:137
 msgid "Disabled"
 msgstr "Wyłączony"
 
 #. TRANSLATORS: Test with "xz --info-memory" to see if
 #. the alignment looks nice.
-#: src/xz/hardware.c:126
+#: src/xz/hardware.c:156
 msgid "Total amount of physical memory (RAM): "
 msgstr "Całkowita ilość pamięci fizycznej (RAM): "
 
-#: src/xz/hardware.c:128
+#: src/xz/hardware.c:158
 msgid "Memory usage limit for compression:    "
 msgstr "Limit użycia pamięci dla kompresji:      "
 
-#: src/xz/hardware.c:130
+#: src/xz/hardware.c:160
 msgid "Memory usage limit for decompression:  "
 msgstr "Limit użycia pamięci dla dekompresji:    "
 
@@ -492,68 +485,68 @@ msgstr "Nie można odczytać danych ze standardowego wejścia przy czytaniu nazw
 #. of the line in messages. Usually it becomes "xz: ".
 #. This is a translatable string because French needs
 #. a space before a colon.
-#: src/xz/message.c:714
+#: src/xz/message.c:728
 #, c-format
 msgid "%s: "
 msgstr "%s: "
 
-#: src/xz/message.c:777 src/xz/message.c:827
+#: src/xz/message.c:791 src/xz/message.c:841
 msgid "Internal error (bug)"
 msgstr "Błąd wewnętrzny"
 
-#: src/xz/message.c:784
+#: src/xz/message.c:798
 msgid "Cannot establish signal handlers"
 msgstr "Nie można ustawić obsługi sygnałów"
 
-#: src/xz/message.c:793
+#: src/xz/message.c:807
 msgid "No integrity check; not verifying file integrity"
 msgstr "Brak kontroli spójności; poprawność plików nie będzie weryfikowana"
 
-#: src/xz/message.c:796
+#: src/xz/message.c:810
 msgid "Unsupported type of integrity check; not verifying file integrity"
 msgstr "Nieobsługiwany typ kontroli spójności; poprawność plików nie będzie weryfikowana"
 
-#: src/xz/message.c:803
+#: src/xz/message.c:817
 msgid "Memory usage limit reached"
 msgstr "Osiągnięto limit użycia pamięci"
 
-#: src/xz/message.c:806
+#: src/xz/message.c:820
 msgid "File format not recognized"
 msgstr "Nie rozpoznany format pliku"
 
-#: src/xz/message.c:809
+#: src/xz/message.c:823
 msgid "Unsupported options"
 msgstr "Nieobsługiwane opcje"
 
-#: src/xz/message.c:812
+#: src/xz/message.c:826
 msgid "Compressed data is corrupt"
 msgstr "Dane skompresowane są uszkodzone"
 
-#: src/xz/message.c:815
+#: src/xz/message.c:829
 msgid "Unexpected end of input"
 msgstr "Nieoczekiwany koniec wejścia"
 
-#: src/xz/message.c:848
+#: src/xz/message.c:862
 #, c-format
 msgid "%s MiB of memory is required. The limiter is disabled."
 msgstr "Wymagane jest %s MiB pamięci. Limit jest wyłączony."
 
-#: src/xz/message.c:876
+#: src/xz/message.c:890
 #, c-format
 msgid "%s MiB of memory is required. The limit is %s."
 msgstr "Wymagane jest %s MiB pamięci. Limit to %s."
 
-#: src/xz/message.c:1043
+#: src/xz/message.c:1057
 #, c-format
 msgid "%s: Filter chain: %s\n"
 msgstr "%s: Łańcuch filtrów: %s\n"
 
-#: src/xz/message.c:1053
+#: src/xz/message.c:1067
 #, c-format
 msgid "Try `%s --help' for more information."
 msgstr "Polecenie `%s --help' pokaże więcej informacji."
 
-#: src/xz/message.c:1079
+#: src/xz/message.c:1093
 #, c-format
 msgid ""
 "Usage: %s [OPTION]... [FILE]...\n"
@@ -564,17 +557,17 @@ msgstr ""
 "Kompresja lub dekompresja PLIKÓW w formacie .xz.\n"
 "\n"
 
-#: src/xz/message.c:1086
+#: src/xz/message.c:1100
 msgid "Mandatory arguments to long options are mandatory for short options too.\n"
 msgstr ""
 "Argumenty obowiązkowe dla opcji długich są obowiązkowe również dla opcji\n"
 "krótkich.\n"
 
-#: src/xz/message.c:1090
+#: src/xz/message.c:1104
 msgid " Operation mode:\n"
 msgstr " Tryb pracy:\n"
 
-#: src/xz/message.c:1093
+#: src/xz/message.c:1107
 msgid ""
 "  -z, --compress      force compression\n"
 "  -d, --decompress    force decompression\n"
@@ -586,7 +579,7 @@ msgstr ""
 "  -t, --test          sprawdzenie spójności plików skompresowanych\n"
 "  -l, --list          wypisanie informacji o plikach .xz"
 
-#: src/xz/message.c:1099
+#: src/xz/message.c:1113
 msgid ""
 "\n"
 " Operation modifiers:\n"
@@ -594,7 +587,7 @@ msgstr ""
 "\n"
 " Modyfikatory operacji:\n"
 
-#: src/xz/message.c:1102
+#: src/xz/message.c:1116
 msgid ""
 "  -k, --keep          keep (don't delete) input files\n"
 "  -f, --force         force overwrite of output file and (de)compress links\n"
@@ -604,7 +597,7 @@ msgstr ""
 "  -f, --force         nadpisywanie plików wyjściowych i (de)kompresja dowiązań\n"
 "  -c, --stdout        zapis na standardowe wyjście, nieusuwanie plików wej."
 
-#: src/xz/message.c:1108
+#: src/xz/message.c:1122
 msgid ""
 "      --single-stream decompress only the first stream, and silently\n"
 "                      ignore possible remaining input data"
@@ -612,7 +605,7 @@ msgstr ""
 "      --single-stream dekompresja tylko pierwszego strumienia, ciche\n"
 "                      zignorowanie pozostałych danych wejściowych"
 
-#: src/xz/message.c:1111
+#: src/xz/message.c:1125
 msgid ""
 "      --no-sparse     do not create sparse files when decompressing\n"
 "  -S, --suffix=.SUF   use the suffix `.SUF' on compressed files\n"
@@ -628,7 +621,7 @@ msgstr ""
 "                      wejścia; muszą być zakończone znakiem nowej linii\n"
 "      --files0[=PLIK] podobnie do --files, ale znakiem kończącym musi być NUL"
 
-#: src/xz/message.c:1120
+#: src/xz/message.c:1134
 msgid ""
 "\n"
 " Basic file format and compression options:\n"
@@ -636,7 +629,7 @@ msgstr ""
 "\n"
 " Podstawowe opcje formatu pliku i kompresji:\n"
 
-#: src/xz/message.c:1122
+#: src/xz/message.c:1136
 msgid ""
 "  -F, --format=FMT    file format to encode or decode; possible values are\n"
 "                      `auto' (default), `xz', `lzma', and `raw'\n"
@@ -648,11 +641,11 @@ msgstr ""
 "  -C, --check=TEST    typ kontroli spójności: `none' (ostrożnie!),\n"
 "                      `crc32', `crc64' (domyślny) lub `sha256'"
 
-#: src/xz/message.c:1127
+#: src/xz/message.c:1141
 msgid "      --ignore-check  don't verify the integrity check when decompressing"
 msgstr "      --ignore-check  bez kontroli sprawdzania integralności przy dekompresji"
 
-#: src/xz/message.c:1131
+#: src/xz/message.c:1145
 msgid ""
 "  -0 ... -9           compression preset; default is 6; take compressor *and*\n"
 "                      decompressor memory usage into account before using 7-9!"
@@ -661,7 +654,7 @@ msgstr ""
 "                      użyciem wartości 7-9 należy wziąć pod uwagę wykorzystanie\n"
 "                      pamięci przy kompresji *oraz* dekompresji!"
 
-#: src/xz/message.c:1135
+#: src/xz/message.c:1149
 msgid ""
 "  -e, --extreme       try to improve compression ratio by using more CPU time;\n"
 "                      does not affect decompressor memory requirements"
@@ -670,7 +663,7 @@ msgstr ""
 "                      ilości czasu procesora; nie wpływa na wymagania\n"
 "                      pamięciowe dekompresora"
 
-#: src/xz/message.c:1139
+#: src/xz/message.c:1153
 msgid ""
 "  -T, --threads=NUM   use at most NUM threads; the default is 1; set to 0\n"
 "                      to use as many threads as there are processor cores"
@@ -678,7 +671,7 @@ msgstr ""
 "  -T, --threads=ILE   użycie maksymalnie ILU wątków; domyślnie 1; 0 oznacza\n"
 "                      tyle, ile jest rdzeni procesorów"
 
-#: src/xz/message.c:1144
+#: src/xz/message.c:1158
 msgid ""
 "      --block-size=SIZE\n"
 "                      start a new .xz block after every SIZE bytes of input;\n"
@@ -689,7 +682,7 @@ msgstr ""
 "                      opcja służy do ustawienia rozmiaru bloku dla kompresji\n"
 "                      wielowątkowej"
 
-#: src/xz/message.c:1148
+#: src/xz/message.c:1162
 msgid ""
 "      --block-list=SIZES\n"
 "                      start a new .xz block after the given comma-separated\n"
@@ -699,7 +692,7 @@ msgstr ""
 "                      rozpoczęcie nowego bloku .xz po rozdzielonych przecinkiem\n"
 "                      przedziałach danych nieskompresowanych"
 
-#: src/xz/message.c:1152
+#: src/xz/message.c:1166
 msgid ""
 "      --flush-timeout=TIMEOUT\n"
 "                      when compressing, if more than TIMEOUT milliseconds has\n"
@@ -711,7 +704,7 @@ msgstr ""
 "                      ostatniegu zapisu bloku, a odczyt kolejnych danych byłby\n"
 "                      blokujący, wszystkie gotowe dane są zapisywane"
 
-#: src/xz/message.c:1158
+#: src/xz/message.c:1172
 #, no-c-format
 msgid ""
 "      --memlimit-compress=LIMIT\n"
@@ -727,7 +720,7 @@ msgstr ""
 "                      dekompresji lub obu; LIMIT jest w bajtach, % RAM lub 0\n"
 "                      dla limitów domyślnych"
 
-#: src/xz/message.c:1165
+#: src/xz/message.c:1179
 msgid ""
 "      --no-adjust     if compression settings exceed the memory usage limit,\n"
 "                      give an error instead of adjusting the settings downwards"
@@ -736,7 +729,7 @@ msgstr ""
 "                      pamięci, zostanie zgłoszony błąd zamiast zmniejszania\n"
 "                      ustawień"
 
-#: src/xz/message.c:1171
+#: src/xz/message.c:1185
 msgid ""
 "\n"
 " Custom filter chain for compression (alternative for using presets):"
@@ -744,7 +737,7 @@ msgstr ""
 "\n"
 " Łańcuch własnych filtrów do kompresji (alternatywa do używania -0 .. -9):"
 
-#: src/xz/message.c:1180
+#: src/xz/message.c:1194
 msgid ""
 "\n"
 "  --lzma1[=OPTS]      LZMA1 or LZMA2; OPTS is a comma-separated list of zero or\n"
@@ -773,7 +766,7 @@ msgstr ""
 "                        mf=NAZWA   dopasowywacz (hc3, hc4, bt2, bt3, bt4; bt4)\n"
 "                        depth=ILE  maks. głębokość szukania; 0=auto (domyślne)"
 
-#: src/xz/message.c:1195
+#: src/xz/message.c:1209
 msgid ""
 "\n"
 "  --x86[=OPTS]        x86 BCJ filter (32-bit and 64-bit)\n"
@@ -795,7 +788,7 @@ msgstr ""
 "                      Poprawne OPCJE dla wszystkich filtrów BCJ:\n"
 "                        start=ILE  offset początku konwersji (domyślnie=0)"
 
-#: src/xz/message.c:1207
+#: src/xz/message.c:1221
 msgid ""
 "\n"
 "  --delta[=OPTS]      Delta filter; valid OPTS (valid values; default):\n"
@@ -807,7 +800,7 @@ msgstr ""
 "                        dist=ILE   odległość między bajtami odejmowanymi od\n"
 "                                   siebie (1-256; 1)"
 
-#: src/xz/message.c:1215
+#: src/xz/message.c:1229
 msgid ""
 "\n"
 " Other options:\n"
@@ -815,7 +808,7 @@ msgstr ""
 "\n"
 " Inne opcje:\n"
 
-#: src/xz/message.c:1218
+#: src/xz/message.c:1232
 msgid ""
 "  -q, --quiet         suppress warnings; specify twice to suppress errors too\n"
 "  -v, --verbose       be verbose; specify twice for even more verbose"
@@ -823,15 +816,15 @@ msgstr ""
 "  -q, --quiet         pominięcie ostrzeżeń; dwukrotne podanie pomija też błędy\n"
 "  -v, --verbose       więcej informacji; dwukrotne podanie to jeszcze więcej"
 
-#: src/xz/message.c:1223
+#: src/xz/message.c:1237
 msgid "  -Q, --no-warn       make warnings not affect the exit status"
 msgstr "  -Q, --no-warn       ostrzeżenia nie mają wpływu na status zakończenia"
 
-#: src/xz/message.c:1225
+#: src/xz/message.c:1239
 msgid "      --robot         use machine-parsable messages (useful for scripts)"
 msgstr "      --robot         komunikaty w formacie dla maszyny (do skryptów)"
 
-#: src/xz/message.c:1228
+#: src/xz/message.c:1242
 msgid ""
 "      --info-memory   display the total amount of RAM and the currently active\n"
 "                      memory usage limits, and exit"
@@ -839,7 +832,7 @@ msgstr ""
 "      --info-memory   wyświetlenie całkowitej ilości pamięci RAM oraz aktualnie\n"
 "                      aktywnych limitów pamięci i zakończenie pracy"
 
-#: src/xz/message.c:1231
+#: src/xz/message.c:1245
 msgid ""
 "  -h, --help          display the short help (lists only the basic options)\n"
 "  -H, --long-help     display this long help and exit"
@@ -847,7 +840,7 @@ msgstr ""
 "  -h, --help          wyświetlenie krótkiego opisu (tylko podstawowe opcje)\n"
 "  -H, --long-help     wyświetlenie tego długiego opisu i zakończenie"
 
-#: src/xz/message.c:1235
+#: src/xz/message.c:1249
 msgid ""
 "  -h, --help          display this short help and exit\n"
 "  -H, --long-help     display the long help (lists also the advanced options)"
@@ -855,11 +848,11 @@ msgstr ""
 "  -h, --help          wyświetlenie tego krótkiego opisu i zakończenie\n"
 "  -H, --long-help     wyświetlenie długiego opisu (także opcje zaawansowane)"
 
-#: src/xz/message.c:1240
+#: src/xz/message.c:1254
 msgid "  -V, --version       display the version number and exit"
 msgstr "  -V, --version       wyświetlenie informacji o wersji i zakończenie"
 
-#: src/xz/message.c:1242
+#: src/xz/message.c:1256
 msgid ""
 "\n"
 "With no FILE, or when FILE is -, read standard input.\n"
@@ -871,7 +864,7 @@ msgstr ""
 #. for this package. Please add _another line_ saying
 #. "Report translation bugs to <...>\n" with the email or WWW
 #. address for translation bugs. Thanks.
-#: src/xz/message.c:1248
+#: src/xz/message.c:1262
 #, c-format
 msgid "Report bugs to <%s> (in English or Finnish).\n"
 msgstr ""
@@ -880,12 +873,12 @@ msgstr ""
 "Błędy w tłumaczeniu prosimy zgłaszać na adres\n"
 "<translation-team-pl@lists.sourceforge.net>.\n"
 
-#: src/xz/message.c:1250
+#: src/xz/message.c:1264
 #, c-format
 msgid "%s home page: <%s>\n"
 msgstr "Strona domowa %s: <%s>\n"
 
-#: src/xz/message.c:1254
+#: src/xz/message.c:1268
 msgid "THIS IS A DEVELOPMENT VERSION NOT INTENDED FOR PRODUCTION USE."
 msgstr "TA WERSJA JEST ROZWOJOWA, NIE PRZEZNACZONA DO UŻYTKU PRODUKCYJNEGO."
 
@@ -957,28 +950,28 @@ msgstr "Poprawne przyrostki to `KiB' (2^10), `MiB' (2^20) i `GiB' (2^30)."
 msgid "Value of the option `%s' must be in the range [%<PRIu64>, %<PRIu64>]"
 msgstr "Wartość opcji `%s' musi być w przedziale [%<PRIu64>, %<PRIu64>]"
 
-#: src/xz/util.c:257
+#: src/xz/util.c:267
 msgid "Empty filename, skipping"
 msgstr "Pusta nazwa pliku, pominięto"
 
-#: src/xz/util.c:271
+#: src/xz/util.c:281
 msgid "Compressed data cannot be read from a terminal"
 msgstr "Dane skompresowane nie mogą być czytane z terminala"
 
-#: src/xz/util.c:284
+#: src/xz/util.c:294
 msgid "Compressed data cannot be written to a terminal"
 msgstr "Dane skompresowane nie mogą być zapisywane na terminal"
 
-#: src/common/tuklib_exit.c:39
+#: src/common/tuklib_exit.c:40
 msgid "Writing to standard output failed"
 msgstr "Zapis na standardowe wyjście nie powiódł się"
 
-#: src/common/tuklib_exit.c:42
+#: src/common/tuklib_exit.c:43
 msgid "Unknown error"
 msgstr "Nieznany błąd"
 
-#~ msgid "Error setting O_NONBLOCK on standard input: %s"
-#~ msgstr "Błąd podczas ustawiania O_NONBLOCK dla standardowego wejścia: %s"
+#~ msgid "Sandbox is disabled due to incompatible command line arguments"
+#~ msgstr "Piaskownica jest wyłączona ze względu na niezgodne opcje linii poleceń"
 
-#~ msgid "Error setting O_NONBLOCK on standard output: %s"
-#~ msgstr "Błąd podczas ustawiania O_NONBLOCK dla standardowego wyjścia: %s"
+#~ msgid "Sandbox was successfully enabled"
+#~ msgstr "Piaskownica została włączona"
diff --git a/po/pt_BR.gmo b/po/pt_BR.gmo
new file mode 100644 (file)
index 0000000..692ca8f
Binary files /dev/null and b/po/pt_BR.gmo differ
diff --git a/po/pt_BR.po b/po/pt_BR.po
new file mode 100644 (file)
index 0000000..7c9d284
--- /dev/null
@@ -0,0 +1,999 @@
+# Brazilian Portuguese translations for xz package
+# Traduções em português brasileiro para o pacote xz.
+# This file is put in the public domain.
+# Rafael Fontenelle <rafaelff@gnome.org>, 2019.
+msgid ""
+msgstr ""
+"Project-Id-Version: xz 5.2.4\n"
+"Report-Msgid-Bugs-To: lasse.collin@tukaani.org\n"
+"POT-Creation-Date: 2020-03-17 16:29+0200\n"
+"PO-Revision-Date: 2019-03-05 20:30-0200\n"
+"Last-Translator: Rafael Fontenelle <rafaelff@gnome.org>\n"
+"Language-Team: Brazilian Portuguese <ldpbr-translation@lists.sourceforge.net>\n"
+"Language: pt_BR\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Bugs: Report translation errors to the Language-Team address.\n"
+"Plural-Forms: nplurals=2; plural=(n > 1);\n"
+"X-Generator: Virtaal 1.0.0-beta1\n"
+
+#: src/xz/args.c:63
+#, c-format
+msgid "%s: Invalid argument to --block-list"
+msgstr "%s: Argumento inválido para --block-list"
+
+#: src/xz/args.c:73
+#, c-format
+msgid "%s: Too many arguments to --block-list"
+msgstr "%s: Argumentos demais para --block-list"
+
+#: src/xz/args.c:102
+msgid "0 can only be used as the last element in --block-list"
+msgstr "0 só pode ser usado como o último elemento em --block-list"
+
+#: src/xz/args.c:406
+#, c-format
+msgid "%s: Unknown file format type"
+msgstr "%s: Tipo de formato de arquivo desconhecido"
+
+#: src/xz/args.c:429 src/xz/args.c:437
+#, c-format
+msgid "%s: Unsupported integrity check type"
+msgstr "%s: Tipo de verificação de integridade sem suporte"
+
+#: src/xz/args.c:473
+msgid "Only one file can be specified with `--files' or `--files0'."
+msgstr "Somente um arquivo pode ser especificado com \"--files\" ou \"--files0\"."
+
+#: src/xz/args.c:541
+#, c-format
+msgid "The environment variable %s contains too many arguments"
+msgstr "A variável de ambiente %s contém argumentos demais"
+
+#: src/xz/args.c:643
+msgid "Compression support was disabled at build time"
+msgstr "Suporte a compressão foi desabilitado em tempo de compilação"
+
+#: src/xz/args.c:650
+msgid "Decompression support was disabled at build time"
+msgstr "Suporte a descompressão foi desabilitado em tempo de compilação"
+
+#: src/xz/coder.c:110
+msgid "Maximum number of filters is four"
+msgstr "O número máximo de filtros é quatro"
+
+#: src/xz/coder.c:129
+msgid "Memory usage limit is too low for the given filter setup."
+msgstr "O limite de uso de memória é baixo demais para a configuração de filtro dada."
+
+#: src/xz/coder.c:159
+msgid "Using a preset in raw mode is discouraged."
+msgstr "O uso de uma predefinição em modo bruto é desencorajado."
+
+#: src/xz/coder.c:161
+msgid "The exact options of the presets may vary between software versions."
+msgstr "As opções exatas de predefinições podem variar entre versões do software."
+
+#: src/xz/coder.c:184
+msgid "The .lzma format supports only the LZMA1 filter"
+msgstr "O formato .lzma possui suporte apenas ao filtro LZMA1"
+
+#: src/xz/coder.c:192
+msgid "LZMA1 cannot be used with the .xz format"
+msgstr "LZMA1 não pode ser usado com o formato .xz"
+
+#: src/xz/coder.c:209
+msgid "The filter chain is incompatible with --flush-timeout"
+msgstr "A cadeia de filtros é incompatível com --flush-timeout"
+
+#: src/xz/coder.c:215
+msgid "Switching to single-threaded mode due to --flush-timeout"
+msgstr "Alternando para o modo de thread única por causa de --flush-timeout"
+
+#: src/xz/coder.c:235
+#, c-format
+msgid "Using up to %<PRIu32> threads."
+msgstr "Usando até %<PRIu32> threads."
+
+#: src/xz/coder.c:251
+msgid "Unsupported filter chain or filter options"
+msgstr "Opções de filtro ou cadeia de filtros sem suporte"
+
+#: src/xz/coder.c:263
+#, c-format
+msgid "Decompression will need %s MiB of memory."
+msgstr "A descompressão precisará de %s MiB de memória."
+
+#: src/xz/coder.c:300
+#, c-format
+msgid "Adjusted the number of threads from %s to %s to not exceed the memory usage limit of %s MiB"
+msgstr "Ajustado o número de threads de %s de %s para não exceder o limite de uso de memória de %s MiB"
+
+#: src/xz/coder.c:354
+#, c-format
+msgid "Adjusted LZMA%c dictionary size from %s MiB to %s MiB to not exceed the memory usage limit of %s MiB"
+msgstr "Ajustado o tamanho de dicionário de LZMA%c de %s MiB para %s MiB para não exceder o limite de uso de memória de %s MiB"
+
+#: src/xz/file_io.c:110 src/xz/file_io.c:118
+#, c-format
+msgid "Error creating a pipe: %s"
+msgstr "Erro ao criar um pipe: %s"
+
+#: src/xz/file_io.c:224
+msgid "Failed to enable the sandbox"
+msgstr "Falha ao habilitar o sandbox"
+
+#: src/xz/file_io.c:266
+#, c-format
+msgid "%s: poll() failed: %s"
+msgstr "%s: poll() falhou: %s"
+
+#. TRANSLATORS: When compression or decompression finishes,
+#. and xz is going to remove the source file, xz first checks
+#. if the source file still exists, and if it does, does its
+#. device and inode numbers match what xz saw when it opened
+#. the source file. If these checks fail, this message is
+#. shown, %s being the filename, and the file is not deleted.
+#. The check for device and inode numbers is there, because
+#. it is possible that the user has put a new file in place
+#. of the original file, and in that case it obviously
+#. shouldn't be removed.
+#: src/xz/file_io.c:333
+#, c-format
+msgid "%s: File seems to have been moved, not removing"
+msgstr "%s: O arquivo parece ter sido movido, não será removido"
+
+#: src/xz/file_io.c:340 src/xz/file_io.c:882
+#, c-format
+msgid "%s: Cannot remove: %s"
+msgstr "%s: Não foi possível remover: %s"
+
+#: src/xz/file_io.c:366
+#, c-format
+msgid "%s: Cannot set the file owner: %s"
+msgstr "%s: Não foi possível definir o dono do arquivo: %s"
+
+#: src/xz/file_io.c:372
+#, c-format
+msgid "%s: Cannot set the file group: %s"
+msgstr "%s: Não foi possível definir o grupo do arquivo: %s"
+
+#: src/xz/file_io.c:391
+#, c-format
+msgid "%s: Cannot set the file permissions: %s"
+msgstr "%s: Não foi possível definir as permissões do arquivo: %s"
+
+#: src/xz/file_io.c:517
+#, c-format
+msgid "Error getting the file status flags from standard input: %s"
+msgstr "Erro ao obter os sinalizadores de status da entrada padrão: %s"
+
+#: src/xz/file_io.c:574 src/xz/file_io.c:636
+#, c-format
+msgid "%s: Is a symbolic link, skipping"
+msgstr "%s: É um link simbólico, ignorando"
+
+#: src/xz/file_io.c:665
+#, c-format
+msgid "%s: Is a directory, skipping"
+msgstr "%s: É um diretório, ignorando"
+
+#: src/xz/file_io.c:671
+#, c-format
+msgid "%s: Not a regular file, skipping"
+msgstr "%s: Não é um arquivo comum, ignorando"
+
+#: src/xz/file_io.c:688
+#, c-format
+msgid "%s: File has setuid or setgid bit set, skipping"
+msgstr "%s: O arquivo possui o bit setuid ou setgid definido, ignorando"
+
+#: src/xz/file_io.c:695
+#, c-format
+msgid "%s: File has sticky bit set, skipping"
+msgstr "%s: O arquivo possui o bit sticky definido, ignorando"
+
+#: src/xz/file_io.c:702
+#, c-format
+msgid "%s: Input file has more than one hard link, skipping"
+msgstr "%s: O arquivo de entrada possui mais de um link absoluto, ignorando"
+
+#: src/xz/file_io.c:792
+#, c-format
+msgid "Error restoring the status flags to standard input: %s"
+msgstr "Erro ao restaurar os sinalizadores de status para entrada padrão: %s"
+
+#: src/xz/file_io.c:840
+#, c-format
+msgid "Error getting the file status flags from standard output: %s"
+msgstr "Erro ao obter os sinalizadores de status de arquivo da saída padrão: %s"
+
+#: src/xz/file_io.c:1018
+#, c-format
+msgid "Error restoring the O_APPEND flag to standard output: %s"
+msgstr "Erro ao restaurar o sinalizador O_APPEND para a saída padrão: %s"
+
+#: src/xz/file_io.c:1030
+#, c-format
+msgid "%s: Closing the file failed: %s"
+msgstr "%s: Fechamento do arquivo falhou: %s"
+
+#: src/xz/file_io.c:1066 src/xz/file_io.c:1309
+#, c-format
+msgid "%s: Seeking failed when trying to create a sparse file: %s"
+msgstr "%s: Busca falhou ao tentar criar um arquivo esparso: %s"
+
+#: src/xz/file_io.c:1167
+#, c-format
+msgid "%s: Read error: %s"
+msgstr "%s: Erro de leitura: %s"
+
+#: src/xz/file_io.c:1191
+#, c-format
+msgid "%s: Error seeking the file: %s"
+msgstr "%s: Erro ao buscar o arquivo: %s"
+
+#: src/xz/file_io.c:1201
+#, c-format
+msgid "%s: Unexpected end of file"
+msgstr "%s: Fim de arquivo inesperado"
+
+#: src/xz/file_io.c:1260
+#, c-format
+msgid "%s: Write error: %s"
+msgstr "%s: Erro de escrita: %s"
+
+#: src/xz/hardware.c:137
+msgid "Disabled"
+msgstr "Desabilitado"
+
+# Espaços adicionados para manter alinhamento com mensagens adjacentes -- Rafael
+#. TRANSLATORS: Test with "xz --info-memory" to see if
+#. the alignment looks nice.
+#: src/xz/hardware.c:156
+msgid "Total amount of physical memory (RAM): "
+msgstr "Quantidade total de memória física (RAM):    "
+
+# Espaços adicionados para manter alinhamento com mensagens adjacentes -- Rafael
+#: src/xz/hardware.c:158
+msgid "Memory usage limit for compression:    "
+msgstr "Limite de uso de memória para compressão:    "
+
+# Espaços reduzidos para manter alinhamento com mensagens adjacentes -- Rafael
+#: src/xz/hardware.c:160
+msgid "Memory usage limit for decompression:  "
+msgstr "Limite de uso de memória para descompressão: "
+
+#. TRANSLATORS: Indicates that there is no integrity check.
+#. This string is used in tables, so the width must not
+#. exceed ten columns with a fixed-width font.
+#: src/xz/list.c:65
+msgid "None"
+msgstr "Nenhuma"
+
+#. TRANSLATORS: Indicates that integrity check name is not known,
+#. but the Check ID is known (here 2). This and other "Unknown-N"
+#. strings are used in tables, so the width must not exceed ten
+#. columns with a fixed-width font. It's OK to omit the dash if
+#. you need space for one extra letter, but don't use spaces.
+#: src/xz/list.c:72
+msgid "Unknown-2"
+msgstr "Incógnito2"
+
+# Não exceder 10 caracteres e espaços não são permitidos -- Rafael
+#: src/xz/list.c:73
+msgid "Unknown-3"
+msgstr "Incógnito3"
+
+# Não exceder 10 caracteres e espaços não são permitidos -- Rafael
+#: src/xz/list.c:75
+msgid "Unknown-5"
+msgstr "Incógnito5"
+
+# Não exceder 10 caracteres e espaços não são permitidos -- Rafael
+#: src/xz/list.c:76
+msgid "Unknown-6"
+msgstr "Incógnito6"
+
+# Não exceder 10 caracteres e espaços não são permitidos -- Rafael
+#: src/xz/list.c:77
+msgid "Unknown-7"
+msgstr "Incógnito7"
+
+# Não exceder 10 caracteres e espaços não são permitidos -- Rafael
+#: src/xz/list.c:78
+msgid "Unknown-8"
+msgstr "Incógnito8"
+
+# Não exceder 10 caracteres e espaços não são permitidos -- Rafael
+#: src/xz/list.c:79
+msgid "Unknown-9"
+msgstr "Incógnito9"
+
+# Não exceder 10 caracteres e espaços não são permitidos -- Rafael
+#: src/xz/list.c:81
+msgid "Unknown-11"
+msgstr "Incógnito11"
+
+# Não exceder 10 caracteres e espaços não são permitidos -- Rafael
+#: src/xz/list.c:82
+msgid "Unknown-12"
+msgstr "Incógnito12"
+
+# Não exceder 10 caracteres e espaços não são permitidos -- Rafael
+#: src/xz/list.c:83
+msgid "Unknown-13"
+msgstr "Incógnito13"
+
+# Não exceder 10 caracteres e espaços não são permitidos -- Rafael
+#: src/xz/list.c:84
+msgid "Unknown-14"
+msgstr "Incógnito14"
+
+# Não exceder 10 caracteres e espaços não são permitidos -- Rafael
+#: src/xz/list.c:85
+msgid "Unknown-15"
+msgstr "Incógnito15"
+
+#: src/xz/list.c:153
+#, c-format
+msgid "%s: File is empty"
+msgstr "%s: O arquivo está vazio"
+
+#: src/xz/list.c:158
+#, c-format
+msgid "%s: Too small to be a valid .xz file"
+msgstr "%s: Pequeno demais para ser um arquivo .xz válido"
+
+#. TRANSLATORS: These are column headings. From Strms (Streams)
+#. to Ratio, the columns are right aligned. Check and Filename
+#. are left aligned. If you need longer words, it's OK to
+#. use two lines here. Test with "xz -l foo.xz".
+#: src/xz/list.c:677
+msgid "Strms  Blocks   Compressed Uncompressed  Ratio  Check   Filename"
+msgstr "Fluxos Blocos   Comprimido Descomprimid  Propo  Verif   Nome de Arquivo"
+
+#: src/xz/list.c:717
+#, c-format
+msgid "  Streams:            %s\n"
+msgstr "  Fluxos:             %s\n"
+
+#: src/xz/list.c:719
+#, c-format
+msgid "  Blocks:             %s\n"
+msgstr "  Blocos:             %s\n"
+
+#: src/xz/list.c:721
+#, c-format
+msgid "  Compressed size:    %s\n"
+msgstr "  Tam. comprimido:    %s\n"
+
+#: src/xz/list.c:724
+#, c-format
+msgid "  Uncompressed size:  %s\n"
+msgstr "  Tam. descomprimido: %s\n"
+
+#: src/xz/list.c:727
+#, c-format
+msgid "  Ratio:              %s\n"
+msgstr "  Proporção:          %s\n"
+
+#: src/xz/list.c:729
+#, c-format
+msgid "  Check:              %s\n"
+msgstr "  Verificação:        %s\n"
+
+#: src/xz/list.c:730
+#, c-format
+msgid "  Stream padding:     %s\n"
+msgstr "  Ajuste do fluxo:    %s\n"
+
+#. TRANSLATORS: The second line is column headings. All except
+#. Check are right aligned; Check is left aligned. Test with
+#. "xz -lv foo.xz".
+#: src/xz/list.c:758
+msgid ""
+"  Streams:\n"
+"    Stream    Blocks      CompOffset    UncompOffset        CompSize      UncompSize  Ratio  Check      Padding"
+msgstr ""
+"  Fluxos:\n"
+"    Fluxo     Blocos      DeslocComp   DeslocDescomp     TamanhoComp  TamanhoDescomp  Propo  Verif       Ajuste"
+
+#. TRANSLATORS: The second line is column headings. All
+#. except Check are right aligned; Check is left aligned.
+#: src/xz/list.c:813
+#, c-format
+msgid ""
+"  Blocks:\n"
+"    Stream     Block      CompOffset    UncompOffset       TotalSize      UncompSize  Ratio  Check"
+msgstr ""
+"  Blocos:\n"
+"    Fluxo      Bloco      DeslocComp   DeslocDescomp    TamanhoTotal   TamanhoDecomp  Propo  Verif"
+
+#. TRANSLATORS: These are additional column headings
+#. for the most verbose listing mode. CheckVal
+#. (Check value), Flags, and Filters are left aligned.
+#. Header (Block Header Size), CompSize, and MemUsage
+#. are right aligned. %*s is replaced with 0-120
+#. spaces to make the CheckVal column wide enough.
+#. Test with "xz -lvv foo.xz".
+#: src/xz/list.c:825
+#, c-format
+msgid "      CheckVal %*s Header  Flags        CompSize    MemUsage  Filters"
+msgstr "      ValVerif %*s  Cabeç  Sinaliz       TamComp      UsoMem  Filtros"
+
+#: src/xz/list.c:903 src/xz/list.c:1078
+#, c-format
+msgid "  Memory needed:      %s MiB\n"
+msgstr "  Memória exigida:    %s MiB\n"
+
+# Espaço adicionado para promover alinhamento, vide "xz -lvv foo.xz"
+#: src/xz/list.c:905 src/xz/list.c:1080
+#, c-format
+msgid "  Sizes in headers:   %s\n"
+msgstr "  Tam. cabeçalhos:    %s\n"
+
+#: src/xz/list.c:906 src/xz/list.c:1081
+msgid "Yes"
+msgstr "Sim"
+
+#: src/xz/list.c:906 src/xz/list.c:1081
+msgid "No"
+msgstr "Não"
+
+#: src/xz/list.c:907 src/xz/list.c:1082
+#, c-format
+msgid "  Minimum XZ Utils version: %s\n"
+msgstr "  Versão mínima do XZ Utils: %s\n"
+
+#. TRANSLATORS: %s is an integer. Only the plural form of this
+#. message is used (e.g. "2 files"). Test with "xz -l foo.xz bar.xz".
+#: src/xz/list.c:1057
+#, c-format
+msgid "%s file\n"
+msgid_plural "%s files\n"
+msgstr[0] "%s arquivo\n"
+msgstr[1] "%s arquivos\n"
+
+#: src/xz/list.c:1070
+msgid "Totals:"
+msgstr "Totais:"
+
+#: src/xz/list.c:1071
+#, c-format
+msgid "  Number of files:    %s\n"
+msgstr "  Núm. de arquivos:   %s\n"
+
+#: src/xz/list.c:1146
+msgid "--list works only on .xz files (--format=xz or --format=auto)"
+msgstr "--list funciona apenas em arquivos .xz (--format=xz ou --format=auto)"
+
+#: src/xz/list.c:1152
+msgid "--list does not support reading from standard input"
+msgstr "--list não possui suporte a leitura da entrada padrão"
+
+#: src/xz/main.c:89
+#, c-format
+msgid "%s: Error reading filenames: %s"
+msgstr "%s: Erro ao ler nomes de arquivo: %s"
+
+#: src/xz/main.c:96
+#, c-format
+msgid "%s: Unexpected end of input when reading filenames"
+msgstr "%s: Fim da entrada inesperado ao ler nomes de arquivos"
+
+#: src/xz/main.c:120
+#, c-format
+msgid "%s: Null character found when reading filenames; maybe you meant to use `--files0' instead of `--files'?"
+msgstr "%s: Caractere nulo encontrado ao ler nomes de arquivos; talvez você queria usar \"--files0\" em vez de \"--files\"?"
+
+#: src/xz/main.c:174
+msgid "Compression and decompression with --robot are not supported yet."
+msgstr "Ainda não há suporte a compressão e descompressão com --robot."
+
+#: src/xz/main.c:252
+msgid "Cannot read data from standard input when reading filenames from standard input"
+msgstr "Não é possível ler dados da entrada padrão ao ler nomes de arquivos da entrada padrão"
+
+#. TRANSLATORS: This is the program name in the beginning
+#. of the line in messages. Usually it becomes "xz: ".
+#. This is a translatable string because French needs
+#. a space before a colon.
+#: src/xz/message.c:728
+#, c-format
+msgid "%s: "
+msgstr "%s: "
+
+#: src/xz/message.c:791 src/xz/message.c:841
+msgid "Internal error (bug)"
+msgstr "Erro interno (bug)"
+
+#: src/xz/message.c:798
+msgid "Cannot establish signal handlers"
+msgstr "Não foi possível estabelecer manipuladores de sinais"
+
+#: src/xz/message.c:807
+msgid "No integrity check; not verifying file integrity"
+msgstr "Sem verificação de integridade; não será verificada a integridade do arquivo"
+
+#: src/xz/message.c:810
+msgid "Unsupported type of integrity check; not verifying file integrity"
+msgstr "Tipo de verificação de integridade sem suporte; não será verificada a integridade do arquivo"
+
+#: src/xz/message.c:817
+msgid "Memory usage limit reached"
+msgstr "Limite de uso de memória alcançado"
+
+#: src/xz/message.c:820
+msgid "File format not recognized"
+msgstr "Formato de arquivo não reconhecido"
+
+#: src/xz/message.c:823
+msgid "Unsupported options"
+msgstr "Opções sem suporte"
+
+#: src/xz/message.c:826
+msgid "Compressed data is corrupt"
+msgstr "Os dados comprimidos estão corrompidos"
+
+#: src/xz/message.c:829
+msgid "Unexpected end of input"
+msgstr "Fim da entrada inesperado"
+
+#: src/xz/message.c:862
+#, c-format
+msgid "%s MiB of memory is required. The limiter is disabled."
+msgstr "%s MiB de memória é necessário. O limitador está desabilitado."
+
+#: src/xz/message.c:890
+#, c-format
+msgid "%s MiB of memory is required. The limit is %s."
+msgstr "%s MiB de memória é necessário. O limite é %s."
+
+#: src/xz/message.c:1057
+#, c-format
+msgid "%s: Filter chain: %s\n"
+msgstr "%s: Cadeia de filtros: %s\n"
+
+#: src/xz/message.c:1067
+#, c-format
+msgid "Try `%s --help' for more information."
+msgstr "Tente \"%s --help\" para mais informações."
+
+#: src/xz/message.c:1093
+#, c-format
+msgid ""
+"Usage: %s [OPTION]... [FILE]...\n"
+"Compress or decompress FILEs in the .xz format.\n"
+"\n"
+msgstr ""
+"Uso: %s [OPÇÕES]... [ARQUIVO]...\n"
+"Comprime e descomprime ARQUIVOs no formato .xz.\n"
+"\n"
+
+#: src/xz/message.c:1100
+msgid "Mandatory arguments to long options are mandatory for short options too.\n"
+msgstr "Argumentos obrigatórios para opções longas também o são para opções curtas.\n"
+
+#: src/xz/message.c:1104
+msgid " Operation mode:\n"
+msgstr " Modo de operação:\n"
+
+#: src/xz/message.c:1107
+msgid ""
+"  -z, --compress      force compression\n"
+"  -d, --decompress    force decompression\n"
+"  -t, --test          test compressed file integrity\n"
+"  -l, --list          list information about .xz files"
+msgstr ""
+"  -z, --compress      força a compressão\n"
+"  -d, --decompress    força a descompressão\n"
+"  -t, --test          testa a integridade do arquivo comprimido\n"
+"  -l, --list          lista informações sobre arquivos .xz"
+
+#: src/xz/message.c:1113
+msgid ""
+"\n"
+" Operation modifiers:\n"
+msgstr ""
+"\n"
+" Modificadores de opções:\n"
+
+#: src/xz/message.c:1116
+msgid ""
+"  -k, --keep          keep (don't delete) input files\n"
+"  -f, --force         force overwrite of output file and (de)compress links\n"
+"  -c, --stdout        write to standard output and don't delete input files"
+msgstr ""
+"  -k, --keep          mantém (não exclui) os arquivos de entrada\n"
+"  -f, --force         força a sobrescrita do arquivo de entrada e a \n"
+"                      (des)compressão de links\n"
+"  -c, --stdout        escreve a entrada padrão e não exclui os arquivos\n"
+"                      de entrada"
+
+#: src/xz/message.c:1122
+msgid ""
+"      --single-stream decompress only the first stream, and silently\n"
+"                      ignore possible remaining input data"
+msgstr ""
+"      --single-stream descomprime apenas o primeiro fluxo, e ignora de forma\n"
+"                      silenciosa possíveis dados de entrada restantes"
+
+#: src/xz/message.c:1125
+msgid ""
+"      --no-sparse     do not create sparse files when decompressing\n"
+"  -S, --suffix=.SUF   use the suffix `.SUF' on compressed files\n"
+"      --files[=FILE]  read filenames to process from FILE; if FILE is\n"
+"                      omitted, filenames are read from the standard input;\n"
+"                      filenames must be terminated with the newline character\n"
+"      --files0[=FILE] like --files but use the null character as terminator"
+msgstr ""
+"      --no-sparse     não cria arquivos esparsos ao descomprimir\n"
+"  -S, --suffix=.SUF   usa o sufixo \".SUF\" em arquivos comprimidos\n"
+"      --files[=ARQUIVO]\n"
+"                      lê nomes de arquivos para processar de ARQUIVO;\n"
+"                      se ARQUIVO for omitido, nomes de arquivos são\n"
+"                      lidos da entrada padrão; nomes de arquivos devem\n"
+"                      ser terminados com o caractere de nova linha\n"
+"      --files0[=ARQUIVO]\n"
+"                      similar a --files, mas usa o caractere nulo como\n"
+"                      terminador"
+
+#: src/xz/message.c:1134
+msgid ""
+"\n"
+" Basic file format and compression options:\n"
+msgstr ""
+"\n"
+" Opções básicas de formato de arquivo e compressão:\n"
+
+#: src/xz/message.c:1136
+msgid ""
+"  -F, --format=FMT    file format to encode or decode; possible values are\n"
+"                      `auto' (default), `xz', `lzma', and `raw'\n"
+"  -C, --check=CHECK   integrity check type: `none' (use with caution),\n"
+"                      `crc32', `crc64' (default), or `sha256'"
+msgstr ""
+"  -F, --format=FMT    formato de arquivo para codificar ou decodificar;\n"
+"                      valores possíveis são\n"
+"                      \"auto\" (padrão), \"xz\", \"lzma\" e \"raw\"\n"
+"  -C, --check=VERIF   tipo de verificação de integridade: \"none\" (cuidado!),\n"
+"                      \"crc32\", \"crc64\" (padrão) ou \"sha256\""
+
+#: src/xz/message.c:1141
+msgid "      --ignore-check  don't verify the integrity check when decompressing"
+msgstr "      --ignore-check  não faz a verificação de integridade ao descomprimir"
+
+#: src/xz/message.c:1145
+msgid ""
+"  -0 ... -9           compression preset; default is 6; take compressor *and*\n"
+"                      decompressor memory usage into account before using 7-9!"
+msgstr ""
+"  -0 ... -9           predefinição de compressão; padrão é 6; leve o uso de\n"
+"                      memória do compressor *e* descompressor em conta\n"
+"                      antes de usar 7-9!"
+
+#: src/xz/message.c:1149
+msgid ""
+"  -e, --extreme       try to improve compression ratio by using more CPU time;\n"
+"                      does not affect decompressor memory requirements"
+msgstr ""
+"  -e, --extreme       tenta melhorar a proporção de compressão usando mais\n"
+"                      tempo de CPU; não afeta os requisitos de memória do\n"
+"                      descompressor"
+
+#: src/xz/message.c:1153
+msgid ""
+"  -T, --threads=NUM   use at most NUM threads; the default is 1; set to 0\n"
+"                      to use as many threads as there are processor cores"
+msgstr ""
+"  -T, --threads=NÚM   usa no máximo NÚM threads; o padrão é 1; defina para\n"
+"                      0 para usar o máximo de threads que há de núcleos de\n"
+"                      processador"
+
+#: src/xz/message.c:1158
+msgid ""
+"      --block-size=SIZE\n"
+"                      start a new .xz block after every SIZE bytes of input;\n"
+"                      use this to set the block size for threaded compression"
+msgstr ""
+"      --block-size=TAM\n"
+"                      inicia novo bloco .xz após cada TAM bytes de entrada;\n"
+"                      use isso para definido o tamanho de bloco para\n"
+"                      compressão com threads"
+
+#: src/xz/message.c:1162
+msgid ""
+"      --block-list=SIZES\n"
+"                      start a new .xz block after the given comma-separated\n"
+"                      intervals of uncompressed data"
+msgstr ""
+"      --block-list=TAM\n"
+"                      inicia um novo bloco .xz após os intervalos dados,\n"
+"                      separados por vírgula, de dados descomprimidos"
+
+#: src/xz/message.c:1166
+msgid ""
+"      --flush-timeout=TIMEOUT\n"
+"                      when compressing, if more than TIMEOUT milliseconds has\n"
+"                      passed since the previous flush and reading more input\n"
+"                      would block, all pending data is flushed out"
+msgstr ""
+"      --flush-timeout=TEMPO-LIMITE\n"
+"                      ao comprimir, se mais de TEMPO-LIMITE milissegundos\n"
+"                      tiverem passado desde a liberação anterior e a leitura\n"
+"                      de mais entrada bloquearia, todos os dados pendentes\n"
+"                      serão liberados"
+
+#: src/xz/message.c:1172
+#, no-c-format
+msgid ""
+"      --memlimit-compress=LIMIT\n"
+"      --memlimit-decompress=LIMIT\n"
+"  -M, --memlimit=LIMIT\n"
+"                      set memory usage limit for compression, decompression,\n"
+"                      or both; LIMIT is in bytes, % of RAM, or 0 for defaults"
+msgstr ""
+"      --memlimit-compress=LIMITE\n"
+"      --memlimit-decompress=LIMITE\n"
+"  -M, --memlimit=LIMITE\n"
+"                      define o limite de uso de memória para compressão,\n"
+"                      descompressão ou ambos; LIMITE é em bytes, % de RAM\n"
+"                      ou 0 para padrões"
+
+#: src/xz/message.c:1179
+msgid ""
+"      --no-adjust     if compression settings exceed the memory usage limit,\n"
+"                      give an error instead of adjusting the settings downwards"
+msgstr ""
+"      --no-adjust     se configurações de compressão exceder o limite\n"
+"                      de uso de memória, fornece um erro em vez de\n"
+"                      ajustar as configurações para baixo"
+
+#: src/xz/message.c:1185
+msgid ""
+"\n"
+" Custom filter chain for compression (alternative for using presets):"
+msgstr ""
+"\n"
+" Cadeia de filtros personalizada para compressão (alternativa à predefinição):"
+
+#: src/xz/message.c:1194
+msgid ""
+"\n"
+"  --lzma1[=OPTS]      LZMA1 or LZMA2; OPTS is a comma-separated list of zero or\n"
+"  --lzma2[=OPTS]      more of the following options (valid values; default):\n"
+"                        preset=PRE reset options to a preset (0-9[e])\n"
+"                        dict=NUM   dictionary size (4KiB - 1536MiB; 8MiB)\n"
+"                        lc=NUM     number of literal context bits (0-4; 3)\n"
+"                        lp=NUM     number of literal position bits (0-4; 0)\n"
+"                        pb=NUM     number of position bits (0-4; 2)\n"
+"                        mode=MODE  compression mode (fast, normal; normal)\n"
+"                        nice=NUM   nice length of a match (2-273; 64)\n"
+"                        mf=NAME    match finder (hc3, hc4, bt2, bt3, bt4; bt4)\n"
+"                        depth=NUM  maximum search depth; 0=automatic (default)"
+msgstr ""
+"\n"
+"--lzma1[=OPÇÕES]      LZMA1/LZMA2; OPÇÕES é uma lista separada por vírgula de\n"
+"--lzma2[=OPÇÕES]      zero ou + das opções abaixo (valores válidos, padrão):\n"
+"                        preset=PRE redefine opções para predefinição (0-9[e])\n"
+"                        dict=NÚM   tam. de dicionário (4KiB - 1536MiB; 8MiB)\n"
+"                        lc=NÚM     núm. de bits de contexto literal (0-4; 3)\n"
+"                        lp=NÚM     núm. de bits de posição literal (0-4; 0)\n"
+"                        pb=NÚM     núm. de bits de posição (0-4; 2)\n"
+"                        mode=MODO  modo de compressão (fast, normal; normal)\n"
+"                        nice=NÚM   tam. de nice de correspondência (2-273; 64)\n"
+"                        mf=NOME    localizador de correspondência\n"
+"                                   (hc3, hc4, bt2, bt3, bt4; bt4)\n"
+"                        depth=NUM  máximo de profundidade de pesquisa;\n"
+"                                   0=automatic (padrão)"
+
+#: src/xz/message.c:1209
+msgid ""
+"\n"
+"  --x86[=OPTS]        x86 BCJ filter (32-bit and 64-bit)\n"
+"  --powerpc[=OPTS]    PowerPC BCJ filter (big endian only)\n"
+"  --ia64[=OPTS]       IA-64 (Itanium) BCJ filter\n"
+"  --arm[=OPTS]        ARM BCJ filter (little endian only)\n"
+"  --armthumb[=OPTS]   ARM-Thumb BCJ filter (little endian only)\n"
+"  --sparc[=OPTS]      SPARC BCJ filter\n"
+"                      Valid OPTS for all BCJ filters:\n"
+"                        start=NUM  start offset for conversions (default=0)"
+msgstr ""
+"\n"
+"  --x86[=OPÇÕES]      filtro BCJ x86 (32 bits e 64 bits)\n"
+"  --powerpc[=OPÇÕES]  filtro BCJ PowerPC (big endian apenas)\n"
+"  --ia64[=OPÇÕES]     filtro BCJ IA-64 (Itanium)\n"
+"  --arm[=OPÇÕES]      filtro BCJ ARM (little endian apenas)\n"
+"  --armthumb[=OPÇÕES] filtro BCJ ARM-Thumb (little endian apenas)\n"
+"  --sparc[=OPÇÕES]    filtro BCJ SPARC\n"
+"                      OPÇÕES válidas para todos os filtros BCJ:\n"
+"                        start=NUM  deslocamento inicial para conversões\n"
+"                                   (default=0)"
+
+#: src/xz/message.c:1221
+msgid ""
+"\n"
+"  --delta[=OPTS]      Delta filter; valid OPTS (valid values; default):\n"
+"                        dist=NUM   distance between bytes being subtracted\n"
+"                                   from each other (1-256; 1)"
+msgstr ""
+"\n"
+"  --delta[=OPÇÕES]    filtro delta; OPÇÕES válidas (valores válidos, padrão):\n"
+"                        dist=NÚM   distância entre bytes sendo subtraído\n"
+"                                   de cada um (1-256; 1)"
+
+#: src/xz/message.c:1229
+msgid ""
+"\n"
+" Other options:\n"
+msgstr ""
+"\n"
+" Outras opções:\n"
+
+#: src/xz/message.c:1232
+msgid ""
+"  -q, --quiet         suppress warnings; specify twice to suppress errors too\n"
+"  -v, --verbose       be verbose; specify twice for even more verbose"
+msgstr ""
+"  -q, --quiet         suprime avisos, use duas vezes para suprimir erros também\n"
+"  -v, --verbose       ser detalhado; use duas vezes para ainda mais detalhes"
+
+#: src/xz/message.c:1237
+msgid "  -Q, --no-warn       make warnings not affect the exit status"
+msgstr "  -Q, --no-warn       faz os avisos não afetarem o status de saída"
+
+#: src/xz/message.c:1239
+msgid "      --robot         use machine-parsable messages (useful for scripts)"
+msgstr "      --robot         usa mensagens analisáveis por máquina (útil p/ scripts)"
+
+#: src/xz/message.c:1242
+msgid ""
+"      --info-memory   display the total amount of RAM and the currently active\n"
+"                      memory usage limits, and exit"
+msgstr ""
+"      --info-memory   exibe a quantidade total de RAM e os limites de uso\n"
+"                      de memória atualmente ativos e sai"
+
+#: src/xz/message.c:1245
+msgid ""
+"  -h, --help          display the short help (lists only the basic options)\n"
+"  -H, --long-help     display this long help and exit"
+msgstr ""
+"  -h, --help          exibe a ajuda curto (lista apenas as opções básicas)\n"
+"  -H, --long-help     exibe essa ajuda longa e sai"
+
+#: src/xz/message.c:1249
+msgid ""
+"  -h, --help          display this short help and exit\n"
+"  -H, --long-help     display the long help (lists also the advanced options)"
+msgstr ""
+"  -h, --help          exibe essa ajuda curta e sai\n"
+"  -H, --long-help     exibe a ajuda longa (lista também as opções avançadas)"
+
+#: src/xz/message.c:1254
+msgid "  -V, --version       display the version number and exit"
+msgstr "  -V, --version       exibe o número de versão e sai"
+
+#: src/xz/message.c:1256
+msgid ""
+"\n"
+"With no FILE, or when FILE is -, read standard input.\n"
+msgstr ""
+"\n"
+"Sem ARQUIVO, ou quando ARQUIVO é -, lê da entrada padrão.\n"
+
+#. TRANSLATORS: This message indicates the bug reporting address
+#. for this package. Please add _another line_ saying
+#. "Report translation bugs to <...>\n" with the email or WWW
+#. address for translation bugs. Thanks.
+#: src/xz/message.c:1262
+#, c-format
+msgid "Report bugs to <%s> (in English or Finnish).\n"
+msgstr ""
+"Relate erros para <%s> (em inglês ou finlandês).\n"
+"Relate erros de tradução para <https://translationproject.org/team/pt_BR.html>.\n"
+
+#: src/xz/message.c:1264
+#, c-format
+msgid "%s home page: <%s>\n"
+msgstr "Site do %s: <%s>\n"
+
+#: src/xz/message.c:1268
+msgid "THIS IS A DEVELOPMENT VERSION NOT INTENDED FOR PRODUCTION USE."
+msgstr "ESSA É UMA VERSÃO DE DESENVOLVIMENTO, NÃO DESTINADA PARA USO EM PRODUÇÃO."
+
+#: src/xz/options.c:86
+#, c-format
+msgid "%s: Options must be `name=value' pairs separated with commas"
+msgstr "%s: As opções devem ser pares \"nome=valor\" separados por vírgulas"
+
+#: src/xz/options.c:93
+#, c-format
+msgid "%s: Invalid option name"
+msgstr "%s: Nome de opção inválido"
+
+#: src/xz/options.c:113
+#, c-format
+msgid "%s: Invalid option value"
+msgstr "%s: Valor de opção inválido"
+
+#: src/xz/options.c:247
+#, c-format
+msgid "Unsupported LZMA1/LZMA2 preset: %s"
+msgstr "Predefinição LZMA1/LZMA2 sem suporte: %s"
+
+#: src/xz/options.c:355
+msgid "The sum of lc and lp must not exceed 4"
+msgstr "A soma de lc e lp não deve exceder 4"
+
+#: src/xz/options.c:359
+#, c-format
+msgid "The selected match finder requires at least nice=%<PRIu32>"
+msgstr "O localizador de correspondência selecionado requer pelo menos nice=%<PRIu32>"
+
+#: src/xz/suffix.c:133 src/xz/suffix.c:258
+#, c-format
+msgid "%s: With --format=raw, --suffix=.SUF is required unless writing to stdout"
+msgstr "%s: Com --format=raw, --suffix=.SUF é exigido, a menos que esteja escrevendo para stdout"
+
+#: src/xz/suffix.c:164
+#, c-format
+msgid "%s: Filename has an unknown suffix, skipping"
+msgstr "%s: O nome de arquivo tem um sufixo desconhecido, ignorando"
+
+#: src/xz/suffix.c:185
+#, c-format
+msgid "%s: File already has `%s' suffix, skipping"
+msgstr "%s: O arquivo já tem o sufixo \"%s\", ignorando"
+
+#: src/xz/suffix.c:393
+#, c-format
+msgid "%s: Invalid filename suffix"
+msgstr "%s: Sufixo de nome de arquivo inválido"
+
+#: src/xz/util.c:71
+#, c-format
+msgid "%s: Value is not a non-negative decimal integer"
+msgstr "%s: O valor não é um inteiro integral decimal"
+
+#: src/xz/util.c:113
+#, c-format
+msgid "%s: Invalid multiplier suffix"
+msgstr "%s: Sufixo multiplicador inválido"
+
+#: src/xz/util.c:115
+msgid "Valid suffixes are `KiB' (2^10), `MiB' (2^20), and `GiB' (2^30)."
+msgstr "Sufixos válidos são \"KiB\" (2^10), \"MiB\" (2^20) e \"GiB\" (2^30)."
+
+#: src/xz/util.c:132
+#, c-format
+msgid "Value of the option `%s' must be in the range [%<PRIu64>, %<PRIu64>]"
+msgstr "O valor da opção \"%s\" deve estar no intervalo [%<PRIu64>, %<PRIu64>]"
+
+#: src/xz/util.c:267
+msgid "Empty filename, skipping"
+msgstr "Nome de arquivo vazio, ignorando"
+
+#: src/xz/util.c:281
+msgid "Compressed data cannot be read from a terminal"
+msgstr "Dados comprimidos não podem ser lidos de um terminal"
+
+#: src/xz/util.c:294
+msgid "Compressed data cannot be written to a terminal"
+msgstr "Dados comprimidos não podem ser escrito para um terminal"
+
+#: src/common/tuklib_exit.c:40
+msgid "Writing to standard output failed"
+msgstr "A escrita para a saída padrão falhou"
+
+#: src/common/tuklib_exit.c:43
+msgid "Unknown error"
+msgstr "Erro desconhecido"
+
+#~ msgid "Sandbox is disabled due to incompatible command line arguments"
+#~ msgstr "Sandbox está desabilitado em razão de argumentos de linha de comando incompatíveis"
+
+#~ msgid "Sandbox was successfully enabled"
+#~ msgstr "Sandbox foi habilitado com sucesso"
index 2436c49..8c70dfb 100644 (file)
@@ -1,6 +1,12 @@
-# Sed script that remove the POT-Creation-Date line in the header entry
+# Sed script that removes the POT-Creation-Date line in the header entry
 # from a POT file.
 #
+# Copyright (C) 2002 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 any warranty.
+#
 # The distinction between the first and the following occurrences of the
 # pattern is achieved by looking at the hold space.
 /^"POT-Creation-Date: .*"$/{
index d5e4402..1f83d17 100644 (file)
Binary files a/po/vi.gmo and b/po/vi.gmo differ
index 7c5db7e..96c97c9 100644 (file)
--- a/po/vi.po
+++ b/po/vi.po
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: xz 5.1.4beta\n"
 "Report-Msgid-Bugs-To: lasse.collin@tukaani.org\n"
-"POT-Creation-Date: 2018-04-29 18:19+0300\n"
+"POT-Creation-Date: 2020-03-17 16:29+0200\n"
 "PO-Revision-Date: 2014-09-25 09:06+0700\n"
 "Last-Translator: Trần Ngọc Quân <vnwildman@gmail.com>\n"
 "Language-Team: Vietnamese <translation-team-vi@lists.sourceforge.net>\n"
@@ -120,19 +120,11 @@ msgstr "Chỉnh cỡ từ điển LZMA%c từ %s MiB thành %s MiB để không
 msgid "Error creating a pipe: %s"
 msgstr "Gặp lỗi khi tạo một ống dẫn: %s"
 
-#: src/xz/file_io.c:173
-msgid "Sandbox is disabled due to incompatible command line arguments"
-msgstr ""
-
-#: src/xz/file_io.c:216
-msgid "Sandbox was successfully enabled"
-msgstr ""
-
-#: src/xz/file_io.c:220
+#: src/xz/file_io.c:224
 msgid "Failed to enable the sandbox"
 msgstr ""
 
-#: src/xz/file_io.c:262
+#: src/xz/file_io.c:266
 #, c-format
 msgid "%s: poll() failed: %s"
 msgstr "%s: hàm poll() bị lỗi: %s"
@@ -147,126 +139,126 @@ msgstr "%s: hàm poll() bị lỗi: %s"
 #. it is possible that the user has put a new file in place
 #. of the original file, and in that case it obviously
 #. shouldn't be removed.
-#: src/xz/file_io.c:332
+#: src/xz/file_io.c:333
 #, c-format
 msgid "%s: File seems to have been moved, not removing"
 msgstr "%s: Tập tin có lẽ đã bị di chuyển, không phải gỡ bỏ"
 
-#: src/xz/file_io.c:339 src/xz/file_io.c:878
+#: src/xz/file_io.c:340 src/xz/file_io.c:882
 #, c-format
 msgid "%s: Cannot remove: %s"
 msgstr "%s: Không thể gỡ bỏ: %s"
 
-#: src/xz/file_io.c:364
+#: src/xz/file_io.c:366
 #, c-format
 msgid "%s: Cannot set the file owner: %s"
 msgstr "%s: Không thể đặt chủ sở hữu tập tin: %s"
 
-#: src/xz/file_io.c:370
+#: src/xz/file_io.c:372
 #, c-format
 msgid "%s: Cannot set the file group: %s"
 msgstr "%s: Không thể đặt nhóm tập tin: %s"
 
-#: src/xz/file_io.c:389
+#: src/xz/file_io.c:391
 #, c-format
 msgid "%s: Cannot set the file permissions: %s"
 msgstr "%s: Không thể đặt chế độ đọc ghi cho tập tin: %s"
 
-#: src/xz/file_io.c:515
+#: src/xz/file_io.c:517
 #, c-format
 msgid "Error getting the file status flags from standard input: %s"
 msgstr "Gặp lỗi khi lấy các cờ trạng thái tập tin từ đầu vào tiêu chuẩn: %s"
 
-#: src/xz/file_io.c:572 src/xz/file_io.c:634
+#: src/xz/file_io.c:574 src/xz/file_io.c:636
 #, c-format
 msgid "%s: Is a symbolic link, skipping"
 msgstr "%s: Là một liên kết mềm nên bỏ qua"
 
-#: src/xz/file_io.c:663
+#: src/xz/file_io.c:665
 #, c-format
 msgid "%s: Is a directory, skipping"
 msgstr "%s: Không phải là một thư mục nên bỏ qua"
 
-#: src/xz/file_io.c:669
+#: src/xz/file_io.c:671
 #, c-format
 msgid "%s: Not a regular file, skipping"
 msgstr "%s: Không phải là tập tin thường nên bỏ qua"
 
-#: src/xz/file_io.c:686
+#: src/xz/file_io.c:688
 #, c-format
 msgid "%s: File has setuid or setgid bit set, skipping"
 msgstr "%s: Tập tin có đặt bít setuid hoặc setgid nên bỏ qua"
 
-#: src/xz/file_io.c:693
+#: src/xz/file_io.c:695
 #, c-format
 msgid "%s: File has sticky bit set, skipping"
 msgstr "%s: Tập tin có bít sticky nên bỏ qua"
 
-#: src/xz/file_io.c:700
+#: src/xz/file_io.c:702
 #, c-format
 msgid "%s: Input file has more than one hard link, skipping"
 msgstr "%s: Tập tin đầu vào có nhiều hơn một liên kết cứng nên bỏ qua"
 
-#: src/xz/file_io.c:788
+#: src/xz/file_io.c:792
 #, c-format
 msgid "Error restoring the status flags to standard input: %s"
 msgstr "Gặp lỗi khi phục hồi các cờ trạng thái tới đầu vào tiêu chuẩn: %s"
 
-#: src/xz/file_io.c:836
+#: src/xz/file_io.c:840
 #, c-format
 msgid "Error getting the file status flags from standard output: %s"
 msgstr "Gặp lỗi khi lấy các cờ trạng thái tập tin từ đầu vào tiêu chuẩn: %s"
 
-#: src/xz/file_io.c:1014
+#: src/xz/file_io.c:1018
 #, c-format
 msgid "Error restoring the O_APPEND flag to standard output: %s"
 msgstr "Gặp lỗi khi phục hồi cờ O_APPEND trên đầu ra tiêu chuẩn: %s"
 
-#: src/xz/file_io.c:1026
+#: src/xz/file_io.c:1030
 #, c-format
 msgid "%s: Closing the file failed: %s"
 msgstr "%s: Gặp lỗi khi đóng tập tin: %s"
 
-#: src/xz/file_io.c:1062 src/xz/file_io.c:1288
+#: src/xz/file_io.c:1066 src/xz/file_io.c:1309
 #, c-format
 msgid "%s: Seeking failed when trying to create a sparse file: %s"
 msgstr "%s: Gặp lỗi khi di chuyển vị trí đọc khi cố tạo một tập tin rải rác: %s"
 
-#: src/xz/file_io.c:1157
+#: src/xz/file_io.c:1167
 #, c-format
 msgid "%s: Read error: %s"
 msgstr "%s: Lỗi đọc: %s"
 
-#: src/xz/file_io.c:1177
+#: src/xz/file_io.c:1191
 #, c-format
 msgid "%s: Error seeking the file: %s"
 msgstr "%s: Gặp lỗi khi di chuyển vị trí đọc tập tin: %s"
 
-#: src/xz/file_io.c:1187
+#: src/xz/file_io.c:1201
 #, c-format
 msgid "%s: Unexpected end of file"
 msgstr "%s: Kết thúc tập tin bất ngờ"
 
-#: src/xz/file_io.c:1246
+#: src/xz/file_io.c:1260
 #, c-format
 msgid "%s: Write error: %s"
 msgstr "%s: Lỗi ghi: %s"
 
-#: src/xz/hardware.c:107
+#: src/xz/hardware.c:137
 msgid "Disabled"
 msgstr "Bị tắt"
 
 #. TRANSLATORS: Test with "xz --info-memory" to see if
 #. the alignment looks nice.
-#: src/xz/hardware.c:126
+#: src/xz/hardware.c:156
 msgid "Total amount of physical memory (RAM): "
 msgstr "Tổng dung lượng bộ nhớ vật lý (RAM):  "
 
-#: src/xz/hardware.c:128
+#: src/xz/hardware.c:158
 msgid "Memory usage limit for compression:    "
 msgstr "Mức giới hạn dùng bộ nhớ cho nén:     "
 
-#: src/xz/hardware.c:130
+#: src/xz/hardware.c:160
 msgid "Memory usage limit for decompression:  "
 msgstr "Mức giới hạn dùng bộ nhớ cho giải nén:"
 
@@ -492,68 +484,68 @@ msgstr "Không thể đọc dữ liệu từ đầu vào tiêu chuẩn khi đọ
 #. of the line in messages. Usually it becomes "xz: ".
 #. This is a translatable string because French needs
 #. a space before a colon.
-#: src/xz/message.c:714
+#: src/xz/message.c:728
 #, c-format
 msgid "%s: "
 msgstr "%s: "
 
-#: src/xz/message.c:777 src/xz/message.c:827
+#: src/xz/message.c:791 src/xz/message.c:841
 msgid "Internal error (bug)"
 msgstr "Lỗi nội bộ (lỗi)"
 
-#: src/xz/message.c:784
+#: src/xz/message.c:798
 msgid "Cannot establish signal handlers"
 msgstr "Không thể thiết lập bộ xử lý tín hiệu"
 
-#: src/xz/message.c:793
+#: src/xz/message.c:807
 msgid "No integrity check; not verifying file integrity"
 msgstr "Không có kiểm tra toàn vẹn nên không thể thẩm tra tính toàn vẹn của tập tin"
 
-#: src/xz/message.c:796
+#: src/xz/message.c:810
 msgid "Unsupported type of integrity check; not verifying file integrity"
 msgstr "Kiểu kiểm tra toàn vẹn chưa được hỗ trợ; nên không thể thẩm tra tính toàn vẹn của tập tin"
 
-#: src/xz/message.c:803
+#: src/xz/message.c:817
 msgid "Memory usage limit reached"
 msgstr "Đã chạm mốc giới hạn sử dụng bộ nhớ"
 
-#: src/xz/message.c:806
+#: src/xz/message.c:820
 msgid "File format not recognized"
 msgstr "Không nhận ra định dạng tập tin"
 
-#: src/xz/message.c:809
+#: src/xz/message.c:823
 msgid "Unsupported options"
 msgstr "Tùy chọn không được hỗ trợ"
 
-#: src/xz/message.c:812
+#: src/xz/message.c:826
 msgid "Compressed data is corrupt"
 msgstr "Dữ liệu đã nén bị hỏng"
 
-#: src/xz/message.c:815
+#: src/xz/message.c:829
 msgid "Unexpected end of input"
 msgstr "Gặp kết thúc đầu vào bất ngờ"
 
-#: src/xz/message.c:848
+#: src/xz/message.c:862
 #, c-format
 msgid "%s MiB of memory is required. The limiter is disabled."
 msgstr "Yêu cầu cần có %s MiB bộ nhớ. Nhưng giới hạn bị tắt."
 
-#: src/xz/message.c:876
+#: src/xz/message.c:890
 #, c-format
 msgid "%s MiB of memory is required. The limit is %s."
 msgstr "Yêu cầu cần có %s MiB bộ nhớ. Nhưng giới hạn là %s."
 
-#: src/xz/message.c:1043
+#: src/xz/message.c:1057
 #, c-format
 msgid "%s: Filter chain: %s\n"
 msgstr "%s: Móc xích lọc: %s\n"
 
-#: src/xz/message.c:1053
+#: src/xz/message.c:1067
 #, c-format
 msgid "Try `%s --help' for more information."
 msgstr "Hãy chạy lệnh “%s --help” để xem thông tin thêm."
 
-#: src/xz/message.c:1079
+#: src/xz/message.c:1093
 #, c-format
 msgid ""
 "Usage: %s [OPTION]... [FILE]...\n"
@@ -564,15 +556,15 @@ msgstr ""
 "Nén hoặc giải nén các TẬP TIN có định dạng .xz.\n"
 "\n"
 
-#: src/xz/message.c:1086
+#: src/xz/message.c:1100
 msgid "Mandatory arguments to long options are mandatory for short options too.\n"
 msgstr "Các tùy chọn dài bắt buộc phải có đối số thì với tùy chọn ngắn cũng vậy.\n"
 
-#: src/xz/message.c:1090
+#: src/xz/message.c:1104
 msgid " Operation mode:\n"
 msgstr " Chế độ thao tác:\n"
 
-#: src/xz/message.c:1093
+#: src/xz/message.c:1107
 msgid ""
 "  -z, --compress      force compression\n"
 "  -d, --decompress    force decompression\n"
@@ -584,7 +576,7 @@ msgstr ""
 "  -t, --test          kiểm tra tính toàn vẹn của tập tin nén\n"
 "  -l, --list          liệt kê các thông tin về tập tin .xz"
 
-#: src/xz/message.c:1099
+#: src/xz/message.c:1113
 msgid ""
 "\n"
 " Operation modifiers:\n"
@@ -592,7 +584,7 @@ msgstr ""
 "\n"
 " Bộ chỉnh sửa thao tác:\n"
 
-#: src/xz/message.c:1102
+#: src/xz/message.c:1116
 msgid ""
 "  -k, --keep          keep (don't delete) input files\n"
 "  -f, --force         force overwrite of output file and (de)compress links\n"
@@ -602,7 +594,7 @@ msgstr ""
 "  -f, --force         buộc ghi đè tập tin đầu ra và (giải) nén các liên kết\n"
 "  -c, --stdout        ghi ra đầu ra tiêu chuẩn và không xóa tập tin đầu vào"
 
-#: src/xz/message.c:1108
+#: src/xz/message.c:1122
 msgid ""
 "      --single-stream decompress only the first stream, and silently\n"
 "                      ignore possible remaining input data"
@@ -610,7 +602,7 @@ msgstr ""
 "      --single-stream chỉ giải nén luồng dữ liệu đầu, và bỏ qua\n"
 "                      dữ liệu đầu vào còn lại có thể"
 
-#: src/xz/message.c:1111
+#: src/xz/message.c:1125
 msgid ""
 "      --no-sparse     do not create sparse files when decompressing\n"
 "  -S, --suffix=.SUF   use the suffix `.SUF' on compressed files\n"
@@ -626,7 +618,7 @@ msgstr ""
 "                      chuẩn; chúng phải được kết thúc bằng ký tự dòng mới\n"
 "      --files0[=TẬP-TIN] giống --files nhưng ký tự kết thúc là null"
 
-#: src/xz/message.c:1120
+#: src/xz/message.c:1134
 msgid ""
 "\n"
 " Basic file format and compression options:\n"
@@ -634,7 +626,7 @@ msgstr ""
 "\n"
 " Các tùy chọn về định dạng và nén cơ bản:\n"
 
-#: src/xz/message.c:1122
+#: src/xz/message.c:1136
 msgid ""
 "  -F, --format=FMT    file format to encode or decode; possible values are\n"
 "                      `auto' (default), `xz', `lzma', and `raw'\n"
@@ -646,11 +638,11 @@ msgstr ""
 "  -C, --check=KIỂM    kiểu kiểm tra toàn vẹn: “none” (thận trọng khi dùng),\n"
 "                      “crc32”, “crc64” (mặc định), hay “sha256”"
 
-#: src/xz/message.c:1127
+#: src/xz/message.c:1141
 msgid "      --ignore-check  don't verify the integrity check when decompressing"
 msgstr "      --ignore-check  không thẩm tra tính toàn vẹn khi giải nén"
 
-#: src/xz/message.c:1131
+#: src/xz/message.c:1145
 msgid ""
 "  -0 ... -9           compression preset; default is 6; take compressor *and*\n"
 "                      decompressor memory usage into account before using 7-9!"
@@ -658,7 +650,7 @@ msgstr ""
 "  -0 ... -9           đặt mức nén; mặc định là 6; tiêu dùng nhiều bộ nhớ khi nén\n"
 "                      và giải nén, nên tính toán trước khi dùng 7-9!"
 
-#: src/xz/message.c:1135
+#: src/xz/message.c:1149
 msgid ""
 "  -e, --extreme       try to improve compression ratio by using more CPU time;\n"
 "                      does not affect decompressor memory requirements"
@@ -666,7 +658,7 @@ msgstr ""
 "  -e, --extreme       cố gắng nâng cao mức nén bằng cách dùng nhiều CPU hơn;\n"
 "                      nhưng không yêu cần nhiều bộ nhớ khi giải nén"
 
-#: src/xz/message.c:1139
+#: src/xz/message.c:1153
 msgid ""
 "  -T, --threads=NUM   use at most NUM threads; the default is 1; set to 0\n"
 "                      to use as many threads as there are processor cores"
@@ -674,7 +666,7 @@ msgstr ""
 "  -T, --threads=SỐ    dùng tối đa là SỐ tuyến trình; mặc định là 1; đặt\n"
 "                      thành 0 để dùng số lượng bằng số lõi vi xử lý"
 
-#: src/xz/message.c:1144
+#: src/xz/message.c:1158
 msgid ""
 "      --block-size=SIZE\n"
 "                      start a new .xz block after every SIZE bytes of input;\n"
@@ -684,7 +676,7 @@ msgstr ""
 "                      bắt đầu một khối .xz mới sau mỗi CỠ byte của đầu vào;\n"
 "                      dùng tùy chọn này để đặt cỡ khối cho nén tuyến trình"
 
-#: src/xz/message.c:1148
+#: src/xz/message.c:1162
 msgid ""
 "      --block-list=SIZES\n"
 "                      start a new .xz block after the given comma-separated\n"
@@ -694,7 +686,7 @@ msgstr ""
 "                      bắt đầu một khối .xz mới sau một danh sách ngăn\n"
 "                      cách bằng dấu phẩy nhịp dữ của dữ liệu chưa nén"
 
-#: src/xz/message.c:1152
+#: src/xz/message.c:1166
 msgid ""
 "      --flush-timeout=TIMEOUT\n"
 "                      when compressing, if more than TIMEOUT milliseconds has\n"
@@ -706,7 +698,7 @@ msgstr ""
 "                      kể từ lần đẩy dữ liệu lên đĩa trước đó và đang đọc thêm\n"
 "                      khối nữa, mọi dữ liệu đang chờ sẽ được ghi lên đĩa"
 
-#: src/xz/message.c:1158
+#: src/xz/message.c:1172
 #, no-c-format
 msgid ""
 "      --memlimit-compress=LIMIT\n"
@@ -722,7 +714,7 @@ msgstr ""
 "                      hoặc cả hai; GIỚI_HẠN có đơn vị là byte, % của RAM,\n"
 "                      hay 0 cho mặc định"
 
-#: src/xz/message.c:1165
+#: src/xz/message.c:1179
 msgid ""
 "      --no-adjust     if compression settings exceed the memory usage limit,\n"
 "                      give an error instead of adjusting the settings downwards"
@@ -730,7 +722,7 @@ msgstr ""
 "      --no-adjust     nếu các cài đặt nén vượt quá giới hạn dùng bộ nhớ,\n"
 "                      đưa ra một lỗi thay vì sửa đổi các cài đặt xuống"
 
-#: src/xz/message.c:1171
+#: src/xz/message.c:1185
 msgid ""
 "\n"
 " Custom filter chain for compression (alternative for using presets):"
@@ -738,7 +730,7 @@ msgstr ""
 "\n"
 " Móc xích lọc tùy chỉnh cho nén (thay cho việc dùng chỉnh trước):"
 
-#: src/xz/message.c:1180
+#: src/xz/message.c:1194
 msgid ""
 "\n"
 "  --lzma1[=OPTS]      LZMA1 or LZMA2; OPTS is a comma-separated list of zero or\n"
@@ -766,7 +758,7 @@ msgstr ""
 "                        mf=TÊN     bộ tìm khớp (hc3, hc4, bt2, bt3, bt4; bt4)\n"
 "                        depth=SỐ   mức sâu tìm kiếm tối đa; 0=tự động (mặc định)"
 
-#: src/xz/message.c:1195
+#: src/xz/message.c:1209
 msgid ""
 "\n"
 "  --x86[=OPTS]        x86 BCJ filter (32-bit and 64-bit)\n"
@@ -788,7 +780,7 @@ msgstr ""
 "                      các tùy chọn hợp lệ cho mọi bộ lọc BCJ:\n"
 "                        start=SỐ khoảng bù khởi đầu cho chuyển đổi (mặc định=0)"
 
-#: src/xz/message.c:1207
+#: src/xz/message.c:1221
 msgid ""
 "\n"
 "  --delta[=OPTS]      Delta filter; valid OPTS (valid values; default):\n"
@@ -801,7 +793,7 @@ msgstr ""
 "                        dist=SỐ    khoảng cách giữa các byte được trừ từ\n"
 "                                   những cái khác (1-256; 1)"
 
-#: src/xz/message.c:1215
+#: src/xz/message.c:1229
 msgid ""
 "\n"
 " Other options:\n"
@@ -809,7 +801,7 @@ msgstr ""
 "\n"
 " Tùy chọn khác:\n"
 
-#: src/xz/message.c:1218
+#: src/xz/message.c:1232
 msgid ""
 "  -q, --quiet         suppress warnings; specify twice to suppress errors too\n"
 "  -v, --verbose       be verbose; specify twice for even more verbose"
@@ -818,17 +810,17 @@ msgstr ""
 "                      chỉ định hai lần nến bạn muốn chặn cả báo lỗi\n"
 "  -v, --verbose       thông báo chi tiết; dùng hai lần nếu muốn chi tiết hơn"
 
-#: src/xz/message.c:1223
+#: src/xz/message.c:1237
 msgid "  -Q, --no-warn       make warnings not affect the exit status"
 msgstr "  -Q, --no-warn       làm cho các cảnh báo không ảnh hưởng đến trạng thái thoát"
 
-#: src/xz/message.c:1225
+#: src/xz/message.c:1239
 msgid "      --robot         use machine-parsable messages (useful for scripts)"
 msgstr ""
 "      --robot         dùng các thông điệp máy có thể phân tích\n"
 "                      (hữu dụng với scripts)"
 
-#: src/xz/message.c:1228
+#: src/xz/message.c:1242
 msgid ""
 "      --info-memory   display the total amount of RAM and the currently active\n"
 "                      memory usage limits, and exit"
@@ -836,7 +828,7 @@ msgstr ""
 "      --info-memory   hiển thị tổng lượng RAM và mức giới hạn tiêu dùng\n"
 "                      bộ nhớ hiện tại, rồi thoát"
 
-#: src/xz/message.c:1231
+#: src/xz/message.c:1245
 msgid ""
 "  -h, --help          display the short help (lists only the basic options)\n"
 "  -H, --long-help     display this long help and exit"
@@ -845,7 +837,7 @@ msgstr ""
 "                      (chỉ liệt kê các tùy chọn cơ bản)\n"
 "  -H, --long-help     hiển thị trợ giúp đầy đủ rồi thoát"
 
-#: src/xz/message.c:1235
+#: src/xz/message.c:1249
 msgid ""
 "  -h, --help          display this short help and exit\n"
 "  -H, --long-help     display the long help (lists also the advanced options)"
@@ -854,11 +846,11 @@ msgstr ""
 "  -H, --long-help     hiển thị trợ giúp đầy đủ\n"
 "                      (liệt kê cả những tùy chọn cấp cao)"
 
-#: src/xz/message.c:1240
+#: src/xz/message.c:1254
 msgid "  -V, --version       display the version number and exit"
 msgstr "  -V, --version       hiển thị số phiên bản và thoát"
 
-#: src/xz/message.c:1242
+#: src/xz/message.c:1256
 msgid ""
 "\n"
 "With no FILE, or when FILE is -, read standard input.\n"
@@ -870,19 +862,19 @@ msgstr ""
 #. for this package. Please add _another line_ saying
 #. "Report translation bugs to <...>\n" with the email or WWW
 #. address for translation bugs. Thanks.
-#: src/xz/message.c:1248
+#: src/xz/message.c:1262
 #, c-format
 msgid "Report bugs to <%s> (in English or Finnish).\n"
 msgstr ""
 "Hãy báo cáo lỗi cho <%s> (bằng tiếng Anh hoặc Phần Lan).\n"
 "Thông báo lỗi dịch cho: <http://translationproject.org/team/vi.html>.\n"
 
-#: src/xz/message.c:1250
+#: src/xz/message.c:1264
 #, c-format
 msgid "%s home page: <%s>\n"
 msgstr "Trang chủ %s: <%s>.\n"
 
-#: src/xz/message.c:1254
+#: src/xz/message.c:1268
 msgid "THIS IS A DEVELOPMENT VERSION NOT INTENDED FOR PRODUCTION USE."
 msgstr "ĐÂY LÀ PHIÊN BẢN PHÁT TRIỂN VÀ NÓ KHÔNG PHÙ HỢP VỚI MỤC ĐÍCH SẢN XUẤT."
 
@@ -954,23 +946,23 @@ msgstr "Các hậu tố hợp lệ là “KiB” (2^10), “MiB” (2^20), và 
 msgid "Value of the option `%s' must be in the range [%<PRIu64>, %<PRIu64>]"
 msgstr "Giá trị cuả tùy chọn “%s” phải nằm trong vùng [%<PRIu64>, %<PRIu64>]"
 
-#: src/xz/util.c:257
+#: src/xz/util.c:267
 msgid "Empty filename, skipping"
 msgstr "Tên tập tin trống rỗng nên bỏ qua"
 
-#: src/xz/util.c:271
+#: src/xz/util.c:281
 msgid "Compressed data cannot be read from a terminal"
 msgstr "Dữ liệu đã nén không thể đọc từ thiết bị cuối"
 
-#: src/xz/util.c:284
+#: src/xz/util.c:294
 msgid "Compressed data cannot be written to a terminal"
 msgstr "Dữ liệu đã nén không thể ghi ra thiết bị cuối"
 
-#: src/common/tuklib_exit.c:39
+#: src/common/tuklib_exit.c:40
 msgid "Writing to standard output failed"
 msgstr "Gặp lỗi khi ghi dữ liệu vào đầu ra tiêu chuẩn"
 
-#: src/common/tuklib_exit.c:42
+#: src/common/tuklib_exit.c:43
 msgid "Unknown error"
 msgstr "Lỗi chưa biết"
 
index 184d7cb..6e1e034 100644 (file)
--- a/po/xz.pot
+++ b/po/xz.pot
@@ -5,9 +5,9 @@
 #, fuzzy
 msgid ""
 msgstr ""
-"Project-Id-Version: xz 5.2.4\n"
+"Project-Id-Version: xz 5.2.5\n"
 "Report-Msgid-Bugs-To: lasse.collin@tukaani.org\n"
-"POT-Creation-Date: 2018-04-29 18:19+0300\n"
+"POT-Creation-Date: 2020-03-17 16:29+0200\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
 "Language-Team: LANGUAGE <LL@li.org>\n"
@@ -119,19 +119,11 @@ msgstr ""
 msgid "Error creating a pipe: %s"
 msgstr ""
 
-#: src/xz/file_io.c:173
-msgid "Sandbox is disabled due to incompatible command line arguments"
-msgstr ""
-
-#: src/xz/file_io.c:216
-msgid "Sandbox was successfully enabled"
-msgstr ""
-
-#: src/xz/file_io.c:220
+#: src/xz/file_io.c:224
 msgid "Failed to enable the sandbox"
 msgstr ""
 
-#: src/xz/file_io.c:262
+#: src/xz/file_io.c:266
 #, c-format
 msgid "%s: poll() failed: %s"
 msgstr ""
@@ -146,126 +138,126 @@ msgstr ""
 #. it is possible that the user has put a new file in place
 #. of the original file, and in that case it obviously
 #. shouldn't be removed.
-#: src/xz/file_io.c:332
+#: src/xz/file_io.c:333
 #, c-format
 msgid "%s: File seems to have been moved, not removing"
 msgstr ""
 
-#: src/xz/file_io.c:339 src/xz/file_io.c:878
+#: src/xz/file_io.c:340 src/xz/file_io.c:882
 #, c-format
 msgid "%s: Cannot remove: %s"
 msgstr ""
 
-#: src/xz/file_io.c:364
+#: src/xz/file_io.c:366
 #, c-format
 msgid "%s: Cannot set the file owner: %s"
 msgstr ""
 
-#: src/xz/file_io.c:370
+#: src/xz/file_io.c:372
 #, c-format
 msgid "%s: Cannot set the file group: %s"
 msgstr ""
 
-#: src/xz/file_io.c:389
+#: src/xz/file_io.c:391
 #, c-format
 msgid "%s: Cannot set the file permissions: %s"
 msgstr ""
 
-#: src/xz/file_io.c:515
+#: src/xz/file_io.c:517
 #, c-format
 msgid "Error getting the file status flags from standard input: %s"
 msgstr ""
 
-#: src/xz/file_io.c:572 src/xz/file_io.c:634
+#: src/xz/file_io.c:574 src/xz/file_io.c:636
 #, c-format
 msgid "%s: Is a symbolic link, skipping"
 msgstr ""
 
-#: src/xz/file_io.c:663
+#: src/xz/file_io.c:665
 #, c-format
 msgid "%s: Is a directory, skipping"
 msgstr ""
 
-#: src/xz/file_io.c:669
+#: src/xz/file_io.c:671
 #, c-format
 msgid "%s: Not a regular file, skipping"
 msgstr ""
 
-#: src/xz/file_io.c:686
+#: src/xz/file_io.c:688
 #, c-format
 msgid "%s: File has setuid or setgid bit set, skipping"
 msgstr ""
 
-#: src/xz/file_io.c:693
+#: src/xz/file_io.c:695
 #, c-format
 msgid "%s: File has sticky bit set, skipping"
 msgstr ""
 
-#: src/xz/file_io.c:700
+#: src/xz/file_io.c:702
 #, c-format
 msgid "%s: Input file has more than one hard link, skipping"
 msgstr ""
 
-#: src/xz/file_io.c:788
+#: src/xz/file_io.c:792
 #, c-format
 msgid "Error restoring the status flags to standard input: %s"
 msgstr ""
 
-#: src/xz/file_io.c:836
+#: src/xz/file_io.c:840
 #, c-format
 msgid "Error getting the file status flags from standard output: %s"
 msgstr ""
 
-#: src/xz/file_io.c:1014
+#: src/xz/file_io.c:1018
 #, c-format
 msgid "Error restoring the O_APPEND flag to standard output: %s"
 msgstr ""
 
-#: src/xz/file_io.c:1026
+#: src/xz/file_io.c:1030
 #, c-format
 msgid "%s: Closing the file failed: %s"
 msgstr ""
 
-#: src/xz/file_io.c:1062 src/xz/file_io.c:1288
+#: src/xz/file_io.c:1066 src/xz/file_io.c:1309
 #, c-format
 msgid "%s: Seeking failed when trying to create a sparse file: %s"
 msgstr ""
 
-#: src/xz/file_io.c:1157
+#: src/xz/file_io.c:1167
 #, c-format
 msgid "%s: Read error: %s"
 msgstr ""
 
-#: src/xz/file_io.c:1177
+#: src/xz/file_io.c:1191
 #, c-format
 msgid "%s: Error seeking the file: %s"
 msgstr ""
 
-#: src/xz/file_io.c:1187
+#: src/xz/file_io.c:1201
 #, c-format
 msgid "%s: Unexpected end of file"
 msgstr ""
 
-#: src/xz/file_io.c:1246
+#: src/xz/file_io.c:1260
 #, c-format
 msgid "%s: Write error: %s"
 msgstr ""
 
-#: src/xz/hardware.c:107
+#: src/xz/hardware.c:137
 msgid "Disabled"
 msgstr ""
 
 #. TRANSLATORS: Test with "xz --info-memory" to see if
 #. the alignment looks nice.
-#: src/xz/hardware.c:126
+#: src/xz/hardware.c:156
 msgid "Total amount of physical memory (RAM): "
 msgstr ""
 
-#: src/xz/hardware.c:128
+#: src/xz/hardware.c:158
 msgid "Memory usage limit for compression:    "
 msgstr ""
 
-#: src/xz/hardware.c:130
+#: src/xz/hardware.c:160
 msgid "Memory usage limit for decompression:  "
 msgstr ""
 
@@ -488,68 +480,68 @@ msgstr ""
 #. of the line in messages. Usually it becomes "xz: ".
 #. This is a translatable string because French needs
 #. a space before a colon.
-#: src/xz/message.c:714
+#: src/xz/message.c:728
 #, c-format
 msgid "%s: "
 msgstr ""
 
-#: src/xz/message.c:777 src/xz/message.c:827
+#: src/xz/message.c:791 src/xz/message.c:841
 msgid "Internal error (bug)"
 msgstr ""
 
-#: src/xz/message.c:784
+#: src/xz/message.c:798
 msgid "Cannot establish signal handlers"
 msgstr ""
 
-#: src/xz/message.c:793
+#: src/xz/message.c:807
 msgid "No integrity check; not verifying file integrity"
 msgstr ""
 
-#: src/xz/message.c:796
+#: src/xz/message.c:810
 msgid "Unsupported type of integrity check; not verifying file integrity"
 msgstr ""
 
-#: src/xz/message.c:803
+#: src/xz/message.c:817
 msgid "Memory usage limit reached"
 msgstr ""
 
-#: src/xz/message.c:806
+#: src/xz/message.c:820
 msgid "File format not recognized"
 msgstr ""
 
-#: src/xz/message.c:809
+#: src/xz/message.c:823
 msgid "Unsupported options"
 msgstr ""
 
-#: src/xz/message.c:812
+#: src/xz/message.c:826
 msgid "Compressed data is corrupt"
 msgstr ""
 
-#: src/xz/message.c:815
+#: src/xz/message.c:829
 msgid "Unexpected end of input"
 msgstr ""
 
-#: src/xz/message.c:848
+#: src/xz/message.c:862
 #, c-format
 msgid "%s MiB of memory is required. The limiter is disabled."
 msgstr ""
 
-#: src/xz/message.c:876
+#: src/xz/message.c:890
 #, c-format
 msgid "%s MiB of memory is required. The limit is %s."
 msgstr ""
 
-#: src/xz/message.c:1043
+#: src/xz/message.c:1057
 #, c-format
 msgid "%s: Filter chain: %s\n"
 msgstr ""
 
-#: src/xz/message.c:1053
+#: src/xz/message.c:1067
 #, c-format
 msgid "Try `%s --help' for more information."
 msgstr ""
 
-#: src/xz/message.c:1079
+#: src/xz/message.c:1093
 #, c-format
 msgid ""
 "Usage: %s [OPTION]... [FILE]...\n"
@@ -557,15 +549,15 @@ msgid ""
 "\n"
 msgstr ""
 
-#: src/xz/message.c:1086
+#: src/xz/message.c:1100
 msgid "Mandatory arguments to long options are mandatory for short options too.\n"
 msgstr ""
 
-#: src/xz/message.c:1090
+#: src/xz/message.c:1104
 msgid " Operation mode:\n"
 msgstr ""
 
-#: src/xz/message.c:1093
+#: src/xz/message.c:1107
 msgid ""
 "  -z, --compress      force compression\n"
 "  -d, --decompress    force decompression\n"
@@ -573,26 +565,26 @@ msgid ""
 "  -l, --list          list information about .xz files"
 msgstr ""
 
-#: src/xz/message.c:1099
+#: src/xz/message.c:1113
 msgid ""
 "\n"
 " Operation modifiers:\n"
 msgstr ""
 
-#: src/xz/message.c:1102
+#: src/xz/message.c:1116
 msgid ""
 "  -k, --keep          keep (don't delete) input files\n"
 "  -f, --force         force overwrite of output file and (de)compress links\n"
 "  -c, --stdout        write to standard output and don't delete input files"
 msgstr ""
 
-#: src/xz/message.c:1108
+#: src/xz/message.c:1122
 msgid ""
 "      --single-stream decompress only the first stream, and silently\n"
 "                      ignore possible remaining input data"
 msgstr ""
 
-#: src/xz/message.c:1111
+#: src/xz/message.c:1125
 msgid ""
 "      --no-sparse     do not create sparse files when decompressing\n"
 "  -S, --suffix=.SUF   use the suffix `.SUF' on compressed files\n"
@@ -602,13 +594,13 @@ msgid ""
 "      --files0[=FILE] like --files but use the null character as terminator"
 msgstr ""
 
-#: src/xz/message.c:1120
+#: src/xz/message.c:1134
 msgid ""
 "\n"
 " Basic file format and compression options:\n"
 msgstr ""
 
-#: src/xz/message.c:1122
+#: src/xz/message.c:1136
 msgid ""
 "  -F, --format=FMT    file format to encode or decode; possible values are\n"
 "                      `auto' (default), `xz', `lzma', and `raw'\n"
@@ -616,43 +608,43 @@ msgid ""
 "                      `crc32', `crc64' (default), or `sha256'"
 msgstr ""
 
-#: src/xz/message.c:1127
+#: src/xz/message.c:1141
 msgid "      --ignore-check  don't verify the integrity check when decompressing"
 msgstr ""
 
-#: src/xz/message.c:1131
+#: src/xz/message.c:1145
 msgid ""
 "  -0 ... -9           compression preset; default is 6; take compressor *and*\n"
 "                      decompressor memory usage into account before using 7-9!"
 msgstr ""
 
-#: src/xz/message.c:1135
+#: src/xz/message.c:1149
 msgid ""
 "  -e, --extreme       try to improve compression ratio by using more CPU time;\n"
 "                      does not affect decompressor memory requirements"
 msgstr ""
 
-#: src/xz/message.c:1139
+#: src/xz/message.c:1153
 msgid ""
 "  -T, --threads=NUM   use at most NUM threads; the default is 1; set to 0\n"
 "                      to use as many threads as there are processor cores"
 msgstr ""
 
-#: src/xz/message.c:1144
+#: src/xz/message.c:1158
 msgid ""
 "      --block-size=SIZE\n"
 "                      start a new .xz block after every SIZE bytes of input;\n"
 "                      use this to set the block size for threaded compression"
 msgstr ""
 
-#: src/xz/message.c:1148
+#: src/xz/message.c:1162
 msgid ""
 "      --block-list=SIZES\n"
 "                      start a new .xz block after the given comma-separated\n"
 "                      intervals of uncompressed data"
 msgstr ""
 
-#: src/xz/message.c:1152
+#: src/xz/message.c:1166
 msgid ""
 "      --flush-timeout=TIMEOUT\n"
 "                      when compressing, if more than TIMEOUT milliseconds has\n"
@@ -660,7 +652,7 @@ msgid ""
 "                      would block, all pending data is flushed out"
 msgstr ""
 
-#: src/xz/message.c:1158
+#: src/xz/message.c:1172
 #, no-c-format
 msgid ""
 "      --memlimit-compress=LIMIT\n"
@@ -670,19 +662,19 @@ msgid ""
 "                      or both; LIMIT is in bytes, % of RAM, or 0 for defaults"
 msgstr ""
 
-#: src/xz/message.c:1165
+#: src/xz/message.c:1179
 msgid ""
 "      --no-adjust     if compression settings exceed the memory usage limit,\n"
 "                      give an error instead of adjusting the settings downwards"
 msgstr ""
 
-#: src/xz/message.c:1171
+#: src/xz/message.c:1185
 msgid ""
 "\n"
 " Custom filter chain for compression (alternative for using presets):"
 msgstr ""
 
-#: src/xz/message.c:1180
+#: src/xz/message.c:1194
 msgid ""
 "\n"
 "  --lzma1[=OPTS]      LZMA1 or LZMA2; OPTS is a comma-separated list of zero or\n"
@@ -698,7 +690,7 @@ msgid ""
 "                        depth=NUM  maximum search depth; 0=automatic (default)"
 msgstr ""
 
-#: src/xz/message.c:1195
+#: src/xz/message.c:1209
 msgid ""
 "\n"
 "  --x86[=OPTS]        x86 BCJ filter (32-bit and 64-bit)\n"
@@ -711,7 +703,7 @@ msgid ""
 "                        start=NUM  start offset for conversions (default=0)"
 msgstr ""
 
-#: src/xz/message.c:1207
+#: src/xz/message.c:1221
 msgid ""
 "\n"
 "  --delta[=OPTS]      Delta filter; valid OPTS (valid values; default):\n"
@@ -719,49 +711,49 @@ msgid ""
 "                                   from each other (1-256; 1)"
 msgstr ""
 
-#: src/xz/message.c:1215
+#: src/xz/message.c:1229
 msgid ""
 "\n"
 " Other options:\n"
 msgstr ""
 
-#: src/xz/message.c:1218
+#: src/xz/message.c:1232
 msgid ""
 "  -q, --quiet         suppress warnings; specify twice to suppress errors too\n"
 "  -v, --verbose       be verbose; specify twice for even more verbose"
 msgstr ""
 
-#: src/xz/message.c:1223
+#: src/xz/message.c:1237
 msgid "  -Q, --no-warn       make warnings not affect the exit status"
 msgstr ""
 
-#: src/xz/message.c:1225
+#: src/xz/message.c:1239
 msgid "      --robot         use machine-parsable messages (useful for scripts)"
 msgstr ""
 
-#: src/xz/message.c:1228
+#: src/xz/message.c:1242
 msgid ""
 "      --info-memory   display the total amount of RAM and the currently active\n"
 "                      memory usage limits, and exit"
 msgstr ""
 
-#: src/xz/message.c:1231
+#: src/xz/message.c:1245
 msgid ""
 "  -h, --help          display the short help (lists only the basic options)\n"
 "  -H, --long-help     display this long help and exit"
 msgstr ""
 
-#: src/xz/message.c:1235
+#: src/xz/message.c:1249
 msgid ""
 "  -h, --help          display this short help and exit\n"
 "  -H, --long-help     display the long help (lists also the advanced options)"
 msgstr ""
 
-#: src/xz/message.c:1240
+#: src/xz/message.c:1254
 msgid "  -V, --version       display the version number and exit"
 msgstr ""
 
-#: src/xz/message.c:1242
+#: src/xz/message.c:1256
 msgid ""
 "\n"
 "With no FILE, or when FILE is -, read standard input.\n"
@@ -771,17 +763,17 @@ msgstr ""
 #. for this package. Please add _another line_ saying
 #. "Report translation bugs to <...>\n" with the email or WWW
 #. address for translation bugs. Thanks.
-#: src/xz/message.c:1248
+#: src/xz/message.c:1262
 #, c-format
 msgid "Report bugs to <%s> (in English or Finnish).\n"
 msgstr ""
 
-#: src/xz/message.c:1250
+#: src/xz/message.c:1264
 #, c-format
 msgid "%s home page: <%s>\n"
 msgstr ""
 
-#: src/xz/message.c:1254
+#: src/xz/message.c:1268
 msgid "THIS IS A DEVELOPMENT VERSION NOT INTENDED FOR PRODUCTION USE."
 msgstr ""
 
@@ -853,22 +845,22 @@ msgstr ""
 msgid "Value of the option `%s' must be in the range [%<PRIu64>, %<PRIu64>]"
 msgstr ""
 
-#: src/xz/util.c:257
+#: src/xz/util.c:267
 msgid "Empty filename, skipping"
 msgstr ""
 
-#: src/xz/util.c:271
+#: src/xz/util.c:281
 msgid "Compressed data cannot be read from a terminal"
 msgstr ""
 
-#: src/xz/util.c:284
+#: src/xz/util.c:294
 msgid "Compressed data cannot be written to a terminal"
 msgstr ""
 
-#: src/common/tuklib_exit.c:39
+#: src/common/tuklib_exit.c:40
 msgid "Writing to standard output failed"
 msgstr ""
 
-#: src/common/tuklib_exit.c:42
+#: src/common/tuklib_exit.c:43
 msgid "Unknown error"
 msgstr ""
diff --git a/po/zh_CN.gmo b/po/zh_CN.gmo
new file mode 100644 (file)
index 0000000..4e51a82
Binary files /dev/null and b/po/zh_CN.gmo differ
diff --git a/po/zh_CN.po b/po/zh_CN.po
new file mode 100644 (file)
index 0000000..a41394b
--- /dev/null
@@ -0,0 +1,961 @@
+# Chinese translations for xz package
+# xz 软件包的简体中文翻译。
+# This file is put in the public domain.
+# Boyuan Yang <073plan@gmail.com>, 2019.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: xz 5.2.4\n"
+"Report-Msgid-Bugs-To: lasse.collin@tukaani.org\n"
+"POT-Creation-Date: 2020-03-17 16:29+0200\n"
+"PO-Revision-Date: 2019-03-20 15:25-0400\n"
+"Last-Translator: Boyuan Yang <073plan@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: 8bit\n"
+"X-Bugs: Report translation errors to the Language-Team address.\n"
+"Plural-Forms: nplurals=1; plural=0;\n"
+"X-Generator: Poedit 2.2.1\n"
+
+#: src/xz/args.c:63
+#, c-format
+msgid "%s: Invalid argument to --block-list"
+msgstr "%s:--block-list 的无效参数"
+
+#: src/xz/args.c:73
+#, c-format
+msgid "%s: Too many arguments to --block-list"
+msgstr "%s:--block-list 得到过多参数"
+
+#: src/xz/args.c:102
+msgid "0 can only be used as the last element in --block-list"
+msgstr "0 仅可用于 --block-list 的最后一个元素"
+
+#: src/xz/args.c:406
+#, c-format
+msgid "%s: Unknown file format type"
+msgstr "%s:位置文件格式类型"
+
+#: src/xz/args.c:429 src/xz/args.c:437
+#, c-format
+msgid "%s: Unsupported integrity check type"
+msgstr "%s:不支持的完整性检查类型"
+
+#: src/xz/args.c:473
+msgid "Only one file can be specified with `--files' or `--files0'."
+msgstr "仅可使用“--files”或“--files0”指定一个文件。"
+
+#: src/xz/args.c:541
+#, c-format
+msgid "The environment variable %s contains too many arguments"
+msgstr "环境变量 %s 包含过多参数"
+
+#: src/xz/args.c:643
+msgid "Compression support was disabled at build time"
+msgstr "压缩支持已在构建时禁用"
+
+#: src/xz/args.c:650
+msgid "Decompression support was disabled at build time"
+msgstr "解压支持已在构建时禁用"
+
+#: src/xz/coder.c:110
+msgid "Maximum number of filters is four"
+msgstr "过滤器最多数量为四"
+
+#: src/xz/coder.c:129
+msgid "Memory usage limit is too low for the given filter setup."
+msgstr "内存用量限制对指定过滤器设置过低。"
+
+#: src/xz/coder.c:159
+msgid "Using a preset in raw mode is discouraged."
+msgstr "不推荐在 raw 模式使用预设等级。"
+
+#: src/xz/coder.c:161
+msgid "The exact options of the presets may vary between software versions."
+msgstr "各个预设等级所使用的准确选项列表在不同软件版本之间可能不同。"
+
+#: src/xz/coder.c:184
+msgid "The .lzma format supports only the LZMA1 filter"
+msgstr ".lzma 格式只支持 LZMA1 过滤器"
+
+#: src/xz/coder.c:192
+msgid "LZMA1 cannot be used with the .xz format"
+msgstr "LZMA1 无法用于 .xz 格式"
+
+#: src/xz/coder.c:209
+msgid "The filter chain is incompatible with --flush-timeout"
+msgstr "过滤器链和 --flush-timeout 不兼容"
+
+#: src/xz/coder.c:215
+msgid "Switching to single-threaded mode due to --flush-timeout"
+msgstr "因 --flush-timeout 而切换至单线程模式"
+
+#: src/xz/coder.c:235
+#, c-format
+msgid "Using up to %<PRIu32> threads."
+msgstr "使用最多 %<PRIu32> 个线程。"
+
+#: src/xz/coder.c:251
+msgid "Unsupported filter chain or filter options"
+msgstr "不支持的过滤器链或过滤器选项"
+
+#: src/xz/coder.c:263
+#, c-format
+msgid "Decompression will need %s MiB of memory."
+msgstr "解压缩需要 %s MiB 的内存。"
+
+#: src/xz/coder.c:300
+#, c-format
+msgid "Adjusted the number of threads from %s to %s to not exceed the memory usage limit of %s MiB"
+msgstr "已将所使用的线程数从 %s 调整为 %s,以不超出 %s MiB 的内存用量限制"
+
+#: src/xz/coder.c:354
+#, c-format
+msgid "Adjusted LZMA%c dictionary size from %s MiB to %s MiB to not exceed the memory usage limit of %s MiB"
+msgstr "已调整 LZMA%c 字典大小(从 %s MiB 调整为 %s MiB),以不超出 %s MiB 的内存用量限制"
+
+#: src/xz/file_io.c:110 src/xz/file_io.c:118
+#, c-format
+msgid "Error creating a pipe: %s"
+msgstr "创建管道时出错:%s"
+
+#: src/xz/file_io.c:224
+msgid "Failed to enable the sandbox"
+msgstr "沙盒启用失败"
+
+#: src/xz/file_io.c:266
+#, c-format
+msgid "%s: poll() failed: %s"
+msgstr "%s:poll() 失败:%s"
+
+#. TRANSLATORS: When compression or decompression finishes,
+#. and xz is going to remove the source file, xz first checks
+#. if the source file still exists, and if it does, does its
+#. device and inode numbers match what xz saw when it opened
+#. the source file. If these checks fail, this message is
+#. shown, %s being the filename, and the file is not deleted.
+#. The check for device and inode numbers is there, because
+#. it is possible that the user has put a new file in place
+#. of the original file, and in that case it obviously
+#. shouldn't be removed.
+#: src/xz/file_io.c:333
+#, c-format
+msgid "%s: File seems to have been moved, not removing"
+msgstr "%s:文件似乎已移动,不再进行删除操作"
+
+#: src/xz/file_io.c:340 src/xz/file_io.c:882
+#, c-format
+msgid "%s: Cannot remove: %s"
+msgstr "%s:无法删除:%s"
+
+#: src/xz/file_io.c:366
+#, c-format
+msgid "%s: Cannot set the file owner: %s"
+msgstr "%s:无法设置文件所有者:%s"
+
+#: src/xz/file_io.c:372
+#, c-format
+msgid "%s: Cannot set the file group: %s"
+msgstr "%s:无法设置文件所有组:%s"
+
+#: src/xz/file_io.c:391
+#, c-format
+msgid "%s: Cannot set the file permissions: %s"
+msgstr "%s:无法设置文件权限:%s"
+
+#: src/xz/file_io.c:517
+#, c-format
+msgid "Error getting the file status flags from standard input: %s"
+msgstr "从标准输入获取文件状态标志出错:%s"
+
+#: src/xz/file_io.c:574 src/xz/file_io.c:636
+#, c-format
+msgid "%s: Is a symbolic link, skipping"
+msgstr "%s:是符号链接,跳过"
+
+#: src/xz/file_io.c:665
+#, c-format
+msgid "%s: Is a directory, skipping"
+msgstr "%s:是目录,跳过"
+
+#: src/xz/file_io.c:671
+#, c-format
+msgid "%s: Not a regular file, skipping"
+msgstr "%s:不是标准文件,跳过"
+
+#: src/xz/file_io.c:688
+#, c-format
+msgid "%s: File has setuid or setgid bit set, skipping"
+msgstr "%s:文件有设置用户ID或设置组ID标识,跳过"
+
+#: src/xz/file_io.c:695
+#, c-format
+msgid "%s: File has sticky bit set, skipping"
+msgstr "%s:文件有粘滞位标识,跳过"
+
+#: src/xz/file_io.c:702
+#, c-format
+msgid "%s: Input file has more than one hard link, skipping"
+msgstr "%s:输入文件有多于一个硬链接,跳过"
+
+#: src/xz/file_io.c:792
+#, c-format
+msgid "Error restoring the status flags to standard input: %s"
+msgstr "回复标准输入的状态标志时出错:%s"
+
+#: src/xz/file_io.c:840
+#, c-format
+msgid "Error getting the file status flags from standard output: %s"
+msgstr "获取标准输出的文件状态标志时出错:%s"
+
+#: src/xz/file_io.c:1018
+#, c-format
+msgid "Error restoring the O_APPEND flag to standard output: %s"
+msgstr "恢复标准输出的 O_APPEND 标志时出错:%s"
+
+#: src/xz/file_io.c:1030
+#, c-format
+msgid "%s: Closing the file failed: %s"
+msgstr "%s:关闭文件失败:%s"
+
+#: src/xz/file_io.c:1066 src/xz/file_io.c:1309
+#, c-format
+msgid "%s: Seeking failed when trying to create a sparse file: %s"
+msgstr "%s:尝试创建稀疏文件时 seek 失败:%s"
+
+#: src/xz/file_io.c:1167
+#, c-format
+msgid "%s: Read error: %s"
+msgstr "%s:读取错误:%s"
+
+#: src/xz/file_io.c:1191
+#, c-format
+msgid "%s: Error seeking the file: %s"
+msgstr "%s:seek 文件时出错:%s"
+
+#: src/xz/file_io.c:1201
+#, c-format
+msgid "%s: Unexpected end of file"
+msgstr "%s:未预期的文件结束"
+
+#: src/xz/file_io.c:1260
+#, c-format
+msgid "%s: Write error: %s"
+msgstr "%s:写入错误:%s"
+
+#: src/xz/hardware.c:137
+msgid "Disabled"
+msgstr "已禁用"
+
+#. TRANSLATORS: Test with "xz --info-memory" to see if
+#. the alignment looks nice.
+#: src/xz/hardware.c:156
+msgid "Total amount of physical memory (RAM): "
+msgstr "物理内存(RAM)总量:      "
+
+#: src/xz/hardware.c:158
+msgid "Memory usage limit for compression:    "
+msgstr "用于压缩的内存用量限制:   "
+
+#: src/xz/hardware.c:160
+msgid "Memory usage limit for decompression:  "
+msgstr "用于解压缩的内存用量限制: "
+
+#. TRANSLATORS: Indicates that there is no integrity check.
+#. This string is used in tables, so the width must not
+#. exceed ten columns with a fixed-width font.
+#: src/xz/list.c:65
+msgid "None"
+msgstr "无"
+
+#. TRANSLATORS: Indicates that integrity check name is not known,
+#. but the Check ID is known (here 2). This and other "Unknown-N"
+#. strings are used in tables, so the width must not exceed ten
+#. columns with a fixed-width font. It's OK to omit the dash if
+#. you need space for one extra letter, but don't use spaces.
+#: src/xz/list.c:72
+msgid "Unknown-2"
+msgstr "未知-2"
+
+#: src/xz/list.c:73
+msgid "Unknown-3"
+msgstr "未知-3"
+
+#: src/xz/list.c:75
+msgid "Unknown-5"
+msgstr "未知-5"
+
+#: src/xz/list.c:76
+msgid "Unknown-6"
+msgstr "未知-6"
+
+#: src/xz/list.c:77
+msgid "Unknown-7"
+msgstr "未知-7"
+
+#: src/xz/list.c:78
+msgid "Unknown-8"
+msgstr "未知-8"
+
+#: src/xz/list.c:79
+msgid "Unknown-9"
+msgstr "未知-9"
+
+#: src/xz/list.c:81
+msgid "Unknown-11"
+msgstr "未知-11"
+
+#: src/xz/list.c:82
+msgid "Unknown-12"
+msgstr "未知-12"
+
+#: src/xz/list.c:83
+msgid "Unknown-13"
+msgstr "未知-13"
+
+#: src/xz/list.c:84
+msgid "Unknown-14"
+msgstr "未知-14"
+
+#: src/xz/list.c:85
+msgid "Unknown-15"
+msgstr "未知-15"
+
+#: src/xz/list.c:153
+#, c-format
+msgid "%s: File is empty"
+msgstr "%s:文件为空"
+
+#: src/xz/list.c:158
+#, c-format
+msgid "%s: Too small to be a valid .xz file"
+msgstr "%s:过小而不是有效的 .xz 文件"
+
+#. TRANSLATORS: These are column headings. From Strms (Streams)
+#. to Ratio, the columns are right aligned. Check and Filename
+#. are left aligned. If you need longer words, it's OK to
+#. use two lines here. Test with "xz -l foo.xz".
+#: src/xz/list.c:677
+msgid "Strms  Blocks   Compressed Uncompressed  Ratio  Check   Filename"
+msgstr "   流      块     压缩大小     解压大小   比例  校验    文件名"
+
+#: src/xz/list.c:717
+#, c-format
+msgid "  Streams:            %s\n"
+msgstr "  流:                %s\n"
+
+#: src/xz/list.c:719
+#, c-format
+msgid "  Blocks:             %s\n"
+msgstr "  块:                %s\n"
+
+#: src/xz/list.c:721
+#, c-format
+msgid "  Compressed size:    %s\n"
+msgstr "  压缩后大小:        %s\n"
+
+#: src/xz/list.c:724
+#, c-format
+msgid "  Uncompressed size:  %s\n"
+msgstr "  解压缩大小:        %s\n"
+
+#: src/xz/list.c:727
+#, c-format
+msgid "  Ratio:              %s\n"
+msgstr "  压缩比:            %s\n"
+
+#: src/xz/list.c:729
+#, c-format
+msgid "  Check:              %s\n"
+msgstr "  校验方式:          %s\n"
+
+#: src/xz/list.c:730
+#, c-format
+msgid "  Stream padding:     %s\n"
+msgstr "  流填充大小:        %s\n"
+
+#. TRANSLATORS: The second line is column headings. All except
+#. Check are right aligned; Check is left aligned. Test with
+#. "xz -lv foo.xz".
+#: src/xz/list.c:758
+msgid ""
+"  Streams:\n"
+"    Stream    Blocks      CompOffset    UncompOffset        CompSize      UncompSize  Ratio  Check      Padding"
+msgstr ""
+"  流:\n"
+"        流        块      压缩偏移量      解压偏移量        压缩大小        解压大小   比例  校验          填充"
+
+#. TRANSLATORS: The second line is column headings. All
+#. except Check are right aligned; Check is left aligned.
+#: src/xz/list.c:813
+#, c-format
+msgid ""
+"  Blocks:\n"
+"    Stream     Block      CompOffset    UncompOffset       TotalSize      UncompSize  Ratio  Check"
+msgstr ""
+"  块:\n"
+"        流        块      压缩偏移量      解压偏移量        总计大小        解压大小   比例  校验"
+
+#. TRANSLATORS: These are additional column headings
+#. for the most verbose listing mode. CheckVal
+#. (Check value), Flags, and Filters are left aligned.
+#. Header (Block Header Size), CompSize, and MemUsage
+#. are right aligned. %*s is replaced with 0-120
+#. spaces to make the CheckVal column wide enough.
+#. Test with "xz -lvv foo.xz".
+#: src/xz/list.c:825
+#, c-format
+msgid "      CheckVal %*s Header  Flags        CompSize    MemUsage  Filters"
+msgstr "       CheckVal %*s   头部  标记         压缩大小    内存使用  过滤器"
+
+#: src/xz/list.c:903 src/xz/list.c:1078
+#, c-format
+msgid "  Memory needed:      %s MiB\n"
+msgstr "  所需内存:          %s MiB\n"
+
+#: src/xz/list.c:905 src/xz/list.c:1080
+#, c-format
+msgid "  Sizes in headers:   %s\n"
+msgstr "  头部存放大小:      %s\n"
+
+#: src/xz/list.c:906 src/xz/list.c:1081
+msgid "Yes"
+msgstr "是"
+
+#: src/xz/list.c:906 src/xz/list.c:1081
+msgid "No"
+msgstr "否"
+
+#: src/xz/list.c:907 src/xz/list.c:1082
+#, c-format
+msgid "  Minimum XZ Utils version: %s\n"
+msgstr "  最低 XZ Utils 版本:%s\n"
+
+#. TRANSLATORS: %s is an integer. Only the plural form of this
+#. message is used (e.g. "2 files"). Test with "xz -l foo.xz bar.xz".
+#: src/xz/list.c:1057
+#, c-format
+msgid "%s file\n"
+msgid_plural "%s files\n"
+msgstr[0] "%s 文件\n"
+
+#: src/xz/list.c:1070
+msgid "Totals:"
+msgstr "总计:"
+
+#: src/xz/list.c:1071
+#, c-format
+msgid "  Number of files:    %s\n"
+msgstr "  文件数量:          %s\n"
+
+#: src/xz/list.c:1146
+msgid "--list works only on .xz files (--format=xz or --format=auto)"
+msgstr "--list 仅适用于 .xz 文件(--format=xz 或 --format=auto)"
+
+#: src/xz/list.c:1152
+msgid "--list does not support reading from standard input"
+msgstr "--list 不支持从标准输入读取"
+
+#: src/xz/main.c:89
+#, c-format
+msgid "%s: Error reading filenames: %s"
+msgstr "%s:读取文件名列表时出错:%s"
+
+#: src/xz/main.c:96
+#, c-format
+msgid "%s: Unexpected end of input when reading filenames"
+msgstr "%s:读取文件名列表时遇到未预期的输入结束"
+
+#: src/xz/main.c:120
+#, c-format
+msgid "%s: Null character found when reading filenames; maybe you meant to use `--files0' instead of `--files'?"
+msgstr "%s:读取文件名列表时获得了空字符;您可能想要使用“--files0”而非“--files”?"
+
+#: src/xz/main.c:174
+msgid "Compression and decompression with --robot are not supported yet."
+msgstr "尚不支持带 --robot 的压缩和解压缩。"
+
+#: src/xz/main.c:252
+msgid "Cannot read data from standard input when reading filenames from standard input"
+msgstr "无法同时从标准输入读取数据和文件名列表"
+
+#. TRANSLATORS: This is the program name in the beginning
+#. of the line in messages. Usually it becomes "xz: ".
+#. This is a translatable string because French needs
+#. a space before a colon.
+#: src/xz/message.c:728
+#, c-format
+msgid "%s: "
+msgstr "%s:"
+
+#: src/xz/message.c:791 src/xz/message.c:841
+msgid "Internal error (bug)"
+msgstr "内部错误(bug)"
+
+#: src/xz/message.c:798
+msgid "Cannot establish signal handlers"
+msgstr "无法建立信号处理器"
+
+#: src/xz/message.c:807
+msgid "No integrity check; not verifying file integrity"
+msgstr "无完整性检查;将不验证文件完整性"
+
+#: src/xz/message.c:810
+msgid "Unsupported type of integrity check; not verifying file integrity"
+msgstr "不支持的完整性检查类型;将不验证文件完整性"
+
+#: src/xz/message.c:817
+msgid "Memory usage limit reached"
+msgstr "达到内存使用限制"
+
+#: src/xz/message.c:820
+msgid "File format not recognized"
+msgstr "无法识别文件格式"
+
+#: src/xz/message.c:823
+msgid "Unsupported options"
+msgstr "不支持的选项"
+
+#: src/xz/message.c:826
+msgid "Compressed data is corrupt"
+msgstr "压缩数据已损坏"
+
+#: src/xz/message.c:829
+msgid "Unexpected end of input"
+msgstr "输入意外结束"
+
+#: src/xz/message.c:862
+#, c-format
+msgid "%s MiB of memory is required. The limiter is disabled."
+msgstr "需要 %s MiB 的内存空间。限制已禁用。"
+
+#: src/xz/message.c:890
+#, c-format
+msgid "%s MiB of memory is required. The limit is %s."
+msgstr "需要 %s MiB 的内存空间。限制为 %s。"
+
+#: src/xz/message.c:1057
+#, c-format
+msgid "%s: Filter chain: %s\n"
+msgstr "%s:过滤器链:%s\n"
+
+#: src/xz/message.c:1067
+#, c-format
+msgid "Try `%s --help' for more information."
+msgstr "请尝试执行“%s --help”来获取更多信息。"
+
+#: src/xz/message.c:1093
+#, c-format
+msgid ""
+"Usage: %s [OPTION]... [FILE]...\n"
+"Compress or decompress FILEs in the .xz format.\n"
+"\n"
+msgstr ""
+"用法:%s [选项]... [文件]...\n"
+"使用 .xz 格式压缩或解压缩文件。\n"
+"\n"
+
+#: src/xz/message.c:1100
+msgid "Mandatory arguments to long options are mandatory for short options too.\n"
+msgstr "必选参数对长短选项同时适用。\n"
+
+#: src/xz/message.c:1104
+msgid " Operation mode:\n"
+msgstr " 操作模式:\n"
+
+#: src/xz/message.c:1107
+msgid ""
+"  -z, --compress      force compression\n"
+"  -d, --decompress    force decompression\n"
+"  -t, --test          test compressed file integrity\n"
+"  -l, --list          list information about .xz files"
+msgstr ""
+"  -z, --compress      强制压缩\n"
+"  -d, --decompress    强制解压缩\n"
+"  -t, --test          测试压缩文件完整性\n"
+"  -l, --list          列出 .xz 文件的信息"
+
+#: src/xz/message.c:1113
+msgid ""
+"\n"
+" Operation modifiers:\n"
+msgstr ""
+"\n"
+" 操作修饰符:\n"
+
+#: src/xz/message.c:1116
+msgid ""
+"  -k, --keep          keep (don't delete) input files\n"
+"  -f, --force         force overwrite of output file and (de)compress links\n"
+"  -c, --stdout        write to standard output and don't delete input files"
+msgstr ""
+"  -k, --keep          保留(不要删除)输入文件\n"
+"  -f, --force         强制覆写输出文件和(解)压缩链接\n"
+"  -c, --stdout        向标准输出写入,同时不要删除输入文件"
+
+#: src/xz/message.c:1122
+msgid ""
+"      --single-stream decompress only the first stream, and silently\n"
+"                      ignore possible remaining input data"
+msgstr "      --single-stream 仅解压缩第一个流,忽略其后可能继续出现的输入数据"
+
+#: src/xz/message.c:1125
+msgid ""
+"      --no-sparse     do not create sparse files when decompressing\n"
+"  -S, --suffix=.SUF   use the suffix `.SUF' on compressed files\n"
+"      --files[=FILE]  read filenames to process from FILE; if FILE is\n"
+"                      omitted, filenames are read from the standard input;\n"
+"                      filenames must be terminated with the newline character\n"
+"      --files0[=FILE] like --files but use the null character as terminator"
+msgstr ""
+"      --no-sparse     解压缩时不要创建稀疏文件\n"
+"  -S, --suffix=.SUF   压缩文件使用指定的“.SUF”后缀名\n"
+"      --files[=文件]  从指定文件读取要处理的文件名列表;如果省略了指定文件名,\n"
+"                      将从标准输入读取文件名列表;文件名必须使用换行符分隔\n"
+"      --files0[=文件] 类似 --files,但使用空字符进行分隔"
+
+#: src/xz/message.c:1134
+msgid ""
+"\n"
+" Basic file format and compression options:\n"
+msgstr ""
+"\n"
+" 基本文件格式和压缩选项:\n"
+
+#: src/xz/message.c:1136
+msgid ""
+"  -F, --format=FMT    file format to encode or decode; possible values are\n"
+"                      `auto' (default), `xz', `lzma', and `raw'\n"
+"  -C, --check=CHECK   integrity check type: `none' (use with caution),\n"
+"                      `crc32', `crc64' (default), or `sha256'"
+msgstr ""
+"  -F, --format=格式   要编码或解码的文件格式;可能的值包括\n"
+"                      “auto”(默认)、“xz”、“lzma”和“raw”\n"
+"  -C, --check=类型    完整性检查类型:“none”(请谨慎使用)、\n"
+"                      “crc32”、“crc64”(默认)或“sha256”"
+
+#: src/xz/message.c:1141
+msgid "      --ignore-check  don't verify the integrity check when decompressing"
+msgstr "      --ignore-check  解压缩时不要进行完整性检查验证"
+
+#: src/xz/message.c:1145
+msgid ""
+"  -0 ... -9           compression preset; default is 6; take compressor *and*\n"
+"                      decompressor memory usage into account before using 7-9!"
+msgstr ""
+"  -0 ... -9           压缩预设等级;默认为 6;使用 7-9 的等级之前,请先考虑\n"
+"                      压缩和解压缩所需的内存用量!(会占用大量内存空间)"
+
+#: src/xz/message.c:1149
+msgid ""
+"  -e, --extreme       try to improve compression ratio by using more CPU time;\n"
+"                      does not affect decompressor memory requirements"
+msgstr ""
+"  -e, --extreme       尝试使用更多 CPU 时间来改进压缩比率;\n"
+"                      不会影响解压缩的内存需求量"
+
+#: src/xz/message.c:1153
+msgid ""
+"  -T, --threads=NUM   use at most NUM threads; the default is 1; set to 0\n"
+"                      to use as many threads as there are processor cores"
+msgstr ""
+"  -T, --threads=数量  使用最多指定数量的线程;默认值为 1;设置为 0\n"
+"                      可以使用与处理器内核数量相同的线程数"
+
+#: src/xz/message.c:1158
+msgid ""
+"      --block-size=SIZE\n"
+"                      start a new .xz block after every SIZE bytes of input;\n"
+"                      use this to set the block size for threaded compression"
+msgstr ""
+"      --block-size=块大小\n"
+"                      输入每读取指定块大小的数据后即开始一个新的 .xz 块;\n"
+"                      使用该选项可以设置多线程压缩中的块大小"
+
+#: src/xz/message.c:1162
+msgid ""
+"      --block-list=SIZES\n"
+"                      start a new .xz block after the given comma-separated\n"
+"                      intervals of uncompressed data"
+msgstr ""
+"      --block-list=块大小列表\n"
+"                      在所给出的未压缩数据间隔大小的数据之后开始一个新的\n"
+"                      .xz 块(使用逗号分隔)"
+
+#: src/xz/message.c:1166
+msgid ""
+"      --flush-timeout=TIMEOUT\n"
+"                      when compressing, if more than TIMEOUT milliseconds has\n"
+"                      passed since the previous flush and reading more input\n"
+"                      would block, all pending data is flushed out"
+msgstr ""
+"      --flush-timeout=超时时间\n"
+"                      进行压缩时,如果从上次刷洗输出之后经过了指定的超时时间\n"
+"                      且读取更多数据会被阻塞,则刷洗输出所有缓冲数据"
+
+#: src/xz/message.c:1172
+#, no-c-format
+msgid ""
+"      --memlimit-compress=LIMIT\n"
+"      --memlimit-decompress=LIMIT\n"
+"  -M, --memlimit=LIMIT\n"
+"                      set memory usage limit for compression, decompression,\n"
+"                      or both; LIMIT is in bytes, % of RAM, or 0 for defaults"
+msgstr ""
+"      --memlimit-compress=限制用量\n"
+"      --memlimit-decompress=限制用量\n"
+"  -M, --memlimit=限制用量\n"
+"                      设置压缩、解压缩或者两者共同的内存用量限制;\n"
+"                      所指定限制量单位为字节,或以百分号 % 结尾表示内存比例,\n"
+"                      或者指定 0 取软件默认值"
+
+#: src/xz/message.c:1179
+msgid ""
+"      --no-adjust     if compression settings exceed the memory usage limit,\n"
+"                      give an error instead of adjusting the settings downwards"
+msgstr "      --no-adjust     如果压缩设置超出内存用量限制,不调整设置而直接报错"
+
+#: src/xz/message.c:1185
+msgid ""
+"\n"
+" Custom filter chain for compression (alternative for using presets):"
+msgstr ""
+"\n"
+" 用于压缩的自定义过滤器链(不使用预设等级时的备选用法):"
+
+#: src/xz/message.c:1194
+msgid ""
+"\n"
+"  --lzma1[=OPTS]      LZMA1 or LZMA2; OPTS is a comma-separated list of zero or\n"
+"  --lzma2[=OPTS]      more of the following options (valid values; default):\n"
+"                        preset=PRE reset options to a preset (0-9[e])\n"
+"                        dict=NUM   dictionary size (4KiB - 1536MiB; 8MiB)\n"
+"                        lc=NUM     number of literal context bits (0-4; 3)\n"
+"                        lp=NUM     number of literal position bits (0-4; 0)\n"
+"                        pb=NUM     number of position bits (0-4; 2)\n"
+"                        mode=MODE  compression mode (fast, normal; normal)\n"
+"                        nice=NUM   nice length of a match (2-273; 64)\n"
+"                        mf=NAME    match finder (hc3, hc4, bt2, bt3, bt4; bt4)\n"
+"                        depth=NUM  maximum search depth; 0=automatic (default)"
+msgstr ""
+"\n"
+"  --lzma1[=选项]      LZMA1 或 LZMA2;指定选项是用逗号分隔的下列选项的组合,\n"
+"  --lzma2[=选项]      值应当为零或大于零(有效值;默认值):\n"
+"                        preset=PRE 将选项重置为预设配置 (0-9[e])\n"
+"                        dict=数字  字典大小 (4KiB - 1536MiB; 8MiB)\n"
+"                        lc=数字    literal context 位的数量 (0-4; 3)\n"
+"                        lp=数字    literal position 位的数量 (0-4; 0)\n"
+"                        pb=数字    position 位的数量 (0-4; 2)\n"
+"                        mode=模式  压缩模式 (fast, normal; normal)\n"
+"                        nice=数字  匹配的 nice 值 (2-273; 64)\n"
+"                        mf=名称    匹配搜索器 match finder\n"
+"                                   (hc3, hc4, bt2, bt3, bt4; bt4)\n"
+"                        depth=数字 最大搜索深度; 0=自动(默认)"
+
+#: src/xz/message.c:1209
+msgid ""
+"\n"
+"  --x86[=OPTS]        x86 BCJ filter (32-bit and 64-bit)\n"
+"  --powerpc[=OPTS]    PowerPC BCJ filter (big endian only)\n"
+"  --ia64[=OPTS]       IA-64 (Itanium) BCJ filter\n"
+"  --arm[=OPTS]        ARM BCJ filter (little endian only)\n"
+"  --armthumb[=OPTS]   ARM-Thumb BCJ filter (little endian only)\n"
+"  --sparc[=OPTS]      SPARC BCJ filter\n"
+"                      Valid OPTS for all BCJ filters:\n"
+"                        start=NUM  start offset for conversions (default=0)"
+msgstr ""
+"\n"
+"  --x86[=选项]        x86 BCJ 过滤器(32 位和 64 位)\n"
+"  --powerpc[=选项]    PowerPC BCJ 过滤器(仅大端序)\n"
+"  --ia64[=选项]       IA-64 (Itanium,安腾) BCJ 过滤器\n"
+"  --arm[=选项]        ARM BCJ 过滤器(仅小端序)\n"
+"  --armthumb[=选项]   ARM-Thumb BCJ 过滤器(仅小端序)\n"
+"  --sparc[=选项]      SPARC BCJ 过滤器\n"
+"                      所有过滤器可用选项:\n"
+"                        start=数字  转换的起始偏移量(默认=0)"
+
+#: src/xz/message.c:1221
+msgid ""
+"\n"
+"  --delta[=OPTS]      Delta filter; valid OPTS (valid values; default):\n"
+"                        dist=NUM   distance between bytes being subtracted\n"
+"                                   from each other (1-256; 1)"
+msgstr ""
+"\n"
+"  --delta[=选项]      增量过滤器;有效选项(有效值;默认值):\n"
+"                        dist=NUM   相减的字节之间的距离 (1-256; 1)"
+
+#: src/xz/message.c:1229
+msgid ""
+"\n"
+" Other options:\n"
+msgstr ""
+"\n"
+" 其它选项:\n"
+
+#: src/xz/message.c:1232
+msgid ""
+"  -q, --quiet         suppress warnings; specify twice to suppress errors too\n"
+"  -v, --verbose       be verbose; specify twice for even more verbose"
+msgstr ""
+"  -q, --quiet         不显示警告信息;指定两次可不显示错误信息\n"
+"  -v, --verbose       输出详细信息;指定两次可以输出更详细的信息"
+
+#: src/xz/message.c:1237
+msgid "  -Q, --no-warn       make warnings not affect the exit status"
+msgstr "  -Q, --no-warn       使得警告信息不影响程序退出返回值"
+
+#: src/xz/message.c:1239
+msgid "      --robot         use machine-parsable messages (useful for scripts)"
+msgstr "      --robot         使用机器可解析的信息(对于脚本有用)"
+
+#: src/xz/message.c:1242
+msgid ""
+"      --info-memory   display the total amount of RAM and the currently active\n"
+"                      memory usage limits, and exit"
+msgstr "      --info-memory   显示 RAM 总量和当前配置的内存用量限制,然后退出"
+
+#: src/xz/message.c:1245
+msgid ""
+"  -h, --help          display the short help (lists only the basic options)\n"
+"  -H, --long-help     display this long help and exit"
+msgstr ""
+"  -h, --help          显示短帮助信息(仅列出基本选项)\n"
+"  -H, --long-help     显示本长帮助信息"
+
+#: src/xz/message.c:1249
+msgid ""
+"  -h, --help          display this short help and exit\n"
+"  -H, --long-help     display the long help (lists also the advanced options)"
+msgstr ""
+"  -h, --help          显示本短帮助信息并退出\n"
+"  -H, --long-help     显示长帮助信息(同时列出高级选项)"
+
+#: src/xz/message.c:1254
+msgid "  -V, --version       display the version number and exit"
+msgstr "  -V, --version       显示软件版本号并退出"
+
+#: src/xz/message.c:1256
+msgid ""
+"\n"
+"With no FILE, or when FILE is -, read standard input.\n"
+msgstr ""
+"\n"
+"如果没有指定文件,或者文件为\"-\",则从标准输入读取。\n"
+
+#. TRANSLATORS: This message indicates the bug reporting address
+#. for this package. Please add _another line_ saying
+#. "Report translation bugs to <...>\n" with the email or WWW
+#. address for translation bugs. Thanks.
+#: src/xz/message.c:1262
+#, c-format
+msgid "Report bugs to <%s> (in English or Finnish).\n"
+msgstr ""
+"请使用英文或芬兰语向 <%s> 报告软件错误。\n"
+"请使用中文向 TP 简体中文翻译团队 <i18n-zh@googlegroups.com>\n"
+"报告软件的简体中文翻译错误。\n"
+
+#: src/xz/message.c:1264
+#, c-format
+msgid "%s home page: <%s>\n"
+msgstr "%s 主页:<%s>\n"
+
+#: src/xz/message.c:1268
+msgid "THIS IS A DEVELOPMENT VERSION NOT INTENDED FOR PRODUCTION USE."
+msgstr "这是开发版本,不适用于生产环境使用。"
+
+#: src/xz/options.c:86
+#, c-format
+msgid "%s: Options must be `name=value' pairs separated with commas"
+msgstr "%s:选项必须按照“名称=值”的格式成对出现,使用半角逗号分隔"
+
+#: src/xz/options.c:93
+#, c-format
+msgid "%s: Invalid option name"
+msgstr "%s:无效的选项名称"
+
+#: src/xz/options.c:113
+#, c-format
+msgid "%s: Invalid option value"
+msgstr "%s:无效的选项值"
+
+#: src/xz/options.c:247
+#, c-format
+msgid "Unsupported LZMA1/LZMA2 preset: %s"
+msgstr "不支持的 LZMA1/LZMA2 预设等级:%s"
+
+#: src/xz/options.c:355
+msgid "The sum of lc and lp must not exceed 4"
+msgstr "lc 和 lp 的和必须不大于 4"
+
+#: src/xz/options.c:359
+#, c-format
+msgid "The selected match finder requires at least nice=%<PRIu32>"
+msgstr "所选中的匹配搜索器(match finder)至少需要 nice=%<PRIu32>"
+
+#: src/xz/suffix.c:133 src/xz/suffix.c:258
+#, c-format
+msgid "%s: With --format=raw, --suffix=.SUF is required unless writing to stdout"
+msgstr "%s:在启用 --format-raw 选项时,必须指定 --suffix=.SUF 获知写入至标准输出"
+
+#: src/xz/suffix.c:164
+#, c-format
+msgid "%s: Filename has an unknown suffix, skipping"
+msgstr "%s:文件名有未知后缀,跳过"
+
+#: src/xz/suffix.c:185
+#, c-format
+msgid "%s: File already has `%s' suffix, skipping"
+msgstr "%s:文件已有“%s”后缀名,跳过"
+
+#: src/xz/suffix.c:393
+#, c-format
+msgid "%s: Invalid filename suffix"
+msgstr "%s:无效的文件名后缀"
+
+#: src/xz/util.c:71
+#, c-format
+msgid "%s: Value is not a non-negative decimal integer"
+msgstr "%s:值不是非负十进制整数"
+
+#: src/xz/util.c:113
+#, c-format
+msgid "%s: Invalid multiplier suffix"
+msgstr "%s:无效的乘数后缀"
+
+#: src/xz/util.c:115
+msgid "Valid suffixes are `KiB' (2^10), `MiB' (2^20), and `GiB' (2^30)."
+msgstr "有效的后缀包括“KiB”(2^10)、“MiB”(2^20)和“GiB”(2^30)。"
+
+#: src/xz/util.c:132
+#, c-format
+msgid "Value of the option `%s' must be in the range [%<PRIu64>, %<PRIu64>]"
+msgstr "选项“%s”的值必须位于 [%<PRIu64>, %<PRIu64>] 范围内"
+
+#: src/xz/util.c:267
+msgid "Empty filename, skipping"
+msgstr "空文件名,跳过"
+
+#: src/xz/util.c:281
+msgid "Compressed data cannot be read from a terminal"
+msgstr "压缩数据不能从终端读取"
+
+#: src/xz/util.c:294
+msgid "Compressed data cannot be written to a terminal"
+msgstr "压缩数据不能向终端写入"
+
+#: src/common/tuklib_exit.c:40
+msgid "Writing to standard output failed"
+msgstr "写入标准输出失败"
+
+#: src/common/tuklib_exit.c:43
+msgid "Unknown error"
+msgstr "未知错误"
+
+#~ msgid "Sandbox is disabled due to incompatible command line arguments"
+#~ msgstr "沙盒已因不兼容的命令行参数而禁用"
+
+#~ msgid "Sandbox was successfully enabled"
+#~ msgstr "已成功启用沙盒"
diff --git a/po/zh_TW.gmo b/po/zh_TW.gmo
new file mode 100644 (file)
index 0000000..29add0b
Binary files /dev/null and b/po/zh_TW.gmo differ
diff --git a/po/zh_TW.po b/po/zh_TW.po
new file mode 100644 (file)
index 0000000..487b2ce
--- /dev/null
@@ -0,0 +1,954 @@
+# Chinese translations for xz package.
+# This file is put in the public domain.
+#
+# pan93412 <pan93412@gmail.com>, 2019.
+msgid ""
+msgstr ""
+"Project-Id-Version: xz 5.2.4\n"
+"Report-Msgid-Bugs-To: lasse.collin@tukaani.org\n"
+"POT-Creation-Date: 2020-03-17 16:29+0200\n"
+"PO-Revision-Date: 2019-04-23 22:00+0800\n"
+"Last-Translator: pan93412 <pan93412@gmail.com>\n"
+"Language-Team: Chinese (traditional) <zh-l10n@linux.org.tw>\n"
+"Language: zh_TW\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Bugs: Report translation errors to the Language-Team address.\n"
+"Plural-Forms: nplurals=1; plural=0;\n"
+"X-Generator: Poedit 2.2.1\n"
+"X-Poedit-SourceCharset: UTF-8\n"
+
+#: src/xz/args.c:63
+#, c-format
+msgid "%s: Invalid argument to --block-list"
+msgstr "%s:傳入 --block-list 的參數無效"
+
+#: src/xz/args.c:73
+#, c-format
+msgid "%s: Too many arguments to --block-list"
+msgstr "%s:傳入 --block-list 的參數過多"
+
+#: src/xz/args.c:102
+msgid "0 can only be used as the last element in --block-list"
+msgstr "0 只能作為 --block-list 的最後一個元素"
+
+#: src/xz/args.c:406
+#, c-format
+msgid "%s: Unknown file format type"
+msgstr "%s:未知檔案格式類型"
+
+#: src/xz/args.c:429 src/xz/args.c:437
+#, c-format
+msgid "%s: Unsupported integrity check type"
+msgstr "%s:不支援的完整性檢查類型"
+
+#: src/xz/args.c:473
+msgid "Only one file can be specified with `--files' or `--files0'."
+msgstr "「--files」或「--files0」只能指定一個檔案。"
+
+#: src/xz/args.c:541
+#, c-format
+msgid "The environment variable %s contains too many arguments"
+msgstr "%s 環境變數包含過多參數"
+
+#: src/xz/args.c:643
+msgid "Compression support was disabled at build time"
+msgstr "已在編譯時停用壓縮支援"
+
+#: src/xz/args.c:650
+msgid "Decompression support was disabled at build time"
+msgstr "已在編譯時停用解壓縮支援"
+
+#: src/xz/coder.c:110
+msgid "Maximum number of filters is four"
+msgstr "最多只能指定 4 個篩選器"
+
+#: src/xz/coder.c:129
+msgid "Memory usage limit is too low for the given filter setup."
+msgstr "記憶體用量限制過低,不足以設定指定的篩選器。"
+
+#: src/xz/coder.c:159
+msgid "Using a preset in raw mode is discouraged."
+msgstr "不建議在 Raw 模式使用設定檔。"
+
+#: src/xz/coder.c:161
+msgid "The exact options of the presets may vary between software versions."
+msgstr "設定檔的選項可能因軟體版本而有異。"
+
+#: src/xz/coder.c:184
+msgid "The .lzma format supports only the LZMA1 filter"
+msgstr ".lzma 格式僅支援 LZMA1 篩選器"
+
+#: src/xz/coder.c:192
+msgid "LZMA1 cannot be used with the .xz format"
+msgstr "LZMA1 不能與 .xz 格式一同使用"
+
+#: src/xz/coder.c:209
+msgid "The filter chain is incompatible with --flush-timeout"
+msgstr "篩選鏈不相容 --flush-timeout"
+
+#: src/xz/coder.c:215
+msgid "Switching to single-threaded mode due to --flush-timeout"
+msgstr "因指定 --flush-timeout,因此切換到單執行緒模式"
+
+#: src/xz/coder.c:235
+#, c-format
+msgid "Using up to %<PRIu32> threads."
+msgstr "使用最多 %<PRIu32> 個執行緒。"
+
+#: src/xz/coder.c:251
+msgid "Unsupported filter chain or filter options"
+msgstr "不支援的篩選鏈或篩選器選項"
+
+#: src/xz/coder.c:263
+#, c-format
+msgid "Decompression will need %s MiB of memory."
+msgstr "解壓縮將需要 %s MiB 的記憶體。"
+
+#: src/xz/coder.c:300
+#, c-format
+msgid "Adjusted the number of threads from %s to %s to not exceed the memory usage limit of %s MiB"
+msgstr "已將 %s 個執行緒調整至 %s,以不超過記憶體用量的 %s MiB 限制"
+
+#: src/xz/coder.c:354
+#, c-format
+msgid "Adjusted LZMA%c dictionary size from %s MiB to %s MiB to not exceed the memory usage limit of %s MiB"
+msgstr "已將 LZMA%c 的字典大小從 %s MiB 調整至 %s MiB,以不超過記憶體用量的 %s MiB 限制"
+
+#: src/xz/file_io.c:110 src/xz/file_io.c:118
+#, c-format
+msgid "Error creating a pipe: %s"
+msgstr "建立管線時發生錯誤:%s"
+
+#: src/xz/file_io.c:224
+msgid "Failed to enable the sandbox"
+msgstr "無法啟用沙盒"
+
+#: src/xz/file_io.c:266
+#, c-format
+msgid "%s: poll() failed: %s"
+msgstr "%s:poll() 失敗:%s"
+
+#. TRANSLATORS: When compression or decompression finishes,
+#. and xz is going to remove the source file, xz first checks
+#. if the source file still exists, and if it does, does its
+#. device and inode numbers match what xz saw when it opened
+#. the source file. If these checks fail, this message is
+#. shown, %s being the filename, and the file is not deleted.
+#. The check for device and inode numbers is there, because
+#. it is possible that the user has put a new file in place
+#. of the original file, and in that case it obviously
+#. shouldn't be removed.
+#: src/xz/file_io.c:333
+#, c-format
+msgid "%s: File seems to have been moved, not removing"
+msgstr "%s:檔案似乎已經遷移,不移除"
+
+#: src/xz/file_io.c:340 src/xz/file_io.c:882
+#, c-format
+msgid "%s: Cannot remove: %s"
+msgstr "%s:無法移除:%s"
+
+#: src/xz/file_io.c:366
+#, c-format
+msgid "%s: Cannot set the file owner: %s"
+msgstr "%s:無法設定檔案所有者:%s"
+
+#: src/xz/file_io.c:372
+#, c-format
+msgid "%s: Cannot set the file group: %s"
+msgstr "%s:無法設定檔案群組:%s"
+
+#: src/xz/file_io.c:391
+#, c-format
+msgid "%s: Cannot set the file permissions: %s"
+msgstr "%s:無法設定檔案權限:%s"
+
+#: src/xz/file_io.c:517
+#, c-format
+msgid "Error getting the file status flags from standard input: %s"
+msgstr "從標準輸入取得檔案狀態旗標時發生錯誤:%s"
+
+#: src/xz/file_io.c:574 src/xz/file_io.c:636
+#, c-format
+msgid "%s: Is a symbolic link, skipping"
+msgstr "%s:是個符號連結,跳過"
+
+#: src/xz/file_io.c:665
+#, c-format
+msgid "%s: Is a directory, skipping"
+msgstr "%s:是個目錄,跳過"
+
+#: src/xz/file_io.c:671
+#, c-format
+msgid "%s: Not a regular file, skipping"
+msgstr "%s:不是一般檔案,跳過"
+
+#: src/xz/file_io.c:688
+#, c-format
+msgid "%s: File has setuid or setgid bit set, skipping"
+msgstr "%s:檔案已設定 setuid 或 setgid 位元,跳過"
+
+#: src/xz/file_io.c:695
+#, c-format
+msgid "%s: File has sticky bit set, skipping"
+msgstr "%s:檔案已設定黏性位元(sticky bit),跳過"
+
+#: src/xz/file_io.c:702
+#, c-format
+msgid "%s: Input file has more than one hard link, skipping"
+msgstr "%s:輸入檔有超過一個實際連結 (hard link),跳過"
+
+#: src/xz/file_io.c:792
+#, c-format
+msgid "Error restoring the status flags to standard input: %s"
+msgstr "將狀態旗標還原到標準輸入時發生錯誤:%s"
+
+#: src/xz/file_io.c:840
+#, c-format
+msgid "Error getting the file status flags from standard output: %s"
+msgstr "從標準輸出取得檔案狀態旗標時發生錯誤:%s"
+
+#: src/xz/file_io.c:1018
+#, c-format
+msgid "Error restoring the O_APPEND flag to standard output: %s"
+msgstr "將 O_APPEND 旗標還原到標準輸出時發生錯誤:%s"
+
+#: src/xz/file_io.c:1030
+#, c-format
+msgid "%s: Closing the file failed: %s"
+msgstr "%s:關閉檔案失敗:%s"
+
+#: src/xz/file_io.c:1066 src/xz/file_io.c:1309
+#, c-format
+msgid "%s: Seeking failed when trying to create a sparse file: %s"
+msgstr "%s:嘗試建立疏鬆檔案時發生搜尋失敗:%s"
+
+#: src/xz/file_io.c:1167
+#, c-format
+msgid "%s: Read error: %s"
+msgstr "%s:讀取時發生錯誤:%s"
+
+#: src/xz/file_io.c:1191
+#, c-format
+msgid "%s: Error seeking the file: %s"
+msgstr "%s:搜尋檔案時發生錯誤:%s"
+
+#: src/xz/file_io.c:1201
+#, c-format
+msgid "%s: Unexpected end of file"
+msgstr "%s:非期望的檔案結尾"
+
+#: src/xz/file_io.c:1260
+#, c-format
+msgid "%s: Write error: %s"
+msgstr "%s:寫入時發生錯誤:%s"
+
+#: src/xz/hardware.c:137
+msgid "Disabled"
+msgstr "已停用"
+
+#. TRANSLATORS: Test with "xz --info-memory" to see if
+#. the alignment looks nice.
+#: src/xz/hardware.c:156
+msgid "Total amount of physical memory (RAM): "
+msgstr "實體記憶體 (RAM) 總量:"
+
+#: src/xz/hardware.c:158
+msgid "Memory usage limit for compression:    "
+msgstr "壓縮記憶體限制:       "
+
+#: src/xz/hardware.c:160
+msgid "Memory usage limit for decompression:  "
+msgstr "解壓縮記憶體限制:     "
+
+#. TRANSLATORS: Indicates that there is no integrity check.
+#. This string is used in tables, so the width must not
+#. exceed ten columns with a fixed-width font.
+#: src/xz/list.c:65
+msgid "None"
+msgstr "無"
+
+#. TRANSLATORS: Indicates that integrity check name is not known,
+#. but the Check ID is known (here 2). This and other "Unknown-N"
+#. strings are used in tables, so the width must not exceed ten
+#. columns with a fixed-width font. It's OK to omit the dash if
+#. you need space for one extra letter, but don't use spaces.
+#: src/xz/list.c:72
+msgid "Unknown-2"
+msgstr "未知-2"
+
+#: src/xz/list.c:73
+msgid "Unknown-3"
+msgstr "未知-3"
+
+#: src/xz/list.c:75
+msgid "Unknown-5"
+msgstr "未知-5"
+
+#: src/xz/list.c:76
+msgid "Unknown-6"
+msgstr "未知-6"
+
+#: src/xz/list.c:77
+msgid "Unknown-7"
+msgstr "未知-7"
+
+#: src/xz/list.c:78
+msgid "Unknown-8"
+msgstr "未知-8"
+
+#: src/xz/list.c:79
+msgid "Unknown-9"
+msgstr "未知-9"
+
+#: src/xz/list.c:81
+msgid "Unknown-11"
+msgstr "未知-11"
+
+#: src/xz/list.c:82
+msgid "Unknown-12"
+msgstr "未知-12"
+
+#: src/xz/list.c:83
+msgid "Unknown-13"
+msgstr "未知-13"
+
+#: src/xz/list.c:84
+msgid "Unknown-14"
+msgstr "未知-14"
+
+#: src/xz/list.c:85
+msgid "Unknown-15"
+msgstr "未知-15"
+
+#: src/xz/list.c:153
+#, c-format
+msgid "%s: File is empty"
+msgstr "%s:檔案是空的"
+
+#: src/xz/list.c:158
+#, c-format
+msgid "%s: Too small to be a valid .xz file"
+msgstr "%s:因過小而不認為是個有效 .xz 檔"
+
+#. TRANSLATORS: These are column headings. From Strms (Streams)
+#. to Ratio, the columns are right aligned. Check and Filename
+#. are left aligned. If you need longer words, it's OK to
+#. use two lines here. Test with "xz -l foo.xz".
+#: src/xz/list.c:677
+msgid "Strms  Blocks   Compressed Uncompressed  Ratio  Check   Filename"
+msgstr " 串流  區塊    已壓縮    未壓縮  比例 檢驗碼 檔名"
+
+#: src/xz/list.c:717
+#, c-format
+msgid "  Streams:            %s\n"
+msgstr "  串流:         %s\n"
+
+#: src/xz/list.c:719
+#, c-format
+msgid "  Blocks:             %s\n"
+msgstr "  區塊:         %s\n"
+
+#: src/xz/list.c:721
+#, c-format
+msgid "  Compressed size:    %s\n"
+msgstr "  壓縮大小:       %s\n"
+
+#: src/xz/list.c:724
+#, c-format
+msgid "  Uncompressed size:  %s\n"
+msgstr "  未壓縮大小:      %s\n"
+
+#: src/xz/list.c:727
+#, c-format
+msgid "  Ratio:              %s\n"
+msgstr "  壓縮比:        %s\n"
+
+#: src/xz/list.c:729
+#, c-format
+msgid "  Check:              %s\n"
+msgstr "  檢驗碼:        %s\n"
+
+#: src/xz/list.c:730
+#, c-format
+msgid "  Stream padding:     %s\n"
+msgstr "  串流填充:       %s\n"
+
+# 下方的文字因排版有一些障礙,因此暫時不理他。
+#. TRANSLATORS: The second line is column headings. All except
+#. Check are right aligned; Check is left aligned. Test with
+#. "xz -lv foo.xz".
+#: src/xz/list.c:758
+msgid ""
+"  Streams:\n"
+"    Stream    Blocks      CompOffset    UncompOffset        CompSize      UncompSize  Ratio  Check      Padding"
+msgstr ""
+"  串流:\n"
+"    Stream    Blocks      CompOffset    UncompOffset        CompSize      UncompSize  Ratio  Check      Padding"
+
+# 下方的文字因排版有一些障礙,因此暫時不理他。
+#. TRANSLATORS: The second line is column headings. All
+#. except Check are right aligned; Check is left aligned.
+#: src/xz/list.c:813
+#, c-format
+msgid ""
+"  Blocks:\n"
+"    Stream     Block      CompOffset    UncompOffset       TotalSize      UncompSize  Ratio  Check"
+msgstr ""
+"  區塊:\n"
+"    Stream     Block      CompOffset    UncompOffset       TotalSize      UncompSize  Ratio  Check"
+
+# 下方的文字因排版有一些障礙,因此暫時不理他。
+#. TRANSLATORS: These are additional column headings
+#. for the most verbose listing mode. CheckVal
+#. (Check value), Flags, and Filters are left aligned.
+#. Header (Block Header Size), CompSize, and MemUsage
+#. are right aligned. %*s is replaced with 0-120
+#. spaces to make the CheckVal column wide enough.
+#. Test with "xz -lvv foo.xz".
+#: src/xz/list.c:825
+#, c-format
+msgid "      CheckVal %*s Header  Flags        CompSize    MemUsage  Filters"
+msgstr "      CheckVal %*s Header  Flags        CompSize    MemUsage  Filters"
+
+#: src/xz/list.c:903 src/xz/list.c:1078
+#, c-format
+msgid "  Memory needed:      %s MiB\n"
+msgstr "  所需記憶體量:     %s MiB\n"
+
+#: src/xz/list.c:905 src/xz/list.c:1080
+#, c-format
+msgid "  Sizes in headers:   %s\n"
+msgstr "  檔頭中標示大小:    %s\n"
+
+#: src/xz/list.c:906 src/xz/list.c:1081
+msgid "Yes"
+msgstr "是"
+
+#: src/xz/list.c:906 src/xz/list.c:1081
+msgid "No"
+msgstr "否"
+
+#: src/xz/list.c:907 src/xz/list.c:1082
+#, c-format
+msgid "  Minimum XZ Utils version: %s\n"
+msgstr "  最小 XZ 工具程式版本: %s\n"
+
+#. TRANSLATORS: %s is an integer. Only the plural form of this
+#. message is used (e.g. "2 files"). Test with "xz -l foo.xz bar.xz".
+#: src/xz/list.c:1057
+#, c-format
+msgid "%s file\n"
+msgid_plural "%s files\n"
+msgstr[0] "%s 個檔案\n"
+
+#: src/xz/list.c:1070
+msgid "Totals:"
+msgstr "總計:"
+
+#: src/xz/list.c:1071
+#, c-format
+msgid "  Number of files:    %s\n"
+msgstr "  檔案數:        %s\n"
+
+#: src/xz/list.c:1146
+msgid "--list works only on .xz files (--format=xz or --format=auto)"
+msgstr "--list 只能在 .xz 檔使用(--format=xz 或 --format=auto)"
+
+#: src/xz/list.c:1152
+msgid "--list does not support reading from standard input"
+msgstr "--list 不支援從標準輸入讀取"
+
+#: src/xz/main.c:89
+#, c-format
+msgid "%s: Error reading filenames: %s"
+msgstr "%s:讀取檔名時發生錯誤:%s"
+
+#: src/xz/main.c:96
+#, c-format
+msgid "%s: Unexpected end of input when reading filenames"
+msgstr "%s:讀取檔名時遇到非預期的輸入結尾"
+
+#: src/xz/main.c:120
+#, c-format
+msgid "%s: Null character found when reading filenames; maybe you meant to use `--files0' instead of `--files'?"
+msgstr "%s:讀取檔名時發現空字元;或許您想使用「--files0」而非「--files」?"
+
+#: src/xz/main.c:174
+msgid "Compression and decompression with --robot are not supported yet."
+msgstr "尚未支援搭配 --robot 壓縮和解壓縮。"
+
+#: src/xz/main.c:252
+msgid "Cannot read data from standard input when reading filenames from standard input"
+msgstr "從標準輸入讀取檔名時,無法從標準輸入讀取資料"
+
+#. TRANSLATORS: This is the program name in the beginning
+#. of the line in messages. Usually it becomes "xz: ".
+#. This is a translatable string because French needs
+#. a space before a colon.
+#: src/xz/message.c:728
+#, c-format
+msgid "%s: "
+msgstr "%s:"
+
+#: src/xz/message.c:791 src/xz/message.c:841
+msgid "Internal error (bug)"
+msgstr "內部錯誤(臭蟲)"
+
+#: src/xz/message.c:798
+msgid "Cannot establish signal handlers"
+msgstr "無法確立信號處理器"
+
+#: src/xz/message.c:807
+msgid "No integrity check; not verifying file integrity"
+msgstr "沒有完整性檢查;不驗證檔案完整性"
+
+#: src/xz/message.c:810
+msgid "Unsupported type of integrity check; not verifying file integrity"
+msgstr "未知完整性檢查類型;不驗證檔案完整性"
+
+#: src/xz/message.c:817
+msgid "Memory usage limit reached"
+msgstr "達到記憶體用量上限"
+
+#: src/xz/message.c:820
+msgid "File format not recognized"
+msgstr "無法識別檔案格式"
+
+#: src/xz/message.c:823
+msgid "Unsupported options"
+msgstr "不支援的選項"
+
+#: src/xz/message.c:826
+msgid "Compressed data is corrupt"
+msgstr "壓縮資料是損壞的"
+
+#: src/xz/message.c:829
+msgid "Unexpected end of input"
+msgstr "遇到非預期輸入結尾"
+
+#: src/xz/message.c:862
+#, c-format
+msgid "%s MiB of memory is required. The limiter is disabled."
+msgstr "需要 %s MiB 的記憶體。已停用記憶體限制器。"
+
+#: src/xz/message.c:890
+#, c-format
+msgid "%s MiB of memory is required. The limit is %s."
+msgstr "需要 %s MiB 的記憶體。記憶體限制為 %s。"
+
+#: src/xz/message.c:1057
+#, c-format
+msgid "%s: Filter chain: %s\n"
+msgstr "%s:篩選鏈:%s\n"
+
+#: src/xz/message.c:1067
+#, c-format
+msgid "Try `%s --help' for more information."
+msgstr "嘗試「%s --help」取得更多資訊。"
+
+#: src/xz/message.c:1093
+#, c-format
+msgid ""
+"Usage: %s [OPTION]... [FILE]...\n"
+"Compress or decompress FILEs in the .xz format.\n"
+"\n"
+msgstr ""
+"用法:%s [選項]... [檔案]...\n"
+"用 .xz 格式壓縮,或解壓縮 .xz 格式中的 <檔案>。\n"
+"\n"
+
+#: src/xz/message.c:1100
+msgid "Mandatory arguments to long options are mandatory for short options too.\n"
+msgstr "長選項的必填參數,對短選項也是必填。\n"
+
+#: src/xz/message.c:1104
+msgid " Operation mode:\n"
+msgstr " 操作模式:\n"
+
+#: src/xz/message.c:1107
+msgid ""
+"  -z, --compress      force compression\n"
+"  -d, --decompress    force decompression\n"
+"  -t, --test          test compressed file integrity\n"
+"  -l, --list          list information about .xz files"
+msgstr ""
+"  -z, --compress      強制壓縮\n"
+"  -d, --decompress    強制解壓縮\n"
+"  -t, --test          測試壓縮檔完整性\n"
+"  -l, --list          列出 .xz 檔的資訊"
+
+#: src/xz/message.c:1113
+msgid ""
+"\n"
+" Operation modifiers:\n"
+msgstr ""
+"\n"
+" 操作修飾詞:\n"
+
+#: src/xz/message.c:1116
+msgid ""
+"  -k, --keep          keep (don't delete) input files\n"
+"  -f, --force         force overwrite of output file and (de)compress links\n"
+"  -c, --stdout        write to standard output and don't delete input files"
+msgstr ""
+"  -k, --keep          保留(不刪除)輸入檔\n"
+"  -f, --force         強制覆寫輸出檔並(解)壓縮連結\n"
+"  -c, --stdout        寫入標準輸出並不刪除輸入檔"
+
+#: src/xz/message.c:1122
+msgid ""
+"      --single-stream decompress only the first stream, and silently\n"
+"                      ignore possible remaining input data"
+msgstr ""
+"      --single-stream 僅解壓縮第一個串流,再\n"
+"                      安靜地忽略可能剩餘的輸入檔"
+
+#: src/xz/message.c:1125
+msgid ""
+"      --no-sparse     do not create sparse files when decompressing\n"
+"  -S, --suffix=.SUF   use the suffix `.SUF' on compressed files\n"
+"      --files[=FILE]  read filenames to process from FILE; if FILE is\n"
+"                      omitted, filenames are read from the standard input;\n"
+"                      filenames must be terminated with the newline character\n"
+"      --files0[=FILE] like --files but use the null character as terminator"
+msgstr ""
+"      --no-sparse     不在解壓縮時建立疏鬆檔案\n"
+"  -S, --suffix=.SUF   在壓縮檔加上後綴「.SUF」\n"
+"      --files[=檔案]  讀取檔案名稱以處理 <檔案>;如省略 <檔案>\n"
+"                      則從標準輸入讀取檔名;檔名必須以換行字元作為結尾\n"
+"      --files0[=檔案] 類似 --files 但是以 null 空字元作結尾"
+
+#: src/xz/message.c:1134
+msgid ""
+"\n"
+" Basic file format and compression options:\n"
+msgstr ""
+"\n"
+" 基本檔案格式與壓縮選項:\n"
+
+#: src/xz/message.c:1136
+msgid ""
+"  -F, --format=FMT    file format to encode or decode; possible values are\n"
+"                      `auto' (default), `xz', `lzma', and `raw'\n"
+"  -C, --check=CHECK   integrity check type: `none' (use with caution),\n"
+"                      `crc32', `crc64' (default), or `sha256'"
+msgstr ""
+"  -F, --format=格式   用於編碼或解碼的檔案格式;可用的值有:\n"
+"                      「auto」(預設)、「xz」、「lzma」及「raw」\n"
+"  -C, --check=檢查碼   完整性檢查類型:「none」(請小心使用)、「crc32」、\n"
+"                      「crc64」(預設值)或「sha256」"
+
+#: src/xz/message.c:1141
+msgid "      --ignore-check  don't verify the integrity check when decompressing"
+msgstr "      --ignore-check  不在解壓縮時驗證完整性"
+
+#: src/xz/message.c:1145
+msgid ""
+"  -0 ... -9           compression preset; default is 6; take compressor *and*\n"
+"                      decompressor memory usage into account before using 7-9!"
+msgstr ""
+"  -0 ... -9           壓縮設定檔;預設值為 6;使用 7-9 前請考慮\n"
+"                      壓縮和解壓縮所使用的記憶體!"
+
+#: src/xz/message.c:1149
+msgid ""
+"  -e, --extreme       try to improve compression ratio by using more CPU time;\n"
+"                      does not affect decompressor memory requirements"
+msgstr ""
+"  -e, --extreme       使用更多 CPU 時間以嘗試改善壓縮比;\n"
+"                      不影響解壓縮器的記憶體需求"
+
+#: src/xz/message.c:1153
+msgid ""
+"  -T, --threads=NUM   use at most NUM threads; the default is 1; set to 0\n"
+"                      to use as many threads as there are processor cores"
+msgstr ""
+"  -T, --threads=NUM   使用最多 NUM 個執行緒;預設為 1;設成 0 則使用所有的\n"
+"                      處理機核心"
+
+#: src/xz/message.c:1158
+msgid ""
+"      --block-size=SIZE\n"
+"                      start a new .xz block after every SIZE bytes of input;\n"
+"                      use this to set the block size for threaded compression"
+msgstr ""
+"      --block-size=大小\n"
+"                      輸入每 <大小> 位元組後,開始一個新 .xz 區塊;\n"
+"                      使用此功能以設定多執行緒壓縮的區塊大小"
+
+#: src/xz/message.c:1162
+msgid ""
+"      --block-list=SIZES\n"
+"                      start a new .xz block after the given comma-separated\n"
+"                      intervals of uncompressed data"
+msgstr ""
+
+#: src/xz/message.c:1166
+msgid ""
+"      --flush-timeout=TIMEOUT\n"
+"                      when compressing, if more than TIMEOUT milliseconds has\n"
+"                      passed since the previous flush and reading more input\n"
+"                      would block, all pending data is flushed out"
+msgstr ""
+
+#: src/xz/message.c:1172
+#, no-c-format
+msgid ""
+"      --memlimit-compress=LIMIT\n"
+"      --memlimit-decompress=LIMIT\n"
+"  -M, --memlimit=LIMIT\n"
+"                      set memory usage limit for compression, decompression,\n"
+"                      or both; LIMIT is in bytes, % of RAM, or 0 for defaults"
+msgstr ""
+"      --memlimit-compress=限制\n"
+"      --memlimit-decompress=限制\n"
+"  -M, --memlimit=限制\n"
+"                      限制壓縮、解壓縮或兩者的記憶體用量上限;\n"
+"                      <限制> 可以是位元組、記憶體百分比 (%)、或 0(預設值)"
+
+#: src/xz/message.c:1179
+msgid ""
+"      --no-adjust     if compression settings exceed the memory usage limit,\n"
+"                      give an error instead of adjusting the settings downwards"
+msgstr ""
+"      --no-adjust     若壓縮設定超過記憶體用量上限,請給出\n"
+"                      錯誤而非下調設定"
+
+#: src/xz/message.c:1185
+msgid ""
+"\n"
+" Custom filter chain for compression (alternative for using presets):"
+msgstr ""
+"\n"
+" 自訂壓縮篩選鏈(使用設定檔時選用):"
+
+#: src/xz/message.c:1194
+msgid ""
+"\n"
+"  --lzma1[=OPTS]      LZMA1 or LZMA2; OPTS is a comma-separated list of zero or\n"
+"  --lzma2[=OPTS]      more of the following options (valid values; default):\n"
+"                        preset=PRE reset options to a preset (0-9[e])\n"
+"                        dict=NUM   dictionary size (4KiB - 1536MiB; 8MiB)\n"
+"                        lc=NUM     number of literal context bits (0-4; 3)\n"
+"                        lp=NUM     number of literal position bits (0-4; 0)\n"
+"                        pb=NUM     number of position bits (0-4; 2)\n"
+"                        mode=MODE  compression mode (fast, normal; normal)\n"
+"                        nice=NUM   nice length of a match (2-273; 64)\n"
+"                        mf=NAME    match finder (hc3, hc4, bt2, bt3, bt4; bt4)\n"
+"                        depth=NUM  maximum search depth; 0=automatic (default)"
+msgstr ""
+"\n"
+"  --lzma1[=操作]      LZMA1 或 LZMA2;<操作> 是以下選項中的 0 個或以上選項\n"
+"  --lzma2[=操作]      (有效值; 預設):\n"
+"                        preset=PRE 將選項重設至某設定檔的選項 (0-9[e])\n"
+"                        dict=NUM   字典大小 (4KiB - 1536MiB; 8MiB)\n"
+"                        lc=NUM     文字內文位元數 (0-4; 3)\n"
+"                        lp=NUM     文字位置位元數 (0-4; 0)\n"
+"                        pb=NUM     位置位元數    (0-4; 2)\n"
+"                        mode=模式  壓縮模式 (fast, normal; normal)\n"
+"                        nice=NUM   符合項目的 nice 長度 (2-273; 64)\n"
+"                        mf=名稱    尋找符合搜尋器 (hc3, hc4, bt2, bt3, bt4; bt4)\n"
+"                        depth=NUM  最大搜尋深度;0=自動(預設)"
+
+#: src/xz/message.c:1209
+msgid ""
+"\n"
+"  --x86[=OPTS]        x86 BCJ filter (32-bit and 64-bit)\n"
+"  --powerpc[=OPTS]    PowerPC BCJ filter (big endian only)\n"
+"  --ia64[=OPTS]       IA-64 (Itanium) BCJ filter\n"
+"  --arm[=OPTS]        ARM BCJ filter (little endian only)\n"
+"  --armthumb[=OPTS]   ARM-Thumb BCJ filter (little endian only)\n"
+"  --sparc[=OPTS]      SPARC BCJ filter\n"
+"                      Valid OPTS for all BCJ filters:\n"
+"                        start=NUM  start offset for conversions (default=0)"
+msgstr ""
+"\n"
+"  --x86[=OPTS]        x86 BCJ 篩選器 (32 位元和 64 位元)\n"
+"  --powerpc[=OPTS]    PowerPC BCJ 篩選器(僅大端序)\n"
+"  --ia64[=OPTS]       IA-64 (Itanium) BCJ 篩選器\n"
+"  --arm[=OPTS]        ARM BCJ 篩選器(僅小端序)\n"
+"  --armthumb[=OPTS]   ARM-Thumb BCJ 篩選器(僅小端序)\n"
+"  --sparc[=OPTS]      SPARC BCJ 篩選器\n"
+"                      所有 BCJ 篩選器可用的 OPTS:\n"
+"                        start=NUM  轉換起始位移(預設值=0)"
+
+#: src/xz/message.c:1221
+msgid ""
+"\n"
+"  --delta[=OPTS]      Delta filter; valid OPTS (valid values; default):\n"
+"                        dist=NUM   distance between bytes being subtracted\n"
+"                                   from each other (1-256; 1)"
+msgstr ""
+
+#: src/xz/message.c:1229
+msgid ""
+"\n"
+" Other options:\n"
+msgstr ""
+"\n"
+" 其他選項:\n"
+
+#: src/xz/message.c:1232
+msgid ""
+"  -q, --quiet         suppress warnings; specify twice to suppress errors too\n"
+"  -v, --verbose       be verbose; specify twice for even more verbose"
+msgstr ""
+"  -q, --quiet         隱藏警告訊息;指定兩次也一併隱藏錯誤訊息\n"
+"  -v, --verbose       輸出較詳細內容;指定兩次更詳細輸出"
+
+#: src/xz/message.c:1237
+msgid "  -Q, --no-warn       make warnings not affect the exit status"
+msgstr "  -Q, --no-warn       即使有警告,退出狀態碼仍不變"
+
+#: src/xz/message.c:1239
+msgid "      --robot         use machine-parsable messages (useful for scripts)"
+msgstr "      --robot         使用機器可解析訊息(適合用於指令稿)"
+
+#: src/xz/message.c:1242
+msgid ""
+"      --info-memory   display the total amount of RAM and the currently active\n"
+"                      memory usage limits, and exit"
+msgstr "      --info-memory   顯示記憶體總量和使用中的記憶體用量限制後退出"
+
+#: src/xz/message.c:1245
+msgid ""
+"  -h, --help          display the short help (lists only the basic options)\n"
+"  -H, --long-help     display this long help and exit"
+msgstr ""
+"  -h, --help          顯示較短說明(僅列出基本選項)\n"
+"  -H, --long-help     顯示較長說明後退出"
+
+#: src/xz/message.c:1249
+msgid ""
+"  -h, --help          display this short help and exit\n"
+"  -H, --long-help     display the long help (lists also the advanced options)"
+msgstr ""
+"  -h, --help          顯示較短說明後退出\n"
+"  -H, --long-help     顯示較長說明(也列出進階選項)"
+
+#: src/xz/message.c:1254
+msgid "  -V, --version       display the version number and exit"
+msgstr "  -V, --version       顯示版本號碼後退出"
+
+#: src/xz/message.c:1256
+msgid ""
+"\n"
+"With no FILE, or when FILE is -, read standard input.\n"
+msgstr ""
+"\n"
+"如果未指定 <檔案>,或 <檔案> 是 -,則從標準輸入讀取。\n"
+
+#. TRANSLATORS: This message indicates the bug reporting address
+#. for this package. Please add _another line_ saying
+#. "Report translation bugs to <...>\n" with the email or WWW
+#. address for translation bugs. Thanks.
+#: src/xz/message.c:1262
+#, c-format
+msgid "Report bugs to <%s> (in English or Finnish).\n"
+msgstr "請回報臭蟲至 <%s>(使用英文或芬蘭語)。\n"
+
+#: src/xz/message.c:1264
+#, c-format
+msgid "%s home page: <%s>\n"
+msgstr "%s 首頁:<%s>\n"
+
+#: src/xz/message.c:1268
+msgid "THIS IS A DEVELOPMENT VERSION NOT INTENDED FOR PRODUCTION USE."
+msgstr "此為開發版本,不打算在生產環境使用。"
+
+#: src/xz/options.c:86
+#, c-format
+msgid "%s: Options must be `name=value' pairs separated with commas"
+msgstr "%s:選項形式必須為以逗號分隔的「name=value」值對"
+
+#: src/xz/options.c:93
+#, c-format
+msgid "%s: Invalid option name"
+msgstr "%s:選項名稱無效"
+
+#: src/xz/options.c:113
+#, c-format
+msgid "%s: Invalid option value"
+msgstr "%s:選項值無效"
+
+#: src/xz/options.c:247
+#, c-format
+msgid "Unsupported LZMA1/LZMA2 preset: %s"
+msgstr "不支援的 LZMA1/LZMA2 設定檔:%s"
+
+#: src/xz/options.c:355
+msgid "The sum of lc and lp must not exceed 4"
+msgstr "lc 和 lp 的總和不能超過 4"
+
+#: src/xz/options.c:359
+#, c-format
+msgid "The selected match finder requires at least nice=%<PRIu32>"
+msgstr "選取的符合搜尋工具需要至少 nice=%<PRIu32>"
+
+#: src/xz/suffix.c:133 src/xz/suffix.c:258
+#, c-format
+msgid "%s: With --format=raw, --suffix=.SUF is required unless writing to stdout"
+msgstr "%s:搭配 --format=raw 時,除非寫入標準輸出,否則需要 --suffix=.SUF"
+
+#: src/xz/suffix.c:164
+#, c-format
+msgid "%s: Filename has an unknown suffix, skipping"
+msgstr "%s:檔名有未知後綴,跳過"
+
+#: src/xz/suffix.c:185
+#, c-format
+msgid "%s: File already has `%s' suffix, skipping"
+msgstr "%s:檔案已有「%s」後綴,跳過"
+
+#: src/xz/suffix.c:393
+#, c-format
+msgid "%s: Invalid filename suffix"
+msgstr "%s:檔名後綴無效"
+
+#: src/xz/util.c:71
+#, c-format
+msgid "%s: Value is not a non-negative decimal integer"
+msgstr "%s:數值不是非負數十進位整數"
+
+#: src/xz/util.c:113
+#, c-format
+msgid "%s: Invalid multiplier suffix"
+msgstr "%s:乘數後綴無效"
+
+#: src/xz/util.c:115
+msgid "Valid suffixes are `KiB' (2^10), `MiB' (2^20), and `GiB' (2^30)."
+msgstr "有效的後綴有「KiB」(2^10)、「MiB」(2^20) 及「GiB」(2^30)。"
+
+#: src/xz/util.c:132
+#, c-format
+msgid "Value of the option `%s' must be in the range [%<PRIu64>, %<PRIu64>]"
+msgstr "選項「%s」的數值必須在 [%<PRIu64>, %<PRIu64>] 範圍內"
+
+#: src/xz/util.c:267
+msgid "Empty filename, skipping"
+msgstr "空檔名,跳過"
+
+#: src/xz/util.c:281
+msgid "Compressed data cannot be read from a terminal"
+msgstr "不能從終端機讀入已壓縮資料"
+
+#: src/xz/util.c:294
+msgid "Compressed data cannot be written to a terminal"
+msgstr "不能將已壓縮資料寫入終端機"
+
+#: src/common/tuklib_exit.c:40
+msgid "Writing to standard output failed"
+msgstr "寫入標準輸出失敗"
+
+#: src/common/tuklib_exit.c:43
+msgid "Unknown error"
+msgstr "未知錯誤"
+
+#~ msgid "Sandbox is disabled due to incompatible command line arguments"
+#~ msgstr "由於指定不相容的指令列參數,已停用沙盒"
+
+#~ msgid "Sandbox was successfully enabled"
+#~ msgstr "已成功啟用沙盒"
diff --git a/po4a/.gitignore b/po4a/.gitignore
new file mode 100644 (file)
index 0000000..5bcfa04
--- /dev/null
@@ -0,0 +1,2 @@
+/man
+/xz-man.pot
diff --git a/po4a/de.po b/po4a/de.po
new file mode 100644 (file)
index 0000000..5c07ae0
--- /dev/null
@@ -0,0 +1,5559 @@
+# XZ Utils man pages German translation
+# This file is put in the public domain.
+#
+# Mario Blättermann <mario.blaettermann@gmail.com>, 2015, 2019-2020.
+msgid ""
+msgstr ""
+"Project-Id-Version: xz 5.2.5\n"
+"Report-Msgid-Bugs-To: lasse.collin@tukaani.org\n"
+"POT-Creation-Date: 2020-03-17 16:29+0200\n"
+"PO-Revision-Date: 2020-02-14 18:40+0100\n"
+"Last-Translator: Mario Blättermann <mario.blaettermann@gmail.com>\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"
+"X-Bugs: Report translation errors to the Language-Team address.\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+"X-Generator: Lokalize 19.12.2\n"
+
+#. type: TH
+#: ../src/xz/xz.1:8
+#, no-wrap
+msgid "XZ"
+msgstr "XZ"
+
+#. type: TH
+#: ../src/xz/xz.1:8
+#, no-wrap
+msgid "2020-02-01"
+msgstr "1. Februar 2020"
+
+#. type: TH
+#: ../src/xz/xz.1:8 ../src/xzdec/xzdec.1:7 ../src/lzmainfo/lzmainfo.1:7
+#: ../src/scripts/xzdiff.1:9 ../src/scripts/xzgrep.1:9
+#: ../src/scripts/xzless.1:10 ../src/scripts/xzmore.1:7
+#, no-wrap
+msgid "Tukaani"
+msgstr "Tukaani"
+
+#. type: TH
+#: ../src/xz/xz.1:8 ../src/xzdec/xzdec.1:7 ../src/lzmainfo/lzmainfo.1:7
+#: ../src/scripts/xzdiff.1:9 ../src/scripts/xzgrep.1:9
+#: ../src/scripts/xzless.1:10 ../src/scripts/xzmore.1:7
+#, no-wrap
+msgid "XZ Utils"
+msgstr "XZ-Dienstprogramme"
+
+#. type: SH
+#: ../src/xz/xz.1:10 ../src/xzdec/xzdec.1:8 ../src/lzmainfo/lzmainfo.1:8
+#: ../src/scripts/xzdiff.1:10 ../src/scripts/xzgrep.1:10
+#: ../src/scripts/xzless.1:11 ../src/scripts/xzmore.1:8
+#, no-wrap
+msgid "NAME"
+msgstr "BEZEICHNUNG"
+
+#. type: Plain text
+#: ../src/xz/xz.1:12
+msgid ""
+"xz, unxz, xzcat, lzma, unlzma, lzcat - Compress or decompress .xz and .lzma "
+"files"
+msgstr ""
+"xz, unxz, xzcat, lzma, unlzma, lzcat - .xz- und .lzma-Dateien komprimieren "
+"oder dekomprimieren"
+
+#. type: SH
+#: ../src/xz/xz.1:13 ../src/xzdec/xzdec.1:10 ../src/lzmainfo/lzmainfo.1:10
+#: ../src/scripts/xzdiff.1:12 ../src/scripts/xzgrep.1:12
+#: ../src/scripts/xzless.1:13 ../src/scripts/xzmore.1:10
+#, no-wrap
+msgid "SYNOPSIS"
+msgstr "ÜBERSICHT"
+
+#. type: Plain text
+#: ../src/xz/xz.1:17
+msgid "B<xz> [I<option...>] [I<file...>]"
+msgstr "B<xz> [I<Option…>] [I<Datei…>]"
+
+#. type: SH
+#: ../src/xz/xz.1:18
+#, no-wrap
+msgid "COMMAND ALIASES"
+msgstr "BEFEHLSALIASE"
+
+#. type: Plain text
+#: ../src/xz/xz.1:22
+msgid "B<unxz> is equivalent to B<xz --decompress>."
+msgstr "B<unxz> ist gleichbedeutend mit B<xz --decompress>."
+
+#. type: Plain text
+#: ../src/xz/xz.1:26
+msgid "B<xzcat> is equivalent to B<xz --decompress --stdout>."
+msgstr "B<xzcat> ist gleichbedeutend mit B<xz --decompress --stdout>."
+
+#. type: Plain text
+#: ../src/xz/xz.1:30
+msgid "B<lzma> is equivalent to B<xz --format=lzma>."
+msgstr "B<lzma> ist gleichbedeutend mit B<xz --format=lzma>."
+
+#. type: Plain text
+#: ../src/xz/xz.1:34
+msgid "B<unlzma> is equivalent to B<xz --format=lzma --decompress>."
+msgstr "B<unlzma> ist gleichbedeutend mit B<xz --format=lzma --decompress>."
+
+#. type: Plain text
+#: ../src/xz/xz.1:38
+msgid "B<lzcat> is equivalent to B<xz --format=lzma --decompress --stdout>."
+msgstr ""
+"B<lzcat> ist gleichbedeutend mit B<xz --format=lzma --decompress --stdout>."
+
+#. type: Plain text
+#: ../src/xz/xz.1:50
+msgid ""
+"When writing scripts that need to decompress files, it is recommended to "
+"always use the name B<xz> with appropriate arguments (B<xz -d> or B<xz -"
+"dc>)  instead of the names B<unxz> and B<xzcat>."
+msgstr ""
+"Wenn Sie Skripte schreiben, die Dateien dekomprimieren, sollten Sie stets "
+"den Namen B<xz> mit den entsprechenden Argumenten (B<xz -d> oder B<xz -dc>) "
+"anstelle der Namen B<unxz> und B<xzcat> verwenden."
+
+#. type: SH
+#: ../src/xz/xz.1:51 ../src/xzdec/xzdec.1:18 ../src/lzmainfo/lzmainfo.1:15
+#: ../src/scripts/xzdiff.1:24 ../src/scripts/xzgrep.1:33
+#: ../src/scripts/xzless.1:19 ../src/scripts/xzmore.1:16
+#, no-wrap
+msgid "DESCRIPTION"
+msgstr "BESCHREIBUNG"
+
+#. type: Plain text
+#: ../src/xz/xz.1:65
+msgid ""
+"B<xz> is a general-purpose data compression tool with command line syntax "
+"similar to B<gzip>(1)  and B<bzip2>(1).  The native file format is the B<."
+"xz> format, but the legacy B<.lzma> format used by LZMA Utils and raw "
+"compressed streams with no container format headers are also supported."
+msgstr ""
+"B<xz> ist ein Allzweckwerkzeug zur Datenkompression, dessen "
+"Befehlszeilensyntax denen von B<gzip>(1) und B<bzip2>(1) ähnelt. Das native "
+"Dateiformat ist das B<.xz>-Format, aber das veraltete, von den LZMA-"
+"Dienstprogrammen verwendete Format sowie komprimierte Rohdatenströme ohne "
+"Containerformat-Header werden ebenfalls unterstützt."
+
+#. type: Plain text
+#: ../src/xz/xz.1:87
+msgid ""
+"B<xz> compresses or decompresses each I<file> according to the selected "
+"operation mode.  If no I<files> are given or I<file> is B<->, B<xz> reads "
+"from standard input and writes the processed data to standard output.  B<xz> "
+"will refuse (display an error and skip the I<file>)  to write compressed "
+"data to standard output if it is a terminal.  Similarly, B<xz> will refuse "
+"to read compressed data from standard input if it is a terminal."
+msgstr ""
+"B<xz> komprimiert oder dekomprimierte jede I<Datei> entsprechend des "
+"gewählten Vorgangsmodus. Falls entweder B<-> oder keine Datei angegeben ist, "
+"liest B<xz> aus der Standardeingabe und leitet die verarbeiteten Dateien in "
+"die Standardausgabe. Wenn die Standardausgabe kein Terminal ist, verweigert "
+"B<xz> das Schreiben komprimierter Daten in die Standardausgabe. Dabei wird "
+"eine Fehlermeldung angezeigt und die I<Datei> übersprungen. Ebenso "
+"verweigert B<xz> das Lesen komprimierter Daten aus der Standardeingabe, wenn "
+"diese ein Terminal ist."
+
+#. type: Plain text
+#: ../src/xz/xz.1:97
+msgid ""
+"Unless B<--stdout> is specified, I<files> other than B<-> are written to a "
+"new file whose name is derived from the source I<file> name:"
+msgstr ""
+"I<Dateien>, die nicht als B<-> angegeben sind, werden in eine neue Datei "
+"geschrieben, deren Name aus den Namen der Quell-I<Datei> abgeleitet wird "
+"(außer wenn B<--stdout> angegeben ist):"
+
+#. type: IP
+#: ../src/xz/xz.1:97 ../src/xz/xz.1:103 ../src/xz/xz.1:127 ../src/xz/xz.1:132
+#: ../src/xz/xz.1:135 ../src/xz/xz.1:138 ../src/xz/xz.1:154 ../src/xz/xz.1:395
+#: ../src/xz/xz.1:398 ../src/xz/xz.1:405 ../src/xz/xz.1:621 ../src/xz/xz.1:623
+#: ../src/xz/xz.1:722 ../src/xz/xz.1:733 ../src/xz/xz.1:742 ../src/xz/xz.1:750
+#: ../src/xz/xz.1:965 ../src/xz/xz.1:974 ../src/xz/xz.1:986 ../src/xz/xz.1:1552
+#: ../src/xz/xz.1:1558 ../src/xz/xz.1:1674 ../src/xz/xz.1:1678
+#: ../src/xz/xz.1:1681 ../src/xz/xz.1:1684 ../src/xz/xz.1:1688
+#: ../src/xz/xz.1:1695 ../src/xz/xz.1:1697
+#, no-wrap
+msgid "\\(bu"
+msgstr "\\(bu"
+
+#. type: Plain text
+#: ../src/xz/xz.1:103
+msgid ""
+"When compressing, the suffix of the target file format (B<.xz> or B<.lzma>)  "
+"is appended to the source filename to get the target filename."
+msgstr ""
+"Bei der Kompression wird das Suffix des Formats der Zieldatei (B<.xz> oder "
+"B<.lzma>) an den Namen der Quelldatei angehängt und so der Name der "
+"Zieldatei gebildet."
+
+#. type: Plain text
+#: ../src/xz/xz.1:117
+msgid ""
+"When decompressing, the B<.xz> or B<.lzma> suffix is removed from the "
+"filename to get the target filename.  B<xz> also recognizes the suffixes B<."
+"txz> and B<.tlz>, and replaces them with the B<.tar> suffix."
+msgstr ""
+"Bei der Dekompression wird das Suffix B<.xz> oder B<.lzma> vom Dateinamen "
+"entfernt und so der Name der Zieldatei gebildet. Außerdem erkennt B<xz> die "
+"Suffixe B<.txz> und B<.tlz> und ersetzt diese durch B<.tar>."
+
+#. type: Plain text
+#: ../src/xz/xz.1:121
+msgid ""
+"If the target file already exists, an error is displayed and the I<file> is "
+"skipped."
+msgstr ""
+"Wenn die Zieldatei bereits existiert, wird eine Fehlermeldung angezeigt und "
+"die I<Datei> übersprungen."
+
+#. type: Plain text
+#: ../src/xz/xz.1:127
+msgid ""
+"Unless writing to standard output, B<xz> will display a warning and skip the "
+"I<file> if any of the following applies:"
+msgstr ""
+"Außer beim Schreiben in die Standardausgabe zeigt B<xz> eine Warnung an und "
+"überspringt die I<Datei>, wenn eine der folgenden Bedingungen zutreffend ist:"
+
+#. type: Plain text
+#: ../src/xz/xz.1:132
+msgid ""
+"I<File> is not a regular file.  Symbolic links are not followed, and thus "
+"they are not considered to be regular files."
+msgstr ""
+"Die I<Datei> ist keine reguläre Datei. Symbolischen Verknüpfungen wird nicht "
+"gefolgt und daher nicht zu den regulären Dateien gezählt."
+
+#. type: Plain text
+#: ../src/xz/xz.1:135
+msgid "I<File> has more than one hard link."
+msgstr "Die I<Datei> hat mehr als eine harte Verknüpfung."
+
+#. type: Plain text
+#: ../src/xz/xz.1:138
+msgid "I<File> has setuid, setgid, or sticky bit set."
+msgstr ""
+"Für die I<Datei> ist das »setuid«-, »setgid«- oder »sticky«-Bit gesetzt."
+
+#. type: Plain text
+#: ../src/xz/xz.1:154
+msgid ""
+"The operation mode is set to compress and the I<file> already has a suffix "
+"of the target file format (B<.xz> or B<.txz> when compressing to the B<.xz> "
+"format, and B<.lzma> or B<.tlz> when compressing to the B<.lzma> format)."
+msgstr ""
+"Der Aktionsmodus wird auf Kompression gesetzt und die I<Datei> hat bereits "
+"das Suffix des Zieldateiformats (B<.xz> oder B<.txz> beim Komprimieren in "
+"das B<.xz>-Format und B<.lzma> oder B<.tlz> beim Komprimieren in das B<."
+"lzma>-Format)."
+
+#. type: Plain text
+#: ../src/xz/xz.1:163
+msgid ""
+"The operation mode is set to decompress and the I<file> doesn't have a "
+"suffix of any of the supported file formats (B<.xz>, B<.txz>, B<.lzma>, or "
+"B<.tlz>)."
+msgstr ""
+"Der Aktionsmodus wird auf Dekompression gesetzt und die I<Datei> hat nicht "
+"das Suffix eines der unterstützten Zieldateiformate (B<.xz>, B<.txz>, B<."
+"lzma> oder B<.tlz>)."
+
+#. type: Plain text
+#: ../src/xz/xz.1:178
+msgid ""
+"After successfully compressing or decompressing the I<file>, B<xz> copies "
+"the owner, group, permissions, access time, and modification time from the "
+"source I<file> to the target file.  If copying the group fails, the "
+"permissions are modified so that the target file doesn't become accessible "
+"to users who didn't have permission to access the source I<file>.  B<xz> "
+"doesn't support copying other metadata like access control lists or extended "
+"attributes yet."
+msgstr ""
+"Nach erfolgreicher Kompression oder Dekompression der I<Datei> kopiert B<xz> "
+"Eigentümer, Gruppe, Zugriffsrechte, Zugriffszeit und Änderungszeit aus der "
+"Ursprungs-I<Datei> in die Zieldatei. Sollte das Kopieren der Gruppe "
+"fehlschlagen, werden die Zugriffsrechte so angepasst, dass jenen Benutzern "
+"der Zugriff auf die Zieldatei verwehrt bleibt, die auch keinen Zugriff auf "
+"die Ursprungs-I<Datei> hatten. Das Kopieren anderer Metadaten wie "
+"Zugriffssteuerlisten oder erweiterter Attribute wird von B<xz> noch nicht "
+"unterstützt."
+
+#. type: Plain text
+#: ../src/xz/xz.1:187
+msgid ""
+"Once the target file has been successfully closed, the source I<file> is "
+"removed unless B<--keep> was specified.  The source I<file> is never removed "
+"if the output is written to standard output."
+msgstr ""
+"Sobald die Zieldatei erfolgreich geschlossen wurde, wird die Ursprungs-"
+"I<Datei> entfernt. Dies wird durch die Option B<--keep> verhindert. Die "
+"Ursprungs-I<Datei> wird niemals entfernt, wenn die Ausgabe in die "
+"Standardausgabe geschrieben wird."
+
+#. type: Plain text
+#: ../src/xz/xz.1:199
+msgid ""
+"Sending B<SIGINFO> or B<SIGUSR1> to the B<xz> process makes it print "
+"progress information to standard error.  This has only limited use since "
+"when standard error is a terminal, using B<--verbose> will display an "
+"automatically updating progress indicator."
+msgstr ""
+"Durch Senden der Signale B<SIGINFO> oder B<SIGUSR1> an den B<xz>-Prozess "
+"werden Fortschrittsinformationen in den Fehlerkanal der Standardausgabe "
+"geleitet. Dies ist nur eingeschränkt hilfreich, wenn die "
+"Standardfehlerausgabe ein Terminal ist. Mittels B<--verbose> wird ein "
+"automatisch aktualisierter Fortschrittsanzeiger angezeigt."
+
+#. type: SS
+#: ../src/xz/xz.1:200
+#, no-wrap
+msgid "Memory usage"
+msgstr "Speicherbedarf"
+
+#. type: Plain text
+#: ../src/xz/xz.1:216
+msgid ""
+"The memory usage of B<xz> varies from a few hundred kilobytes to several "
+"gigabytes depending on the compression settings.  The settings used when "
+"compressing a file determine the memory requirements of the decompressor.  "
+"Typically the decompressor needs 5\\ % to 20\\ % of the amount of memory "
+"that the compressor needed when creating the file.  For example, "
+"decompressing a file created with B<xz -9> currently requires 65\\ MiB of "
+"memory.  Still, it is possible to have B<.xz> files that require several "
+"gigabytes of memory to decompress."
+msgstr ""
+"In Abhängigkeit von den gewählten Kompressionseinstellungen bewegt sich der "
+"Speicherverbrauch zwischen wenigen hundert Kilobyte und mehrere Gigabyte. "
+"Die Einstellungen bei der Kompression einer Datei bestimmen dabei den "
+"Speicherbedarf bei der Dekompression. Die Dekompression benötigt "
+"üblicherweise zwischen 5\\ % und 20\\ % des Speichers, der bei der "
+"Kompression der Datei erforderlich war. Beispielsweise benötigt die "
+"Dekompression einer Datei, die mit B<xz -9> komprimiert wurde, gegenwärtig "
+"etwa 65\\ MiB Speicher. Es ist jedoch auch möglich, dass B<.xz>-Dateien "
+"mehrere Gigabyte an Speicher zur Dekompression erfordern."
+
+# cripple → lahmlegen...? War mir hier zu sehr Straßenslang.
+#. type: Plain text
+#: ../src/xz/xz.1:228
+msgid ""
+"Especially users of older systems may find the possibility of very large "
+"memory usage annoying.  To prevent uncomfortable surprises, B<xz> has a "
+"built-in memory usage limiter, which is disabled by default.  While some "
+"operating systems provide ways to limit the memory usage of processes, "
+"relying on it wasn't deemed to be flexible enough (e.g. using B<ulimit>(1)  "
+"to limit virtual memory tends to cripple B<mmap>(2))."
+msgstr ""
+"Insbesondere für Benutzer älterer Systeme wird eventuell ein sehr großer "
+"Speicherbedarf ärgerlich sein. Um unangenehme Überraschungen zu vermeiden, "
+"verfügt B<xz> über eine eingebaute Begrenzung des Speicherbedarfs, die "
+"allerdings in der Voreinstellung deaktiviert ist. Zwar verfügen einige "
+"Betriebssysteme über eingebaute Möglichkeiten zur prozessabhängigen "
+"Speicherbegrenzung, doch diese sind zu unflexibel (zum Beispiel kann "
+"B<ulimit>(1) beim Begrenzen des virtuellen Speichers B<mmap>(2) "
+"beeinträchtigen)."
+
+#. type: Plain text
+#: ../src/xz/xz.1:248
+msgid ""
+"The memory usage limiter can be enabled with the command line option B<--"
+"memlimit=>I<limit>.  Often it is more convenient to enable the limiter by "
+"default by setting the environment variable B<XZ_DEFAULTS>, e.g.\\& "
+"B<XZ_DEFAULTS=--memlimit=150MiB>.  It is possible to set the limits "
+"separately for compression and decompression by using B<--memlimit-"
+"compress=>I<limit> and B<--memlimit-decompress=>I<limit>.  Using these two "
+"options outside B<XZ_DEFAULTS> is rarely useful because a single run of "
+"B<xz> cannot do both compression and decompression and B<--"
+"memlimit=>I<limit> (or B<-M> I<limit>)  is shorter to type on the command "
+"line."
+msgstr ""
+"Die Begrenzung des Speicherbedarfs kann mit der Befehlszeilenoption B<--"
+"memlimit=>I<Begrenzung> aktiviert werden. Oft ist es jedoch bequemer, die "
+"Begrenzung durch Setzen der Umgebungsvariable B<XZ_DEFAULTS> standardmäßig "
+"zu aktivieren, zum Beispiel B<XZ_DEFAULTS=--memlimit=150MiB>. Die "
+"Begrenzungen können getrennt für Kompression und Dekompression mittels B<--"
+"memlimit-compress=>I<Begrenzung> und B<--memlimit-decompress=>I<Begrenzung> "
+"festgelegt werden. Die Verwendung einer solchen Option außerhalb der "
+"Variable B<XZ_DEFAULTS> ist kaum sinnvoll, da B<xz> in einer einzelnen "
+"Aktion nicht gleichzeitig Kompression und Dekompression ausführen kann und "
+"B<--memlimit=>I<Begrenzung> (oder B<-M> I<Begrenzung>) lässt sich einfacher "
+"in der Befehlszeile eingeben."
+
+#. type: Plain text
+#: ../src/xz/xz.1:265
+msgid ""
+"If the specified memory usage limit is exceeded when decompressing, B<xz> "
+"will display an error and decompressing the file will fail.  If the limit is "
+"exceeded when compressing, B<xz> will try to scale the settings down so that "
+"the limit is no longer exceeded (except when using B<--format=raw> or B<--no-"
+"adjust>).  This way the operation won't fail unless the limit is very "
+"small.  The scaling of the settings is done in steps that don't match the "
+"compression level presets, e.g. if the limit is only slightly less than the "
+"amount required for B<xz -9>, the settings will be scaled down only a "
+"little, not all the way down to B<xz -8>."
+msgstr ""
+"Wenn die angegebene Speicherbegrenzung bei der Dekompression überschritten "
+"wird, schlägt der Vorgang fehl und B<xz> zeigt eine Fehlermeldung an. Wird "
+"die Begrenzung bei der Kompression überschritten, dann versucht B<xz> die "
+"Einstellungen entsprechend anzupassen, außer wenn B<--format=raw> oder B<--"
+"no-adjust> angegeben ist. Auf diese Weise schlägt die Aktion nicht fehl, es "
+"sei denn, die Begrenzung wurde sehr niedrig angesetzt. Die Anpassung der "
+"Einstellungen wird schrittweise vorgenommen, allerdings entsprechen die "
+"Schritte nicht den Voreinstellungen der Kompressionsstufen. Das bedeutet, "
+"wenn beispielsweise die Begrenzung nur geringfügig unter den Anforderungen "
+"für B<xz -9> liegt, werden auch die Einstellungen nur wenig angepasst und "
+"nicht vollständig herunter zu den Werten für B<xz -8>"
+
+#. type: SS
+#: ../src/xz/xz.1:266
+#, no-wrap
+msgid "Concatenation and padding with .xz files"
+msgstr "Verkettung und Auffüllung von .xz-Dateien"
+
+#. type: Plain text
+#: ../src/xz/xz.1:274
+msgid ""
+"It is possible to concatenate B<.xz> files as is.  B<xz> will decompress "
+"such files as if they were a single B<.xz> file."
+msgstr ""
+"Es ist möglich, B<.xz>-Dateien direkt zu verketten. Solche Dateien werden "
+"von B<xz> genauso dekomprimiert wie eine einzelne B<.xz>-Datei."
+
+#. type: Plain text
+#: ../src/xz/xz.1:283
+msgid ""
+"It is possible to insert padding between the concatenated parts or after the "
+"last part.  The padding must consist of null bytes and the size of the "
+"padding must be a multiple of four bytes.  This can be useful e.g. if the B<."
+"xz> file is stored on a medium that measures file sizes in 512-byte blocks."
+msgstr ""
+"Es ist weiterhin möglich, eine Auffüllung zwischen den verketteten Teilen "
+"oder nach dem letzten Teil einzufügen. Die Auffüllung muss aus Null-Bytes "
+"bestehen und deren Größe muss ein Vielfaches von vier Byte sein. Dies kann "
+"zum Beispiel dann vorteilhaft sein, wenn die B<.xz>-Datei auf einem "
+"Datenträger gespeichert wird, dessen Dateisystem die Dateigrößen in 512-Byte-"
+"Blöcken speichert."
+
+#. type: Plain text
+#: ../src/xz/xz.1:287
+msgid ""
+"Concatenation and padding are not allowed with B<.lzma> files or raw streams."
+msgstr ""
+"Verkettung und Auffüllung sind für B<.lzma>-Dateien oder Rohdatenströme "
+"nicht erlaubt."
+
+#. type: SH
+#: ../src/xz/xz.1:288 ../src/xzdec/xzdec.1:61
+#, no-wrap
+msgid "OPTIONS"
+msgstr "OPTIONEN"
+
+#. type: SS
+#: ../src/xz/xz.1:290
+#, no-wrap
+msgid "Integer suffixes and special values"
+msgstr "Ganzzahlige Suffixe und spezielle Werte"
+
+#. type: Plain text
+#: ../src/xz/xz.1:294
+msgid ""
+"In most places where an integer argument is expected, an optional suffix is "
+"supported to easily indicate large integers.  There must be no space between "
+"the integer and the suffix."
+msgstr ""
+"An den meisten Stellen, wo ein ganzzahliges Argument akzeptiert wird, kann "
+"ein optionales Suffix große Ganzzahlwerte einfacher darstellen. Zwischen "
+"Ganzzahl und dem Suffix dürfen sich keine Leerzeichen befinden."
+
+#. type: TP
+#: ../src/xz/xz.1:294
+#, no-wrap
+msgid "B<KiB>"
+msgstr "B<KiB>"
+
+#. type: Plain text
+#: ../src/xz/xz.1:305
+msgid ""
+"Multiply the integer by 1,024 (2^10).  B<Ki>, B<k>, B<kB>, B<K>, and B<KB> "
+"are accepted as synonyms for B<KiB>."
+msgstr ""
+"multipliziert die Ganzzahl mit 1.024 (2^10). B<Ki>, B<k>, B<kB>, B<K> und "
+"B<KB> werden als Synonyme für B<KiB> akzeptiert."
+
+#. type: TP
+#: ../src/xz/xz.1:305
+#, no-wrap
+msgid "B<MiB>"
+msgstr "B<MiB>"
+
+#. type: Plain text
+#: ../src/xz/xz.1:315
+msgid ""
+"Multiply the integer by 1,048,576 (2^20).  B<Mi>, B<m>, B<M>, and B<MB> are "
+"accepted as synonyms for B<MiB>."
+msgstr ""
+"multipliziert die Ganzzahl mit 1.048.576 (2^20). B<Mi>, B<m>, B<M> und B<MB> "
+"werden als Synonyme für B<MiB> akzeptiert."
+
+#. type: TP
+#: ../src/xz/xz.1:315
+#, no-wrap
+msgid "B<GiB>"
+msgstr "B<GiB>"
+
+#. type: Plain text
+#: ../src/xz/xz.1:325
+msgid ""
+"Multiply the integer by 1,073,741,824 (2^30).  B<Gi>, B<g>, B<G>, and B<GB> "
+"are accepted as synonyms for B<GiB>."
+msgstr ""
+"multipliziert die Ganzzahl mit 1.073.741.824 (2^30). B<Gi>, B<g>, B<G> und "
+"B<GB> werden als Synonyme für B<GiB> akzeptiert."
+
+#. type: Plain text
+#: ../src/xz/xz.1:330
+msgid ""
+"The special value B<max> can be used to indicate the maximum integer value "
+"supported by the option."
+msgstr ""
+"Der spezielle Wert B<max> kann dazu verwendet werden, um den von der "
+"jeweiligen Option akzeptierten maximalen Ganzzahlwert anzugeben."
+
+#. type: SS
+#: ../src/xz/xz.1:331
+#, no-wrap
+msgid "Operation mode"
+msgstr "Aktionsmodus"
+
+#. type: Plain text
+#: ../src/xz/xz.1:334
+msgid ""
+"If multiple operation mode options are given, the last one takes effect."
+msgstr ""
+"Falls mehrere Aktionsmodi angegeben sind, wird der zuletzt angegebene "
+"verwendet."
+
+#. type: TP
+#: ../src/xz/xz.1:334
+#, no-wrap
+msgid "B<-z>, B<--compress>"
+msgstr "B<-z>, B<--compress>"
+
+#. type: Plain text
+#: ../src/xz/xz.1:343
+msgid ""
+"Compress.  This is the default operation mode when no operation mode option "
+"is specified and no other operation mode is implied from the command name "
+"(for example, B<unxz> implies B<--decompress>)."
+msgstr ""
+"Kompression. Dies ist der voreingestellte Aktionsmodus, sofern keiner "
+"angegeben ist und auch kein bestimmter Modus aus dem Befehlsnamen abgeleitet "
+"werden kann (der Befehl B<unxz> impliziert zum Beispiel B<--decompress>)."
+
+#. type: TP
+#: ../src/xz/xz.1:343 ../src/xzdec/xzdec.1:62
+#, no-wrap
+msgid "B<-d>, B<--decompress>, B<--uncompress>"
+msgstr "B<-d>, B<--decompress>, B<--uncompress>"
+
+#. type: Plain text
+#: ../src/xz/xz.1:346
+msgid "Decompress."
+msgstr "dekomprimpiert."
+
+#. type: TP
+#: ../src/xz/xz.1:346
+#, no-wrap
+msgid "B<-t>, B<--test>"
+msgstr "B<-t>, B<--test>"
+
+#. type: Plain text
+#: ../src/xz/xz.1:355
+msgid ""
+"Test the integrity of compressed I<files>.  This option is equivalent to B<--"
+"decompress --stdout> except that the decompressed data is discarded instead "
+"of being written to standard output.  No files are created or removed."
+msgstr ""
+"prüft die Integrität der komprimierten I<Dateien>. Diese Option ist "
+"gleichbedeutend mit B<--decompress --stdout>, außer dass die dekomprimierten "
+"Daten verworfen werden, anstatt sie in die Standardausgabe zu leiten. Es "
+"werden keine Dateien erstellt oder entfernt."
+
+#. type: TP
+#: ../src/xz/xz.1:355
+#, no-wrap
+msgid "B<-l>, B<--list>"
+msgstr "B<-l>, B<--list>"
+
+#. type: Plain text
+#: ../src/xz/xz.1:364
+msgid ""
+"Print information about compressed I<files>.  No uncompressed output is "
+"produced, and no files are created or removed.  In list mode, the program "
+"cannot read the compressed data from standard input or from other unseekable "
+"sources."
+msgstr ""
+"gibt Informationen zu den komprimierten I<Dateien> aus. Es werden keine "
+"unkomprimierten Dateien ausgegeben und keine Dateien angelegt oder entfernt. "
+"Im Listenmodus kann das Programm keine komprimierten Daten aus der "
+"Standardeingabe oder anderen nicht durchsuchbaren Quellen lesen."
+
+#. type: Plain text
+#: ../src/xz/xz.1:379
+msgid ""
+"The default listing shows basic information about I<files>, one file per "
+"line.  To get more detailed information, use also the B<--verbose> option.  "
+"For even more information, use B<--verbose> twice, but note that this may be "
+"slow, because getting all the extra information requires many seeks.  The "
+"width of verbose output exceeds 80 characters, so piping the output to e.g."
+"\\& B<less\\ -S> may be convenient if the terminal isn't wide enough."
+msgstr ""
+"Die Liste zeigt in der Standardeinstellung grundlegende Informationen zu den "
+"I<Dateien> an, zeilenweise pro Datei. Detailliertere Informationen erhalten "
+"Sie mit der Option B<--verbose>. Wenn Sie diese Option zweimal angeben, "
+"werden noch ausführlichere Informationen ausgegeben. Das kann den Vorgang "
+"allerdings deutlich verlangsamen, da die Ermittlung der zusätzlichen "
+"Informationen zahlreiche Suchvorgänge erfordert. Die Breite der "
+"ausführlichen Ausgabe ist breiter als 80 Zeichen, daher könnte die "
+"Weiterleitung in beispielsweise\\& B<less\\ -S> sinnvoll sein, falls das "
+"Terminal nicht breit genug ist."
+
+#. type: Plain text
+#: ../src/xz/xz.1:386
+msgid ""
+"The exact output may vary between B<xz> versions and different locales.  For "
+"machine-readable output, B<--robot --list> should be used."
+msgstr ""
+"Die exakte Ausgabe kann in verschiedenen B<xz>-Versionen und "
+"Spracheinstellungen unterschiedlich sein. Wenn eine maschinell auswertbare "
+"Ausgabe gewünscht ist, dann sollten Sie B<--robot --list> verwenden."
+
+#. type: SS
+#: ../src/xz/xz.1:387
+#, no-wrap
+msgid "Operation modifiers"
+msgstr "Aktionsattribute"
+
+#. type: TP
+#: ../src/xz/xz.1:388 ../src/xzdec/xzdec.1:69
+#, no-wrap
+msgid "B<-k>, B<--keep>"
+msgstr "B<-k>, B<--keep>"
+
+#. type: Plain text
+#: ../src/xz/xz.1:391
+msgid "Don't delete the input files."
+msgstr "verhindert das Löschen der Eingabedateien."
+
+#. type: TP
+#: ../src/xz/xz.1:391
+#, no-wrap
+msgid "B<-f>, B<--force>"
+msgstr "B<-f>, B<--force>"
+
+#. type: Plain text
+#: ../src/xz/xz.1:394
+msgid "This option has several effects:"
+msgstr "Diese Option hat verschiedene Auswirkungen:"
+
+#. type: Plain text
+#: ../src/xz/xz.1:398
+msgid ""
+"If the target file already exists, delete it before compressing or "
+"decompressing."
+msgstr ""
+"Wenn die Zieldatei bereits existiert, wird diese vor der Kompression oder "
+"Dekompression gelöscht."
+
+#. type: Plain text
+#: ../src/xz/xz.1:405
+msgid ""
+"Compress or decompress even if the input is a symbolic link to a regular "
+"file, has more than one hard link, or has the setuid, setgid, or sticky bit "
+"set.  The setuid, setgid, and sticky bits are not copied to the target file."
+msgstr ""
+"Die Kompression oder Dekompression wird auch dann ausgeführt, wenn die "
+"Eingabe ein symbolischer Link zu einer regulären Datei ist, mehr als einen "
+"harten Link hat oder das »setuid«-, »setgid«- oder »sticky«-Bit gesetzt ist. "
+"Die genannten Bits werden nicht in die Zieldatei kopiert."
+
+#. type: Plain text
+#: ../src/xz/xz.1:430
+msgid ""
+"When used with B<--decompress> B<--stdout> and B<xz> cannot recognize the "
+"type of the source file, copy the source file as is to standard output.  "
+"This allows B<xzcat> B<--force> to be used like B<cat>(1)  for files that "
+"have not been compressed with B<xz>.  Note that in future, B<xz> might "
+"support new compressed file formats, which may make B<xz> decompress more "
+"types of files instead of copying them as is to standard output.  B<--"
+"format=>I<format> can be used to restrict B<xz> to decompress only a single "
+"file format."
+msgstr ""
+"Wenn es zusammen mit B<--decompress> und B<--stdout> verwendet wird und "
+"B<xz> den Typ der Quelldatei nicht ermitteln kann, wird die Quelldatei "
+"unverändert in die Standardausgabe kopiert. Dadurch kann B<xzcat> B<--force> "
+"für Dateien, die nicht mit B<xz> komprimiert wurden, wie B<cat>(1) verwendet "
+"werden. Zukünftig könnte B<xz> neue Dateikompressionsformate unterstützen, "
+"wodurch B<xz> mehr Dateitypen dekomprimieren kann, anstatt sie unverändert "
+"in die Standardausgabe zu kopieren. Mit der Option B<--format=>I<Format> "
+"können Sie B<xz> anweisen, nur ein einzelnes Dateiformat zu dekomprimieren."
+
+#. type: TP
+#: ../src/xz/xz.1:431 ../src/xzdec/xzdec.1:76
+#, no-wrap
+msgid "B<-c>, B<--stdout>, B<--to-stdout>"
+msgstr "B<-c>, B<--stdout>, B<--to-stdout>"
+
+#. type: Plain text
+#: ../src/xz/xz.1:437
+msgid ""
+"Write the compressed or decompressed data to standard output instead of a "
+"file.  This implies B<--keep>."
+msgstr ""
+"schreibt die komprimierten oder dekomprimierten Daten in die Standardausgabe "
+"anstatt in eine Datei. Dies impliziert B<--keep>."
+
+#. type: TP
+#: ../src/xz/xz.1:437
+#, no-wrap
+msgid "B<--single-stream>"
+msgstr "B<--single-stream>"
+
+#. type: Plain text
+#: ../src/xz/xz.1:446
+msgid ""
+"Decompress only the first B<.xz> stream, and silently ignore possible "
+"remaining input data following the stream.  Normally such trailing garbage "
+"makes B<xz> display an error."
+msgstr ""
+"dekomprimiert nur den ersten B<.xz>-Datenstrom und ignoriert stillschweigend "
+"weitere Eingabedaten, die möglicherweise dem Datenstrom folgen. "
+"Normalerweise führt solcher anhängender Datenmüll dazu, dass B<xz> eine "
+"Fehlermeldung ausgibt."
+
+#. type: Plain text
+#: ../src/xz/xz.1:455
+msgid ""
+"B<xz> never decompresses more than one stream from B<.lzma> files or raw "
+"streams, but this option still makes B<xz> ignore the possible trailing data "
+"after the B<.lzma> file or raw stream."
+msgstr ""
+"B<xz> dekomprimiert niemals mehr als einen Datenstrom aus B<.lzma>-Dateien "
+"oder Rohdatenströmen, aber dennoch wird durch diese Option möglicherweise "
+"vorhandener Datenmüll nach der B<.lzma>-Datei oder dem Rohdatenstrom "
+"ignoriert."
+
+#. type: Plain text
+#: ../src/xz/xz.1:460
+msgid ""
+"This option has no effect if the operation mode is not B<--decompress> or "
+"B<--test>."
+msgstr ""
+"Diese Option ist wirkungslos, wenn der Aktionsmodus nicht B<--decompress> "
+"oder B<--test> ist."
+
+#. type: TP
+#: ../src/xz/xz.1:460
+#, no-wrap
+msgid "B<--no-sparse>"
+msgstr "B<--no-sparse>"
+
+#. type: Plain text
+#: ../src/xz/xz.1:472
+msgid ""
+"Disable creation of sparse files.  By default, if decompressing into a "
+"regular file, B<xz> tries to make the file sparse if the decompressed data "
+"contains long sequences of binary zeros.  It also works when writing to "
+"standard output as long as standard output is connected to a regular file "
+"and certain additional conditions are met to make it safe.  Creating sparse "
+"files may save disk space and speed up the decompression by reducing the "
+"amount of disk I/O."
+msgstr ""
+"verhindert die Erzeugung von Sparse-Dateien. In der Voreinstellung versucht "
+"B<xz>, bei der Dekompression in eine reguläre Datei eine Sparse-Datei zu "
+"erzeugen, wenn die dekomprimierten Daten lange Abfolgen von binären Nullen "
+"enthalten. Dies funktioniert auch beim Schreiben in die Standardausgabe, "
+"sofern diese in eine reguläre Datei weitergeleitet wird und bestimmte "
+"Zusatzbedingungen erfüllt sind, die die Aktion absichern. Die Erzeugung von "
+"Sparse-Dateien kann Plattenplatz sparen und beschleunigt die Dekompression "
+"durch Verringerung der Ein-/Ausgaben der Platte."
+
+#. type: TP
+#: ../src/xz/xz.1:472
+#, no-wrap
+msgid "B<-S> I<.suf>, B<--suffix=>I<.suf>"
+msgstr "B<-S> I<.suf>, B<--suffix=>I<.suf>"
+
+#. type: Plain text
+#: ../src/xz/xz.1:484
+msgid ""
+"When compressing, use I<.suf> as the suffix for the target file instead of "
+"B<.xz> or B<.lzma>.  If not writing to standard output and the source file "
+"already has the suffix I<.suf>, a warning is displayed and the file is "
+"skipped."
+msgstr ""
+"verwendet I<.suf> bei der Dekompression anstelle von B<.xz> oder B<.lzma> "
+"als Suffix für die Zieldatei. Falls nicht in die Standardausgabe geschrieben "
+"wird und die Quelldatei bereits das Suffix I<.suf> hat, wird eine Warnung "
+"angezeigt und die Datei übersprungen."
+
+#. type: Plain text
+#: ../src/xz/xz.1:497
+msgid ""
+"When decompressing, recognize files with the suffix I<.suf> in addition to "
+"files with the B<.xz>, B<.txz>, B<.lzma>, or B<.tlz> suffix.  If the source "
+"file has the suffix I<.suf>, the suffix is removed to get the target "
+"filename."
+msgstr ""
+"berücksichtigt bei der Dekompression zusätzlich zu Dateien mit den Suffixen "
+"B<.xz>, B<.txz>, B<.lzma> oder B<.tlz> auch jene mit dem Suffix I<.suf>. "
+"Falls die Quelldatei das Suffix I<.suf> hat, wird dieses entfernt und so der "
+"Name der Zieldatei abgeleitet."
+
+#. type: Plain text
+#: ../src/xz/xz.1:503
+msgid ""
+"When compressing or decompressing raw streams (B<--format=raw>), the suffix "
+"must always be specified unless writing to standard output, because there is "
+"no default suffix for raw streams."
+msgstr ""
+"Beim Komprimieren oder Dekomprimieren von Rohdatenströmen mit B<--"
+"format=raw> muss das Suffix stets angegeben werden, außer wenn die Ausgabe "
+"in die Standardausgabe erfolgt. Der Grund dafür ist, dass es kein "
+"vorgegebenes Suffix für Rohdatenströme gibt."
+
+#. type: TP
+#: ../src/xz/xz.1:503
+#, no-wrap
+msgid "B<--files>[B<=>I<file>]"
+msgstr "B<--files>[B<=>I<Datei>]"
+
+#. type: Plain text
+#: ../src/xz/xz.1:517
+msgid ""
+"Read the filenames to process from I<file>; if I<file> is omitted, filenames "
+"are read from standard input.  Filenames must be terminated with the newline "
+"character.  A dash (B<->)  is taken as a regular filename; it doesn't mean "
+"standard input.  If filenames are given also as command line arguments, they "
+"are processed before the filenames read from I<file>."
+msgstr ""
+"liest die zu verarbeitenden Dateinamen aus I<Datei>. Falls keine I<Datei> "
+"angegeben ist, werden die Dateinamen aus der Standardeingabe gelesen. "
+"Dateinamen müssen mit einem Zeilenumbruch beendet werden. Ein Bindestrich "
+"(B<->) wird als regulärer Dateiname angesehen und nicht als Standardeingabe "
+"interpretiert. Falls Dateinamen außerdem als Befehlszeilenargumente "
+"angegeben sind, werden diese vor den Dateinamen aus der I<Datei> verarbeitet."
+
+#. type: TP
+#: ../src/xz/xz.1:517
+#, no-wrap
+msgid "B<--files0>[B<=>I<file>]"
+msgstr "B<--files0>[B<=>I<Datei>]"
+
+#. type: Plain text
+#: ../src/xz/xz.1:521
+msgid ""
+"This is identical to B<--files>[B<=>I<file>] except that each filename must "
+"be terminated with the null character."
+msgstr ""
+"Dies ist gleichbedeutend mit B<--files>[B<=>I<Datei>], außer dass jeder "
+"Dateiname mit einem Null-Zeichen abgeschlossen werden muss."
+
+#. type: SS
+#: ../src/xz/xz.1:522
+#, no-wrap
+msgid "Basic file format and compression options"
+msgstr "Grundlegende Dateiformat- und Kompressionsoptionen"
+
+#. type: TP
+#: ../src/xz/xz.1:523
+#, no-wrap
+msgid "B<-F> I<format>, B<--format=>I<format>"
+msgstr "B<-F> I<Format>, B<--format=>I<Format>"
+
+#. type: Plain text
+#: ../src/xz/xz.1:528
+msgid "Specify the file I<format> to compress or decompress:"
+msgstr ""
+"gibt das I<Format> der zu komprimierenden oder dekomprimierenden Datei an:"
+
+#. type: TP
+#: ../src/xz/xz.1:529
+#, no-wrap
+msgid "B<auto>"
+msgstr "B<auto>"
+
+#. type: Plain text
+#: ../src/xz/xz.1:541
+msgid ""
+"This is the default.  When compressing, B<auto> is equivalent to B<xz>.  "
+"When decompressing, the format of the input file is automatically detected.  "
+"Note that raw streams (created with B<--format=raw>)  cannot be auto-"
+"detected."
+msgstr ""
+"Dies ist die Voreinstellung. Bei der Kompression ist B<auto> gleichbedeutend "
+"mit B<xz>. Bei der Dekompression wird das Format der Eingabedatei "
+"automatisch erkannt. Beachten Sie, dass Rohdatenströme, wie sie mit B<--"
+"format=raw> erzeugt werden, nicht automatisch erkannt werden können."
+
+#. type: TP
+#: ../src/xz/xz.1:541
+#, no-wrap
+msgid "B<xz>"
+msgstr "B<xz>"
+
+#. type: Plain text
+#: ../src/xz/xz.1:548
+msgid ""
+"Compress to the B<.xz> file format, or accept only B<.xz> files when "
+"decompressing."
+msgstr ""
+"Die Kompression erfolgt in das B<.xz>-Dateiformat oder akzeptiert nur B<.xz>-"
+"Dateien bei der Dekompression."
+
+#. type: TP
+#: ../src/xz/xz.1:548
+#, no-wrap
+msgid "B<lzma>, B<alone>"
+msgstr "B<lzma>, B<alone>"
+
+#. type: Plain text
+#: ../src/xz/xz.1:558
+msgid ""
+"Compress to the legacy B<.lzma> file format, or accept only B<.lzma> files "
+"when decompressing.  The alternative name B<alone> is provided for backwards "
+"compatibility with LZMA Utils."
+msgstr ""
+"Die Kompression erfolgt in das veraltete B<.lzma>-Dateiformat oder "
+"akzeptiert nur B<.lzma>-Dateien bei der Dekompression. Der alternative Name "
+"B<alone> dient der Abwärtskompatibilität zu den LZMA-Dienstprogrammen."
+
+#. type: TP
+#: ../src/xz/xz.1:558
+#, no-wrap
+msgid "B<raw>"
+msgstr "B<raw>"
+
+#. type: Plain text
+#: ../src/xz/xz.1:566
+msgid ""
+"Compress or uncompress a raw stream (no headers).  This is meant for "
+"advanced users only.  To decode raw streams, you need use B<--format=raw> "
+"and explicitly specify the filter chain, which normally would have been "
+"stored in the container headers."
+msgstr ""
+"Komprimiert oder dekomprimiert einen Rohdatenstrom (ohne Header). Diese "
+"Option ist nur für fortgeschrittene Benutzer bestimmt. Zum Dekodieren von "
+"Rohdatenströmen müssen Sie die Option B<--format=raw> verwenden und die "
+"Filterkette ausdrücklich angeben, die normalerweise in den (hier fehlenden) "
+"Container-Headern gespeichert worden wäre."
+
+#. type: TP
+#: ../src/xz/xz.1:567
+#, no-wrap
+msgid "B<-C> I<check>, B<--check=>I<check>"
+msgstr "B<-C> I<Prüfung>, B<--check=>I<Prüfung>"
+
+#. type: Plain text
+#: ../src/xz/xz.1:582
+msgid ""
+"Specify the type of the integrity check.  The check is calculated from the "
+"uncompressed data and stored in the B<.xz> file.  This option has an effect "
+"only when compressing into the B<.xz> format; the B<.lzma> format doesn't "
+"support integrity checks.  The integrity check (if any) is verified when the "
+"B<.xz> file is decompressed."
+msgstr ""
+"gibt den Typ der Integritätsprüfung an. Die Prüfsumme wird aus den "
+"unkomprimierten Daten berechnet und in der B<.xz>-Datei gespeichert. Diese "
+"Option wird nur bei der Kompression in das B<.xz>-Format angewendet, da das "
+"B<.lzma>-Format keine Integritätsprüfungen unterstützt. Die eigentliche "
+"Integritätsprüfung erfolgt (falls möglich), wenn die B<.xz>-Datei "
+"dekomprimiert wird."
+
+#. type: Plain text
+#: ../src/xz/xz.1:586
+msgid "Supported I<check> types:"
+msgstr "Folgende Typen von I<Prüfungen> werden unterstützt:"
+
+#. type: TP
+#: ../src/xz/xz.1:587
+#, no-wrap
+msgid "B<none>"
+msgstr "B<none>"
+
+#. type: Plain text
+#: ../src/xz/xz.1:593
+msgid ""
+"Don't calculate an integrity check at all.  This is usually a bad idea.  "
+"This can be useful when integrity of the data is verified by other means "
+"anyway."
+msgstr ""
+"führt keine Integritätsprüfung aus. Dies ist eine eher schlechte Idee. "
+"Dennoch kann es nützlich sein, wenn die Integrität der Daten auf andere "
+"Weise sichergestellt werden kann."
+
+#. type: TP
+#: ../src/xz/xz.1:593
+#, no-wrap
+msgid "B<crc32>"
+msgstr "B<crc32>"
+
+#. type: Plain text
+#: ../src/xz/xz.1:596
+msgid "Calculate CRC32 using the polynomial from IEEE-802.3 (Ethernet)."
+msgstr ""
+"berechnet die CRC32-Prüfsumme anhand des Polynoms aus IEEE-802.3 (Ethernet)."
+
+#. type: TP
+#: ../src/xz/xz.1:596
+#, no-wrap
+msgid "B<crc64>"
+msgstr "B<crc64>"
+
+#. type: Plain text
+#: ../src/xz/xz.1:601
+msgid ""
+"Calculate CRC64 using the polynomial from ECMA-182.  This is the default, "
+"since it is slightly better than CRC32 at detecting damaged files and the "
+"speed difference is negligible."
+msgstr ""
+"berechnet die CRC64-Prüfsumme anhand des Polynoms aus ECMA-182. Dies ist die "
+"Voreinstellung, da beschädigte Dateien etwas besser als mit CRC32 erkannt "
+"werden und die Geschwindigkeitsdifferenz unerheblich ist."
+
+#. type: TP
+#: ../src/xz/xz.1:601
+#, no-wrap
+msgid "B<sha256>"
+msgstr "B<sha256>"
+
+#. type: Plain text
+#: ../src/xz/xz.1:605
+msgid "Calculate SHA-256.  This is somewhat slower than CRC32 and CRC64."
+msgstr ""
+"berechnet die SHA-256-Prüfsumme. Dies ist etwas langsamer als CRC32 und "
+"CRC64."
+
+#. type: Plain text
+#: ../src/xz/xz.1:611
+msgid ""
+"Integrity of the B<.xz> headers is always verified with CRC32.  It is not "
+"possible to change or disable it."
+msgstr ""
+"Die Integrität der B<.xz>-Header wird immer mit CRC32 geprüft. Es ist nicht "
+"möglich, dies zu ändern oder zu deaktivieren."
+
+#. type: TP
+#: ../src/xz/xz.1:611
+#, no-wrap
+msgid "B<--ignore-check>"
+msgstr "B<--ignore-check>"
+
+#. type: Plain text
+#: ../src/xz/xz.1:617
+msgid ""
+"Don't verify the integrity check of the compressed data when decompressing.  "
+"The CRC32 values in the B<.xz> headers will still be verified normally."
+msgstr ""
+"verifiziert die Integritätsprüfsumme der komprimierten Daten bei der "
+"Dekompression nicht. Die CRC32-Werte in den B<.xz>-Headern werden weiterhin "
+"normal verifiziert."
+
+#. type: Plain text
+#: ../src/xz/xz.1:620
+msgid ""
+"B<Do not use this option unless you know what you are doing.> Possible "
+"reasons to use this option:"
+msgstr ""
+"B<Verwenden Sie diese Option nicht, außer Sie wissen, was Sie tun.> Mögliche "
+"Gründe, diese Option zu verwenden:"
+
+#. type: Plain text
+#: ../src/xz/xz.1:623
+msgid "Trying to recover data from a corrupt .xz file."
+msgstr "Versuchen, Daten aus einer beschädigten .xz-Datei wiederherzustellen."
+
+# Irgendwie ist mir »extrem gut komprimiert« hier zu diffus. Was soll »gut« hier bedeuten? Besonders stark, besonders clever, was auch immer...
+#. type: Plain text
+#: ../src/xz/xz.1:629
+msgid ""
+"Speeding up decompression.  This matters mostly with SHA-256 or with files "
+"that have compressed extremely well.  It's recommended to not use this "
+"option for this purpose unless the file integrity is verified externally in "
+"some other way."
+msgstr ""
+"Erhöhung der Geschwindigkeit bei der Dekompression. Dies macht sich meist "
+"mit SHA-256 bemerkbar, oder mit Dateien, die extrem stark komprimiert sind. "
+"Wir empfehlen, diese Option nicht für diesen Zweck zu verwenden, es sei "
+"denn, die Integrität der Datei wird extern auf andere Weise überprüft."
+
+#. type: TP
+#: ../src/xz/xz.1:630
+#, no-wrap
+msgid "B<-0> ... B<-9>"
+msgstr "B<-0> … B<-9>"
+
+#. type: Plain text
+#: ../src/xz/xz.1:639
+msgid ""
+"Select a compression preset level.  The default is B<-6>.  If multiple "
+"preset levels are specified, the last one takes effect.  If a custom filter "
+"chain was already specified, setting a compression preset level clears the "
+"custom filter chain."
+msgstr ""
+"wählt eine der voreingestellten Kompressionsstufen, standardmäßig B<-6>. "
+"Wenn mehrere Voreinstellungsstufen angegeben sind, ist nur die zuletzt "
+"angegebene wirksam. Falls bereits eine benutzerdefinierte Filterkette "
+"angegeben wurde, wird diese durch die Festlegung der Voreinstellung geleert."
+
+#. type: Plain text
+#: ../src/xz/xz.1:654
+msgid ""
+"The differences between the presets are more significant than with "
+"B<gzip>(1)  and B<bzip2>(1).  The selected compression settings determine "
+"the memory requirements of the decompressor, thus using a too high preset "
+"level might make it painful to decompress the file on an old system with "
+"little RAM.  Specifically, B<it's not a good idea to blindly use -9 for "
+"everything> like it often is with B<gzip>(1)  and B<bzip2>(1)."
+msgstr ""
+"Die Unterschiede zwischen den Voreinstellungsstufen sind deutlicher als bei "
+"B<gzip>(1) und B<bzip2>(1). Die gewählten Kompressionseinstellungen "
+"bestimmen den Speicherbedarf bei der Dekompression, daher ist es auf älteren "
+"Systemen mit wenig Speicher bei einer zu hoch gewählten Voreinstellung "
+"schwer, eine Datei zu dekomprimieren. Insbesondere B<ist es keine gute Idee, "
+"blindlings -9 für alles> zu verwenden, wie dies häufig mit B<gzip>(1) und "
+"B<bzip2>(1) gehandhabt wird."
+
+#. type: TP
+#: ../src/xz/xz.1:655
+#, no-wrap
+msgid "B<-0> ... B<-3>"
+msgstr "B<-0> … B<-3>"
+
+#. type: Plain text
+#: ../src/xz/xz.1:667
+msgid ""
+"These are somewhat fast presets.  B<-0> is sometimes faster than B<gzip -9> "
+"while compressing much better.  The higher ones often have speed comparable "
+"to B<bzip2>(1)  with comparable or better compression ratio, although the "
+"results depend a lot on the type of data being compressed."
+msgstr ""
+"Diese Voreinstellungen sind recht schnell. B<-0> ist manchmal schneller als "
+"B<gzip -9>, wobei aber die Kompression wesentlich besser ist. Die "
+"schnelleren Voreinstellungen sind im Hinblick auf die Geschwindigkeit mit "
+"B<bzip2>(1) vergleichbar , mit einem ähnlichen oder besseren "
+"Kompressionsverhältnis, wobei das Ergebnis aber stark vom Typ der zu "
+"komprimierenden Daten abhängig ist."
+
+#. type: TP
+#: ../src/xz/xz.1:667
+#, no-wrap
+msgid "B<-4> ... B<-6>"
+msgstr "B<-4> … B<-6>"
+
+#. type: Plain text
+#: ../src/xz/xz.1:681
+msgid ""
+"Good to very good compression while keeping decompressor memory usage "
+"reasonable even for old systems.  B<-6> is the default, which is usually a "
+"good choice e.g. for distributing files that need to be decompressible even "
+"on systems with only 16\\ MiB RAM.  (B<-5e> or B<-6e> may be worth "
+"considering too.  See B<--extreme>.)"
+msgstr ""
+"Gute bis sehr gute Kompression, wobei der Speicherbedarf für die "
+"Dekompression selbst auf alten Systemen akzeptabel ist. B<-6> ist die "
+"Voreinstellung, welche üblicherweise eine gute Wahl ist, zum Beispiel für "
+"die Verteilung von Dateien, die selbst noch auf Systemen mit nur 16\\ MiB "
+"Arbeitsspeicher dekomprimiert werden müssen (B<-5e> oder B<-6e> sind "
+"ebenfalls eine Überlegung wert. Siehe B<--extreme>)."
+
+#. type: TP
+#: ../src/xz/xz.1:681
+#, no-wrap
+msgid "B<-7 ... -9>"
+msgstr "B<-7 … -9>"
+
+#. type: Plain text
+#: ../src/xz/xz.1:688
+msgid ""
+"These are like B<-6> but with higher compressor and decompressor memory "
+"requirements.  These are useful only when compressing files bigger than 8\\ "
+"MiB, 16\\ MiB, and 32\\ MiB, respectively."
+msgstr ""
+"Ähnlich wie B<-6>, aber mit einem höheren Speicherbedarf für die Kompression "
+"und Dekompression. Sie sind nur nützlich, wenn Dateien komprimiert werden "
+"sollen, die größer als 8\\ MiB, 16\\ MiB beziehungsweise 32\\ MiB sind."
+
+#. type: Plain text
+#: ../src/xz/xz.1:696
+msgid ""
+"On the same hardware, the decompression speed is approximately a constant "
+"number of bytes of compressed data per second.  In other words, the better "
+"the compression, the faster the decompression will usually be.  This also "
+"means that the amount of uncompressed output produced per second can vary a "
+"lot."
+msgstr ""
+"Auf der gleichen Hardware ist die Dekompressionsgeschwindigkeit ein nahezu "
+"konstanter Wert in Bytes komprimierter Daten pro Sekunde. Anders "
+"ausgedrückt: Je besser die Kompression, umso schneller wird üblicherweise "
+"die Dekompression sein. Das bedeutet auch, dass die Menge der pro Sekunde "
+"ausgegebenen unkomprimierten Daten stark variieren kann."
+
+#. type: Plain text
+#: ../src/xz/xz.1:698
+msgid "The following table summarises the features of the presets:"
+msgstr ""
+"Die folgende Tabelle fasst die Eigenschaften der Voreinstellungen zusammen:"
+
+#. type: tbl table
+#: ../src/xz/xz.1:705 ../src/xz/xz.1:786 ../src/xz/xz.1:2623
+#, no-wrap
+msgid "Preset"
+msgstr "Voreinstellung"
+
+#. type: tbl table
+#: ../src/xz/xz.1:705 ../src/xz/xz.1:786
+#, no-wrap
+msgid "DictSize"
+msgstr "DictGröße"
+
+#. type: tbl table
+#: ../src/xz/xz.1:705 ../src/xz/xz.1:786 ../src/xz/xz.1:2623
+#, no-wrap
+msgid "CompCPU"
+msgstr "KompCPU"
+
+#. type: tbl table
+#: ../src/xz/xz.1:705 ../src/xz/xz.1:786
+#, no-wrap
+msgid "CompMem"
+msgstr "KompSpeicher"
+
+#. type: tbl table
+#: ../src/xz/xz.1:705 ../src/xz/xz.1:786
+#, no-wrap
+msgid "DecMem"
+msgstr "DekSpeicher"
+
+#. type: tbl table
+#: ../src/xz/xz.1:706 ../src/xz/xz.1:2234 ../src/xz/xz.1:2259
+#: ../src/xz/xz.1:2624
+#, no-wrap
+msgid "-0"
+msgstr "-0"
+
+#. type: tbl table
+#: ../src/xz/xz.1:706 ../src/xz/xz.1:787 ../src/xz/xz.1:2234
+#, no-wrap
+msgid "256 KiB"
+msgstr "256 KiB"
+
+#. type: tbl table
+#: ../src/xz/xz.1:706 ../src/xz/xz.1:2624
+#, no-wrap
+msgid "0"
+msgstr "0"
+
+#. type: tbl table
+#: ../src/xz/xz.1:706 ../src/xz/xz.1:708 ../src/xz/xz.1:789 ../src/xz/xz.1:2259
+#, no-wrap
+msgid "3 MiB"
+msgstr "3 MiB"
+
+#. type: tbl table
+#: ../src/xz/xz.1:706 ../src/xz/xz.1:707 ../src/xz/xz.1:787 ../src/xz/xz.1:788
+#: ../src/xz/xz.1:2235 ../src/xz/xz.1:2236 ../src/xz/xz.1:2238
+#, no-wrap
+msgid "1 MiB"
+msgstr "1 MiB"
+
+#. type: tbl table
+#: ../src/xz/xz.1:707 ../src/xz/xz.1:2235 ../src/xz/xz.1:2260
+#: ../src/xz/xz.1:2625
+#, no-wrap
+msgid "-1"
+msgstr "-1"
+
+#. type: tbl table
+#: ../src/xz/xz.1:707 ../src/xz/xz.1:1582 ../src/xz/xz.1:2625
+#, no-wrap
+msgid "1"
+msgstr "1"
+
+#. type: tbl table
+#: ../src/xz/xz.1:707 ../src/xz/xz.1:711 ../src/xz/xz.1:712 ../src/xz/xz.1:792
+#: ../src/xz/xz.1:793 ../src/xz/xz.1:2260
+#, no-wrap
+msgid "9 MiB"
+msgstr "9 MiB"
+
+#. type: tbl table
+#: ../src/xz/xz.1:707 ../src/xz/xz.1:708 ../src/xz/xz.1:788 ../src/xz/xz.1:789
+#: ../src/xz/xz.1:2236 ../src/xz/xz.1:2239 ../src/xz/xz.1:2260
+#, no-wrap
+msgid "2 MiB"
+msgstr "2 MiB"
+
+#. type: tbl table
+#: ../src/xz/xz.1:708 ../src/xz/xz.1:2236 ../src/xz/xz.1:2261
+#: ../src/xz/xz.1:2626
+#, no-wrap
+msgid "-2"
+msgstr "-2"
+
+#. type: tbl table
+#: ../src/xz/xz.1:708 ../src/xz/xz.1:1585 ../src/xz/xz.1:2626
+#, no-wrap
+msgid "2"
+msgstr "2"
+
+#. type: tbl table
+#: ../src/xz/xz.1:708 ../src/xz/xz.1:713 ../src/xz/xz.1:794 ../src/xz/xz.1:2261
+#, no-wrap
+msgid "17 MiB"
+msgstr "17 MiB"
+
+#. type: tbl table
+#: ../src/xz/xz.1:709 ../src/xz/xz.1:2237 ../src/xz/xz.1:2262
+#: ../src/xz/xz.1:2627
+#, no-wrap
+msgid "-3"
+msgstr "-3"
+
+#. type: tbl table
+#: ../src/xz/xz.1:709 ../src/xz/xz.1:710 ../src/xz/xz.1:787 ../src/xz/xz.1:790
+#: ../src/xz/xz.1:791 ../src/xz/xz.1:2237 ../src/xz/xz.1:2238
+#: ../src/xz/xz.1:2240
+#, no-wrap
+msgid "4 MiB"
+msgstr "4 MiB"
+
+#. type: tbl table
+#: ../src/xz/xz.1:709 ../src/xz/xz.1:2627
+#, no-wrap
+msgid "3"
+msgstr "3"
+
+#. type: tbl table
+#: ../src/xz/xz.1:709 ../src/xz/xz.1:714 ../src/xz/xz.1:795 ../src/xz/xz.1:2242
+#: ../src/xz/xz.1:2243 ../src/xz/xz.1:2262
+#, no-wrap
+msgid "32 MiB"
+msgstr "32 MiB"
+
+#. type: tbl table
+#: ../src/xz/xz.1:709 ../src/xz/xz.1:710 ../src/xz/xz.1:790 ../src/xz/xz.1:791
+#, no-wrap
+msgid "5 MiB"
+msgstr "5 MiB"
+
+#. type: tbl table
+#: ../src/xz/xz.1:710 ../src/xz/xz.1:2238 ../src/xz/xz.1:2263
+#: ../src/xz/xz.1:2628
+#, no-wrap
+msgid "-4"
+msgstr "-4"
+
+#. type: tbl table
+#: ../src/xz/xz.1:710 ../src/xz/xz.1:1583 ../src/xz/xz.1:1584
+#: ../src/xz/xz.1:1587 ../src/xz/xz.1:2628
+#, no-wrap
+msgid "4"
+msgstr "4"
+
+#. type: tbl table
+#: ../src/xz/xz.1:710 ../src/xz/xz.1:790 ../src/xz/xz.1:791 ../src/xz/xz.1:2263
+#, no-wrap
+msgid "48 MiB"
+msgstr "48 MiB"
+
+#. type: tbl table
+#: ../src/xz/xz.1:711 ../src/xz/xz.1:2239 ../src/xz/xz.1:2264
+#: ../src/xz/xz.1:2629
+#, no-wrap
+msgid "-5"
+msgstr "-5"
+
+#. type: tbl table
+#: ../src/xz/xz.1:711 ../src/xz/xz.1:712 ../src/xz/xz.1:792 ../src/xz/xz.1:793
+#: ../src/xz/xz.1:2239 ../src/xz/xz.1:2240 ../src/xz/xz.1:2241
+#, no-wrap
+msgid "8 MiB"
+msgstr "8 MiB"
+
+#. type: tbl table
+#: ../src/xz/xz.1:711 ../src/xz/xz.1:2629
+#, no-wrap
+msgid "5"
+msgstr "5"
+
+#. type: tbl table
+#: ../src/xz/xz.1:711 ../src/xz/xz.1:712 ../src/xz/xz.1:792 ../src/xz/xz.1:793
+#: ../src/xz/xz.1:2264 ../src/xz/xz.1:2265
+#, no-wrap
+msgid "94 MiB"
+msgstr "94 MiB"
+
+#. type: tbl table
+#: ../src/xz/xz.1:712 ../src/xz/xz.1:2240 ../src/xz/xz.1:2265
+#: ../src/xz/xz.1:2630
+#, no-wrap
+msgid "-6"
+msgstr "-6"
+
+#. type: tbl table
+#: ../src/xz/xz.1:712 ../src/xz/xz.1:713 ../src/xz/xz.1:714 ../src/xz/xz.1:715
+#: ../src/xz/xz.1:2630
+#, no-wrap
+msgid "6"
+msgstr "6"
+
+#. type: tbl table
+#: ../src/xz/xz.1:713 ../src/xz/xz.1:2241 ../src/xz/xz.1:2266
+#, no-wrap
+msgid "-7"
+msgstr "-7"
+
+#. type: tbl table
+#: ../src/xz/xz.1:713 ../src/xz/xz.1:794 ../src/xz/xz.1:2241
+#: ../src/xz/xz.1:2242 ../src/xz/xz.1:2263
+#, no-wrap
+msgid "16 MiB"
+msgstr "16 MiB"
+
+#. type: tbl table
+#: ../src/xz/xz.1:713 ../src/xz/xz.1:794 ../src/xz/xz.1:2266
+#, no-wrap
+msgid "186 MiB"
+msgstr "186 MiB"
+
+#. type: tbl table
+#: ../src/xz/xz.1:714 ../src/xz/xz.1:2242 ../src/xz/xz.1:2267
+#, no-wrap
+msgid "-8"
+msgstr "-8"
+
+#. type: tbl table
+#: ../src/xz/xz.1:714 ../src/xz/xz.1:795 ../src/xz/xz.1:2267
+#, no-wrap
+msgid "370 MiB"
+msgstr "370 MiB"
+
+#. type: tbl table
+#: ../src/xz/xz.1:714 ../src/xz/xz.1:795
+#, no-wrap
+msgid "33 MiB"
+msgstr "33 MiB"
+
+#. type: tbl table
+#: ../src/xz/xz.1:715 ../src/xz/xz.1:2243 ../src/xz/xz.1:2268
+#, no-wrap
+msgid "-9"
+msgstr "-9"
+
+#. type: tbl table
+#: ../src/xz/xz.1:715 ../src/xz/xz.1:796 ../src/xz/xz.1:2243
+#, no-wrap
+msgid "64 MiB"
+msgstr "64 MiB"
+
+#. type: tbl table
+#: ../src/xz/xz.1:715 ../src/xz/xz.1:796 ../src/xz/xz.1:2268
+#, no-wrap
+msgid "674 MiB"
+msgstr "674 MiB"
+
+#. type: tbl table
+#: ../src/xz/xz.1:715 ../src/xz/xz.1:796
+#, no-wrap
+msgid "65 MiB"
+msgstr "65 MiB"
+
+#. type: Plain text
+#: ../src/xz/xz.1:721
+msgid "Column descriptions:"
+msgstr "Spaltenbeschreibungen:"
+
+#. type: Plain text
+#: ../src/xz/xz.1:733
+msgid ""
+"DictSize is the LZMA2 dictionary size.  It is waste of memory to use a "
+"dictionary bigger than the size of the uncompressed file.  This is why it is "
+"good to avoid using the presets B<-7> ... B<-9> when there's no real need "
+"for them.  At B<-6> and lower, the amount of memory wasted is usually low "
+"enough to not matter."
+msgstr ""
+"DictGröße ist die Größe des LZMA2-Wörterbuchs. Es ist Speicherverschwendung, "
+"ein Wörterbuch zu verwenden, das größer als die unkomprimierte Datei ist. "
+"Daher ist es besser, die Voreinstellungen B<-7> … B<-9> zu vermeiden, falls "
+"es keinen wirklichen Bedarf dafür gibt. Mit B<-6> und weniger wird "
+"üblicherweise so wenig Speicher verschwendet, dass dies nicht ins Gewicht "
+"fällt."
+
+#. type: Plain text
+#: ../src/xz/xz.1:742
+msgid ""
+"CompCPU is a simplified representation of the LZMA2 settings that affect "
+"compression speed.  The dictionary size affects speed too, so while CompCPU "
+"is the same for levels B<-6> ... B<-9>, higher levels still tend to be a "
+"little slower.  To get even slower and thus possibly better compression, see "
+"B<--extreme>."
+msgstr ""
+"KompCPU ist eine vereinfachte Repräsentation der LZMA2-Einstellungen, welche "
+"die Kompressionsgeschwindigkeit beeinflussen. Die Wörterbuchgröße wirkt sich "
+"ebenfalls auf die Geschwindigkeit aus. Während KompCPU für die Stufen B<-6> "
+"bis B<-9> gleich ist, tendieren höhere Stufen dazu, etwas langsamer zu sein. "
+"Um eine noch langsamere, aber möglicherweise bessere Kompression zu "
+"erhalten, siehe B<--extreme>."
+
+#. type: Plain text
+#: ../src/xz/xz.1:750
+msgid ""
+"CompMem contains the compressor memory requirements in the single-threaded "
+"mode.  It may vary slightly between B<xz> versions.  Memory requirements of "
+"some of the future multithreaded modes may be dramatically higher than that "
+"of the single-threaded mode."
+msgstr ""
+"KompSpeicher enthält den Speicherbedarf des Kompressors im Einzel-Thread-"
+"Modus. Dieser kann zwischen den B<xz>-Versionen leicht variieren. Der "
+"Speicherbedarf einiger der zukünftigen Multithread-Modi kann dramatisch "
+"höher sein als im Einzel-Thread-Modus."
+
+#. type: Plain text
+#: ../src/xz/xz.1:757
+msgid ""
+"DecMem contains the decompressor memory requirements.  That is, the "
+"compression settings determine the memory requirements of the decompressor.  "
+"The exact decompressor memory usage is slightly more than the LZMA2 "
+"dictionary size, but the values in the table have been rounded up to the "
+"next full MiB."
+msgstr ""
+"DekSpeicher enthält den Speicherbedarf für die Dekompression. Das bedeutet, "
+"dass die Kompressionseinstellungen den Speicherbedarf bei der Dekompression "
+"bestimmen. Der exakte Speicherbedarf bei der Dekompression ist geringfügig "
+"größer als die Größe des LZMA2-Wörterbuchs, aber die Werte in der Tabelle "
+"wurden auf ganze MiB aufgerundet."
+
+#. type: TP
+#: ../src/xz/xz.1:758
+#, no-wrap
+msgid "B<-e>, B<--extreme>"
+msgstr "B<-e>, B<--extreme>"
+
+#. type: Plain text
+#: ../src/xz/xz.1:767
+msgid ""
+"Use a slower variant of the selected compression preset level (B<-0> ... "
+"B<-9>)  to hopefully get a little bit better compression ratio, but with bad "
+"luck this can also make it worse.  Decompressor memory usage is not "
+"affected, but compressor memory usage increases a little at preset levels "
+"B<-0> ... B<-3>."
+msgstr ""
+"verwendet eine langsamere Variante der gewählten Kompressions-"
+"Voreinstellungsstufe (B<-0> … B<-9>), um hoffentlich ein etwas besseres "
+"Kompressionsverhältnis zu erreichen, das aber in ungünstigen Fällen auch "
+"schlechter werden kann. Der Speicherverbrauch bei der Dekompression wird "
+"dabei nicht beeinflusst, aber der Speicherverbrauch der Kompression steigt "
+"in der Voreinstellungsstufen B<-0> bis B<-3> geringfügig an."
+
+#. type: Plain text
+#: ../src/xz/xz.1:779
+msgid ""
+"Since there are two presets with dictionary sizes 4\\ MiB and 8\\ MiB, the "
+"presets B<-3e> and B<-5e> use slightly faster settings (lower CompCPU) than "
+"B<-4e> and B<-6e>, respectively.  That way no two presets are identical."
+msgstr ""
+"Da es zwei Voreinstellungen mit den Wörterbuchgrößen 4\\ MiB und 8\\ MiB "
+"gibt, verwenden die Voreinstellungsstufen B<-3e> und B<-5e> etwas schnellere "
+"Einstellungen (niedrigere KompCPU) als B<-4e> beziehungsweise B<-6e>. Auf "
+"diese Weise sind zwei Voreinstellungen nie identisch."
+
+#. type: tbl table
+#: ../src/xz/xz.1:787
+#, no-wrap
+msgid "-0e"
+msgstr "-0e"
+
+#. type: tbl table
+#: ../src/xz/xz.1:787 ../src/xz/xz.1:788 ../src/xz/xz.1:789 ../src/xz/xz.1:791
+#: ../src/xz/xz.1:793 ../src/xz/xz.1:794 ../src/xz/xz.1:795 ../src/xz/xz.1:796
+#: ../src/xz/xz.1:2632
+#, no-wrap
+msgid "8"
+msgstr "8"
+
+#. type: tbl table
+#: ../src/xz/xz.1:788
+#, no-wrap
+msgid "-1e"
+msgstr "-1e"
+
+#. type: tbl table
+#: ../src/xz/xz.1:788
+#, no-wrap
+msgid "13 MiB"
+msgstr "13 MiB"
+
+#. type: tbl table
+#: ../src/xz/xz.1:789
+#, no-wrap
+msgid "-2e"
+msgstr "-2e"
+
+#. type: tbl table
+#: ../src/xz/xz.1:789
+#, no-wrap
+msgid "25 MiB"
+msgstr "25 MiB"
+
+#. type: tbl table
+#: ../src/xz/xz.1:790
+#, no-wrap
+msgid "-3e"
+msgstr "-3e"
+
+#. type: tbl table
+#: ../src/xz/xz.1:790 ../src/xz/xz.1:792 ../src/xz/xz.1:2631
+#, no-wrap
+msgid "7"
+msgstr "7"
+
+#. type: tbl table
+#: ../src/xz/xz.1:791
+#, no-wrap
+msgid "-4e"
+msgstr "-4e"
+
+#. type: tbl table
+#: ../src/xz/xz.1:792 ../src/xz/xz.1:2631
+#, no-wrap
+msgid "-5e"
+msgstr "-5e"
+
+#. type: tbl table
+#: ../src/xz/xz.1:793 ../src/xz/xz.1:2632
+#, no-wrap
+msgid "-6e"
+msgstr "-6e"
+
+#. type: tbl table
+#: ../src/xz/xz.1:794
+#, no-wrap
+msgid "-7e"
+msgstr "-7e"
+
+#. type: tbl table
+#: ../src/xz/xz.1:795
+#, no-wrap
+msgid "-8e"
+msgstr "-8e"
+
+#. type: tbl table
+#: ../src/xz/xz.1:796
+#, no-wrap
+msgid "-9e"
+msgstr "-9e"
+
+#. type: Plain text
+#: ../src/xz/xz.1:808
+msgid ""
+"For example, there are a total of four presets that use 8\\ MiB dictionary, "
+"whose order from the fastest to the slowest is B<-5>, B<-6>, B<-5e>, and "
+"B<-6e>."
+msgstr ""
+"Zum Beispiel gibt es insgesamt vier Voreinstellungen, die ein 8\\ MiB großes "
+"Wörterbuch verwenden, deren Reihenfolge von der schnellsten zur langsamsten "
+"B<-5>, B<-6>, B<-5e> und B<-6e> ist."
+
+#. type: TP
+#: ../src/xz/xz.1:808
+#, no-wrap
+msgid "B<--fast>"
+msgstr "B<--fast>"
+
+#. type: TP
+#: ../src/xz/xz.1:811
+#, no-wrap
+msgid "B<--best>"
+msgstr "B<--best>"
+
+#. type: Plain text
+#: ../src/xz/xz.1:822
+msgid ""
+"These are somewhat misleading aliases for B<-0> and B<-9>, respectively.  "
+"These are provided only for backwards compatibility with LZMA Utils.  Avoid "
+"using these options."
+msgstr ""
+"sind etwas irreführende Aliase für B<-0> beziehungsweise B<-9>. Sie werden "
+"nur zwecks Abwärtskompatibilität zu den LZMA-Dienstprogrammen "
+"bereitgestellt. Sie sollten diese Optionen besser nicht verwenden."
+
+#. type: TP
+#: ../src/xz/xz.1:822
+#, no-wrap
+msgid "B<--block-size=>I<size>"
+msgstr "B<--block-size=>I<Größe>"
+
+# CHECK multi-threading and makes limited random-access
+#. type: Plain text
+#: ../src/xz/xz.1:835
+msgid ""
+"When compressing to the B<.xz> format, split the input data into blocks of "
+"I<size> bytes.  The blocks are compressed independently from each other, "
+"which helps with multi-threading and makes limited random-access "
+"decompression possible.  This option is typically used to override the "
+"default block size in multi-threaded mode, but this option can be used in "
+"single-threaded mode too."
+msgstr ""
+"teilt beim Komprimieren in das B<.xz>-Format die Eingabedaten in Blöcke der "
+"angegebenen I<Größe> in Byte. Die Blöcke werden unabhängig voneinander "
+"komprimiert, was dem Multi-Threading entgegen kommt und Zufallszugriffe bei "
+"der Dekompression begrenzt. Diese Option wird typischerweise eingesetzt, um "
+"die vorgegebene Blockgröße im Multi-Thread-Modus außer Kraft zu setzen, aber "
+"sie kann auch im Einzel-Thread-Modus angewendet werden."
+
+#. type: Plain text
+#: ../src/xz/xz.1:853
+msgid ""
+"In multi-threaded mode about three times I<size> bytes will be allocated in "
+"each thread for buffering input and output.  The default I<size> is three "
+"times the LZMA2 dictionary size or 1 MiB, whichever is more.  Typically a "
+"good value is 2-4 times the size of the LZMA2 dictionary or at least 1 MiB.  "
+"Using I<size> less than the LZMA2 dictionary size is waste of RAM because "
+"then the LZMA2 dictionary buffer will never get fully used.  The sizes of "
+"the blocks are stored in the block headers, which a future version of B<xz> "
+"will use for multi-threaded decompression."
+msgstr ""
+"Im Multi-Thread-Modus wird etwa die dreifache I<Größe> in jedem Thread zur "
+"Pufferung der Ein- und Ausgabe belegt. Die vorgegebene I<Größe> ist das "
+"Dreifache der Größe des LZMA2-Wörterbuchs oder 1 MiB, je nachdem, was mehr "
+"ist. Typischerweise ist das Zwei- bis Vierfache der Größe des LZMA2-"
+"Wörterbuchs oder wenigstens 1 MB ein guter Wert. Eine I<Größe>, die geringer "
+"ist als die des LZMA2-Wörterbuchs, ist Speicherverschwendung, weil dann der "
+"LZMA2-Wörterbuchpuffer niemals vollständig genutzt werden würde. Die Größe "
+"der Blöcke wird in den Block-Headern gespeichert, die von einer zukünftigen "
+"Version von B<xz> für eine Multi-Thread-Dekompression genutzt wird."
+
+#. type: Plain text
+#: ../src/xz/xz.1:862
+msgid ""
+"In single-threaded mode no block splitting is done by default.  Setting this "
+"option doesn't affect memory usage.  No size information is stored in block "
+"headers, thus files created in single-threaded mode won't be identical to "
+"files created in multi-threaded mode.  The lack of size information also "
+"means that a future version of B<xz> won't be able decompress the files in "
+"multi-threaded mode."
+msgstr ""
+"Im Einzel-Thread-Modus werden die Blöcke standardmäßig nicht geteilt. Das "
+"Setzen dieser Option wirkt sich nicht auf den Speicherbedarf aus. In den "
+"Block-Headern werden keine Größeninformationen gespeichert, daher werden im "
+"Einzel-Thread-Modus erzeugte Dateien nicht zu den im Multi-Thread-Modus "
+"erzeugten Dateien identisch sein. Das Fehlen der Größeninformation bedingt "
+"auch, dass eine zukünftige Version von B<xz> nicht in der Lage sein wird, "
+"die Dateien im Multi-Thread-Modus zu dekomprimieren."
+
+#. type: TP
+#: ../src/xz/xz.1:862
+#, no-wrap
+msgid "B<--block-list=>I<sizes>"
+msgstr "B<--block-list=>I<Größen>"
+
+#. type: Plain text
+#: ../src/xz/xz.1:868
+msgid ""
+"When compressing to the B<.xz> format, start a new block after the given "
+"intervals of uncompressed data."
+msgstr ""
+"beginnt bei der Kompression in das B<.xz>-Format nach den angegebenen "
+"Intervallen unkomprimierter Daten einen neuen Block."
+
+#. type: Plain text
+#: ../src/xz/xz.1:874
+msgid ""
+"The uncompressed I<sizes> of the blocks are specified as a comma-separated "
+"list.  Omitting a size (two or more consecutive commas) is a shorthand to "
+"use the size of the previous block."
+msgstr ""
+"Die unkomprimierte I<Größe> der Blöcke wird in einer durch Kommata "
+"getrennten Liste angegeben. Auslassen einer Größe (zwei oder mehr "
+"aufeinander folgende Kommata) ist ein Kürzel dafür, die Größe des vorherigen "
+"Blocks zu verwenden."
+
+#. type: Plain text
+#: ../src/xz/xz.1:884
+msgid ""
+"If the input file is bigger than the sum of I<sizes>, the last value in "
+"I<sizes> is repeated until the end of the file.  A special value of B<0> may "
+"be used as the last value to indicate that the rest of the file should be "
+"encoded as a single block."
+msgstr ""
+"Falls die Eingabedatei größer ist als die Summe der I<Größen>, dann wird der "
+"letzte in I<Größe> angegebene Wert bis zum Ende der Datei wiederholt. Mit "
+"dem speziellen Wert B<0> können Sie angeben, dass der Rest der Datei als "
+"einzelner Block kodiert werden soll."
+
+# FIXME encoder → compressor
+#. type: Plain text
+#: ../src/xz/xz.1:899
+msgid ""
+"If one specifies I<sizes> that exceed the encoder's block size (either the "
+"default value in threaded mode or the value specified with B<--block-"
+"size=>I<size>), the encoder will create additional blocks while keeping the "
+"boundaries specified in I<sizes>.  For example, if one specifies B<--block-"
+"size=10MiB> B<--block-list=5MiB,10MiB,8MiB,12MiB,24MiB> and the input file "
+"is 80 MiB, one will get 11 blocks: 5, 10, 8, 10, 2, 10, 10, 4, 10, 10, and 1 "
+"MiB."
+msgstr ""
+"Falls Sie I<Größen> angeben, welche die Blockgröße des Encoders übersteigen "
+"(entweder den Vorgabewert im Thread-Modus oder den mit B<--block-"
+"size=>I<Größe> angegebenen Wert), wird der Encoder zusätzliche Blöcke "
+"erzeugen, wobei die in den I<Größen> angegebenen Grenzen eingehalten werden. "
+"Wenn Sie zum Beispiel B<--block-size=10MiB> B<--block-"
+"list=5MiB,10MiB,8MiB,12MiB,24MiB> angeben und die Eingabedatei 80 MiB groß "
+"ist, erhalten Sie 11 Blöcke: 5, 10, 8, 10, 2, 10, 10, 4, 10, 10 und 1 MiB."
+
+#. type: Plain text
+#: ../src/xz/xz.1:905
+msgid ""
+"In multi-threaded mode the sizes of the blocks are stored in the block "
+"headers.  This isn't done in single-threaded mode, so the encoded output "
+"won't be identical to that of the multi-threaded mode."
+msgstr ""
+"Im Multi-Thread-Modus werden die Blockgrößen in den Block-Headern "
+"gespeichert. Dies geschieht im Einzel-Thread-Modus nicht, daher wird die "
+"kodierte Ausgabe zu der im Multi-Thread-Modus nicht identisch sein."
+
+#. type: TP
+#: ../src/xz/xz.1:905
+#, no-wrap
+msgid "B<--flush-timeout=>I<timeout>"
+msgstr "B<--flush-timeout=>I<Zeit>"
+
+#. type: Plain text
+#: ../src/xz/xz.1:922
+msgid ""
+"When compressing, if more than I<timeout> milliseconds (a positive integer) "
+"has passed since the previous flush and reading more input would block, all "
+"the pending input data is flushed from the encoder and made available in the "
+"output stream.  This can be useful if B<xz> is used to compress data that is "
+"streamed over a network.  Small I<timeout> values make the data available at "
+"the receiving end with a small delay, but large I<timeout> values give "
+"better compression ratio."
+msgstr ""
+"löscht bei der Kompression die ausstehenden Daten aus dem Encoder und macht "
+"sie im Ausgabedatenstrom verfügbar, wenn mehr als die angegebene I<Zeit> in "
+"Millisekunden (als positive Ganzzahl) seit dem vorherigen Löschen vergangen "
+"ist und das Lesen weiterer Eingaben blockieren würde. Dies kann nützlich "
+"sein, wenn B<xz> zum Komprimieren von über das Netzwerk eingehenden Daten "
+"verwendet wird. Kleine I<Zeit>-Werte machen die Daten unmittelbar nach dem "
+"Empfang nach einer kurzen Verzögerung verfügbar, während große I<Zeit>-Werte "
+"ein besseres Kompressionsverhältnis bewirken."
+
+#. type: Plain text
+#: ../src/xz/xz.1:930
+msgid ""
+"This feature is disabled by default.  If this option is specified more than "
+"once, the last one takes effect.  The special I<timeout> value of B<0> can "
+"be used to explicitly disable this feature."
+msgstr ""
+"Dieses Funktionsmerkmal ist standardmäßig deaktiviert. Wenn diese Option "
+"mehrfach angegeben wird, ist die zuletzt angegebene wirksam. Für die Angabe "
+"der I<Zeit> kann der spezielle Wert B<0> verwendet werden, um dieses "
+"Funktionsmerkmal explizit zu deaktivieren."
+
+#. type: Plain text
+#: ../src/xz/xz.1:932
+msgid "This feature is not available on non-POSIX systems."
+msgstr ""
+"Dieses Funktionsmerkmal ist außerhalb von POSIX-Systemen nicht verfügbar."
+
+#.  FIXME
+#. type: Plain text
+#: ../src/xz/xz.1:940
+msgid ""
+"B<This feature is still experimental.> Currently B<xz> is unsuitable for "
+"decompressing the stream in real time due to how B<xz> does buffering."
+msgstr ""
+"B<Dieses Funktionsmerkmal ist noch experimentell.> Gegenwärtig ist B<xz> "
+"aufgrund der Art und Weise, wie B<xz> puffert, für Dekompression in Echtzeit "
+"ungeeignet."
+
+#. type: TP
+#: ../src/xz/xz.1:940
+#, no-wrap
+msgid "B<--memlimit-compress=>I<limit>"
+msgstr "B<--memlimit-compress=>I<Grenze>"
+
+#. type: Plain text
+#: ../src/xz/xz.1:945
+msgid ""
+"Set a memory usage limit for compression.  If this option is specified "
+"multiple times, the last one takes effect."
+msgstr ""
+"legt eine Grenze für die Speichernutzung bei der Kompression fest. Wenn "
+"diese Option mehrmals angegeben wird, ist die zuletzt angegebene wirksam."
+
+#. type: Plain text
+#: ../src/xz/xz.1:960
+msgid ""
+"If the compression settings exceed the I<limit>, B<xz> will adjust the "
+"settings downwards so that the limit is no longer exceeded and display a "
+"notice that automatic adjustment was done.  Such adjustments are not made "
+"when compressing with B<--format=raw> or if B<--no-adjust> has been "
+"specified.  In those cases, an error is displayed and B<xz> will exit with "
+"exit status 1."
+msgstr ""
+"Falls die Kompressionseinstellungen die I<Grenze> überschreiten, passt B<xz> "
+"die Einstellungen nach unten an, so dass die Grenze nicht mehr überschritten "
+"wird und zeigt einen Hinweis an, dass eine automatische Anpassung "
+"vorgenommen wurde. Solche Anpassungen erfolgen nicht, wenn mit B<--"
+"format=raw> komprimiert wird oder wenn B<--no-adjust> angegeben wurde. In "
+"diesen Fällen wird eine Fehlermeldung mit dem Exit-Status 1 ausgegeben und "
+"B<xz> mit dem Exit-Status 1 beendet."
+
+#. type: Plain text
+#: ../src/xz/xz.1:964
+msgid "The I<limit> can be specified in multiple ways:"
+msgstr "Die I<Grenze> kann auf verschiedene Arten angegeben werden:"
+
+# FIXME integer suffix
+#. type: Plain text
+#: ../src/xz/xz.1:974
+msgid ""
+"The I<limit> can be an absolute value in bytes.  Using an integer suffix "
+"like B<MiB> can be useful.  Example: B<--memlimit-compress=80MiB>"
+msgstr ""
+"Die I<Grenze> kann ein absoluter Wert in Byte sein. Ein Suffix wie B<MiB> "
+"kann dabei hilfreich sein. Beispiel: B<--memlimit-compress=80MiB>."
+
+#. type: Plain text
+#: ../src/xz/xz.1:986
+msgid ""
+"The I<limit> can be specified as a percentage of total physical memory "
+"(RAM).  This can be useful especially when setting the B<XZ_DEFAULTS> "
+"environment variable in a shell initialization script that is shared between "
+"different computers.  That way the limit is automatically bigger on systems "
+"with more memory.  Example: B<--memlimit-compress=70%>"
+msgstr ""
+"Die I<Grenze> kann als Prozentsatz des physischen Gesamtspeichers (RAM) "
+"angegeben werden. Dies ist insbesondere nützlich, wenn in einem Shell-"
+"Initialisierungsskript, das mehrere unterschiedliche Rechner gemeinsam "
+"verwenden, die Umgebungsvariable B<XZ_DEFAULTS> gesetzt ist. Auf diese Weise "
+"ist die Grenze auf Systemen mit mehr Speicher höher. Beispiel: B<--memlimit-"
+"compress=70%>"
+
+#. type: Plain text
+#: ../src/xz/xz.1:1006
+msgid ""
+"The I<limit> can be reset back to its default value by setting it to B<0>.  "
+"This is currently equivalent to setting the I<limit> to B<max> (no memory "
+"usage limit).  Once multithreading support has been implemented, there may "
+"be a difference between B<0> and B<max> for the multithreaded case, so it is "
+"recommended to use B<0> instead of B<max> until the details have been "
+"decided."
+msgstr ""
+"Mit B<0> kann die I<Grenze> auf den Standardwert zurückgesetzt werden. Dies "
+"ist gegenwärtig gleichbedeutend mit dem Setzen der I<Grenze> auf B<max> "
+"(keine Speicherbegrenzung). Sobald die Unterstützung für Multi-Threading "
+"implementiert wurde, kann es im Multi-Thread-Fall einen Unterschied zwischen "
+"B<0> und B<max> geben, daher wird empfohlen, B<0> anstelle von B<max> zu "
+"verwenden, bis die Einzelheiten hierzu geklärt sind."
+
+#. type: Plain text
+#: ../src/xz/xz.1:1026
+msgid ""
+"For 32-bit B<xz> there is a special case: if the I<limit> would be over "
+"B<4020\\ MiB>, the I<limit> is set to B<4020\\ MiB>.  (The values B<0> and "
+"B<max> aren't affected by this.  A similar feature doesn't exist for "
+"decompression.)  This can be helpful when a 32-bit executable has access to "
+"4\\ GiB address space while hopefully doing no harm in other situations."
+msgstr ""
+"Für die 32-Bit-Version von B<xz> gibt es einen Spezialfall: Falls die Grenze "
+"über B<4020\\ MiB> liegt, wird die I<Grenze> auf B<4020\\ MiB> gesetzt (die "
+"Werte B<0> und B<max> werden hiervon nicht beeinflusst; für die "
+"Dekompression gibt es keine vergleichbare Funktion). Dies kann hilfreich "
+"sein, wenn ein 32-Bit-Executable auf einen 4\\ GiB großen Adressraum "
+"zugreifen kann, wobei wir hoffen wollen, dass es in anderen Situationen "
+"keine negativen Effekte hat."
+
+#. type: Plain text
+#: ../src/xz/xz.1:1029
+msgid "See also the section B<Memory usage>."
+msgstr "Siehe auch den Abschnitt B<Speicherbedarf>."
+
+#. type: TP
+#: ../src/xz/xz.1:1029
+#, no-wrap
+msgid "B<--memlimit-decompress=>I<limit>"
+msgstr "B<--memlimit-decompress=>I<Grenze>"
+
+#. type: Plain text
+#: ../src/xz/xz.1:1043
+msgid ""
+"Set a memory usage limit for decompression.  This also affects the B<--list> "
+"mode.  If the operation is not possible without exceeding the I<limit>, "
+"B<xz> will display an error and decompressing the file will fail.  See B<--"
+"memlimit-compress=>I<limit> for possible ways to specify the I<limit>."
+msgstr ""
+"legt eine Begrenzung des Speicherverbrauchs für die Dekompression fest. Dies "
+"beeinflusst auch den Modus B<--list>. Falls die Aktion nicht ausführbar ist, "
+"ohne die I<Grenze> zu überschreiten, gibt B<xz> eine Fehlermeldung aus und "
+"die Dekompression wird fehlschlagen. Siehe B<--memlimit-compress=>I<Grenze> "
+"zu möglichen Wegen, die I<Grenze> anzugeben."
+
+#. type: TP
+#: ../src/xz/xz.1:1043
+#, no-wrap
+msgid "B<-M> I<limit>, B<--memlimit=>I<limit>, B<--memory=>I<limit>"
+msgstr "B<-M> I<Grenze>, B<--memlimit=>I<Grenze>, B<--memory=>I<Grenze>"
+
+#. type: Plain text
+#: ../src/xz/xz.1:1047
+msgid ""
+"This is equivalent to specifying B<--memlimit-compress=>I<limit >B<--"
+"memlimit-decompress=>I<limit>."
+msgstr ""
+"Dies ist gleichbedeutend mit B<--memlimit-compress=>I<Grenze >B<--memlimit-"
+"decompress=>I<Grenze>."
+
+#. type: TP
+#: ../src/xz/xz.1:1047
+#, no-wrap
+msgid "B<--no-adjust>"
+msgstr "B<--no-adjust>"
+
+#. type: Plain text
+#: ../src/xz/xz.1:1055
+msgid ""
+"Display an error and exit if the compression settings exceed the memory "
+"usage limit.  The default is to adjust the settings downwards so that the "
+"memory usage limit is not exceeded.  Automatic adjusting is always disabled "
+"when creating raw streams (B<--format=raw>)."
+msgstr ""
+"zeigt einen Fehler an und bricht die Ausführung ab, falls die "
+"Kompressionseinstellungen die Begrenzung der Speichernutzung überschreiten. "
+"Standardmäßig werden die Einstellungen nach unten korrigiert, so dass diese "
+"Grenze nicht überschritten wird. Bei der Erzeugung von Rohdatenströmen (B<--"
+"format=raw>) ist die automatische Korrektur stets deaktiviert."
+
+#. type: TP
+#: ../src/xz/xz.1:1055
+#, no-wrap
+msgid "B<-T> I<threads>, B<--threads=>I<threads>"
+msgstr "B<-T> I<Threads>, B<--threads=>I<Threads>"
+
+#. type: Plain text
+#: ../src/xz/xz.1:1070
+msgid ""
+"Specify the number of worker threads to use.  Setting I<threads> to a "
+"special value B<0> makes B<xz> use as many threads as there are CPU cores on "
+"the system.  The actual number of threads can be less than I<threads> if the "
+"input file is not big enough for threading with the given settings or if "
+"using more threads would exceed the memory usage limit."
+msgstr ""
+"gibt die Anzahl der zu verwendenden Arbeits-Threads an. Wenn Sie I<Threads> "
+"auf einen speziellen Wert B<0> setzen, verwendet B<xz> so viele Threads, wie "
+"Prozessorkerne im System verfügbar sind. Die tatsächliche Anzahl kann "
+"geringer sein als die angegebenen I<Threads>, wenn die Eingabedatei nicht "
+"groß genug für Threading mit den gegebenen Einstellungen ist oder wenn mehr "
+"Threads die Speicherbegrenzung übersteigen würden."
+
+#. type: Plain text
+#: ../src/xz/xz.1:1077
+msgid ""
+"Currently the only threading method is to split the input into blocks and "
+"compress them independently from each other.  The default block size depends "
+"on the compression level and can be overridden with the B<--block-"
+"size=>I<size> option."
+msgstr ""
+"Die gegenwärtig einzige Threading-Methode teilt die Eingabe in Blöcke und "
+"komprimiert diese unabhängig voneinander. Die vorgegebene Blockgröße ist von "
+"der Kompressionsstufe abhängig und kann mit der Option B<--block-"
+"size=>I<Größe> außer Kraft gesetzt werden."
+
+#. type: Plain text
+#: ../src/xz/xz.1:1085
+msgid ""
+"Threaded decompression hasn't been implemented yet.  It will only work on "
+"files that contain multiple blocks with size information in block headers.  "
+"All files compressed in multi-threaded mode meet this condition, but files "
+"compressed in single-threaded mode don't even if B<--block-size=>I<size> is "
+"used."
+msgstr ""
+"Eine thread-basierte Dekompression wurde bislang noch nicht implementiert. "
+"Sie wird nur bei Dateien funktionieren, die mehrere Blöcke mit "
+"Größeninformationen in deren Headern enthalten. Alle im Multi-Thread-Modus "
+"komprimierten Dateien erfüllen diese Bedingung, im Einzel-Thread-Modus "
+"komprimierte Dateien dagegen nicht, selbst wenn B<--block-size=>I<Größe> "
+"verwendet wird."
+
+#. type: SS
+#: ../src/xz/xz.1:1086 ../src/xz/xz.1:2603
+#, no-wrap
+msgid "Custom compressor filter chains"
+msgstr "Benutzerdefinierte Filterketten für die Kompression"
+
+#. type: Plain text
+#: ../src/xz/xz.1:1097
+msgid ""
+"A custom filter chain allows specifying the compression settings in detail "
+"instead of relying on the settings associated to the presets.  When a custom "
+"filter chain is specified, preset options (B<-0> ... B<-9> and B<--"
+"extreme>)  earlier on the command line are forgotten.  If a preset option is "
+"specified after one or more custom filter chain options, the new preset "
+"takes effect and the custom filter chain options specified earlier are "
+"forgotten."
+msgstr ""
+"Eine benutzerdefinierte Filterkette ermöglicht die Angabe detaillierter "
+"Kompressionseinstellungen, anstatt von den Voreinstellungen auszugehen. Wenn "
+"eine benutzerdefinierte Filterkette angegeben wird, werden die vorher in der "
+"Befehlszeile angegebenen Voreinstellungsoptionen (B<-0> … B<-9> und B<--"
+"extreme>) außer Kraft gesetzt. Wenn eine Voreinstellungsoption nach einer "
+"oder mehreren benutzerdefinierten Filterkettenoptionen angegeben wird, dann "
+"wird die neue Voreinstellung wirksam und die zuvor angegebenen "
+"Filterkettenoptionen werden außer Kraft gesetzt."
+
+#. type: Plain text
+#: ../src/xz/xz.1:1104
+msgid ""
+"A filter chain is comparable to piping on the command line.  When "
+"compressing, the uncompressed input goes to the first filter, whose output "
+"goes to the next filter (if any).  The output of the last filter gets "
+"written to the compressed file.  The maximum number of filters in the chain "
+"is four, but typically a filter chain has only one or two filters."
+msgstr ""
+"Eine Filterkette ist mit dem Piping (der Weiterleitung) in der Befehlszeile "
+"vergleichbar. Bei der Kompression gelangt die unkomprimierte Eingabe in den "
+"ersten Filter, dessen Ausgabe wiederum in den zweiten Filter geleitet wird "
+"(sofern ein solcher vorhanden ist). Die Ausgabe des letzten Filters wird in "
+"die komprimierte Datei geschrieben. In einer Filterkette sind maximal vier "
+"Filter zulässig, aber typischerweise besteht eine Filterkette nur aus einem "
+"oder zwei Filtern."
+
+#. type: Plain text
+#: ../src/xz/xz.1:1112
+msgid ""
+"Many filters have limitations on where they can be in the filter chain: some "
+"filters can work only as the last filter in the chain, some only as a non-"
+"last filter, and some work in any position in the chain.  Depending on the "
+"filter, this limitation is either inherent to the filter design or exists to "
+"prevent security issues."
+msgstr ""
+"Bei vielen Filtern ist die Positionierung in der Filterkette eingeschränkt: "
+"Einige Filter sind nur als letzte in der Kette verwendbar, einige können "
+"nicht als letzte Filter gesetzt werden, und andere funktionieren an "
+"beliebiger Stelle. Abhängig von dem Filter ist diese Beschränkung entweder "
+"auf das Design des Filters selbst zurückzuführen oder ist aus "
+"Sicherheitsgründen vorhanden."
+
+#. type: Plain text
+#: ../src/xz/xz.1:1120
+msgid ""
+"A custom filter chain is specified by using one or more filter options in "
+"the order they are wanted in the filter chain.  That is, the order of filter "
+"options is significant! When decoding raw streams (B<--format=raw>), the "
+"filter chain is specified in the same order as it was specified when "
+"compressing."
+msgstr ""
+"Eine benutzerdefinierte Filterkette wird durch eine oder mehrere "
+"Filteroptionen in der Reihenfolge angegeben, in der sie in der Filterkette "
+"wirksam werden sollen. Daher ist die Reihenfolge der Filteroptionen von "
+"signifikanter Bedeutung! Beim Dekodieren von Rohdatenströmen (B<--"
+"format=raw>) wird die Filterkette in der gleichen Reihenfolge angegeben wie "
+"bei der Kompression."
+
+#. type: Plain text
+#: ../src/xz/xz.1:1129
+msgid ""
+"Filters take filter-specific I<options> as a comma-separated list.  Extra "
+"commas in I<options> are ignored.  Every option has a default value, so you "
+"need to specify only those you want to change."
+msgstr ""
+"Filter akzeptieren filterspezifische I<Optionen> in einer durch Kommata "
+"getrennten Liste. Zusätzliche Kommata in den I<Optionen> werden ignoriert. "
+"Jede Option hat einen Standardwert, daher brauchen Sie nur jene anzugeben, "
+"die Sie ändern wollen."
+
+#. type: Plain text
+#: ../src/xz/xz.1:1138
+msgid ""
+"To see the whole filter chain and I<options>, use B<xz -vv> (that is, use "
+"B<--verbose> twice).  This works also for viewing the filter chain options "
+"used by presets."
+msgstr ""
+"Um die gesamte Filterkette und die I<Optionen> anzuzeigen, rufen Sie B<xz -"
+"vv> auf (was gleichbedeutend mit der zweimaligen Angabe von B<--verbose> "
+"ist). Dies funktioniert auch zum Betrachten der von den Voreinstellungen "
+"verwendeten Filterkettenoptionen."
+
+#. type: TP
+#: ../src/xz/xz.1:1138
+#, no-wrap
+msgid "B<--lzma1>[B<=>I<options>]"
+msgstr "B<--lzma1>[B<=>I<Optionen>]"
+
+#. type: TP
+#: ../src/xz/xz.1:1141
+#, no-wrap
+msgid "B<--lzma2>[B<=>I<options>]"
+msgstr "B<--lzma2>[B<=>I<Optionen>]"
+
+#. type: Plain text
+#: ../src/xz/xz.1:1146
+msgid ""
+"Add LZMA1 or LZMA2 filter to the filter chain.  These filters can be used "
+"only as the last filter in the chain."
+msgstr ""
+"fügt LZMA1- oder LZMA2-Filter zur Filterkette hinzu. Diese Filter können nur "
+"als letzte Filter in der Kette verwendet werden."
+
+#. type: Plain text
+#: ../src/xz/xz.1:1158
+msgid ""
+"LZMA1 is a legacy filter, which is supported almost solely due to the legacy "
+"B<.lzma> file format, which supports only LZMA1.  LZMA2 is an updated "
+"version of LZMA1 to fix some practical issues of LZMA1.  The B<.xz> format "
+"uses LZMA2 and doesn't support LZMA1 at all.  Compression speed and ratios "
+"of LZMA1 and LZMA2 are practically the same."
+msgstr ""
+"LZMA1 ist ein veralteter Filter, welcher nur wegen des veralteten B<.lzma>-"
+"Dateiformats unterstützt wird, welches nur LZMA1 unterstützt. LZMA2 ist eine "
+"aktualisierte Version von LZMA1, welche einige praktische Probleme von LZMA1 "
+"behebt. Das B<.xz>-Format verwendet LZMA2 und unterstützt LZMA1 gar nicht. "
+"Kompressionsgeschwindigkeit und -verhältnis sind bei LZMA1 und LZMA2 "
+"praktisch gleich."
+
+#. type: Plain text
+#: ../src/xz/xz.1:1161
+msgid "LZMA1 and LZMA2 share the same set of I<options>:"
+msgstr "LZMA1 und LZMA2 haben die gleichen I<Optionen>:"
+
+#. type: TP
+#: ../src/xz/xz.1:1162
+#, no-wrap
+msgid "B<preset=>I<preset>"
+msgstr "B<preset=>I<Voreinstellung>"
+
+#. type: Plain text
+#: ../src/xz/xz.1:1186
+msgid ""
+"Reset all LZMA1 or LZMA2 I<options> to I<preset>.  I<Preset> consist of an "
+"integer, which may be followed by single-letter preset modifiers.  The "
+"integer can be from B<0> to B<9>, matching the command line options "
+"B<-0> ... B<-9>.  The only supported modifier is currently B<e>, which "
+"matches B<--extreme>.  If no B<preset> is specified, the default values of "
+"LZMA1 or LZMA2 I<options> are taken from the preset B<6>."
+msgstr ""
+"setzt alle LZMA1- oder LZMA2-I<Optionen> auf die I<Voreinstellung> zurück. "
+"Diese I<Voreinstellung> wird in Form einer Ganzzahl angegeben, der ein aus "
+"einem einzelnen Buchstaben bestehender Voreinstellungsmodifikator folgen "
+"kann. Die Ganzzahl kann B<0> bis B<9> sein, entsprechend den "
+"Befehlszeilenoptionen B<-0> … B<-9>. Gegenwärtig ist B<e> der einzige "
+"unterstützte Modifikator, was B<--extreme> entspricht. Wenn keine "
+"B<Voreinstellung> angegeben ist, werden die Standardwerte der LZMA1- oder "
+"LZMA2-I<Optionen> der Voreinstellung B<6> entnommen."
+
+#. type: TP
+#: ../src/xz/xz.1:1186
+#, no-wrap
+msgid "B<dict=>I<size>"
+msgstr "B<dict=>I<Größe>"
+
+# FIXME Dezimaltrenner in 1.5 GB
+#. type: Plain text
+#: ../src/xz/xz.1:1201
+msgid ""
+"Dictionary (history buffer)  I<size> indicates how many bytes of the "
+"recently processed uncompressed data is kept in memory.  The algorithm tries "
+"to find repeating byte sequences (matches) in the uncompressed data, and "
+"replace them with references to the data currently in the dictionary.  The "
+"bigger the dictionary, the higher is the chance to find a match.  Thus, "
+"increasing dictionary I<size> usually improves compression ratio, but a "
+"dictionary bigger than the uncompressed file is waste of memory."
+msgstr ""
+"Die I<Größe> des Wörterbuchs (Chronikpuffers) gibt an, wie viel Byte der "
+"kürzlich verarbeiteten unkomprimierten Daten im Speicher behalten werden "
+"sollen. Der Algorithmus versucht, sich wiederholende Byte-Abfolgen "
+"(Übereinstimmungen) in den unkomprimierten Daten zu finden und diese durch "
+"Referenzen zu den Daten zu ersetzen, die sich gegenwärtig im Wörterbuch "
+"befinden. Je größer das Wörterbuch, umso größer ist die Chance, eine "
+"Übereinstimmung zu finden. Daher bewirkt eine Erhöhung der I<Größe> des "
+"Wörterbuchs üblicherweise ein besseres Kompressionsverhältnis, aber ein "
+"Wörterbuch, das größer ist als die unkomprimierte Datei, wäre "
+"Speicherverschwendung."
+
+#. type: Plain text
+#: ../src/xz/xz.1:1210
+msgid ""
+"Typical dictionary I<size> is from 64\\ KiB to 64\\ MiB.  The minimum is 4\\ "
+"KiB.  The maximum for compression is currently 1.5\\ GiB (1536\\ MiB).  The "
+"decompressor already supports dictionaries up to one byte less than 4\\ GiB, "
+"which is the maximum for the LZMA1 and LZMA2 stream formats."
+msgstr ""
+"Typische Wörterbuch-I<Größen> liegen im Bereich von 64\\ KiB bis 64\\ MiB. "
+"Das Minimum ist 4\\ KiB. Das Maximum für die Kompression ist gegenwärtig "
+"1.5\\ GiB (1536\\ MiB). Bei der Dekompression wird bereits eine "
+"Wörterbuchgröße bis zu 4\\ GiB minus 1 Byte unterstützt, welche das Maximum "
+"für die LZMA1- und LZMA2-Datenstromformate ist."
+
+#. type: Plain text
+#: ../src/xz/xz.1:1237
+msgid ""
+"Dictionary I<size> and match finder (I<mf>)  together determine the memory "
+"usage of the LZMA1 or LZMA2 encoder.  The same (or bigger) dictionary "
+"I<size> is required for decompressing that was used when compressing, thus "
+"the memory usage of the decoder is determined by the dictionary size used "
+"when compressing.  The B<.xz> headers store the dictionary I<size> either as "
+"2^I<n> or 2^I<n> + 2^(I<n>-1), so these I<sizes> are somewhat preferred for "
+"compression.  Other I<sizes> will get rounded up when stored in the B<.xz> "
+"headers."
+msgstr ""
+"Die I<Größe> des Wörterbuchs und der Übereinstimmungsfinder (I<Üf>) "
+"bestimmen zusammen den Speicherverbrauch des LZMA1- oder LZMA2-Kodierers. "
+"Bei der Dekompression ist ein Wörterbuch der gleichen I<Größe> (oder ein "
+"noch größeres) wie bei der Kompression erforderlich, daher wird der "
+"Speicherverbrauch des Dekoders durch die Größe des bei der Kompression "
+"verwendeten Wörterbuchs bestimmt. Die B<.xz>-Header speichern die I<Größe> "
+"des Wörterbuchs entweder als 2^I<n> oder 2^I<n> + 2^(I<n>-1), so dass diese "
+"I<Größen> für die Kompression etwas bevorzugt werden. Andere I<Größen> "
+"werden beim Speichern in den B<.xz>-Headern aufgerundet."
+
+#. type: TP
+#: ../src/xz/xz.1:1237
+#, no-wrap
+msgid "B<lc=>I<lc>"
+msgstr "B<lc=>I<lc>"
+
+#. type: Plain text
+#: ../src/xz/xz.1:1246
+msgid ""
+"Specify the number of literal context bits.  The minimum is 0 and the "
+"maximum is 4; the default is 3.  In addition, the sum of I<lc> and I<lp> "
+"must not exceed 4."
+msgstr ""
+"gibt die Anzahl der literalen Kontextbits an. Das Minimum ist 0 und das "
+"Maximum 4; der Standardwert ist 3. Außerdem darf die Summe von I<lc> und "
+"I<lp> nicht größer als 4 sein."
+
+#. type: Plain text
+#: ../src/xz/xz.1:1251
+msgid ""
+"All bytes that cannot be encoded as matches are encoded as literals.  That "
+"is, literals are simply 8-bit bytes that are encoded one at a time."
+msgstr ""
+"Alle Bytes, die nicht als Übereinstimmungen kodiert werden können, werden "
+"als Literale kodiert. Solche Literale sind einfache 8-bit-Bytes, die jeweils "
+"für sich kodiert werden."
+
+#. type: Plain text
+#: ../src/xz/xz.1:1265
+msgid ""
+"The literal coding makes an assumption that the highest I<lc> bits of the "
+"previous uncompressed byte correlate with the next byte.  E.g. in typical "
+"English text, an upper-case letter is often followed by a lower-case letter, "
+"and a lower-case letter is usually followed by another lower-case letter.  "
+"In the US-ASCII character set, the highest three bits are 010 for upper-case "
+"letters and 011 for lower-case letters.  When I<lc> is at least 3, the "
+"literal coding can take advantage of this property in the uncompressed data."
+msgstr ""
+"Bei der Literalkodierung wird angenommen, dass die höchsten I<lc>-Bits des "
+"zuvor unkomprimierten Bytes mit dem nächsten Byte in Beziehung stehen. Zum "
+"Beispiel folgt in typischen englischsprachigen Texten auf einen "
+"Großbuchstaben ein Kleinbuchstabe und auf einen Kleinbuchstaben "
+"üblicherweise wieder ein Kleinbuchstabe. Im US-ASCII-Zeichensatz sind die "
+"höchsten drei Bits 010 für Großbuchstaben und 011 für Kleinbuchstaben. Wenn "
+"I<lc> mindestens 3 ist, kann die literale Kodierung diese Eigenschaft der "
+"unkomprimierten Daten ausnutzen."
+
+#. type: Plain text
+#: ../src/xz/xz.1:1274
+msgid ""
+"The default value (3) is usually good.  If you want maximum compression, "
+"test B<lc=4>.  Sometimes it helps a little, and sometimes it makes "
+"compression worse.  If it makes it worse, test e.g.\\& B<lc=2> too."
+msgstr ""
+"Der Vorgabewert (3) ist üblicherweise gut. Wenn Sie die maximale Kompression "
+"erreichen wollen, versuchen Sie B<lc=4>. Manchmal hilft es ein wenig, doch "
+"manchmal verschlechtert es die Kompression. Im letzteren Fall versuchen Sie "
+"zum Beispiel auch\\& B<lc=2>."
+
+#. type: TP
+#: ../src/xz/xz.1:1274
+#, no-wrap
+msgid "B<lp=>I<lp>"
+msgstr "B<lp=>I<lp>"
+
+#. type: Plain text
+#: ../src/xz/xz.1:1278
+msgid ""
+"Specify the number of literal position bits.  The minimum is 0 and the "
+"maximum is 4; the default is 0."
+msgstr ""
+"gibt die Anzahl der literalen Positionsbits an. Das Minimum ist 0 und das "
+"Maximum 4; die Vorgabe ist 0."
+
+#. type: Plain text
+#: ../src/xz/xz.1:1285
+msgid ""
+"I<Lp> affects what kind of alignment in the uncompressed data is assumed "
+"when encoding literals.  See I<pb> below for more information about "
+"alignment."
+msgstr ""
+"I<Lp> beeinflusst, welche Art der Ausrichtung der unkomprimierten Daten beim "
+"Kodieren von Literalen angenommen wird. Siehe I<pb> weiter unten für weitere "
+"Informationen zur Ausrichtung."
+
+#. type: TP
+#: ../src/xz/xz.1:1285
+#, no-wrap
+msgid "B<pb=>I<pb>"
+msgstr "B<pb=>I<Anzahl>"
+
+#. type: Plain text
+#: ../src/xz/xz.1:1289
+msgid ""
+"Specify the number of position bits.  The minimum is 0 and the maximum is 4; "
+"the default is 2."
+msgstr ""
+"legt die Anzahl der Positions-Bits fest. Das Minimum ist 0 und das Maximum "
+"4; Standard ist 2."
+
+#. type: Plain text
+#: ../src/xz/xz.1:1296
+msgid ""
+"I<Pb> affects what kind of alignment in the uncompressed data is assumed in "
+"general.  The default means four-byte alignment (2^I<pb>=2^2=4), which is "
+"often a good choice when there's no better guess."
+msgstr ""
+"I<Pb> beeinflusst, welche Art der Ausrichtung der unkomprimierten Daten "
+"generell angenommen wird. Standardmäßig wird eine Vier-Byte-Ausrichtung "
+"angenommen (2^I<pb>=2^2=4), was oft eine gute Wahl ist, wenn es keine "
+"bessere Schätzung gibt."
+
+#. type: Plain text
+#: ../src/xz/xz.1:1310
+msgid ""
+"When the aligment is known, setting I<pb> accordingly may reduce the file "
+"size a little.  E.g. with text files having one-byte alignment (US-ASCII, "
+"ISO-8859-*, UTF-8), setting B<pb=0> can improve compression slightly.  For "
+"UTF-16 text, B<pb=1> is a good choice.  If the alignment is an odd number "
+"like 3 bytes, B<pb=0> might be the best choice."
+msgstr ""
+"Wenn die Ausrichtung bekannt ist, kann das entsprechende Setzen von I<pb> "
+"die Dateigröße ein wenig verringern. Wenn Textdateien zum Beispiel eine Ein-"
+"Byte-Ausrichtung haben (US-ASCII, ISO-8859-*, UTF-8), kann das Setzen von "
+"B<pb=0> die Kompression etwas verbessern. Für UTF-16-Text ist B<pb=1> eine "
+"gute Wahl. Wenn die Ausrichtung eine ungerade Zahl wie beispielsweise 3 Byte "
+"ist, könnte B<pb=0> die beste Wahl sein."
+
+#. type: Plain text
+#: ../src/xz/xz.1:1318
+msgid ""
+"Even though the assumed alignment can be adjusted with I<pb> and I<lp>, "
+"LZMA1 and LZMA2 still slightly favor 16-byte alignment.  It might be worth "
+"taking into account when designing file formats that are likely to be often "
+"compressed with LZMA1 or LZMA2."
+msgstr ""
+"Obwohl die angenommene Ausrichtung mit I<pb> und I<lp> angepasst werden "
+"kann, bevorzugen LZMA1 und LZMA2 noch etwas die 16-Byte-Ausrichtung. Das "
+"sollten Sie vielleicht beim Design von Dateiformaten berücksichtigen, die "
+"wahrscheinlich oft mit LZMA1 oder LZMA2 komprimiert werden."
+
+#. type: TP
+#: ../src/xz/xz.1:1318
+#, no-wrap
+msgid "B<mf=>I<mf>"
+msgstr "B<mf=>I<Üf>"
+
+#. type: Plain text
+#: ../src/xz/xz.1:1333
+msgid ""
+"Match finder has a major effect on encoder speed, memory usage, and "
+"compression ratio.  Usually Hash Chain match finders are faster than Binary "
+"Tree match finders.  The default depends on the I<preset>: 0 uses B<hc3>, "
+"1-3 use B<hc4>, and the rest use B<bt4>."
+msgstr ""
+"Der Übereinstimmungsfinder hat einen großen Einfluss auf die Geschwindigkeit "
+"des Kodierers, den Speicherbedarf und das Kompressionsverhältnis. "
+"Üblicherweise sind auf Hash-Ketten basierende Übereinstimmungsfinder "
+"schneller als jene, die mit Binärbäumen arbeiten. Die Vorgabe hängt von der "
+"I<Voreinstellungsstufe> ab: 0 verwendet B<hc3>, 1-3 verwenden B<hc4> und der "
+"Rest verwendet B<bt4>."
+
+#. type: Plain text
+#: ../src/xz/xz.1:1339
+msgid ""
+"The following match finders are supported.  The memory usage formulas below "
+"are rough approximations, which are closest to the reality when I<dict> is a "
+"power of two."
+msgstr ""
+"Die folgenden Übereinstimmungsfinder werden unterstützt. Die Formeln zur "
+"Ermittlung des Speicherverbrauchs sind grobe Schätzungen, die der Realität "
+"am nächsten kommen, wenn I<Wörterbuch> eine Zweierpotenz ist."
+
+#. type: TP
+#: ../src/xz/xz.1:1340
+#, no-wrap
+msgid "B<hc3>"
+msgstr "B<hc3>"
+
+#. type: Plain text
+#: ../src/xz/xz.1:1343
+msgid "Hash Chain with 2- and 3-byte hashing"
+msgstr "Hash-Kette mit 2- und 3-Byte-Hashing"
+
+#. type: Plain text
+#: ../src/xz/xz.1:1347 ../src/xz/xz.1:1396
+msgid "Minimum value for I<nice>: 3"
+msgstr "Minimalwert für I<nice>: 3"
+
+#. type: Plain text
+#: ../src/xz/xz.1:1349 ../src/xz/xz.1:1368 ../src/xz/xz.1:1398
+#: ../src/xz/xz.1:1417
+msgid "Memory usage:"
+msgstr "Speicherbedarf:"
+
+#. type: Plain text
+#: ../src/xz/xz.1:1354
+msgid "I<dict> * 7.5 (if I<dict> E<lt>= 16 MiB);"
+msgstr "I<dict> * 7,5 (falls I<dict> E<lt>= 16 MiB);"
+
+#. type: Plain text
+#: ../src/xz/xz.1:1359
+msgid "I<dict> * 5.5 + 64 MiB (if I<dict> E<gt> 16 MiB)"
+msgstr "I<dict> * 5,5 + 64 MiB (falls I<dict> E<gt> 16 MiB)"
+
+#. type: TP
+#: ../src/xz/xz.1:1359
+#, no-wrap
+msgid "B<hc4>"
+msgstr "B<hc4>"
+
+#. type: Plain text
+#: ../src/xz/xz.1:1362
+msgid "Hash Chain with 2-, 3-, and 4-byte hashing"
+msgstr "Hash-Kette mit 2-, 3- und 4-Byte-Hashing"
+
+#. type: Plain text
+#: ../src/xz/xz.1:1366 ../src/xz/xz.1:1415
+msgid "Minimum value for I<nice>: 4"
+msgstr "Minimaler Wert für I<nice>: 4"
+
+#. type: Plain text
+#: ../src/xz/xz.1:1373
+msgid "I<dict> * 7.5 (if I<dict> E<lt>= 32 MiB);"
+msgstr "I<dict> * 7,5 (falls I<dict> E<lt>= 32 MiB ist);"
+
+#. type: Plain text
+#: ../src/xz/xz.1:1378
+msgid "I<dict> * 6.5 (if I<dict> E<gt> 32 MiB)"
+msgstr "I<dict> * 6,5 (falls I<dict> E<gt> 32 MiB ist)"
+
+#. type: TP
+#: ../src/xz/xz.1:1378
+#, no-wrap
+msgid "B<bt2>"
+msgstr "B<bt2>"
+
+#. type: Plain text
+#: ../src/xz/xz.1:1381
+msgid "Binary Tree with 2-byte hashing"
+msgstr "Binärbaum mit 2-Byte-Hashing"
+
+#. type: Plain text
+#: ../src/xz/xz.1:1385
+msgid "Minimum value for I<nice>: 2"
+msgstr "Minimaler Wert für I<nice>: 2"
+
+#. type: Plain text
+#: ../src/xz/xz.1:1389
+msgid "Memory usage: I<dict> * 9.5"
+msgstr "Speicherverbrauch: I<dict> * 9.5"
+
+#. type: TP
+#: ../src/xz/xz.1:1389
+#, no-wrap
+msgid "B<bt3>"
+msgstr "B<bt3>"
+
+#. type: Plain text
+#: ../src/xz/xz.1:1392
+msgid "Binary Tree with 2- and 3-byte hashing"
+msgstr "Binärbaum mit 2- und 3-Byte-Hashing"
+
+#. type: Plain text
+#: ../src/xz/xz.1:1403
+msgid "I<dict> * 11.5 (if I<dict> E<lt>= 16 MiB);"
+msgstr "I<dict> * 11,5 (falls I<dict> E<lt>= 16 MiB ist);"
+
+#. type: Plain text
+#: ../src/xz/xz.1:1408
+msgid "I<dict> * 9.5 + 64 MiB (if I<dict> E<gt> 16 MiB)"
+msgstr "I<dict> * 9,5 + 64 MiB (falls I<dict> E<gt> 16 MiB ist)"
+
+#. type: TP
+#: ../src/xz/xz.1:1408
+#, no-wrap
+msgid "B<bt4>"
+msgstr "B<bt4>"
+
+#. type: Plain text
+#: ../src/xz/xz.1:1411
+msgid "Binary Tree with 2-, 3-, and 4-byte hashing"
+msgstr "Binärbaum mit 2-, 3- und 4-Byte-Hashing"
+
+#. type: Plain text
+#: ../src/xz/xz.1:1422
+msgid "I<dict> * 11.5 (if I<dict> E<lt>= 32 MiB);"
+msgstr "I<dict> * 11,5 (falls I<dict> E<lt>= 32 MiB ist);"
+
+#. type: Plain text
+#: ../src/xz/xz.1:1427
+msgid "I<dict> * 10.5 (if I<dict> E<gt> 32 MiB)"
+msgstr "I<dict> * 10,5 (falls I<dict> E<gt> 32 MiB ist)"
+
+#. type: TP
+#: ../src/xz/xz.1:1428
+#, no-wrap
+msgid "B<mode=>I<mode>"
+msgstr "B<mode=>I<Modus>"
+
+#. type: Plain text
+#: ../src/xz/xz.1:1449
+msgid ""
+"Compression I<mode> specifies the method to analyze the data produced by the "
+"match finder.  Supported I<modes> are B<fast> and B<normal>.  The default is "
+"B<fast> for I<presets> 0-3 and B<normal> for I<presets> 4-9."
+msgstr ""
+"gibt die Methode zum Analysieren der vom Übereinstimmungsfinder gelieferten "
+"Daten an. Als I<Modi> werden B<fast> und B<normal> unterstützt. Die Vorgabe "
+"ist B<fast> für die I<Voreinstellungsstufen> 0-3 und B<normal> für die "
+"I<Voreinstellungsstufen> 4-9."
+
+#. type: Plain text
+#: ../src/xz/xz.1:1458
+msgid ""
+"Usually B<fast> is used with Hash Chain match finders and B<normal> with "
+"Binary Tree match finders.  This is also what the I<presets> do."
+msgstr ""
+"Üblicherweise wird B<fast> mit Hashketten-basierten Übereinstimmungsfindern "
+"und B<normal> mit Binärbaum-basierten Übereinstimmungsfindern verwendet. So "
+"machen es auch die I<Voreinstellungsstufen>."
+
+#. type: TP
+#: ../src/xz/xz.1:1458
+#, no-wrap
+msgid "B<nice=>I<nice>"
+msgstr "B<nice=>I<nice>"
+
+#. type: Plain text
+#: ../src/xz/xz.1:1465
+msgid ""
+"Specify what is considered to be a nice length for a match.  Once a match of "
+"at least I<nice> bytes is found, the algorithm stops looking for possibly "
+"better matches."
+msgstr ""
+"gibt an, was als annehmbarer Wert für eine Übereinstimmung angesehen werden "
+"kann. Wenn eine Übereinstimmung gefunden wird, die mindestens diesen I<nice>-"
+"Wert hat, sucht der Algorithmus nicht weiter nach besseren Übereinstimmungen."
+
+#. type: Plain text
+#: ../src/xz/xz.1:1472
+msgid ""
+"I<Nice> can be 2-273 bytes.  Higher values tend to give better compression "
+"ratio at the expense of speed.  The default depends on the I<preset>."
+msgstr ""
+"Der I<nice>-Wert kann 2-273 Byte sein. Höhere Werte tendieren zu einem "
+"besseren Kompressionsverhältnis, aber auf Kosten der Geschwindigkeit. Die "
+"Vorgabe hängt von der I<Voreinstellungsstufe> ab."
+
+#. type: TP
+#: ../src/xz/xz.1:1472
+#, no-wrap
+msgid "B<depth=>I<depth>"
+msgstr "B<depth=>I<Tiefe>"
+
+#. type: Plain text
+#: ../src/xz/xz.1:1482
+msgid ""
+"Specify the maximum search depth in the match finder.  The default is the "
+"special value of 0, which makes the compressor determine a reasonable "
+"I<depth> from I<mf> and I<nice>."
+msgstr ""
+"legt die maximale Suchtiefe im Übereinstimmungsfinder fest. Vorgegeben ist "
+"der spezielle Wert 0, der den Kompressor veranlasst, einen annehmbaren Wert "
+"für I<Tiefe> aus I<Üf> und I<nice>-Wert zu bestimmen."
+
+#. type: Plain text
+#: ../src/xz/xz.1:1493
+msgid ""
+"Reasonable I<depth> for Hash Chains is 4-100 and 16-1000 for Binary Trees.  "
+"Using very high values for I<depth> can make the encoder extremely slow with "
+"some files.  Avoid setting the I<depth> over 1000 unless you are prepared to "
+"interrupt the compression in case it is taking far too long."
+msgstr ""
+"Die angemessene I<Tiefe> für Hash-Ketten ist 4-100 und 16-1000 für "
+"Binärbäume. Hohe Werte für die I<Tiefe> können den Kodierer bei einigen "
+"Dateien extrem verlangsamen. Vermeiden Sie es, die I<Tiefe> über einen Wert "
+"von 100 zu setzen, oder stellen Sie sich darauf ein, die Kompression "
+"abzubrechen, wenn sie zu lange dauert."
+
+#. type: Plain text
+#: ../src/xz/xz.1:1504
+msgid ""
+"When decoding raw streams (B<--format=raw>), LZMA2 needs only the dictionary "
+"I<size>.  LZMA1 needs also I<lc>, I<lp>, and I<pb>."
+msgstr ""
+"Beim Dekodieren von Rohdatenströmen (B<--format=raw>) benötigt LZMA2 nur die "
+"Wörterbuch-I<Größe>.  LZMA1 benötigt außerdem I<lc>, I<lp> und I<pb>."
+
+#. type: TP
+#: ../src/xz/xz.1:1504
+#, no-wrap
+msgid "B<--x86>[B<=>I<options>]"
+msgstr "B<--x86>[B<=>I<Optionen>]"
+
+#. type: TP
+#: ../src/xz/xz.1:1507
+#, no-wrap
+msgid "B<--powerpc>[B<=>I<options>]"
+msgstr "B<--powerpc>[B<=>I<Optionen>]"
+
+#. type: TP
+#: ../src/xz/xz.1:1509
+#, no-wrap
+msgid "B<--ia64>[B<=>I<options>]"
+msgstr "B<--ia64>[B<=>I<Optionen>]"
+
+#. type: TP
+#: ../src/xz/xz.1:1511
+#, no-wrap
+msgid "B<--arm>[B<=>I<options>]"
+msgstr "B<--arm>[B<=>I<Optionen>]"
+
+#. type: TP
+#: ../src/xz/xz.1:1513
+#, no-wrap
+msgid "B<--armthumb>[B<=>I<options>]"
+msgstr "B<--armthumb>[B<=>I<Optionen>]"
+
+#. type: TP
+#: ../src/xz/xz.1:1515
+#, no-wrap
+msgid "B<--sparc>[B<=>I<options>]"
+msgstr "B<--sparc>[B<=>I<Optionen>]"
+
+#. type: Plain text
+#: ../src/xz/xz.1:1521
+msgid ""
+"Add a branch/call/jump (BCJ) filter to the filter chain.  These filters can "
+"be used only as a non-last filter in the filter chain."
+msgstr ""
+"fügt ein »Branch/Call/Jump«-(BCJ-)Filter zur Filterkette hinzu. Diese Filter "
+"können nicht als letzter Filter in der Filterkette verwendet werden."
+
+#. type: Plain text
+#: ../src/xz/xz.1:1533
+msgid ""
+"A BCJ filter converts relative addresses in the machine code to their "
+"absolute counterparts.  This doesn't change the size of the data, but it "
+"increases redundancy, which can help LZMA2 to produce 0-15\\ % smaller B<."
+"xz> file.  The BCJ filters are always reversible, so using a BCJ filter for "
+"wrong type of data doesn't cause any data loss, although it may make the "
+"compression ratio slightly worse."
+msgstr ""
+"Ein BCJ-Filter wandelt relative Adressen im Maschinencode in deren absolute "
+"Gegenstücke um. Die Datengröße wird dadurch nicht geändert, aber die "
+"Redundanz erhöht, was LZMA2 dabei helfen kann, eine um 10 bis 15% kleinere "
+"B<.xz>-Datei zu erstellen. Die BCJ-Filter sind immer reversibel, daher "
+"verursacht die Anwendung eines BCJ-Filters auf den falschen Datentyp keinen "
+"Datenverlust, wobei aber das Kompressionsverhältnis etwas schlechter werden "
+"könnte."
+
+#. type: Plain text
+#: ../src/xz/xz.1:1540
+msgid ""
+"It is fine to apply a BCJ filter on a whole executable; there's no need to "
+"apply it only on the executable section.  Applying a BCJ filter on an "
+"archive that contains both executable and non-executable files may or may "
+"not give good results, so it generally isn't good to blindly apply a BCJ "
+"filter when compressing binary packages for distribution."
+msgstr ""
+"Es ist in Ordnung, einen BCJ-Filter auf eine gesamte Binärdatei anzuwenden; "
+"es ist nicht nötig, dies nur auf den binären Bereich zu beschränken. Die "
+"Anwendung eines BCJ-Filters auf ein Archiv, das sowohl binäre als auch nicht-"
+"binäre Dateien enthält, kann gute Ergebnisse liefern, muss es aber nicht. "
+"Daher ist es generell nicht gut, einen BCJ-Filter blindlings anzuwenden, "
+"wenn Sie Binärpakete zwecks Weitergabe komprimieren wollen."
+
+#. type: Plain text
+#: ../src/xz/xz.1:1548
+msgid ""
+"These BCJ filters are very fast and use insignificant amount of memory.  If "
+"a BCJ filter improves compression ratio of a file, it can improve "
+"decompression speed at the same time.  This is because, on the same "
+"hardware, the decompression speed of LZMA2 is roughly a fixed number of "
+"bytes of compressed data per second."
+msgstr ""
+"Diese BCJ-Filter sind sehr schnell und erhöhen den Speicherbedarf nur "
+"unerheblich. Wenn ein BCJ-Filter das Kompressionsverhältnis einer Datei "
+"verbessert, kann er auch gleichzeitig die Dekompressionsgeschwindigkeit "
+"verbessern. Das kommt daher, dass auf der gleichen Hardware die "
+"Dekompressionsgeschwindigkeit von LZMA2 ungefähr eine feste Anzahl Byte an "
+"komprimierten Daten pro Sekunde ist."
+
+#. type: Plain text
+#: ../src/xz/xz.1:1551
+msgid "These BCJ filters have known problems related to the compression ratio:"
+msgstr ""
+"Diese BCJ-Filter haben bekannte Probleme mit dem Kompressionsverhältnis:"
+
+#. type: Plain text
+#: ../src/xz/xz.1:1558
+msgid ""
+"Some types of files containing executable code (e.g. object files, static "
+"libraries, and Linux kernel modules)  have the addresses in the instructions "
+"filled with filler values.  These BCJ filters will still do the address "
+"conversion, which will make the compression worse with these files."
+msgstr ""
+"In einigen Dateitypen, die ausführbaren Code enthalten (zum Beispiel "
+"Objektdateien, statische Bibliotheken und Linux-Kernelmodule), sind die "
+"Adressen in den Anweisungen mit Füllwerten gefüllt. Diese BCJ-Filter führen "
+"dennoch die Adressumwandlung aus, wodurch die Kompression bei diesen Dateien "
+"schlechter wird."
+
+#. type: Plain text
+#: ../src/xz/xz.1:1565
+msgid ""
+"Applying a BCJ filter on an archive containing multiple similar executables "
+"can make the compression ratio worse than not using a BCJ filter.  This is "
+"because the BCJ filter doesn't detect the boundaries of the executable "
+"files, and doesn't reset the address conversion counter for each executable."
+msgstr ""
+"Bei der Anwendung eines BCJ-Filters auf ein Archiv, das mehrere ähnliche "
+"Binärdateien enthält, kann das Kompressionsverhältnis schlechter sein als "
+"ohne BCJ-Filter. Das kommt daher, weil der BCJ-Filter die Grenzen der "
+"Binärdateien nicht erkennt und den Zähler der Adressumwandlung für jede "
+"Binärdatei nicht zurücksetzt."
+
+#. type: Plain text
+#: ../src/xz/xz.1:1572
+msgid ""
+"Both of the above problems will be fixed in the future in a new filter.  The "
+"old BCJ filters will still be useful in embedded systems, because the "
+"decoder of the new filter will be bigger and use more memory."
+msgstr ""
+"Beide der oben genannten Probleme werden in der Zukunft in einem neuen "
+"Filter nicht mehr auftreten. Die alten BCJ-Filter werden noch in "
+"eingebetteten Systemen von Nutzen sein, weil der Dekoder des neuen Filters "
+"größer sein und mehr Speicher beanspruchen wird."
+
+# FIXME have have
+#. type: Plain text
+#: ../src/xz/xz.1:1574
+msgid "Different instruction sets have different alignment:"
+msgstr "Verschiedene Befehlssätze haben unterschiedliche Ausrichtungen:"
+
+#. type: tbl table
+#: ../src/xz/xz.1:1581
+#, no-wrap
+msgid "Filter"
+msgstr "Filter"
+
+#. type: tbl table
+#: ../src/xz/xz.1:1581
+#, no-wrap
+msgid "Alignment"
+msgstr "Ausrichtung"
+
+#. type: tbl table
+#: ../src/xz/xz.1:1581
+#, no-wrap
+msgid "Notes"
+msgstr "Hinweise"
+
+#. type: tbl table
+#: ../src/xz/xz.1:1582
+#, no-wrap
+msgid "x86"
+msgstr "x86"
+
+#. type: tbl table
+#: ../src/xz/xz.1:1582
+#, no-wrap
+msgid "32-bit or 64-bit x86"
+msgstr "32-Bit oder 64-Bit x86"
+
+#. type: tbl table
+#: ../src/xz/xz.1:1583
+#, no-wrap
+msgid "PowerPC"
+msgstr "PowerPC"
+
+#. type: tbl table
+#: ../src/xz/xz.1:1583
+#, no-wrap
+msgid "Big endian only"
+msgstr "Nur Big Endian"
+
+#. type: tbl table
+#: ../src/xz/xz.1:1584
+#, no-wrap
+msgid "ARM"
+msgstr "ARM"
+
+#. type: tbl table
+#: ../src/xz/xz.1:1584 ../src/xz/xz.1:1585
+#, no-wrap
+msgid "Little endian only"
+msgstr "Nur Little Endian"
+
+#. type: tbl table
+#: ../src/xz/xz.1:1585
+#, no-wrap
+msgid "ARM-Thumb"
+msgstr "ARM-Thumb"
+
+#. type: tbl table
+#: ../src/xz/xz.1:1586
+#, no-wrap
+msgid "IA-64"
+msgstr "IA-64"
+
+#. type: tbl table
+#: ../src/xz/xz.1:1586
+#, no-wrap
+msgid "16"
+msgstr "16"
+
+#. type: tbl table
+#: ../src/xz/xz.1:1586 ../src/xz/xz.1:1587
+#, no-wrap
+msgid "Big or little endian"
+msgstr "Big oder Little Endian"
+
+#. type: tbl table
+#: ../src/xz/xz.1:1587
+#, no-wrap
+msgid "SPARC"
+msgstr "SPARC"
+
+#. type: Plain text
+#: ../src/xz/xz.1:1602
+msgid ""
+"Since the BCJ-filtered data is usually compressed with LZMA2, the "
+"compression ratio may be improved slightly if the LZMA2 options are set to "
+"match the alignment of the selected BCJ filter.  For example, with the IA-64 "
+"filter, it's good to set B<pb=4> with LZMA2 (2^4=16).  The x86 filter is an "
+"exception; it's usually good to stick to LZMA2's default four-byte alignment "
+"when compressing x86 executables."
+msgstr ""
+"Da die BCJ-gefilterten Daten üblicherweise mit LZMA2 komprimiert sind, kann "
+"das Kompressionsverhältnis dadurch etwas verbessert werden, dass die LZMA2-"
+"Optionen so gesetzt werden, dass sie der Ausrichtung des gewählten BCJ-"
+"Filters entsprechen. Zum Beispiel ist es beim IA-64-Filter eine gute Wahl, "
+"B<pb=4> mit LZMA2 zu setzen (2^4=16). Der x86-Filter bildet dabei eine "
+"Ausnahme; Sie sollten bei der für LZMA2 voreingestellten 4-Byte-Ausrichtung "
+"bleiben, wenn Sie x86-Binärdateien komprimieren."
+
+#. type: Plain text
+#: ../src/xz/xz.1:1605
+msgid "All BCJ filters support the same I<options>:"
+msgstr "Alle BCJ-Filter unterstützen die gleichen I<Optionen>:"
+
+#. type: TP
+#: ../src/xz/xz.1:1606
+#, no-wrap
+msgid "B<start=>I<offset>"
+msgstr "B<start=>I<Versatz>"
+
+#. type: Plain text
+#: ../src/xz/xz.1:1620
+msgid ""
+"Specify the start I<offset> that is used when converting between relative "
+"and absolute addresses.  The I<offset> must be a multiple of the alignment "
+"of the filter (see the table above).  The default is zero.  In practice, the "
+"default is good; specifying a custom I<offset> is almost never useful."
+msgstr ""
+"gibt den Start-I<Versatz> an, der bei der Umwandlung zwischen relativen und "
+"absoluten Adressen verwendet wird. Der I<Versatz> muss ein Vielfaches der "
+"Filterausrichtung sein (siehe die Tabelle oben). Der Standardwert ist 0. In "
+"der Praxis ist dieser Standardwert gut; die Angabe eines benutzerdefinierten "
+"I<Versatzes> ist fast immer unnütz."
+
+#. type: TP
+#: ../src/xz/xz.1:1621
+#, no-wrap
+msgid "B<--delta>[B<=>I<options>]"
+msgstr "B<--delta>[B<=>I<Optionen>]"
+
+#. type: Plain text
+#: ../src/xz/xz.1:1626
+msgid ""
+"Add the Delta filter to the filter chain.  The Delta filter can be only used "
+"as a non-last filter in the filter chain."
+msgstr ""
+"fügt den Delta-Filter zur Filterkette hinzu. Der Delta-Filter kann nicht als "
+"letzter Filter in der Filterkette verwendet werden."
+
+#. type: Plain text
+#: ../src/xz/xz.1:1635
+msgid ""
+"Currently only simple byte-wise delta calculation is supported.  It can be "
+"useful when compressing e.g. uncompressed bitmap images or uncompressed PCM "
+"audio.  However, special purpose algorithms may give significantly better "
+"results than Delta + LZMA2.  This is true especially with audio, which "
+"compresses faster and better e.g. with B<flac>(1)."
+msgstr ""
+"Gegenwärtig wird nur eine einfache, Byte-bezogene Delta-Berechnung "
+"unterstützt. Beim Komprimieren von zum Beispiel unkomprimierten Bitmap-"
+"Bildern oder unkomprimierten PCM-Audiodaten kann es jedoch sinnvoll sein. "
+"Dennoch können für spezielle Zwecke entworfene Algorithmen deutlich bessere "
+"Ergebnisse als Delta und LZMA2 liefern. Dies trifft insbesondere auf "
+"Audiodaten zu, die sich zum Beispiel mit B<flac>(1) schneller und besser "
+"komprimieren lassen."
+
+#. type: Plain text
+#: ../src/xz/xz.1:1638
+msgid "Supported I<options>:"
+msgstr "Unterstützte I<Optionen>:"
+
+#. type: TP
+#: ../src/xz/xz.1:1639
+#, no-wrap
+msgid "B<dist=>I<distance>"
+msgstr "B<dist=>I<Abstand>"
+
+#. type: Plain text
+#: ../src/xz/xz.1:1647
+msgid ""
+"Specify the I<distance> of the delta calculation in bytes.  I<distance> must "
+"be 1-256.  The default is 1."
+msgstr ""
+"gibt den I<Abstand> der Delta-Berechnung in Byte an. Zulässige Werte für den "
+"I<Abstand> sind 1 bis 256. Der Vorgabewert ist 1."
+
+#. type: Plain text
+#: ../src/xz/xz.1:1652
+msgid ""
+"For example, with B<dist=2> and eight-byte input A1 B1 A2 B3 A3 B5 A4 B7, "
+"the output will be A1 B1 01 02 01 02 01 02."
+msgstr ""
+"Zum Beispiel wird mit B<dist=2> und der 8-Byte-Eingabe A1 B1 A2 B3 A3 B5 A4 "
+"B7 die Ausgabe A1 B1 01 02 01 02 01 02 sein."
+
+#. type: SS
+#: ../src/xz/xz.1:1654
+#, no-wrap
+msgid "Other options"
+msgstr "Andere Optionen"
+
+#. type: TP
+#: ../src/xz/xz.1:1655 ../src/xzdec/xzdec.1:83
+#, no-wrap
+msgid "B<-q>, B<--quiet>"
+msgstr "B<-q>, B<--quiet>"
+
+#. type: Plain text
+#: ../src/xz/xz.1:1662
+msgid ""
+"Suppress warnings and notices.  Specify this twice to suppress errors too.  "
+"This option has no effect on the exit status.  That is, even if a warning "
+"was suppressed, the exit status to indicate a warning is still used."
+msgstr ""
+"unterdrückt Warnungen und Hinweise. Geben Sie dies zweimal an, um auch "
+"Fehlermeldungen zu unterdrücken. Diese Option wirkt sich nicht auf den Exit-"
+"Status aus. Das bedeutet, das selbst bei einer unterdrückten Warnung der "
+"Exit-Status zur Anzeige einer Warnung dennoch verwendet wird."
+
+#. type: TP
+#: ../src/xz/xz.1:1662
+#, no-wrap
+msgid "B<-v>, B<--verbose>"
+msgstr "B<-v>, B<--verbose>"
+
+#. type: Plain text
+#: ../src/xz/xz.1:1671
+msgid ""
+"Be verbose.  If standard error is connected to a terminal, B<xz> will "
+"display a progress indicator.  Specifying B<--verbose> twice will give even "
+"more verbose output."
+msgstr ""
+"bewirkt ausführliche Ausgaben. Wenn die Standardfehlerausgabe mit einem "
+"Terminal verbunden ist, zeigt B<xz> den Fortschritt an. Durch zweimalige "
+"Angabe von B<--verbose> wird die Ausgabe noch ausführlicher."
+
+#. type: Plain text
+#: ../src/xz/xz.1:1673
+msgid "The progress indicator shows the following information:"
+msgstr "Der Fortschrittsanzeiger stellt die folgenden Informationen dar:"
+
+#. type: Plain text
+#: ../src/xz/xz.1:1678
+msgid ""
+"Completion percentage is shown if the size of the input file is known.  That "
+"is, the percentage cannot be shown in pipes."
+msgstr ""
+"Der Prozentsatz des Fortschritts wird angezeigt, wenn die Größe der "
+"Eingabedatei bekannt ist. Das bedeutet, dass der Prozentsatz in "
+"Weiterleitungen (Pipes) nicht angezeigt werden kann."
+
+#. type: Plain text
+#: ../src/xz/xz.1:1681
+msgid ""
+"Amount of compressed data produced (compressing)  or consumed "
+"(decompressing)."
+msgstr ""
+"Menge der erzeugten komprimierten Daten (bei der Kompression) oder der "
+"verarbeiteten Daten (bei der Dekompression)."
+
+#. type: Plain text
+#: ../src/xz/xz.1:1684
+msgid ""
+"Amount of uncompressed data consumed (compressing)  or produced "
+"(decompressing)."
+msgstr ""
+"Menge der verarbeiteten unkomprimierten Daten (bei der Kompression) oder der "
+"erzeugten Daten (bei der Dekompression)."
+
+#. type: Plain text
+#: ../src/xz/xz.1:1688
+msgid ""
+"Compression ratio, which is calculated by dividing the amount of compressed "
+"data processed so far by the amount of uncompressed data processed so far."
+msgstr ""
+"Kompressionsverhältnis, das mittels Dividieren der Menge der bisher "
+"komprimierten Daten durch die Menge der bisher verarbeiteten unkomprimierten "
+"Daten ermittelt wird."
+
+#. type: Plain text
+#: ../src/xz/xz.1:1695
+msgid ""
+"Compression or decompression speed.  This is measured as the amount of "
+"uncompressed data consumed (compression) or produced (decompression) per "
+"second.  It is shown after a few seconds have passed since B<xz> started "
+"processing the file."
+msgstr ""
+"Kompressions- oder Dekompressionsgeschwindigkeit. Diese wird anhand der "
+"Menge der unkomprimierten verarbeiteten Daten (bei der Kompression) oder der "
+"Menge der erzeugten Daten (bei der Dekompression) pro Sekunde gemessen. Die "
+"Anzeige startet einige Sekunden nachdem B<xz> mit der Verarbeitung der Datei "
+"begonnen hat."
+
+#. type: Plain text
+#: ../src/xz/xz.1:1697
+msgid "Elapsed time in the format M:SS or H:MM:SS."
+msgstr "Die vergangene Zeit im Format M:SS oder H:MM:SS."
+
+#. type: Plain text
+#: ../src/xz/xz.1:1705
+msgid ""
+"Estimated remaining time is shown only when the size of the input file is "
+"known and a couple of seconds have already passed since B<xz> started "
+"processing the file.  The time is shown in a less precise format which never "
+"has any colons, e.g. 2 min 30 s."
+msgstr ""
+"Die geschätzte verbleibende Zeit wird nur angezeigt, wenn die Größe der "
+"Eingabedatei bekannt ist und bereits einige Sekunden vergangen sind, nachdem "
+"B<xz> mit der Verarbeitung der Datei begonnen hat. Die Zeit wird in einem "
+"weniger präzisen Format ohne Doppelpunkte angezeigt, zum Beispiel 2 min 30 s."
+
+#. type: Plain text
+#: ../src/xz/xz.1:1720
+msgid ""
+"When standard error is not a terminal, B<--verbose> will make B<xz> print "
+"the filename, compressed size, uncompressed size, compression ratio, and "
+"possibly also the speed and elapsed time on a single line to standard error "
+"after compressing or decompressing the file.  The speed and elapsed time are "
+"included only when the operation took at least a few seconds.  If the "
+"operation didn't finish, e.g. due to user interruption, also the completion "
+"percentage is printed if the size of the input file is known."
+msgstr ""
+"Wenn die Standardfehlerausgabe kein Terminal ist, schreibt B<xz> mit B<--"
+"verbose> nach dem Komprimieren oder Dekomprimieren der Datei in einer "
+"einzelnen Zeile den Dateinamen, die komprimierte Größe, die unkomprimierte "
+"Größe, das Kompressionsverhältnis und eventuell auch die Geschwindigkeit und "
+"die vergangene Zeit in die Standardfehlerausgabe. Die Geschwindigkeit und "
+"die vergangene Zeit werden nur angezeigt, wenn der Vorgang mindestens ein "
+"paar Sekunden gedauert hat. Wurde der Vorgang nicht beendet, zum Beispiel "
+"weil ihn der Benutzer abgebrochen hat, wird außerdem der Prozentsatz des "
+"erreichten Verarbeitungsfortschritts aufgenommen, sofern die Größe der "
+"Eingabedatei bekannt ist."
+
+#. type: TP
+#: ../src/xz/xz.1:1720 ../src/xzdec/xzdec.1:89
+#, no-wrap
+msgid "B<-Q>, B<--no-warn>"
+msgstr "B<-Q>, B<--no-warn>"
+
+#. type: Plain text
+#: ../src/xz/xz.1:1730
+msgid ""
+"Don't set the exit status to 2 even if a condition worth a warning was "
+"detected.  This option doesn't affect the verbosity level, thus both B<--"
+"quiet> and B<--no-warn> have to be used to not display warnings and to not "
+"alter the exit status."
+msgstr ""
+"setzt den Exit-Status nicht auf 2, selbst wenn eine Bedingung erfüllt ist, "
+"die eine Warnung gerechtfertigt hätte. Diese Option wirkt sich nicht auf die "
+"Ausführlichkeitsstufe aus, daher müssen sowohl B<--quiet> als auch B<--no-"
+"warn> angegeben werden, um einerseits keine Warnungen anzuzeigen und "
+"andererseits auch den Exit-Status nicht zu ändern."
+
+#. type: TP
+#: ../src/xz/xz.1:1730
+#, no-wrap
+msgid "B<--robot>"
+msgstr "B<--robot>"
+
+#. type: Plain text
+#: ../src/xz/xz.1:1742
+msgid ""
+"Print messages in a machine-parsable format.  This is intended to ease "
+"writing frontends that want to use B<xz> instead of liblzma, which may be "
+"the case with various scripts.  The output with this option enabled is meant "
+"to be stable across B<xz> releases.  See the section B<ROBOT MODE> for "
+"details."
+msgstr ""
+"gibt Meldungen in einem maschinenlesbaren Format aus. Dadurch soll das "
+"Schreiben von Frontends erleichtert werden, die B<xz> anstelle von Liblzma "
+"verwenden wollen, was in verschiedenen Skripten der Fall sein kann. Die "
+"Ausgabe mit dieser aktivierten Option sollte über mehrere B<xz>-"
+"Veröffentlichungen stabil sein. Details hierzu finden Sie im Abschnitt "
+"B<ROBOTER-MODUS>."
+
+#. type: TP
+#: ../src/xz/xz.1:1742
+#, no-wrap
+msgid "B<--info-memory>"
+msgstr "B<--info-memory>"
+
+#. type: Plain text
+#: ../src/xz/xz.1:1748
+msgid ""
+"Display, in human-readable format, how much physical memory (RAM)  B<xz> "
+"thinks the system has and the memory usage limits for compression and "
+"decompression, and exit successfully."
+msgstr ""
+"zeigt in einem menschenlesbaren Format an, wieviel physischen Speicher (RAM) "
+"das System nach Annahme von B<xz> hat, sowie die Speicherbedarfsbegrenzung "
+"für Kompression und Dekompression, und beendet das Programm erfolgreich."
+
+#. type: TP
+#: ../src/xz/xz.1:1748 ../src/xzdec/xzdec.1:96
+#, no-wrap
+msgid "B<-h>, B<--help>"
+msgstr "B<-h>, B<--help>"
+
+#. type: Plain text
+#: ../src/xz/xz.1:1752
+msgid ""
+"Display a help message describing the most commonly used options, and exit "
+"successfully."
+msgstr ""
+"zeigt eine Hilfemeldung mit den am häufigsten genutzten Optionen an und "
+"beendet das Programm erfolgreich."
+
+#. type: TP
+#: ../src/xz/xz.1:1752
+#, no-wrap
+msgid "B<-H>, B<--long-help>"
+msgstr "B<-H>, B<--long-help>"
+
+# FIXME Satzpunkt fehlt
+#. type: Plain text
+#: ../src/xz/xz.1:1757
+msgid ""
+"Display a help message describing all features of B<xz>, and exit "
+"successfully"
+msgstr ""
+"zeigt eine Hilfemeldung an, die alle Funktionsmerkmale von B<xz> beschreibt "
+"und beendet das Programm erfolgreich."
+
+#. type: TP
+#: ../src/xz/xz.1:1757 ../src/xzdec/xzdec.1:99
+#, no-wrap
+msgid "B<-V>, B<--version>"
+msgstr "B<-V>, B<--version>"
+
+#. type: Plain text
+#: ../src/xz/xz.1:1766
+msgid ""
+"Display the version number of B<xz> and liblzma in human readable format.  "
+"To get machine-parsable output, specify B<--robot> before B<--version>."
+msgstr ""
+"zeigt die Versionsnummer von B<xz> und Liblzma in einem menschenlesbaren "
+"Format an. Um eine maschinell auswertbare Ausgabe zu erhalten, geben Sie B<--"
+"robot> vor B<--version> an."
+
+#. type: SH
+#: ../src/xz/xz.1:1767
+#, no-wrap
+msgid "ROBOT MODE"
+msgstr "ROBOTER-MODUS"
+
+#. type: Plain text
+#: ../src/xz/xz.1:1783
+msgid ""
+"The robot mode is activated with the B<--robot> option.  It makes the output "
+"of B<xz> easier to parse by other programs.  Currently B<--robot> is "
+"supported only together with B<--version>, B<--info-memory>, and B<--list>.  "
+"It will be supported for compression and decompression in the future."
+msgstr ""
+"Der Roboter-Modus wird mit der Option B<--robot> aktiviert. Er bewirkt, dass "
+"die Ausgabe von B<xz> leichter von anderen Programmen ausgewertet werden "
+"kann. Gegenwärtig wird B<--robot> nur zusammen mit B<--version>, B<--info-"
+"memory> und B<--list> unterstützt. In der Zukunft wird dieser Modus auch für "
+"Kompression und Dekompression unterstützt."
+
+#. type: SS
+#: ../src/xz/xz.1:1784
+#, no-wrap
+msgid "Version"
+msgstr "Version"
+
+#. type: Plain text
+#: ../src/xz/xz.1:1789
+msgid ""
+"B<xz --robot --version> will print the version number of B<xz> and liblzma "
+"in the following format:"
+msgstr ""
+"B<xz --robot --version> gibt die Versionsnummern von B<xz> und Liblzma im "
+"folgenden Format aus:"
+
+#. type: Plain text
+#: ../src/xz/xz.1:1791
+msgid "B<XZ_VERSION=>I<XYYYZZZS>"
+msgstr "B<XZ_VERSION=>I<XYYYZZZS>"
+
+#. type: Plain text
+#: ../src/xz/xz.1:1793
+msgid "B<LIBLZMA_VERSION=>I<XYYYZZZS>"
+msgstr "B<LIBLZMA_VERSION=>I<XYYYZZZS>"
+
+#. type: TP
+#: ../src/xz/xz.1:1793
+#, no-wrap
+msgid "I<X>"
+msgstr "I<X>"
+
+#. type: Plain text
+#: ../src/xz/xz.1:1796
+msgid "Major version."
+msgstr "Hauptversion."
+
+#. type: TP
+#: ../src/xz/xz.1:1796
+#, no-wrap
+msgid "I<YYY>"
+msgstr "I<YYY>"
+
+#. type: Plain text
+#: ../src/xz/xz.1:1801
+msgid ""
+"Minor version.  Even numbers are stable.  Odd numbers are alpha or beta "
+"versions."
+msgstr ""
+"Unterversion. Gerade Zahlen bezeichnen eine stabile Version. Ungerade Zahlen "
+"bezeichnen Alpha- oder Betaversionen."
+
+#. type: TP
+#: ../src/xz/xz.1:1801
+#, no-wrap
+msgid "I<ZZZ>"
+msgstr "I<ZZZ>"
+
+#. type: Plain text
+#: ../src/xz/xz.1:1805
+msgid ""
+"Patch level for stable releases or just a counter for development releases."
+msgstr ""
+"Patch-Stufe für stabile Veröffentlichungen oder einfach nur ein Zähler für "
+"Entwicklungsversionen."
+
+#. type: TP
+#: ../src/xz/xz.1:1805
+#, no-wrap
+msgid "I<S>"
+msgstr "I<S>"
+
+#. type: Plain text
+#: ../src/xz/xz.1:1813
+msgid ""
+"Stability.  0 is alpha, 1 is beta, and 2 is stable.  I<S> should be always 2 "
+"when I<YYY> is even."
+msgstr ""
+"Stabilität. 0 ist Alpha, 1 ist Beta und 2 ist stabil. I<S> sollte immer 2 "
+"sein, wenn I<YYY> eine gerade Zahl ist."
+
+#. type: Plain text
+#: ../src/xz/xz.1:1818
+msgid ""
+"I<XYYYZZZS> are the same on both lines if B<xz> and liblzma are from the "
+"same XZ Utils release."
+msgstr ""
+"I<XYYYZZZS> sind in beiden Zeilen gleich, sofern B<xz> und Liblzma aus der "
+"gleichen Veröffentlichung der XZ-Utils stammen."
+
+#. type: Plain text
+#: ../src/xz/xz.1:1824
+msgid "Examples: 4.999.9beta is B<49990091> and 5.0.0 is B<50000002>."
+msgstr "Beispiele: 4.999.9beta ist B<49990091> und 5.0.0 is B<50000002>."
+
+#. type: SS
+#: ../src/xz/xz.1:1825
+#, no-wrap
+msgid "Memory limit information"
+msgstr "Informationen zur Speicherbedarfsbegrenzung"
+
+#. type: Plain text
+#: ../src/xz/xz.1:1828
+msgid ""
+"B<xz --robot --info-memory> prints a single line with three tab-separated "
+"columns:"
+msgstr ""
+"B<xz --robot --info-memory> gibt eine einzelne Zeile mit drei durch "
+"Tabulatoren getrennten Spalten aus:"
+
+#. type: IP
+#: ../src/xz/xz.1:1828
+#, no-wrap
+msgid "1."
+msgstr "1."
+
+#. type: Plain text
+#: ../src/xz/xz.1:1830
+msgid "Total amount of physical memory (RAM) in bytes"
+msgstr "Gesamter physischer Speicher (RAM) in Byte"
+
+#. type: IP
+#: ../src/xz/xz.1:1830 ../src/xz/xz.1:1910 ../src/xz/xz.1:1947
+#: ../src/xz/xz.1:1973 ../src/xz/xz.1:2043 ../src/xz/xz.1:2070
+#, no-wrap
+msgid "2."
+msgstr "2."
+
+#. type: Plain text
+#: ../src/xz/xz.1:1834
+msgid ""
+"Memory usage limit for compression in bytes.  A special value of zero "
+"indicates the default setting, which for single-threaded mode is the same as "
+"no limit."
+msgstr ""
+"Speicherbedarfsbegrenzung für die Kompression in Byte. Ein spezieller Wert "
+"von Null bezeichnet die Standardeinstellung, die im Einzelthread-Modus "
+"bedeutet, dass keine Begrenzung vorhanden ist."
+
+#. type: IP
+#: ../src/xz/xz.1:1834 ../src/xz/xz.1:1912 ../src/xz/xz.1:1949
+#: ../src/xz/xz.1:1975 ../src/xz/xz.1:2048 ../src/xz/xz.1:2072
+#, no-wrap
+msgid "3."
+msgstr "3."
+
+#. type: Plain text
+#: ../src/xz/xz.1:1838
+msgid ""
+"Memory usage limit for decompression in bytes.  A special value of zero "
+"indicates the default setting, which for single-threaded mode is the same as "
+"no limit."
+msgstr ""
+"Speicherbedarfsbegrenzung für die Dekompression in Byte. Ein spezieller Wert "
+"von Null bezeichnet die Standardeinstellung, die im Einzelthread-Modus "
+"bedeutet, dass keine Begrenzung vorhanden ist."
+
+#. type: Plain text
+#: ../src/xz/xz.1:1842
+msgid ""
+"In the future, the output of B<xz --robot --info-memory> may have more "
+"columns, but never more than a single line."
+msgstr ""
+"In der Zukunft könnte die Ausgabe von B<xz --robot --info-memory> weitere "
+"Spalten enthalten, aber niemals mehr als eine einzelne Zeile."
+
+#. type: SS
+#: ../src/xz/xz.1:1843
+#, no-wrap
+msgid "List mode"
+msgstr "Listenmodus"
+
+#. type: Plain text
+#: ../src/xz/xz.1:1848
+msgid ""
+"B<xz --robot --list> uses tab-separated output.  The first column of every "
+"line has a string that indicates the type of the information found on that "
+"line:"
+msgstr ""
+"B<xz --robot --list> verwendet eine durch Tabulatoren getrennte Ausgabe. In "
+"der ersten Spalte jeder Zeile bezeichnet eine Zeichenkette den Typ der "
+"Information, die in dieser Zeile enthalten ist:"
+
+#. type: TP
+#: ../src/xz/xz.1:1848
+#, no-wrap
+msgid "B<name>"
+msgstr "B<name>"
+
+#. type: Plain text
+#: ../src/xz/xz.1:1852
+msgid ""
+"This is always the first line when starting to list a file.  The second "
+"column on the line is the filename."
+msgstr ""
+"Dies ist stets die erste Zeile, wenn eine Datei aufgelistet wird. Die zweite "
+"Spalte in der Zeile enthält den Dateinamen."
+
+#. type: TP
+#: ../src/xz/xz.1:1852
+#, no-wrap
+msgid "B<file>"
+msgstr "B<file>"
+
+# CHECK overall
+#. type: Plain text
+#: ../src/xz/xz.1:1860
+msgid ""
+"This line contains overall information about the B<.xz> file.  This line is "
+"always printed after the B<name> line."
+msgstr ""
+"Diese Zeile enthält allgemeine Informationen zur B<.xz>-Datei. Diese Zeile "
+"wird stets nach der B<name>-Zeile ausgegeben."
+
+#. type: TP
+#: ../src/xz/xz.1:1860
+#, no-wrap
+msgid "B<stream>"
+msgstr "B<stream>"
+
+#. type: Plain text
+#: ../src/xz/xz.1:1870
+msgid ""
+"This line type is used only when B<--verbose> was specified.  There are as "
+"many B<stream> lines as there are streams in the B<.xz> file."
+msgstr ""
+"Dieser Zeilentyp wird nur verwendet, wenn B<--verbose> angegeben wurde. Es "
+"gibt genau so viele B<stream>-Zeilen, wie Datenströme in der B<.xz>-Datei "
+"enthalten sind."
+
+#. type: TP
+#: ../src/xz/xz.1:1870
+#, no-wrap
+msgid "B<block>"
+msgstr "B<block>"
+
+#. type: Plain text
+#: ../src/xz/xz.1:1885
+msgid ""
+"This line type is used only when B<--verbose> was specified.  There are as "
+"many B<block> lines as there are blocks in the B<.xz> file.  The B<block> "
+"lines are shown after all the B<stream> lines; different line types are not "
+"interleaved."
+msgstr ""
+"Dieser Zeilentyp wird nur verwendet, wenn B<--verbose> angegeben wurde. Es "
+"gibt so viele B<block>-Zeilen, wie Blöcke in der B<.xz>-Datei. Die B<block>-"
+"Zeilen werden nach allen B<stream>-Zeilen angezeigt; verschiedene "
+"Zeilentypen werden nicht verschachtelt."
+
+#. type: TP
+#: ../src/xz/xz.1:1885
+#, no-wrap
+msgid "B<summary>"
+msgstr "B<summary>"
+
+#. type: Plain text
+#: ../src/xz/xz.1:1900
+msgid ""
+"This line type is used only when B<--verbose> was specified twice.  This "
+"line is printed after all B<block> lines.  Like the B<file> line, the "
+"B<summary> line contains overall information about the B<.xz> file."
+msgstr ""
+"Dieser Zeilentyp wird nur verwendet, wenn B<--verbose> zwei Mal angegeben "
+"wurde. Diese Zeile wird nach allen B<block>-Zeilen ausgegeben. Wie die "
+"B<file>-Zeile enthält die B<summary>-Zeile allgemeine Informationen zur B<."
+"xz>-Datei."
+
+#. type: TP
+#: ../src/xz/xz.1:1900
+#, no-wrap
+msgid "B<totals>"
+msgstr "B<totals>"
+
+#. type: Plain text
+#: ../src/xz/xz.1:1904
+msgid ""
+"This line is always the very last line of the list output.  It shows the "
+"total counts and sizes."
+msgstr ""
+"Diese Zeile ist immer die letzte der Listenausgabe. Sie zeigt die "
+"Gesamtanzahlen und -größen an."
+
+#. type: Plain text
+#: ../src/xz/xz.1:1908
+msgid "The columns of the B<file> lines:"
+msgstr "Die Spalten der B<file>-Zeilen:"
+
+#. type: Plain text
+#: ../src/xz/xz.1:1912
+msgid "Number of streams in the file"
+msgstr "Anzahl der Datenströme in der Datei"
+
+#. type: Plain text
+#: ../src/xz/xz.1:1914
+msgid "Total number of blocks in the stream(s)"
+msgstr "Gesamtanzahl der Blöcke in den Datenströmen"
+
+#. type: IP
+#: ../src/xz/xz.1:1914 ../src/xz/xz.1:1951 ../src/xz/xz.1:1978
+#: ../src/xz/xz.1:2058 ../src/xz/xz.1:2074
+#, no-wrap
+msgid "4."
+msgstr "4."
+
+#. type: Plain text
+#: ../src/xz/xz.1:1916
+msgid "Compressed size of the file"
+msgstr "Komprimierte Größe der Datei"
+
+#. type: IP
+#: ../src/xz/xz.1:1916 ../src/xz/xz.1:1953 ../src/xz/xz.1:1980
+#: ../src/xz/xz.1:2076
+#, no-wrap
+msgid "5."
+msgstr "5."
+
+#. type: Plain text
+#: ../src/xz/xz.1:1918
+msgid "Uncompressed size of the file"
+msgstr "Unkomprimierte Größe der Datei"
+
+#. type: IP
+#: ../src/xz/xz.1:1918 ../src/xz/xz.1:1955 ../src/xz/xz.1:1982
+#: ../src/xz/xz.1:2078
+#, no-wrap
+msgid "6."
+msgstr "6."
+
+#. type: Plain text
+#: ../src/xz/xz.1:1924
+msgid ""
+"Compression ratio, for example B<0.123.> If ratio is over 9.999, three "
+"dashes (B<--->)  are displayed instead of the ratio."
+msgstr ""
+"Das Kompressionsverhältnis, zum Beispiel B<0.123>. Wenn das Verhältnis über "
+"9.999 liegt, werden drei Minuszeichen (B<--->) anstelle des "
+"Kompressionsverhältnisses angezeigt."
+
+#. type: IP
+#: ../src/xz/xz.1:1924 ../src/xz/xz.1:1957 ../src/xz/xz.1:1984
+#: ../src/xz/xz.1:2080
+#, no-wrap
+msgid "7."
+msgstr "7."
+
+#. type: Plain text
+#: ../src/xz/xz.1:1937
+msgid ""
+"Comma-separated list of integrity check names.  The following strings are "
+"used for the known check types: B<None>, B<CRC32>, B<CRC64>, and "
+"B<SHA-256>.  For unknown check types, B<Unknown->I<N> is used, where I<N> is "
+"the Check ID as a decimal number (one or two digits)."
+msgstr ""
+"Durch Kommata getrennte Liste der Namen der Integritätsprüfungen. Für die "
+"bekannten Überprüfungstypen werden folgende Zeichenketten verwendet: "
+"B<None>, B<CRC32>, B<CRC64> und B<SHA-256>. B<Unbek.>I<N> wird verwendet, "
+"wobei I<N> die Kennung der Überprüfung als Dezimalzahl angibt (ein- oder "
+"zweistellig)."
+
+#. type: IP
+#: ../src/xz/xz.1:1937 ../src/xz/xz.1:1959 ../src/xz/xz.1:1986
+#: ../src/xz/xz.1:2083
+#, no-wrap
+msgid "8."
+msgstr "8."
+
+#. type: Plain text
+#: ../src/xz/xz.1:1939
+msgid "Total size of stream padding in the file"
+msgstr "Gesamtgröße der Datenstromauffüllung in der Datei"
+
+#. type: Plain text
+#: ../src/xz/xz.1:1945
+msgid "The columns of the B<stream> lines:"
+msgstr "Die Spalten der B<stream>-Zeilen:"
+
+#. type: Plain text
+#: ../src/xz/xz.1:1949
+msgid "Stream number (the first stream is 1)"
+msgstr "Datenstromnummer (der erste Datenstrom ist 1)"
+
+#. type: Plain text
+#: ../src/xz/xz.1:1951
+msgid "Number of blocks in the stream"
+msgstr "Anzahl der Blöcke im Datenstrom"
+
+#. type: Plain text
+#: ../src/xz/xz.1:1953
+msgid "Compressed start offset"
+msgstr "Komprimierte Startposition"
+
+#. type: Plain text
+#: ../src/xz/xz.1:1955
+msgid "Uncompressed start offset"
+msgstr "Unkomprimierte Startposition"
+
+#. type: Plain text
+#: ../src/xz/xz.1:1957
+msgid "Compressed size (does not include stream padding)"
+msgstr "Komprimierte Größe (schließt die Datenstromauffüllung nicht mit ein)"
+
+#. type: Plain text
+#: ../src/xz/xz.1:1959 ../src/xz/xz.1:1988 ../src/xz/xz.1:2078
+msgid "Uncompressed size"
+msgstr "Unkomprimierte Größe"
+
+#. type: Plain text
+#: ../src/xz/xz.1:1961 ../src/xz/xz.1:1990
+msgid "Compression ratio"
+msgstr "Kompressionsverhältnis"
+
+#. type: IP
+#: ../src/xz/xz.1:1961 ../src/xz/xz.1:1988 ../src/xz/xz.1:2085
+#, no-wrap
+msgid "9."
+msgstr "9."
+
+#. type: Plain text
+#: ../src/xz/xz.1:1963 ../src/xz/xz.1:1992
+msgid "Name of the integrity check"
+msgstr "Name der Integritätsprüfung"
+
+#. type: IP
+#: ../src/xz/xz.1:1963 ../src/xz/xz.1:1990 ../src/xz/xz.1:2101
+#, no-wrap
+msgid "10."
+msgstr "10."
+
+#. type: Plain text
+#: ../src/xz/xz.1:1965
+msgid "Size of stream padding"
+msgstr "Größe der Datenstromauffüllung"
+
+#. type: Plain text
+#: ../src/xz/xz.1:1971
+msgid "The columns of the B<block> lines:"
+msgstr "Die Spalten der B<block>-Zeilen:"
+
+#. type: Plain text
+#: ../src/xz/xz.1:1975
+msgid "Number of the stream containing this block"
+msgstr "Anzahl der in diesem Block enthaltenen Datenströme"
+
+#. type: Plain text
+#: ../src/xz/xz.1:1978
+msgid ""
+"Block number relative to the beginning of the stream (the first block is 1)"
+msgstr "Blocknummer relativ zum Anfang des Datenstroms (der erste Block ist 1)"
+
+#. type: Plain text
+#: ../src/xz/xz.1:1980
+msgid "Block number relative to the beginning of the file"
+msgstr "Blocknummer relativ zum Anfang der Datei"
+
+#. type: Plain text
+#: ../src/xz/xz.1:1982
+msgid "Compressed start offset relative to the beginning of the file"
+msgstr "Komprimierter Startversatz relativ zum Beginn der Datei"
+
+#. type: Plain text
+#: ../src/xz/xz.1:1984
+msgid "Uncompressed start offset relative to the beginning of the file"
+msgstr "Unkomprimierter Startversatz relativ zum Beginn der Datei"
+
+#. type: Plain text
+#: ../src/xz/xz.1:1986
+msgid "Total compressed size of the block (includes headers)"
+msgstr "Komprimierte Gesamtgröße des Blocks (einschließlich Header)"
+
+#. type: Plain text
+#: ../src/xz/xz.1:2004
+msgid ""
+"If B<--verbose> was specified twice, additional columns are included on the "
+"B<block> lines.  These are not displayed with a single B<--verbose>, because "
+"getting this information requires many seeks and can thus be slow:"
+msgstr ""
+"Wenn B<--verbose> zwei Mal angegeben wurde, werden zusätzliche Spalten in "
+"die B<block>-Zeilen eingefügt. Diese werden mit einem einfachen B<--verbose> "
+"nicht angezeigt, da das Ermitteln dieser Informationen viele Suchvorgänge "
+"erfordert und daher recht langsam sein kann:"
+
+#. type: IP
+#: ../src/xz/xz.1:2006 ../src/xz/xz.1:2106
+#, no-wrap
+msgid "11."
+msgstr "11."
+
+#. type: Plain text
+#: ../src/xz/xz.1:2008
+msgid "Value of the integrity check in hexadecimal"
+msgstr "Wert der Integritätsprüfung in hexadezimaler Notation"
+
+#. type: IP
+#: ../src/xz/xz.1:2008 ../src/xz/xz.1:2116
+#, no-wrap
+msgid "12."
+msgstr "12."
+
+#. type: Plain text
+#: ../src/xz/xz.1:2010
+msgid "Block header size"
+msgstr "Block-Header-Größe"
+
+#. type: IP
+#: ../src/xz/xz.1:2010
+#, no-wrap
+msgid "13."
+msgstr "13."
+
+#. type: Plain text
+#: ../src/xz/xz.1:2020
+msgid ""
+"Block flags: B<c> indicates that compressed size is present, and B<u> "
+"indicates that uncompressed size is present.  If the flag is not set, a dash "
+"(B<->)  is shown instead to keep the string length fixed.  New flags may be "
+"added to the end of the string in the future."
+msgstr ""
+"Block-Schalter: B<c> gibt an, dass die komprimierte Größe verfügbar ist, und "
+"B<u> gibt an, dass die unkomprimierte Größe verfügbar ist. Falls der "
+"Schalter nicht gesetzt ist, wird stattdessen ein Bindestrich (B<->) "
+"angezeigt, um die Länge der Zeichenkette beizubehalten. In Zukunft könnten "
+"neue Schalter am Ende der Zeichenkette hinzugefügt werden."
+
+#. type: IP
+#: ../src/xz/xz.1:2020
+#, no-wrap
+msgid "14."
+msgstr "14."
+
+#. type: Plain text
+#: ../src/xz/xz.1:2023
+msgid ""
+"Size of the actual compressed data in the block (this excludes the block "
+"header, block padding, and check fields)"
+msgstr ""
+"Größe der tatsächlichen komprimierten Daten im Block. Ausgeschlossen sind "
+"hierbei die Block-Header, die Blockauffüllung und die Prüffelder."
+
+#. type: IP
+#: ../src/xz/xz.1:2023
+#, no-wrap
+msgid "15."
+msgstr "15."
+
+#. type: Plain text
+#: ../src/xz/xz.1:2028
+msgid ""
+"Amount of memory (in bytes) required to decompress this block with this "
+"B<xz> version"
+msgstr ""
+"Größe des Speichers (in Byte), der zum Dekomprimieren dieses Blocks mit "
+"dieser B<xz>-Version benötigt wird."
+
+#. type: IP
+#: ../src/xz/xz.1:2028
+#, no-wrap
+msgid "16."
+msgstr "16."
+
+#. type: Plain text
+#: ../src/xz/xz.1:2035
+msgid ""
+"Filter chain.  Note that most of the options used at compression time cannot "
+"be known, because only the options that are needed for decompression are "
+"stored in the B<.xz> headers."
+msgstr ""
+"Filterkette. Beachten Sie, dass die meisten der bei der Kompression "
+"verwendeten Optionen nicht bekannt sein können, da in den B<.xz>-Headern nur "
+"die für die Dekompression erforderlichen Optionen gespeichert sind."
+
+#. type: Plain text
+#: ../src/xz/xz.1:2041
+msgid "The columns of the B<summary> lines:"
+msgstr "Die Spalten der B<summary>-Zeilen:"
+
+#. type: Plain text
+#: ../src/xz/xz.1:2048
+msgid ""
+"Amount of memory (in bytes) required to decompress this file with this B<xz> "
+"version"
+msgstr ""
+"Größe des Speichers (in Byte), der zum Dekomprimieren dieser Datei mit "
+"dieser B<xz>-Version benötigt wird."
+
+#. type: Plain text
+#: ../src/xz/xz.1:2054 ../src/xz/xz.1:2112
+msgid ""
+"B<yes> or B<no> indicating if all block headers have both compressed size "
+"and uncompressed size stored in them"
+msgstr ""
+"B<yes> oder B<no> geben an, ob in allen Block-Headern sowohl die "
+"komprimierte als auch die unkomprimierte Größe gespeichert ist."
+
+#. type: Plain text
+#: ../src/xz/xz.1:2058 ../src/xz/xz.1:2116
+msgid "I<Since> B<xz> I<5.1.2alpha:>"
+msgstr "I<Seit> B<xz> I<5.1.2alpha:>"
+
+#. type: Plain text
+#: ../src/xz/xz.1:2062 ../src/xz/xz.1:2120
+msgid "Minimum B<xz> version required to decompress the file"
+msgstr ""
+"Minimale B<xz>-Version, die zur Dekompression der Datei erforderlich ist"
+
+#. type: Plain text
+#: ../src/xz/xz.1:2068
+msgid "The columns of the B<totals> line:"
+msgstr "Die Spalten der B<totals>-Zeile:"
+
+#. type: Plain text
+#: ../src/xz/xz.1:2072
+msgid "Number of streams"
+msgstr "Anzahl der Datenströme"
+
+#. type: Plain text
+#: ../src/xz/xz.1:2074
+msgid "Number of blocks"
+msgstr "Anzahl der Blöcke"
+
+#. type: Plain text
+#: ../src/xz/xz.1:2076
+msgid "Compressed size"
+msgstr "Komprimierte Größe"
+
+#. type: Plain text
+#: ../src/xz/xz.1:2080
+msgid "Average compression ratio"
+msgstr "Durchschnittliches Kompressionsverhältnis"
+
+#. type: Plain text
+#: ../src/xz/xz.1:2083
+msgid ""
+"Comma-separated list of integrity check names that were present in the files"
+msgstr ""
+"Durch Kommata getrennte Liste der Namen der Integritätsprüfungen, die in den "
+"Dateien präsent waren."
+
+#. type: Plain text
+#: ../src/xz/xz.1:2085
+msgid "Stream padding size"
+msgstr "Größe der Datenstromauffüllung"
+
+#. type: Plain text
+#: ../src/xz/xz.1:2091
+msgid ""
+"Number of files.  This is here to keep the order of the earlier columns the "
+"same as on B<file> lines."
+msgstr ""
+"Anzahl der Dateien. Dies dient dazu, die Reihenfolge der vorigen Spalten an "
+"die in den B<file>-Zeilen anzugleichen."
+
+#. type: Plain text
+#: ../src/xz/xz.1:2099
+msgid ""
+"If B<--verbose> was specified twice, additional columns are included on the "
+"B<totals> line:"
+msgstr ""
+"Wenn B<--verbose> zwei Mal angegeben wird, werden zusätzliche Spalten in die "
+"B<totals>-Zeile eingefügt:"
+
+#. type: Plain text
+#: ../src/xz/xz.1:2106
+msgid ""
+"Maximum amount of memory (in bytes) required to decompress the files with "
+"this B<xz> version"
+msgstr ""
+"Maximale Größe des Speichers (in Byte), der zum Dekomprimieren der Dateien "
+"mit dieser B<xz>-Version benötigt wird."
+
+#. type: Plain text
+#: ../src/xz/xz.1:2126
+msgid ""
+"Future versions may add new line types and new columns can be added to the "
+"existing line types, but the existing columns won't be changed."
+msgstr ""
+"Zukünftige Versionen könnten neue Zeilentypen hinzufügen, weiterhin könnten "
+"auch in den vorhandenen Zeilentypen weitere Spalten hinzugefügt werden, aber "
+"die existierenden Spalten werden nicht geändert."
+
+#. type: SH
+#: ../src/xz/xz.1:2127 ../src/xzdec/xzdec.1:104 ../src/lzmainfo/lzmainfo.1:44
+#, no-wrap
+msgid "EXIT STATUS"
+msgstr "EXIT-STATUS"
+
+#. type: TP
+#: ../src/xz/xz.1:2128 ../src/xzdec/xzdec.1:105 ../src/lzmainfo/lzmainfo.1:45
+#, no-wrap
+msgid "B<0>"
+msgstr "B<0>"
+
+#. type: Plain text
+#: ../src/xz/xz.1:2131 ../src/lzmainfo/lzmainfo.1:48
+msgid "All is good."
+msgstr "Alles ist in Ordnung."
+
+#. type: TP
+#: ../src/xz/xz.1:2131 ../src/xzdec/xzdec.1:108 ../src/lzmainfo/lzmainfo.1:48
+#, no-wrap
+msgid "B<1>"
+msgstr "B<1>"
+
+#. type: Plain text
+#: ../src/xz/xz.1:2134 ../src/xzdec/xzdec.1:111 ../src/lzmainfo/lzmainfo.1:51
+msgid "An error occurred."
+msgstr "Ein Fehler ist aufgetreten."
+
+#. type: TP
+#: ../src/xz/xz.1:2134
+#, no-wrap
+msgid "B<2>"
+msgstr "B<2>"
+
+#. type: Plain text
+#: ../src/xz/xz.1:2138
+msgid "Something worth a warning occurred, but no actual errors occurred."
+msgstr ""
+"Es ist etwas passiert, das eine Warnung rechtfertigt, aber es sind keine "
+"tatsächlichen Fehler aufgetreten."
+
+#. type: Plain text
+#: ../src/xz/xz.1:2141
+msgid ""
+"Notices (not warnings or errors) printed on standard error don't affect the "
+"exit status."
+msgstr ""
+"In die Standardausgabe geschriebene Hinweise (keine Warnungen oder Fehler), "
+"welche den Exit-Status nicht beeinflussen."
+
+#. type: SH
+#: ../src/xz/xz.1:2142 ../src/scripts/xzgrep.1:80 ../src/scripts/xzless.1:52
+#, no-wrap
+msgid "ENVIRONMENT"
+msgstr "UMGEBUNGSVARIABLEN"
+
+#. type: Plain text
+#: ../src/xz/xz.1:2155
+msgid ""
+"B<xz> parses space-separated lists of options from the environment variables "
+"B<XZ_DEFAULTS> and B<XZ_OPT>, in this order, before parsing the options from "
+"the command line.  Note that only options are parsed from the environment "
+"variables; all non-options are silently ignored.  Parsing is done with "
+"B<getopt_long>(3)  which is used also for the command line arguments."
+msgstr ""
+"B<xz> wertet eine durch Leerzeichen getrennte Liste von Optionen in den "
+"Umgebungsvariablen B<XZ_DEFAULTS> und B<XZ_OPT> aus (in dieser Reihenfolge), "
+"bevor die Optionen aus der Befehlszeile ausgewertet werden. Beachten Sie, "
+"dass beim Auswerten der Umgebungsvariablen nur Optionen berücksichtigt "
+"werden; alle Einträge, die keine Optionen sind, werden stillschweigend "
+"ignoriert. Die Auswertung erfolgt mit B<getopt_long>(3), welches auch für "
+"die Befehlszeilenargumente verwendet wird."
+
+#. type: TP
+#: ../src/xz/xz.1:2155
+#, no-wrap
+msgid "B<XZ_DEFAULTS>"
+msgstr "B<XZ_DEFAULTS>"
+
+#. type: Plain text
+#: ../src/xz/xz.1:2164
+msgid ""
+"User-specific or system-wide default options.  Typically this is set in a "
+"shell initialization script to enable B<xz>'s memory usage limiter by "
+"default.  Excluding shell initialization scripts and similar special cases, "
+"scripts must never set or unset B<XZ_DEFAULTS>."
+msgstr ""
+"Benutzerspezifische oder systemweite Standardoptionen. Typischerweise werden "
+"diese in einem Shell-Initialisierungsskript gesetzt, um die "
+"Speicherbedarfsbegrenzung von B<xz> standardmäßig zu aktivieren. Außer bei "
+"Shell-Initialisierungsskripten und in ähnlichen Spezialfällen darf die "
+"Variable B<XZ_DEFAULTS> in Skripten niemals gesetzt oder außer Kraft gesetzt "
+"werden."
+
+#. type: TP
+#: ../src/xz/xz.1:2164
+#, no-wrap
+msgid "B<XZ_OPT>"
+msgstr "B<XZ_OPT>"
+
+#. type: Plain text
+#: ../src/xz/xz.1:2175
+msgid ""
+"This is for passing options to B<xz> when it is not possible to set the "
+"options directly on the B<xz> command line.  This is the case e.g. when "
+"B<xz> is run by a script or tool, e.g. GNU B<tar>(1):"
+msgstr ""
+"Dies dient der Übergabe von Optionen an B<xz>, wenn es nicht möglich ist, "
+"die Optionen direkt in der Befehlszeile von B<xz> zu übergeben. Dies ist "
+"beispielsweise der Fall, wenn B<xz> von einem Skript oder Dienstprogramm "
+"ausgeführt wird, zum Beispiel GNU B<tar>(1):"
+
+#. type: Plain text
+#: ../src/xz/xz.1:2181
+#, no-wrap
+msgid "CW<XZ_OPT=-2v tar caf foo.tar.xz foo>\n"
+msgstr "CW<XZ_OPT=-2v tar caf foo.tar.xz foo>\n"
+
+#. type: Plain text
+#: ../src/xz/xz.1:2194
+msgid ""
+"Scripts may use B<XZ_OPT> e.g. to set script-specific default compression "
+"options.  It is still recommended to allow users to override B<XZ_OPT> if "
+"that is reasonable, e.g. in B<sh>(1)  scripts one may use something like "
+"this:"
+msgstr ""
+"Skripte können B<XZ_OPT> zum Beispiel zum Setzen skriptspezifischer Standard-"
+"Kompressionsoptionen verwenden. Es ist weiterhin empfehlenswert, Benutzern "
+"die Außerkraftsetzung von B<XZ_OPT> zu erlauben, falls dies angemessen ist. "
+"Zum Beispiel könnte in B<sh>(1)-Skripten Folgendes stehen:"
+
+#. type: Plain text
+#: ../src/xz/xz.1:2201
+#, no-wrap
+msgid ""
+"CW<XZ_OPT=${XZ_OPT-\"-7e\"}\n"
+"export XZ_OPT>\n"
+msgstr ""
+"CW<XZ_OPT=${XZ_OPT-\"-7e\"}\n"
+"export XZ_OPT>\n"
+
+#. type: SH
+#: ../src/xz/xz.1:2206
+#, no-wrap
+msgid "LZMA UTILS COMPATIBILITY"
+msgstr "KOMPATIBILITÄT ZU DEN LZMA-UTILS"
+
+#. type: Plain text
+#: ../src/xz/xz.1:2219
+msgid ""
+"The command line syntax of B<xz> is practically a superset of B<lzma>, "
+"B<unlzma>, and B<lzcat> as found from LZMA Utils 4.32.x.  In most cases, it "
+"is possible to replace LZMA Utils with XZ Utils without breaking existing "
+"scripts.  There are some incompatibilities though, which may sometimes cause "
+"problems."
+msgstr ""
+"Die Befehlszeilensyntax von B<xz> ist praktisch eine Obermenge der von "
+"B<lzma>, B<unlzma> und B<lzcat> in den LZMA-Utils der Versionen 4.32.x. In "
+"den meisten Fällen sollte es möglich sein, die LZMA-Utils durch die XZ-Utils "
+"zu ersetzen, ohne vorhandene Skripte ändern zu müssen. Dennoch gibt es "
+"einige Inkompatibilitäten, die manchmal Probleme verursachen können."
+
+#. type: SS
+#: ../src/xz/xz.1:2220
+#, no-wrap
+msgid "Compression preset levels"
+msgstr "Voreinstellungsstufen zur Kompression"
+
+#. type: Plain text
+#: ../src/xz/xz.1:2227
+msgid ""
+"The numbering of the compression level presets is not identical in B<xz> and "
+"LZMA Utils.  The most important difference is how dictionary sizes are "
+"mapped to different presets.  Dictionary size is roughly equal to the "
+"decompressor memory usage."
+msgstr ""
+"Die Nummerierung der Voreinstellungsstufen der Kompression ist in B<xz> und "
+"den LZMA-Utils unterschiedlich. Der wichtigste Unterschied ist die Zuweisung "
+"der Wörterbuchgrößen zu den verschiedenen Voreinstellungsstufen. Die "
+"Wörterbuchgröße ist etwa gleich dem Speicherbedarf bei der Dekompression."
+
+#. type: tbl table
+#: ../src/xz/xz.1:2233 ../src/xz/xz.1:2258
+#, no-wrap
+msgid "Level"
+msgstr "Stufe"
+
+#. type: tbl table
+#: ../src/xz/xz.1:2233 ../src/xz/xz.1:2258
+#, no-wrap
+msgid "xz"
+msgstr "xz"
+
+#. type: tbl table
+#: ../src/xz/xz.1:2233
+#, no-wrap
+msgid "LZMA Utils"
+msgstr "LZMA-Utils"
+
+#. type: tbl table
+#: ../src/xz/xz.1:2234 ../src/xz/xz.1:2259
+#, no-wrap
+msgid "N/A"
+msgstr "nicht verfügbar"
+
+#. type: tbl table
+#: ../src/xz/xz.1:2235
+#, no-wrap
+msgid "64 KiB"
+msgstr "64 KiB"
+
+#. type: tbl table
+#: ../src/xz/xz.1:2237
+#, no-wrap
+msgid "512 KiB"
+msgstr "512 KiB"
+
+#. type: Plain text
+#: ../src/xz/xz.1:2252
+msgid ""
+"The dictionary size differences affect the compressor memory usage too, but "
+"there are some other differences between LZMA Utils and XZ Utils, which make "
+"the difference even bigger:"
+msgstr ""
+"Die Unterschiede in der Wörterbuchgröße beeinflussen auch den Speicherbedarf "
+"bei der Kompression, aber es gibt noch einige andere Unterschiede zwischen "
+"den LZMA-Utils und den XZ-Utils, die die Kluft noch vergrößern:"
+
+#. type: tbl table
+#: ../src/xz/xz.1:2258
+#, no-wrap
+msgid "LZMA Utils 4.32.x"
+msgstr "LZMA-Utils 4.32.x"
+
+#. type: tbl table
+#: ../src/xz/xz.1:2261 ../src/xz/xz.1:2262
+#, no-wrap
+msgid "12 MiB"
+msgstr "12 MiB"
+
+#. type: tbl table
+#: ../src/xz/xz.1:2264
+#, no-wrap
+msgid "26 MiB"
+msgstr "26 MiB"
+
+#. type: tbl table
+#: ../src/xz/xz.1:2265
+#, no-wrap
+msgid "45 MiB"
+msgstr "45 MiB"
+
+#. type: tbl table
+#: ../src/xz/xz.1:2266
+#, no-wrap
+msgid "83 MiB"
+msgstr "83 MiB"
+
+#. type: tbl table
+#: ../src/xz/xz.1:2267
+#, no-wrap
+msgid "159 MiB"
+msgstr "159 MiB"
+
+#. type: tbl table
+#: ../src/xz/xz.1:2268
+#, no-wrap
+msgid "311 MiB"
+msgstr "311 MiB"
+
+#. type: Plain text
+#: ../src/xz/xz.1:2277
+msgid ""
+"The default preset level in LZMA Utils is B<-7> while in XZ Utils it is "
+"B<-6>, so both use an 8 MiB dictionary by default."
+msgstr ""
+"Die standardmäßige Voreinstellungsstufe in den LZMA-Utils ist B<-7>, während "
+"diese in den XZ-Utils B<-6> ist, daher verwenden beide standardmäßig ein 8 "
+"MiB großes Wörterbuch."
+
+#. type: SS
+#: ../src/xz/xz.1:2278
+#, no-wrap
+msgid "Streamed vs. non-streamed .lzma files"
+msgstr "Vor- und Nachteile von .lzma-Dateien als Datenströme"
+
+#. type: Plain text
+#: ../src/xz/xz.1:2288
+msgid ""
+"The uncompressed size of the file can be stored in the B<.lzma> header.  "
+"LZMA Utils does that when compressing regular files.  The alternative is to "
+"mark that uncompressed size is unknown and use end-of-payload marker to "
+"indicate where the decompressor should stop.  LZMA Utils uses this method "
+"when uncompressed size isn't known, which is the case for example in pipes."
+msgstr ""
+"Die unkomprimierte Größe der Datei kann in den B<.lzma>-Headern gespeichert "
+"werden. Die LZMA-Utils tun das beim Komprimieren gewöhnlicher Dateien. Als "
+"Alternative kann die unkomprimierte Größe als unbekannt markiert und eine "
+"Nutzdatenende-Markierung (end-of-payload) verwendet werden, um anzugeben, wo "
+"der Dekompressor stoppen soll. Die LZMA-Utils verwenden diese Methode, wenn "
+"die unkomprimierte Größe unbekannt ist, was beispielsweise in Pipes "
+"(Befehlsverkettungen) der Fall ist."
+
+#. type: Plain text
+#: ../src/xz/xz.1:2309
+msgid ""
+"B<xz> supports decompressing B<.lzma> files with or without end-of-payload "
+"marker, but all B<.lzma> files created by B<xz> will use end-of-payload "
+"marker and have uncompressed size marked as unknown in the B<.lzma> header.  "
+"This may be a problem in some uncommon situations.  For example, a B<.lzma> "
+"decompressor in an embedded device might work only with files that have "
+"known uncompressed size.  If you hit this problem, you need to use LZMA "
+"Utils or LZMA SDK to create B<.lzma> files with known uncompressed size."
+msgstr ""
+"B<xz> unterstützt die Dekompression von B<.lzma>-Dateien mit oder ohne "
+"Nutzdatenende-Markierung, aber alle von B<xz> erstellten B<.lzma>-Dateien "
+"verwenden diesen Nutzdatenende-Markierung, wobei die unkomprimierte Größe in "
+"den B<.lzma>-Headern als unbekannt markiert wird. Das könnte in einigen "
+"unüblichen Situationen ein Problem sein. Zum Beispiel könnte ein B<.lzma>-"
+"Dekompressor in einem Gerät mit eingebettetem System nur mit Dateien "
+"funktionieren, deren unkomprimierte Größe bekannt ist. Falls Sie auf dieses "
+"Problem stoßen, müssen Sie die LZMA-Utils oder das LZMA-SDK verwenden, um B<."
+"lzma>-Dateien mit bekannter unkomprimierter Größe zu erzeugen."
+
+#. type: SS
+#: ../src/xz/xz.1:2310
+#, no-wrap
+msgid "Unsupported .lzma files"
+msgstr "Nicht unterstützte .lzma-Dateien"
+
+#. type: Plain text
+#: ../src/xz/xz.1:2333
+msgid ""
+"The B<.lzma> format allows I<lc> values up to 8, and I<lp> values up to 4.  "
+"LZMA Utils can decompress files with any I<lc> and I<lp>, but always creates "
+"files with B<lc=3> and B<lp=0>.  Creating files with other I<lc> and I<lp> "
+"is possible with B<xz> and with LZMA SDK."
+msgstr ""
+"Das B<.lzma>-Format erlaubt I<lc>-Werte bis zu 8 und I<lp>-Werte bis zu 4. "
+"Die LZMA-Utils können Dateien mit beliebigem I<lc> und I<lp> dekomprimieren, "
+"aber erzeugen immer Dateien mit B<lc=3> und B<lp=0>. Das Erzeugen von "
+"Dateien mit anderem I<lc> und I<lp> ist mit B<xz> und mit dem LZMA-SDK "
+"möglich."
+
+#. type: Plain text
+#: ../src/xz/xz.1:2344
+msgid ""
+"The implementation of the LZMA1 filter in liblzma requires that the sum of "
+"I<lc> and I<lp> must not exceed 4.  Thus, B<.lzma> files, which exceed this "
+"limitation, cannot be decompressed with B<xz>."
+msgstr ""
+"Die Implementation des LZMA-Filters in liblzma setzt voraus, dass die Summe "
+"von I<lc> und I<lp> nicht größer als 4 ist. Daher können B<.lzma>-Dateien, "
+"welche diese Begrenzung überschreiten, mit B<xz> nicht dekomprimiert werden."
+
+#. type: Plain text
+#: ../src/xz/xz.1:2359
+msgid ""
+"LZMA Utils creates only B<.lzma> files which have a dictionary size of "
+"2^I<n> (a power of 2) but accepts files with any dictionary size.  liblzma "
+"accepts only B<.lzma> files which have a dictionary size of 2^I<n> or 2^I<n> "
+"+ 2^(I<n>-1).  This is to decrease false positives when detecting B<.lzma> "
+"files."
+msgstr ""
+"Die LZMA-Utils erzeugen nur B<.lzma>-Dateien mit einer Wörterbuchgröße von "
+"2^I<n> (einer Zweierpotenz), aber akzeptieren Dateien mit einer beliebigen "
+"Wörterbuchgröße. Liblzma akzeptiert nur B<.lzma>-Dateien mit einer "
+"Wörterbuchgröße von 2^I<n> oder 2^I<n> + 2^(I<n>-1). Dies dient zum "
+"Verringern von Fehlalarmen beim Erkennen von B<.lzma>-Dateien."
+
+#. type: Plain text
+#: ../src/xz/xz.1:2364
+msgid ""
+"These limitations shouldn't be a problem in practice, since practically all "
+"B<.lzma> files have been compressed with settings that liblzma will accept."
+msgstr ""
+"Diese Einschränkungen sollten in der Praxis kein Problem sein, da praktisch "
+"alle B<.lzma>-Dateien mit Einstellungen komprimiert wurden, die Liblzma "
+"akzeptieren wird."
+
+#. type: SS
+#: ../src/xz/xz.1:2365
+#, no-wrap
+msgid "Trailing garbage"
+msgstr "Angehängter Datenmüll"
+
+#. type: Plain text
+#: ../src/xz/xz.1:2375
+msgid ""
+"When decompressing, LZMA Utils silently ignore everything after the first B<."
+"lzma> stream.  In most situations, this is a bug.  This also means that LZMA "
+"Utils don't support decompressing concatenated B<.lzma> files."
+msgstr ""
+"Bei der Dekompression ignorieren die LZMA-Utils stillschweigend alles nach "
+"dem ersten B<.lzma>-Datenstrom. In den meisten Situationen ist das ein "
+"Fehler. Das bedeutet auch, dass die LZMA-Utils die Dekompression verketteter "
+"B<.lzma>-Dateien nicht unterstützen."
+
+#. type: Plain text
+#: ../src/xz/xz.1:2385
+msgid ""
+"If there is data left after the first B<.lzma> stream, B<xz> considers the "
+"file to be corrupt unless B<--single-stream> was used.  This may break "
+"obscure scripts which have assumed that trailing garbage is ignored."
+msgstr ""
+"Wenn nach dem ersten B<.lzma>-Datenstrom Daten verbleiben, erachtet B<xz> "
+"die Datei als beschädigt, es sei denn, die Option B<--single-stream> wurde "
+"verwendet. Dies könnte die Ausführung von Skripten beeinflussen, die davon "
+"ausgehen, dass angehängter Datenmüll ignoriert wird."
+
+#. type: SH
+#: ../src/xz/xz.1:2386 ../src/xzdec/xzdec.1:117
+#, no-wrap
+msgid "NOTES"
+msgstr "ANMERKUNGEN"
+
+#. type: SS
+#: ../src/xz/xz.1:2388
+#, no-wrap
+msgid "Compressed output may vary"
+msgstr "Die komprimierte Ausgabe kann variieren"
+
+#. type: Plain text
+#: ../src/xz/xz.1:2399
+msgid ""
+"The exact compressed output produced from the same uncompressed input file "
+"may vary between XZ Utils versions even if compression options are "
+"identical.  This is because the encoder can be improved (faster or better "
+"compression)  without affecting the file format.  The output can vary even "
+"between different builds of the same XZ Utils version, if different build "
+"options are used."
+msgstr ""
+"Die exakte komprimierte Ausgabe, die aus der gleichen unkomprimierten "
+"Eingabedatei erzeugt wird, kann zwischen den Versionen der XZ-Utils "
+"unterschiedlich sein, selbst wenn die Kompressionsoptionen identisch sind. "
+"Das kommt daher, weil der Kodierer verbessert worden sein könnte "
+"(hinsichtlich schnellerer oder besserer Kompression), ohne das Dateiformat "
+"zu beeinflussen. Die Ausgabe kann sogar zwischen verschiedenen Programmen "
+"der gleichen Version der XZ-Utils variieren, wenn bei der Erstellung des "
+"Binärprogramms unterschiedliche Optionen verwendet wurden."
+
+#. type: Plain text
+#: ../src/xz/xz.1:2409
+msgid ""
+"The above means that once B<--rsyncable> has been implemented, the resulting "
+"files won't necessarily be rsyncable unless both old and new files have been "
+"compressed with the same xz version.  This problem can be fixed if a part of "
+"the encoder implementation is frozen to keep rsyncable output stable across "
+"xz versions."
+msgstr ""
+"Sobald B<--rsyncable> implementiert wurde, bedeutet das, dass die sich "
+"ergebenden Dateien nicht notwendigerweise mit Rsync abgeglichen werden "
+"können, außer wenn die alte und neue Datei mit der gleichen B<xz>-Version "
+"erzeugt wurden. Das Problem kann beseitigt werden, wenn ein Teil der Encoder-"
+"Implementierung eingefroren wird, um die mit Rsync abgleichbare Ausgabe über "
+"B<xz>-Versionsgrenzen hinweg stabil zu halten."
+
+#. type: SS
+#: ../src/xz/xz.1:2410
+#, no-wrap
+msgid "Embedded .xz decompressors"
+msgstr "Eingebettete .xz-Dekompressoren"
+
+#. type: Plain text
+#: ../src/xz/xz.1:2427
+msgid ""
+"Embedded B<.xz> decompressor implementations like XZ Embedded don't "
+"necessarily support files created with integrity I<check> types other than "
+"B<none> and B<crc32>.  Since the default is B<--check=crc64>, you must use "
+"B<--check=none> or B<--check=crc32> when creating files for embedded systems."
+msgstr ""
+"Eingebettete B<.xz>-Dekompressor-Implementierungen wie XZ Embedded "
+"unterstützen nicht unbedingt Dateien, die mit anderen Integritätsprüfungen "
+"(I<Prüfung>-Typen) als B<none> und B<crc32> erzeugt wurden. Da B<--"
+"check=crc64> die Voreinstellung ist, müssen Sie B<--check=none> oder B<--"
+"check=crc32> verwenden, wenn Sie Dateien für eingebettete Systeme erstellen."
+
+#. type: Plain text
+#: ../src/xz/xz.1:2437
+msgid ""
+"Outside embedded systems, all B<.xz> format decompressors support all the "
+"I<check> types, or at least are able to decompress the file without "
+"verifying the integrity check if the particular I<check> is not supported."
+msgstr ""
+"Außerhalb eingebetteter Systeme unterstützen die Dekompressoren des B<.xz>-"
+"Formats alle I<Prüfung>-Typen oder sind mindestens in der Lage, die Datei zu "
+"dekomprimieren, ohne deren Integrität zu prüfen, wenn die bestimmte "
+"I<Prüfung> nicht verfügbar ist."
+
+#. type: Plain text
+#: ../src/xz/xz.1:2440
+msgid ""
+"XZ Embedded supports BCJ filters, but only with the default start offset."
+msgstr ""
+"XZ Embedded unterstützt BCJ-Filter, aber nur mit dem vorgegebenen "
+"Startversatz."
+
+#. type: SH
+#: ../src/xz/xz.1:2441
+#, no-wrap
+msgid "EXAMPLES"
+msgstr "BEISPIELE"
+
+#. type: SS
+#: ../src/xz/xz.1:2443
+#, no-wrap
+msgid "Basics"
+msgstr "Grundlagen"
+
+#. type: Plain text
+#: ../src/xz/xz.1:2453
+msgid ""
+"Compress the file I<foo> into I<foo.xz> using the default compression level "
+"(B<-6>), and remove I<foo> if compression is successful:"
+msgstr ""
+"Komprimiert die Datei I<foo> mit der Standard-Kompressionsstufe (B<-6>) zu "
+"I<foo.xz> und entfernt I<foo> nach erfolgreicher Kompression:"
+
+#. type: Plain text
+#: ../src/xz/xz.1:2458
+#, no-wrap
+msgid "CW<xz foo>\n"
+msgstr "CW<xz foo>\n"
+
+#. type: Plain text
+#: ../src/xz/xz.1:2469
+msgid ""
+"Decompress I<bar.xz> into I<bar> and don't remove I<bar.xz> even if "
+"decompression is successful:"
+msgstr ""
+"I<bar.xz> in I<bar> dekomprimieren und I<bar.xz> selbst dann nicht löschen, "
+"wenn die Dekompression erfolgreich war:"
+
+#. type: Plain text
+#: ../src/xz/xz.1:2474
+#, no-wrap
+msgid "CW<xz -dk bar.xz>\n"
+msgstr "CW<xz -dk bar.xz>\n"
+
+#. type: Plain text
+#: ../src/xz/xz.1:2487
+msgid ""
+"Create I<baz.tar.xz> with the preset B<-4e> (B<-4 --extreme>), which is "
+"slower than e.g. the default B<-6>, but needs less memory for compression "
+"and decompression (48\\ MiB and 5\\ MiB, respectively):"
+msgstr ""
+"I<baz.tar.xz> mit der Voreinstellung B<-4e> (B<-4 --extreme>) erzeugen, was "
+"langsamer ist als beispielsweise die Vorgabe B<-6>, aber weniger Speicher "
+"für Kompression und Dekompression benötigt (48\\ MiB beziehungsweise 5\\ "
+"MiB):"
+
+#. type: Plain text
+#: ../src/xz/xz.1:2492
+#, no-wrap
+msgid "CW<tar cf - baz | xz -4e E<gt> baz.tar.xz>\n"
+msgstr "CW<tar cf - baz | xz -4e E<gt> baz.tar.xz>\n"
+
+#. type: Plain text
+#: ../src/xz/xz.1:2498
+msgid ""
+"A mix of compressed and uncompressed files can be decompressed to standard "
+"output with a single command:"
+msgstr ""
+"Eine Mischung aus komprimierten und unkomprimierten Dateien kann mit einem "
+"einzelnen Befehl dekomprimiert in die Standardausgabe geschrieben werden:"
+
+#. type: Plain text
+#: ../src/xz/xz.1:2503
+#, no-wrap
+msgid "CW<xz -dcf a.txt b.txt.xz c.txt d.txt.lzma E<gt> abcd.txt>\n"
+msgstr "CW<xz -dcf a.txt b.txt.xz c.txt d.txt.lzma E<gt> abcd.txt>\n"
+
+#. type: SS
+#: ../src/xz/xz.1:2507
+#, no-wrap
+msgid "Parallel compression of many files"
+msgstr "Parallele Kompression von vielen Dateien"
+
+#. type: Plain text
+#: ../src/xz/xz.1:2513
+msgid ""
+"On GNU and *BSD, B<find>(1)  and B<xargs>(1)  can be used to parallelize "
+"compression of many files:"
+msgstr ""
+"Auf GNU- und *BSD-Systemen können B<find>(1) und B<xargs>(1) zum "
+"Parallelisieren der Kompression vieler Dateien verwendet werden:"
+
+#. type: Plain text
+#: ../src/xz/xz.1:2519
+#, no-wrap
+msgid ""
+"CW<find . -type f \\e! -name '*.xz' -print0 \\e\n"
+"    | xargs -0r -P4 -n16 xz -T1>\n"
+msgstr ""
+"CW<find . -type f \\e! -name '*.xz' -print0 \\e\n"
+"    | xargs -0r -P4 -n16 xz -T1>\n"
+
+#. type: Plain text
+#: ../src/xz/xz.1:2541
+msgid ""
+"The B<-P> option to B<xargs>(1)  sets the number of parallel B<xz> "
+"processes.  The best value for the B<-n> option depends on how many files "
+"there are to be compressed.  If there are only a couple of files, the value "
+"should probably be 1; with tens of thousands of files, 100 or even more may "
+"be appropriate to reduce the number of B<xz> processes that B<xargs>(1)  "
+"will eventually create."
+msgstr ""
+"Die Option B<-P> von B<xargs>(1) legt die Anzahl der parallelen B<xz>-"
+"Prozesse fest. Der beste Wert für die Option B<-n> hängt davon ab, wie viele "
+"Dateien komprimiert werden sollen. Wenn es sich nur um wenige Dateien "
+"handelt, sollte der Wert wahrscheinlich 1 sein; bei Zehntausenden von "
+"Dateien kann 100 oder noch mehr angemessener sein, um die Anzahl der B<xz>-"
+"Prozesse zu beschränken, die B<xargs>(1) schließlich erzeugen wird."
+
+#. type: Plain text
+#: ../src/xz/xz.1:2549
+msgid ""
+"The option B<-T1> for B<xz> is there to force it to single-threaded mode, "
+"because B<xargs>(1)  is used to control the amount of parallelization."
+msgstr ""
+"Die Option B<-T1> für B<xz> dient dazu, den Einzelthread-Modus zu erzwingen, "
+"da B<xargs>(1) zur Steuerung des Umfangs der Parallelisierung verwendet wird."
+
+#. type: SS
+#: ../src/xz/xz.1:2550
+#, no-wrap
+msgid "Robot mode"
+msgstr "Roboter-Modus"
+
+#. type: Plain text
+#: ../src/xz/xz.1:2553
+msgid ""
+"Calculate how many bytes have been saved in total after compressing multiple "
+"files:"
+msgstr ""
+"Berechnen, wie viel Byte nach der Kompression mehrerer Dateien insgesamt "
+"eingespart wurden:"
+
+#. type: Plain text
+#: ../src/xz/xz.1:2558
+#, no-wrap
+msgid "CW<xz --robot --list *.xz | awk '/^totals/{print $5-$4}'>\n"
+msgstr "CW<xz --robot --list *.xz | awk '/^totals/{print $5-$4}'>\n"
+
+#. type: Plain text
+#: ../src/xz/xz.1:2573
+msgid ""
+"A script may want to know that it is using new enough B<xz>.  The following "
+"B<sh>(1)  script checks that the version number of the B<xz> tool is at "
+"least 5.0.0.  This method is compatible with old beta versions, which didn't "
+"support the B<--robot> option:"
+msgstr ""
+"Ein Skript könnte abfragen wollen, ob es ein B<xz> verwendet, das aktuell "
+"genug ist. Das folgende B<sh>(1)-Skript prüft, ob die Versionsnummer des "
+"Dienstprogramms B<xz> mindestens 5.0.0 ist. Diese Methode ist zu alten Beta-"
+"Versionen kompatibel, welche die Option B<--robot> nicht unterstützen:"
+
+#. type: Plain text
+#: ../src/xz/xz.1:2582
+#, no-wrap
+msgid ""
+"CW<if ! eval \"$(xz --robot --version 2E<gt> /dev/null)\" ||\n"
+"        [ \"$XZ_VERSION\" -lt 50000002 ]; then\n"
+"    echo \"Your xz is too old.\"\n"
+"fi\n"
+"unset XZ_VERSION LIBLZMA_VERSION>\n"
+msgstr ""
+"CW<if ! eval \"$(xz --robot --version 2E<gt> /dev/null)\" ||\n"
+"        [ \"$XZ_VERSION\" -lt 50000002 ]; then\n"
+"    echo \"Ihre Version von Xz ist zu alt.\"\n"
+"fi\n"
+"unset XZ_VERSION LIBLZMA_VERSION>\n"
+
+#. type: Plain text
+#: ../src/xz/xz.1:2589
+msgid ""
+"Set a memory usage limit for decompression using B<XZ_OPT>, but if a limit "
+"has already been set, don't increase it:"
+msgstr ""
+"Eine Speicherbedarfsbegrenzung für die Dekompression mit B<XZ_OPT> setzen, "
+"aber eine bereits gesetzte Begrenzung nicht erhöhen:"
+
+#. type: Plain text
+#: ../src/xz/xz.1:2599
+#, no-wrap
+msgid ""
+"CW<NEWLIM=$((123 E<lt>E<lt> 20))  # 123 MiB\n"
+"OLDLIM=$(xz --robot --info-memory | cut -f3)\n"
+"if [ $OLDLIM -eq 0 -o $OLDLIM -gt $NEWLIM ]; then\n"
+"    XZ_OPT=\"$XZ_OPT --memlimit-decompress=$NEWLIM\"\n"
+"    export XZ_OPT\n"
+"fi>\n"
+msgstr ""
+"CW<NEWLIM=$((123 E<lt>E<lt> 20))  # 123 MiB\n"
+"OLDLIM=$(xz --robot --info-memory | cut -f3)\n"
+"if [ $OLDLIM -eq 0 -o $OLDLIM -gt $NEWLIM ]; then\n"
+"    XZ_OPT=\"$XZ_OPT --memlimit-decompress=$NEWLIM\"\n"
+"    export XZ_OPT\n"
+"fi>\n"
+
+#. type: Plain text
+#: ../src/xz/xz.1:2609
+msgid ""
+"The simplest use for custom filter chains is customizing a LZMA2 preset.  "
+"This can be useful, because the presets cover only a subset of the "
+"potentially useful combinations of compression settings."
+msgstr ""
+"Der einfachste Anwendungsfall für benutzerdefinierte Filterketten ist die "
+"Anpassung von LZMA2-Voreinstellungsstufen. Das kann nützlich sein, weil die "
+"Voreinstellungen nur einen Teil der potenziell sinnvollen Kombinationen aus "
+"Kompressionseinstellungen abdecken."
+
+#. type: Plain text
+#: ../src/xz/xz.1:2617
+msgid ""
+"The CompCPU columns of the tables from the descriptions of the options "
+"B<-0> ... B<-9> and B<--extreme> are useful when customizing LZMA2 presets.  "
+"Here are the relevant parts collected from those two tables:"
+msgstr ""
+"Die KompCPU-Spalten der Tabellen aus den Beschreibungen der Optionen B<-0> … "
+"B<-9> und B<--extreme> sind beim Anpassen der LZMA2-Voreinstellungen "
+"nützlich. Diese sind die relevanten Teile aus diesen zwei Tabellen:"
+
+#. type: Plain text
+#: ../src/xz/xz.1:2642
+msgid ""
+"If you know that a file requires somewhat big dictionary (e.g. 32 MiB) to "
+"compress well, but you want to compress it quicker than B<xz -8> would do, a "
+"preset with a low CompCPU value (e.g. 1)  can be modified to use a bigger "
+"dictionary:"
+msgstr ""
+"Wenn Sie wissen, dass eine Datei für eine gute Kompression ein etwas "
+"größeres Wörterbuch benötigt (zum Beispiel 32 MiB), aber Sie sie schneller "
+"komprimieren wollen, als dies mit B<xz -8> geschehen würde, kann eine "
+"Voreinstellung mit einem niedrigen KompCPU-Wert (zum Beispiel 1) dahingehend "
+"angepasst werden, ein größeres Wörterbuch zu verwenden:"
+
+#. type: Plain text
+#: ../src/xz/xz.1:2647
+#, no-wrap
+msgid "CW<xz --lzma2=preset=1,dict=32MiB foo.tar>\n"
+msgstr "CW<xz --lzma2=preset=1,dict=32MiB foo.tar>\n"
+
+#. type: Plain text
+#: ../src/xz/xz.1:2663
+msgid ""
+"With certain files, the above command may be faster than B<xz -6> while "
+"compressing significantly better.  However, it must be emphasized that only "
+"some files benefit from a big dictionary while keeping the CompCPU value "
+"low.  The most obvious situation, where a big dictionary can help a lot, is "
+"an archive containing very similar files of at least a few megabytes each.  "
+"The dictionary size has to be significantly bigger than any individual file "
+"to allow LZMA2 to take full advantage of the similarities between "
+"consecutive files."
+msgstr ""
+"Mit bestimmten Dateien kann der obige Befehl schneller sein als B<xz -6>, "
+"wobei die Kompression deutlich besser wird. Dennoch muss betont werden, dass "
+"nur wenige Dateien von einem größeren Wörterbuch profitieren, wenn der "
+"KompCPU-Wert niedrig bleibt. Der offensichtlichste Fall, in dem ein größeres "
+"Wörterbuch  sehr hilfreich sein kann, ist ein Archiv, das einander sehr "
+"ähnliche Dateien enthält, die jeweils wenigstens einige Megabyte groß sind. "
+"Das Wörterbuch muss dann deutlich größer sein als die einzelne Datei, damit "
+"LZMA2 den größtmöglichen Vorteil aus den Ähnlichkeiten der aufeinander "
+"folgenden Dateien zieht."
+
+#. type: Plain text
+#: ../src/xz/xz.1:2670
+msgid ""
+"If very high compressor and decompressor memory usage is fine, and the file "
+"being compressed is at least several hundred megabytes, it may be useful to "
+"use an even bigger dictionary than the 64 MiB that B<xz -9> would use:"
+msgstr ""
+"Wenn hoher Speicherbedarf für Kompression und Dekompression kein Problem ist "
+"und die zu komprimierende Datei mindestens einige Hundert Megabyte groß ist, "
+"kann es sinnvoll sein, ein noch größeres Wörterbuch zu verwenden, als die 64 "
+"MiB, die mit B<xz -9> verwendet werden würden:"
+
+#. type: Plain text
+#: ../src/xz/xz.1:2675
+#, no-wrap
+msgid "CW<xz -vv --lzma2=dict=192MiB big_foo.tar>\n"
+msgstr "CW<xz -vv --lzma2=dict=192MiB big_foo.tar>\n"
+
+#. type: Plain text
+#: ../src/xz/xz.1:2688
+msgid ""
+"Using B<-vv> (B<--verbose --verbose>)  like in the above example can be "
+"useful to see the memory requirements of the compressor and decompressor.  "
+"Remember that using a dictionary bigger than the size of the uncompressed "
+"file is waste of memory, so the above command isn't useful for small files."
+msgstr ""
+"Die Verwendung von B<-vv> (B<--verbose --verbose>) wie im obigen Beispiel "
+"kann nützlich sein, um den Speicherbedarf für Kompressor und Dekompressor zu "
+"sehen. Denken Sie daran, dass ein Wörterbuch, das größer als die "
+"unkomprimierte Datei ist, Speicherverschwendung wäre. Daher ist der obige "
+"Befehl für kleine Dateien nicht sinnvoll."
+
+#. type: Plain text
+#: ../src/xz/xz.1:2701
+msgid ""
+"Sometimes the compression time doesn't matter, but the decompressor memory "
+"usage has to be kept low e.g. to make it possible to decompress the file on "
+"an embedded system.  The following command uses B<-6e> (B<-6 --extreme>)  as "
+"a base and sets the dictionary to only 64\\ KiB.  The resulting file can be "
+"decompressed with XZ Embedded (that's why there is B<--check=crc32>)  using "
+"about 100\\ KiB of memory."
+msgstr ""
+"Manchmal spielt die Kompressionszeit keine Rolle, aber der Speicherbedarf "
+"bei der Dekompression muss gering gehalten werden, zum Beispiel um die Datei "
+"auf eingebetteten Systemen dekomprimieren zu können. Der folgende Befehl "
+"verwendet B<-6e> (B<-6 --extreme>) als Basis und setzt die Wörterbuchgröße "
+"auf nur 64\\ KiB. Die sich ergebende Datei kann mit XZ Embedded (aus diesem "
+"Grund ist dort B<--check=crc32>) mit nur etwa 100\\ KiB Speicher "
+"dekomprimiert werden."
+
+#. type: Plain text
+#: ../src/xz/xz.1:2706
+#, no-wrap
+msgid "CW<xz --check=crc32 --lzma2=preset=6e,dict=64KiB foo>\n"
+msgstr "CW<xz --check=crc32 --lzma2=preset=6e,dict=64KiB foo>\n"
+
+#. type: Plain text
+#: ../src/xz/xz.1:2729
+msgid ""
+"If you want to squeeze out as many bytes as possible, adjusting the number "
+"of literal context bits (I<lc>)  and number of position bits (I<pb>)  can "
+"sometimes help.  Adjusting the number of literal position bits (I<lp>)  "
+"might help too, but usually I<lc> and I<pb> are more important.  E.g. a "
+"source code archive contains mostly US-ASCII text, so something like the "
+"following might give slightly (like 0.1\\ %) smaller file than B<xz -6e> "
+"(try also without B<lc=4>):"
+msgstr ""
+"Wenn Sie so viele Byte wie möglich herausquetschen wollen, kann die "
+"Anpassung der Anzahl der literalen Kontextbits (I<lc>) und der Anzahl der "
+"Positionsbits (I<pb>) manchmal hilfreich sein. Auch die Anpassung der Anzahl "
+"der literalen Positionsbits (I<lp>) könnte helfen, aber üblicherweise sind "
+"I<lc> und I<pb> wichtiger. Wenn ein Quellcode-Archiv zum Beispiel "
+"hauptsächlich ASCII-Text enthält, könnte ein Aufruf wie der folgende eine "
+"etwas kleinere Datei (etwa 0,1\\ %) ergeben als mit B<xz -6e> (versuchen Sie "
+"es auch B<lc=4>):"
+
+#. type: Plain text
+#: ../src/xz/xz.1:2734
+#, no-wrap
+msgid "CW<xz --lzma2=preset=6e,pb=0,lc=4 source_code.tar>\n"
+msgstr "CW<xz --lzma2=preset=6e,pb=0,lc=4 Quellcode.tar>\n"
+
+#. type: Plain text
+#: ../src/xz/xz.1:2742
+msgid ""
+"Using another filter together with LZMA2 can improve compression with "
+"certain file types.  E.g. to compress a x86-32 or x86-64 shared library "
+"using the x86 BCJ filter:"
+msgstr ""
+"Die Verwendung eines anderen Filters mit LZMA2 kann die Kompression bei "
+"verschiedenen Dateitypen verbessern. So könnten Sie eine gemeinsam genutzte "
+"Bibliothek der Architekturen x86-32 oder x86-64 mit dem BCJ-Filter für x86 "
+"komprimieren:"
+
+#. type: Plain text
+#: ../src/xz/xz.1:2747
+#, no-wrap
+msgid "CW<xz --x86 --lzma2 libfoo.so>\n"
+msgstr "CW<xz --x86 --lzma2 libfoo.so>\n"
+
+#. type: Plain text
+#: ../src/xz/xz.1:2761
+msgid ""
+"Note that the order of the filter options is significant.  If B<--x86> is "
+"specified after B<--lzma2>, B<xz> will give an error, because there cannot "
+"be any filter after LZMA2, and also because the x86 BCJ filter cannot be "
+"used as the last filter in the chain."
+msgstr ""
+"Beachten Sie, dass die Reihenfolge der Filteroptionen von Bedeutung ist. "
+"Falls B<--x86> nach B<--lzma2> angegeben wird, gibt B<xz> einen Fehler aus, "
+"weil nach LZMA2 kein weiterer Filter sein darf und auch weil der BCJ-Filter "
+"für x86 nicht als letzter Filter in der Filterkette gesetzt werden darf."
+
+#. type: Plain text
+#: ../src/xz/xz.1:2767
+msgid ""
+"The Delta filter together with LZMA2 can give good results with bitmap "
+"images.  It should usually beat PNG, which has a few more advanced filters "
+"than simple delta but uses Deflate for the actual compression."
+msgstr ""
+"Der Delta-Filter zusammen mit LZMA2 kann bei Bitmap-Bildern gute Ergebnisse "
+"liefern. Er sollte üblicherweise besser sein als PNG, welches zwar einige "
+"fortgeschrittene Filter als ein simples delta bietet, aber für die "
+"eigentliche Kompression »Deflate« verwendet."
+
+#. type: Plain text
+#: ../src/xz/xz.1:2777
+msgid ""
+"The image has to be saved in uncompressed format, e.g. as uncompressed "
+"TIFF.  The distance parameter of the Delta filter is set to match the number "
+"of bytes per pixel in the image.  E.g. 24-bit RGB bitmap needs B<dist=3>, "
+"and it is also good to pass B<pb=0> to LZMA2 to accommodate the three-byte "
+"alignment:"
+msgstr ""
+"Das Bild muss in einem unkomprimierten Format gespeichert werden, zum "
+"Beispiel als unkomprimiertes TIFF. Der Abstandsparameter des Delta-Filters "
+"muss so gesetzt werden, dass er der Anzahl der Bytes pro Pixel im Bild "
+"entspricht. Zum Beispiel erfordert ein 24-Bit-RGB-Bitmap B<dist=3>, außerdem "
+"ist es gut, B<pb=0> an LZMA2 zu übergeben, um die 3-Byte-Ausrichtung zu "
+"berücksichtigen:"
+
+#. type: Plain text
+#: ../src/xz/xz.1:2782
+#, no-wrap
+msgid "CW<xz --delta=dist=3 --lzma2=pb=0 foo.tiff>\n"
+msgstr "CW<xz --delta=dist=3 --lzma2=pb=0 foo.tiff>\n"
+
+#. type: Plain text
+#: ../src/xz/xz.1:2790
+msgid ""
+"If multiple images have been put into a single archive (e.g.\\& B<.tar>), "
+"the Delta filter will work on that too as long as all images have the same "
+"number of bytes per pixel."
+msgstr ""
+"Wenn sich mehrere Bilder in einem einzelnen Archiv befinden (zum Beispiel\\& "
+"B<.tar>), funktioniert der Delta-Filter damit auch, sofern alle Bilder im "
+"Archiv die gleiche Anzahl Bytes pro Pixel haben."
+
+#. type: SH
+#: ../src/xz/xz.1:2791 ../src/xzdec/xzdec.1:143 ../src/lzmainfo/lzmainfo.1:59
+#: ../src/scripts/xzdiff.1:64 ../src/scripts/xzgrep.1:92
+#: ../src/scripts/xzless.1:65 ../src/scripts/xzmore.1:51
+#, no-wrap
+msgid "SEE ALSO"
+msgstr "SIEHE AUCH"
+
+#. type: Plain text
+#: ../src/xz/xz.1:2800
+msgid ""
+"B<xzdec>(1), B<xzdiff>(1), B<xzgrep>(1), B<xzless>(1), B<xzmore>(1), "
+"B<gzip>(1), B<bzip2>(1), B<7z>(1)"
+msgstr ""
+"B<xzdec>(1), B<xzdiff>(1), B<xzgrep>(1), B<xzless>(1), B<xzmore>(1), "
+"B<gzip>(1), B<bzip2>(1), B<7z>(1)"
+
+#. type: Plain text
+#: ../src/xz/xz.1:2802
+msgid "XZ Utils: E<lt>https://tukaani.org/xz/E<gt>"
+msgstr "XZ Utils: E<lt>https://tukaani.org/xz/E<gt>"
+
+#. type: Plain text
+#: ../src/xz/xz.1:2804 ../src/xzdec/xzdec.1:146
+msgid "XZ Embedded: E<lt>https://tukaani.org/xz/embedded.htmlE<gt>"
+msgstr "XZ Embedded: E<lt>https://tukaani.org/xz/embedded.htmlE<gt>"
+
+#. type: Plain text
+#: ../src/xz/xz.1:2805
+msgid "LZMA SDK: E<lt>http://7-zip.org/sdk.htmlE<gt>"
+msgstr "LZMA-SDK: E<lt>http://7-zip.org/sdk.htmlE<gt>"
+
+#. type: TH
+#: ../src/xzdec/xzdec.1:7
+#, no-wrap
+msgid "XZDEC"
+msgstr "XZDEC"
+
+#. type: TH
+#: ../src/xzdec/xzdec.1:7
+#, no-wrap
+msgid "2017-04-19"
+msgstr "19. April 2017"
+
+#. type: Plain text
+#: ../src/xzdec/xzdec.1:10
+msgid "xzdec, lzmadec - Small .xz and .lzma decompressors"
+msgstr "xzdec, lzmadec - Kleine Dekompressoren für .xz und .lzma"
+
+#. type: Plain text
+#: ../src/xzdec/xzdec.1:14
+msgid "B<xzdec> [I<option...>] [I<file...>]"
+msgstr "B<xzdec> [I<Option…>] [I<Datei…>]"
+
+#. type: Plain text
+#: ../src/xzdec/xzdec.1:18
+msgid "B<lzmadec> [I<option...>] [I<file...>]"
+msgstr "B<lzmadec> [I<Option…>] [I<Datei…>]"
+
+#. type: Plain text
+#: ../src/xzdec/xzdec.1:44
+msgid ""
+"B<xzdec> is a liblzma-based decompression-only tool for B<.xz> (and only B<."
+"xz>)  files.  B<xzdec> is intended to work as a drop-in replacement for "
+"B<xz>(1)  in the most common situations where a script has been written to "
+"use B<xz --decompress --stdout> (and possibly a few other commonly used "
+"options) to decompress B<.xz> files.  B<lzmadec> is identical to B<xzdec> "
+"except that B<lzmadec> supports B<.lzma> files instead of B<.xz> files."
+msgstr ""
+"B<xzdec> ist ein auf Liblzma basierendes Nur-Dekompressionswerkzeug für B<."
+"xz>-Dateien (und B<nur> für B<.xz>-Dateien). B<xzdec> ist als direkter "
+"Ersatz für B<xz>(1) in jenen Situationen konzipiert, wo ein Skript B<xz --"
+"decompress --stdout> (und eventuelle einige andere höufig genutzte Optionen) "
+"zum Dekomprimieren von B<.xz>-Dateien. B<lzmadec> ist weitgehend identisch "
+"zu B<xzdec>, mit der Ausnahme, dass B<lzmadec> B<.lzma>-Dateien anstelle von "
+"B<.xz>-Dateien unterstützt."
+
+#. type: Plain text
+#: ../src/xzdec/xzdec.1:61
+msgid ""
+"To reduce the size of the executable, B<xzdec> doesn't support "
+"multithreading or localization, and doesn't read options from B<XZ_DEFAULTS> "
+"and B<XZ_OPT> environment variables.  B<xzdec> doesn't support displaying "
+"intermediate progress information: sending B<SIGINFO> to B<xzdec> does "
+"nothing, but sending B<SIGUSR1> terminates the process instead of displaying "
+"progress information."
+msgstr ""
+"Um die Größe der ausführbaren Datei zu reduzieren, unterstützt B<xzdec> "
+"weder Multithreading noch Lokalisierung. Außerdem liest es keine Optionen "
+"aus den Umgebungsvariablen B<XZ_DEFAULTS> und B<XZ_OPT>. B<xzdec> "
+"unterstützt keine zwischenzeitlichen Fortschrittsinformationen: Das Senden "
+"von B<SIGINFO> an B<xzdec> hat keine Auswirkungen, jedoch beendet B<SIGUSR1> "
+"den Prozess, anstatt Fortschrittsinformationen anzuzeigen."
+
+#. type: Plain text
+#: ../src/xzdec/xzdec.1:69
+msgid ""
+"Ignored for B<xz>(1)  compatibility.  B<xzdec> supports only decompression."
+msgstr ""
+"ist zwecks Kompatibilität zu B<xz>(1) vorhanden; wird ignoriert. B<xzdec> "
+"unterstützt nur Dekompression."
+
+#. type: Plain text
+#: ../src/xzdec/xzdec.1:76
+msgid ""
+"Ignored for B<xz>(1)  compatibility.  B<xzdec> never creates or removes any "
+"files."
+msgstr ""
+"ist zwecks Kompatibilität zu B<xz>(1) vorhanden; wird ignoriert. B<xzdec> "
+"erzeugt oder entfernt niemals Dateien."
+
+#. type: Plain text
+#: ../src/xzdec/xzdec.1:83
+msgid ""
+"Ignored for B<xz>(1)  compatibility.  B<xzdec> always writes the "
+"decompressed data to standard output."
+msgstr ""
+"ist zwecks Kompatibilität zu B<xz>(1) vorhanden; wird ignoriert. B<xzdec> "
+"schreibt die dekomprimierten Daten immer in die Standardausgabe."
+
+#. type: Plain text
+#: ../src/xzdec/xzdec.1:89
+msgid ""
+"Specifying this once does nothing since B<xzdec> never displays any warnings "
+"or notices.  Specify this twice to suppress errors."
+msgstr ""
+"hat bei einmaliger Angabe keine Wirkung, da B<xzdec> niemals Warnungen oder "
+"sonstige Meldungen anzeigt. Wenn Sie dies zweimal angeben, werden "
+"Fehlermeldungen unterdrückt."
+
+#. type: Plain text
+#: ../src/xzdec/xzdec.1:96
+msgid ""
+"Ignored for B<xz>(1)  compatibility.  B<xzdec> never uses the exit status 2."
+msgstr ""
+"ist zwecks Kompatibilität zu B<xz>(1) vorhanden; wird ignoriert. B<xzdec> "
+"verwendet niemals den Exit-Status 2."
+
+#. type: Plain text
+#: ../src/xzdec/xzdec.1:99
+msgid "Display a help message and exit successfully."
+msgstr "zeigt eine Hilfemeldung an und beendet das Programm erfolgreich."
+
+#. type: Plain text
+#: ../src/xzdec/xzdec.1:104
+msgid "Display the version number of B<xzdec> and liblzma."
+msgstr "zeigt die Versionsnummer von B<xzdec> und liblzma an."
+
+#. type: Plain text
+#: ../src/xzdec/xzdec.1:108
+msgid "All was good."
+msgstr "Alles ist in Ordnung."
+
+#. type: Plain text
+#: ../src/xzdec/xzdec.1:117
+msgid ""
+"B<xzdec> doesn't have any warning messages like B<xz>(1)  has, thus the exit "
+"status 2 is not used by B<xzdec>."
+msgstr ""
+"B<xzdec> gibt keine Warnmeldungen wie B<xz>(1) aus, daher wird der Exit-"
+"Status 2 von B<xzdec> nicht verwendet."
+
+#. type: Plain text
+#: ../src/xzdec/xzdec.1:131
+msgid ""
+"Use B<xz>(1)  instead of B<xzdec> or B<lzmadec> for normal everyday use.  "
+"B<xzdec> or B<lzmadec> are meant only for situations where it is important "
+"to have a smaller decompressor than the full-featured B<xz>(1)."
+msgstr ""
+"Verwenden Sie B<xz>(1) anstelle von B<xzdec> oder B<lzmadec> im normalen "
+"täglichen Gebrauch. B<xzdec> oder B<lzmadec> sind nur für Situationen "
+"gedacht, in denen ein kleinerer Dekompressor statt des voll ausgestatteten "
+"B<xz>(1) wichtig ist."
+
+#. type: Plain text
+#: ../src/xzdec/xzdec.1:143
+msgid ""
+"B<xzdec> and B<lzmadec> are not really that small.  The size can be reduced "
+"further by dropping features from liblzma at compile time, but that "
+"shouldn't usually be done for executables distributed in typical non-"
+"embedded operating system distributions.  If you need a truly small B<.xz> "
+"decompressor, consider using XZ Embedded."
+msgstr ""
+"B<xzdec> und B<lzmadec> sind nicht wirklich extrem klein. Die Größe kann "
+"durch Deaktivieren von Funktionen bei der Kompilierung von Liblzma weiter "
+"verringert werden, aber das sollte nicht für ausführbare Dateien getan "
+"werden, die in typischen Betriebssystemen ausgeliefert werden, außer in den "
+"Distributionen für eingebettete Systeme. Wenn Sie einen wirklich winzigen "
+"Dekompressor für B<.xz>-Dateien brauchen, sollten Sie stattdessen XZ "
+"Embedded in Erwägung ziehen."
+
+#. type: Plain text
+#: ../src/xzdec/xzdec.1:145 ../src/lzmainfo/lzmainfo.1:60
+msgid "B<xz>(1)"
+msgstr "B<xz>(1)"
+
+#. type: TH
+#: ../src/lzmainfo/lzmainfo.1:7
+#, no-wrap
+msgid "LZMAINFO"
+msgstr "LZMAINFO"
+
+#. type: TH
+#: ../src/lzmainfo/lzmainfo.1:7 ../src/scripts/xzmore.1:7
+#, no-wrap
+msgid "2013-06-30"
+msgstr "30. Juni 2013"
+
+#. type: Plain text
+#: ../src/lzmainfo/lzmainfo.1:10
+msgid "lzmainfo - show information stored in the .lzma file header"
+msgstr "lzmainfo - im .lzma-Dateikopf enthaltene Informationen anzeigen"
+
+#. type: Plain text
+#: ../src/lzmainfo/lzmainfo.1:15
+msgid "B<lzmainfo> [B<--help>] [B<--version>] [I<file...>]"
+msgstr "B<lzmainfo> [B<--help>] [B<--version>] [I<Datei …>]"
+
+#. type: Plain text
+#: ../src/lzmainfo/lzmainfo.1:31
+msgid ""
+"B<lzmainfo> shows information stored in the B<.lzma> file header.  It reads "
+"the first 13 bytes from the specified I<file>, decodes the header, and "
+"prints it to standard output in human readable format.  If no I<files> are "
+"given or I<file> is B<->, standard input is read."
+msgstr ""
+"B<lzmainfo> zeigt die im B<.lzma>-Dateikopf enthaltenen Informationen an. Es "
+"liest die ersten 13 Bytes aus der angegebenen I<Datei>, dekodiert den "
+"Dateikopf und gibt das Ergebnis in die Standardausgabe in einem "
+"menschenlesbaren Format aus. Falls keine I<Datei>en angegeben werden oder "
+"die I<Datei> als B<-> übergeben wird, dann wird aus der Standardeingabe "
+"gelesen."
+
+#. type: Plain text
+#: ../src/lzmainfo/lzmainfo.1:40
+msgid ""
+"Usually the most interesting information is the uncompressed size and the "
+"dictionary size.  Uncompressed size can be shown only if the file is in the "
+"non-streamed B<.lzma> format variant.  The amount of memory required to "
+"decompress the file is a few dozen kilobytes plus the dictionary size."
+msgstr ""
+"In der Regel sind die unkomprimierte Größe der Daten und die Größe des "
+"Wörterbuchs am bedeutsamsten. Die unkomprimierte Größe kann nur dann "
+"angezeigt werden, wenn die Datei im B<.lzma>-Format kein Datenstrom ist. Die "
+"Größe des für die Dekompression nötigen Speichers beträgt einige Dutzend "
+"Kilobyte zuzüglich der Größe des Inhaltsverzeichnisses."
+
+#. type: Plain text
+#: ../src/lzmainfo/lzmainfo.1:44
+msgid ""
+"B<lzmainfo> is included in XZ Utils primarily for backward compatibility "
+"with LZMA Utils."
+msgstr ""
+"B<lzmainfo> ist in den XZ-Dienstprogrammen hauptsächlich zur Kompatibilität "
+"zu den LZMA-Dienstprogrammen enthalten."
+
+#. type: SH
+#: ../src/lzmainfo/lzmainfo.1:51 ../src/scripts/xzdiff.1:72
+#, no-wrap
+msgid "BUGS"
+msgstr "FEHLER"
+
+#. type: Plain text
+#: ../src/lzmainfo/lzmainfo.1:59
+msgid ""
+"B<lzmainfo> uses B<MB> while the correct suffix would be B<MiB> (2^20 "
+"bytes).  This is to keep the output compatible with LZMA Utils."
+msgstr ""
+"B<lzmainfo> verwendet B<MB>, während das korrekte Suffix B<MiB> (2^20 Bytes) "
+"wäre. Damit wird die Kompatibilität zu den LZMA-Dienstprogrammen "
+"gewährleistet."
+
+#. type: TH
+#: ../src/scripts/xzdiff.1:9
+#, no-wrap
+msgid "XZDIFF"
+msgstr "XZDIFF"
+
+#. type: TH
+#: ../src/scripts/xzdiff.1:9 ../src/scripts/xzgrep.1:9
+#, no-wrap
+msgid "2011-03-19"
+msgstr "19. März 2011"
+
+#. type: Plain text
+#: ../src/scripts/xzdiff.1:12
+msgid "xzcmp, xzdiff, lzcmp, lzdiff - compare compressed files"
+msgstr "xzcmp, xzdiff, lzcmp, lzdiff - komprimierte Dateien vergleichen"
+
+#. type: Plain text
+#: ../src/scripts/xzdiff.1:15
+msgid "B<xzcmp> [I<cmp_options>] I<file1> [I<file2>]"
+msgstr "B<xzcmp> [I<cmp-Optionen>] I<Datei1> [I<Datei2>]"
+
+#. type: Plain text
+#: ../src/scripts/xzdiff.1:18
+msgid "B<xzdiff> [I<diff_options>] I<file1> [I<file2>]"
+msgstr "B<xzdiff> [I<diff-Optionen>] I<Datei1> [I<Datei2>]"
+
+#. type: Plain text
+#: ../src/scripts/xzdiff.1:21
+msgid "B<lzcmp> [I<cmp_options>] I<file1> [I<file2>]"
+msgstr "B<lzcmp> [I<cmp-Optionen>] I<Datei1> [I<Datei2>]"
+
+#. type: Plain text
+#: ../src/scripts/xzdiff.1:24
+msgid "B<lzdiff> [I<diff_options>] I<file1> [I<file2>]"
+msgstr "B<lzdiff> [I<diff-Optionen>] I<Datei1> [I<Datei2>]"
+
+#. type: Plain text
+#: ../src/scripts/xzdiff.1:58
+msgid ""
+"B<xzcmp> and B<xzdiff> invoke B<cmp>(1)  or B<diff>(1)  on files compressed "
+"with B<xz>(1), B<lzma>(1), B<gzip>(1), B<bzip2>(1), or B<lzop>(1).  All "
+"options specified are passed directly to B<cmp>(1)  or B<diff>(1).  If only "
+"one file is specified, then the files compared are I<file1> (which must have "
+"a suffix of a supported compression format) and I<file1> from which the "
+"compression format suffix has been stripped.  If two files are specified, "
+"then they are uncompressed if necessary and fed to B<cmp>(1)  or "
+"B<diff>(1).  The exit status from B<cmp>(1)  or B<diff>(1)  is preserved."
+msgstr ""
+"Die Dienstprogramme B<xzcmp> und B<xzdiff> führen die Programme B<cmp>(1) "
+"beziehungsweise B<diff>(1) mit Dateien aus, die mittels B<xz>(1), "
+"B<lzma>(1), B<gzip>(1), B<bzip2>(1) oder B<lzop>(1) komprimiert wurden. Alle "
+"angegebenen Optionen werden direkt an B<cmp>(1) oder B<diff>(1) übergeben. "
+"Wird nur eine Datei angegeben, wird diese I<Datei1> (die eine Endung "
+"entsprechend eines der unterstützten Kompressionsformate haben muss) mit der "
+"I<Datei1> verglichen, von der die Kompressionsformat-Endung entfernt wird. "
+"Werden zwei Dateien angegeben, dann werden deren Inhalte (falls nötig, "
+"unkomprimiert) an B<cmp>(1) oder B<diff>(1) weitergeleitet. Der Exit-Status "
+"von B<cmp>(1) oder B<diff>(1) wird dabei bewahrt."
+
+#. type: Plain text
+#: ../src/scripts/xzdiff.1:64
+msgid ""
+"The names B<lzcmp> and B<lzdiff> are provided for backward compatibility "
+"with LZMA Utils."
+msgstr ""
+"Die Namen B<lzcmp> und B<lzdiff> dienen der Abwärtskompatibilität zu den "
+"LZMA-Dienstprogrammen."
+
+#. type: Plain text
+#: ../src/scripts/xzdiff.1:72
+msgid ""
+"B<cmp>(1), B<diff>(1), B<xz>(1), B<gzip>(1), B<bzip2>(1), B<lzop>(1), "
+"B<zdiff>(1)"
+msgstr ""
+"B<cmp>(1), B<diff>(1), B<xz>(1), B<gzip>(1), B<bzip2>(1), B<lzop>(1), "
+"B<zdiff>(1)"
+
+#. type: Plain text
+#: ../src/scripts/xzdiff.1:77
+msgid ""
+"Messages from the B<cmp>(1)  or B<diff>(1)  programs refer to temporary "
+"filenames instead of those specified."
+msgstr ""
+"Die Meldungen der Programme B<cmp>(1) oder B<diff>(1) können auf temporäre "
+"Dateinamen verweisen anstatt auf die tatsächlich angegebenen Dateinamen."
+
+#. type: TH
+#: ../src/scripts/xzgrep.1:9
+#, no-wrap
+msgid "XZGREP"
+msgstr "XZGREP"
+
+#. type: Plain text
+#: ../src/scripts/xzgrep.1:12
+msgid "xzgrep - search compressed files for a regular expression"
+msgstr ""
+"xzgrep - komprimierte Dateien nach einem regulären Ausdruck durchsuchen"
+
+#. type: Plain text
+#: ../src/scripts/xzgrep.1:18
+msgid "B<xzgrep> [I<grep_options>] [B<-e>] I<pattern> I<file>..."
+msgstr "B<xzgrep> [I<grep-Optionen>] [B<-e>] I<Muster> I<Dateiname> …"
+
+#. type: Plain text
+#: ../src/scripts/xzgrep.1:21
+msgid "B<xzegrep> ..."
+msgstr "B<xzegrep> …"
+
+#. type: Plain text
+#: ../src/scripts/xzgrep.1:24
+msgid "B<xzfgrep> ..."
+msgstr "B<xzfgrep> …"
+
+#. type: Plain text
+#: ../src/scripts/xzgrep.1:27
+msgid "B<lzgrep> ..."
+msgstr "B<lzgrep> …"
+
+#. type: Plain text
+#: ../src/scripts/xzgrep.1:30
+msgid "B<lzegrep> ..."
+msgstr "B<lzegrep> …"
+
+#. type: Plain text
+#: ../src/scripts/xzgrep.1:33
+msgid "B<lzfgrep> ..."
+msgstr "B<lzfgrep> …"
+
+#. type: Plain text
+#: ../src/scripts/xzgrep.1:48
+msgid ""
+"B<xzgrep> invokes B<grep>(1)  on I<files> which may be either uncompressed "
+"or compressed with B<xz>(1), B<lzma>(1), B<gzip>(1), B<bzip2>(1), or "
+"B<lzop>(1).  All options specified are passed directly to B<grep>(1)."
+msgstr ""
+"B<xzgrep> wendet B<grep>(1) auf I<Dateien> an, die entweder unkomprimiert "
+"oder mit B<xz>(1), B<lzma>(1), B<gzip>(1), B<bzip2>(1) oder B<lzop>(1) "
+"komprimiert sein können. Alle angegebenen Optionen werden direkt an "
+"B<grep>(1) übergeben."
+
+#. type: Plain text
+#: ../src/scripts/xzgrep.1:60
+msgid ""
+"If no I<file> is specified, then standard input is decompressed if necessary "
+"and fed to B<grep>(1).  When reading from standard input, B<gzip>(1), "
+"B<bzip2>(1), and B<lzop>(1)  compressed files are not supported."
+msgstr ""
+"Wenn keine I<Datei> angegeben ist, wird die Standardeingabe dekomprimiert "
+"(falls nötig) und an B<grep> übergeben. Beim Lesen aus der Standardeingabe "
+"keine Dateien unterstützt, die mit B<gzip>(1), B<bzip2>(1) oder B<lzop>(1) "
+"komprimiert sind."
+
+#. type: Plain text
+#: ../src/scripts/xzgrep.1:79
+msgid ""
+"If B<xzgrep> is invoked as B<xzegrep> or B<xzfgrep> then B<egrep>(1)  or "
+"B<fgrep>(1)  is used instead of B<grep>(1).  The same applies to names "
+"B<lzgrep>, B<lzegrep>, and B<lzfgrep>, which are provided for backward "
+"compatibility with LZMA Utils."
+msgstr ""
+"Wenn B<xzgrep> als B<xzegrep> oder B<xzfgrep> aufgerufen wird, dann wird "
+"B<egrep>(1) oder B<fgrep>(1) anstelle von B<grep>(1) verwendet. Genauso "
+"verhalten sich die Befehle B<lzgrep>, B<lzegrep> und B<lzfgrep>, die die "
+"Abwärtskompatibilität zu den LZMA-Dienstprogrammen gewährleisten."
+
+#. type: TP
+#: ../src/scripts/xzgrep.1:81
+#, no-wrap
+msgid "B<GREP>"
+msgstr "B<GREP>"
+
+#. type: Plain text
+#: ../src/scripts/xzgrep.1:92
+msgid ""
+"If the B<GREP> environment variable is set, B<xzgrep> uses it instead of "
+"B<grep>(1), B<egrep>(1), or B<fgrep>(1)."
+msgstr ""
+"Wenn die Umgebungsvariable B<GREP> gesetzt ist, verwendet B<xzgrep> deren "
+"Inhalt anstelle von B<grep>(1), B<egrep>(1) oder B<fgrep>(1)."
+
+#. type: Plain text
+#: ../src/scripts/xzgrep.1:98
+msgid "B<grep>(1), B<xz>(1), B<gzip>(1), B<bzip2>(1), B<lzop>(1), B<zgrep>(1)"
+msgstr "B<grep>(1), B<xz>(1), B<gzip>(1), B<bzip2>(1), B<lzop>(1), B<zgrep>(1)"
+
+#. type: TH
+#: ../src/scripts/xzless.1:10
+#, no-wrap
+msgid "XZLESS"
+msgstr "XZLESS"
+
+#. type: TH
+#: ../src/scripts/xzless.1:10
+#, no-wrap
+msgid "2010-09-27"
+msgstr "27. September 2010"
+
+#. type: Plain text
+#: ../src/scripts/xzless.1:13
+msgid "xzless, lzless - view xz or lzma compressed (text) files"
+msgstr ""
+"xzless, lzless - mit xz oder lzma komprimierte (Text-)Dateien betrachten"
+
+#. type: Plain text
+#: ../src/scripts/xzless.1:16
+msgid "B<xzless> [I<file>...]"
+msgstr "B<xzless> [I<Datei> …]"
+
+#. type: Plain text
+#: ../src/scripts/xzless.1:19
+msgid "B<lzless> [I<file>...]"
+msgstr "B<lzless> [I<Datei> …]"
+
+#. type: Plain text
+#: ../src/scripts/xzless.1:31
+msgid ""
+"B<xzless> is a filter that displays text from compressed files to a "
+"terminal.  It works on files compressed with B<xz>(1)  or B<lzma>(1).  If no "
+"I<files> are given, B<xzless> reads from standard input."
+msgstr ""
+"B<xzless> ist ein Filter, der Text aus komprimierten Dateien in einem "
+"Terminal anzeigt. Es funktioniert mit Dateien, die mit B<xz>(1) oder "
+"B<lzma>(1) komprimiert sind. Falls keine I<files> angegeben sind, liest "
+"B<xzless> aus der Standardeingabe."
+
+#. type: Plain text
+#: ../src/scripts/xzless.1:48
+msgid ""
+"B<xzless> uses B<less>(1)  to present its output.  Unlike B<xzmore>, its "
+"choice of pager cannot be altered by setting an environment variable.  "
+"Commands are based on both B<more>(1)  and B<vi>(1)  and allow back and "
+"forth movement and searching.  See the B<less>(1)  manual for more "
+"information."
+msgstr ""
+"B<xzless> verwendet B<less>(1) zur Darstellung der Ausgabe. Im Gegensatz zu "
+"B<xzmore> können Sie das zu verwendende Textanzeigeprogramm nicht durch "
+"Setzen einer Umgebungsvariable ändern. Die Befehle basieren auf B<more>(1) "
+"und B<vi>(1) und ermöglichen Vorwärts- und Rückwärtssprünge sowie "
+"Suchvorgänge. In der Handbuchseite zu B<less>(1) finden Sie weiter "
+"Information."
+
+#. type: Plain text
+#: ../src/scripts/xzless.1:52
+msgid ""
+"The command named B<lzless> is provided for backward compatibility with LZMA "
+"Utils."
+msgstr ""
+"Der Befehl B<lzless> dient der Abwärtskompatibilität zu den LZMA-"
+"Dienstprogrammen."
+
+#. type: TP
+#: ../src/scripts/xzless.1:53
+#, no-wrap
+msgid "B<LESSMETACHARS>"
+msgstr "B<LESSMETACHARS>"
+
+#. type: Plain text
+#: ../src/scripts/xzless.1:59
+msgid ""
+"A list of characters special to the shell.  Set by B<xzless> unless it is "
+"already set in the environment."
+msgstr ""
+"Dies enthält eine Zeichenliste mit Bezug zur Shell. Wenn diese Variable "
+"nicht bereits gesetzt ist, wird sie durch B<xzless> gesetzt."
+
+#. type: TP
+#: ../src/scripts/xzless.1:59
+#, no-wrap
+msgid "B<LESSOPEN>"
+msgstr "B<LESSOPEN>"
+
+#. type: Plain text
+#: ../src/scripts/xzless.1:65
+msgid ""
+"Set to a command line to invoke the B<xz>(1)  decompressor for preprocessing "
+"the input files to B<less>(1)."
+msgstr ""
+"Dies ist auf die Befehlszeile zum Aufruf von B<xz>(1) gesetzt, die zur "
+"Vorverarbeitung der Eingabedateien für B<less>(1) nötig ist."
+
+#. type: Plain text
+#: ../src/scripts/xzless.1:69
+msgid "B<less>(1), B<xz>(1), B<xzmore>(1), B<zless>(1)"
+msgstr "B<less>(1), B<xz>(1), B<xzmore>(1), B<zless>(1)"
+
+#. type: TH
+#: ../src/scripts/xzmore.1:7
+#, no-wrap
+msgid "XZMORE"
+msgstr "XZMORE"
+
+#. type: Plain text
+#: ../src/scripts/xzmore.1:10
+msgid "xzmore, lzmore - view xz or lzma compressed (text) files"
+msgstr "xzmore, lzmore - mit xz oder lzma komprimierte (Text-)Dateien lesen"
+
+#. type: Plain text
+#: ../src/scripts/xzmore.1:13
+msgid "B<xzmore> [I<file...>]"
+msgstr "B<xzmore> [I<Datei …>]"
+
+#. type: Plain text
+#: ../src/scripts/xzmore.1:16
+msgid "B<lzmore> [I<file...>]"
+msgstr "B<lzmore> [I<Datei …>]"
+
+#. type: Plain text
+#: ../src/scripts/xzmore.1:24
+msgid ""
+"B<xzmore> is a filter which allows examination of B<xz>(1)  or B<lzma>(1)  "
+"compressed text files one screenful at a time on a soft-copy terminal."
+msgstr ""
+"B<xzmore> ist ein Filter zur seitenweisen Anzeige von Textdateien in einem "
+"Terminal, die mit B<xz>(1) oder B<lzma>(1) komprimiert wurden."
+
+#. type: Plain text
+#: ../src/scripts/xzmore.1:33
+msgid ""
+"To use a pager other than the default B<more,> set environment variable "
+"B<PAGER> to the name of the desired program.  The name B<lzmore> is provided "
+"for backward compatibility with LZMA Utils."
+msgstr ""
+"Um ein anderes Textanzeigeprogramm als den voreingestellten B<more> zu "
+"verwenden, setzen Sie die Umgebungsvariable B<PAGER> auf das gewünschte "
+"Programm. Der Name B<lzmore> dient der Abwärtskompatibilität zu den LZMA-"
+"Dienstprogrammen."
+
+#. type: TP
+#: ../src/scripts/xzmore.1:33
+#, no-wrap
+msgid "B<e> or B<q>"
+msgstr "B<e> oder B<q>"
+
+#. type: Plain text
+#: ../src/scripts/xzmore.1:40
+msgid ""
+"When the prompt --More--(Next file: I<file>)  is printed, this command "
+"causes B<xzmore> to exit."
+msgstr ""
+"Wenn die Zeile --Mehr--(Nächste Datei: I<Datei>) angezeigt wird, wird "
+"B<xzmore> mit diesem Befehl beendet."
+
+#. type: TP
+#: ../src/scripts/xzmore.1:40
+#, no-wrap
+msgid "B<s>"
+msgstr "B<s>"
+
+#. type: Plain text
+#: ../src/scripts/xzmore.1:47
+msgid ""
+"When the prompt --More--(Next file: I<file>)  is printed, this command "
+"causes B<xzmore> to skip the next file and continue."
+msgstr ""
+"Wenn die Zeile --Mehr--(Nächste Datei: I<Datei>) angezeigt wird, springt "
+"B<xzmore> zur nächsten Datei und zeigt diese an."
+
+#. type: Plain text
+#: ../src/scripts/xzmore.1:51
+msgid ""
+"For list of keyboard commands supported while actually viewing the content "
+"of a file, refer to manual of the pager you use, usually B<more>(1)."
+msgstr ""
+"Eine Liste der bei der Betrachtung von Dateiinhalten verfügbaren "
+"Tastaturbefehle finden Sie in der Handbuchseite des verwendeten "
+"Textanzeigeprogramms, meist B<more>(1)."
+
+#. type: Plain text
+#: ../src/scripts/xzmore.1:55
+msgid "B<more>(1), B<xz>(1), B<xzless>(1), B<zmore>(1)"
+msgstr "B<more>(1), B<xz>(1), B<xzless>(1), B<zmore>(1)"
diff --git a/po4a/man/de/lzmainfo.1 b/po4a/man/de/lzmainfo.1
new file mode 100644 (file)
index 0000000..28efc01
--- /dev/null
@@ -0,0 +1,45 @@
+.\"
+.\" Author: Lasse Collin
+.\"
+.\" This file has been put into the public domain.
+.\" You can do whatever you want with this file.
+.\"
+.\"*******************************************************************
+.\"
+.\" This file was generated with po4a. Translate the source file.
+.\"
+.\"*******************************************************************
+.TH LZMAINFO 1 "30. Juni 2013" Tukaani XZ\-Dienstprogramme
+.SH BEZEICHNUNG
+lzmainfo \- im .lzma\-Dateikopf enthaltene Informationen anzeigen
+.SH ÜBERSICHT
+\fBlzmainfo\fP [\fB\-\-help\fP] [\fB\-\-version\fP] [\fIDatei …\fP]
+.SH BESCHREIBUNG
+\fBlzmainfo\fP zeigt die im \fB.lzma\fP\-Dateikopf enthaltenen Informationen an. Es
+liest die ersten 13 Bytes aus der angegebenen \fIDatei\fP, dekodiert den
+Dateikopf und gibt das Ergebnis in die Standardausgabe in einem
+menschenlesbaren Format aus. Falls keine \fIDatei\fPen angegeben werden oder
+die \fIDatei\fP als \fB\-\fP übergeben wird, dann wird aus der Standardeingabe
+gelesen.
+.PP
+In der Regel sind die unkomprimierte Größe der Daten und die Größe des
+Wörterbuchs am bedeutsamsten. Die unkomprimierte Größe kann nur dann
+angezeigt werden, wenn die Datei im \fB.lzma\fP\-Format kein Datenstrom ist. Die
+Größe des für die Dekompression nötigen Speichers beträgt einige Dutzend
+Kilobyte zuzüglich der Größe des Inhaltsverzeichnisses.
+.PP
+\fBlzmainfo\fP ist in den XZ\-Dienstprogrammen hauptsächlich zur Kompatibilität
+zu den LZMA\-Dienstprogrammen enthalten.
+.SH EXIT\-STATUS
+.TP 
+\fB0\fP
+Alles ist in Ordnung.
+.TP 
+\fB1\fP
+Ein Fehler ist aufgetreten.
+.SH FEHLER
+\fBlzmainfo\fP verwendet \fBMB\fP, während das korrekte Suffix \fBMiB\fP (2^20 Bytes)
+wäre. Damit wird die Kompatibilität zu den LZMA\-Dienstprogrammen
+gewährleistet.
+.SH "SIEHE AUCH"
+\fBxz\fP(1)
diff --git a/po4a/man/de/xz.1 b/po4a/man/de/xz.1
new file mode 100644 (file)
index 0000000..35e2fa2
--- /dev/null
@@ -0,0 +1,1848 @@
+'\" t
+.\"
+.\" Author: Lasse Collin
+.\"
+.\" This file has been put into the public domain.
+.\" You can do whatever you want with this file.
+.\"
+.\"*******************************************************************
+.\"
+.\" This file was generated with po4a. Translate the source file.
+.\"
+.\"*******************************************************************
+.TH XZ 1 "1. Februar 2020" Tukaani XZ\-Dienstprogramme
+.
+.SH BEZEICHNUNG
+xz, unxz, xzcat, lzma, unlzma, lzcat \- .xz\- und .lzma\-Dateien komprimieren
+oder dekomprimieren
+.
+.SH ÜBERSICHT
+\fBxz\fP [\fIOption…\fP] [\fIDatei…\fP]
+.
+.SH BEFEHLSALIASE
+\fBunxz\fP ist gleichbedeutend mit \fBxz \-\-decompress\fP.
+.br
+\fBxzcat\fP ist gleichbedeutend mit \fBxz \-\-decompress \-\-stdout\fP.
+.br
+\fBlzma\fP ist gleichbedeutend mit \fBxz \-\-format=lzma\fP.
+.br
+\fBunlzma\fP ist gleichbedeutend mit \fBxz \-\-format=lzma \-\-decompress\fP.
+.br
+\fBlzcat\fP ist gleichbedeutend mit \fBxz \-\-format=lzma \-\-decompress \-\-stdout\fP.
+.PP
+Wenn Sie Skripte schreiben, die Dateien dekomprimieren, sollten Sie stets
+den Namen \fBxz\fP mit den entsprechenden Argumenten (\fBxz \-d\fP oder \fBxz \-dc\fP)
+anstelle der Namen \fBunxz\fP und \fBxzcat\fP verwenden.
+.
+.SH BESCHREIBUNG
+\fBxz\fP ist ein Allzweckwerkzeug zur Datenkompression, dessen
+Befehlszeilensyntax denen von \fBgzip\fP(1) und \fBbzip2\fP(1) ähnelt. Das native
+Dateiformat ist das \fB.xz\fP\-Format, aber das veraltete, von den
+LZMA\-Dienstprogrammen verwendete Format sowie komprimierte Rohdatenströme
+ohne Containerformat\-Header werden ebenfalls unterstützt.
+.PP
+\fBxz\fP komprimiert oder dekomprimierte jede \fIDatei\fP entsprechend des
+gewählten Vorgangsmodus. Falls entweder \fB\-\fP oder keine Datei angegeben ist,
+liest \fBxz\fP aus der Standardeingabe und leitet die verarbeiteten Dateien in
+die Standardausgabe. Wenn die Standardausgabe kein Terminal ist, verweigert
+\fBxz\fP das Schreiben komprimierter Daten in die Standardausgabe. Dabei wird
+eine Fehlermeldung angezeigt und die \fIDatei\fP übersprungen. Ebenso
+verweigert \fBxz\fP das Lesen komprimierter Daten aus der Standardeingabe, wenn
+diese ein Terminal ist.
+.PP
+\fIDateien\fP, die nicht als \fB\-\fP angegeben sind, werden in eine neue Datei
+geschrieben, deren Name aus den Namen der Quell\-\fIDatei\fP abgeleitet wird
+(außer wenn \fB\-\-stdout\fP angegeben ist):
+.IP \(bu 3
+Bei der Kompression wird das Suffix des Formats der Zieldatei (\fB.xz\fP oder
+\&\fB.lzma\fP) an den Namen der Quelldatei angehängt und so der Name der
+Zieldatei gebildet.
+.IP \(bu 3
+Bei der Dekompression wird das Suffix \fB.xz\fP oder \fB.lzma\fP vom Dateinamen
+entfernt und so der Name der Zieldatei gebildet. Außerdem erkennt \fBxz\fP die
+Suffixe \fB.txz\fP und \fB.tlz\fP und ersetzt diese durch \fB.tar\fP.
+.PP
+Wenn die Zieldatei bereits existiert, wird eine Fehlermeldung angezeigt und
+die \fIDatei\fP übersprungen.
+.PP
+Außer beim Schreiben in die Standardausgabe zeigt \fBxz\fP eine Warnung an und
+überspringt die \fIDatei\fP, wenn eine der folgenden Bedingungen zutreffend
+ist:
+.IP \(bu 3
+Die \fIDatei\fP ist keine reguläre Datei. Symbolischen Verknüpfungen wird nicht
+gefolgt und daher nicht zu den regulären Dateien gezählt.
+.IP \(bu 3
+Die \fIDatei\fP hat mehr als eine harte Verknüpfung.
+.IP \(bu 3
+Für die \fIDatei\fP ist das »setuid«\-, »setgid«\- oder »sticky«\-Bit gesetzt.
+.IP \(bu 3
+Der Aktionsmodus wird auf Kompression gesetzt und die \fIDatei\fP hat bereits
+das Suffix des Zieldateiformats (\fB.xz\fP oder \fB.txz\fP beim Komprimieren in
+das \fB.xz\fP\-Format und \fB.lzma\fP oder \fB.tlz\fP beim Komprimieren in das
+\&\fB.lzma\fP\-Format).
+.IP \(bu 3
+Der Aktionsmodus wird auf Dekompression gesetzt und die \fIDatei\fP hat nicht
+das Suffix eines der unterstützten Zieldateiformate (\fB.xz\fP, \fB.txz\fP,
+\&\fB.lzma\fP oder \fB.tlz\fP).
+.PP
+Nach erfolgreicher Kompression oder Dekompression der \fIDatei\fP kopiert \fBxz\fP
+Eigentümer, Gruppe, Zugriffsrechte, Zugriffszeit und Änderungszeit aus der
+Ursprungs\-\fIDatei\fP in die Zieldatei. Sollte das Kopieren der Gruppe
+fehlschlagen, werden die Zugriffsrechte so angepasst, dass jenen Benutzern
+der Zugriff auf die Zieldatei verwehrt bleibt, die auch keinen Zugriff auf
+die Ursprungs\-\fIDatei\fP hatten. Das Kopieren anderer Metadaten wie
+Zugriffssteuerlisten oder erweiterter Attribute wird von \fBxz\fP noch nicht
+unterstützt.
+.PP
+Sobald die Zieldatei erfolgreich geschlossen wurde, wird die
+Ursprungs\-\fIDatei\fP entfernt. Dies wird durch die Option \fB\-\-keep\fP
+verhindert. Die Ursprungs\-\fIDatei\fP wird niemals entfernt, wenn die Ausgabe
+in die Standardausgabe geschrieben wird.
+.PP
+Durch Senden der Signale \fBSIGINFO\fP oder \fBSIGUSR1\fP an den \fBxz\fP\-Prozess
+werden Fortschrittsinformationen in den Fehlerkanal der Standardausgabe
+geleitet. Dies ist nur eingeschränkt hilfreich, wenn die
+Standardfehlerausgabe ein Terminal ist. Mittels \fB\-\-verbose\fP wird ein
+automatisch aktualisierter Fortschrittsanzeiger angezeigt.
+.
+.SS Speicherbedarf
+In Abhängigkeit von den gewählten Kompressionseinstellungen bewegt sich der
+Speicherverbrauch zwischen wenigen hundert Kilobyte und mehrere
+Gigabyte. Die Einstellungen bei der Kompression einer Datei bestimmen dabei
+den Speicherbedarf bei der Dekompression. Die Dekompression benötigt
+üblicherweise zwischen 5\ % und 20\ % des Speichers, der bei der Kompression
+der Datei erforderlich war. Beispielsweise benötigt die Dekompression einer
+Datei, die mit \fBxz \-9\fP komprimiert wurde, gegenwärtig etwa 65\ MiB
+Speicher. Es ist jedoch auch möglich, dass \fB.xz\fP\-Dateien mehrere Gigabyte
+an Speicher zur Dekompression erfordern.
+.PP
+Insbesondere für Benutzer älterer Systeme wird eventuell ein sehr großer
+Speicherbedarf ärgerlich sein. Um unangenehme Überraschungen zu vermeiden,
+verfügt \fBxz\fP über eine eingebaute Begrenzung des Speicherbedarfs, die
+allerdings in der Voreinstellung deaktiviert ist. Zwar verfügen einige
+Betriebssysteme über eingebaute Möglichkeiten zur prozessabhängigen
+Speicherbegrenzung, doch diese sind zu unflexibel (zum Beispiel kann
+\fBulimit\fP(1) beim Begrenzen des virtuellen Speichers \fBmmap\fP(2)
+beeinträchtigen).
+.PP
+Die Begrenzung des Speicherbedarfs kann mit der Befehlszeilenoption
+\fB\-\-memlimit=\fP\fIBegrenzung\fP aktiviert werden. Oft ist es jedoch bequemer,
+die Begrenzung durch Setzen der Umgebungsvariable \fBXZ_DEFAULTS\fP
+standardmäßig zu aktivieren, zum Beispiel
+\fBXZ_DEFAULTS=\-\-memlimit=150MiB\fP. Die Begrenzungen können getrennt für
+Kompression und Dekompression mittels \fB\-\-memlimit\-compress=\fP\fIBegrenzung\fP
+und \fB\-\-memlimit\-decompress=\fP\fIBegrenzung\fP festgelegt werden. Die Verwendung
+einer solchen Option außerhalb der Variable \fBXZ_DEFAULTS\fP ist kaum
+sinnvoll, da \fBxz\fP in einer einzelnen Aktion nicht gleichzeitig Kompression
+und Dekompression ausführen kann und \fB\-\-memlimit=\fP\fIBegrenzung\fP (oder \fB\-M\fP
+\fIBegrenzung\fP) lässt sich einfacher in der Befehlszeile eingeben.
+.PP
+Wenn die angegebene Speicherbegrenzung bei der Dekompression überschritten
+wird, schlägt der Vorgang fehl und \fBxz\fP zeigt eine Fehlermeldung an. Wird
+die Begrenzung bei der Kompression überschritten, dann versucht \fBxz\fP die
+Einstellungen entsprechend anzupassen, außer wenn \fB\-\-format=raw\fP oder
+\fB\-\-no\-adjust\fP angegeben ist. Auf diese Weise schlägt die Aktion nicht fehl,
+es sei denn, die Begrenzung wurde sehr niedrig angesetzt. Die Anpassung der
+Einstellungen wird schrittweise vorgenommen, allerdings entsprechen die
+Schritte nicht den Voreinstellungen der Kompressionsstufen. Das bedeutet,
+wenn beispielsweise die Begrenzung nur geringfügig unter den Anforderungen
+für \fBxz \-9\fP liegt, werden auch die Einstellungen nur wenig angepasst und
+nicht vollständig herunter zu den Werten für \fBxz \-8\fP
+.
+.SS "Verkettung und Auffüllung von .xz\-Dateien"
+Es ist möglich, \fB.xz\fP\-Dateien direkt zu verketten. Solche Dateien werden
+von \fBxz\fP genauso dekomprimiert wie eine einzelne \fB.xz\fP\-Datei.
+.PP
+Es ist weiterhin möglich, eine Auffüllung zwischen den verketteten Teilen
+oder nach dem letzten Teil einzufügen. Die Auffüllung muss aus Null\-Bytes
+bestehen und deren Größe muss ein Vielfaches von vier Byte sein. Dies kann
+zum Beispiel dann vorteilhaft sein, wenn die \fB.xz\fP\-Datei auf einem
+Datenträger gespeichert wird, dessen Dateisystem die Dateigrößen in
+512\-Byte\-Blöcken speichert.
+.PP
+Verkettung und Auffüllung sind für \fB.lzma\fP\-Dateien oder Rohdatenströme
+nicht erlaubt.
+.
+.SH OPTIONEN
+.
+.SS "Ganzzahlige Suffixe und spezielle Werte"
+An den meisten Stellen, wo ein ganzzahliges Argument akzeptiert wird, kann
+ein optionales Suffix große Ganzzahlwerte einfacher darstellen. Zwischen
+Ganzzahl und dem Suffix dürfen sich keine Leerzeichen befinden.
+.TP 
+\fBKiB\fP
+multipliziert die Ganzzahl mit 1.024 (2^10). \fBKi\fP, \fBk\fP, \fBkB\fP, \fBK\fP und
+\fBKB\fP werden als Synonyme für \fBKiB\fP akzeptiert.
+.TP 
+\fBMiB\fP
+multipliziert die Ganzzahl mit 1.048.576 (2^20). \fBMi\fP, \fBm\fP, \fBM\fP und \fBMB\fP
+werden als Synonyme für \fBMiB\fP akzeptiert.
+.TP 
+\fBGiB\fP
+multipliziert die Ganzzahl mit 1.073.741.824 (2^30). \fBGi\fP, \fBg\fP, \fBG\fP und
+\fBGB\fP werden als Synonyme für \fBGiB\fP akzeptiert.
+.PP
+Der spezielle Wert \fBmax\fP kann dazu verwendet werden, um den von der
+jeweiligen Option akzeptierten maximalen Ganzzahlwert anzugeben.
+.
+.SS Aktionsmodus
+Falls mehrere Aktionsmodi angegeben sind, wird der zuletzt angegebene
+verwendet.
+.TP 
+\fB\-z\fP, \fB\-\-compress\fP
+Kompression. Dies ist der voreingestellte Aktionsmodus, sofern keiner
+angegeben ist und auch kein bestimmter Modus aus dem Befehlsnamen abgeleitet
+werden kann (der Befehl \fBunxz\fP impliziert zum Beispiel \fB\-\-decompress\fP).
+.TP 
+\fB\-d\fP, \fB\-\-decompress\fP, \fB\-\-uncompress\fP
+dekomprimpiert.
+.TP 
+\fB\-t\fP, \fB\-\-test\fP
+prüft die Integrität der komprimierten \fIDateien\fP. Diese Option ist
+gleichbedeutend mit \fB\-\-decompress \-\-stdout\fP, außer dass die dekomprimierten
+Daten verworfen werden, anstatt sie in die Standardausgabe zu leiten. Es
+werden keine Dateien erstellt oder entfernt.
+.TP 
+\fB\-l\fP, \fB\-\-list\fP
+gibt Informationen zu den komprimierten \fIDateien\fP aus. Es werden keine
+unkomprimierten Dateien ausgegeben und keine Dateien angelegt oder
+entfernt. Im Listenmodus kann das Programm keine komprimierten Daten aus der
+Standardeingabe oder anderen nicht durchsuchbaren Quellen lesen.
+.IP ""
+Die Liste zeigt in der Standardeinstellung grundlegende Informationen zu den
+\fIDateien\fP an, zeilenweise pro Datei. Detailliertere Informationen erhalten
+Sie mit der Option \fB\-\-verbose\fP. Wenn Sie diese Option zweimal angeben,
+werden noch ausführlichere Informationen ausgegeben. Das kann den Vorgang
+allerdings deutlich verlangsamen, da die Ermittlung der zusätzlichen
+Informationen zahlreiche Suchvorgänge erfordert. Die Breite der
+ausführlichen Ausgabe ist breiter als 80 Zeichen, daher könnte die
+Weiterleitung in beispielsweise\& \fBless\ \-S\fP sinnvoll sein, falls das
+Terminal nicht breit genug ist.
+.IP ""
+Die exakte Ausgabe kann in verschiedenen \fBxz\fP\-Versionen und
+Spracheinstellungen unterschiedlich sein. Wenn eine maschinell auswertbare
+Ausgabe gewünscht ist, dann sollten Sie \fB\-\-robot \-\-list\fP verwenden.
+.
+.SS Aktionsattribute
+.TP 
+\fB\-k\fP, \fB\-\-keep\fP
+verhindert das Löschen der Eingabedateien.
+.TP 
+\fB\-f\fP, \fB\-\-force\fP
+Diese Option hat verschiedene Auswirkungen:
+.RS
+.IP \(bu 3
+Wenn die Zieldatei bereits existiert, wird diese vor der Kompression oder
+Dekompression gelöscht.
+.IP \(bu 3
+Die Kompression oder Dekompression wird auch dann ausgeführt, wenn die
+Eingabe ein symbolischer Link zu einer regulären Datei ist, mehr als einen
+harten Link hat oder das »setuid«\-, »setgid«\- oder »sticky«\-Bit gesetzt
+ist. Die genannten Bits werden nicht in die Zieldatei kopiert.
+.IP \(bu 3
+Wenn es zusammen mit \fB\-\-decompress\fP und \fB\-\-stdout\fP verwendet wird und
+\fBxz\fP den Typ der Quelldatei nicht ermitteln kann, wird die Quelldatei
+unverändert in die Standardausgabe kopiert. Dadurch kann \fBxzcat\fP \fB\-\-force\fP
+für Dateien, die nicht mit \fBxz\fP komprimiert wurden, wie \fBcat\fP(1) verwendet
+werden. Zukünftig könnte \fBxz\fP neue Dateikompressionsformate unterstützen,
+wodurch \fBxz\fP mehr Dateitypen dekomprimieren kann, anstatt sie unverändert
+in die Standardausgabe zu kopieren. Mit der Option \fB\-\-format=\fP\fIFormat\fP
+können Sie \fBxz\fP anweisen, nur ein einzelnes Dateiformat zu dekomprimieren.
+.RE
+.TP 
+\fB\-c\fP, \fB\-\-stdout\fP, \fB\-\-to\-stdout\fP
+schreibt die komprimierten oder dekomprimierten Daten in die Standardausgabe
+anstatt in eine Datei. Dies impliziert \fB\-\-keep\fP.
+.TP 
+\fB\-\-single\-stream\fP
+dekomprimiert nur den ersten \fB.xz\fP\-Datenstrom und ignoriert stillschweigend
+weitere Eingabedaten, die möglicherweise dem Datenstrom
+folgen. Normalerweise führt solcher anhängender Datenmüll dazu, dass \fBxz\fP
+eine Fehlermeldung ausgibt.
+.IP ""
+\fBxz\fP dekomprimiert niemals mehr als einen Datenstrom aus \fB.lzma\fP\-Dateien
+oder Rohdatenströmen, aber dennoch wird durch diese Option möglicherweise
+vorhandener Datenmüll nach der \fB.lzma\fP\-Datei oder dem Rohdatenstrom
+ignoriert.
+.IP ""
+Diese Option ist wirkungslos, wenn der Aktionsmodus nicht \fB\-\-decompress\fP
+oder \fB\-\-test\fP ist.
+.TP 
+\fB\-\-no\-sparse\fP
+verhindert die Erzeugung von Sparse\-Dateien. In der Voreinstellung versucht
+\fBxz\fP, bei der Dekompression in eine reguläre Datei eine Sparse\-Datei zu
+erzeugen, wenn die dekomprimierten Daten lange Abfolgen von binären Nullen
+enthalten. Dies funktioniert auch beim Schreiben in die Standardausgabe,
+sofern diese in eine reguläre Datei weitergeleitet wird und bestimmte
+Zusatzbedingungen erfüllt sind, die die Aktion absichern. Die Erzeugung von
+Sparse\-Dateien kann Plattenplatz sparen und beschleunigt die Dekompression
+durch Verringerung der Ein\-/Ausgaben der Platte.
+.TP 
+\fB\-S\fP \fI.suf\fP, \fB\-\-suffix=\fP\fI.suf\fP
+verwendet \fI.suf\fP bei der Dekompression anstelle von \fB.xz\fP oder \fB.lzma\fP
+als Suffix für die Zieldatei. Falls nicht in die Standardausgabe geschrieben
+wird und die Quelldatei bereits das Suffix \fI.suf\fP hat, wird eine Warnung
+angezeigt und die Datei übersprungen.
+.IP ""
+berücksichtigt bei der Dekompression zusätzlich zu Dateien mit den Suffixen
+\&\fB.xz\fP, \fB.txz\fP, \fB.lzma\fP oder \fB.tlz\fP auch jene mit dem Suffix
+\&\fI.suf\fP. Falls die Quelldatei das Suffix \fI.suf\fP hat, wird dieses entfernt
+und so der Name der Zieldatei abgeleitet.
+.IP ""
+Beim Komprimieren oder Dekomprimieren von Rohdatenströmen mit
+\fB\-\-format=raw\fP muss das Suffix stets angegeben werden, außer wenn die
+Ausgabe in die Standardausgabe erfolgt. Der Grund dafür ist, dass es kein
+vorgegebenes Suffix für Rohdatenströme gibt.
+.TP 
+\fB\-\-files\fP[\fB=\fP\fIDatei\fP]
+liest die zu verarbeitenden Dateinamen aus \fIDatei\fP. Falls keine \fIDatei\fP
+angegeben ist, werden die Dateinamen aus der Standardeingabe
+gelesen. Dateinamen müssen mit einem Zeilenumbruch beendet werden. Ein
+Bindestrich (\fB\-\fP) wird als regulärer Dateiname angesehen und nicht als
+Standardeingabe interpretiert. Falls Dateinamen außerdem als
+Befehlszeilenargumente angegeben sind, werden diese vor den Dateinamen aus
+der \fIDatei\fP verarbeitet.
+.TP 
+\fB\-\-files0\fP[\fB=\fP\fIDatei\fP]
+Dies ist gleichbedeutend mit \fB\-\-files\fP[\fB=\fP\fIDatei\fP], außer dass jeder
+Dateiname mit einem Null\-Zeichen abgeschlossen werden muss.
+.
+.SS "Grundlegende Dateiformat\- und Kompressionsoptionen"
+.TP 
+\fB\-F\fP \fIFormat\fP, \fB\-\-format=\fP\fIFormat\fP
+gibt das \fIFormat\fP der zu komprimierenden oder dekomprimierenden Datei an:
+.RS
+.TP 
+\fBauto\fP
+Dies ist die Voreinstellung. Bei der Kompression ist \fBauto\fP gleichbedeutend
+mit \fBxz\fP. Bei der Dekompression wird das Format der Eingabedatei
+automatisch erkannt. Beachten Sie, dass Rohdatenströme, wie sie mit
+\fB\-\-format=raw\fP erzeugt werden, nicht automatisch erkannt werden können.
+.TP 
+\fBxz\fP
+Die Kompression erfolgt in das \fB.xz\fP\-Dateiformat oder akzeptiert nur
+\&\fB.xz\fP\-Dateien bei der Dekompression.
+.TP 
+\fBlzma\fP, \fBalone\fP
+Die Kompression erfolgt in das veraltete \fB.lzma\fP\-Dateiformat oder
+akzeptiert nur \fB.lzma\fP\-Dateien bei der Dekompression. Der alternative Name
+\fBalone\fP dient der Abwärtskompatibilität zu den LZMA\-Dienstprogrammen.
+.TP 
+\fBraw\fP
+Komprimiert oder dekomprimiert einen Rohdatenstrom (ohne Header). Diese
+Option ist nur für fortgeschrittene Benutzer bestimmt. Zum Dekodieren von
+Rohdatenströmen müssen Sie die Option \fB\-\-format=raw\fP verwenden und die
+Filterkette ausdrücklich angeben, die normalerweise in den (hier fehlenden)
+Container\-Headern gespeichert worden wäre.
+.RE
+.TP 
+\fB\-C\fP \fIPrüfung\fP, \fB\-\-check=\fP\fIPrüfung\fP
+gibt den Typ der Integritätsprüfung an. Die Prüfsumme wird aus den
+unkomprimierten Daten berechnet und in der \fB.xz\fP\-Datei gespeichert. Diese
+Option wird nur bei der Kompression in das \fB.xz\fP\-Format angewendet, da das
+\&\fB.lzma\fP\-Format keine Integritätsprüfungen unterstützt. Die eigentliche
+Integritätsprüfung erfolgt (falls möglich), wenn die \fB.xz\fP\-Datei
+dekomprimiert wird.
+.IP ""
+Folgende Typen von \fIPrüfungen\fP werden unterstützt:
+.RS
+.TP 
+\fBnone\fP
+führt keine Integritätsprüfung aus. Dies ist eine eher schlechte
+Idee. Dennoch kann es nützlich sein, wenn die Integrität der Daten auf
+andere Weise sichergestellt werden kann.
+.TP 
+\fBcrc32\fP
+berechnet die CRC32\-Prüfsumme anhand des Polynoms aus IEEE\-802.3 (Ethernet).
+.TP 
+\fBcrc64\fP
+berechnet die CRC64\-Prüfsumme anhand des Polynoms aus ECMA\-182. Dies ist die
+Voreinstellung, da beschädigte Dateien etwas besser als mit CRC32 erkannt
+werden und die Geschwindigkeitsdifferenz unerheblich ist.
+.TP 
+\fBsha256\fP
+berechnet die SHA\-256\-Prüfsumme. Dies ist etwas langsamer als CRC32 und
+CRC64.
+.RE
+.IP ""
+Die Integrität der \fB.xz\fP\-Header wird immer mit CRC32 geprüft. Es ist nicht
+möglich, dies zu ändern oder zu deaktivieren.
+.TP 
+\fB\-\-ignore\-check\fP
+verifiziert die Integritätsprüfsumme der komprimierten Daten bei der
+Dekompression nicht. Die CRC32\-Werte in den \fB.xz\fP\-Headern werden weiterhin
+normal verifiziert.
+.IP ""
+\fBVerwenden Sie diese Option nicht, außer Sie wissen, was Sie tun.\fP Mögliche
+Gründe, diese Option zu verwenden:
+.RS
+.IP \(bu 3
+Versuchen, Daten aus einer beschädigten .xz\-Datei wiederherzustellen.
+.IP \(bu 3
+Erhöhung der Geschwindigkeit bei der Dekompression. Dies macht sich meist
+mit SHA\-256 bemerkbar, oder mit Dateien, die extrem stark komprimiert
+sind. Wir empfehlen, diese Option nicht für diesen Zweck zu verwenden, es
+sei denn, die Integrität der Datei wird extern auf andere Weise überprüft.
+.RE
+.TP 
+\fB\-0\fP … \fB\-9\fP
+wählt eine der voreingestellten Kompressionsstufen, standardmäßig
+\fB\-6\fP. Wenn mehrere Voreinstellungsstufen angegeben sind, ist nur die
+zuletzt angegebene wirksam. Falls bereits eine benutzerdefinierte
+Filterkette angegeben wurde, wird diese durch die Festlegung der
+Voreinstellung geleert.
+.IP ""
+Die Unterschiede zwischen den Voreinstellungsstufen sind deutlicher als bei
+\fBgzip\fP(1) und \fBbzip2\fP(1). Die gewählten Kompressionseinstellungen
+bestimmen den Speicherbedarf bei der Dekompression, daher ist es auf älteren
+Systemen mit wenig Speicher bei einer zu hoch gewählten Voreinstellung
+schwer, eine Datei zu dekomprimieren. Insbesondere \fBist es keine gute Idee,
+blindlings \-9 für alles\fP zu verwenden, wie dies häufig mit \fBgzip\fP(1) und
+\fBbzip2\fP(1) gehandhabt wird.
+.RS
+.TP 
+\fB\-0\fP … \fB\-3\fP
+Diese Voreinstellungen sind recht schnell. \fB\-0\fP ist manchmal schneller als
+\fBgzip \-9\fP, wobei aber die Kompression wesentlich besser ist. Die
+schnelleren Voreinstellungen sind im Hinblick auf die Geschwindigkeit mit
+\fBbzip2\fP(1) vergleichbar , mit einem ähnlichen oder besseren
+Kompressionsverhältnis, wobei das Ergebnis aber stark vom Typ der zu
+komprimierenden Daten abhängig ist.
+.TP 
+\fB\-4\fP … \fB\-6\fP
+Gute bis sehr gute Kompression, wobei der Speicherbedarf für die
+Dekompression selbst auf alten Systemen akzeptabel ist. \fB\-6\fP ist die
+Voreinstellung, welche üblicherweise eine gute Wahl ist, zum Beispiel für
+die Verteilung von Dateien, die selbst noch auf Systemen mit nur 16\ MiB
+Arbeitsspeicher dekomprimiert werden müssen (\fB\-5e\fP oder \fB\-6e\fP sind
+ebenfalls eine Überlegung wert. Siehe \fB\-\-extreme\fP).
+.TP 
+\fB\-7 … \-9\fP
+Ähnlich wie \fB\-6\fP, aber mit einem höheren Speicherbedarf für die Kompression
+und Dekompression. Sie sind nur nützlich, wenn Dateien komprimiert werden
+sollen, die größer als 8\ MiB, 16\ MiB beziehungsweise 32\ MiB sind.
+.RE
+.IP ""
+Auf der gleichen Hardware ist die Dekompressionsgeschwindigkeit ein nahezu
+konstanter Wert in Bytes komprimierter Daten pro Sekunde. Anders
+ausgedrückt: Je besser die Kompression, umso schneller wird üblicherweise
+die Dekompression sein. Das bedeutet auch, dass die Menge der pro Sekunde
+ausgegebenen unkomprimierten Daten stark variieren kann.
+.IP ""
+Die folgende Tabelle fasst die Eigenschaften der Voreinstellungen zusammen:
+.RS
+.RS
+.PP
+.TS
+tab(;);
+c c c c c
+n n n n n.
+Voreinstellung;DictGröße;KompCPU;KompSpeicher;DekSpeicher
+\-0;256 KiB;0;3 MiB;1 MiB
+\-1;1 MiB;1;9 MiB;2 MiB
+\-2;2 MiB;2;17 MiB;3 MiB
+\-3;4 MiB;3;32 MiB;5 MiB
+\-4;4 MiB;4;48 MiB;5 MiB
+\-5;8 MiB;5;94 MiB;9 MiB
+\-6;8 MiB;6;94 MiB;9 MiB
+\-7;16 MiB;6;186 MiB;17 MiB
+\-8;32 MiB;6;370 MiB;33 MiB
+\-9;64 MiB;6;674 MiB;65 MiB
+.TE
+.RE
+.RE
+.IP ""
+Spaltenbeschreibungen:
+.RS
+.IP \(bu 3
+DictGröße ist die Größe des LZMA2\-Wörterbuchs. Es ist Speicherverschwendung,
+ein Wörterbuch zu verwenden, das größer als die unkomprimierte Datei
+ist. Daher ist es besser, die Voreinstellungen \fB\-7\fP … \fB\-9\fP zu vermeiden,
+falls es keinen wirklichen Bedarf dafür gibt. Mit \fB\-6\fP und weniger wird
+üblicherweise so wenig Speicher verschwendet, dass dies nicht ins Gewicht
+fällt.
+.IP \(bu 3
+KompCPU ist eine vereinfachte Repräsentation der LZMA2\-Einstellungen, welche
+die Kompressionsgeschwindigkeit beeinflussen. Die Wörterbuchgröße wirkt sich
+ebenfalls auf die Geschwindigkeit aus. Während KompCPU für die Stufen \fB\-6\fP
+bis \fB\-9\fP gleich ist, tendieren höhere Stufen dazu, etwas langsamer zu
+sein. Um eine noch langsamere, aber möglicherweise bessere Kompression zu
+erhalten, siehe \fB\-\-extreme\fP.
+.IP \(bu 3
+KompSpeicher enthält den Speicherbedarf des Kompressors im
+Einzel\-Thread\-Modus. Dieser kann zwischen den \fBxz\fP\-Versionen leicht
+variieren. Der Speicherbedarf einiger der zukünftigen Multithread\-Modi kann
+dramatisch höher sein als im Einzel\-Thread\-Modus.
+.IP \(bu 3
+DekSpeicher enthält den Speicherbedarf für die Dekompression. Das bedeutet,
+dass die Kompressionseinstellungen den Speicherbedarf bei der Dekompression
+bestimmen. Der exakte Speicherbedarf bei der Dekompression ist geringfügig
+größer als die Größe des LZMA2\-Wörterbuchs, aber die Werte in der Tabelle
+wurden auf ganze MiB aufgerundet.
+.RE
+.TP 
+\fB\-e\fP, \fB\-\-extreme\fP
+verwendet eine langsamere Variante der gewählten
+Kompressions\-Voreinstellungsstufe (\fB\-0\fP … \fB\-9\fP), um hoffentlich ein etwas
+besseres Kompressionsverhältnis zu erreichen, das aber in ungünstigen Fällen
+auch schlechter werden kann. Der Speicherverbrauch bei der Dekompression
+wird dabei nicht beeinflusst, aber der Speicherverbrauch der Kompression
+steigt in der Voreinstellungsstufen \fB\-0\fP bis \fB\-3\fP geringfügig an.
+.IP ""
+Da es zwei Voreinstellungen mit den Wörterbuchgrößen 4\ MiB und 8\ MiB gibt,
+verwenden die Voreinstellungsstufen \fB\-3e\fP und \fB\-5e\fP etwas schnellere
+Einstellungen (niedrigere KompCPU) als \fB\-4e\fP beziehungsweise \fB\-6e\fP. Auf
+diese Weise sind zwei Voreinstellungen nie identisch.
+.RS
+.RS
+.PP
+.TS
+tab(;);
+c c c c c
+n n n n n.
+Voreinstellung;DictGröße;KompCPU;KompSpeicher;DekSpeicher
+\-0e;256 KiB;8;4 MiB;1 MiB
+\-1e;1 MiB;8;13 MiB;2 MiB
+\-2e;2 MiB;8;25 MiB;3 MiB
+\-3e;4 MiB;7;48 MiB;5 MiB
+\-4e;4 MiB;8;48 MiB;5 MiB
+\-5e;8 MiB;7;94 MiB;9 MiB
+\-6e;8 MiB;8;94 MiB;9 MiB
+\-7e;16 MiB;8;186 MiB;17 MiB
+\-8e;32 MiB;8;370 MiB;33 MiB
+\-9e;64 MiB;8;674 MiB;65 MiB
+.TE
+.RE
+.RE
+.IP ""
+Zum Beispiel gibt es insgesamt vier Voreinstellungen, die ein 8\ MiB großes
+Wörterbuch verwenden, deren Reihenfolge von der schnellsten zur langsamsten
+\fB\-5\fP, \fB\-6\fP, \fB\-5e\fP und \fB\-6e\fP ist.
+.TP 
+\fB\-\-fast\fP
+.PD 0
+.TP 
+\fB\-\-best\fP
+.PD
+sind etwas irreführende Aliase für \fB\-0\fP beziehungsweise \fB\-9\fP. Sie werden
+nur zwecks Abwärtskompatibilität zu den LZMA\-Dienstprogrammen
+bereitgestellt. Sie sollten diese Optionen besser nicht verwenden.
+.TP 
+\fB\-\-block\-size=\fP\fIGröße\fP
+teilt beim Komprimieren in das \fB.xz\fP\-Format die Eingabedaten in Blöcke der
+angegebenen \fIGröße\fP in Byte. Die Blöcke werden unabhängig voneinander
+komprimiert, was dem Multi\-Threading entgegen kommt und Zufallszugriffe bei
+der Dekompression begrenzt. Diese Option wird typischerweise eingesetzt, um
+die vorgegebene Blockgröße im Multi\-Thread\-Modus außer Kraft zu setzen, aber
+sie kann auch im Einzel\-Thread\-Modus angewendet werden.
+.IP ""
+Im Multi\-Thread\-Modus wird etwa die dreifache \fIGröße\fP in jedem Thread zur
+Pufferung der Ein\- und Ausgabe belegt. Die vorgegebene \fIGröße\fP ist das
+Dreifache der Größe des LZMA2\-Wörterbuchs oder 1 MiB, je nachdem, was mehr
+ist. Typischerweise ist das Zwei\- bis Vierfache der Größe des
+LZMA2\-Wörterbuchs oder wenigstens 1 MB ein guter Wert. Eine \fIGröße\fP, die
+geringer ist als die des LZMA2\-Wörterbuchs, ist Speicherverschwendung, weil
+dann der LZMA2\-Wörterbuchpuffer niemals vollständig genutzt werden
+würde. Die Größe der Blöcke wird in den Block\-Headern gespeichert, die von
+einer zukünftigen Version von \fBxz\fP für eine Multi\-Thread\-Dekompression
+genutzt wird.
+.IP ""
+Im Einzel\-Thread\-Modus werden die Blöcke standardmäßig nicht geteilt. Das
+Setzen dieser Option wirkt sich nicht auf den Speicherbedarf aus. In den
+Block\-Headern werden keine Größeninformationen gespeichert, daher werden im
+Einzel\-Thread\-Modus erzeugte Dateien nicht zu den im Multi\-Thread\-Modus
+erzeugten Dateien identisch sein. Das Fehlen der Größeninformation bedingt
+auch, dass eine zukünftige Version von \fBxz\fP nicht in der Lage sein wird,
+die Dateien im Multi\-Thread\-Modus zu dekomprimieren.
+.TP 
+\fB\-\-block\-list=\fP\fIGrößen\fP
+beginnt bei der Kompression in das \fB.xz\fP\-Format nach den angegebenen
+Intervallen unkomprimierter Daten einen neuen Block.
+.IP ""
+Die unkomprimierte \fIGröße\fP der Blöcke wird in einer durch Kommata
+getrennten Liste angegeben. Auslassen einer Größe (zwei oder mehr
+aufeinander folgende Kommata) ist ein Kürzel dafür, die Größe des vorherigen
+Blocks zu verwenden.
+.IP ""
+Falls die Eingabedatei größer ist als die Summe der \fIGrößen\fP, dann wird der
+letzte in \fIGröße\fP angegebene Wert bis zum Ende der Datei wiederholt. Mit
+dem speziellen Wert \fB0\fP können Sie angeben, dass der Rest der Datei als
+einzelner Block kodiert werden soll.
+.IP ""
+Falls Sie \fIGrößen\fP angeben, welche die Blockgröße des Encoders übersteigen
+(entweder den Vorgabewert im Thread\-Modus oder den mit
+\fB\-\-block\-size=\fP\fIGröße\fP angegebenen Wert), wird der Encoder zusätzliche
+Blöcke erzeugen, wobei die in den \fIGrößen\fP angegebenen Grenzen eingehalten
+werden. Wenn Sie zum Beispiel \fB\-\-block\-size=10MiB\fP
+\fB\-\-block\-list=5MiB,10MiB,8MiB,12MiB,24MiB\fP angeben und die Eingabedatei 80
+MiB groß ist, erhalten Sie 11 Blöcke: 5, 10, 8, 10, 2, 10, 10, 4, 10, 10 und
+1 MiB.
+.IP ""
+Im Multi\-Thread\-Modus werden die Blockgrößen in den Block\-Headern
+gespeichert. Dies geschieht im Einzel\-Thread\-Modus nicht, daher wird die
+kodierte Ausgabe zu der im Multi\-Thread\-Modus nicht identisch sein.
+.TP 
+\fB\-\-flush\-timeout=\fP\fIZeit\fP
+löscht bei der Kompression die ausstehenden Daten aus dem Encoder und macht
+sie im Ausgabedatenstrom verfügbar, wenn mehr als die angegebene \fIZeit\fP in
+Millisekunden (als positive Ganzzahl) seit dem vorherigen Löschen vergangen
+ist und das Lesen weiterer Eingaben blockieren würde. Dies kann nützlich
+sein, wenn \fBxz\fP zum Komprimieren von über das Netzwerk eingehenden Daten
+verwendet wird. Kleine \fIZeit\fP\-Werte machen die Daten unmittelbar nach dem
+Empfang nach einer kurzen Verzögerung verfügbar, während große \fIZeit\fP\-Werte
+ein besseres Kompressionsverhältnis bewirken.
+.IP ""
+Dieses Funktionsmerkmal ist standardmäßig deaktiviert. Wenn diese Option
+mehrfach angegeben wird, ist die zuletzt angegebene wirksam. Für die Angabe
+der \fIZeit\fP kann der spezielle Wert \fB0\fP verwendet werden, um dieses
+Funktionsmerkmal explizit zu deaktivieren.
+.IP ""
+Dieses Funktionsmerkmal ist außerhalb von POSIX\-Systemen nicht verfügbar.
+.IP ""
+.\" FIXME
+\fBDieses Funktionsmerkmal ist noch experimentell.\fP Gegenwärtig ist \fBxz\fP
+aufgrund der Art und Weise, wie \fBxz\fP puffert, für Dekompression in Echtzeit
+ungeeignet.
+.TP 
+\fB\-\-memlimit\-compress=\fP\fIGrenze\fP
+legt eine Grenze für die Speichernutzung bei der Kompression fest. Wenn
+diese Option mehrmals angegeben wird, ist die zuletzt angegebene wirksam.
+.IP ""
+Falls die Kompressionseinstellungen die \fIGrenze\fP überschreiten, passt \fBxz\fP
+die Einstellungen nach unten an, so dass die Grenze nicht mehr überschritten
+wird und zeigt einen Hinweis an, dass eine automatische Anpassung
+vorgenommen wurde. Solche Anpassungen erfolgen nicht, wenn mit
+\fB\-\-format=raw\fP komprimiert wird oder wenn \fB\-\-no\-adjust\fP angegeben
+wurde. In diesen Fällen wird eine Fehlermeldung mit dem Exit\-Status 1
+ausgegeben und \fBxz\fP mit dem Exit\-Status 1 beendet.
+.IP ""
+Die \fIGrenze\fP kann auf verschiedene Arten angegeben werden:
+.RS
+.IP \(bu 3
+Die \fIGrenze\fP kann ein absoluter Wert in Byte sein. Ein Suffix wie \fBMiB\fP
+kann dabei hilfreich sein. Beispiel: \fB\-\-memlimit\-compress=80MiB\fP.
+.IP \(bu 3
+Die \fIGrenze\fP kann als Prozentsatz des physischen Gesamtspeichers (RAM)
+angegeben werden. Dies ist insbesondere nützlich, wenn in einem
+Shell\-Initialisierungsskript, das mehrere unterschiedliche Rechner gemeinsam
+verwenden, die Umgebungsvariable \fBXZ_DEFAULTS\fP gesetzt ist. Auf diese Weise
+ist die Grenze auf Systemen mit mehr Speicher höher. Beispiel:
+\fB\-\-memlimit\-compress=70%\fP
+.IP \(bu 3
+Mit \fB0\fP kann die \fIGrenze\fP auf den Standardwert zurückgesetzt werden. Dies
+ist gegenwärtig gleichbedeutend mit dem Setzen der \fIGrenze\fP auf \fBmax\fP
+(keine Speicherbegrenzung). Sobald die Unterstützung für Multi\-Threading
+implementiert wurde, kann es im Multi\-Thread\-Fall einen Unterschied zwischen
+\fB0\fP und \fBmax\fP geben, daher wird empfohlen, \fB0\fP anstelle von \fBmax\fP zu
+verwenden, bis die Einzelheiten hierzu geklärt sind.
+.RE
+.IP ""
+Für die 32\-Bit\-Version von \fBxz\fP gibt es einen Spezialfall: Falls die Grenze
+über \fB4020\ MiB\fP liegt, wird die \fIGrenze\fP auf \fB4020\ MiB\fP gesetzt (die
+Werte \fB0\fP und \fBmax\fP werden hiervon nicht beeinflusst; für die
+Dekompression gibt es keine vergleichbare Funktion). Dies kann hilfreich
+sein, wenn ein 32\-Bit\-Executable auf einen 4\ GiB großen Adressraum
+zugreifen kann, wobei wir hoffen wollen, dass es in anderen Situationen
+keine negativen Effekte hat.
+.IP ""
+Siehe auch den Abschnitt \fBSpeicherbedarf\fP.
+.TP 
+\fB\-\-memlimit\-decompress=\fP\fIGrenze\fP
+legt eine Begrenzung des Speicherverbrauchs für die Dekompression fest. Dies
+beeinflusst auch den Modus \fB\-\-list\fP. Falls die Aktion nicht ausführbar ist,
+ohne die \fIGrenze\fP zu überschreiten, gibt \fBxz\fP eine Fehlermeldung aus und
+die Dekompression wird fehlschlagen. Siehe \fB\-\-memlimit\-compress=\fP\fIGrenze\fP
+zu möglichen Wegen, die \fIGrenze\fP anzugeben.
+.TP 
+\fB\-M\fP \fIGrenze\fP, \fB\-\-memlimit=\fP\fIGrenze\fP, \fB\-\-memory=\fP\fIGrenze\fP
+Dies ist gleichbedeutend mit \fB\-\-memlimit\-compress=\fP\fIGrenze
+\fP\fB\-\-memlimit\-decompress=\fP\fIGrenze\fP.
+.TP 
+\fB\-\-no\-adjust\fP
+zeigt einen Fehler an und bricht die Ausführung ab, falls die
+Kompressionseinstellungen die Begrenzung der Speichernutzung
+überschreiten. Standardmäßig werden die Einstellungen nach unten korrigiert,
+so dass diese Grenze nicht überschritten wird. Bei der Erzeugung von
+Rohdatenströmen (\fB\-\-format=raw\fP) ist die automatische Korrektur stets
+deaktiviert.
+.TP 
+\fB\-T\fP \fIThreads\fP, \fB\-\-threads=\fP\fIThreads\fP
+gibt die Anzahl der zu verwendenden Arbeits\-Threads an. Wenn Sie \fIThreads\fP
+auf einen speziellen Wert \fB0\fP setzen, verwendet \fBxz\fP so viele Threads, wie
+Prozessorkerne im System verfügbar sind. Die tatsächliche Anzahl kann
+geringer sein als die angegebenen \fIThreads\fP, wenn die Eingabedatei nicht
+groß genug für Threading mit den gegebenen Einstellungen ist oder wenn mehr
+Threads die Speicherbegrenzung übersteigen würden.
+.IP ""
+Die gegenwärtig einzige Threading\-Methode teilt die Eingabe in Blöcke und
+komprimiert diese unabhängig voneinander. Die vorgegebene Blockgröße ist von
+der Kompressionsstufe abhängig und kann mit der Option
+\fB\-\-block\-size=\fP\fIGröße\fP außer Kraft gesetzt werden.
+.IP ""
+Eine thread\-basierte Dekompression wurde bislang noch nicht
+implementiert. Sie wird nur bei Dateien funktionieren, die mehrere Blöcke
+mit Größeninformationen in deren Headern enthalten. Alle im
+Multi\-Thread\-Modus komprimierten Dateien erfüllen diese Bedingung, im
+Einzel\-Thread\-Modus komprimierte Dateien dagegen nicht, selbst wenn
+\fB\-\-block\-size=\fP\fIGröße\fP verwendet wird.
+.
+.SS "Benutzerdefinierte Filterketten für die Kompression"
+Eine benutzerdefinierte Filterkette ermöglicht die Angabe detaillierter
+Kompressionseinstellungen, anstatt von den Voreinstellungen auszugehen. Wenn
+eine benutzerdefinierte Filterkette angegeben wird, werden die vorher in der
+Befehlszeile angegebenen Voreinstellungsoptionen (\fB\-0\fP … \fB\-9\fP und
+\fB\-\-extreme\fP) außer Kraft gesetzt. Wenn eine Voreinstellungsoption nach
+einer oder mehreren benutzerdefinierten Filterkettenoptionen angegeben wird,
+dann wird die neue Voreinstellung wirksam und die zuvor angegebenen
+Filterkettenoptionen werden außer Kraft gesetzt.
+.PP
+Eine Filterkette ist mit dem Piping (der Weiterleitung) in der Befehlszeile
+vergleichbar. Bei der Kompression gelangt die unkomprimierte Eingabe in den
+ersten Filter, dessen Ausgabe wiederum in den zweiten Filter geleitet wird
+(sofern ein solcher vorhanden ist). Die Ausgabe des letzten Filters wird in
+die komprimierte Datei geschrieben. In einer Filterkette sind maximal vier
+Filter zulässig, aber typischerweise besteht eine Filterkette nur aus einem
+oder zwei Filtern.
+.PP
+Bei vielen Filtern ist die Positionierung in der Filterkette eingeschränkt:
+Einige Filter sind nur als letzte in der Kette verwendbar, einige können
+nicht als letzte Filter gesetzt werden, und andere funktionieren an
+beliebiger Stelle. Abhängig von dem Filter ist diese Beschränkung entweder
+auf das Design des Filters selbst zurückzuführen oder ist aus
+Sicherheitsgründen vorhanden.
+.PP
+Eine benutzerdefinierte Filterkette wird durch eine oder mehrere
+Filteroptionen in der Reihenfolge angegeben, in der sie in der Filterkette
+wirksam werden sollen. Daher ist die Reihenfolge der Filteroptionen von
+signifikanter Bedeutung! Beim Dekodieren von Rohdatenströmen
+(\fB\-\-format=raw\fP) wird die Filterkette in der gleichen Reihenfolge angegeben
+wie bei der Kompression.
+.PP
+Filter akzeptieren filterspezifische \fIOptionen\fP in einer durch Kommata
+getrennten Liste. Zusätzliche Kommata in den \fIOptionen\fP werden
+ignoriert. Jede Option hat einen Standardwert, daher brauchen Sie nur jene
+anzugeben, die Sie ändern wollen.
+.PP
+Um die gesamte Filterkette und die \fIOptionen\fP anzuzeigen, rufen Sie \fBxz
+\-vv\fP auf (was gleichbedeutend mit der zweimaligen Angabe von \fB\-\-verbose\fP
+ist). Dies funktioniert auch zum Betrachten der von den Voreinstellungen
+verwendeten Filterkettenoptionen.
+.TP 
+\fB\-\-lzma1\fP[\fB=\fP\fIOptionen\fP]
+.PD 0
+.TP 
+\fB\-\-lzma2\fP[\fB=\fP\fIOptionen\fP]
+.PD
+fügt LZMA1\- oder LZMA2\-Filter zur Filterkette hinzu. Diese Filter können nur
+als letzte Filter in der Kette verwendet werden.
+.IP ""
+LZMA1 ist ein veralteter Filter, welcher nur wegen des veralteten
+\&\fB.lzma\fP\-Dateiformats unterstützt wird, welches nur LZMA1 unterstützt. LZMA2
+ist eine aktualisierte Version von LZMA1, welche einige praktische Probleme
+von LZMA1 behebt. Das \fB.xz\fP\-Format verwendet LZMA2 und unterstützt LZMA1
+gar nicht. Kompressionsgeschwindigkeit und \-verhältnis sind bei LZMA1 und
+LZMA2 praktisch gleich.
+.IP ""
+LZMA1 und LZMA2 haben die gleichen \fIOptionen\fP:
+.RS
+.TP 
+\fBpreset=\fP\fIVoreinstellung\fP
+setzt alle LZMA1\- oder LZMA2\-\fIOptionen\fP auf die \fIVoreinstellung\fP
+zurück. Diese \fIVoreinstellung\fP wird in Form einer Ganzzahl angegeben, der
+ein aus einem einzelnen Buchstaben bestehender Voreinstellungsmodifikator
+folgen kann. Die Ganzzahl kann \fB0\fP bis \fB9\fP sein, entsprechend den
+Befehlszeilenoptionen \fB\-0\fP … \fB\-9\fP. Gegenwärtig ist \fBe\fP der einzige
+unterstützte Modifikator, was \fB\-\-extreme\fP entspricht. Wenn keine
+\fBVoreinstellung\fP angegeben ist, werden die Standardwerte der LZMA1\- oder
+LZMA2\-\fIOptionen\fP der Voreinstellung \fB6\fP entnommen.
+.TP 
+\fBdict=\fP\fIGröße\fP
+Die \fIGröße\fP des Wörterbuchs (Chronikpuffers) gibt an, wie viel Byte der
+kürzlich verarbeiteten unkomprimierten Daten im Speicher behalten werden
+sollen. Der Algorithmus versucht, sich wiederholende Byte\-Abfolgen
+(Übereinstimmungen) in den unkomprimierten Daten zu finden und diese durch
+Referenzen zu den Daten zu ersetzen, die sich gegenwärtig im Wörterbuch
+befinden. Je größer das Wörterbuch, umso größer ist die Chance, eine
+Übereinstimmung zu finden. Daher bewirkt eine Erhöhung der \fIGröße\fP des
+Wörterbuchs üblicherweise ein besseres Kompressionsverhältnis, aber ein
+Wörterbuch, das größer ist als die unkomprimierte Datei, wäre
+Speicherverschwendung.
+.IP ""
+Typische Wörterbuch\-\fIGrößen\fP liegen im Bereich von 64\ KiB bis 64\ MiB. Das
+Minimum ist 4\ KiB. Das Maximum für die Kompression ist gegenwärtig 1.5\ GiB
+(1536\ MiB). Bei der Dekompression wird bereits eine Wörterbuchgröße bis zu
+4\ GiB minus 1 Byte unterstützt, welche das Maximum für die LZMA1\- und
+LZMA2\-Datenstromformate ist.
+.IP ""
+Die \fIGröße\fP des Wörterbuchs und der Übereinstimmungsfinder (\fIÜf\fP)
+bestimmen zusammen den Speicherverbrauch des LZMA1\- oder
+LZMA2\-Kodierers. Bei der Dekompression ist ein Wörterbuch der gleichen
+\fIGröße\fP (oder ein noch größeres) wie bei der Kompression erforderlich,
+daher wird der Speicherverbrauch des Dekoders durch die Größe des bei der
+Kompression verwendeten Wörterbuchs bestimmt. Die \fB.xz\fP\-Header speichern
+die \fIGröße\fP des Wörterbuchs entweder als 2^\fIn\fP oder 2^\fIn\fP + 2^(\fIn\fP\-1),
+so dass diese \fIGrößen\fP für die Kompression etwas bevorzugt werden. Andere
+\fIGrößen\fP werden beim Speichern in den \fB.xz\fP\-Headern aufgerundet.
+.TP 
+\fBlc=\fP\fIlc\fP
+gibt die Anzahl der literalen Kontextbits an. Das Minimum ist 0 und das
+Maximum 4; der Standardwert ist 3. Außerdem darf die Summe von \fIlc\fP und
+\fIlp\fP nicht größer als 4 sein.
+.IP ""
+Alle Bytes, die nicht als Übereinstimmungen kodiert werden können, werden
+als Literale kodiert. Solche Literale sind einfache 8\-bit\-Bytes, die jeweils
+für sich kodiert werden.
+.IP ""
+Bei der Literalkodierung wird angenommen, dass die höchsten \fIlc\fP\-Bits des
+zuvor unkomprimierten Bytes mit dem nächsten Byte in Beziehung stehen. Zum
+Beispiel folgt in typischen englischsprachigen Texten auf einen
+Großbuchstaben ein Kleinbuchstabe und auf einen Kleinbuchstaben
+üblicherweise wieder ein Kleinbuchstabe. Im US\-ASCII\-Zeichensatz sind die
+höchsten drei Bits 010 für Großbuchstaben und 011 für Kleinbuchstaben. Wenn
+\fIlc\fP mindestens 3 ist, kann die literale Kodierung diese Eigenschaft der
+unkomprimierten Daten ausnutzen.
+.IP ""
+Der Vorgabewert (3) ist üblicherweise gut. Wenn Sie die maximale Kompression
+erreichen wollen, versuchen Sie \fBlc=4\fP. Manchmal hilft es ein wenig, doch
+manchmal verschlechtert es die Kompression. Im letzteren Fall versuchen Sie
+zum Beispiel auch\& \fBlc=2\fP.
+.TP 
+\fBlp=\fP\fIlp\fP
+gibt die Anzahl der literalen Positionsbits an. Das Minimum ist 0 und das
+Maximum 4; die Vorgabe ist 0.
+.IP ""
+\fILp\fP beeinflusst, welche Art der Ausrichtung der unkomprimierten Daten beim
+Kodieren von Literalen angenommen wird. Siehe \fIpb\fP weiter unten für weitere
+Informationen zur Ausrichtung.
+.TP 
+\fBpb=\fP\fIAnzahl\fP
+legt die Anzahl der Positions\-Bits fest. Das Minimum ist 0 und das Maximum
+4; Standard ist 2.
+.IP ""
+\fIPb\fP beeinflusst, welche Art der Ausrichtung der unkomprimierten Daten
+generell angenommen wird. Standardmäßig wird eine Vier\-Byte\-Ausrichtung
+angenommen (2^\fIpb\fP=2^2=4), was oft eine gute Wahl ist, wenn es keine
+bessere Schätzung gibt.
+.IP ""
+Wenn die Ausrichtung bekannt ist, kann das entsprechende Setzen von \fIpb\fP
+die Dateigröße ein wenig verringern. Wenn Textdateien zum Beispiel eine
+Ein\-Byte\-Ausrichtung haben (US\-ASCII, ISO\-8859\-*, UTF\-8), kann das Setzen
+von \fBpb=0\fP die Kompression etwas verbessern. Für UTF\-16\-Text ist \fBpb=1\fP
+eine gute Wahl. Wenn die Ausrichtung eine ungerade Zahl wie beispielsweise 3
+Byte ist, könnte \fBpb=0\fP die beste Wahl sein.
+.IP ""
+Obwohl die angenommene Ausrichtung mit \fIpb\fP und \fIlp\fP angepasst werden
+kann, bevorzugen LZMA1 und LZMA2 noch etwas die 16\-Byte\-Ausrichtung. Das
+sollten Sie vielleicht beim Design von Dateiformaten berücksichtigen, die
+wahrscheinlich oft mit LZMA1 oder LZMA2 komprimiert werden.
+.TP 
+\fBmf=\fP\fIÜf\fP
+Der Übereinstimmungsfinder hat einen großen Einfluss auf die Geschwindigkeit
+des Kodierers, den Speicherbedarf und das
+Kompressionsverhältnis. Üblicherweise sind auf Hash\-Ketten basierende
+Übereinstimmungsfinder schneller als jene, die mit Binärbäumen arbeiten. Die
+Vorgabe hängt von der \fIVoreinstellungsstufe\fP ab: 0 verwendet \fBhc3\fP, 1\-3
+verwenden \fBhc4\fP und der Rest verwendet \fBbt4\fP.
+.IP ""
+Die folgenden Übereinstimmungsfinder werden unterstützt. Die Formeln zur
+Ermittlung des Speicherverbrauchs sind grobe Schätzungen, die der Realität
+am nächsten kommen, wenn \fIWörterbuch\fP eine Zweierpotenz ist.
+.RS
+.TP 
+\fBhc3\fP
+Hash\-Kette mit 2\- und 3\-Byte\-Hashing
+.br
+Minimalwert für \fInice\fP: 3
+.br
+Speicherbedarf:
+.br
+\fIdict\fP * 7,5 (falls \fIdict\fP <= 16 MiB);
+.br
+\fIdict\fP * 5,5 + 64 MiB (falls \fIdict\fP > 16 MiB)
+.TP 
+\fBhc4\fP
+Hash\-Kette mit 2\-, 3\- und 4\-Byte\-Hashing
+.br
+Minimaler Wert für \fInice\fP: 4
+.br
+Speicherbedarf:
+.br
+\fIdict\fP * 7,5 (falls \fIdict\fP <= 32 MiB ist);
+.br
+\fIdict\fP * 6,5 (falls \fIdict\fP > 32 MiB ist)
+.TP 
+\fBbt2\fP
+Binärbaum mit 2\-Byte\-Hashing
+.br
+Minimaler Wert für \fInice\fP: 2
+.br
+Speicherverbrauch: \fIdict\fP * 9.5
+.TP 
+\fBbt3\fP
+Binärbaum mit 2\- und 3\-Byte\-Hashing
+.br
+Minimalwert für \fInice\fP: 3
+.br
+Speicherbedarf:
+.br
+\fIdict\fP * 11,5 (falls \fIdict\fP <= 16 MiB ist);
+.br
+\fIdict\fP * 9,5 + 64 MiB (falls \fIdict\fP > 16 MiB ist)
+.TP 
+\fBbt4\fP
+Binärbaum mit 2\-, 3\- und 4\-Byte\-Hashing
+.br
+Minimaler Wert für \fInice\fP: 4
+.br
+Speicherbedarf:
+.br
+\fIdict\fP * 11,5 (falls \fIdict\fP <= 32 MiB ist);
+.br
+\fIdict\fP * 10,5 (falls \fIdict\fP > 32 MiB ist)
+.RE
+.TP 
+\fBmode=\fP\fIModus\fP
+gibt die Methode zum Analysieren der vom Übereinstimmungsfinder gelieferten
+Daten an. Als \fIModi\fP werden \fBfast\fP und \fBnormal\fP unterstützt. Die Vorgabe
+ist \fBfast\fP für die \fIVoreinstellungsstufen\fP 0\-3 und \fBnormal\fP für die
+\fIVoreinstellungsstufen\fP 4\-9.
+.IP ""
+Üblicherweise wird \fBfast\fP mit Hashketten\-basierten Übereinstimmungsfindern
+und \fBnormal\fP mit Binärbaum\-basierten Übereinstimmungsfindern verwendet. So
+machen es auch die \fIVoreinstellungsstufen\fP.
+.TP 
+\fBnice=\fP\fInice\fP
+gibt an, was als annehmbarer Wert für eine Übereinstimmung angesehen werden
+kann. Wenn eine Übereinstimmung gefunden wird, die mindestens diesen
+\fInice\fP\-Wert hat, sucht der Algorithmus nicht weiter nach besseren
+Übereinstimmungen.
+.IP ""
+Der \fInice\fP\-Wert kann 2\-273 Byte sein. Höhere Werte tendieren zu einem
+besseren Kompressionsverhältnis, aber auf Kosten der Geschwindigkeit. Die
+Vorgabe hängt von der \fIVoreinstellungsstufe\fP ab.
+.TP 
+\fBdepth=\fP\fITiefe\fP
+legt die maximale Suchtiefe im Übereinstimmungsfinder fest. Vorgegeben ist
+der spezielle Wert 0, der den Kompressor veranlasst, einen annehmbaren Wert
+für \fITiefe\fP aus \fIÜf\fP und \fInice\fP\-Wert zu bestimmen.
+.IP ""
+Die angemessene \fITiefe\fP für Hash\-Ketten ist 4\-100 und 16\-1000 für
+Binärbäume. Hohe Werte für die \fITiefe\fP können den Kodierer bei einigen
+Dateien extrem verlangsamen. Vermeiden Sie es, die \fITiefe\fP über einen Wert
+von 100 zu setzen, oder stellen Sie sich darauf ein, die Kompression
+abzubrechen, wenn sie zu lange dauert.
+.RE
+.IP ""
+Beim Dekodieren von Rohdatenströmen (\fB\-\-format=raw\fP) benötigt LZMA2 nur die
+Wörterbuch\-\fIGröße\fP.  LZMA1 benötigt außerdem \fIlc\fP, \fIlp\fP und \fIpb\fP.
+.TP 
+\fB\-\-x86\fP[\fB=\fP\fIOptionen\fP]
+.PD 0
+.TP 
+\fB\-\-powerpc\fP[\fB=\fP\fIOptionen\fP]
+.TP 
+\fB\-\-ia64\fP[\fB=\fP\fIOptionen\fP]
+.TP 
+\fB\-\-arm\fP[\fB=\fP\fIOptionen\fP]
+.TP 
+\fB\-\-armthumb\fP[\fB=\fP\fIOptionen\fP]
+.TP 
+\fB\-\-sparc\fP[\fB=\fP\fIOptionen\fP]
+.PD
+fügt ein »Branch/Call/Jump«\-(BCJ\-)Filter zur Filterkette hinzu. Diese Filter
+können nicht als letzter Filter in der Filterkette verwendet werden.
+.IP ""
+Ein BCJ\-Filter wandelt relative Adressen im Maschinencode in deren absolute
+Gegenstücke um. Die Datengröße wird dadurch nicht geändert, aber die
+Redundanz erhöht, was LZMA2 dabei helfen kann, eine um 10 bis 15% kleinere
+\&\fB.xz\fP\-Datei zu erstellen. Die BCJ\-Filter sind immer reversibel, daher
+verursacht die Anwendung eines BCJ\-Filters auf den falschen Datentyp keinen
+Datenverlust, wobei aber das Kompressionsverhältnis etwas schlechter werden
+könnte.
+.IP ""
+Es ist in Ordnung, einen BCJ\-Filter auf eine gesamte Binärdatei anzuwenden;
+es ist nicht nötig, dies nur auf den binären Bereich zu beschränken. Die
+Anwendung eines BCJ\-Filters auf ein Archiv, das sowohl binäre als auch
+nicht\-binäre Dateien enthält, kann gute Ergebnisse liefern, muss es aber
+nicht. Daher ist es generell nicht gut, einen BCJ\-Filter blindlings
+anzuwenden, wenn Sie Binärpakete zwecks Weitergabe komprimieren wollen.
+.IP ""
+Diese BCJ\-Filter sind sehr schnell und erhöhen den Speicherbedarf nur
+unerheblich. Wenn ein BCJ\-Filter das Kompressionsverhältnis einer Datei
+verbessert, kann er auch gleichzeitig die Dekompressionsgeschwindigkeit
+verbessern. Das kommt daher, dass auf der gleichen Hardware die
+Dekompressionsgeschwindigkeit von LZMA2 ungefähr eine feste Anzahl Byte an
+komprimierten Daten pro Sekunde ist.
+.IP ""
+Diese BCJ\-Filter haben bekannte Probleme mit dem Kompressionsverhältnis:
+.RS
+.IP \(bu 3
+In einigen Dateitypen, die ausführbaren Code enthalten (zum Beispiel
+Objektdateien, statische Bibliotheken und Linux\-Kernelmodule), sind die
+Adressen in den Anweisungen mit Füllwerten gefüllt. Diese BCJ\-Filter führen
+dennoch die Adressumwandlung aus, wodurch die Kompression bei diesen Dateien
+schlechter wird.
+.IP \(bu 3
+Bei der Anwendung eines BCJ\-Filters auf ein Archiv, das mehrere ähnliche
+Binärdateien enthält, kann das Kompressionsverhältnis schlechter sein als
+ohne BCJ\-Filter. Das kommt daher, weil der BCJ\-Filter die Grenzen der
+Binärdateien nicht erkennt und den Zähler der Adressumwandlung für jede
+Binärdatei nicht zurücksetzt.
+.RE
+.IP ""
+Beide der oben genannten Probleme werden in der Zukunft in einem neuen
+Filter nicht mehr auftreten. Die alten BCJ\-Filter werden noch in
+eingebetteten Systemen von Nutzen sein, weil der Dekoder des neuen Filters
+größer sein und mehr Speicher beanspruchen wird.
+.IP ""
+Verschiedene Befehlssätze haben unterschiedliche Ausrichtungen:
+.RS
+.RS
+.PP
+.TS
+tab(;);
+l n l
+l n l.
+Filter;Ausrichtung;Hinweise
+x86;1;32\-Bit oder 64\-Bit x86
+PowerPC;4;Nur Big Endian
+ARM;4;Nur Little Endian
+ARM\-Thumb;2;Nur Little Endian
+IA\-64;16;Big oder Little Endian
+SPARC;4;Big oder Little Endian
+.TE
+.RE
+.RE
+.IP ""
+Da die BCJ\-gefilterten Daten üblicherweise mit LZMA2 komprimiert sind, kann
+das Kompressionsverhältnis dadurch etwas verbessert werden, dass die
+LZMA2\-Optionen so gesetzt werden, dass sie der Ausrichtung des gewählten
+BCJ\-Filters entsprechen. Zum Beispiel ist es beim IA\-64\-Filter eine gute
+Wahl, \fBpb=4\fP mit LZMA2 zu setzen (2^4=16). Der x86\-Filter bildet dabei eine
+Ausnahme; Sie sollten bei der für LZMA2 voreingestellten 4\-Byte\-Ausrichtung
+bleiben, wenn Sie x86\-Binärdateien komprimieren.
+.IP ""
+Alle BCJ\-Filter unterstützen die gleichen \fIOptionen\fP:
+.RS
+.TP 
+\fBstart=\fP\fIVersatz\fP
+gibt den Start\-\fIVersatz\fP an, der bei der Umwandlung zwischen relativen und
+absoluten Adressen verwendet wird. Der \fIVersatz\fP muss ein Vielfaches der
+Filterausrichtung sein (siehe die Tabelle oben). Der Standardwert ist 0. In
+der Praxis ist dieser Standardwert gut; die Angabe eines benutzerdefinierten
+\fIVersatzes\fP ist fast immer unnütz.
+.RE
+.TP 
+\fB\-\-delta\fP[\fB=\fP\fIOptionen\fP]
+fügt den Delta\-Filter zur Filterkette hinzu. Der Delta\-Filter kann nicht als
+letzter Filter in der Filterkette verwendet werden.
+.IP ""
+Gegenwärtig wird nur eine einfache, Byte\-bezogene Delta\-Berechnung
+unterstützt. Beim Komprimieren von zum Beispiel unkomprimierten
+Bitmap\-Bildern oder unkomprimierten PCM\-Audiodaten kann es jedoch sinnvoll
+sein. Dennoch können für spezielle Zwecke entworfene Algorithmen deutlich
+bessere Ergebnisse als Delta und LZMA2 liefern. Dies trifft insbesondere auf
+Audiodaten zu, die sich zum Beispiel mit \fBflac\fP(1) schneller und besser
+komprimieren lassen.
+.IP ""
+Unterstützte \fIOptionen\fP:
+.RS
+.TP 
+\fBdist=\fP\fIAbstand\fP
+gibt den \fIAbstand\fP der Delta\-Berechnung in Byte an. Zulässige Werte für den
+\fIAbstand\fP sind 1 bis 256. Der Vorgabewert ist 1.
+.IP ""
+Zum Beispiel wird mit \fBdist=2\fP und der 8\-Byte\-Eingabe A1 B1 A2 B3 A3 B5 A4
+B7 die Ausgabe A1 B1 01 02 01 02 01 02 sein.
+.RE
+.
+.SS "Andere Optionen"
+.TP 
+\fB\-q\fP, \fB\-\-quiet\fP
+unterdrückt Warnungen und Hinweise. Geben Sie dies zweimal an, um auch
+Fehlermeldungen zu unterdrücken. Diese Option wirkt sich nicht auf den
+Exit\-Status aus. Das bedeutet, das selbst bei einer unterdrückten Warnung
+der Exit\-Status zur Anzeige einer Warnung dennoch verwendet wird.
+.TP 
+\fB\-v\fP, \fB\-\-verbose\fP
+bewirkt ausführliche Ausgaben. Wenn die Standardfehlerausgabe mit einem
+Terminal verbunden ist, zeigt \fBxz\fP den Fortschritt an. Durch zweimalige
+Angabe von \fB\-\-verbose\fP wird die Ausgabe noch ausführlicher.
+.IP ""
+Der Fortschrittsanzeiger stellt die folgenden Informationen dar:
+.RS
+.IP \(bu 3
+Der Prozentsatz des Fortschritts wird angezeigt, wenn die Größe der
+Eingabedatei bekannt ist. Das bedeutet, dass der Prozentsatz in
+Weiterleitungen (Pipes) nicht angezeigt werden kann.
+.IP \(bu 3
+Menge der erzeugten komprimierten Daten (bei der Kompression) oder der
+verarbeiteten Daten (bei der Dekompression).
+.IP \(bu 3
+Menge der verarbeiteten unkomprimierten Daten (bei der Kompression) oder der
+erzeugten Daten (bei der Dekompression).
+.IP \(bu 3
+Kompressionsverhältnis, das mittels Dividieren der Menge der bisher
+komprimierten Daten durch die Menge der bisher verarbeiteten unkomprimierten
+Daten ermittelt wird.
+.IP \(bu 3
+Kompressions\- oder Dekompressionsgeschwindigkeit. Diese wird anhand der
+Menge der unkomprimierten verarbeiteten Daten (bei der Kompression) oder der
+Menge der erzeugten Daten (bei der Dekompression) pro Sekunde gemessen. Die
+Anzeige startet einige Sekunden nachdem \fBxz\fP mit der Verarbeitung der Datei
+begonnen hat.
+.IP \(bu 3
+Die vergangene Zeit im Format M:SS oder H:MM:SS.
+.IP \(bu 3
+Die geschätzte verbleibende Zeit wird nur angezeigt, wenn die Größe der
+Eingabedatei bekannt ist und bereits einige Sekunden vergangen sind, nachdem
+\fBxz\fP mit der Verarbeitung der Datei begonnen hat. Die Zeit wird in einem
+weniger präzisen Format ohne Doppelpunkte angezeigt, zum Beispiel 2 min 30
+s.
+.RE
+.IP ""
+Wenn die Standardfehlerausgabe kein Terminal ist, schreibt \fBxz\fP mit
+\fB\-\-verbose\fP nach dem Komprimieren oder Dekomprimieren der Datei in einer
+einzelnen Zeile den Dateinamen, die komprimierte Größe, die unkomprimierte
+Größe, das Kompressionsverhältnis und eventuell auch die Geschwindigkeit und
+die vergangene Zeit in die Standardfehlerausgabe. Die Geschwindigkeit und
+die vergangene Zeit werden nur angezeigt, wenn der Vorgang mindestens ein
+paar Sekunden gedauert hat. Wurde der Vorgang nicht beendet, zum Beispiel
+weil ihn der Benutzer abgebrochen hat, wird außerdem der Prozentsatz des
+erreichten Verarbeitungsfortschritts aufgenommen, sofern die Größe der
+Eingabedatei bekannt ist.
+.TP 
+\fB\-Q\fP, \fB\-\-no\-warn\fP
+setzt den Exit\-Status nicht auf 2, selbst wenn eine Bedingung erfüllt ist,
+die eine Warnung gerechtfertigt hätte. Diese Option wirkt sich nicht auf die
+Ausführlichkeitsstufe aus, daher müssen sowohl \fB\-\-quiet\fP als auch
+\fB\-\-no\-warn\fP angegeben werden, um einerseits keine Warnungen anzuzeigen und
+andererseits auch den Exit\-Status nicht zu ändern.
+.TP 
+\fB\-\-robot\fP
+gibt Meldungen in einem maschinenlesbaren Format aus. Dadurch soll das
+Schreiben von Frontends erleichtert werden, die \fBxz\fP anstelle von Liblzma
+verwenden wollen, was in verschiedenen Skripten der Fall sein kann. Die
+Ausgabe mit dieser aktivierten Option sollte über mehrere
+\fBxz\fP\-Veröffentlichungen stabil sein. Details hierzu finden Sie im Abschnitt
+\fBROBOTER\-MODUS\fP.
+.TP 
+\fB\-\-info\-memory\fP
+zeigt in einem menschenlesbaren Format an, wieviel physischen Speicher (RAM)
+das System nach Annahme von \fBxz\fP hat, sowie die Speicherbedarfsbegrenzung
+für Kompression und Dekompression, und beendet das Programm erfolgreich.
+.TP 
+\fB\-h\fP, \fB\-\-help\fP
+zeigt eine Hilfemeldung mit den am häufigsten genutzten Optionen an und
+beendet das Programm erfolgreich.
+.TP 
+\fB\-H\fP, \fB\-\-long\-help\fP
+zeigt eine Hilfemeldung an, die alle Funktionsmerkmale von \fBxz\fP beschreibt
+und beendet das Programm erfolgreich.
+.TP 
+\fB\-V\fP, \fB\-\-version\fP
+zeigt die Versionsnummer von \fBxz\fP und Liblzma in einem menschenlesbaren
+Format an. Um eine maschinell auswertbare Ausgabe zu erhalten, geben Sie
+\fB\-\-robot\fP vor \fB\-\-version\fP an.
+.
+.SH ROBOTER\-MODUS
+Der Roboter\-Modus wird mit der Option \fB\-\-robot\fP aktiviert. Er bewirkt, dass
+die Ausgabe von \fBxz\fP leichter von anderen Programmen ausgewertet werden
+kann. Gegenwärtig wird \fB\-\-robot\fP nur zusammen mit \fB\-\-version\fP,
+\fB\-\-info\-memory\fP und \fB\-\-list\fP unterstützt. In der Zukunft wird dieser Modus
+auch für Kompression und Dekompression unterstützt.
+.
+.SS Version
+\fBxz \-\-robot \-\-version\fP gibt die Versionsnummern von \fBxz\fP und Liblzma im
+folgenden Format aus:
+.PP
+\fBXZ_VERSION=\fP\fIXYYYZZZS\fP
+.br
+\fBLIBLZMA_VERSION=\fP\fIXYYYZZZS\fP
+.TP 
+\fIX\fP
+Hauptversion.
+.TP 
+\fIYYY\fP
+Unterversion. Gerade Zahlen bezeichnen eine stabile Version. Ungerade Zahlen
+bezeichnen Alpha\- oder Betaversionen.
+.TP 
+\fIZZZ\fP
+Patch\-Stufe für stabile Veröffentlichungen oder einfach nur ein Zähler für
+Entwicklungsversionen.
+.TP 
+\fIS\fP
+Stabilität. 0 ist Alpha, 1 ist Beta und 2 ist stabil. \fIS\fP sollte immer 2
+sein, wenn \fIYYY\fP eine gerade Zahl ist.
+.PP
+\fIXYYYZZZS\fP sind in beiden Zeilen gleich, sofern \fBxz\fP und Liblzma aus der
+gleichen Veröffentlichung der XZ\-Utils stammen.
+.PP
+Beispiele: 4.999.9beta ist \fB49990091\fP und 5.0.0 is \fB50000002\fP.
+.
+.SS "Informationen zur Speicherbedarfsbegrenzung"
+\fBxz \-\-robot \-\-info\-memory\fP gibt eine einzelne Zeile mit drei durch
+Tabulatoren getrennten Spalten aus:
+.IP 1. 4
+Gesamter physischer Speicher (RAM) in Byte
+.IP 2. 4
+Speicherbedarfsbegrenzung für die Kompression in Byte. Ein spezieller Wert
+von Null bezeichnet die Standardeinstellung, die im Einzelthread\-Modus
+bedeutet, dass keine Begrenzung vorhanden ist.
+.IP 3. 4
+Speicherbedarfsbegrenzung für die Dekompression in Byte. Ein spezieller Wert
+von Null bezeichnet die Standardeinstellung, die im Einzelthread\-Modus
+bedeutet, dass keine Begrenzung vorhanden ist.
+.PP
+In der Zukunft könnte die Ausgabe von \fBxz \-\-robot \-\-info\-memory\fP weitere
+Spalten enthalten, aber niemals mehr als eine einzelne Zeile.
+.
+.SS Listenmodus
+\fBxz \-\-robot \-\-list\fP verwendet eine durch Tabulatoren getrennte Ausgabe. In
+der ersten Spalte jeder Zeile bezeichnet eine Zeichenkette den Typ der
+Information, die in dieser Zeile enthalten ist:
+.TP 
+\fBname\fP
+Dies ist stets die erste Zeile, wenn eine Datei aufgelistet wird. Die zweite
+Spalte in der Zeile enthält den Dateinamen.
+.TP 
+\fBfile\fP
+Diese Zeile enthält allgemeine Informationen zur \fB.xz\fP\-Datei. Diese Zeile
+wird stets nach der \fBname\fP\-Zeile ausgegeben.
+.TP 
+\fBstream\fP
+Dieser Zeilentyp wird nur verwendet, wenn \fB\-\-verbose\fP angegeben wurde. Es
+gibt genau so viele \fBstream\fP\-Zeilen, wie Datenströme in der \fB.xz\fP\-Datei
+enthalten sind.
+.TP 
+\fBblock\fP
+Dieser Zeilentyp wird nur verwendet, wenn \fB\-\-verbose\fP angegeben wurde. Es
+gibt so viele \fBblock\fP\-Zeilen, wie Blöcke in der \fB.xz\fP\-Datei. Die
+\fBblock\fP\-Zeilen werden nach allen \fBstream\fP\-Zeilen angezeigt; verschiedene
+Zeilentypen werden nicht verschachtelt.
+.TP 
+\fBsummary\fP
+Dieser Zeilentyp wird nur verwendet, wenn \fB\-\-verbose\fP zwei Mal angegeben
+wurde. Diese Zeile wird nach allen \fBblock\fP\-Zeilen ausgegeben. Wie die
+\fBfile\fP\-Zeile enthält die \fBsummary\fP\-Zeile allgemeine Informationen zur
+\&\fB.xz\fP\-Datei.
+.TP 
+\fBtotals\fP
+Diese Zeile ist immer die letzte der Listenausgabe. Sie zeigt die
+Gesamtanzahlen und \-größen an.
+.PP
+Die Spalten der \fBfile\fP\-Zeilen:
+.PD 0
+.RS
+.IP 2. 4
+Anzahl der Datenströme in der Datei
+.IP 3. 4
+Gesamtanzahl der Blöcke in den Datenströmen
+.IP 4. 4
+Komprimierte Größe der Datei
+.IP 5. 4
+Unkomprimierte Größe der Datei
+.IP 6. 4
+Das Kompressionsverhältnis, zum Beispiel \fB0.123\fP. Wenn das Verhältnis über
+9.999 liegt, werden drei Minuszeichen (\fB\-\-\-\fP) anstelle des
+Kompressionsverhältnisses angezeigt.
+.IP 7. 4
+Durch Kommata getrennte Liste der Namen der Integritätsprüfungen. Für die
+bekannten Überprüfungstypen werden folgende Zeichenketten verwendet:
+\fBNone\fP, \fBCRC32\fP, \fBCRC64\fP und \fBSHA\-256\fP. \fBUnbek.\fP\fIN\fP wird verwendet,
+wobei \fIN\fP die Kennung der Überprüfung als Dezimalzahl angibt (ein\- oder
+zweistellig).
+.IP 8. 4
+Gesamtgröße der Datenstromauffüllung in der Datei
+.RE
+.PD
+.PP
+Die Spalten der \fBstream\fP\-Zeilen:
+.PD 0
+.RS
+.IP 2. 4
+Datenstromnummer (der erste Datenstrom ist 1)
+.IP 3. 4
+Anzahl der Blöcke im Datenstrom
+.IP 4. 4
+Komprimierte Startposition
+.IP 5. 4
+Unkomprimierte Startposition
+.IP 6. 4
+Komprimierte Größe (schließt die Datenstromauffüllung nicht mit ein)
+.IP 7. 4
+Unkomprimierte Größe
+.IP 8. 4
+Kompressionsverhältnis
+.IP 9. 4
+Name der Integritätsprüfung
+.IP 10. 4
+Größe der Datenstromauffüllung
+.RE
+.PD
+.PP
+Die Spalten der \fBblock\fP\-Zeilen:
+.PD 0
+.RS
+.IP 2. 4
+Anzahl der in diesem Block enthaltenen Datenströme
+.IP 3. 4
+Blocknummer relativ zum Anfang des Datenstroms (der erste Block ist 1)
+.IP 4. 4
+Blocknummer relativ zum Anfang der Datei
+.IP 5. 4
+Komprimierter Startversatz relativ zum Beginn der Datei
+.IP 6. 4
+Unkomprimierter Startversatz relativ zum Beginn der Datei
+.IP 7. 4
+Komprimierte Gesamtgröße des Blocks (einschließlich Header)
+.IP 8. 4
+Unkomprimierte Größe
+.IP 9. 4
+Kompressionsverhältnis
+.IP 10. 4
+Name der Integritätsprüfung
+.RE
+.PD
+.PP
+Wenn \fB\-\-verbose\fP zwei Mal angegeben wurde, werden zusätzliche Spalten in
+die \fBblock\fP\-Zeilen eingefügt. Diese werden mit einem einfachen \fB\-\-verbose\fP
+nicht angezeigt, da das Ermitteln dieser Informationen viele Suchvorgänge
+erfordert und daher recht langsam sein kann:
+.PD 0
+.RS
+.IP 11. 4
+Wert der Integritätsprüfung in hexadezimaler Notation
+.IP 12. 4
+Block\-Header\-Größe
+.IP 13. 4
+Block\-Schalter: \fBc\fP gibt an, dass die komprimierte Größe verfügbar ist, und
+\fBu\fP gibt an, dass die unkomprimierte Größe verfügbar ist. Falls der
+Schalter nicht gesetzt ist, wird stattdessen ein Bindestrich (\fB\-\fP)
+angezeigt, um die Länge der Zeichenkette beizubehalten. In Zukunft könnten
+neue Schalter am Ende der Zeichenkette hinzugefügt werden.
+.IP 14. 4
+Größe der tatsächlichen komprimierten Daten im Block. Ausgeschlossen sind
+hierbei die Block\-Header, die Blockauffüllung und die Prüffelder.
+.IP 15. 4
+Größe des Speichers (in Byte), der zum Dekomprimieren dieses Blocks mit
+dieser \fBxz\fP\-Version benötigt wird.
+.IP 16. 4
+Filterkette. Beachten Sie, dass die meisten der bei der Kompression
+verwendeten Optionen nicht bekannt sein können, da in den \fB.xz\fP\-Headern nur
+die für die Dekompression erforderlichen Optionen gespeichert sind.
+.RE
+.PD
+.PP
+Die Spalten der \fBsummary\fP\-Zeilen:
+.PD 0
+.RS
+.IP 2. 4
+Größe des Speichers (in Byte), der zum Dekomprimieren dieser Datei mit
+dieser \fBxz\fP\-Version benötigt wird.
+.IP 3. 4
+\fByes\fP oder \fBno\fP geben an, ob in allen Block\-Headern sowohl die
+komprimierte als auch die unkomprimierte Größe gespeichert ist.
+.PP
+\fISeit\fP \fBxz\fP \fI5.1.2alpha:\fP
+.IP 4. 4
+Minimale \fBxz\fP\-Version, die zur Dekompression der Datei erforderlich ist
+.RE
+.PD
+.PP
+Die Spalten der \fBtotals\fP\-Zeile:
+.PD 0
+.RS
+.IP 2. 4
+Anzahl der Datenströme
+.IP 3. 4
+Anzahl der Blöcke
+.IP 4. 4
+Komprimierte Größe
+.IP 5. 4
+Unkomprimierte Größe
+.IP 6. 4
+Durchschnittliches Kompressionsverhältnis
+.IP 7. 4
+Durch Kommata getrennte Liste der Namen der Integritätsprüfungen, die in den
+Dateien präsent waren.
+.IP 8. 4
+Größe der Datenstromauffüllung
+.IP 9. 4
+Anzahl der Dateien. Dies dient dazu, die Reihenfolge der vorigen Spalten an
+die in den \fBfile\fP\-Zeilen anzugleichen.
+.PD
+.RE
+.PP
+Wenn \fB\-\-verbose\fP zwei Mal angegeben wird, werden zusätzliche Spalten in die
+\fBtotals\fP\-Zeile eingefügt:
+.PD 0
+.RS
+.IP 10. 4
+Maximale Größe des Speichers (in Byte), der zum Dekomprimieren der Dateien
+mit dieser \fBxz\fP\-Version benötigt wird.
+.IP 11. 4
+\fByes\fP oder \fBno\fP geben an, ob in allen Block\-Headern sowohl die
+komprimierte als auch die unkomprimierte Größe gespeichert ist.
+.PP
+\fISeit\fP \fBxz\fP \fI5.1.2alpha:\fP
+.IP 12. 4
+Minimale \fBxz\fP\-Version, die zur Dekompression der Datei erforderlich ist
+.RE
+.PD
+.PP
+Zukünftige Versionen könnten neue Zeilentypen hinzufügen, weiterhin könnten
+auch in den vorhandenen Zeilentypen weitere Spalten hinzugefügt werden, aber
+die existierenden Spalten werden nicht geändert.
+.
+.SH EXIT\-STATUS
+.TP 
+\fB0\fP
+Alles ist in Ordnung.
+.TP 
+\fB1\fP
+Ein Fehler ist aufgetreten.
+.TP 
+\fB2\fP
+Es ist etwas passiert, das eine Warnung rechtfertigt, aber es sind keine
+tatsächlichen Fehler aufgetreten.
+.PP
+In die Standardausgabe geschriebene Hinweise (keine Warnungen oder Fehler),
+welche den Exit\-Status nicht beeinflussen.
+.
+.SH UMGEBUNGSVARIABLEN
+\fBxz\fP wertet eine durch Leerzeichen getrennte Liste von Optionen in den
+Umgebungsvariablen \fBXZ_DEFAULTS\fP und \fBXZ_OPT\fP aus (in dieser Reihenfolge),
+bevor die Optionen aus der Befehlszeile ausgewertet werden. Beachten Sie,
+dass beim Auswerten der Umgebungsvariablen nur Optionen berücksichtigt
+werden; alle Einträge, die keine Optionen sind, werden stillschweigend
+ignoriert. Die Auswertung erfolgt mit \fBgetopt_long\fP(3), welches auch für
+die Befehlszeilenargumente verwendet wird.
+.TP 
+\fBXZ_DEFAULTS\fP
+Benutzerspezifische oder systemweite Standardoptionen. Typischerweise werden
+diese in einem Shell\-Initialisierungsskript gesetzt, um die
+Speicherbedarfsbegrenzung von \fBxz\fP standardmäßig zu aktivieren. Außer bei
+Shell\-Initialisierungsskripten und in ähnlichen Spezialfällen darf die
+Variable \fBXZ_DEFAULTS\fP in Skripten niemals gesetzt oder außer Kraft gesetzt
+werden.
+.TP 
+\fBXZ_OPT\fP
+Dies dient der Übergabe von Optionen an \fBxz\fP, wenn es nicht möglich ist,
+die Optionen direkt in der Befehlszeile von \fBxz\fP zu übergeben. Dies ist
+beispielsweise der Fall, wenn \fBxz\fP von einem Skript oder Dienstprogramm
+ausgeführt wird, zum Beispiel GNU \fBtar\fP(1):
+.RS
+.RS
+.PP
+.nf
+\f(CWXZ_OPT=\-2v tar caf foo.tar.xz foo\fP
+.fi
+.RE
+.RE
+.IP ""
+Skripte können \fBXZ_OPT\fP zum Beispiel zum Setzen skriptspezifischer
+Standard\-Kompressionsoptionen verwenden. Es ist weiterhin empfehlenswert,
+Benutzern die Außerkraftsetzung von \fBXZ_OPT\fP zu erlauben, falls dies
+angemessen ist. Zum Beispiel könnte in \fBsh\fP(1)\-Skripten Folgendes stehen:
+.RS
+.RS
+.PP
+.nf
+\f(CWXZ_OPT=${XZ_OPT\-"\-7e"}
+export XZ_OPT\fP
+.fi
+.RE
+.RE
+.
+.SH "KOMPATIBILITÄT ZU DEN LZMA\-UTILS"
+Die Befehlszeilensyntax von \fBxz\fP ist praktisch eine Obermenge der von
+\fBlzma\fP, \fBunlzma\fP und \fBlzcat\fP in den LZMA\-Utils der Versionen 4.32.x. In
+den meisten Fällen sollte es möglich sein, die LZMA\-Utils durch die XZ\-Utils
+zu ersetzen, ohne vorhandene Skripte ändern zu müssen. Dennoch gibt es
+einige Inkompatibilitäten, die manchmal Probleme verursachen können.
+.
+.SS "Voreinstellungsstufen zur Kompression"
+Die Nummerierung der Voreinstellungsstufen der Kompression ist in \fBxz\fP und
+den LZMA\-Utils unterschiedlich. Der wichtigste Unterschied ist die Zuweisung
+der Wörterbuchgrößen zu den verschiedenen Voreinstellungsstufen. Die
+Wörterbuchgröße ist etwa gleich dem Speicherbedarf bei der Dekompression.
+.RS
+.PP
+.TS
+tab(;);
+c c c
+c n n.
+Stufe;xz;LZMA\-Utils
+\-0;256 KiB;nicht verfügbar
+\-1;1 MiB;64 KiB
+\-2;2 MiB;1 MiB
+\-3;4 MiB;512 KiB
+\-4;4 MiB;1 MiB
+\-5;8 MiB;2 MiB
+\-6;8 MiB;4 MiB
+\-7;16 MiB;8 MiB
+\-8;32 MiB;16 MiB
+\-9;64 MiB;32 MiB
+.TE
+.RE
+.PP
+Die Unterschiede in der Wörterbuchgröße beeinflussen auch den Speicherbedarf
+bei der Kompression, aber es gibt noch einige andere Unterschiede zwischen
+den LZMA\-Utils und den XZ\-Utils, die die Kluft noch vergrößern:
+.RS
+.PP
+.TS
+tab(;);
+c c c
+c n n.
+Stufe;xz;LZMA\-Utils 4.32.x
+\-0;3 MiB;nicht verfügbar
+\-1;9 MiB;2 MiB
+\-2;17 MiB;12 MiB
+\-3;32 MiB;12 MiB
+\-4;48 MiB;16 MiB
+\-5;94 MiB;26 MiB
+\-6;94 MiB;45 MiB
+\-7;186 MiB;83 MiB
+\-8;370 MiB;159 MiB
+\-9;674 MiB;311 MiB
+.TE
+.RE
+.PP
+Die standardmäßige Voreinstellungsstufe in den LZMA\-Utils ist \fB\-7\fP, während
+diese in den XZ\-Utils \fB\-6\fP ist, daher verwenden beide standardmäßig ein 8
+MiB großes Wörterbuch.
+.
+.SS "Vor\- und Nachteile von .lzma\-Dateien als Datenströme"
+Die unkomprimierte Größe der Datei kann in den \fB.lzma\fP\-Headern gespeichert
+werden. Die LZMA\-Utils tun das beim Komprimieren gewöhnlicher Dateien. Als
+Alternative kann die unkomprimierte Größe als unbekannt markiert und eine
+Nutzdatenende\-Markierung (end\-of\-payload) verwendet werden, um anzugeben, wo
+der Dekompressor stoppen soll. Die LZMA\-Utils verwenden diese Methode, wenn
+die unkomprimierte Größe unbekannt ist, was beispielsweise in Pipes
+(Befehlsverkettungen) der Fall ist.
+.PP
+\fBxz\fP unterstützt die Dekompression von \fB.lzma\fP\-Dateien mit oder ohne
+Nutzdatenende\-Markierung, aber alle von \fBxz\fP erstellten \fB.lzma\fP\-Dateien
+verwenden diesen Nutzdatenende\-Markierung, wobei die unkomprimierte Größe in
+den \fB.lzma\fP\-Headern als unbekannt markiert wird. Das könnte in einigen
+unüblichen Situationen ein Problem sein. Zum Beispiel könnte ein
+\&\fB.lzma\fP\-Dekompressor in einem Gerät mit eingebettetem System nur mit
+Dateien funktionieren, deren unkomprimierte Größe bekannt ist. Falls Sie auf
+dieses Problem stoßen, müssen Sie die LZMA\-Utils oder das LZMA\-SDK
+verwenden, um \fB.lzma\fP\-Dateien mit bekannter unkomprimierter Größe zu
+erzeugen.
+.
+.SS "Nicht unterstützte .lzma\-Dateien"
+Das \fB.lzma\fP\-Format erlaubt \fIlc\fP\-Werte bis zu 8 und \fIlp\fP\-Werte bis zu
+4. Die LZMA\-Utils können Dateien mit beliebigem \fIlc\fP und \fIlp\fP
+dekomprimieren, aber erzeugen immer Dateien mit \fBlc=3\fP und \fBlp=0\fP. Das
+Erzeugen von Dateien mit anderem \fIlc\fP und \fIlp\fP ist mit \fBxz\fP und mit dem
+LZMA\-SDK möglich.
+.PP
+Die Implementation des LZMA\-Filters in liblzma setzt voraus, dass die Summe
+von \fIlc\fP und \fIlp\fP nicht größer als 4 ist. Daher können \fB.lzma\fP\-Dateien,
+welche diese Begrenzung überschreiten, mit \fBxz\fP nicht dekomprimiert werden.
+.PP
+Die LZMA\-Utils erzeugen nur \fB.lzma\fP\-Dateien mit einer Wörterbuchgröße von
+2^\fIn\fP (einer Zweierpotenz), aber akzeptieren Dateien mit einer beliebigen
+Wörterbuchgröße. Liblzma akzeptiert nur \fB.lzma\fP\-Dateien mit einer
+Wörterbuchgröße von 2^\fIn\fP oder 2^\fIn\fP + 2^(\fIn\fP\-1). Dies dient zum
+Verringern von Fehlalarmen beim Erkennen von \fB.lzma\fP\-Dateien.
+.PP
+Diese Einschränkungen sollten in der Praxis kein Problem sein, da praktisch
+alle \fB.lzma\fP\-Dateien mit Einstellungen komprimiert wurden, die Liblzma
+akzeptieren wird.
+.
+.SS "Angehängter Datenmüll"
+Bei der Dekompression ignorieren die LZMA\-Utils stillschweigend alles nach
+dem ersten \fB.lzma\fP\-Datenstrom. In den meisten Situationen ist das ein
+Fehler. Das bedeutet auch, dass die LZMA\-Utils die Dekompression verketteter
+\&\fB.lzma\fP\-Dateien nicht unterstützen.
+.PP
+Wenn nach dem ersten \fB.lzma\fP\-Datenstrom Daten verbleiben, erachtet \fBxz\fP
+die Datei als beschädigt, es sei denn, die Option \fB\-\-single\-stream\fP wurde
+verwendet. Dies könnte die Ausführung von Skripten beeinflussen, die davon
+ausgehen, dass angehängter Datenmüll ignoriert wird.
+.
+.SH ANMERKUNGEN
+.
+.SS "Die komprimierte Ausgabe kann variieren"
+Die exakte komprimierte Ausgabe, die aus der gleichen unkomprimierten
+Eingabedatei erzeugt wird, kann zwischen den Versionen der XZ\-Utils
+unterschiedlich sein, selbst wenn die Kompressionsoptionen identisch
+sind. Das kommt daher, weil der Kodierer verbessert worden sein könnte
+(hinsichtlich schnellerer oder besserer Kompression), ohne das Dateiformat
+zu beeinflussen. Die Ausgabe kann sogar zwischen verschiedenen Programmen
+der gleichen Version der XZ\-Utils variieren, wenn bei der Erstellung des
+Binärprogramms unterschiedliche Optionen verwendet wurden.
+.PP
+Sobald \fB\-\-rsyncable\fP implementiert wurde, bedeutet das, dass die sich
+ergebenden Dateien nicht notwendigerweise mit Rsync abgeglichen werden
+können, außer wenn die alte und neue Datei mit der gleichen \fBxz\fP\-Version
+erzeugt wurden. Das Problem kann beseitigt werden, wenn ein Teil der
+Encoder\-Implementierung eingefroren wird, um die mit Rsync abgleichbare
+Ausgabe über \fBxz\fP\-Versionsgrenzen hinweg stabil zu halten.
+.
+.SS "Eingebettete .xz\-Dekompressoren"
+Eingebettete \fB.xz\fP\-Dekompressor\-Implementierungen wie XZ Embedded
+unterstützen nicht unbedingt Dateien, die mit anderen Integritätsprüfungen
+(\fIPrüfung\fP\-Typen) als \fBnone\fP und \fBcrc32\fP erzeugt wurden. Da
+\fB\-\-check=crc64\fP die Voreinstellung ist, müssen Sie \fB\-\-check=none\fP oder
+\fB\-\-check=crc32\fP verwenden, wenn Sie Dateien für eingebettete Systeme
+erstellen.
+.PP
+Außerhalb eingebetteter Systeme unterstützen die Dekompressoren des
+\&\fB.xz\fP\-Formats alle \fIPrüfung\fP\-Typen oder sind mindestens in der Lage, die
+Datei zu dekomprimieren, ohne deren Integrität zu prüfen, wenn die bestimmte
+\fIPrüfung\fP nicht verfügbar ist.
+.PP
+XZ Embedded unterstützt BCJ\-Filter, aber nur mit dem vorgegebenen
+Startversatz.
+.
+.SH BEISPIELE
+.
+.SS Grundlagen
+Komprimiert die Datei \fIfoo\fP mit der Standard\-Kompressionsstufe (\fB\-6\fP) zu
+\fIfoo.xz\fP und entfernt \fIfoo\fP nach erfolgreicher Kompression:
+.RS
+.PP
+.nf
+\f(CWxz foo\fP
+.fi
+.RE
+.PP
+\fIbar.xz\fP in \fIbar\fP dekomprimieren und \fIbar.xz\fP selbst dann nicht löschen,
+wenn die Dekompression erfolgreich war:
+.RS
+.PP
+.nf
+\f(CWxz \-dk bar.xz\fP
+.fi
+.RE
+.PP
+\fIbaz.tar.xz\fP mit der Voreinstellung \fB\-4e\fP (\fB\-4 \-\-extreme\fP) erzeugen, was
+langsamer ist als beispielsweise die Vorgabe \fB\-6\fP, aber weniger Speicher
+für Kompression und Dekompression benötigt (48\ MiB beziehungsweise 5\ MiB):
+.RS
+.PP
+.nf
+\f(CWtar cf \- baz | xz \-4e > baz.tar.xz\fP
+.fi
+.RE
+.PP
+Eine Mischung aus komprimierten und unkomprimierten Dateien kann mit einem
+einzelnen Befehl dekomprimiert in die Standardausgabe geschrieben werden:
+.RS
+.PP
+.nf
+\f(CWxz \-dcf a.txt b.txt.xz c.txt d.txt.lzma > abcd.txt\fP
+.fi
+.RE
+.
+.SS "Parallele Kompression von vielen Dateien"
+Auf GNU\- und *BSD\-Systemen können \fBfind\fP(1) und \fBxargs\fP(1) zum
+Parallelisieren der Kompression vieler Dateien verwendet werden:
+.RS
+.PP
+.nf
+\f(CWfind . \-type f \e! \-name '*.xz' \-print0 \e
+    | xargs \-0r \-P4 \-n16 xz \-T1\fP
+.fi
+.RE
+.PP
+Die Option \fB\-P\fP von \fBxargs\fP(1) legt die Anzahl der parallelen
+\fBxz\fP\-Prozesse fest. Der beste Wert für die Option \fB\-n\fP hängt davon ab, wie
+viele Dateien komprimiert werden sollen. Wenn es sich nur um wenige Dateien
+handelt, sollte der Wert wahrscheinlich 1 sein; bei Zehntausenden von
+Dateien kann 100 oder noch mehr angemessener sein, um die Anzahl der
+\fBxz\fP\-Prozesse zu beschränken, die \fBxargs\fP(1) schließlich erzeugen wird.
+.PP
+Die Option \fB\-T1\fP für \fBxz\fP dient dazu, den Einzelthread\-Modus zu erzwingen,
+da \fBxargs\fP(1) zur Steuerung des Umfangs der Parallelisierung verwendet
+wird.
+.
+.SS Roboter\-Modus
+Berechnen, wie viel Byte nach der Kompression mehrerer Dateien insgesamt
+eingespart wurden:
+.RS
+.PP
+.nf
+\f(CWxz \-\-robot \-\-list *.xz | awk '/^totals/{print $5\-$4}'\fP
+.fi
+.RE
+.PP
+Ein Skript könnte abfragen wollen, ob es ein \fBxz\fP verwendet, das aktuell
+genug ist. Das folgende \fBsh\fP(1)\-Skript prüft, ob die Versionsnummer des
+Dienstprogramms \fBxz\fP mindestens 5.0.0 ist. Diese Methode ist zu alten
+Beta\-Versionen kompatibel, welche die Option \fB\-\-robot\fP nicht unterstützen:
+.RS
+.PP
+.nf
+\f(CWif ! eval "$(xz \-\-robot \-\-version 2> /dev/null)" ||
+        [ "$XZ_VERSION" \-lt 50000002 ]; then
+    echo "Ihre Version von Xz ist zu alt."
+fi
+unset XZ_VERSION LIBLZMA_VERSION\fP
+.fi
+.RE
+.PP
+Eine Speicherbedarfsbegrenzung für die Dekompression mit \fBXZ_OPT\fP setzen,
+aber eine bereits gesetzte Begrenzung nicht erhöhen:
+.RS
+.PP
+.nf
+\f(CWNEWLIM=$((123 << 20))  # 123 MiB
+OLDLIM=$(xz \-\-robot \-\-info\-memory | cut \-f3)
+if [ $OLDLIM \-eq 0 \-o $OLDLIM \-gt $NEWLIM ]; then
+    XZ_OPT="$XZ_OPT \-\-memlimit\-decompress=$NEWLIM"
+    export XZ_OPT
+fi\fP
+.fi
+.RE
+.
+.SS "Benutzerdefinierte Filterketten für die Kompression"
+Der einfachste Anwendungsfall für benutzerdefinierte Filterketten ist die
+Anpassung von LZMA2\-Voreinstellungsstufen. Das kann nützlich sein, weil die
+Voreinstellungen nur einen Teil der potenziell sinnvollen Kombinationen aus
+Kompressionseinstellungen abdecken.
+.PP
+Die KompCPU\-Spalten der Tabellen aus den Beschreibungen der Optionen \fB\-0\fP …
+\fB\-9\fP und \fB\-\-extreme\fP sind beim Anpassen der LZMA2\-Voreinstellungen
+nützlich. Diese sind die relevanten Teile aus diesen zwei Tabellen:
+.RS
+.PP
+.TS
+tab(;);
+c c
+n n.
+Voreinstellung;KompCPU
+\-0;0
+\-1;1
+\-2;2
+\-3;3
+\-4;4
+\-5;5
+\-6;6
+\-5e;7
+\-6e;8
+.TE
+.RE
+.PP
+Wenn Sie wissen, dass eine Datei für eine gute Kompression ein etwas
+größeres Wörterbuch benötigt (zum Beispiel 32 MiB), aber Sie sie schneller
+komprimieren wollen, als dies mit \fBxz \-8\fP geschehen würde, kann eine
+Voreinstellung mit einem niedrigen KompCPU\-Wert (zum Beispiel 1) dahingehend
+angepasst werden, ein größeres Wörterbuch zu verwenden:
+.RS
+.PP
+.nf
+\f(CWxz \-\-lzma2=preset=1,dict=32MiB foo.tar\fP
+.fi
+.RE
+.PP
+Mit bestimmten Dateien kann der obige Befehl schneller sein als \fBxz \-6\fP,
+wobei die Kompression deutlich besser wird. Dennoch muss betont werden, dass
+nur wenige Dateien von einem größeren Wörterbuch profitieren, wenn der
+KompCPU\-Wert niedrig bleibt. Der offensichtlichste Fall, in dem ein größeres
+Wörterbuch  sehr hilfreich sein kann, ist ein Archiv, das einander sehr
+ähnliche Dateien enthält, die jeweils wenigstens einige Megabyte groß
+sind. Das Wörterbuch muss dann deutlich größer sein als die einzelne Datei,
+damit LZMA2 den größtmöglichen Vorteil aus den Ähnlichkeiten der aufeinander
+folgenden Dateien zieht.
+.PP
+Wenn hoher Speicherbedarf für Kompression und Dekompression kein Problem ist
+und die zu komprimierende Datei mindestens einige Hundert Megabyte groß ist,
+kann es sinnvoll sein, ein noch größeres Wörterbuch zu verwenden, als die 64
+MiB, die mit \fBxz \-9\fP verwendet werden würden:
+.RS
+.PP
+.nf
+\f(CWxz \-vv \-\-lzma2=dict=192MiB big_foo.tar\fP
+.fi
+.RE
+.PP
+Die Verwendung von \fB\-vv\fP (\fB\-\-verbose \-\-verbose\fP) wie im obigen Beispiel
+kann nützlich sein, um den Speicherbedarf für Kompressor und Dekompressor zu
+sehen. Denken Sie daran, dass ein Wörterbuch, das größer als die
+unkomprimierte Datei ist, Speicherverschwendung wäre. Daher ist der obige
+Befehl für kleine Dateien nicht sinnvoll.
+.PP
+Manchmal spielt die Kompressionszeit keine Rolle, aber der Speicherbedarf
+bei der Dekompression muss gering gehalten werden, zum Beispiel um die Datei
+auf eingebetteten Systemen dekomprimieren zu können. Der folgende Befehl
+verwendet \fB\-6e\fP (\fB\-6 \-\-extreme\fP) als Basis und setzt die Wörterbuchgröße
+auf nur 64\ KiB. Die sich ergebende Datei kann mit XZ Embedded (aus diesem
+Grund ist dort \fB\-\-check=crc32\fP) mit nur etwa 100\ KiB Speicher
+dekomprimiert werden.
+.RS
+.PP
+.nf
+\f(CWxz \-\-check=crc32 \-\-lzma2=preset=6e,dict=64KiB foo\fP
+.fi
+.RE
+.PP
+Wenn Sie so viele Byte wie möglich herausquetschen wollen, kann die
+Anpassung der Anzahl der literalen Kontextbits (\fIlc\fP) und der Anzahl der
+Positionsbits (\fIpb\fP) manchmal hilfreich sein. Auch die Anpassung der Anzahl
+der literalen Positionsbits (\fIlp\fP) könnte helfen, aber üblicherweise sind
+\fIlc\fP und \fIpb\fP wichtiger. Wenn ein Quellcode\-Archiv zum Beispiel
+hauptsächlich ASCII\-Text enthält, könnte ein Aufruf wie der folgende eine
+etwas kleinere Datei (etwa 0,1\ %) ergeben als mit \fBxz \-6e\fP (versuchen Sie
+es auch \fBlc=4\fP):
+.RS
+.PP
+.nf
+\f(CWxz \-\-lzma2=preset=6e,pb=0,lc=4 Quellcode.tar\fP
+.fi
+.RE
+.PP
+Die Verwendung eines anderen Filters mit LZMA2 kann die Kompression bei
+verschiedenen Dateitypen verbessern. So könnten Sie eine gemeinsam genutzte
+Bibliothek der Architekturen x86\-32 oder x86\-64 mit dem BCJ\-Filter für x86
+komprimieren:
+.RS
+.PP
+.nf
+\f(CWxz \-\-x86 \-\-lzma2 libfoo.so\fP
+.fi
+.RE
+.PP
+Beachten Sie, dass die Reihenfolge der Filteroptionen von Bedeutung
+ist. Falls \fB\-\-x86\fP nach \fB\-\-lzma2\fP angegeben wird, gibt \fBxz\fP einen Fehler
+aus, weil nach LZMA2 kein weiterer Filter sein darf und auch weil der
+BCJ\-Filter für x86 nicht als letzter Filter in der Filterkette gesetzt
+werden darf.
+.PP
+Der Delta\-Filter zusammen mit LZMA2 kann bei Bitmap\-Bildern gute Ergebnisse
+liefern. Er sollte üblicherweise besser sein als PNG, welches zwar einige
+fortgeschrittene Filter als ein simples delta bietet, aber für die
+eigentliche Kompression »Deflate« verwendet.
+.PP
+Das Bild muss in einem unkomprimierten Format gespeichert werden, zum
+Beispiel als unkomprimiertes TIFF. Der Abstandsparameter des Delta\-Filters
+muss so gesetzt werden, dass er der Anzahl der Bytes pro Pixel im Bild
+entspricht. Zum Beispiel erfordert ein 24\-Bit\-RGB\-Bitmap \fBdist=3\fP, außerdem
+ist es gut, \fBpb=0\fP an LZMA2 zu übergeben, um die 3\-Byte\-Ausrichtung zu
+berücksichtigen:
+.RS
+.PP
+.nf
+\f(CWxz \-\-delta=dist=3 \-\-lzma2=pb=0 foo.tiff\fP
+.fi
+.RE
+.PP
+Wenn sich mehrere Bilder in einem einzelnen Archiv befinden (zum Beispiel\&
+\&\fB.tar\fP), funktioniert der Delta\-Filter damit auch, sofern alle Bilder im
+Archiv die gleiche Anzahl Bytes pro Pixel haben.
+.
+.SH "SIEHE AUCH"
+\fBxzdec\fP(1), \fBxzdiff\fP(1), \fBxzgrep\fP(1), \fBxzless\fP(1), \fBxzmore\fP(1),
+\fBgzip\fP(1), \fBbzip2\fP(1), \fB7z\fP(1)
+.PP
+XZ Utils: <https://tukaani.org/xz/>
+.br
+XZ Embedded: <https://tukaani.org/xz/embedded.html>
+.br
+LZMA\-SDK: <http://7\-zip.org/sdk.html>
diff --git a/po4a/man/de/xzdec.1 b/po4a/man/de/xzdec.1
new file mode 100644 (file)
index 0000000..91773b8
--- /dev/null
@@ -0,0 +1,88 @@
+.\"
+.\" Author: Lasse Collin
+.\"
+.\" This file has been put into the public domain.
+.\" You can do whatever you want with this file.
+.\"
+.\"*******************************************************************
+.\"
+.\" This file was generated with po4a. Translate the source file.
+.\"
+.\"*******************************************************************
+.TH XZDEC 1 "19. April 2017" Tukaani XZ\-Dienstprogramme
+.SH BEZEICHNUNG
+xzdec, lzmadec \- Kleine Dekompressoren für .xz und .lzma
+.SH ÜBERSICHT
+\fBxzdec\fP [\fIOption…\fP] [\fIDatei…\fP]
+.br
+\fBlzmadec\fP [\fIOption…\fP] [\fIDatei…\fP]
+.SH BESCHREIBUNG
+\fBxzdec\fP ist ein auf Liblzma basierendes Nur\-Dekompressionswerkzeug für
+\&\fB.xz\fP\-Dateien (und \fBnur\fP für \fB.xz\fP\-Dateien). \fBxzdec\fP ist als direkter
+Ersatz für \fBxz\fP(1) in jenen Situationen konzipiert, wo ein Skript \fBxz
+\-\-decompress \-\-stdout\fP (und eventuelle einige andere höufig genutzte
+Optionen) zum Dekomprimieren von \fB.xz\fP\-Dateien. \fBlzmadec\fP ist weitgehend
+identisch zu \fBxzdec\fP, mit der Ausnahme, dass \fBlzmadec\fP \fB.lzma\fP\-Dateien
+anstelle von \fB.xz\fP\-Dateien unterstützt.
+.PP
+Um die Größe der ausführbaren Datei zu reduzieren, unterstützt \fBxzdec\fP
+weder Multithreading noch Lokalisierung. Außerdem liest es keine Optionen
+aus den Umgebungsvariablen \fBXZ_DEFAULTS\fP und \fBXZ_OPT\fP. \fBxzdec\fP
+unterstützt keine zwischenzeitlichen Fortschrittsinformationen: Das Senden
+von \fBSIGINFO\fP an \fBxzdec\fP hat keine Auswirkungen, jedoch beendet \fBSIGUSR1\fP
+den Prozess, anstatt Fortschrittsinformationen anzuzeigen.
+.SH OPTIONEN
+.TP 
+\fB\-d\fP, \fB\-\-decompress\fP, \fB\-\-uncompress\fP
+ist zwecks Kompatibilität zu \fBxz\fP(1) vorhanden; wird ignoriert. \fBxzdec\fP
+unterstützt nur Dekompression.
+.TP 
+\fB\-k\fP, \fB\-\-keep\fP
+ist zwecks Kompatibilität zu \fBxz\fP(1) vorhanden; wird ignoriert. \fBxzdec\fP
+erzeugt oder entfernt niemals Dateien.
+.TP 
+\fB\-c\fP, \fB\-\-stdout\fP, \fB\-\-to\-stdout\fP
+ist zwecks Kompatibilität zu \fBxz\fP(1) vorhanden; wird ignoriert. \fBxzdec\fP
+schreibt die dekomprimierten Daten immer in die Standardausgabe.
+.TP 
+\fB\-q\fP, \fB\-\-quiet\fP
+hat bei einmaliger Angabe keine Wirkung, da \fBxzdec\fP niemals Warnungen oder
+sonstige Meldungen anzeigt. Wenn Sie dies zweimal angeben, werden
+Fehlermeldungen unterdrückt.
+.TP 
+\fB\-Q\fP, \fB\-\-no\-warn\fP
+ist zwecks Kompatibilität zu \fBxz\fP(1) vorhanden; wird ignoriert. \fBxzdec\fP
+verwendet niemals den Exit\-Status 2.
+.TP 
+\fB\-h\fP, \fB\-\-help\fP
+zeigt eine Hilfemeldung an und beendet das Programm erfolgreich.
+.TP 
+\fB\-V\fP, \fB\-\-version\fP
+zeigt die Versionsnummer von \fBxzdec\fP und liblzma an.
+.SH EXIT\-STATUS
+.TP 
+\fB0\fP
+Alles ist in Ordnung.
+.TP 
+\fB1\fP
+Ein Fehler ist aufgetreten.
+.PP
+\fBxzdec\fP gibt keine Warnmeldungen wie \fBxz\fP(1) aus, daher wird der
+Exit\-Status 2 von \fBxzdec\fP nicht verwendet.
+.SH ANMERKUNGEN
+Verwenden Sie \fBxz\fP(1) anstelle von \fBxzdec\fP oder \fBlzmadec\fP im normalen
+täglichen Gebrauch. \fBxzdec\fP oder \fBlzmadec\fP sind nur für Situationen
+gedacht, in denen ein kleinerer Dekompressor statt des voll ausgestatteten
+\fBxz\fP(1) wichtig ist.
+.PP
+\fBxzdec\fP und \fBlzmadec\fP sind nicht wirklich extrem klein. Die Größe kann
+durch Deaktivieren von Funktionen bei der Kompilierung von Liblzma weiter
+verringert werden, aber das sollte nicht für ausführbare Dateien getan
+werden, die in typischen Betriebssystemen ausgeliefert werden, außer in den
+Distributionen für eingebettete Systeme. Wenn Sie einen wirklich winzigen
+Dekompressor für \fB.xz\fP\-Dateien brauchen, sollten Sie stattdessen XZ
+Embedded in Erwägung ziehen.
+.SH "SIEHE AUCH"
+\fBxz\fP(1)
+.PP
+XZ Embedded: <https://tukaani.org/xz/embedded.html>
diff --git a/po4a/man/de/xzdiff.1 b/po4a/man/de/xzdiff.1
new file mode 100644 (file)
index 0000000..a06cdec
--- /dev/null
@@ -0,0 +1,44 @@
+.\"
+.\" Original zdiff.1 for gzip: Jean-loup Gailly
+.\"
+.\" Modifications for XZ Utils: Lasse Collin
+.\"                             Andrew Dudman
+.\"
+.\" License: GNU GPLv2+
+.\"
+.\"*******************************************************************
+.\"
+.\" This file was generated with po4a. Translate the source file.
+.\"
+.\"*******************************************************************
+.TH XZDIFF 1 "19. März 2011" Tukaani XZ\-Dienstprogramme
+.SH BEZEICHNUNG
+xzcmp, xzdiff, lzcmp, lzdiff \- komprimierte Dateien vergleichen
+.SH ÜBERSICHT
+\fBxzcmp\fP [\fIcmp\-Optionen\fP] \fIDatei1\fP [\fIDatei2\fP]
+.br
+\fBxzdiff\fP [\fIdiff\-Optionen\fP] \fIDatei1\fP [\fIDatei2\fP]
+.br
+\fBlzcmp\fP [\fIcmp\-Optionen\fP] \fIDatei1\fP [\fIDatei2\fP]
+.br
+\fBlzdiff\fP [\fIdiff\-Optionen\fP] \fIDatei1\fP [\fIDatei2\fP]
+.SH BESCHREIBUNG
+Die Dienstprogramme \fBxzcmp\fP und \fBxzdiff\fP führen die Programme \fBcmp\fP(1)
+beziehungsweise \fBdiff\fP(1) mit Dateien aus, die mittels \fBxz\fP(1),
+\fBlzma\fP(1), \fBgzip\fP(1), \fBbzip2\fP(1) oder \fBlzop\fP(1) komprimiert wurden. Alle
+angegebenen Optionen werden direkt an \fBcmp\fP(1) oder \fBdiff\fP(1)
+übergeben. Wird nur eine Datei angegeben, wird diese \fIDatei1\fP (die eine
+Endung entsprechend eines der unterstützten Kompressionsformate haben muss)
+mit der \fIDatei1\fP verglichen, von der die Kompressionsformat\-Endung entfernt
+wird. Werden zwei Dateien angegeben, dann werden deren Inhalte (falls nötig,
+unkomprimiert) an \fBcmp\fP(1) oder \fBdiff\fP(1) weitergeleitet. Der Exit\-Status
+von \fBcmp\fP(1) oder \fBdiff\fP(1) wird dabei bewahrt.
+.PP
+Die Namen \fBlzcmp\fP und \fBlzdiff\fP dienen der Abwärtskompatibilität zu den
+LZMA\-Dienstprogrammen.
+.SH "SIEHE AUCH"
+\fBcmp\fP(1), \fBdiff\fP(1), \fBxz\fP(1), \fBgzip\fP(1), \fBbzip2\fP(1), \fBlzop\fP(1),
+\fBzdiff\fP(1)
+.SH FEHLER
+Die Meldungen der Programme \fBcmp\fP(1) oder \fBdiff\fP(1) können auf temporäre
+Dateinamen verweisen anstatt auf die tatsächlich angegebenen Dateinamen.
diff --git a/po4a/man/de/xzgrep.1 b/po4a/man/de/xzgrep.1
new file mode 100644 (file)
index 0000000..64588c1
--- /dev/null
@@ -0,0 +1,51 @@
+.\"
+.\" Original zgrep.1 for gzip: Jean-loup Gailly
+.\"                            Charles Levert <charles@comm.polymtl.ca>
+.\"
+.\" Modifications for XZ Utils: Lasse Collin
+.\"
+.\" License: GNU GPLv2+
+.\"
+.\"*******************************************************************
+.\"
+.\" This file was generated with po4a. Translate the source file.
+.\"
+.\"*******************************************************************
+.TH XZGREP 1 "19. März 2011" Tukaani XZ\-Dienstprogramme
+.SH BEZEICHNUNG
+xzgrep \- komprimierte Dateien nach einem regulären Ausdruck durchsuchen
+.SH ÜBERSICHT
+\fBxzgrep\fP [\fIgrep\-Optionen\fP] [\fB\-e\fP] \fIMuster\fP \fIDateiname\fP …
+.br
+\fBxzegrep\fP …
+.br
+\fBxzfgrep\fP …
+.br
+\fBlzgrep\fP …
+.br
+\fBlzegrep\fP …
+.br
+\fBlzfgrep\fP …
+.SH BESCHREIBUNG
+\fBxzgrep\fP wendet \fBgrep\fP(1) auf \fIDateien\fP an, die entweder unkomprimiert
+oder mit \fBxz\fP(1), \fBlzma\fP(1), \fBgzip\fP(1), \fBbzip2\fP(1) oder \fBlzop\fP(1)
+komprimiert sein können. Alle angegebenen Optionen werden direkt an
+\fBgrep\fP(1) übergeben.
+.PP
+Wenn keine \fIDatei\fP angegeben ist, wird die Standardeingabe dekomprimiert
+(falls nötig) und an \fBgrep\fP übergeben. Beim Lesen aus der Standardeingabe
+keine Dateien unterstützt, die mit \fBgzip\fP(1), \fBbzip2\fP(1) oder \fBlzop\fP(1)
+komprimiert sind.
+.PP
+Wenn \fBxzgrep\fP als \fBxzegrep\fP oder \fBxzfgrep\fP aufgerufen wird, dann wird
+\fBegrep\fP(1) oder \fBfgrep\fP(1) anstelle von \fBgrep\fP(1) verwendet. Genauso
+verhalten sich die Befehle \fBlzgrep\fP, \fBlzegrep\fP und \fBlzfgrep\fP, die die
+Abwärtskompatibilität zu den LZMA\-Dienstprogrammen gewährleisten.
+.PP
+.SH UMGEBUNGSVARIABLEN
+.TP 
+\fBGREP\fP
+Wenn die Umgebungsvariable \fBGREP\fP gesetzt ist, verwendet \fBxzgrep\fP deren
+Inhalt anstelle von \fBgrep\fP(1), \fBegrep\fP(1) oder \fBfgrep\fP(1).
+.SH "SIEHE AUCH"
+\fBgrep\fP(1), \fBxz\fP(1), \fBgzip\fP(1), \fBbzip2\fP(1), \fBlzop\fP(1), \fBzgrep\fP(1)
diff --git a/po4a/man/de/xzless.1 b/po4a/man/de/xzless.1
new file mode 100644 (file)
index 0000000..fdbad59
--- /dev/null
@@ -0,0 +1,47 @@
+.\"
+.\" Authors: Andrew Dudman
+.\"          Lasse Collin
+.\"
+.\" This file has been put into the public domain.
+.\" You can do whatever you want with this file.
+.\"
+.\" (Note that this file is not based on gzip's zless.1.)
+.\"
+.\"*******************************************************************
+.\"
+.\" This file was generated with po4a. Translate the source file.
+.\"
+.\"*******************************************************************
+.TH XZLESS 1 "27. September 2010" Tukaani XZ\-Dienstprogramme
+.SH BEZEICHNUNG
+xzless, lzless \- mit xz oder lzma komprimierte (Text\-)Dateien betrachten
+.SH ÜBERSICHT
+\fBxzless\fP [\fIDatei\fP …]
+.br
+\fBlzless\fP [\fIDatei\fP …]
+.SH BESCHREIBUNG
+\fBxzless\fP ist ein Filter, der Text aus komprimierten Dateien in einem
+Terminal anzeigt. Es funktioniert mit Dateien, die mit \fBxz\fP(1) oder
+\fBlzma\fP(1) komprimiert sind. Falls keine \fIfiles\fP angegeben sind, liest
+\fBxzless\fP aus der Standardeingabe.
+.PP
+\fBxzless\fP verwendet \fBless\fP(1) zur Darstellung der Ausgabe. Im Gegensatz zu
+\fBxzmore\fP können Sie das zu verwendende Textanzeigeprogramm nicht durch
+Setzen einer Umgebungsvariable ändern. Die Befehle basieren auf \fBmore\fP(1)
+und \fBvi\fP(1) und ermöglichen Vorwärts\- und Rückwärtssprünge sowie
+Suchvorgänge. In der Handbuchseite zu \fBless\fP(1) finden Sie weiter
+Information.
+.PP
+Der Befehl \fBlzless\fP dient der Abwärtskompatibilität zu den
+LZMA\-Dienstprogrammen.
+.SH UMGEBUNGSVARIABLEN
+.TP 
+\fBLESSMETACHARS\fP
+Dies enthält eine Zeichenliste mit Bezug zur Shell. Wenn diese Variable
+nicht bereits gesetzt ist, wird sie durch \fBxzless\fP gesetzt.
+.TP 
+\fBLESSOPEN\fP
+Dies ist auf die Befehlszeile zum Aufruf von \fBxz\fP(1) gesetzt, die zur
+Vorverarbeitung der Eingabedateien für \fBless\fP(1) nötig ist.
+.SH "SIEHE AUCH"
+\fBless\fP(1), \fBxz\fP(1), \fBxzmore\fP(1), \fBzless\fP(1)
diff --git a/po4a/man/de/xzmore.1 b/po4a/man/de/xzmore.1
new file mode 100644 (file)
index 0000000..511a37b
--- /dev/null
@@ -0,0 +1,40 @@
+.\"
+.\" Original zdiff.1 for gzip: Jean-loup Gailly
+.\" Modifications for XZ Utils: Lasse Collin
+.\"
+.\" License: GNU GPLv2+
+.\"
+.\"*******************************************************************
+.\"
+.\" This file was generated with po4a. Translate the source file.
+.\"
+.\"*******************************************************************
+.TH XZMORE 1 "30. Juni 2013" Tukaani XZ\-Dienstprogramme
+.SH BEZEICHNUNG
+xzmore, lzmore \- mit xz oder lzma komprimierte (Text\-)Dateien lesen
+.SH ÜBERSICHT
+\fBxzmore\fP [\fIDatei …\fP]
+.br
+\fBlzmore\fP [\fIDatei …\fP]
+.SH BESCHREIBUNG
+\fBxzmore\fP ist ein Filter zur seitenweisen Anzeige von Textdateien in einem
+Terminal, die mit \fBxz\fP(1) oder \fBlzma\fP(1) komprimiert wurden.
+.PP
+Um ein anderes Textanzeigeprogramm als den voreingestellten \fBmore\fP zu
+verwenden, setzen Sie die Umgebungsvariable \fBPAGER\fP auf das gewünschte
+Programm. Der Name \fBlzmore\fP dient der Abwärtskompatibilität zu den
+LZMA\-Dienstprogrammen.
+.TP 
+\fBe\fP oder \fBq\fP
+Wenn die Zeile \-\-Mehr\-\-(Nächste Datei: \fIDatei\fP) angezeigt wird, wird
+\fBxzmore\fP mit diesem Befehl beendet.
+.TP 
+\fBs\fP
+Wenn die Zeile \-\-Mehr\-\-(Nächste Datei: \fIDatei\fP) angezeigt wird, springt
+\fBxzmore\fP zur nächsten Datei und zeigt diese an.
+.PP
+Eine Liste der bei der Betrachtung von Dateiinhalten verfügbaren
+Tastaturbefehle finden Sie in der Handbuchseite des verwendeten
+Textanzeigeprogramms, meist \fBmore\fP(1).
+.SH "SIEHE AUCH"
+\fBmore\fP(1), \fBxz\fP(1), \fBxzless\fP(1), \fBzmore\fP(1)
diff --git a/po4a/po4a.conf b/po4a/po4a.conf
new file mode 100644 (file)
index 0000000..2d4d742
--- /dev/null
@@ -0,0 +1,14 @@
+# To add a new language, add it to po4a_langs and run "update-po"
+# to get a new .po file. After translating the .po file, run
+# "update-po" again to generate the translated man pages.
+
+[po4a_langs] de
+[po4a_paths] xz-man.pot $lang:$lang.po
+
+[type: man] ../src/xz/xz.1              $lang:man/$lang/xz.1
+[type: man] ../src/xzdec/xzdec.1        $lang:man/$lang/xzdec.1
+[type: man] ../src/lzmainfo/lzmainfo.1  $lang:man/$lang/lzmainfo.1
+[type: man] ../src/scripts/xzdiff.1     $lang:man/$lang/xzdiff.1
+[type: man] ../src/scripts/xzgrep.1     $lang:man/$lang/xzgrep.1
+[type: man] ../src/scripts/xzless.1     $lang:man/$lang/xzless.1
+[type: man] ../src/scripts/xzmore.1     $lang:man/$lang/xzmore.1
diff --git a/po4a/update-po b/po4a/update-po
new file mode 100755 (executable)
index 0000000..c07af92
--- /dev/null
@@ -0,0 +1,45 @@
+#!/bin/sh
+#
+#############################################################################
+#
+# Updates xz-man.pot and the *.po files, and generates translated man pages.
+# These are done using the program po4a. If po4a is missing, it is still
+# possible to build the package without translated man pages.
+#
+#############################################################################
+#
+# Author: Lasse Collin
+#
+# This file has been put into the public domain.
+# You can do whatever you want with this file.
+#
+#############################################################################
+
+if type po4a > /dev/null 2>&1; then
+       :
+else
+       echo "po4a/update-po: The program 'po4a' was not found." >&2
+       echo "po4a/update-po: Translated man pages were not generated." >&2
+       exit 1
+fi
+
+if test ! -f po4a.conf; then
+       cd `dirname "$0"` || exit 1
+       if test ! -f po4a.conf; then
+               echo "update-po: Error: Cannot find po4a.conf." >&2
+               exit 1
+       fi
+fi
+
+PACKAGE_VERSION=`cd .. && sh build-aux/version.sh` || exit 1
+
+# Using --force to get up-to-date version numbers in the output files
+# when nothing else has changed. This makes it slower but it's fine
+# as long as this isn't run every time when "make" is run at the
+# top level directory. (po4a isn't super-fast even without --force).
+set -x
+po4a --force --verbose \
+       --package-name="XZ Utils" \
+       --package-version="$PACKAGE_VERSION" \
+       --copyright-holder="This file is put in the public domain." \
+       po4a.conf
diff --git a/po4a/xz-man.pot b/po4a/xz-man.pot
new file mode 100644 (file)
index 0000000..a35ad7f
--- /dev/null
@@ -0,0 +1,4394 @@
+# SOME DESCRIPTIVE TITLE
+# Copyright (C) YEAR This file is put in the public domain.
+# This file is distributed under the same license as the XZ Utils package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: XZ Utils 5.2.5\n"
+"POT-Creation-Date: 2020-03-17 16:31+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=CHARSET\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. type: TH
+#: ../src/xz/xz.1:8
+#, no-wrap
+msgid "XZ"
+msgstr ""
+
+#. type: TH
+#: ../src/xz/xz.1:8
+#, no-wrap
+msgid "2020-02-01"
+msgstr ""
+
+#. type: TH
+#: ../src/xz/xz.1:8 ../src/xzdec/xzdec.1:7 ../src/lzmainfo/lzmainfo.1:7 ../src/scripts/xzdiff.1:9 ../src/scripts/xzgrep.1:9 ../src/scripts/xzless.1:10 ../src/scripts/xzmore.1:7
+#, no-wrap
+msgid "Tukaani"
+msgstr ""
+
+#. type: TH
+#: ../src/xz/xz.1:8 ../src/xzdec/xzdec.1:7 ../src/lzmainfo/lzmainfo.1:7 ../src/scripts/xzdiff.1:9 ../src/scripts/xzgrep.1:9 ../src/scripts/xzless.1:10 ../src/scripts/xzmore.1:7
+#, no-wrap
+msgid "XZ Utils"
+msgstr ""
+
+#. type: SH
+#: ../src/xz/xz.1:10 ../src/xzdec/xzdec.1:8 ../src/lzmainfo/lzmainfo.1:8 ../src/scripts/xzdiff.1:10 ../src/scripts/xzgrep.1:10 ../src/scripts/xzless.1:11 ../src/scripts/xzmore.1:8
+#, no-wrap
+msgid "NAME"
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:12
+msgid ""
+"xz, unxz, xzcat, lzma, unlzma, lzcat - Compress or decompress .xz and .lzma "
+"files"
+msgstr ""
+
+#. type: SH
+#: ../src/xz/xz.1:13 ../src/xzdec/xzdec.1:10 ../src/lzmainfo/lzmainfo.1:10 ../src/scripts/xzdiff.1:12 ../src/scripts/xzgrep.1:12 ../src/scripts/xzless.1:13 ../src/scripts/xzmore.1:10
+#, no-wrap
+msgid "SYNOPSIS"
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:17
+msgid "B<xz> [I<option...>] [I<file...>]"
+msgstr ""
+
+#. type: SH
+#: ../src/xz/xz.1:18
+#, no-wrap
+msgid "COMMAND ALIASES"
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:22
+msgid "B<unxz> is equivalent to B<xz --decompress>."
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:26
+msgid "B<xzcat> is equivalent to B<xz --decompress --stdout>."
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:30
+msgid "B<lzma> is equivalent to B<xz --format=lzma>."
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:34
+msgid "B<unlzma> is equivalent to B<xz --format=lzma --decompress>."
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:38
+msgid "B<lzcat> is equivalent to B<xz --format=lzma --decompress --stdout>."
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:50
+msgid ""
+"When writing scripts that need to decompress files, it is recommended to "
+"always use the name B<xz> with appropriate arguments (B<xz -d> or B<xz -dc>)  "
+"instead of the names B<unxz> and B<xzcat>."
+msgstr ""
+
+#. type: SH
+#: ../src/xz/xz.1:51 ../src/xzdec/xzdec.1:18 ../src/lzmainfo/lzmainfo.1:15 ../src/scripts/xzdiff.1:24 ../src/scripts/xzgrep.1:33 ../src/scripts/xzless.1:19 ../src/scripts/xzmore.1:16
+#, no-wrap
+msgid "DESCRIPTION"
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:65
+msgid ""
+"B<xz> is a general-purpose data compression tool with command line syntax "
+"similar to B<gzip>(1)  and B<bzip2>(1).  The native file format is the "
+"B<.xz> format, but the legacy B<.lzma> format used by LZMA Utils and raw "
+"compressed streams with no container format headers are also supported."
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:87
+msgid ""
+"B<xz> compresses or decompresses each I<file> according to the selected "
+"operation mode.  If no I<files> are given or I<file> is B<->, B<xz> reads "
+"from standard input and writes the processed data to standard output.  B<xz> "
+"will refuse (display an error and skip the I<file>)  to write compressed "
+"data to standard output if it is a terminal.  Similarly, B<xz> will refuse "
+"to read compressed data from standard input if it is a terminal."
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:97
+msgid ""
+"Unless B<--stdout> is specified, I<files> other than B<-> are written to a "
+"new file whose name is derived from the source I<file> name:"
+msgstr ""
+
+#. type: IP
+#: ../src/xz/xz.1:97 ../src/xz/xz.1:103 ../src/xz/xz.1:127 ../src/xz/xz.1:132 ../src/xz/xz.1:135 ../src/xz/xz.1:138 ../src/xz/xz.1:154 ../src/xz/xz.1:395 ../src/xz/xz.1:398 ../src/xz/xz.1:405 ../src/xz/xz.1:621 ../src/xz/xz.1:623 ../src/xz/xz.1:722 ../src/xz/xz.1:733 ../src/xz/xz.1:742 ../src/xz/xz.1:750 ../src/xz/xz.1:965 ../src/xz/xz.1:974 ../src/xz/xz.1:986 ../src/xz/xz.1:1552 ../src/xz/xz.1:1558 ../src/xz/xz.1:1674 ../src/xz/xz.1:1678 ../src/xz/xz.1:1681 ../src/xz/xz.1:1684 ../src/xz/xz.1:1688 ../src/xz/xz.1:1695 ../src/xz/xz.1:1697
+#, no-wrap
+msgid "\\(bu"
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:103
+msgid ""
+"When compressing, the suffix of the target file format (B<.xz> or B<.lzma>)  "
+"is appended to the source filename to get the target filename."
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:117
+msgid ""
+"When decompressing, the B<.xz> or B<.lzma> suffix is removed from the "
+"filename to get the target filename.  B<xz> also recognizes the suffixes "
+"B<.txz> and B<.tlz>, and replaces them with the B<.tar> suffix."
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:121
+msgid ""
+"If the target file already exists, an error is displayed and the I<file> is "
+"skipped."
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:127
+msgid ""
+"Unless writing to standard output, B<xz> will display a warning and skip the "
+"I<file> if any of the following applies:"
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:132
+msgid ""
+"I<File> is not a regular file.  Symbolic links are not followed, and thus "
+"they are not considered to be regular files."
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:135
+msgid "I<File> has more than one hard link."
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:138
+msgid "I<File> has setuid, setgid, or sticky bit set."
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:154
+msgid ""
+"The operation mode is set to compress and the I<file> already has a suffix "
+"of the target file format (B<.xz> or B<.txz> when compressing to the B<.xz> "
+"format, and B<.lzma> or B<.tlz> when compressing to the B<.lzma> format)."
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:163
+msgid ""
+"The operation mode is set to decompress and the I<file> doesn't have a "
+"suffix of any of the supported file formats (B<.xz>, B<.txz>, B<.lzma>, or "
+"B<.tlz>)."
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:178
+msgid ""
+"After successfully compressing or decompressing the I<file>, B<xz> copies "
+"the owner, group, permissions, access time, and modification time from the "
+"source I<file> to the target file.  If copying the group fails, the "
+"permissions are modified so that the target file doesn't become accessible "
+"to users who didn't have permission to access the source I<file>.  B<xz> "
+"doesn't support copying other metadata like access control lists or extended "
+"attributes yet."
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:187
+msgid ""
+"Once the target file has been successfully closed, the source I<file> is "
+"removed unless B<--keep> was specified.  The source I<file> is never removed "
+"if the output is written to standard output."
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:199
+msgid ""
+"Sending B<SIGINFO> or B<SIGUSR1> to the B<xz> process makes it print "
+"progress information to standard error.  This has only limited use since "
+"when standard error is a terminal, using B<--verbose> will display an "
+"automatically updating progress indicator."
+msgstr ""
+
+#. type: SS
+#: ../src/xz/xz.1:200
+#, no-wrap
+msgid "Memory usage"
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:216
+msgid ""
+"The memory usage of B<xz> varies from a few hundred kilobytes to several "
+"gigabytes depending on the compression settings.  The settings used when "
+"compressing a file determine the memory requirements of the decompressor.  "
+"Typically the decompressor needs 5\\ % to 20\\ % of the amount of memory "
+"that the compressor needed when creating the file.  For example, "
+"decompressing a file created with B<xz -9> currently requires 65\\ MiB of "
+"memory.  Still, it is possible to have B<.xz> files that require several "
+"gigabytes of memory to decompress."
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:228
+msgid ""
+"Especially users of older systems may find the possibility of very large "
+"memory usage annoying.  To prevent uncomfortable surprises, B<xz> has a "
+"built-in memory usage limiter, which is disabled by default.  While some "
+"operating systems provide ways to limit the memory usage of processes, "
+"relying on it wasn't deemed to be flexible enough (e.g. using B<ulimit>(1)  "
+"to limit virtual memory tends to cripple B<mmap>(2))."
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:248
+msgid ""
+"The memory usage limiter can be enabled with the command line option "
+"B<--memlimit=>I<limit>.  Often it is more convenient to enable the limiter "
+"by default by setting the environment variable B<XZ_DEFAULTS>, e.g.\\& "
+"B<XZ_DEFAULTS=--memlimit=150MiB>.  It is possible to set the limits "
+"separately for compression and decompression by using "
+"B<--memlimit-compress=>I<limit> and B<--memlimit-decompress=>I<limit>.  "
+"Using these two options outside B<XZ_DEFAULTS> is rarely useful because a "
+"single run of B<xz> cannot do both compression and decompression and "
+"B<--memlimit=>I<limit> (or B<-M> I<limit>)  is shorter to type on the "
+"command line."
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:265
+msgid ""
+"If the specified memory usage limit is exceeded when decompressing, B<xz> "
+"will display an error and decompressing the file will fail.  If the limit is "
+"exceeded when compressing, B<xz> will try to scale the settings down so that "
+"the limit is no longer exceeded (except when using B<--format=raw> or "
+"B<--no-adjust>).  This way the operation won't fail unless the limit is very "
+"small.  The scaling of the settings is done in steps that don't match the "
+"compression level presets, e.g. if the limit is only slightly less than the "
+"amount required for B<xz -9>, the settings will be scaled down only a "
+"little, not all the way down to B<xz -8>."
+msgstr ""
+
+#. type: SS
+#: ../src/xz/xz.1:266
+#, no-wrap
+msgid "Concatenation and padding with .xz files"
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:274
+msgid ""
+"It is possible to concatenate B<.xz> files as is.  B<xz> will decompress "
+"such files as if they were a single B<.xz> file."
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:283
+msgid ""
+"It is possible to insert padding between the concatenated parts or after the "
+"last part.  The padding must consist of null bytes and the size of the "
+"padding must be a multiple of four bytes.  This can be useful e.g. if the "
+"B<.xz> file is stored on a medium that measures file sizes in 512-byte "
+"blocks."
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:287
+msgid ""
+"Concatenation and padding are not allowed with B<.lzma> files or raw "
+"streams."
+msgstr ""
+
+#. type: SH
+#: ../src/xz/xz.1:288 ../src/xzdec/xzdec.1:61
+#, no-wrap
+msgid "OPTIONS"
+msgstr ""
+
+#. type: SS
+#: ../src/xz/xz.1:290
+#, no-wrap
+msgid "Integer suffixes and special values"
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:294
+msgid ""
+"In most places where an integer argument is expected, an optional suffix is "
+"supported to easily indicate large integers.  There must be no space between "
+"the integer and the suffix."
+msgstr ""
+
+#. type: TP
+#: ../src/xz/xz.1:294
+#, no-wrap
+msgid "B<KiB>"
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:305
+msgid ""
+"Multiply the integer by 1,024 (2^10).  B<Ki>, B<k>, B<kB>, B<K>, and B<KB> "
+"are accepted as synonyms for B<KiB>."
+msgstr ""
+
+#. type: TP
+#: ../src/xz/xz.1:305
+#, no-wrap
+msgid "B<MiB>"
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:315
+msgid ""
+"Multiply the integer by 1,048,576 (2^20).  B<Mi>, B<m>, B<M>, and B<MB> are "
+"accepted as synonyms for B<MiB>."
+msgstr ""
+
+#. type: TP
+#: ../src/xz/xz.1:315
+#, no-wrap
+msgid "B<GiB>"
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:325
+msgid ""
+"Multiply the integer by 1,073,741,824 (2^30).  B<Gi>, B<g>, B<G>, and B<GB> "
+"are accepted as synonyms for B<GiB>."
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:330
+msgid ""
+"The special value B<max> can be used to indicate the maximum integer value "
+"supported by the option."
+msgstr ""
+
+#. type: SS
+#: ../src/xz/xz.1:331
+#, no-wrap
+msgid "Operation mode"
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:334
+msgid "If multiple operation mode options are given, the last one takes effect."
+msgstr ""
+
+#. type: TP
+#: ../src/xz/xz.1:334
+#, no-wrap
+msgid "B<-z>, B<--compress>"
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:343
+msgid ""
+"Compress.  This is the default operation mode when no operation mode option "
+"is specified and no other operation mode is implied from the command name "
+"(for example, B<unxz> implies B<--decompress>)."
+msgstr ""
+
+#. type: TP
+#: ../src/xz/xz.1:343 ../src/xzdec/xzdec.1:62
+#, no-wrap
+msgid "B<-d>, B<--decompress>, B<--uncompress>"
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:346
+msgid "Decompress."
+msgstr ""
+
+#. type: TP
+#: ../src/xz/xz.1:346
+#, no-wrap
+msgid "B<-t>, B<--test>"
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:355
+msgid ""
+"Test the integrity of compressed I<files>.  This option is equivalent to "
+"B<--decompress --stdout> except that the decompressed data is discarded "
+"instead of being written to standard output.  No files are created or "
+"removed."
+msgstr ""
+
+#. type: TP
+#: ../src/xz/xz.1:355
+#, no-wrap
+msgid "B<-l>, B<--list>"
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:364
+msgid ""
+"Print information about compressed I<files>.  No uncompressed output is "
+"produced, and no files are created or removed.  In list mode, the program "
+"cannot read the compressed data from standard input or from other unseekable "
+"sources."
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:379
+msgid ""
+"The default listing shows basic information about I<files>, one file per "
+"line.  To get more detailed information, use also the B<--verbose> option.  "
+"For even more information, use B<--verbose> twice, but note that this may be "
+"slow, because getting all the extra information requires many seeks.  The "
+"width of verbose output exceeds 80 characters, so piping the output to "
+"e.g.\\& B<less\\ -S> may be convenient if the terminal isn't wide enough."
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:386
+msgid ""
+"The exact output may vary between B<xz> versions and different locales.  For "
+"machine-readable output, B<--robot --list> should be used."
+msgstr ""
+
+#. type: SS
+#: ../src/xz/xz.1:387
+#, no-wrap
+msgid "Operation modifiers"
+msgstr ""
+
+#. type: TP
+#: ../src/xz/xz.1:388 ../src/xzdec/xzdec.1:69
+#, no-wrap
+msgid "B<-k>, B<--keep>"
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:391
+msgid "Don't delete the input files."
+msgstr ""
+
+#. type: TP
+#: ../src/xz/xz.1:391
+#, no-wrap
+msgid "B<-f>, B<--force>"
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:394
+msgid "This option has several effects:"
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:398
+msgid ""
+"If the target file already exists, delete it before compressing or "
+"decompressing."
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:405
+msgid ""
+"Compress or decompress even if the input is a symbolic link to a regular "
+"file, has more than one hard link, or has the setuid, setgid, or sticky bit "
+"set.  The setuid, setgid, and sticky bits are not copied to the target file."
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:430
+msgid ""
+"When used with B<--decompress> B<--stdout> and B<xz> cannot recognize the "
+"type of the source file, copy the source file as is to standard output.  "
+"This allows B<xzcat> B<--force> to be used like B<cat>(1)  for files that "
+"have not been compressed with B<xz>.  Note that in future, B<xz> might "
+"support new compressed file formats, which may make B<xz> decompress more "
+"types of files instead of copying them as is to standard output.  "
+"B<--format=>I<format> can be used to restrict B<xz> to decompress only a "
+"single file format."
+msgstr ""
+
+#. type: TP
+#: ../src/xz/xz.1:431 ../src/xzdec/xzdec.1:76
+#, no-wrap
+msgid "B<-c>, B<--stdout>, B<--to-stdout>"
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:437
+msgid ""
+"Write the compressed or decompressed data to standard output instead of a "
+"file.  This implies B<--keep>."
+msgstr ""
+
+#. type: TP
+#: ../src/xz/xz.1:437
+#, no-wrap
+msgid "B<--single-stream>"
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:446
+msgid ""
+"Decompress only the first B<.xz> stream, and silently ignore possible "
+"remaining input data following the stream.  Normally such trailing garbage "
+"makes B<xz> display an error."
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:455
+msgid ""
+"B<xz> never decompresses more than one stream from B<.lzma> files or raw "
+"streams, but this option still makes B<xz> ignore the possible trailing data "
+"after the B<.lzma> file or raw stream."
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:460
+msgid ""
+"This option has no effect if the operation mode is not B<--decompress> or "
+"B<--test>."
+msgstr ""
+
+#. type: TP
+#: ../src/xz/xz.1:460
+#, no-wrap
+msgid "B<--no-sparse>"
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:472
+msgid ""
+"Disable creation of sparse files.  By default, if decompressing into a "
+"regular file, B<xz> tries to make the file sparse if the decompressed data "
+"contains long sequences of binary zeros.  It also works when writing to "
+"standard output as long as standard output is connected to a regular file "
+"and certain additional conditions are met to make it safe.  Creating sparse "
+"files may save disk space and speed up the decompression by reducing the "
+"amount of disk I/O."
+msgstr ""
+
+#. type: TP
+#: ../src/xz/xz.1:472
+#, no-wrap
+msgid "B<-S> I<.suf>, B<--suffix=>I<.suf>"
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:484
+msgid ""
+"When compressing, use I<.suf> as the suffix for the target file instead of "
+"B<.xz> or B<.lzma>.  If not writing to standard output and the source file "
+"already has the suffix I<.suf>, a warning is displayed and the file is "
+"skipped."
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:497
+msgid ""
+"When decompressing, recognize files with the suffix I<.suf> in addition to "
+"files with the B<.xz>, B<.txz>, B<.lzma>, or B<.tlz> suffix.  If the source "
+"file has the suffix I<.suf>, the suffix is removed to get the target "
+"filename."
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:503
+msgid ""
+"When compressing or decompressing raw streams (B<--format=raw>), the suffix "
+"must always be specified unless writing to standard output, because there is "
+"no default suffix for raw streams."
+msgstr ""
+
+#. type: TP
+#: ../src/xz/xz.1:503
+#, no-wrap
+msgid "B<--files>[B<=>I<file>]"
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:517
+msgid ""
+"Read the filenames to process from I<file>; if I<file> is omitted, filenames "
+"are read from standard input.  Filenames must be terminated with the newline "
+"character.  A dash (B<->)  is taken as a regular filename; it doesn't mean "
+"standard input.  If filenames are given also as command line arguments, they "
+"are processed before the filenames read from I<file>."
+msgstr ""
+
+#. type: TP
+#: ../src/xz/xz.1:517
+#, no-wrap
+msgid "B<--files0>[B<=>I<file>]"
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:521
+msgid ""
+"This is identical to B<--files>[B<=>I<file>] except that each filename must "
+"be terminated with the null character."
+msgstr ""
+
+#. type: SS
+#: ../src/xz/xz.1:522
+#, no-wrap
+msgid "Basic file format and compression options"
+msgstr ""
+
+#. type: TP
+#: ../src/xz/xz.1:523
+#, no-wrap
+msgid "B<-F> I<format>, B<--format=>I<format>"
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:528
+msgid "Specify the file I<format> to compress or decompress:"
+msgstr ""
+
+#. type: TP
+#: ../src/xz/xz.1:529
+#, no-wrap
+msgid "B<auto>"
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:541
+msgid ""
+"This is the default.  When compressing, B<auto> is equivalent to B<xz>.  "
+"When decompressing, the format of the input file is automatically detected.  "
+"Note that raw streams (created with B<--format=raw>)  cannot be "
+"auto-detected."
+msgstr ""
+
+#. type: TP
+#: ../src/xz/xz.1:541
+#, no-wrap
+msgid "B<xz>"
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:548
+msgid ""
+"Compress to the B<.xz> file format, or accept only B<.xz> files when "
+"decompressing."
+msgstr ""
+
+#. type: TP
+#: ../src/xz/xz.1:548
+#, no-wrap
+msgid "B<lzma>, B<alone>"
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:558
+msgid ""
+"Compress to the legacy B<.lzma> file format, or accept only B<.lzma> files "
+"when decompressing.  The alternative name B<alone> is provided for backwards "
+"compatibility with LZMA Utils."
+msgstr ""
+
+#. type: TP
+#: ../src/xz/xz.1:558
+#, no-wrap
+msgid "B<raw>"
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:566
+msgid ""
+"Compress or uncompress a raw stream (no headers).  This is meant for "
+"advanced users only.  To decode raw streams, you need use B<--format=raw> "
+"and explicitly specify the filter chain, which normally would have been "
+"stored in the container headers."
+msgstr ""
+
+#. type: TP
+#: ../src/xz/xz.1:567
+#, no-wrap
+msgid "B<-C> I<check>, B<--check=>I<check>"
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:582
+msgid ""
+"Specify the type of the integrity check.  The check is calculated from the "
+"uncompressed data and stored in the B<.xz> file.  This option has an effect "
+"only when compressing into the B<.xz> format; the B<.lzma> format doesn't "
+"support integrity checks.  The integrity check (if any) is verified when the "
+"B<.xz> file is decompressed."
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:586
+msgid "Supported I<check> types:"
+msgstr ""
+
+#. type: TP
+#: ../src/xz/xz.1:587
+#, no-wrap
+msgid "B<none>"
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:593
+msgid ""
+"Don't calculate an integrity check at all.  This is usually a bad idea.  "
+"This can be useful when integrity of the data is verified by other means "
+"anyway."
+msgstr ""
+
+#. type: TP
+#: ../src/xz/xz.1:593
+#, no-wrap
+msgid "B<crc32>"
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:596
+msgid "Calculate CRC32 using the polynomial from IEEE-802.3 (Ethernet)."
+msgstr ""
+
+#. type: TP
+#: ../src/xz/xz.1:596
+#, no-wrap
+msgid "B<crc64>"
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:601
+msgid ""
+"Calculate CRC64 using the polynomial from ECMA-182.  This is the default, "
+"since it is slightly better than CRC32 at detecting damaged files and the "
+"speed difference is negligible."
+msgstr ""
+
+#. type: TP
+#: ../src/xz/xz.1:601
+#, no-wrap
+msgid "B<sha256>"
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:605
+msgid "Calculate SHA-256.  This is somewhat slower than CRC32 and CRC64."
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:611
+msgid ""
+"Integrity of the B<.xz> headers is always verified with CRC32.  It is not "
+"possible to change or disable it."
+msgstr ""
+
+#. type: TP
+#: ../src/xz/xz.1:611
+#, no-wrap
+msgid "B<--ignore-check>"
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:617
+msgid ""
+"Don't verify the integrity check of the compressed data when decompressing.  "
+"The CRC32 values in the B<.xz> headers will still be verified normally."
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:620
+msgid ""
+"B<Do not use this option unless you know what you are doing.> Possible "
+"reasons to use this option:"
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:623
+msgid "Trying to recover data from a corrupt .xz file."
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:629
+msgid ""
+"Speeding up decompression.  This matters mostly with SHA-256 or with files "
+"that have compressed extremely well.  It's recommended to not use this "
+"option for this purpose unless the file integrity is verified externally in "
+"some other way."
+msgstr ""
+
+#. type: TP
+#: ../src/xz/xz.1:630
+#, no-wrap
+msgid "B<-0> ... B<-9>"
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:639
+msgid ""
+"Select a compression preset level.  The default is B<-6>.  If multiple "
+"preset levels are specified, the last one takes effect.  If a custom filter "
+"chain was already specified, setting a compression preset level clears the "
+"custom filter chain."
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:654
+msgid ""
+"The differences between the presets are more significant than with "
+"B<gzip>(1)  and B<bzip2>(1).  The selected compression settings determine "
+"the memory requirements of the decompressor, thus using a too high preset "
+"level might make it painful to decompress the file on an old system with "
+"little RAM.  Specifically, B<it's not a good idea to blindly use -9 for "
+"everything> like it often is with B<gzip>(1)  and B<bzip2>(1)."
+msgstr ""
+
+#. type: TP
+#: ../src/xz/xz.1:655
+#, no-wrap
+msgid "B<-0> ... B<-3>"
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:667
+msgid ""
+"These are somewhat fast presets.  B<-0> is sometimes faster than B<gzip -9> "
+"while compressing much better.  The higher ones often have speed comparable "
+"to B<bzip2>(1)  with comparable or better compression ratio, although the "
+"results depend a lot on the type of data being compressed."
+msgstr ""
+
+#. type: TP
+#: ../src/xz/xz.1:667
+#, no-wrap
+msgid "B<-4> ... B<-6>"
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:681
+msgid ""
+"Good to very good compression while keeping decompressor memory usage "
+"reasonable even for old systems.  B<-6> is the default, which is usually a "
+"good choice e.g. for distributing files that need to be decompressible even "
+"on systems with only 16\\ MiB RAM.  (B<-5e> or B<-6e> may be worth "
+"considering too.  See B<--extreme>.)"
+msgstr ""
+
+#. type: TP
+#: ../src/xz/xz.1:681
+#, no-wrap
+msgid "B<-7 ... -9>"
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:688
+msgid ""
+"These are like B<-6> but with higher compressor and decompressor memory "
+"requirements.  These are useful only when compressing files bigger than 8\\ "
+"MiB, 16\\ MiB, and 32\\ MiB, respectively."
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:696
+msgid ""
+"On the same hardware, the decompression speed is approximately a constant "
+"number of bytes of compressed data per second.  In other words, the better "
+"the compression, the faster the decompression will usually be.  This also "
+"means that the amount of uncompressed output produced per second can vary a "
+"lot."
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:698
+msgid "The following table summarises the features of the presets:"
+msgstr ""
+
+#. type: tbl table
+#: ../src/xz/xz.1:705 ../src/xz/xz.1:786 ../src/xz/xz.1:2623
+#, no-wrap
+msgid "Preset"
+msgstr ""
+
+#. type: tbl table
+#: ../src/xz/xz.1:705 ../src/xz/xz.1:786
+#, no-wrap
+msgid "DictSize"
+msgstr ""
+
+#. type: tbl table
+#: ../src/xz/xz.1:705 ../src/xz/xz.1:786 ../src/xz/xz.1:2623
+#, no-wrap
+msgid "CompCPU"
+msgstr ""
+
+#. type: tbl table
+#: ../src/xz/xz.1:705 ../src/xz/xz.1:786
+#, no-wrap
+msgid "CompMem"
+msgstr ""
+
+#. type: tbl table
+#: ../src/xz/xz.1:705 ../src/xz/xz.1:786
+#, no-wrap
+msgid "DecMem"
+msgstr ""
+
+#. type: tbl table
+#: ../src/xz/xz.1:706 ../src/xz/xz.1:2234 ../src/xz/xz.1:2259 ../src/xz/xz.1:2624
+#, no-wrap
+msgid "-0"
+msgstr ""
+
+#. type: tbl table
+#: ../src/xz/xz.1:706 ../src/xz/xz.1:787 ../src/xz/xz.1:2234
+#, no-wrap
+msgid "256 KiB"
+msgstr ""
+
+#. type: tbl table
+#: ../src/xz/xz.1:706 ../src/xz/xz.1:2624
+#, no-wrap
+msgid "0"
+msgstr ""
+
+#. type: tbl table
+#: ../src/xz/xz.1:706 ../src/xz/xz.1:708 ../src/xz/xz.1:789 ../src/xz/xz.1:2259
+#, no-wrap
+msgid "3 MiB"
+msgstr ""
+
+#. type: tbl table
+#: ../src/xz/xz.1:706 ../src/xz/xz.1:707 ../src/xz/xz.1:787 ../src/xz/xz.1:788 ../src/xz/xz.1:2235 ../src/xz/xz.1:2236 ../src/xz/xz.1:2238
+#, no-wrap
+msgid "1 MiB"
+msgstr ""
+
+#. type: tbl table
+#: ../src/xz/xz.1:707 ../src/xz/xz.1:2235 ../src/xz/xz.1:2260 ../src/xz/xz.1:2625
+#, no-wrap
+msgid "-1"
+msgstr ""
+
+#. type: tbl table
+#: ../src/xz/xz.1:707 ../src/xz/xz.1:1582 ../src/xz/xz.1:2625
+#, no-wrap
+msgid "1"
+msgstr ""
+
+#. type: tbl table
+#: ../src/xz/xz.1:707 ../src/xz/xz.1:711 ../src/xz/xz.1:712 ../src/xz/xz.1:792 ../src/xz/xz.1:793 ../src/xz/xz.1:2260
+#, no-wrap
+msgid "9 MiB"
+msgstr ""
+
+#. type: tbl table
+#: ../src/xz/xz.1:707 ../src/xz/xz.1:708 ../src/xz/xz.1:788 ../src/xz/xz.1:789 ../src/xz/xz.1:2236 ../src/xz/xz.1:2239 ../src/xz/xz.1:2260
+#, no-wrap
+msgid "2 MiB"
+msgstr ""
+
+#. type: tbl table
+#: ../src/xz/xz.1:708 ../src/xz/xz.1:2236 ../src/xz/xz.1:2261 ../src/xz/xz.1:2626
+#, no-wrap
+msgid "-2"
+msgstr ""
+
+#. type: tbl table
+#: ../src/xz/xz.1:708 ../src/xz/xz.1:1585 ../src/xz/xz.1:2626
+#, no-wrap
+msgid "2"
+msgstr ""
+
+#. type: tbl table
+#: ../src/xz/xz.1:708 ../src/xz/xz.1:713 ../src/xz/xz.1:794 ../src/xz/xz.1:2261
+#, no-wrap
+msgid "17 MiB"
+msgstr ""
+
+#. type: tbl table
+#: ../src/xz/xz.1:709 ../src/xz/xz.1:2237 ../src/xz/xz.1:2262 ../src/xz/xz.1:2627
+#, no-wrap
+msgid "-3"
+msgstr ""
+
+#. type: tbl table
+#: ../src/xz/xz.1:709 ../src/xz/xz.1:710 ../src/xz/xz.1:787 ../src/xz/xz.1:790 ../src/xz/xz.1:791 ../src/xz/xz.1:2237 ../src/xz/xz.1:2238 ../src/xz/xz.1:2240
+#, no-wrap
+msgid "4 MiB"
+msgstr ""
+
+#. type: tbl table
+#: ../src/xz/xz.1:709 ../src/xz/xz.1:2627
+#, no-wrap
+msgid "3"
+msgstr ""
+
+#. type: tbl table
+#: ../src/xz/xz.1:709 ../src/xz/xz.1:714 ../src/xz/xz.1:795 ../src/xz/xz.1:2242 ../src/xz/xz.1:2243 ../src/xz/xz.1:2262
+#, no-wrap
+msgid "32 MiB"
+msgstr ""
+
+#. type: tbl table
+#: ../src/xz/xz.1:709 ../src/xz/xz.1:710 ../src/xz/xz.1:790 ../src/xz/xz.1:791
+#, no-wrap
+msgid "5 MiB"
+msgstr ""
+
+#. type: tbl table
+#: ../src/xz/xz.1:710 ../src/xz/xz.1:2238 ../src/xz/xz.1:2263 ../src/xz/xz.1:2628
+#, no-wrap
+msgid "-4"
+msgstr ""
+
+#. type: tbl table
+#: ../src/xz/xz.1:710 ../src/xz/xz.1:1583 ../src/xz/xz.1:1584 ../src/xz/xz.1:1587 ../src/xz/xz.1:2628
+#, no-wrap
+msgid "4"
+msgstr ""
+
+#. type: tbl table
+#: ../src/xz/xz.1:710 ../src/xz/xz.1:790 ../src/xz/xz.1:791 ../src/xz/xz.1:2263
+#, no-wrap
+msgid "48 MiB"
+msgstr ""
+
+#. type: tbl table
+#: ../src/xz/xz.1:711 ../src/xz/xz.1:2239 ../src/xz/xz.1:2264 ../src/xz/xz.1:2629
+#, no-wrap
+msgid "-5"
+msgstr ""
+
+#. type: tbl table
+#: ../src/xz/xz.1:711 ../src/xz/xz.1:712 ../src/xz/xz.1:792 ../src/xz/xz.1:793 ../src/xz/xz.1:2239 ../src/xz/xz.1:2240 ../src/xz/xz.1:2241
+#, no-wrap
+msgid "8 MiB"
+msgstr ""
+
+#. type: tbl table
+#: ../src/xz/xz.1:711 ../src/xz/xz.1:2629
+#, no-wrap
+msgid "5"
+msgstr ""
+
+#. type: tbl table
+#: ../src/xz/xz.1:711 ../src/xz/xz.1:712 ../src/xz/xz.1:792 ../src/xz/xz.1:793 ../src/xz/xz.1:2264 ../src/xz/xz.1:2265
+#, no-wrap
+msgid "94 MiB"
+msgstr ""
+
+#. type: tbl table
+#: ../src/xz/xz.1:712 ../src/xz/xz.1:2240 ../src/xz/xz.1:2265 ../src/xz/xz.1:2630
+#, no-wrap
+msgid "-6"
+msgstr ""
+
+#. type: tbl table
+#: ../src/xz/xz.1:712 ../src/xz/xz.1:713 ../src/xz/xz.1:714 ../src/xz/xz.1:715 ../src/xz/xz.1:2630
+#, no-wrap
+msgid "6"
+msgstr ""
+
+#. type: tbl table
+#: ../src/xz/xz.1:713 ../src/xz/xz.1:2241 ../src/xz/xz.1:2266
+#, no-wrap
+msgid "-7"
+msgstr ""
+
+#. type: tbl table
+#: ../src/xz/xz.1:713 ../src/xz/xz.1:794 ../src/xz/xz.1:2241 ../src/xz/xz.1:2242 ../src/xz/xz.1:2263
+#, no-wrap
+msgid "16 MiB"
+msgstr ""
+
+#. type: tbl table
+#: ../src/xz/xz.1:713 ../src/xz/xz.1:794 ../src/xz/xz.1:2266
+#, no-wrap
+msgid "186 MiB"
+msgstr ""
+
+#. type: tbl table
+#: ../src/xz/xz.1:714 ../src/xz/xz.1:2242 ../src/xz/xz.1:2267
+#, no-wrap
+msgid "-8"
+msgstr ""
+
+#. type: tbl table
+#: ../src/xz/xz.1:714 ../src/xz/xz.1:795 ../src/xz/xz.1:2267
+#, no-wrap
+msgid "370 MiB"
+msgstr ""
+
+#. type: tbl table
+#: ../src/xz/xz.1:714 ../src/xz/xz.1:795
+#, no-wrap
+msgid "33 MiB"
+msgstr ""
+
+#. type: tbl table
+#: ../src/xz/xz.1:715 ../src/xz/xz.1:2243 ../src/xz/xz.1:2268
+#, no-wrap
+msgid "-9"
+msgstr ""
+
+#. type: tbl table
+#: ../src/xz/xz.1:715 ../src/xz/xz.1:796 ../src/xz/xz.1:2243
+#, no-wrap
+msgid "64 MiB"
+msgstr ""
+
+#. type: tbl table
+#: ../src/xz/xz.1:715 ../src/xz/xz.1:796 ../src/xz/xz.1:2268
+#, no-wrap
+msgid "674 MiB"
+msgstr ""
+
+#. type: tbl table
+#: ../src/xz/xz.1:715 ../src/xz/xz.1:796
+#, no-wrap
+msgid "65 MiB"
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:721
+msgid "Column descriptions:"
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:733
+msgid ""
+"DictSize is the LZMA2 dictionary size.  It is waste of memory to use a "
+"dictionary bigger than the size of the uncompressed file.  This is why it is "
+"good to avoid using the presets B<-7> ... B<-9> when there's no real need "
+"for them.  At B<-6> and lower, the amount of memory wasted is usually low "
+"enough to not matter."
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:742
+msgid ""
+"CompCPU is a simplified representation of the LZMA2 settings that affect "
+"compression speed.  The dictionary size affects speed too, so while CompCPU "
+"is the same for levels B<-6> ... B<-9>, higher levels still tend to be a "
+"little slower.  To get even slower and thus possibly better compression, see "
+"B<--extreme>."
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:750
+msgid ""
+"CompMem contains the compressor memory requirements in the single-threaded "
+"mode.  It may vary slightly between B<xz> versions.  Memory requirements of "
+"some of the future multithreaded modes may be dramatically higher than that "
+"of the single-threaded mode."
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:757
+msgid ""
+"DecMem contains the decompressor memory requirements.  That is, the "
+"compression settings determine the memory requirements of the decompressor.  "
+"The exact decompressor memory usage is slightly more than the LZMA2 "
+"dictionary size, but the values in the table have been rounded up to the "
+"next full MiB."
+msgstr ""
+
+#. type: TP
+#: ../src/xz/xz.1:758
+#, no-wrap
+msgid "B<-e>, B<--extreme>"
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:767
+msgid ""
+"Use a slower variant of the selected compression preset level (B<-0> "
+"... B<-9>)  to hopefully get a little bit better compression ratio, but with "
+"bad luck this can also make it worse.  Decompressor memory usage is not "
+"affected, but compressor memory usage increases a little at preset levels "
+"B<-0> ... B<-3>."
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:779
+msgid ""
+"Since there are two presets with dictionary sizes 4\\ MiB and 8\\ MiB, the "
+"presets B<-3e> and B<-5e> use slightly faster settings (lower CompCPU) than "
+"B<-4e> and B<-6e>, respectively.  That way no two presets are identical."
+msgstr ""
+
+#. type: tbl table
+#: ../src/xz/xz.1:787
+#, no-wrap
+msgid "-0e"
+msgstr ""
+
+#. type: tbl table
+#: ../src/xz/xz.1:787 ../src/xz/xz.1:788 ../src/xz/xz.1:789 ../src/xz/xz.1:791 ../src/xz/xz.1:793 ../src/xz/xz.1:794 ../src/xz/xz.1:795 ../src/xz/xz.1:796 ../src/xz/xz.1:2632
+#, no-wrap
+msgid "8"
+msgstr ""
+
+#. type: tbl table
+#: ../src/xz/xz.1:788
+#, no-wrap
+msgid "-1e"
+msgstr ""
+
+#. type: tbl table
+#: ../src/xz/xz.1:788
+#, no-wrap
+msgid "13 MiB"
+msgstr ""
+
+#. type: tbl table
+#: ../src/xz/xz.1:789
+#, no-wrap
+msgid "-2e"
+msgstr ""
+
+#. type: tbl table
+#: ../src/xz/xz.1:789
+#, no-wrap
+msgid "25 MiB"
+msgstr ""
+
+#. type: tbl table
+#: ../src/xz/xz.1:790
+#, no-wrap
+msgid "-3e"
+msgstr ""
+
+#. type: tbl table
+#: ../src/xz/xz.1:790 ../src/xz/xz.1:792 ../src/xz/xz.1:2631
+#, no-wrap
+msgid "7"
+msgstr ""
+
+#. type: tbl table
+#: ../src/xz/xz.1:791
+#, no-wrap
+msgid "-4e"
+msgstr ""
+
+#. type: tbl table
+#: ../src/xz/xz.1:792 ../src/xz/xz.1:2631
+#, no-wrap
+msgid "-5e"
+msgstr ""
+
+#. type: tbl table
+#: ../src/xz/xz.1:793 ../src/xz/xz.1:2632
+#, no-wrap
+msgid "-6e"
+msgstr ""
+
+#. type: tbl table
+#: ../src/xz/xz.1:794
+#, no-wrap
+msgid "-7e"
+msgstr ""
+
+#. type: tbl table
+#: ../src/xz/xz.1:795
+#, no-wrap
+msgid "-8e"
+msgstr ""
+
+#. type: tbl table
+#: ../src/xz/xz.1:796
+#, no-wrap
+msgid "-9e"
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:808
+msgid ""
+"For example, there are a total of four presets that use 8\\ MiB dictionary, "
+"whose order from the fastest to the slowest is B<-5>, B<-6>, B<-5e>, and "
+"B<-6e>."
+msgstr ""
+
+#. type: TP
+#: ../src/xz/xz.1:808
+#, no-wrap
+msgid "B<--fast>"
+msgstr ""
+
+#. type: TP
+#: ../src/xz/xz.1:811
+#, no-wrap
+msgid "B<--best>"
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:822
+msgid ""
+"These are somewhat misleading aliases for B<-0> and B<-9>, respectively.  "
+"These are provided only for backwards compatibility with LZMA Utils.  Avoid "
+"using these options."
+msgstr ""
+
+#. type: TP
+#: ../src/xz/xz.1:822
+#, no-wrap
+msgid "B<--block-size=>I<size>"
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:835
+msgid ""
+"When compressing to the B<.xz> format, split the input data into blocks of "
+"I<size> bytes.  The blocks are compressed independently from each other, "
+"which helps with multi-threading and makes limited random-access "
+"decompression possible.  This option is typically used to override the "
+"default block size in multi-threaded mode, but this option can be used in "
+"single-threaded mode too."
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:853
+msgid ""
+"In multi-threaded mode about three times I<size> bytes will be allocated in "
+"each thread for buffering input and output.  The default I<size> is three "
+"times the LZMA2 dictionary size or 1 MiB, whichever is more.  Typically a "
+"good value is 2-4 times the size of the LZMA2 dictionary or at least 1 MiB.  "
+"Using I<size> less than the LZMA2 dictionary size is waste of RAM because "
+"then the LZMA2 dictionary buffer will never get fully used.  The sizes of "
+"the blocks are stored in the block headers, which a future version of B<xz> "
+"will use for multi-threaded decompression."
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:862
+msgid ""
+"In single-threaded mode no block splitting is done by default.  Setting this "
+"option doesn't affect memory usage.  No size information is stored in block "
+"headers, thus files created in single-threaded mode won't be identical to "
+"files created in multi-threaded mode.  The lack of size information also "
+"means that a future version of B<xz> won't be able decompress the files in "
+"multi-threaded mode."
+msgstr ""
+
+#. type: TP
+#: ../src/xz/xz.1:862
+#, no-wrap
+msgid "B<--block-list=>I<sizes>"
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:868
+msgid ""
+"When compressing to the B<.xz> format, start a new block after the given "
+"intervals of uncompressed data."
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:874
+msgid ""
+"The uncompressed I<sizes> of the blocks are specified as a comma-separated "
+"list.  Omitting a size (two or more consecutive commas) is a shorthand to "
+"use the size of the previous block."
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:884
+msgid ""
+"If the input file is bigger than the sum of I<sizes>, the last value in "
+"I<sizes> is repeated until the end of the file.  A special value of B<0> may "
+"be used as the last value to indicate that the rest of the file should be "
+"encoded as a single block."
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:899
+msgid ""
+"If one specifies I<sizes> that exceed the encoder's block size (either the "
+"default value in threaded mode or the value specified with "
+"B<--block-size=>I<size>), the encoder will create additional blocks while "
+"keeping the boundaries specified in I<sizes>.  For example, if one specifies "
+"B<--block-size=10MiB> B<--block-list=5MiB,10MiB,8MiB,12MiB,24MiB> and the "
+"input file is 80 MiB, one will get 11 blocks: 5, 10, 8, 10, 2, 10, 10, 4, "
+"10, 10, and 1 MiB."
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:905
+msgid ""
+"In multi-threaded mode the sizes of the blocks are stored in the block "
+"headers.  This isn't done in single-threaded mode, so the encoded output "
+"won't be identical to that of the multi-threaded mode."
+msgstr ""
+
+#. type: TP
+#: ../src/xz/xz.1:905
+#, no-wrap
+msgid "B<--flush-timeout=>I<timeout>"
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:922
+msgid ""
+"When compressing, if more than I<timeout> milliseconds (a positive integer) "
+"has passed since the previous flush and reading more input would block, all "
+"the pending input data is flushed from the encoder and made available in the "
+"output stream.  This can be useful if B<xz> is used to compress data that is "
+"streamed over a network.  Small I<timeout> values make the data available at "
+"the receiving end with a small delay, but large I<timeout> values give "
+"better compression ratio."
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:930
+msgid ""
+"This feature is disabled by default.  If this option is specified more than "
+"once, the last one takes effect.  The special I<timeout> value of B<0> can "
+"be used to explicitly disable this feature."
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:932
+msgid "This feature is not available on non-POSIX systems."
+msgstr ""
+
+#.  FIXME
+#. type: Plain text
+#: ../src/xz/xz.1:940
+msgid ""
+"B<This feature is still experimental.> Currently B<xz> is unsuitable for "
+"decompressing the stream in real time due to how B<xz> does buffering."
+msgstr ""
+
+#. type: TP
+#: ../src/xz/xz.1:940
+#, no-wrap
+msgid "B<--memlimit-compress=>I<limit>"
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:945
+msgid ""
+"Set a memory usage limit for compression.  If this option is specified "
+"multiple times, the last one takes effect."
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:960
+msgid ""
+"If the compression settings exceed the I<limit>, B<xz> will adjust the "
+"settings downwards so that the limit is no longer exceeded and display a "
+"notice that automatic adjustment was done.  Such adjustments are not made "
+"when compressing with B<--format=raw> or if B<--no-adjust> has been "
+"specified.  In those cases, an error is displayed and B<xz> will exit with "
+"exit status 1."
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:964
+msgid "The I<limit> can be specified in multiple ways:"
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:974
+msgid ""
+"The I<limit> can be an absolute value in bytes.  Using an integer suffix "
+"like B<MiB> can be useful.  Example: B<--memlimit-compress=80MiB>"
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:986
+msgid ""
+"The I<limit> can be specified as a percentage of total physical memory "
+"(RAM).  This can be useful especially when setting the B<XZ_DEFAULTS> "
+"environment variable in a shell initialization script that is shared between "
+"different computers.  That way the limit is automatically bigger on systems "
+"with more memory.  Example: B<--memlimit-compress=70%>"
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:1006
+msgid ""
+"The I<limit> can be reset back to its default value by setting it to B<0>.  "
+"This is currently equivalent to setting the I<limit> to B<max> (no memory "
+"usage limit).  Once multithreading support has been implemented, there may "
+"be a difference between B<0> and B<max> for the multithreaded case, so it is "
+"recommended to use B<0> instead of B<max> until the details have been "
+"decided."
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:1026
+msgid ""
+"For 32-bit B<xz> there is a special case: if the I<limit> would be over "
+"B<4020\\ MiB>, the I<limit> is set to B<4020\\ MiB>.  (The values B<0> and "
+"B<max> aren't affected by this.  A similar feature doesn't exist for "
+"decompression.)  This can be helpful when a 32-bit executable has access to "
+"4\\ GiB address space while hopefully doing no harm in other situations."
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:1029
+msgid "See also the section B<Memory usage>."
+msgstr ""
+
+#. type: TP
+#: ../src/xz/xz.1:1029
+#, no-wrap
+msgid "B<--memlimit-decompress=>I<limit>"
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:1043
+msgid ""
+"Set a memory usage limit for decompression.  This also affects the B<--list> "
+"mode.  If the operation is not possible without exceeding the I<limit>, "
+"B<xz> will display an error and decompressing the file will fail.  See "
+"B<--memlimit-compress=>I<limit> for possible ways to specify the I<limit>."
+msgstr ""
+
+#. type: TP
+#: ../src/xz/xz.1:1043
+#, no-wrap
+msgid "B<-M> I<limit>, B<--memlimit=>I<limit>, B<--memory=>I<limit>"
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:1047
+msgid ""
+"This is equivalent to specifying B<--memlimit-compress=>I<limit "
+">B<--memlimit-decompress=>I<limit>."
+msgstr ""
+
+#. type: TP
+#: ../src/xz/xz.1:1047
+#, no-wrap
+msgid "B<--no-adjust>"
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:1055
+msgid ""
+"Display an error and exit if the compression settings exceed the memory "
+"usage limit.  The default is to adjust the settings downwards so that the "
+"memory usage limit is not exceeded.  Automatic adjusting is always disabled "
+"when creating raw streams (B<--format=raw>)."
+msgstr ""
+
+#. type: TP
+#: ../src/xz/xz.1:1055
+#, no-wrap
+msgid "B<-T> I<threads>, B<--threads=>I<threads>"
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:1070
+msgid ""
+"Specify the number of worker threads to use.  Setting I<threads> to a "
+"special value B<0> makes B<xz> use as many threads as there are CPU cores on "
+"the system.  The actual number of threads can be less than I<threads> if the "
+"input file is not big enough for threading with the given settings or if "
+"using more threads would exceed the memory usage limit."
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:1077
+msgid ""
+"Currently the only threading method is to split the input into blocks and "
+"compress them independently from each other.  The default block size depends "
+"on the compression level and can be overridden with the "
+"B<--block-size=>I<size> option."
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:1085
+msgid ""
+"Threaded decompression hasn't been implemented yet.  It will only work on "
+"files that contain multiple blocks with size information in block headers.  "
+"All files compressed in multi-threaded mode meet this condition, but files "
+"compressed in single-threaded mode don't even if B<--block-size=>I<size> is "
+"used."
+msgstr ""
+
+#. type: SS
+#: ../src/xz/xz.1:1086 ../src/xz/xz.1:2603
+#, no-wrap
+msgid "Custom compressor filter chains"
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:1097
+msgid ""
+"A custom filter chain allows specifying the compression settings in detail "
+"instead of relying on the settings associated to the presets.  When a custom "
+"filter chain is specified, preset options (B<-0> ... B<-9> and B<--extreme>)  "
+"earlier on the command line are forgotten.  If a preset option is specified "
+"after one or more custom filter chain options, the new preset takes effect "
+"and the custom filter chain options specified earlier are forgotten."
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:1104
+msgid ""
+"A filter chain is comparable to piping on the command line.  When "
+"compressing, the uncompressed input goes to the first filter, whose output "
+"goes to the next filter (if any).  The output of the last filter gets "
+"written to the compressed file.  The maximum number of filters in the chain "
+"is four, but typically a filter chain has only one or two filters."
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:1112
+msgid ""
+"Many filters have limitations on where they can be in the filter chain: some "
+"filters can work only as the last filter in the chain, some only as a "
+"non-last filter, and some work in any position in the chain.  Depending on "
+"the filter, this limitation is either inherent to the filter design or "
+"exists to prevent security issues."
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:1120
+msgid ""
+"A custom filter chain is specified by using one or more filter options in "
+"the order they are wanted in the filter chain.  That is, the order of filter "
+"options is significant! When decoding raw streams (B<--format=raw>), the "
+"filter chain is specified in the same order as it was specified when "
+"compressing."
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:1129
+msgid ""
+"Filters take filter-specific I<options> as a comma-separated list.  Extra "
+"commas in I<options> are ignored.  Every option has a default value, so you "
+"need to specify only those you want to change."
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:1138
+msgid ""
+"To see the whole filter chain and I<options>, use B<xz -vv> (that is, use "
+"B<--verbose> twice).  This works also for viewing the filter chain options "
+"used by presets."
+msgstr ""
+
+#. type: TP
+#: ../src/xz/xz.1:1138
+#, no-wrap
+msgid "B<--lzma1>[B<=>I<options>]"
+msgstr ""
+
+#. type: TP
+#: ../src/xz/xz.1:1141
+#, no-wrap
+msgid "B<--lzma2>[B<=>I<options>]"
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:1146
+msgid ""
+"Add LZMA1 or LZMA2 filter to the filter chain.  These filters can be used "
+"only as the last filter in the chain."
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:1158
+msgid ""
+"LZMA1 is a legacy filter, which is supported almost solely due to the legacy "
+"B<.lzma> file format, which supports only LZMA1.  LZMA2 is an updated "
+"version of LZMA1 to fix some practical issues of LZMA1.  The B<.xz> format "
+"uses LZMA2 and doesn't support LZMA1 at all.  Compression speed and ratios "
+"of LZMA1 and LZMA2 are practically the same."
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:1161
+msgid "LZMA1 and LZMA2 share the same set of I<options>:"
+msgstr ""
+
+#. type: TP
+#: ../src/xz/xz.1:1162
+#, no-wrap
+msgid "B<preset=>I<preset>"
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:1186
+msgid ""
+"Reset all LZMA1 or LZMA2 I<options> to I<preset>.  I<Preset> consist of an "
+"integer, which may be followed by single-letter preset modifiers.  The "
+"integer can be from B<0> to B<9>, matching the command line options B<-0> "
+"... B<-9>.  The only supported modifier is currently B<e>, which matches "
+"B<--extreme>.  If no B<preset> is specified, the default values of LZMA1 or "
+"LZMA2 I<options> are taken from the preset B<6>."
+msgstr ""
+
+#. type: TP
+#: ../src/xz/xz.1:1186
+#, no-wrap
+msgid "B<dict=>I<size>"
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:1201
+msgid ""
+"Dictionary (history buffer)  I<size> indicates how many bytes of the "
+"recently processed uncompressed data is kept in memory.  The algorithm tries "
+"to find repeating byte sequences (matches) in the uncompressed data, and "
+"replace them with references to the data currently in the dictionary.  The "
+"bigger the dictionary, the higher is the chance to find a match.  Thus, "
+"increasing dictionary I<size> usually improves compression ratio, but a "
+"dictionary bigger than the uncompressed file is waste of memory."
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:1210
+msgid ""
+"Typical dictionary I<size> is from 64\\ KiB to 64\\ MiB.  The minimum is 4\\ "
+"KiB.  The maximum for compression is currently 1.5\\ GiB (1536\\ MiB).  The "
+"decompressor already supports dictionaries up to one byte less than 4\\ GiB, "
+"which is the maximum for the LZMA1 and LZMA2 stream formats."
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:1237
+msgid ""
+"Dictionary I<size> and match finder (I<mf>)  together determine the memory "
+"usage of the LZMA1 or LZMA2 encoder.  The same (or bigger) dictionary "
+"I<size> is required for decompressing that was used when compressing, thus "
+"the memory usage of the decoder is determined by the dictionary size used "
+"when compressing.  The B<.xz> headers store the dictionary I<size> either as "
+"2^I<n> or 2^I<n> + 2^(I<n>-1), so these I<sizes> are somewhat preferred for "
+"compression.  Other I<sizes> will get rounded up when stored in the B<.xz> "
+"headers."
+msgstr ""
+
+#. type: TP
+#: ../src/xz/xz.1:1237
+#, no-wrap
+msgid "B<lc=>I<lc>"
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:1246
+msgid ""
+"Specify the number of literal context bits.  The minimum is 0 and the "
+"maximum is 4; the default is 3.  In addition, the sum of I<lc> and I<lp> "
+"must not exceed 4."
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:1251
+msgid ""
+"All bytes that cannot be encoded as matches are encoded as literals.  That "
+"is, literals are simply 8-bit bytes that are encoded one at a time."
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:1265
+msgid ""
+"The literal coding makes an assumption that the highest I<lc> bits of the "
+"previous uncompressed byte correlate with the next byte.  E.g. in typical "
+"English text, an upper-case letter is often followed by a lower-case letter, "
+"and a lower-case letter is usually followed by another lower-case letter.  "
+"In the US-ASCII character set, the highest three bits are 010 for upper-case "
+"letters and 011 for lower-case letters.  When I<lc> is at least 3, the "
+"literal coding can take advantage of this property in the uncompressed data."
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:1274
+msgid ""
+"The default value (3) is usually good.  If you want maximum compression, "
+"test B<lc=4>.  Sometimes it helps a little, and sometimes it makes "
+"compression worse.  If it makes it worse, test e.g.\\& B<lc=2> too."
+msgstr ""
+
+#. type: TP
+#: ../src/xz/xz.1:1274
+#, no-wrap
+msgid "B<lp=>I<lp>"
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:1278
+msgid ""
+"Specify the number of literal position bits.  The minimum is 0 and the "
+"maximum is 4; the default is 0."
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:1285
+msgid ""
+"I<Lp> affects what kind of alignment in the uncompressed data is assumed "
+"when encoding literals.  See I<pb> below for more information about "
+"alignment."
+msgstr ""
+
+#. type: TP
+#: ../src/xz/xz.1:1285
+#, no-wrap
+msgid "B<pb=>I<pb>"
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:1289
+msgid ""
+"Specify the number of position bits.  The minimum is 0 and the maximum is 4; "
+"the default is 2."
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:1296
+msgid ""
+"I<Pb> affects what kind of alignment in the uncompressed data is assumed in "
+"general.  The default means four-byte alignment (2^I<pb>=2^2=4), which is "
+"often a good choice when there's no better guess."
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:1310
+msgid ""
+"When the aligment is known, setting I<pb> accordingly may reduce the file "
+"size a little.  E.g. with text files having one-byte alignment (US-ASCII, "
+"ISO-8859-*, UTF-8), setting B<pb=0> can improve compression slightly.  For "
+"UTF-16 text, B<pb=1> is a good choice.  If the alignment is an odd number "
+"like 3 bytes, B<pb=0> might be the best choice."
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:1318
+msgid ""
+"Even though the assumed alignment can be adjusted with I<pb> and I<lp>, "
+"LZMA1 and LZMA2 still slightly favor 16-byte alignment.  It might be worth "
+"taking into account when designing file formats that are likely to be often "
+"compressed with LZMA1 or LZMA2."
+msgstr ""
+
+#. type: TP
+#: ../src/xz/xz.1:1318
+#, no-wrap
+msgid "B<mf=>I<mf>"
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:1333
+msgid ""
+"Match finder has a major effect on encoder speed, memory usage, and "
+"compression ratio.  Usually Hash Chain match finders are faster than Binary "
+"Tree match finders.  The default depends on the I<preset>: 0 uses B<hc3>, "
+"1-3 use B<hc4>, and the rest use B<bt4>."
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:1339
+msgid ""
+"The following match finders are supported.  The memory usage formulas below "
+"are rough approximations, which are closest to the reality when I<dict> is a "
+"power of two."
+msgstr ""
+
+#. type: TP
+#: ../src/xz/xz.1:1340
+#, no-wrap
+msgid "B<hc3>"
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:1343
+msgid "Hash Chain with 2- and 3-byte hashing"
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:1347 ../src/xz/xz.1:1396
+msgid "Minimum value for I<nice>: 3"
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:1349 ../src/xz/xz.1:1368 ../src/xz/xz.1:1398 ../src/xz/xz.1:1417
+msgid "Memory usage:"
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:1354
+msgid "I<dict> * 7.5 (if I<dict> E<lt>= 16 MiB);"
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:1359
+msgid "I<dict> * 5.5 + 64 MiB (if I<dict> E<gt> 16 MiB)"
+msgstr ""
+
+#. type: TP
+#: ../src/xz/xz.1:1359
+#, no-wrap
+msgid "B<hc4>"
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:1362
+msgid "Hash Chain with 2-, 3-, and 4-byte hashing"
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:1366 ../src/xz/xz.1:1415
+msgid "Minimum value for I<nice>: 4"
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:1373
+msgid "I<dict> * 7.5 (if I<dict> E<lt>= 32 MiB);"
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:1378
+msgid "I<dict> * 6.5 (if I<dict> E<gt> 32 MiB)"
+msgstr ""
+
+#. type: TP
+#: ../src/xz/xz.1:1378
+#, no-wrap
+msgid "B<bt2>"
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:1381
+msgid "Binary Tree with 2-byte hashing"
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:1385
+msgid "Minimum value for I<nice>: 2"
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:1389
+msgid "Memory usage: I<dict> * 9.5"
+msgstr ""
+
+#. type: TP
+#: ../src/xz/xz.1:1389
+#, no-wrap
+msgid "B<bt3>"
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:1392
+msgid "Binary Tree with 2- and 3-byte hashing"
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:1403
+msgid "I<dict> * 11.5 (if I<dict> E<lt>= 16 MiB);"
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:1408
+msgid "I<dict> * 9.5 + 64 MiB (if I<dict> E<gt> 16 MiB)"
+msgstr ""
+
+#. type: TP
+#: ../src/xz/xz.1:1408
+#, no-wrap
+msgid "B<bt4>"
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:1411
+msgid "Binary Tree with 2-, 3-, and 4-byte hashing"
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:1422
+msgid "I<dict> * 11.5 (if I<dict> E<lt>= 32 MiB);"
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:1427
+msgid "I<dict> * 10.5 (if I<dict> E<gt> 32 MiB)"
+msgstr ""
+
+#. type: TP
+#: ../src/xz/xz.1:1428
+#, no-wrap
+msgid "B<mode=>I<mode>"
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:1449
+msgid ""
+"Compression I<mode> specifies the method to analyze the data produced by the "
+"match finder.  Supported I<modes> are B<fast> and B<normal>.  The default is "
+"B<fast> for I<presets> 0-3 and B<normal> for I<presets> 4-9."
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:1458
+msgid ""
+"Usually B<fast> is used with Hash Chain match finders and B<normal> with "
+"Binary Tree match finders.  This is also what the I<presets> do."
+msgstr ""
+
+#. type: TP
+#: ../src/xz/xz.1:1458
+#, no-wrap
+msgid "B<nice=>I<nice>"
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:1465
+msgid ""
+"Specify what is considered to be a nice length for a match.  Once a match of "
+"at least I<nice> bytes is found, the algorithm stops looking for possibly "
+"better matches."
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:1472
+msgid ""
+"I<Nice> can be 2-273 bytes.  Higher values tend to give better compression "
+"ratio at the expense of speed.  The default depends on the I<preset>."
+msgstr ""
+
+#. type: TP
+#: ../src/xz/xz.1:1472
+#, no-wrap
+msgid "B<depth=>I<depth>"
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:1482
+msgid ""
+"Specify the maximum search depth in the match finder.  The default is the "
+"special value of 0, which makes the compressor determine a reasonable "
+"I<depth> from I<mf> and I<nice>."
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:1493
+msgid ""
+"Reasonable I<depth> for Hash Chains is 4-100 and 16-1000 for Binary Trees.  "
+"Using very high values for I<depth> can make the encoder extremely slow with "
+"some files.  Avoid setting the I<depth> over 1000 unless you are prepared to "
+"interrupt the compression in case it is taking far too long."
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:1504
+msgid ""
+"When decoding raw streams (B<--format=raw>), LZMA2 needs only the dictionary "
+"I<size>.  LZMA1 needs also I<lc>, I<lp>, and I<pb>."
+msgstr ""
+
+#. type: TP
+#: ../src/xz/xz.1:1504
+#, no-wrap
+msgid "B<--x86>[B<=>I<options>]"
+msgstr ""
+
+#. type: TP
+#: ../src/xz/xz.1:1507
+#, no-wrap
+msgid "B<--powerpc>[B<=>I<options>]"
+msgstr ""
+
+#. type: TP
+#: ../src/xz/xz.1:1509
+#, no-wrap
+msgid "B<--ia64>[B<=>I<options>]"
+msgstr ""
+
+#. type: TP
+#: ../src/xz/xz.1:1511
+#, no-wrap
+msgid "B<--arm>[B<=>I<options>]"
+msgstr ""
+
+#. type: TP
+#: ../src/xz/xz.1:1513
+#, no-wrap
+msgid "B<--armthumb>[B<=>I<options>]"
+msgstr ""
+
+#. type: TP
+#: ../src/xz/xz.1:1515
+#, no-wrap
+msgid "B<--sparc>[B<=>I<options>]"
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:1521
+msgid ""
+"Add a branch/call/jump (BCJ) filter to the filter chain.  These filters can "
+"be used only as a non-last filter in the filter chain."
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:1533
+msgid ""
+"A BCJ filter converts relative addresses in the machine code to their "
+"absolute counterparts.  This doesn't change the size of the data, but it "
+"increases redundancy, which can help LZMA2 to produce 0-15\\ % smaller "
+"B<.xz> file.  The BCJ filters are always reversible, so using a BCJ filter "
+"for wrong type of data doesn't cause any data loss, although it may make the "
+"compression ratio slightly worse."
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:1540
+msgid ""
+"It is fine to apply a BCJ filter on a whole executable; there's no need to "
+"apply it only on the executable section.  Applying a BCJ filter on an "
+"archive that contains both executable and non-executable files may or may "
+"not give good results, so it generally isn't good to blindly apply a BCJ "
+"filter when compressing binary packages for distribution."
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:1548
+msgid ""
+"These BCJ filters are very fast and use insignificant amount of memory.  If "
+"a BCJ filter improves compression ratio of a file, it can improve "
+"decompression speed at the same time.  This is because, on the same "
+"hardware, the decompression speed of LZMA2 is roughly a fixed number of "
+"bytes of compressed data per second."
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:1551
+msgid "These BCJ filters have known problems related to the compression ratio:"
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:1558
+msgid ""
+"Some types of files containing executable code (e.g. object files, static "
+"libraries, and Linux kernel modules)  have the addresses in the instructions "
+"filled with filler values.  These BCJ filters will still do the address "
+"conversion, which will make the compression worse with these files."
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:1565
+msgid ""
+"Applying a BCJ filter on an archive containing multiple similar executables "
+"can make the compression ratio worse than not using a BCJ filter.  This is "
+"because the BCJ filter doesn't detect the boundaries of the executable "
+"files, and doesn't reset the address conversion counter for each executable."
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:1572
+msgid ""
+"Both of the above problems will be fixed in the future in a new filter.  The "
+"old BCJ filters will still be useful in embedded systems, because the "
+"decoder of the new filter will be bigger and use more memory."
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:1574
+msgid "Different instruction sets have different alignment:"
+msgstr ""
+
+#. type: tbl table
+#: ../src/xz/xz.1:1581
+#, no-wrap
+msgid "Filter"
+msgstr ""
+
+#. type: tbl table
+#: ../src/xz/xz.1:1581
+#, no-wrap
+msgid "Alignment"
+msgstr ""
+
+#. type: tbl table
+#: ../src/xz/xz.1:1581
+#, no-wrap
+msgid "Notes"
+msgstr ""
+
+#. type: tbl table
+#: ../src/xz/xz.1:1582
+#, no-wrap
+msgid "x86"
+msgstr ""
+
+#. type: tbl table
+#: ../src/xz/xz.1:1582
+#, no-wrap
+msgid "32-bit or 64-bit x86"
+msgstr ""
+
+#. type: tbl table
+#: ../src/xz/xz.1:1583
+#, no-wrap
+msgid "PowerPC"
+msgstr ""
+
+#. type: tbl table
+#: ../src/xz/xz.1:1583
+#, no-wrap
+msgid "Big endian only"
+msgstr ""
+
+#. type: tbl table
+#: ../src/xz/xz.1:1584
+#, no-wrap
+msgid "ARM"
+msgstr ""
+
+#. type: tbl table
+#: ../src/xz/xz.1:1584 ../src/xz/xz.1:1585
+#, no-wrap
+msgid "Little endian only"
+msgstr ""
+
+#. type: tbl table
+#: ../src/xz/xz.1:1585
+#, no-wrap
+msgid "ARM-Thumb"
+msgstr ""
+
+#. type: tbl table
+#: ../src/xz/xz.1:1586
+#, no-wrap
+msgid "IA-64"
+msgstr ""
+
+#. type: tbl table
+#: ../src/xz/xz.1:1586
+#, no-wrap
+msgid "16"
+msgstr ""
+
+#. type: tbl table
+#: ../src/xz/xz.1:1586 ../src/xz/xz.1:1587
+#, no-wrap
+msgid "Big or little endian"
+msgstr ""
+
+#. type: tbl table
+#: ../src/xz/xz.1:1587
+#, no-wrap
+msgid "SPARC"
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:1602
+msgid ""
+"Since the BCJ-filtered data is usually compressed with LZMA2, the "
+"compression ratio may be improved slightly if the LZMA2 options are set to "
+"match the alignment of the selected BCJ filter.  For example, with the IA-64 "
+"filter, it's good to set B<pb=4> with LZMA2 (2^4=16).  The x86 filter is an "
+"exception; it's usually good to stick to LZMA2's default four-byte alignment "
+"when compressing x86 executables."
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:1605
+msgid "All BCJ filters support the same I<options>:"
+msgstr ""
+
+#. type: TP
+#: ../src/xz/xz.1:1606
+#, no-wrap
+msgid "B<start=>I<offset>"
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:1620
+msgid ""
+"Specify the start I<offset> that is used when converting between relative "
+"and absolute addresses.  The I<offset> must be a multiple of the alignment "
+"of the filter (see the table above).  The default is zero.  In practice, the "
+"default is good; specifying a custom I<offset> is almost never useful."
+msgstr ""
+
+#. type: TP
+#: ../src/xz/xz.1:1621
+#, no-wrap
+msgid "B<--delta>[B<=>I<options>]"
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:1626
+msgid ""
+"Add the Delta filter to the filter chain.  The Delta filter can be only used "
+"as a non-last filter in the filter chain."
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:1635
+msgid ""
+"Currently only simple byte-wise delta calculation is supported.  It can be "
+"useful when compressing e.g. uncompressed bitmap images or uncompressed PCM "
+"audio.  However, special purpose algorithms may give significantly better "
+"results than Delta + LZMA2.  This is true especially with audio, which "
+"compresses faster and better e.g. with B<flac>(1)."
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:1638
+msgid "Supported I<options>:"
+msgstr ""
+
+#. type: TP
+#: ../src/xz/xz.1:1639
+#, no-wrap
+msgid "B<dist=>I<distance>"
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:1647
+msgid ""
+"Specify the I<distance> of the delta calculation in bytes.  I<distance> must "
+"be 1-256.  The default is 1."
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:1652
+msgid ""
+"For example, with B<dist=2> and eight-byte input A1 B1 A2 B3 A3 B5 A4 B7, "
+"the output will be A1 B1 01 02 01 02 01 02."
+msgstr ""
+
+#. type: SS
+#: ../src/xz/xz.1:1654
+#, no-wrap
+msgid "Other options"
+msgstr ""
+
+#. type: TP
+#: ../src/xz/xz.1:1655 ../src/xzdec/xzdec.1:83
+#, no-wrap
+msgid "B<-q>, B<--quiet>"
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:1662
+msgid ""
+"Suppress warnings and notices.  Specify this twice to suppress errors too.  "
+"This option has no effect on the exit status.  That is, even if a warning "
+"was suppressed, the exit status to indicate a warning is still used."
+msgstr ""
+
+#. type: TP
+#: ../src/xz/xz.1:1662
+#, no-wrap
+msgid "B<-v>, B<--verbose>"
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:1671
+msgid ""
+"Be verbose.  If standard error is connected to a terminal, B<xz> will "
+"display a progress indicator.  Specifying B<--verbose> twice will give even "
+"more verbose output."
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:1673
+msgid "The progress indicator shows the following information:"
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:1678
+msgid ""
+"Completion percentage is shown if the size of the input file is known.  That "
+"is, the percentage cannot be shown in pipes."
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:1681
+msgid ""
+"Amount of compressed data produced (compressing)  or consumed "
+"(decompressing)."
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:1684
+msgid ""
+"Amount of uncompressed data consumed (compressing)  or produced "
+"(decompressing)."
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:1688
+msgid ""
+"Compression ratio, which is calculated by dividing the amount of compressed "
+"data processed so far by the amount of uncompressed data processed so far."
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:1695
+msgid ""
+"Compression or decompression speed.  This is measured as the amount of "
+"uncompressed data consumed (compression) or produced (decompression) per "
+"second.  It is shown after a few seconds have passed since B<xz> started "
+"processing the file."
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:1697
+msgid "Elapsed time in the format M:SS or H:MM:SS."
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:1705
+msgid ""
+"Estimated remaining time is shown only when the size of the input file is "
+"known and a couple of seconds have already passed since B<xz> started "
+"processing the file.  The time is shown in a less precise format which never "
+"has any colons, e.g. 2 min 30 s."
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:1720
+msgid ""
+"When standard error is not a terminal, B<--verbose> will make B<xz> print "
+"the filename, compressed size, uncompressed size, compression ratio, and "
+"possibly also the speed and elapsed time on a single line to standard error "
+"after compressing or decompressing the file.  The speed and elapsed time are "
+"included only when the operation took at least a few seconds.  If the "
+"operation didn't finish, e.g. due to user interruption, also the completion "
+"percentage is printed if the size of the input file is known."
+msgstr ""
+
+#. type: TP
+#: ../src/xz/xz.1:1720 ../src/xzdec/xzdec.1:89
+#, no-wrap
+msgid "B<-Q>, B<--no-warn>"
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:1730
+msgid ""
+"Don't set the exit status to 2 even if a condition worth a warning was "
+"detected.  This option doesn't affect the verbosity level, thus both "
+"B<--quiet> and B<--no-warn> have to be used to not display warnings and to "
+"not alter the exit status."
+msgstr ""
+
+#. type: TP
+#: ../src/xz/xz.1:1730
+#, no-wrap
+msgid "B<--robot>"
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:1742
+msgid ""
+"Print messages in a machine-parsable format.  This is intended to ease "
+"writing frontends that want to use B<xz> instead of liblzma, which may be "
+"the case with various scripts.  The output with this option enabled is meant "
+"to be stable across B<xz> releases.  See the section B<ROBOT MODE> for "
+"details."
+msgstr ""
+
+#. type: TP
+#: ../src/xz/xz.1:1742
+#, no-wrap
+msgid "B<--info-memory>"
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:1748
+msgid ""
+"Display, in human-readable format, how much physical memory (RAM)  B<xz> "
+"thinks the system has and the memory usage limits for compression and "
+"decompression, and exit successfully."
+msgstr ""
+
+#. type: TP
+#: ../src/xz/xz.1:1748 ../src/xzdec/xzdec.1:96
+#, no-wrap
+msgid "B<-h>, B<--help>"
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:1752
+msgid ""
+"Display a help message describing the most commonly used options, and exit "
+"successfully."
+msgstr ""
+
+#. type: TP
+#: ../src/xz/xz.1:1752
+#, no-wrap
+msgid "B<-H>, B<--long-help>"
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:1757
+msgid ""
+"Display a help message describing all features of B<xz>, and exit "
+"successfully"
+msgstr ""
+
+#. type: TP
+#: ../src/xz/xz.1:1757 ../src/xzdec/xzdec.1:99
+#, no-wrap
+msgid "B<-V>, B<--version>"
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:1766
+msgid ""
+"Display the version number of B<xz> and liblzma in human readable format.  "
+"To get machine-parsable output, specify B<--robot> before B<--version>."
+msgstr ""
+
+#. type: SH
+#: ../src/xz/xz.1:1767
+#, no-wrap
+msgid "ROBOT MODE"
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:1783
+msgid ""
+"The robot mode is activated with the B<--robot> option.  It makes the output "
+"of B<xz> easier to parse by other programs.  Currently B<--robot> is "
+"supported only together with B<--version>, B<--info-memory>, and B<--list>.  "
+"It will be supported for compression and decompression in the future."
+msgstr ""
+
+#. type: SS
+#: ../src/xz/xz.1:1784
+#, no-wrap
+msgid "Version"
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:1789
+msgid ""
+"B<xz --robot --version> will print the version number of B<xz> and liblzma "
+"in the following format:"
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:1791
+msgid "B<XZ_VERSION=>I<XYYYZZZS>"
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:1793
+msgid "B<LIBLZMA_VERSION=>I<XYYYZZZS>"
+msgstr ""
+
+#. type: TP
+#: ../src/xz/xz.1:1793
+#, no-wrap
+msgid "I<X>"
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:1796
+msgid "Major version."
+msgstr ""
+
+#. type: TP
+#: ../src/xz/xz.1:1796
+#, no-wrap
+msgid "I<YYY>"
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:1801
+msgid ""
+"Minor version.  Even numbers are stable.  Odd numbers are alpha or beta "
+"versions."
+msgstr ""
+
+#. type: TP
+#: ../src/xz/xz.1:1801
+#, no-wrap
+msgid "I<ZZZ>"
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:1805
+msgid "Patch level for stable releases or just a counter for development releases."
+msgstr ""
+
+#. type: TP
+#: ../src/xz/xz.1:1805
+#, no-wrap
+msgid "I<S>"
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:1813
+msgid ""
+"Stability.  0 is alpha, 1 is beta, and 2 is stable.  I<S> should be always 2 "
+"when I<YYY> is even."
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:1818
+msgid ""
+"I<XYYYZZZS> are the same on both lines if B<xz> and liblzma are from the "
+"same XZ Utils release."
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:1824
+msgid "Examples: 4.999.9beta is B<49990091> and 5.0.0 is B<50000002>."
+msgstr ""
+
+#. type: SS
+#: ../src/xz/xz.1:1825
+#, no-wrap
+msgid "Memory limit information"
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:1828
+msgid ""
+"B<xz --robot --info-memory> prints a single line with three tab-separated "
+"columns:"
+msgstr ""
+
+#. type: IP
+#: ../src/xz/xz.1:1828
+#, no-wrap
+msgid "1."
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:1830
+msgid "Total amount of physical memory (RAM) in bytes"
+msgstr ""
+
+#. type: IP
+#: ../src/xz/xz.1:1830 ../src/xz/xz.1:1910 ../src/xz/xz.1:1947 ../src/xz/xz.1:1973 ../src/xz/xz.1:2043 ../src/xz/xz.1:2070
+#, no-wrap
+msgid "2."
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:1834
+msgid ""
+"Memory usage limit for compression in bytes.  A special value of zero "
+"indicates the default setting, which for single-threaded mode is the same as "
+"no limit."
+msgstr ""
+
+#. type: IP
+#: ../src/xz/xz.1:1834 ../src/xz/xz.1:1912 ../src/xz/xz.1:1949 ../src/xz/xz.1:1975 ../src/xz/xz.1:2048 ../src/xz/xz.1:2072
+#, no-wrap
+msgid "3."
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:1838
+msgid ""
+"Memory usage limit for decompression in bytes.  A special value of zero "
+"indicates the default setting, which for single-threaded mode is the same as "
+"no limit."
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:1842
+msgid ""
+"In the future, the output of B<xz --robot --info-memory> may have more "
+"columns, but never more than a single line."
+msgstr ""
+
+#. type: SS
+#: ../src/xz/xz.1:1843
+#, no-wrap
+msgid "List mode"
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:1848
+msgid ""
+"B<xz --robot --list> uses tab-separated output.  The first column of every "
+"line has a string that indicates the type of the information found on that "
+"line:"
+msgstr ""
+
+#. type: TP
+#: ../src/xz/xz.1:1848
+#, no-wrap
+msgid "B<name>"
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:1852
+msgid ""
+"This is always the first line when starting to list a file.  The second "
+"column on the line is the filename."
+msgstr ""
+
+#. type: TP
+#: ../src/xz/xz.1:1852
+#, no-wrap
+msgid "B<file>"
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:1860
+msgid ""
+"This line contains overall information about the B<.xz> file.  This line is "
+"always printed after the B<name> line."
+msgstr ""
+
+#. type: TP
+#: ../src/xz/xz.1:1860
+#, no-wrap
+msgid "B<stream>"
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:1870
+msgid ""
+"This line type is used only when B<--verbose> was specified.  There are as "
+"many B<stream> lines as there are streams in the B<.xz> file."
+msgstr ""
+
+#. type: TP
+#: ../src/xz/xz.1:1870
+#, no-wrap
+msgid "B<block>"
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:1885
+msgid ""
+"This line type is used only when B<--verbose> was specified.  There are as "
+"many B<block> lines as there are blocks in the B<.xz> file.  The B<block> "
+"lines are shown after all the B<stream> lines; different line types are not "
+"interleaved."
+msgstr ""
+
+#. type: TP
+#: ../src/xz/xz.1:1885
+#, no-wrap
+msgid "B<summary>"
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:1900
+msgid ""
+"This line type is used only when B<--verbose> was specified twice.  This "
+"line is printed after all B<block> lines.  Like the B<file> line, the "
+"B<summary> line contains overall information about the B<.xz> file."
+msgstr ""
+
+#. type: TP
+#: ../src/xz/xz.1:1900
+#, no-wrap
+msgid "B<totals>"
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:1904
+msgid ""
+"This line is always the very last line of the list output.  It shows the "
+"total counts and sizes."
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:1908
+msgid "The columns of the B<file> lines:"
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:1912
+msgid "Number of streams in the file"
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:1914
+msgid "Total number of blocks in the stream(s)"
+msgstr ""
+
+#. type: IP
+#: ../src/xz/xz.1:1914 ../src/xz/xz.1:1951 ../src/xz/xz.1:1978 ../src/xz/xz.1:2058 ../src/xz/xz.1:2074
+#, no-wrap
+msgid "4."
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:1916
+msgid "Compressed size of the file"
+msgstr ""
+
+#. type: IP
+#: ../src/xz/xz.1:1916 ../src/xz/xz.1:1953 ../src/xz/xz.1:1980 ../src/xz/xz.1:2076
+#, no-wrap
+msgid "5."
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:1918
+msgid "Uncompressed size of the file"
+msgstr ""
+
+#. type: IP
+#: ../src/xz/xz.1:1918 ../src/xz/xz.1:1955 ../src/xz/xz.1:1982 ../src/xz/xz.1:2078
+#, no-wrap
+msgid "6."
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:1924
+msgid ""
+"Compression ratio, for example B<0.123.> If ratio is over 9.999, three "
+"dashes (B<--->)  are displayed instead of the ratio."
+msgstr ""
+
+#. type: IP
+#: ../src/xz/xz.1:1924 ../src/xz/xz.1:1957 ../src/xz/xz.1:1984 ../src/xz/xz.1:2080
+#, no-wrap
+msgid "7."
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:1937
+msgid ""
+"Comma-separated list of integrity check names.  The following strings are "
+"used for the known check types: B<None>, B<CRC32>, B<CRC64>, and "
+"B<SHA-256>.  For unknown check types, B<Unknown->I<N> is used, where I<N> is "
+"the Check ID as a decimal number (one or two digits)."
+msgstr ""
+
+#. type: IP
+#: ../src/xz/xz.1:1937 ../src/xz/xz.1:1959 ../src/xz/xz.1:1986 ../src/xz/xz.1:2083
+#, no-wrap
+msgid "8."
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:1939
+msgid "Total size of stream padding in the file"
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:1945
+msgid "The columns of the B<stream> lines:"
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:1949
+msgid "Stream number (the first stream is 1)"
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:1951
+msgid "Number of blocks in the stream"
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:1953
+msgid "Compressed start offset"
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:1955
+msgid "Uncompressed start offset"
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:1957
+msgid "Compressed size (does not include stream padding)"
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:1959 ../src/xz/xz.1:1988 ../src/xz/xz.1:2078
+msgid "Uncompressed size"
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:1961 ../src/xz/xz.1:1990
+msgid "Compression ratio"
+msgstr ""
+
+#. type: IP
+#: ../src/xz/xz.1:1961 ../src/xz/xz.1:1988 ../src/xz/xz.1:2085
+#, no-wrap
+msgid "9."
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:1963 ../src/xz/xz.1:1992
+msgid "Name of the integrity check"
+msgstr ""
+
+#. type: IP
+#: ../src/xz/xz.1:1963 ../src/xz/xz.1:1990 ../src/xz/xz.1:2101
+#, no-wrap
+msgid "10."
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:1965
+msgid "Size of stream padding"
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:1971
+msgid "The columns of the B<block> lines:"
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:1975
+msgid "Number of the stream containing this block"
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:1978
+msgid "Block number relative to the beginning of the stream (the first block is 1)"
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:1980
+msgid "Block number relative to the beginning of the file"
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:1982
+msgid "Compressed start offset relative to the beginning of the file"
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:1984
+msgid "Uncompressed start offset relative to the beginning of the file"
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:1986
+msgid "Total compressed size of the block (includes headers)"
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:2004
+msgid ""
+"If B<--verbose> was specified twice, additional columns are included on the "
+"B<block> lines.  These are not displayed with a single B<--verbose>, because "
+"getting this information requires many seeks and can thus be slow:"
+msgstr ""
+
+#. type: IP
+#: ../src/xz/xz.1:2006 ../src/xz/xz.1:2106
+#, no-wrap
+msgid "11."
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:2008
+msgid "Value of the integrity check in hexadecimal"
+msgstr ""
+
+#. type: IP
+#: ../src/xz/xz.1:2008 ../src/xz/xz.1:2116
+#, no-wrap
+msgid "12."
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:2010
+msgid "Block header size"
+msgstr ""
+
+#. type: IP
+#: ../src/xz/xz.1:2010
+#, no-wrap
+msgid "13."
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:2020
+msgid ""
+"Block flags: B<c> indicates that compressed size is present, and B<u> "
+"indicates that uncompressed size is present.  If the flag is not set, a dash "
+"(B<->)  is shown instead to keep the string length fixed.  New flags may be "
+"added to the end of the string in the future."
+msgstr ""
+
+#. type: IP
+#: ../src/xz/xz.1:2020
+#, no-wrap
+msgid "14."
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:2023
+msgid ""
+"Size of the actual compressed data in the block (this excludes the block "
+"header, block padding, and check fields)"
+msgstr ""
+
+#. type: IP
+#: ../src/xz/xz.1:2023
+#, no-wrap
+msgid "15."
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:2028
+msgid ""
+"Amount of memory (in bytes) required to decompress this block with this "
+"B<xz> version"
+msgstr ""
+
+#. type: IP
+#: ../src/xz/xz.1:2028
+#, no-wrap
+msgid "16."
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:2035
+msgid ""
+"Filter chain.  Note that most of the options used at compression time cannot "
+"be known, because only the options that are needed for decompression are "
+"stored in the B<.xz> headers."
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:2041
+msgid "The columns of the B<summary> lines:"
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:2048
+msgid ""
+"Amount of memory (in bytes) required to decompress this file with this B<xz> "
+"version"
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:2054 ../src/xz/xz.1:2112
+msgid ""
+"B<yes> or B<no> indicating if all block headers have both compressed size "
+"and uncompressed size stored in them"
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:2058 ../src/xz/xz.1:2116
+msgid "I<Since> B<xz> I<5.1.2alpha:>"
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:2062 ../src/xz/xz.1:2120
+msgid "Minimum B<xz> version required to decompress the file"
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:2068
+msgid "The columns of the B<totals> line:"
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:2072
+msgid "Number of streams"
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:2074
+msgid "Number of blocks"
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:2076
+msgid "Compressed size"
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:2080
+msgid "Average compression ratio"
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:2083
+msgid "Comma-separated list of integrity check names that were present in the files"
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:2085
+msgid "Stream padding size"
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:2091
+msgid ""
+"Number of files.  This is here to keep the order of the earlier columns the "
+"same as on B<file> lines."
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:2099
+msgid ""
+"If B<--verbose> was specified twice, additional columns are included on the "
+"B<totals> line:"
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:2106
+msgid ""
+"Maximum amount of memory (in bytes) required to decompress the files with "
+"this B<xz> version"
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:2126
+msgid ""
+"Future versions may add new line types and new columns can be added to the "
+"existing line types, but the existing columns won't be changed."
+msgstr ""
+
+#. type: SH
+#: ../src/xz/xz.1:2127 ../src/xzdec/xzdec.1:104 ../src/lzmainfo/lzmainfo.1:44
+#, no-wrap
+msgid "EXIT STATUS"
+msgstr ""
+
+#. type: TP
+#: ../src/xz/xz.1:2128 ../src/xzdec/xzdec.1:105 ../src/lzmainfo/lzmainfo.1:45
+#, no-wrap
+msgid "B<0>"
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:2131 ../src/lzmainfo/lzmainfo.1:48
+msgid "All is good."
+msgstr ""
+
+#. type: TP
+#: ../src/xz/xz.1:2131 ../src/xzdec/xzdec.1:108 ../src/lzmainfo/lzmainfo.1:48
+#, no-wrap
+msgid "B<1>"
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:2134 ../src/xzdec/xzdec.1:111 ../src/lzmainfo/lzmainfo.1:51
+msgid "An error occurred."
+msgstr ""
+
+#. type: TP
+#: ../src/xz/xz.1:2134
+#, no-wrap
+msgid "B<2>"
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:2138
+msgid "Something worth a warning occurred, but no actual errors occurred."
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:2141
+msgid ""
+"Notices (not warnings or errors) printed on standard error don't affect the "
+"exit status."
+msgstr ""
+
+#. type: SH
+#: ../src/xz/xz.1:2142 ../src/scripts/xzgrep.1:80 ../src/scripts/xzless.1:52
+#, no-wrap
+msgid "ENVIRONMENT"
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:2155
+msgid ""
+"B<xz> parses space-separated lists of options from the environment variables "
+"B<XZ_DEFAULTS> and B<XZ_OPT>, in this order, before parsing the options from "
+"the command line.  Note that only options are parsed from the environment "
+"variables; all non-options are silently ignored.  Parsing is done with "
+"B<getopt_long>(3)  which is used also for the command line arguments."
+msgstr ""
+
+#. type: TP
+#: ../src/xz/xz.1:2155
+#, no-wrap
+msgid "B<XZ_DEFAULTS>"
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:2164
+msgid ""
+"User-specific or system-wide default options.  Typically this is set in a "
+"shell initialization script to enable B<xz>'s memory usage limiter by "
+"default.  Excluding shell initialization scripts and similar special cases, "
+"scripts must never set or unset B<XZ_DEFAULTS>."
+msgstr ""
+
+#. type: TP
+#: ../src/xz/xz.1:2164
+#, no-wrap
+msgid "B<XZ_OPT>"
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:2175
+msgid ""
+"This is for passing options to B<xz> when it is not possible to set the "
+"options directly on the B<xz> command line.  This is the case e.g. when "
+"B<xz> is run by a script or tool, e.g. GNU B<tar>(1):"
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:2181
+#, no-wrap
+msgid "CW<XZ_OPT=-2v tar caf foo.tar.xz foo>\n"
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:2194
+msgid ""
+"Scripts may use B<XZ_OPT> e.g. to set script-specific default compression "
+"options.  It is still recommended to allow users to override B<XZ_OPT> if "
+"that is reasonable, e.g. in B<sh>(1)  scripts one may use something like "
+"this:"
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:2201
+#, no-wrap
+msgid ""
+"CW<XZ_OPT=${XZ_OPT-\"-7e\"}\n"
+"export XZ_OPT>\n"
+msgstr ""
+
+#. type: SH
+#: ../src/xz/xz.1:2206
+#, no-wrap
+msgid "LZMA UTILS COMPATIBILITY"
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:2219
+msgid ""
+"The command line syntax of B<xz> is practically a superset of B<lzma>, "
+"B<unlzma>, and B<lzcat> as found from LZMA Utils 4.32.x.  In most cases, it "
+"is possible to replace LZMA Utils with XZ Utils without breaking existing "
+"scripts.  There are some incompatibilities though, which may sometimes cause "
+"problems."
+msgstr ""
+
+#. type: SS
+#: ../src/xz/xz.1:2220
+#, no-wrap
+msgid "Compression preset levels"
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:2227
+msgid ""
+"The numbering of the compression level presets is not identical in B<xz> and "
+"LZMA Utils.  The most important difference is how dictionary sizes are "
+"mapped to different presets.  Dictionary size is roughly equal to the "
+"decompressor memory usage."
+msgstr ""
+
+#. type: tbl table
+#: ../src/xz/xz.1:2233 ../src/xz/xz.1:2258
+#, no-wrap
+msgid "Level"
+msgstr ""
+
+#. type: tbl table
+#: ../src/xz/xz.1:2233 ../src/xz/xz.1:2258
+#, no-wrap
+msgid "xz"
+msgstr ""
+
+#. type: tbl table
+#: ../src/xz/xz.1:2233
+#, no-wrap
+msgid "LZMA Utils"
+msgstr ""
+
+#. type: tbl table
+#: ../src/xz/xz.1:2234 ../src/xz/xz.1:2259
+#, no-wrap
+msgid "N/A"
+msgstr ""
+
+#. type: tbl table
+#: ../src/xz/xz.1:2235
+#, no-wrap
+msgid "64 KiB"
+msgstr ""
+
+#. type: tbl table
+#: ../src/xz/xz.1:2237
+#, no-wrap
+msgid "512 KiB"
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:2252
+msgid ""
+"The dictionary size differences affect the compressor memory usage too, but "
+"there are some other differences between LZMA Utils and XZ Utils, which make "
+"the difference even bigger:"
+msgstr ""
+
+#. type: tbl table
+#: ../src/xz/xz.1:2258
+#, no-wrap
+msgid "LZMA Utils 4.32.x"
+msgstr ""
+
+#. type: tbl table
+#: ../src/xz/xz.1:2261 ../src/xz/xz.1:2262
+#, no-wrap
+msgid "12 MiB"
+msgstr ""
+
+#. type: tbl table
+#: ../src/xz/xz.1:2264
+#, no-wrap
+msgid "26 MiB"
+msgstr ""
+
+#. type: tbl table
+#: ../src/xz/xz.1:2265
+#, no-wrap
+msgid "45 MiB"
+msgstr ""
+
+#. type: tbl table
+#: ../src/xz/xz.1:2266
+#, no-wrap
+msgid "83 MiB"
+msgstr ""
+
+#. type: tbl table
+#: ../src/xz/xz.1:2267
+#, no-wrap
+msgid "159 MiB"
+msgstr ""
+
+#. type: tbl table
+#: ../src/xz/xz.1:2268
+#, no-wrap
+msgid "311 MiB"
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:2277
+msgid ""
+"The default preset level in LZMA Utils is B<-7> while in XZ Utils it is "
+"B<-6>, so both use an 8 MiB dictionary by default."
+msgstr ""
+
+#. type: SS
+#: ../src/xz/xz.1:2278
+#, no-wrap
+msgid "Streamed vs. non-streamed .lzma files"
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:2288
+msgid ""
+"The uncompressed size of the file can be stored in the B<.lzma> header.  "
+"LZMA Utils does that when compressing regular files.  The alternative is to "
+"mark that uncompressed size is unknown and use end-of-payload marker to "
+"indicate where the decompressor should stop.  LZMA Utils uses this method "
+"when uncompressed size isn't known, which is the case for example in pipes."
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:2309
+msgid ""
+"B<xz> supports decompressing B<.lzma> files with or without end-of-payload "
+"marker, but all B<.lzma> files created by B<xz> will use end-of-payload "
+"marker and have uncompressed size marked as unknown in the B<.lzma> header.  "
+"This may be a problem in some uncommon situations.  For example, a B<.lzma> "
+"decompressor in an embedded device might work only with files that have "
+"known uncompressed size.  If you hit this problem, you need to use LZMA "
+"Utils or LZMA SDK to create B<.lzma> files with known uncompressed size."
+msgstr ""
+
+#. type: SS
+#: ../src/xz/xz.1:2310
+#, no-wrap
+msgid "Unsupported .lzma files"
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:2333
+msgid ""
+"The B<.lzma> format allows I<lc> values up to 8, and I<lp> values up to 4.  "
+"LZMA Utils can decompress files with any I<lc> and I<lp>, but always creates "
+"files with B<lc=3> and B<lp=0>.  Creating files with other I<lc> and I<lp> "
+"is possible with B<xz> and with LZMA SDK."
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:2344
+msgid ""
+"The implementation of the LZMA1 filter in liblzma requires that the sum of "
+"I<lc> and I<lp> must not exceed 4.  Thus, B<.lzma> files, which exceed this "
+"limitation, cannot be decompressed with B<xz>."
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:2359
+msgid ""
+"LZMA Utils creates only B<.lzma> files which have a dictionary size of "
+"2^I<n> (a power of 2) but accepts files with any dictionary size.  liblzma "
+"accepts only B<.lzma> files which have a dictionary size of 2^I<n> or 2^I<n> "
+"+ 2^(I<n>-1).  This is to decrease false positives when detecting B<.lzma> "
+"files."
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:2364
+msgid ""
+"These limitations shouldn't be a problem in practice, since practically all "
+"B<.lzma> files have been compressed with settings that liblzma will accept."
+msgstr ""
+
+#. type: SS
+#: ../src/xz/xz.1:2365
+#, no-wrap
+msgid "Trailing garbage"
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:2375
+msgid ""
+"When decompressing, LZMA Utils silently ignore everything after the first "
+"B<.lzma> stream.  In most situations, this is a bug.  This also means that "
+"LZMA Utils don't support decompressing concatenated B<.lzma> files."
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:2385
+msgid ""
+"If there is data left after the first B<.lzma> stream, B<xz> considers the "
+"file to be corrupt unless B<--single-stream> was used.  This may break "
+"obscure scripts which have assumed that trailing garbage is ignored."
+msgstr ""
+
+#. type: SH
+#: ../src/xz/xz.1:2386 ../src/xzdec/xzdec.1:117
+#, no-wrap
+msgid "NOTES"
+msgstr ""
+
+#. type: SS
+#: ../src/xz/xz.1:2388
+#, no-wrap
+msgid "Compressed output may vary"
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:2399
+msgid ""
+"The exact compressed output produced from the same uncompressed input file "
+"may vary between XZ Utils versions even if compression options are "
+"identical.  This is because the encoder can be improved (faster or better "
+"compression)  without affecting the file format.  The output can vary even "
+"between different builds of the same XZ Utils version, if different build "
+"options are used."
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:2409
+msgid ""
+"The above means that once B<--rsyncable> has been implemented, the resulting "
+"files won't necessarily be rsyncable unless both old and new files have been "
+"compressed with the same xz version.  This problem can be fixed if a part of "
+"the encoder implementation is frozen to keep rsyncable output stable across "
+"xz versions."
+msgstr ""
+
+#. type: SS
+#: ../src/xz/xz.1:2410
+#, no-wrap
+msgid "Embedded .xz decompressors"
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:2427
+msgid ""
+"Embedded B<.xz> decompressor implementations like XZ Embedded don't "
+"necessarily support files created with integrity I<check> types other than "
+"B<none> and B<crc32>.  Since the default is B<--check=crc64>, you must use "
+"B<--check=none> or B<--check=crc32> when creating files for embedded "
+"systems."
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:2437
+msgid ""
+"Outside embedded systems, all B<.xz> format decompressors support all the "
+"I<check> types, or at least are able to decompress the file without "
+"verifying the integrity check if the particular I<check> is not supported."
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:2440
+msgid "XZ Embedded supports BCJ filters, but only with the default start offset."
+msgstr ""
+
+#. type: SH
+#: ../src/xz/xz.1:2441
+#, no-wrap
+msgid "EXAMPLES"
+msgstr ""
+
+#. type: SS
+#: ../src/xz/xz.1:2443
+#, no-wrap
+msgid "Basics"
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:2453
+msgid ""
+"Compress the file I<foo> into I<foo.xz> using the default compression level "
+"(B<-6>), and remove I<foo> if compression is successful:"
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:2458
+#, no-wrap
+msgid "CW<xz foo>\n"
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:2469
+msgid ""
+"Decompress I<bar.xz> into I<bar> and don't remove I<bar.xz> even if "
+"decompression is successful:"
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:2474
+#, no-wrap
+msgid "CW<xz -dk bar.xz>\n"
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:2487
+msgid ""
+"Create I<baz.tar.xz> with the preset B<-4e> (B<-4 --extreme>), which is "
+"slower than e.g. the default B<-6>, but needs less memory for compression "
+"and decompression (48\\ MiB and 5\\ MiB, respectively):"
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:2492
+#, no-wrap
+msgid "CW<tar cf - baz | xz -4e E<gt> baz.tar.xz>\n"
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:2498
+msgid ""
+"A mix of compressed and uncompressed files can be decompressed to standard "
+"output with a single command:"
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:2503
+#, no-wrap
+msgid "CW<xz -dcf a.txt b.txt.xz c.txt d.txt.lzma E<gt> abcd.txt>\n"
+msgstr ""
+
+#. type: SS
+#: ../src/xz/xz.1:2507
+#, no-wrap
+msgid "Parallel compression of many files"
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:2513
+msgid ""
+"On GNU and *BSD, B<find>(1)  and B<xargs>(1)  can be used to parallelize "
+"compression of many files:"
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:2519
+#, no-wrap
+msgid ""
+"CW<find . -type f \\e! -name '*.xz' -print0 \\e\n"
+"    | xargs -0r -P4 -n16 xz -T1>\n"
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:2541
+msgid ""
+"The B<-P> option to B<xargs>(1)  sets the number of parallel B<xz> "
+"processes.  The best value for the B<-n> option depends on how many files "
+"there are to be compressed.  If there are only a couple of files, the value "
+"should probably be 1; with tens of thousands of files, 100 or even more may "
+"be appropriate to reduce the number of B<xz> processes that B<xargs>(1)  "
+"will eventually create."
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:2549
+msgid ""
+"The option B<-T1> for B<xz> is there to force it to single-threaded mode, "
+"because B<xargs>(1)  is used to control the amount of parallelization."
+msgstr ""
+
+#. type: SS
+#: ../src/xz/xz.1:2550
+#, no-wrap
+msgid "Robot mode"
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:2553
+msgid ""
+"Calculate how many bytes have been saved in total after compressing multiple "
+"files:"
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:2558
+#, no-wrap
+msgid "CW<xz --robot --list *.xz | awk '/^totals/{print $5-$4}'>\n"
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:2573
+msgid ""
+"A script may want to know that it is using new enough B<xz>.  The following "
+"B<sh>(1)  script checks that the version number of the B<xz> tool is at "
+"least 5.0.0.  This method is compatible with old beta versions, which didn't "
+"support the B<--robot> option:"
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:2582
+#, no-wrap
+msgid ""
+"CW<if ! eval \"$(xz --robot --version 2E<gt> /dev/null)\" ||\n"
+"        [ \"$XZ_VERSION\" -lt 50000002 ]; then\n"
+"    echo \"Your xz is too old.\"\n"
+"fi\n"
+"unset XZ_VERSION LIBLZMA_VERSION>\n"
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:2589
+msgid ""
+"Set a memory usage limit for decompression using B<XZ_OPT>, but if a limit "
+"has already been set, don't increase it:"
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:2599
+#, no-wrap
+msgid ""
+"CW<NEWLIM=$((123 E<lt>E<lt> 20))  # 123 MiB\n"
+"OLDLIM=$(xz --robot --info-memory | cut -f3)\n"
+"if [ $OLDLIM -eq 0 -o $OLDLIM -gt $NEWLIM ]; then\n"
+"    XZ_OPT=\"$XZ_OPT --memlimit-decompress=$NEWLIM\"\n"
+"    export XZ_OPT\n"
+"fi>\n"
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:2609
+msgid ""
+"The simplest use for custom filter chains is customizing a LZMA2 preset.  "
+"This can be useful, because the presets cover only a subset of the "
+"potentially useful combinations of compression settings."
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:2617
+msgid ""
+"The CompCPU columns of the tables from the descriptions of the options B<-0> "
+"... B<-9> and B<--extreme> are useful when customizing LZMA2 presets.  Here "
+"are the relevant parts collected from those two tables:"
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:2642
+msgid ""
+"If you know that a file requires somewhat big dictionary (e.g. 32 MiB) to "
+"compress well, but you want to compress it quicker than B<xz -8> would do, a "
+"preset with a low CompCPU value (e.g. 1)  can be modified to use a bigger "
+"dictionary:"
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:2647
+#, no-wrap
+msgid "CW<xz --lzma2=preset=1,dict=32MiB foo.tar>\n"
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:2663
+msgid ""
+"With certain files, the above command may be faster than B<xz -6> while "
+"compressing significantly better.  However, it must be emphasized that only "
+"some files benefit from a big dictionary while keeping the CompCPU value "
+"low.  The most obvious situation, where a big dictionary can help a lot, is "
+"an archive containing very similar files of at least a few megabytes each.  "
+"The dictionary size has to be significantly bigger than any individual file "
+"to allow LZMA2 to take full advantage of the similarities between "
+"consecutive files."
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:2670
+msgid ""
+"If very high compressor and decompressor memory usage is fine, and the file "
+"being compressed is at least several hundred megabytes, it may be useful to "
+"use an even bigger dictionary than the 64 MiB that B<xz -9> would use:"
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:2675
+#, no-wrap
+msgid "CW<xz -vv --lzma2=dict=192MiB big_foo.tar>\n"
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:2688
+msgid ""
+"Using B<-vv> (B<--verbose --verbose>)  like in the above example can be "
+"useful to see the memory requirements of the compressor and decompressor.  "
+"Remember that using a dictionary bigger than the size of the uncompressed "
+"file is waste of memory, so the above command isn't useful for small files."
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:2701
+msgid ""
+"Sometimes the compression time doesn't matter, but the decompressor memory "
+"usage has to be kept low e.g. to make it possible to decompress the file on "
+"an embedded system.  The following command uses B<-6e> (B<-6 --extreme>)  as "
+"a base and sets the dictionary to only 64\\ KiB.  The resulting file can be "
+"decompressed with XZ Embedded (that's why there is B<--check=crc32>)  using "
+"about 100\\ KiB of memory."
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:2706
+#, no-wrap
+msgid "CW<xz --check=crc32 --lzma2=preset=6e,dict=64KiB foo>\n"
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:2729
+msgid ""
+"If you want to squeeze out as many bytes as possible, adjusting the number "
+"of literal context bits (I<lc>)  and number of position bits (I<pb>)  can "
+"sometimes help.  Adjusting the number of literal position bits (I<lp>)  "
+"might help too, but usually I<lc> and I<pb> are more important.  E.g. a "
+"source code archive contains mostly US-ASCII text, so something like the "
+"following might give slightly (like 0.1\\ %) smaller file than B<xz -6e> "
+"(try also without B<lc=4>):"
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:2734
+#, no-wrap
+msgid "CW<xz --lzma2=preset=6e,pb=0,lc=4 source_code.tar>\n"
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:2742
+msgid ""
+"Using another filter together with LZMA2 can improve compression with "
+"certain file types.  E.g. to compress a x86-32 or x86-64 shared library "
+"using the x86 BCJ filter:"
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:2747
+#, no-wrap
+msgid "CW<xz --x86 --lzma2 libfoo.so>\n"
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:2761
+msgid ""
+"Note that the order of the filter options is significant.  If B<--x86> is "
+"specified after B<--lzma2>, B<xz> will give an error, because there cannot "
+"be any filter after LZMA2, and also because the x86 BCJ filter cannot be "
+"used as the last filter in the chain."
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:2767
+msgid ""
+"The Delta filter together with LZMA2 can give good results with bitmap "
+"images.  It should usually beat PNG, which has a few more advanced filters "
+"than simple delta but uses Deflate for the actual compression."
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:2777
+msgid ""
+"The image has to be saved in uncompressed format, e.g. as uncompressed "
+"TIFF.  The distance parameter of the Delta filter is set to match the number "
+"of bytes per pixel in the image.  E.g. 24-bit RGB bitmap needs B<dist=3>, "
+"and it is also good to pass B<pb=0> to LZMA2 to accommodate the three-byte "
+"alignment:"
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:2782
+#, no-wrap
+msgid "CW<xz --delta=dist=3 --lzma2=pb=0 foo.tiff>\n"
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:2790
+msgid ""
+"If multiple images have been put into a single archive (e.g.\\& B<.tar>), "
+"the Delta filter will work on that too as long as all images have the same "
+"number of bytes per pixel."
+msgstr ""
+
+#. type: SH
+#: ../src/xz/xz.1:2791 ../src/xzdec/xzdec.1:143 ../src/lzmainfo/lzmainfo.1:59 ../src/scripts/xzdiff.1:64 ../src/scripts/xzgrep.1:92 ../src/scripts/xzless.1:65 ../src/scripts/xzmore.1:51
+#, no-wrap
+msgid "SEE ALSO"
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:2800
+msgid ""
+"B<xzdec>(1), B<xzdiff>(1), B<xzgrep>(1), B<xzless>(1), B<xzmore>(1), "
+"B<gzip>(1), B<bzip2>(1), B<7z>(1)"
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:2802
+msgid "XZ Utils: E<lt>https://tukaani.org/xz/E<gt>"
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:2804 ../src/xzdec/xzdec.1:146
+msgid "XZ Embedded: E<lt>https://tukaani.org/xz/embedded.htmlE<gt>"
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:2805
+msgid "LZMA SDK: E<lt>http://7-zip.org/sdk.htmlE<gt>"
+msgstr ""
+
+#. type: TH
+#: ../src/xzdec/xzdec.1:7
+#, no-wrap
+msgid "XZDEC"
+msgstr ""
+
+#. type: TH
+#: ../src/xzdec/xzdec.1:7
+#, no-wrap
+msgid "2017-04-19"
+msgstr ""
+
+#. type: Plain text
+#: ../src/xzdec/xzdec.1:10
+msgid "xzdec, lzmadec - Small .xz and .lzma decompressors"
+msgstr ""
+
+#. type: Plain text
+#: ../src/xzdec/xzdec.1:14
+msgid "B<xzdec> [I<option...>] [I<file...>]"
+msgstr ""
+
+#. type: Plain text
+#: ../src/xzdec/xzdec.1:18
+msgid "B<lzmadec> [I<option...>] [I<file...>]"
+msgstr ""
+
+#. type: Plain text
+#: ../src/xzdec/xzdec.1:44
+msgid ""
+"B<xzdec> is a liblzma-based decompression-only tool for B<.xz> (and only "
+"B<.xz>)  files.  B<xzdec> is intended to work as a drop-in replacement for "
+"B<xz>(1)  in the most common situations where a script has been written to "
+"use B<xz --decompress --stdout> (and possibly a few other commonly used "
+"options) to decompress B<.xz> files.  B<lzmadec> is identical to B<xzdec> "
+"except that B<lzmadec> supports B<.lzma> files instead of B<.xz> files."
+msgstr ""
+
+#. type: Plain text
+#: ../src/xzdec/xzdec.1:61
+msgid ""
+"To reduce the size of the executable, B<xzdec> doesn't support "
+"multithreading or localization, and doesn't read options from B<XZ_DEFAULTS> "
+"and B<XZ_OPT> environment variables.  B<xzdec> doesn't support displaying "
+"intermediate progress information: sending B<SIGINFO> to B<xzdec> does "
+"nothing, but sending B<SIGUSR1> terminates the process instead of displaying "
+"progress information."
+msgstr ""
+
+#. type: Plain text
+#: ../src/xzdec/xzdec.1:69
+msgid "Ignored for B<xz>(1)  compatibility.  B<xzdec> supports only decompression."
+msgstr ""
+
+#. type: Plain text
+#: ../src/xzdec/xzdec.1:76
+msgid ""
+"Ignored for B<xz>(1)  compatibility.  B<xzdec> never creates or removes any "
+"files."
+msgstr ""
+
+#. type: Plain text
+#: ../src/xzdec/xzdec.1:83
+msgid ""
+"Ignored for B<xz>(1)  compatibility.  B<xzdec> always writes the "
+"decompressed data to standard output."
+msgstr ""
+
+#. type: Plain text
+#: ../src/xzdec/xzdec.1:89
+msgid ""
+"Specifying this once does nothing since B<xzdec> never displays any warnings "
+"or notices.  Specify this twice to suppress errors."
+msgstr ""
+
+#. type: Plain text
+#: ../src/xzdec/xzdec.1:96
+msgid "Ignored for B<xz>(1)  compatibility.  B<xzdec> never uses the exit status 2."
+msgstr ""
+
+#. type: Plain text
+#: ../src/xzdec/xzdec.1:99
+msgid "Display a help message and exit successfully."
+msgstr ""
+
+#. type: Plain text
+#: ../src/xzdec/xzdec.1:104
+msgid "Display the version number of B<xzdec> and liblzma."
+msgstr ""
+
+#. type: Plain text
+#: ../src/xzdec/xzdec.1:108
+msgid "All was good."
+msgstr ""
+
+#. type: Plain text
+#: ../src/xzdec/xzdec.1:117
+msgid ""
+"B<xzdec> doesn't have any warning messages like B<xz>(1)  has, thus the exit "
+"status 2 is not used by B<xzdec>."
+msgstr ""
+
+#. type: Plain text
+#: ../src/xzdec/xzdec.1:131
+msgid ""
+"Use B<xz>(1)  instead of B<xzdec> or B<lzmadec> for normal everyday use.  "
+"B<xzdec> or B<lzmadec> are meant only for situations where it is important "
+"to have a smaller decompressor than the full-featured B<xz>(1)."
+msgstr ""
+
+#. type: Plain text
+#: ../src/xzdec/xzdec.1:143
+msgid ""
+"B<xzdec> and B<lzmadec> are not really that small.  The size can be reduced "
+"further by dropping features from liblzma at compile time, but that "
+"shouldn't usually be done for executables distributed in typical "
+"non-embedded operating system distributions.  If you need a truly small "
+"B<.xz> decompressor, consider using XZ Embedded."
+msgstr ""
+
+#. type: Plain text
+#: ../src/xzdec/xzdec.1:145 ../src/lzmainfo/lzmainfo.1:60
+msgid "B<xz>(1)"
+msgstr ""
+
+#. type: TH
+#: ../src/lzmainfo/lzmainfo.1:7
+#, no-wrap
+msgid "LZMAINFO"
+msgstr ""
+
+#. type: TH
+#: ../src/lzmainfo/lzmainfo.1:7 ../src/scripts/xzmore.1:7
+#, no-wrap
+msgid "2013-06-30"
+msgstr ""
+
+#. type: Plain text
+#: ../src/lzmainfo/lzmainfo.1:10
+msgid "lzmainfo - show information stored in the .lzma file header"
+msgstr ""
+
+#. type: Plain text
+#: ../src/lzmainfo/lzmainfo.1:15
+msgid "B<lzmainfo> [B<--help>] [B<--version>] [I<file...>]"
+msgstr ""
+
+#. type: Plain text
+#: ../src/lzmainfo/lzmainfo.1:31
+msgid ""
+"B<lzmainfo> shows information stored in the B<.lzma> file header.  It reads "
+"the first 13 bytes from the specified I<file>, decodes the header, and "
+"prints it to standard output in human readable format.  If no I<files> are "
+"given or I<file> is B<->, standard input is read."
+msgstr ""
+
+#. type: Plain text
+#: ../src/lzmainfo/lzmainfo.1:40
+msgid ""
+"Usually the most interesting information is the uncompressed size and the "
+"dictionary size.  Uncompressed size can be shown only if the file is in the "
+"non-streamed B<.lzma> format variant.  The amount of memory required to "
+"decompress the file is a few dozen kilobytes plus the dictionary size."
+msgstr ""
+
+#. type: Plain text
+#: ../src/lzmainfo/lzmainfo.1:44
+msgid ""
+"B<lzmainfo> is included in XZ Utils primarily for backward compatibility "
+"with LZMA Utils."
+msgstr ""
+
+#. type: SH
+#: ../src/lzmainfo/lzmainfo.1:51 ../src/scripts/xzdiff.1:72
+#, no-wrap
+msgid "BUGS"
+msgstr ""
+
+#. type: Plain text
+#: ../src/lzmainfo/lzmainfo.1:59
+msgid ""
+"B<lzmainfo> uses B<MB> while the correct suffix would be B<MiB> (2^20 "
+"bytes).  This is to keep the output compatible with LZMA Utils."
+msgstr ""
+
+#. type: TH
+#: ../src/scripts/xzdiff.1:9
+#, no-wrap
+msgid "XZDIFF"
+msgstr ""
+
+#. type: TH
+#: ../src/scripts/xzdiff.1:9 ../src/scripts/xzgrep.1:9
+#, no-wrap
+msgid "2011-03-19"
+msgstr ""
+
+#. type: Plain text
+#: ../src/scripts/xzdiff.1:12
+msgid "xzcmp, xzdiff, lzcmp, lzdiff - compare compressed files"
+msgstr ""
+
+#. type: Plain text
+#: ../src/scripts/xzdiff.1:15
+msgid "B<xzcmp> [I<cmp_options>] I<file1> [I<file2>]"
+msgstr ""
+
+#. type: Plain text
+#: ../src/scripts/xzdiff.1:18
+msgid "B<xzdiff> [I<diff_options>] I<file1> [I<file2>]"
+msgstr ""
+
+#. type: Plain text
+#: ../src/scripts/xzdiff.1:21
+msgid "B<lzcmp> [I<cmp_options>] I<file1> [I<file2>]"
+msgstr ""
+
+#. type: Plain text
+#: ../src/scripts/xzdiff.1:24
+msgid "B<lzdiff> [I<diff_options>] I<file1> [I<file2>]"
+msgstr ""
+
+#. type: Plain text
+#: ../src/scripts/xzdiff.1:58
+msgid ""
+"B<xzcmp> and B<xzdiff> invoke B<cmp>(1)  or B<diff>(1)  on files compressed "
+"with B<xz>(1), B<lzma>(1), B<gzip>(1), B<bzip2>(1), or B<lzop>(1).  All "
+"options specified are passed directly to B<cmp>(1)  or B<diff>(1).  If only "
+"one file is specified, then the files compared are I<file1> (which must have "
+"a suffix of a supported compression format) and I<file1> from which the "
+"compression format suffix has been stripped.  If two files are specified, "
+"then they are uncompressed if necessary and fed to B<cmp>(1)  or "
+"B<diff>(1).  The exit status from B<cmp>(1)  or B<diff>(1)  is preserved."
+msgstr ""
+
+#. type: Plain text
+#: ../src/scripts/xzdiff.1:64
+msgid ""
+"The names B<lzcmp> and B<lzdiff> are provided for backward compatibility "
+"with LZMA Utils."
+msgstr ""
+
+#. type: Plain text
+#: ../src/scripts/xzdiff.1:72
+msgid ""
+"B<cmp>(1), B<diff>(1), B<xz>(1), B<gzip>(1), B<bzip2>(1), B<lzop>(1), "
+"B<zdiff>(1)"
+msgstr ""
+
+#. type: Plain text
+#: ../src/scripts/xzdiff.1:77
+msgid ""
+"Messages from the B<cmp>(1)  or B<diff>(1)  programs refer to temporary "
+"filenames instead of those specified."
+msgstr ""
+
+#. type: TH
+#: ../src/scripts/xzgrep.1:9
+#, no-wrap
+msgid "XZGREP"
+msgstr ""
+
+#. type: Plain text
+#: ../src/scripts/xzgrep.1:12
+msgid "xzgrep - search compressed files for a regular expression"
+msgstr ""
+
+#. type: Plain text
+#: ../src/scripts/xzgrep.1:18
+msgid "B<xzgrep> [I<grep_options>] [B<-e>] I<pattern> I<file>..."
+msgstr ""
+
+#. type: Plain text
+#: ../src/scripts/xzgrep.1:21
+msgid "B<xzegrep> ..."
+msgstr ""
+
+#. type: Plain text
+#: ../src/scripts/xzgrep.1:24
+msgid "B<xzfgrep> ..."
+msgstr ""
+
+#. type: Plain text
+#: ../src/scripts/xzgrep.1:27
+msgid "B<lzgrep> ..."
+msgstr ""
+
+#. type: Plain text
+#: ../src/scripts/xzgrep.1:30
+msgid "B<lzegrep> ..."
+msgstr ""
+
+#. type: Plain text
+#: ../src/scripts/xzgrep.1:33
+msgid "B<lzfgrep> ..."
+msgstr ""
+
+#. type: Plain text
+#: ../src/scripts/xzgrep.1:48
+msgid ""
+"B<xzgrep> invokes B<grep>(1)  on I<files> which may be either uncompressed "
+"or compressed with B<xz>(1), B<lzma>(1), B<gzip>(1), B<bzip2>(1), or "
+"B<lzop>(1).  All options specified are passed directly to B<grep>(1)."
+msgstr ""
+
+#. type: Plain text
+#: ../src/scripts/xzgrep.1:60
+msgid ""
+"If no I<file> is specified, then standard input is decompressed if necessary "
+"and fed to B<grep>(1).  When reading from standard input, B<gzip>(1), "
+"B<bzip2>(1), and B<lzop>(1)  compressed files are not supported."
+msgstr ""
+
+#. type: Plain text
+#: ../src/scripts/xzgrep.1:79
+msgid ""
+"If B<xzgrep> is invoked as B<xzegrep> or B<xzfgrep> then B<egrep>(1)  or "
+"B<fgrep>(1)  is used instead of B<grep>(1).  The same applies to names "
+"B<lzgrep>, B<lzegrep>, and B<lzfgrep>, which are provided for backward "
+"compatibility with LZMA Utils."
+msgstr ""
+
+#. type: TP
+#: ../src/scripts/xzgrep.1:81
+#, no-wrap
+msgid "B<GREP>"
+msgstr ""
+
+#. type: Plain text
+#: ../src/scripts/xzgrep.1:92
+msgid ""
+"If the B<GREP> environment variable is set, B<xzgrep> uses it instead of "
+"B<grep>(1), B<egrep>(1), or B<fgrep>(1)."
+msgstr ""
+
+#. type: Plain text
+#: ../src/scripts/xzgrep.1:98
+msgid "B<grep>(1), B<xz>(1), B<gzip>(1), B<bzip2>(1), B<lzop>(1), B<zgrep>(1)"
+msgstr ""
+
+#. type: TH
+#: ../src/scripts/xzless.1:10
+#, no-wrap
+msgid "XZLESS"
+msgstr ""
+
+#. type: TH
+#: ../src/scripts/xzless.1:10
+#, no-wrap
+msgid "2010-09-27"
+msgstr ""
+
+#. type: Plain text
+#: ../src/scripts/xzless.1:13
+msgid "xzless, lzless - view xz or lzma compressed (text) files"
+msgstr ""
+
+#. type: Plain text
+#: ../src/scripts/xzless.1:16
+msgid "B<xzless> [I<file>...]"
+msgstr ""
+
+#. type: Plain text
+#: ../src/scripts/xzless.1:19
+msgid "B<lzless> [I<file>...]"
+msgstr ""
+
+#. type: Plain text
+#: ../src/scripts/xzless.1:31
+msgid ""
+"B<xzless> is a filter that displays text from compressed files to a "
+"terminal.  It works on files compressed with B<xz>(1)  or B<lzma>(1).  If no "
+"I<files> are given, B<xzless> reads from standard input."
+msgstr ""
+
+#. type: Plain text
+#: ../src/scripts/xzless.1:48
+msgid ""
+"B<xzless> uses B<less>(1)  to present its output.  Unlike B<xzmore>, its "
+"choice of pager cannot be altered by setting an environment variable.  "
+"Commands are based on both B<more>(1)  and B<vi>(1)  and allow back and "
+"forth movement and searching.  See the B<less>(1)  manual for more "
+"information."
+msgstr ""
+
+#. type: Plain text
+#: ../src/scripts/xzless.1:52
+msgid ""
+"The command named B<lzless> is provided for backward compatibility with LZMA "
+"Utils."
+msgstr ""
+
+#. type: TP
+#: ../src/scripts/xzless.1:53
+#, no-wrap
+msgid "B<LESSMETACHARS>"
+msgstr ""
+
+#. type: Plain text
+#: ../src/scripts/xzless.1:59
+msgid ""
+"A list of characters special to the shell.  Set by B<xzless> unless it is "
+"already set in the environment."
+msgstr ""
+
+#. type: TP
+#: ../src/scripts/xzless.1:59
+#, no-wrap
+msgid "B<LESSOPEN>"
+msgstr ""
+
+#. type: Plain text
+#: ../src/scripts/xzless.1:65
+msgid ""
+"Set to a command line to invoke the B<xz>(1)  decompressor for preprocessing "
+"the input files to B<less>(1)."
+msgstr ""
+
+#. type: Plain text
+#: ../src/scripts/xzless.1:69
+msgid "B<less>(1), B<xz>(1), B<xzmore>(1), B<zless>(1)"
+msgstr ""
+
+#. type: TH
+#: ../src/scripts/xzmore.1:7
+#, no-wrap
+msgid "XZMORE"
+msgstr ""
+
+#. type: Plain text
+#: ../src/scripts/xzmore.1:10
+msgid "xzmore, lzmore - view xz or lzma compressed (text) files"
+msgstr ""
+
+#. type: Plain text
+#: ../src/scripts/xzmore.1:13
+msgid "B<xzmore> [I<file...>]"
+msgstr ""
+
+#. type: Plain text
+#: ../src/scripts/xzmore.1:16
+msgid "B<lzmore> [I<file...>]"
+msgstr ""
+
+#. type: Plain text
+#: ../src/scripts/xzmore.1:24
+msgid ""
+"B<xzmore> is a filter which allows examination of B<xz>(1)  or B<lzma>(1)  "
+"compressed text files one screenful at a time on a soft-copy terminal."
+msgstr ""
+
+#. type: Plain text
+#: ../src/scripts/xzmore.1:33
+msgid ""
+"To use a pager other than the default B<more,> set environment variable "
+"B<PAGER> to the name of the desired program.  The name B<lzmore> is provided "
+"for backward compatibility with LZMA Utils."
+msgstr ""
+
+#. type: TP
+#: ../src/scripts/xzmore.1:33
+#, no-wrap
+msgid "B<e> or B<q>"
+msgstr ""
+
+#. type: Plain text
+#: ../src/scripts/xzmore.1:40
+msgid ""
+"When the prompt --More--(Next file: I<file>)  is printed, this command "
+"causes B<xzmore> to exit."
+msgstr ""
+
+#. type: TP
+#: ../src/scripts/xzmore.1:40
+#, no-wrap
+msgid "B<s>"
+msgstr ""
+
+#. type: Plain text
+#: ../src/scripts/xzmore.1:47
+msgid ""
+"When the prompt --More--(Next file: I<file>)  is printed, this command "
+"causes B<xzmore> to skip the next file and continue."
+msgstr ""
+
+#. type: Plain text
+#: ../src/scripts/xzmore.1:51
+msgid ""
+"For list of keyboard commands supported while actually viewing the content "
+"of a file, refer to manual of the pager you use, usually B<more>(1)."
+msgstr ""
+
+#. type: Plain text
+#: ../src/scripts/xzmore.1:55
+msgid "B<more>(1), B<xz>(1), B<xzless>(1), B<zmore>(1)"
+msgstr ""
index aebb3ed..1d28493 100644 (file)
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.15.1 from Makefile.am.
+# Makefile.in generated by automake 1.16.1 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2017 Free Software Foundation, Inc.
+# Copyright (C) 1994-2018 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -94,14 +94,15 @@ subdir = src
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/m4/ax_check_capsicum.m4 \
        $(top_srcdir)/m4/ax_pthread.m4 $(top_srcdir)/m4/getopt.m4 \
-       $(top_srcdir)/m4/gettext.m4 $(top_srcdir)/m4/iconv.m4 \
-       $(top_srcdir)/m4/intlmacosx.m4 $(top_srcdir)/m4/lib-ld.m4 \
-       $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \
-       $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \
-       $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \
-       $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/m4/nls.m4 \
-       $(top_srcdir)/m4/po.m4 $(top_srcdir)/m4/posix-shell.m4 \
-       $(top_srcdir)/m4/progtest.m4 $(top_srcdir)/m4/tuklib_common.m4 \
+       $(top_srcdir)/m4/gettext.m4 $(top_srcdir)/m4/host-cpu-c-abi.m4 \
+       $(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/intlmacosx.m4 \
+       $(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \
+       $(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/libtool.m4 \
+       $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \
+       $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \
+       $(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/po.m4 \
+       $(top_srcdir)/m4/posix-shell.m4 $(top_srcdir)/m4/progtest.m4 \
+       $(top_srcdir)/m4/tuklib_common.m4 \
        $(top_srcdir)/m4/tuklib_cpucores.m4 \
        $(top_srcdir)/m4/tuklib_integer.m4 \
        $(top_srcdir)/m4/tuklib_mbstr.m4 \
@@ -149,7 +150,7 @@ am__recursive_targets = \
   $(RECURSIVE_CLEAN_TARGETS) \
   $(am__extra_recursive_targets)
 AM_RECURSIVE_TARGETS = $(am__recursive_targets:-recursive=) TAGS CTAGS \
-       distdir
+       distdir distdir-am
 am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
 # Read a list of newline-separated strings from the standard input,
 # and print each of them once, without duplicates.  Input order is
@@ -260,8 +261,8 @@ MAKEINFO = @MAKEINFO@
 MANIFEST_TOOL = @MANIFEST_TOOL@
 MKDIR_P = @MKDIR_P@
 MSGFMT = @MSGFMT@
-MSGFMT_015 = @MSGFMT_015@
 MSGMERGE = @MSGMERGE@
+MSGMERGE_FOR_MSGFMT_OPTION = @MSGMERGE_FOR_MSGFMT_OPTION@
 NM = @NM@
 NMEDIT = @NMEDIT@
 OBJDUMP = @OBJDUMP@
@@ -317,6 +318,7 @@ datadir = @datadir@
 datarootdir = @datarootdir@
 docdir = @docdir@
 dvidir = @dvidir@
+enable_path_for_scripts = @enable_path_for_scripts@
 exec_prefix = @exec_prefix@
 host = @host@
 host_alias = @host_alias@
@@ -391,8 +393,8 @@ Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
          *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);; \
+           echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles)'; \
+           cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles);; \
        esac;
 
 $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
@@ -509,7 +511,10 @@ cscopelist-am: $(am__tagged_files)
 distclean-tags:
        -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
 
-distdir: $(DISTFILES)
+distdir: $(BUILT_SOURCES)
+       $(MAKE) $(AM_MAKEFLAGS) distdir-am
+
+distdir-am: $(DISTFILES)
        @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
        topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
        list='$(DISTFILES)'; \
index e056ca4..df7ecf4 100644 (file)
@@ -44,9 +44,7 @@
 
 // Some pre-C99 systems have SIZE_MAX in limits.h instead of stdint.h. The
 // limits are also used to figure out some macros missing from pre-C99 systems.
-#ifdef HAVE_LIMITS_H
-#      include <limits.h>
-#endif
+#include <limits.h>
 
 // Be more compatible with systems that have non-conforming inttypes.h.
 // We assume that int is 32-bit and that long is either 32-bit or 64-bit.
@@ -153,9 +151,7 @@ typedef unsigned char _Bool;
 
 // string.h should be enough but let's include strings.h and memory.h too if
 // they exists, since that shouldn't do any harm, but may improve portability.
-#ifdef HAVE_STRING_H
-#      include <string.h>
-#endif
+#include <string.h>
 
 #ifdef HAVE_STRINGS_H
 #      include <strings.h>
@@ -193,7 +189,8 @@ typedef unsigned char _Bool;
 #      define ARRAY_SIZE(array) (sizeof(array) / sizeof((array)[0]))
 #endif
 
-#if (__GNUC__ == 4 && __GNUC_MINOR__ >= 3) || __GNUC__ > 4
+#if defined(__GNUC__) \
+               && ((__GNUC__ == 4 && __GNUC_MINOR__ >= 3) || __GNUC__ > 4)
 #      define lzma_attr_alloc_size(x) __attribute__((__alloc_size__(x)))
 #else
 #      define lzma_attr_alloc_size(x)
index c16e188..cc968dd 100644 (file)
@@ -56,14 +56,14 @@ tuklib_cpucores(void)
 #elif defined(TUKLIB_CPUCORES_SCHED_GETAFFINITY)
        cpu_set_t cpu_mask;
        if (sched_getaffinity(0, sizeof(cpu_mask), &cpu_mask) == 0)
-               ret = CPU_COUNT(&cpu_mask);
+               ret = (uint32_t)CPU_COUNT(&cpu_mask);
 
 #elif defined(TUKLIB_CPUCORES_CPUSET)
        cpuset_t set;
        if (cpuset_getaffinity(CPU_LEVEL_WHICH, CPU_WHICH_PID, -1,
                        sizeof(set), &set) == 0) {
 #      ifdef CPU_COUNT
-               ret = CPU_COUNT(&set);
+               ret = (uint32_t)CPU_COUNT(&set);
 #      else
                for (unsigned i = 0; i < CPU_SETSIZE; ++i)
                        if (CPU_ISSET(i, &set))
@@ -77,7 +77,7 @@ tuklib_cpucores(void)
        size_t cpus_size = sizeof(cpus);
        if (sysctl(name, 2, &cpus, &cpus_size, NULL, 0) != -1
                        && cpus_size == sizeof(cpus) && cpus > 0)
-               ret = cpus;
+               ret = (uint32_t)cpus;
 
 #elif defined(TUKLIB_CPUCORES_SYSCONF)
 #      ifdef _SC_NPROCESSORS_ONLN
@@ -88,12 +88,12 @@ tuklib_cpucores(void)
        const long cpus = sysconf(_SC_NPROC_ONLN);
 #      endif
        if (cpus > 0)
-               ret = cpus;
+               ret = (uint32_t)cpus;
 
 #elif defined(TUKLIB_CPUCORES_PSTAT_GETDYNAMIC)
        struct pst_dynamic pst;
        if (pstat_getdynamic(&pst, sizeof(pst), 1, 0) != -1)
-               ret = pst.psd_proc_cnt;
+               ret = (uint32_t)pst.psd_proc_cnt;
 #endif
 
        return ret;
index c393be6..aa55620 100644 (file)
@@ -14,6 +14,7 @@
 
 #include <stdlib.h>
 #include <stdio.h>
+#include <string.h>
 
 #include "tuklib_gettext.h"
 #include "tuklib_progname.h"
index b1e84d5..6f44a7a 100644 (file)
@@ -6,22 +6,26 @@
 /// This file provides macros or functions to do some basic integer and bit
 /// operations.
 ///
-/// Endianness related integer operations (XX = 16, 32, or 64; Y = b or l):
-///   - Byte swapping: bswapXX(num)
-///   - Byte order conversions to/from native: convXXYe(num)
-///   - Aligned reads: readXXYe(ptr)
-///   - Aligned writes: writeXXYe(ptr, num)
-///   - Unaligned reads (16/32-bit only): unaligned_readXXYe(ptr)
-///   - Unaligned writes (16/32-bit only): unaligned_writeXXYe(ptr, num)
+/// Native endian inline functions (XX = 16, 32, or 64):
+///   - Unaligned native endian reads: readXXne(ptr)
+///   - Unaligned native endian writes: writeXXne(ptr, num)
+///   - Aligned native endian reads: aligned_readXXne(ptr)
+///   - Aligned native endian writes: aligned_writeXXne(ptr, num)
 ///
-/// Since they can macros, the arguments should have no side effects since
-/// they may be evaluated more than once.
+/// Endianness-converting integer operations (these can be macros!)
+/// (XX = 16, 32, or 64; Y = b or l):
+///   - Byte swapping: bswapXX(num)
+///   - Byte order conversions to/from native (byteswaps if Y isn't
+///     the native endianness): convXXYe(num)
+///   - Unaligned reads (16/32-bit only): readXXYe(ptr)
+///   - Unaligned writes (16/32-bit only): writeXXYe(ptr, num)
+///   - Aligned reads: aligned_readXXYe(ptr)
+///   - Aligned writes: aligned_writeXXYe(ptr, num)
 ///
-/// \todo       PowerPC and possibly some other architectures support
-///             byte swapping load and store instructions. This file
-///             doesn't take advantage of those instructions.
+/// Since the above can macros, the arguments should have no side effects
+/// because they may be evaluated more than once.
 ///
-/// Bit scan operations for non-zero 32-bit integers:
+/// Bit scan operations for non-zero 32-bit integers (inline functions):
 ///   - Bit scan reverse (find highest non-zero bit): bsr32(num)
 ///   - Count leading zeros: clz32(num)
 ///   - Count trailing zeros: ctz32(num)
 #define TUKLIB_INTEGER_H
 
 #include "tuklib_common.h"
+#include <string.h>
+
+// Newer Intel C compilers require immintrin.h for _bit_scan_reverse()
+// and such functions.
+#if defined(__INTEL_COMPILER) && (__INTEL_COMPILER >= 1500)
+#      include <immintrin.h>
+#endif
 
 
-////////////////////////////////////////
-// Operating system specific features //
-////////////////////////////////////////
+///////////////////
+// Byte swapping //
+///////////////////
 
-#if defined(HAVE_BYTESWAP_H)
+#if defined(HAVE___BUILTIN_BSWAPXX)
+       // GCC >= 4.8 and Clang
+#      define bswap16(n) __builtin_bswap16(n)
+#      define bswap32(n) __builtin_bswap32(n)
+#      define bswap64(n) __builtin_bswap64(n)
+
+#elif defined(HAVE_BYTESWAP_H)
        // glibc, uClibc, dietlibc
 #      include <byteswap.h>
 #      ifdef HAVE_BSWAP_16
 #      endif
 #endif
 
-
-////////////////////////////////
-// Compiler-specific features //
-////////////////////////////////
-
-// Newer Intel C compilers require immintrin.h for _bit_scan_reverse()
-// and such functions.
-#if defined(__INTEL_COMPILER) && (__INTEL_COMPILER >= 1500)
-#      include <immintrin.h>
-#endif
-
-
-///////////////////
-// Byte swapping //
-///////////////////
-
 #ifndef bswap16
-#      define bswap16(num) \
-               (((uint16_t)(num) << 8) | ((uint16_t)(num) >> 8))
+#      define bswap16(n) (uint16_t)( \
+                 (((n) & 0x00FFU) << 8) \
+               | (((n) & 0xFF00U) >> 8) \
+       )
 #endif
 
 #ifndef bswap32
-#      define bswap32(num) \
-               ( (((uint32_t)(num) << 24)                       ) \
-               | (((uint32_t)(num) <<  8) & UINT32_C(0x00FF0000)) \
-               | (((uint32_t)(num) >>  8) & UINT32_C(0x0000FF00)) \
-               | (((uint32_t)(num) >> 24)                       ) )
+#      define bswap32(n) (uint32_t)( \
+                 (((n) & UINT32_C(0x000000FF)) << 24) \
+               | (((n) & UINT32_C(0x0000FF00)) << 8) \
+               | (((n) & UINT32_C(0x00FF0000)) >> 8) \
+               | (((n) & UINT32_C(0xFF000000)) >> 24) \
+       )
 #endif
 
 #ifndef bswap64
-#      define bswap64(num) \
-               ( (((uint64_t)(num) << 56)                               ) \
-               | (((uint64_t)(num) << 40) & UINT64_C(0x00FF000000000000)) \
-               | (((uint64_t)(num) << 24) & UINT64_C(0x0000FF0000000000)) \
-               | (((uint64_t)(num) <<  8) & UINT64_C(0x000000FF00000000)) \
-               | (((uint64_t)(num) >>  8) & UINT64_C(0x00000000FF000000)) \
-               | (((uint64_t)(num) >> 24) & UINT64_C(0x0000000000FF0000)) \
-               | (((uint64_t)(num) >> 40) & UINT64_C(0x000000000000FF00)) \
-               | (((uint64_t)(num) >> 56)                               ) )
+#      define bswap64(n) (uint64_t)( \
+                 (((n) & UINT64_C(0x00000000000000FF)) << 56) \
+               | (((n) & UINT64_C(0x000000000000FF00)) << 40) \
+               | (((n) & UINT64_C(0x0000000000FF0000)) << 24) \
+               | (((n) & UINT64_C(0x00000000FF000000)) << 8) \
+               | (((n) & UINT64_C(0x000000FF00000000)) >> 8) \
+               | (((n) & UINT64_C(0x0000FF0000000000)) >> 24) \
+               | (((n) & UINT64_C(0x00FF000000000000)) >> 40) \
+               | (((n) & UINT64_C(0xFF00000000000000)) >> 56) \
+       )
 #endif
 
 // Define conversion macros using the basic byte swapping macros.
 #endif
 
 
-//////////////////////////////
-// Aligned reads and writes //
-//////////////////////////////
-
-static inline uint16_t
-read16be(const uint8_t *buf)
-{
-       uint16_t num = *(const uint16_t *)buf;
-       return conv16be(num);
-}
+////////////////////////////////
+// Unaligned reads and writes //
+////////////////////////////////
 
+// The traditional way of casting e.g. *(const uint16_t *)uint8_pointer
+// is bad even if the uint8_pointer is properly aligned because this kind
+// of casts break strict aliasing rules and result in undefined behavior.
+// With unaligned pointers it's even worse: compilers may emit vector
+// instructions that require aligned pointers even if non-vector
+// instructions work with unaligned pointers.
+//
+// Using memcpy() is the standard compliant way to do unaligned access.
+// Many modern compilers inline it so there is no function call overhead.
+// For those compilers that don't handle the memcpy() method well, the
+// old casting method (that violates strict aliasing) can be requested at
+// build time. A third method, casting to a packed struct, would also be
+// an option but isn't provided to keep things simpler (it's already a mess).
+// Hopefully this is flexible enough in practice.
 
 static inline uint16_t
-read16le(const uint8_t *buf)
+read16ne(const uint8_t *buf)
 {
-       uint16_t num = *(const uint16_t *)buf;
-       return conv16le(num);
-}
-
-
-static inline uint32_t
-read32be(const uint8_t *buf)
-{
-       uint32_t num = *(const uint32_t *)buf;
-       return conv32be(num);
+#if defined(TUKLIB_FAST_UNALIGNED_ACCESS) \
+               && defined(TUKLIB_USE_UNSAFE_TYPE_PUNNING)
+       return *(const uint16_t *)buf;
+#else
+       uint16_t num;
+       memcpy(&num, buf, sizeof(num));
+       return num;
+#endif
 }
 
 
 static inline uint32_t
-read32le(const uint8_t *buf)
-{
-       uint32_t num = *(const uint32_t *)buf;
-       return conv32le(num);
-}
-
-
-static inline uint64_t
-read64be(const uint8_t *buf)
+read32ne(const uint8_t *buf)
 {
-       uint64_t num = *(const uint64_t *)buf;
-       return conv64be(num);
+#if defined(TUKLIB_FAST_UNALIGNED_ACCESS) \
+               && defined(TUKLIB_USE_UNSAFE_TYPE_PUNNING)
+       return *(const uint32_t *)buf;
+#else
+       uint32_t num;
+       memcpy(&num, buf, sizeof(num));
+       return num;
+#endif
 }
 
 
 static inline uint64_t
-read64le(const uint8_t *buf)
+read64ne(const uint8_t *buf)
 {
-       uint64_t num = *(const uint64_t *)buf;
-       return conv64le(num);
+#if defined(TUKLIB_FAST_UNALIGNED_ACCESS) \
+               && defined(TUKLIB_USE_UNSAFE_TYPE_PUNNING)
+       return *(const uint64_t *)buf;
+#else
+       uint64_t num;
+       memcpy(&num, buf, sizeof(num));
+       return num;
+#endif
 }
 
 
-// NOTE: Possible byte swapping must be done in a macro to allow GCC
-// to optimize byte swapping of constants when using glibc's or *BSD's
-// byte swapping macros. The actual write is done in an inline function
-// to make type checking of the buf pointer possible similarly to readXXYe()
-// functions.
-
-#define write16be(buf, num) write16ne((buf), conv16be(num))
-#define write16le(buf, num) write16ne((buf), conv16le(num))
-#define write32be(buf, num) write32ne((buf), conv32be(num))
-#define write32le(buf, num) write32ne((buf), conv32le(num))
-#define write64be(buf, num) write64ne((buf), conv64be(num))
-#define write64le(buf, num) write64ne((buf), conv64le(num))
-
-
 static inline void
 write16ne(uint8_t *buf, uint16_t num)
 {
+#if defined(TUKLIB_FAST_UNALIGNED_ACCESS) \
+               && defined(TUKLIB_USE_UNSAFE_TYPE_PUNNING)
        *(uint16_t *)buf = num;
+#else
+       memcpy(buf, &num, sizeof(num));
+#endif
        return;
 }
 
@@ -257,7 +262,12 @@ write16ne(uint8_t *buf, uint16_t num)
 static inline void
 write32ne(uint8_t *buf, uint32_t num)
 {
+#if defined(TUKLIB_FAST_UNALIGNED_ACCESS) \
+               && defined(TUKLIB_USE_UNSAFE_TYPE_PUNNING)
        *(uint32_t *)buf = num;
+#else
+       memcpy(buf, &num, sizeof(num));
+#endif
        return;
 }
 
@@ -265,90 +275,114 @@ write32ne(uint8_t *buf, uint32_t num)
 static inline void
 write64ne(uint8_t *buf, uint64_t num)
 {
+#if defined(TUKLIB_FAST_UNALIGNED_ACCESS) \
+               && defined(TUKLIB_USE_UNSAFE_TYPE_PUNNING)
        *(uint64_t *)buf = num;
+#else
+       memcpy(buf, &num, sizeof(num));
+#endif
        return;
 }
 
 
-////////////////////////////////
-// Unaligned reads and writes //
-////////////////////////////////
-
-// NOTE: TUKLIB_FAST_UNALIGNED_ACCESS indicates only support for 16-bit and
-// 32-bit unaligned integer loads and stores. It's possible that 64-bit
-// unaligned access doesn't work or is slower than byte-by-byte access.
-// Since unaligned 64-bit is probably not needed as often as 16-bit or
-// 32-bit, we simply don't support 64-bit unaligned access for now.
-#ifdef TUKLIB_FAST_UNALIGNED_ACCESS
-#      define unaligned_read16be read16be
-#      define unaligned_read16le read16le
-#      define unaligned_read32be read32be
-#      define unaligned_read32le read32le
-#      define unaligned_write16be write16be
-#      define unaligned_write16le write16le
-#      define unaligned_write32be write32be
-#      define unaligned_write32le write32le
-
-#else
-
 static inline uint16_t
-unaligned_read16be(const uint8_t *buf)
+read16be(const uint8_t *buf)
 {
+#if defined(WORDS_BIGENDIAN) || defined(TUKLIB_FAST_UNALIGNED_ACCESS)
+       uint16_t num = read16ne(buf);
+       return conv16be(num);
+#else
        uint16_t num = ((uint16_t)buf[0] << 8) | (uint16_t)buf[1];
        return num;
+#endif
 }
 
 
 static inline uint16_t
-unaligned_read16le(const uint8_t *buf)
+read16le(const uint8_t *buf)
 {
+#if !defined(WORDS_BIGENDIAN) || defined(TUKLIB_FAST_UNALIGNED_ACCESS)
+       uint16_t num = read16ne(buf);
+       return conv16le(num);
+#else
        uint16_t num = ((uint16_t)buf[0]) | ((uint16_t)buf[1] << 8);
        return num;
+#endif
 }
 
 
 static inline uint32_t
-unaligned_read32be(const uint8_t *buf)
+read32be(const uint8_t *buf)
 {
+#if defined(WORDS_BIGENDIAN) || defined(TUKLIB_FAST_UNALIGNED_ACCESS)
+       uint32_t num = read32ne(buf);
+       return conv32be(num);
+#else
        uint32_t num = (uint32_t)buf[0] << 24;
        num |= (uint32_t)buf[1] << 16;
        num |= (uint32_t)buf[2] << 8;
        num |= (uint32_t)buf[3];
        return num;
+#endif
 }
 
 
 static inline uint32_t
-unaligned_read32le(const uint8_t *buf)
+read32le(const uint8_t *buf)
 {
+#if !defined(WORDS_BIGENDIAN) || defined(TUKLIB_FAST_UNALIGNED_ACCESS)
+       uint32_t num = read32ne(buf);
+       return conv32le(num);
+#else
        uint32_t num = (uint32_t)buf[0];
        num |= (uint32_t)buf[1] << 8;
        num |= (uint32_t)buf[2] << 16;
        num |= (uint32_t)buf[3] << 24;
        return num;
+#endif
 }
 
 
+// NOTE: Possible byte swapping must be done in a macro to allow the compiler
+// to optimize byte swapping of constants when using glibc's or *BSD's
+// byte swapping macros. The actual write is done in an inline function
+// to make type checking of the buf pointer possible.
+#if defined(WORDS_BIGENDIAN) || defined(TUKLIB_FAST_UNALIGNED_ACCESS)
+#      define write16be(buf, num) write16ne(buf, conv16be(num))
+#      define write32be(buf, num) write32ne(buf, conv32be(num))
+#endif
+
+#if !defined(WORDS_BIGENDIAN) || defined(TUKLIB_FAST_UNALIGNED_ACCESS)
+#      define write16le(buf, num) write16ne(buf, conv16le(num))
+#      define write32le(buf, num) write32ne(buf, conv32le(num))
+#endif
+
+
+#ifndef write16be
 static inline void
-unaligned_write16be(uint8_t *buf, uint16_t num)
+write16be(uint8_t *buf, uint16_t num)
 {
        buf[0] = (uint8_t)(num >> 8);
        buf[1] = (uint8_t)num;
        return;
 }
+#endif
 
 
+#ifndef write16le
 static inline void
-unaligned_write16le(uint8_t *buf, uint16_t num)
+write16le(uint8_t *buf, uint16_t num)
 {
        buf[0] = (uint8_t)num;
        buf[1] = (uint8_t)(num >> 8);
        return;
 }
+#endif
 
 
+#ifndef write32be
 static inline void
-unaligned_write32be(uint8_t *buf, uint32_t num)
+write32be(uint8_t *buf, uint32_t num)
 {
        buf[0] = (uint8_t)(num >> 24);
        buf[1] = (uint8_t)(num >> 16);
@@ -356,10 +390,12 @@ unaligned_write32be(uint8_t *buf, uint32_t num)
        buf[3] = (uint8_t)num;
        return;
 }
+#endif
 
 
+#ifndef write32le
 static inline void
-unaligned_write32le(uint8_t *buf, uint32_t num)
+write32le(uint8_t *buf, uint32_t num)
 {
        buf[0] = (uint8_t)num;
        buf[1] = (uint8_t)(num >> 8);
@@ -367,10 +403,184 @@ unaligned_write32le(uint8_t *buf, uint32_t num)
        buf[3] = (uint8_t)(num >> 24);
        return;
 }
+#endif
+
+
+//////////////////////////////
+// Aligned reads and writes //
+//////////////////////////////
 
+// Separate functions for aligned reads and writes are provided since on
+// strict-align archs aligned access is much faster than unaligned access.
+//
+// Just like in the unaligned case, memcpy() is needed to avoid
+// strict aliasing violations. However, on archs that don't support
+// unaligned access the compiler cannot know that the pointers given
+// to memcpy() are aligned which results in slow code. As of C11 there is
+// no standard way to tell the compiler that we know that the address is
+// aligned but some compilers have language extensions to do that. With
+// such language extensions the memcpy() method gives excellent results.
+//
+// What to do on a strict-align system when no known language extentensions
+// are available? Falling back to byte-by-byte access would be safe but ruin
+// optimizations that have been made specifically with aligned access in mind.
+// As a compromise, aligned reads will fall back to non-compliant type punning
+// but aligned writes will be byte-by-byte, that is, fast reads are preferred
+// over fast writes. This obviously isn't great but hopefully it's a working
+// compromise for now.
+//
+// __builtin_assume_aligned is support by GCC >= 4.7 and clang >= 3.6.
+#ifdef HAVE___BUILTIN_ASSUME_ALIGNED
+#      define tuklib_memcpy_aligned(dest, src, size) \
+               memcpy(dest, __builtin_assume_aligned(src, size), size)
+#else
+#      define tuklib_memcpy_aligned(dest, src, size) \
+               memcpy(dest, src, size)
+#      ifndef TUKLIB_FAST_UNALIGNED_ACCESS
+#              define TUKLIB_USE_UNSAFE_ALIGNED_READS 1
+#      endif
 #endif
 
 
+static inline uint16_t
+aligned_read16ne(const uint8_t *buf)
+{
+#if defined(TUKLIB_USE_UNSAFE_TYPE_PUNNING) \
+               || defined(TUKLIB_USE_UNSAFE_ALIGNED_READS)
+       return *(const uint16_t *)buf;
+#else
+       uint16_t num;
+       tuklib_memcpy_aligned(&num, buf, sizeof(num));
+       return num;
+#endif
+}
+
+
+static inline uint32_t
+aligned_read32ne(const uint8_t *buf)
+{
+#if defined(TUKLIB_USE_UNSAFE_TYPE_PUNNING) \
+               || defined(TUKLIB_USE_UNSAFE_ALIGNED_READS)
+       return *(const uint32_t *)buf;
+#else
+       uint32_t num;
+       tuklib_memcpy_aligned(&num, buf, sizeof(num));
+       return num;
+#endif
+}
+
+
+static inline uint64_t
+aligned_read64ne(const uint8_t *buf)
+{
+#if defined(TUKLIB_USE_UNSAFE_TYPE_PUNNING) \
+               || defined(TUKLIB_USE_UNSAFE_ALIGNED_READS)
+       return *(const uint64_t *)buf;
+#else
+       uint64_t num;
+       tuklib_memcpy_aligned(&num, buf, sizeof(num));
+       return num;
+#endif
+}
+
+
+static inline void
+aligned_write16ne(uint8_t *buf, uint16_t num)
+{
+#ifdef TUKLIB_USE_UNSAFE_TYPE_PUNNING
+       *(uint16_t *)buf = num;
+#else
+       tuklib_memcpy_aligned(buf, &num, sizeof(num));
+#endif
+       return;
+}
+
+
+static inline void
+aligned_write32ne(uint8_t *buf, uint32_t num)
+{
+#ifdef TUKLIB_USE_UNSAFE_TYPE_PUNNING
+       *(uint32_t *)buf = num;
+#else
+       tuklib_memcpy_aligned(buf, &num, sizeof(num));
+#endif
+       return;
+}
+
+
+static inline void
+aligned_write64ne(uint8_t *buf, uint64_t num)
+{
+#ifdef TUKLIB_USE_UNSAFE_TYPE_PUNNING
+       *(uint64_t *)buf = num;
+#else
+       tuklib_memcpy_aligned(buf, &num, sizeof(num));
+#endif
+       return;
+}
+
+
+static inline uint16_t
+aligned_read16be(const uint8_t *buf)
+{
+       uint16_t num = aligned_read16ne(buf);
+       return conv16be(num);
+}
+
+
+static inline uint16_t
+aligned_read16le(const uint8_t *buf)
+{
+       uint16_t num = aligned_read16ne(buf);
+       return conv16le(num);
+}
+
+
+static inline uint32_t
+aligned_read32be(const uint8_t *buf)
+{
+       uint32_t num = aligned_read32ne(buf);
+       return conv32be(num);
+}
+
+
+static inline uint32_t
+aligned_read32le(const uint8_t *buf)
+{
+       uint32_t num = aligned_read32ne(buf);
+       return conv32le(num);
+}
+
+
+static inline uint64_t
+aligned_read64be(const uint8_t *buf)
+{
+       uint64_t num = aligned_read64ne(buf);
+       return conv64be(num);
+}
+
+
+static inline uint64_t
+aligned_read64le(const uint8_t *buf)
+{
+       uint64_t num = aligned_read64ne(buf);
+       return conv64le(num);
+}
+
+
+// These need to be macros like in the unaligned case.
+#define aligned_write16be(buf, num) aligned_write16ne((buf), conv16be(num))
+#define aligned_write16le(buf, num) aligned_write16ne((buf), conv16le(num))
+#define aligned_write32be(buf, num) aligned_write32ne((buf), conv32be(num))
+#define aligned_write32le(buf, num) aligned_write32ne((buf), conv32le(num))
+#define aligned_write64be(buf, num) aligned_write64ne((buf), conv64be(num))
+#define aligned_write64le(buf, num) aligned_write64ne((buf), conv64le(num))
+
+
+////////////////////
+// Bit operations //
+////////////////////
+
 static inline uint32_t
 bsr32(uint32_t n)
 {
@@ -383,44 +593,42 @@ bsr32(uint32_t n)
        // multiple architectures. On x86, __builtin_clz() ^ 31U becomes
        // either plain BSR (so the XOR gets optimized away) or LZCNT and
        // XOR (if -march indicates that SSE4a instructions are supported).
-       return __builtin_clz(n) ^ 31U;
+       return (uint32_t)__builtin_clz(n) ^ 31U;
 
 #elif defined(__GNUC__) && (defined(__i386__) || defined(__x86_64__))
        uint32_t i;
        __asm__("bsrl %1, %0" : "=r" (i) : "rm" (n));
        return i;
 
-#elif defined(_MSC_VER) && _MSC_VER >= 1400
-       // MSVC isn't supported by tuklib, but since this code exists,
-       // it doesn't hurt to have it here anyway.
-       uint32_t i;
-       _BitScanReverse((DWORD *)&i, n);
+#elif defined(_MSC_VER)
+       unsigned long i;
+       _BitScanReverse(&i, n);
        return i;
 
 #else
        uint32_t i = 31;
 
-       if ((n & UINT32_C(0xFFFF0000)) == 0) {
+       if ((n & 0xFFFF0000) == 0) {
                n <<= 16;
                i = 15;
        }
 
-       if ((n & UINT32_C(0xFF000000)) == 0) {
+       if ((n & 0xFF000000) == 0) {
                n <<= 8;
                i -= 8;
        }
 
-       if ((n & UINT32_C(0xF0000000)) == 0) {
+       if ((n & 0xF0000000) == 0) {
                n <<= 4;
                i -= 4;
        }
 
-       if ((n & UINT32_C(0xC0000000)) == 0) {
+       if ((n & 0xC0000000) == 0) {
                n <<= 2;
                i -= 2;
        }
 
-       if ((n & UINT32_C(0x80000000)) == 0)
+       if ((n & 0x80000000) == 0)
                --i;
 
        return i;
@@ -435,7 +643,7 @@ clz32(uint32_t n)
        return _bit_scan_reverse(n) ^ 31U;
 
 #elif TUKLIB_GNUC_REQ(3, 4) && UINT_MAX == UINT32_MAX
-       return __builtin_clz(n);
+       return (uint32_t)__builtin_clz(n);
 
 #elif defined(__GNUC__) && (defined(__i386__) || defined(__x86_64__))
        uint32_t i;
@@ -444,35 +652,35 @@ clz32(uint32_t n)
                : "=r" (i) : "rm" (n));
        return i;
 
-#elif defined(_MSC_VER) && _MSC_VER >= 1400
-       uint32_t i;
-       _BitScanReverse((DWORD *)&i, n);
+#elif defined(_MSC_VER)
+       unsigned long i;
+       _BitScanReverse(&i, n);
        return i ^ 31U;
 
 #else
        uint32_t i = 0;
 
-       if ((n & UINT32_C(0xFFFF0000)) == 0) {
+       if ((n & 0xFFFF0000) == 0) {
                n <<= 16;
                i = 16;
        }
 
-       if ((n & UINT32_C(0xFF000000)) == 0) {
+       if ((n & 0xFF000000) == 0) {
                n <<= 8;
                i += 8;
        }
 
-       if ((n & UINT32_C(0xF0000000)) == 0) {
+       if ((n & 0xF0000000) == 0) {
                n <<= 4;
                i += 4;
        }
 
-       if ((n & UINT32_C(0xC0000000)) == 0) {
+       if ((n & 0xC0000000) == 0) {
                n <<= 2;
                i += 2;
        }
 
-       if ((n & UINT32_C(0x80000000)) == 0)
+       if ((n & 0x80000000) == 0)
                ++i;
 
        return i;
@@ -487,42 +695,42 @@ ctz32(uint32_t n)
        return _bit_scan_forward(n);
 
 #elif TUKLIB_GNUC_REQ(3, 4) && UINT_MAX >= UINT32_MAX
-       return __builtin_ctz(n);
+       return (uint32_t)__builtin_ctz(n);
 
 #elif defined(__GNUC__) && (defined(__i386__) || defined(__x86_64__))
        uint32_t i;
        __asm__("bsfl %1, %0" : "=r" (i) : "rm" (n));
        return i;
 
-#elif defined(_MSC_VER) && _MSC_VER >= 1400
-       uint32_t i;
-       _BitScanForward((DWORD *)&i, n);
+#elif defined(_MSC_VER)
+       unsigned long i;
+       _BitScanForward(&i, n);
        return i;
 
 #else
        uint32_t i = 0;
 
-       if ((n & UINT32_C(0x0000FFFF)) == 0) {
+       if ((n & 0x0000FFFF) == 0) {
                n >>= 16;
                i = 16;
        }
 
-       if ((n & UINT32_C(0x000000FF)) == 0) {
+       if ((n & 0x000000FF) == 0) {
                n >>= 8;
                i += 8;
        }
 
-       if ((n & UINT32_C(0x0000000F)) == 0) {
+       if ((n & 0x0000000F) == 0) {
                n >>= 4;
                i += 4;
        }
 
-       if ((n & UINT32_C(0x00000003)) == 0) {
+       if ((n & 0x00000003) == 0) {
                n >>= 2;
                i += 2;
        }
 
-       if ((n & UINT32_C(0x00000001)) == 0)
+       if ((n & 0x00000001) == 0)
                ++i;
 
        return i;
index 9f35835..dde9305 100644 (file)
@@ -1,6 +1,6 @@
 ///////////////////////////////////////////////////////////////////////////////
 //
-/// \file       tuklib_mstr.h
+/// \file       tuklib_mbstr.h
 /// \brief      Utility functions for handling multibyte strings
 ///
 /// If not enough multibyte string support is available in the C library,
index 978a3fe..af80dc1 100644 (file)
@@ -1,6 +1,6 @@
 ///////////////////////////////////////////////////////////////////////////////
 //
-/// \file       tuklib_mstr_fw.c
+/// \file       tuklib_mbstr_fw.c
 /// \brief      Get the field width for printf() e.g. to align table columns
 //
 //  Author:     Lasse Collin
index 3c38990..69d159e 100644 (file)
@@ -1,6 +1,6 @@
 ///////////////////////////////////////////////////////////////////////////////
 //
-/// \file       tuklib_mstr_width.c
+/// \file       tuklib_mbstr_width.c
 /// \brief      Calculate width of a multibyte string
 //
 //  Author:     Lasse Collin
@@ -11,6 +11,7 @@
 ///////////////////////////////////////////////////////////////////////////////
 
 #include "tuklib_mbstr.h"
+#include <string.h>
 
 #if defined(HAVE_MBRTOWC) && defined(HAVE_WCWIDTH)
 #      include <wchar.h>
@@ -50,7 +51,7 @@ tuklib_mbstr_width(const char *str, size_t *bytes)
                if (wc_width < 0)
                        return (size_t)-1;
 
-               width += wc_width;
+               width += (size_t)wc_width;
        }
 
        // Require that the string ends in the initial shift state.
index ae68107..f9efbf6 100644 (file)
@@ -24,7 +24,7 @@ liblzma_la_CPPFLAGS = \
        -I$(top_srcdir)/src/liblzma/simple \
        -I$(top_srcdir)/src/common \
        -DTUKLIB_SYMBOL_PREFIX=lzma_
-liblzma_la_LDFLAGS = -no-undefined -version-info 7:4:2
+liblzma_la_LDFLAGS = -no-undefined -version-info 7:5:2
 
 EXTRA_DIST += liblzma.map validate_map.sh
 if COND_SYMVERS
index 76acb00..ca463ad 100644 (file)
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.15.1 from Makefile.am.
+# Makefile.in generated by automake 1.16.1 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2017 Free Software Foundation, Inc.
+# Copyright (C) 1994-2018 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -241,14 +241,15 @@ subdir = src/liblzma
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/m4/ax_check_capsicum.m4 \
        $(top_srcdir)/m4/ax_pthread.m4 $(top_srcdir)/m4/getopt.m4 \
-       $(top_srcdir)/m4/gettext.m4 $(top_srcdir)/m4/iconv.m4 \
-       $(top_srcdir)/m4/intlmacosx.m4 $(top_srcdir)/m4/lib-ld.m4 \
-       $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \
-       $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \
-       $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \
-       $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/m4/nls.m4 \
-       $(top_srcdir)/m4/po.m4 $(top_srcdir)/m4/posix-shell.m4 \
-       $(top_srcdir)/m4/progtest.m4 $(top_srcdir)/m4/tuklib_common.m4 \
+       $(top_srcdir)/m4/gettext.m4 $(top_srcdir)/m4/host-cpu-c-abi.m4 \
+       $(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/intlmacosx.m4 \
+       $(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \
+       $(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/libtool.m4 \
+       $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \
+       $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \
+       $(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/po.m4 \
+       $(top_srcdir)/m4/posix-shell.m4 $(top_srcdir)/m4/progtest.m4 \
+       $(top_srcdir)/m4/tuklib_common.m4 \
        $(top_srcdir)/m4/tuklib_cpucores.m4 \
        $(top_srcdir)/m4/tuklib_integer.m4 \
        $(top_srcdir)/m4/tuklib_mbstr.m4 \
@@ -457,11 +458,88 @@ am__v_at_0 = @
 am__v_at_1 = 
 DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
 depcomp = $(SHELL) $(top_srcdir)/build-aux/depcomp
-am__depfiles_maybe = depfiles
+am__maybe_remake_depfiles = depfiles
+am__depfiles_remade = ./$(DEPDIR)/liblzma_la-alone_decoder.Plo \
+       ./$(DEPDIR)/liblzma_la-alone_encoder.Plo \
+       ./$(DEPDIR)/liblzma_la-arm.Plo \
+       ./$(DEPDIR)/liblzma_la-armthumb.Plo \
+       ./$(DEPDIR)/liblzma_la-auto_decoder.Plo \
+       ./$(DEPDIR)/liblzma_la-block_buffer_decoder.Plo \
+       ./$(DEPDIR)/liblzma_la-block_buffer_encoder.Plo \
+       ./$(DEPDIR)/liblzma_la-block_decoder.Plo \
+       ./$(DEPDIR)/liblzma_la-block_encoder.Plo \
+       ./$(DEPDIR)/liblzma_la-block_header_decoder.Plo \
+       ./$(DEPDIR)/liblzma_la-block_header_encoder.Plo \
+       ./$(DEPDIR)/liblzma_la-block_util.Plo \
+       ./$(DEPDIR)/liblzma_la-check.Plo \
+       ./$(DEPDIR)/liblzma_la-common.Plo \
+       ./$(DEPDIR)/liblzma_la-crc32_fast.Plo \
+       ./$(DEPDIR)/liblzma_la-crc32_small.Plo \
+       ./$(DEPDIR)/liblzma_la-crc32_table.Plo \
+       ./$(DEPDIR)/liblzma_la-crc32_x86.Plo \
+       ./$(DEPDIR)/liblzma_la-crc64_fast.Plo \
+       ./$(DEPDIR)/liblzma_la-crc64_small.Plo \
+       ./$(DEPDIR)/liblzma_la-crc64_table.Plo \
+       ./$(DEPDIR)/liblzma_la-crc64_x86.Plo \
+       ./$(DEPDIR)/liblzma_la-delta_common.Plo \
+       ./$(DEPDIR)/liblzma_la-delta_decoder.Plo \
+       ./$(DEPDIR)/liblzma_la-delta_encoder.Plo \
+       ./$(DEPDIR)/liblzma_la-easy_buffer_encoder.Plo \
+       ./$(DEPDIR)/liblzma_la-easy_decoder_memusage.Plo \
+       ./$(DEPDIR)/liblzma_la-easy_encoder.Plo \
+       ./$(DEPDIR)/liblzma_la-easy_encoder_memusage.Plo \
+       ./$(DEPDIR)/liblzma_la-easy_preset.Plo \
+       ./$(DEPDIR)/liblzma_la-fastpos_table.Plo \
+       ./$(DEPDIR)/liblzma_la-filter_buffer_decoder.Plo \
+       ./$(DEPDIR)/liblzma_la-filter_buffer_encoder.Plo \
+       ./$(DEPDIR)/liblzma_la-filter_common.Plo \
+       ./$(DEPDIR)/liblzma_la-filter_decoder.Plo \
+       ./$(DEPDIR)/liblzma_la-filter_encoder.Plo \
+       ./$(DEPDIR)/liblzma_la-filter_flags_decoder.Plo \
+       ./$(DEPDIR)/liblzma_la-filter_flags_encoder.Plo \
+       ./$(DEPDIR)/liblzma_la-hardware_cputhreads.Plo \
+       ./$(DEPDIR)/liblzma_la-hardware_physmem.Plo \
+       ./$(DEPDIR)/liblzma_la-ia64.Plo \
+       ./$(DEPDIR)/liblzma_la-index.Plo \
+       ./$(DEPDIR)/liblzma_la-index_decoder.Plo \
+       ./$(DEPDIR)/liblzma_la-index_encoder.Plo \
+       ./$(DEPDIR)/liblzma_la-index_hash.Plo \
+       ./$(DEPDIR)/liblzma_la-lz_decoder.Plo \
+       ./$(DEPDIR)/liblzma_la-lz_encoder.Plo \
+       ./$(DEPDIR)/liblzma_la-lz_encoder_mf.Plo \
+       ./$(DEPDIR)/liblzma_la-lzma2_decoder.Plo \
+       ./$(DEPDIR)/liblzma_la-lzma2_encoder.Plo \
+       ./$(DEPDIR)/liblzma_la-lzma_decoder.Plo \
+       ./$(DEPDIR)/liblzma_la-lzma_encoder.Plo \
+       ./$(DEPDIR)/liblzma_la-lzma_encoder_optimum_fast.Plo \
+       ./$(DEPDIR)/liblzma_la-lzma_encoder_optimum_normal.Plo \
+       ./$(DEPDIR)/liblzma_la-lzma_encoder_presets.Plo \
+       ./$(DEPDIR)/liblzma_la-outqueue.Plo \
+       ./$(DEPDIR)/liblzma_la-powerpc.Plo \
+       ./$(DEPDIR)/liblzma_la-price_table.Plo \
+       ./$(DEPDIR)/liblzma_la-sha256.Plo \
+       ./$(DEPDIR)/liblzma_la-simple_coder.Plo \
+       ./$(DEPDIR)/liblzma_la-simple_decoder.Plo \
+       ./$(DEPDIR)/liblzma_la-simple_encoder.Plo \
+       ./$(DEPDIR)/liblzma_la-sparc.Plo \
+       ./$(DEPDIR)/liblzma_la-stream_buffer_decoder.Plo \
+       ./$(DEPDIR)/liblzma_la-stream_buffer_encoder.Plo \
+       ./$(DEPDIR)/liblzma_la-stream_decoder.Plo \
+       ./$(DEPDIR)/liblzma_la-stream_encoder.Plo \
+       ./$(DEPDIR)/liblzma_la-stream_encoder_mt.Plo \
+       ./$(DEPDIR)/liblzma_la-stream_flags_common.Plo \
+       ./$(DEPDIR)/liblzma_la-stream_flags_decoder.Plo \
+       ./$(DEPDIR)/liblzma_la-stream_flags_encoder.Plo \
+       ./$(DEPDIR)/liblzma_la-tuklib_cpucores.Plo \
+       ./$(DEPDIR)/liblzma_la-tuklib_physmem.Plo \
+       ./$(DEPDIR)/liblzma_la-vli_decoder.Plo \
+       ./$(DEPDIR)/liblzma_la-vli_encoder.Plo \
+       ./$(DEPDIR)/liblzma_la-vli_size.Plo \
+       ./$(DEPDIR)/liblzma_la-x86.Plo
 am__mv = mv -f
 CPPASCOMPILE = $(CCAS) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
        $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CCASFLAGS) $(CCASFLAGS)
-LTCPPASCOMPILE = $(LIBTOOL) $(AM_V_lt) $(AM_LIBTOOLFLAGS) \
+LTCPPASCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
        $(LIBTOOLFLAGS) --mode=compile $(CCAS) $(DEFS) \
        $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \
        $(AM_CCASFLAGS) $(CCASFLAGS)
@@ -510,7 +588,7 @@ am__recursive_targets = \
   $(RECURSIVE_CLEAN_TARGETS) \
   $(am__extra_recursive_targets)
 AM_RECURSIVE_TARGETS = $(am__recursive_targets:-recursive=) TAGS CTAGS \
-       distdir
+       distdir distdir-am
 am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
 # Read a list of newline-separated strings from the standard input,
 # and print each of them once, without duplicates.  Input order is
@@ -625,8 +703,8 @@ MAKEINFO = @MAKEINFO@
 MANIFEST_TOOL = @MANIFEST_TOOL@
 MKDIR_P = @MKDIR_P@
 MSGFMT = @MSGFMT@
-MSGFMT_015 = @MSGFMT_015@
 MSGMERGE = @MSGMERGE@
+MSGMERGE_FOR_MSGFMT_OPTION = @MSGMERGE_FOR_MSGFMT_OPTION@
 NM = @NM@
 NMEDIT = @NMEDIT@
 OBJDUMP = @OBJDUMP@
@@ -682,6 +760,7 @@ datadir = @datadir@
 datarootdir = @datarootdir@
 docdir = @docdir@
 dvidir = @dvidir@
+enable_path_for_scripts = @enable_path_for_scripts@
 exec_prefix = @exec_prefix@
 host = @host@
 host_alias = @host_alias@
@@ -750,7 +829,7 @@ liblzma_la_CPPFLAGS = \
        -I$(top_srcdir)/src/common \
        -DTUKLIB_SYMBOL_PREFIX=lzma_
 
-liblzma_la_LDFLAGS = -no-undefined -version-info 7:4:2 $(am__append_1) \
+liblzma_la_LDFLAGS = -no-undefined -version-info 7:5:2 $(am__append_1) \
        $(am__append_42)
 pkgconfigdir = $(libdir)/pkgconfig
 pkgconfig_DATA = liblzma.pc
@@ -778,8 +857,8 @@ Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
          *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);; \
+           echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles)'; \
+           cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles);; \
        esac;
 $(srcdir)/common/Makefile.inc $(srcdir)/check/Makefile.inc $(srcdir)/lz/Makefile.inc $(srcdir)/lzma/Makefile.inc $(srcdir)/rangecoder/Makefile.inc $(srcdir)/delta/Makefile.inc $(srcdir)/simple/Makefile.inc $(am__empty):
 
@@ -836,83 +915,89 @@ mostlyclean-compile:
 distclean-compile:
        -rm -f *.tab.c
 
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/liblzma_la-alone_decoder.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/liblzma_la-alone_encoder.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/liblzma_la-arm.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/liblzma_la-armthumb.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/liblzma_la-auto_decoder.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/liblzma_la-block_buffer_decoder.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/liblzma_la-block_buffer_encoder.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/liblzma_la-block_decoder.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/liblzma_la-block_encoder.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/liblzma_la-block_header_decoder.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/liblzma_la-block_header_encoder.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/liblzma_la-block_util.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/liblzma_la-check.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/liblzma_la-common.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/liblzma_la-crc32_fast.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/liblzma_la-crc32_small.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/liblzma_la-crc32_table.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/liblzma_la-crc32_x86.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/liblzma_la-crc64_fast.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/liblzma_la-crc64_small.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/liblzma_la-crc64_table.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/liblzma_la-crc64_x86.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/liblzma_la-delta_common.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/liblzma_la-delta_decoder.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/liblzma_la-delta_encoder.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/liblzma_la-easy_buffer_encoder.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/liblzma_la-easy_decoder_memusage.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/liblzma_la-easy_encoder.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/liblzma_la-easy_encoder_memusage.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/liblzma_la-easy_preset.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/liblzma_la-fastpos_table.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/liblzma_la-filter_buffer_decoder.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/liblzma_la-filter_buffer_encoder.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/liblzma_la-filter_common.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/liblzma_la-filter_decoder.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/liblzma_la-filter_encoder.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/liblzma_la-filter_flags_decoder.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/liblzma_la-filter_flags_encoder.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/liblzma_la-hardware_cputhreads.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/liblzma_la-hardware_physmem.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/liblzma_la-ia64.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/liblzma_la-index.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/liblzma_la-index_decoder.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/liblzma_la-index_encoder.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/liblzma_la-index_hash.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/liblzma_la-lz_decoder.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/liblzma_la-lz_encoder.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/liblzma_la-lz_encoder_mf.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/liblzma_la-lzma2_decoder.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/liblzma_la-lzma2_encoder.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/liblzma_la-lzma_decoder.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/liblzma_la-lzma_encoder.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/liblzma_la-lzma_encoder_optimum_fast.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/liblzma_la-lzma_encoder_optimum_normal.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/liblzma_la-lzma_encoder_presets.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/liblzma_la-outqueue.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/liblzma_la-powerpc.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/liblzma_la-price_table.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/liblzma_la-sha256.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/liblzma_la-simple_coder.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/liblzma_la-simple_decoder.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/liblzma_la-simple_encoder.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/liblzma_la-sparc.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/liblzma_la-stream_buffer_decoder.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/liblzma_la-stream_buffer_encoder.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/liblzma_la-stream_decoder.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/liblzma_la-stream_encoder.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/liblzma_la-stream_encoder_mt.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/liblzma_la-stream_flags_common.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/liblzma_la-stream_flags_decoder.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/liblzma_la-stream_flags_encoder.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/liblzma_la-tuklib_cpucores.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/liblzma_la-tuklib_physmem.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/liblzma_la-vli_decoder.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/liblzma_la-vli_encoder.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/liblzma_la-vli_size.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/liblzma_la-x86.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/liblzma_la-alone_decoder.Plo@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/liblzma_la-alone_encoder.Plo@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/liblzma_la-arm.Plo@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/liblzma_la-armthumb.Plo@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/liblzma_la-auto_decoder.Plo@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/liblzma_la-block_buffer_decoder.Plo@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/liblzma_la-block_buffer_encoder.Plo@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/liblzma_la-block_decoder.Plo@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/liblzma_la-block_encoder.Plo@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/liblzma_la-block_header_decoder.Plo@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/liblzma_la-block_header_encoder.Plo@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/liblzma_la-block_util.Plo@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/liblzma_la-check.Plo@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/liblzma_la-common.Plo@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/liblzma_la-crc32_fast.Plo@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/liblzma_la-crc32_small.Plo@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/liblzma_la-crc32_table.Plo@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/liblzma_la-crc32_x86.Plo@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/liblzma_la-crc64_fast.Plo@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/liblzma_la-crc64_small.Plo@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/liblzma_la-crc64_table.Plo@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/liblzma_la-crc64_x86.Plo@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/liblzma_la-delta_common.Plo@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/liblzma_la-delta_decoder.Plo@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/liblzma_la-delta_encoder.Plo@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/liblzma_la-easy_buffer_encoder.Plo@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/liblzma_la-easy_decoder_memusage.Plo@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/liblzma_la-easy_encoder.Plo@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/liblzma_la-easy_encoder_memusage.Plo@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/liblzma_la-easy_preset.Plo@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/liblzma_la-fastpos_table.Plo@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/liblzma_la-filter_buffer_decoder.Plo@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/liblzma_la-filter_buffer_encoder.Plo@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/liblzma_la-filter_common.Plo@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/liblzma_la-filter_decoder.Plo@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/liblzma_la-filter_encoder.Plo@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/liblzma_la-filter_flags_decoder.Plo@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/liblzma_la-filter_flags_encoder.Plo@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/liblzma_la-hardware_cputhreads.Plo@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/liblzma_la-hardware_physmem.Plo@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/liblzma_la-ia64.Plo@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/liblzma_la-index.Plo@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/liblzma_la-index_decoder.Plo@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/liblzma_la-index_encoder.Plo@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/liblzma_la-index_hash.Plo@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/liblzma_la-lz_decoder.Plo@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/liblzma_la-lz_encoder.Plo@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/liblzma_la-lz_encoder_mf.Plo@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/liblzma_la-lzma2_decoder.Plo@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/liblzma_la-lzma2_encoder.Plo@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/liblzma_la-lzma_decoder.Plo@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/liblzma_la-lzma_encoder.Plo@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/liblzma_la-lzma_encoder_optimum_fast.Plo@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/liblzma_la-lzma_encoder_optimum_normal.Plo@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/liblzma_la-lzma_encoder_presets.Plo@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/liblzma_la-outqueue.Plo@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/liblzma_la-powerpc.Plo@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/liblzma_la-price_table.Plo@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/liblzma_la-sha256.Plo@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/liblzma_la-simple_coder.Plo@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/liblzma_la-simple_decoder.Plo@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/liblzma_la-simple_encoder.Plo@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/liblzma_la-sparc.Plo@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/liblzma_la-stream_buffer_decoder.Plo@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/liblzma_la-stream_buffer_encoder.Plo@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/liblzma_la-stream_decoder.Plo@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/liblzma_la-stream_encoder.Plo@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/liblzma_la-stream_encoder_mt.Plo@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/liblzma_la-stream_flags_common.Plo@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/liblzma_la-stream_flags_decoder.Plo@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/liblzma_la-stream_flags_encoder.Plo@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/liblzma_la-tuklib_cpucores.Plo@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/liblzma_la-tuklib_physmem.Plo@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/liblzma_la-vli_decoder.Plo@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/liblzma_la-vli_encoder.Plo@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/liblzma_la-vli_size.Plo@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/liblzma_la-x86.Plo@am__quote@ # am--include-marker
+
+$(am__depfiles_remade):
+       @$(MKDIR_P) $(@D)
+       @echo '# dummy' >$@-t && $(am__mv) $@-t $@
+
+am--depfiles: $(am__depfiles_remade)
 
 .S.o:
 @am__fastdepCCAS_TRUE@ $(AM_V_CPPAS)$(CPPASCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
@@ -936,18 +1021,18 @@ distclean-compile:
 @am__fastdepCCAS_FALSE@        $(AM_V_CPPAS@am__nodep@)$(LTCPPASCOMPILE) -c -o $@ $<
 
 liblzma_la-crc32_x86.lo: check/crc32_x86.S
-@am__fastdepCCAS_TRUE@ $(AM_V_CPPAS)$(LIBTOOL) $(AM_V_lt) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CCAS) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblzma_la_CPPFLAGS) $(CPPFLAGS) $(AM_CCASFLAGS) $(CCASFLAGS) -MT liblzma_la-crc32_x86.lo -MD -MP -MF $(DEPDIR)/liblzma_la-crc32_x86.Tpo -c -o liblzma_la-crc32_x86.lo `test -f 'check/crc32_x86.S' || echo '$(srcdir)/'`check/crc32_x86.S
+@am__fastdepCCAS_TRUE@ $(AM_V_CPPAS)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CCAS) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblzma_la_CPPFLAGS) $(CPPFLAGS) $(AM_CCASFLAGS) $(CCASFLAGS) -MT liblzma_la-crc32_x86.lo -MD -MP -MF $(DEPDIR)/liblzma_la-crc32_x86.Tpo -c -o liblzma_la-crc32_x86.lo `test -f 'check/crc32_x86.S' || echo '$(srcdir)/'`check/crc32_x86.S
 @am__fastdepCCAS_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/liblzma_la-crc32_x86.Tpo $(DEPDIR)/liblzma_la-crc32_x86.Plo
 @AMDEP_TRUE@@am__fastdepCCAS_FALSE@    $(AM_V_CPPAS)source='check/crc32_x86.S' object='liblzma_la-crc32_x86.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCCAS_FALSE@    DEPDIR=$(DEPDIR) $(CCASDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCCAS_FALSE@        $(AM_V_CPPAS@am__nodep@)$(LIBTOOL) $(AM_V_lt) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CCAS) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblzma_la_CPPFLAGS) $(CPPFLAGS) $(AM_CCASFLAGS) $(CCASFLAGS) -c -o liblzma_la-crc32_x86.lo `test -f 'check/crc32_x86.S' || echo '$(srcdir)/'`check/crc32_x86.S
+@am__fastdepCCAS_FALSE@        $(AM_V_CPPAS@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CCAS) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblzma_la_CPPFLAGS) $(CPPFLAGS) $(AM_CCASFLAGS) $(CCASFLAGS) -c -o liblzma_la-crc32_x86.lo `test -f 'check/crc32_x86.S' || echo '$(srcdir)/'`check/crc32_x86.S
 
 liblzma_la-crc64_x86.lo: check/crc64_x86.S
-@am__fastdepCCAS_TRUE@ $(AM_V_CPPAS)$(LIBTOOL) $(AM_V_lt) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CCAS) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblzma_la_CPPFLAGS) $(CPPFLAGS) $(AM_CCASFLAGS) $(CCASFLAGS) -MT liblzma_la-crc64_x86.lo -MD -MP -MF $(DEPDIR)/liblzma_la-crc64_x86.Tpo -c -o liblzma_la-crc64_x86.lo `test -f 'check/crc64_x86.S' || echo '$(srcdir)/'`check/crc64_x86.S
+@am__fastdepCCAS_TRUE@ $(AM_V_CPPAS)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CCAS) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblzma_la_CPPFLAGS) $(CPPFLAGS) $(AM_CCASFLAGS) $(CCASFLAGS) -MT liblzma_la-crc64_x86.lo -MD -MP -MF $(DEPDIR)/liblzma_la-crc64_x86.Tpo -c -o liblzma_la-crc64_x86.lo `test -f 'check/crc64_x86.S' || echo '$(srcdir)/'`check/crc64_x86.S
 @am__fastdepCCAS_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/liblzma_la-crc64_x86.Tpo $(DEPDIR)/liblzma_la-crc64_x86.Plo
 @AMDEP_TRUE@@am__fastdepCCAS_FALSE@    $(AM_V_CPPAS)source='check/crc64_x86.S' object='liblzma_la-crc64_x86.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCCAS_FALSE@    DEPDIR=$(DEPDIR) $(CCASDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCCAS_FALSE@        $(AM_V_CPPAS@am__nodep@)$(LIBTOOL) $(AM_V_lt) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CCAS) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblzma_la_CPPFLAGS) $(CPPFLAGS) $(AM_CCASFLAGS) $(CCASFLAGS) -c -o liblzma_la-crc64_x86.lo `test -f 'check/crc64_x86.S' || echo '$(srcdir)/'`check/crc64_x86.S
+@am__fastdepCCAS_FALSE@        $(AM_V_CPPAS@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CCAS) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblzma_la_CPPFLAGS) $(CPPFLAGS) $(AM_CCASFLAGS) $(CCASFLAGS) -c -o liblzma_la-crc64_x86.lo `test -f 'check/crc64_x86.S' || echo '$(srcdir)/'`check/crc64_x86.S
 
 .c.o:
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
@@ -1642,7 +1727,10 @@ cscopelist-am: $(am__tagged_files)
 distclean-tags:
        -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
 
-distdir: $(DISTFILES)
+distdir: $(BUILT_SOURCES)
+       $(MAKE) $(AM_MAKEFLAGS) distdir-am
+
+distdir-am: $(DISTFILES)
        @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
        topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
        list='$(DISTFILES)'; \
@@ -1742,7 +1830,83 @@ clean-am: clean-generic clean-libLTLIBRARIES clean-libtool clean-local \
        mostlyclean-am
 
 distclean: distclean-recursive
-       -rm -rf ./$(DEPDIR)
+               -rm -f ./$(DEPDIR)/liblzma_la-alone_decoder.Plo
+       -rm -f ./$(DEPDIR)/liblzma_la-alone_encoder.Plo
+       -rm -f ./$(DEPDIR)/liblzma_la-arm.Plo
+       -rm -f ./$(DEPDIR)/liblzma_la-armthumb.Plo
+       -rm -f ./$(DEPDIR)/liblzma_la-auto_decoder.Plo
+       -rm -f ./$(DEPDIR)/liblzma_la-block_buffer_decoder.Plo
+       -rm -f ./$(DEPDIR)/liblzma_la-block_buffer_encoder.Plo
+       -rm -f ./$(DEPDIR)/liblzma_la-block_decoder.Plo
+       -rm -f ./$(DEPDIR)/liblzma_la-block_encoder.Plo
+       -rm -f ./$(DEPDIR)/liblzma_la-block_header_decoder.Plo
+       -rm -f ./$(DEPDIR)/liblzma_la-block_header_encoder.Plo
+       -rm -f ./$(DEPDIR)/liblzma_la-block_util.Plo
+       -rm -f ./$(DEPDIR)/liblzma_la-check.Plo
+       -rm -f ./$(DEPDIR)/liblzma_la-common.Plo
+       -rm -f ./$(DEPDIR)/liblzma_la-crc32_fast.Plo
+       -rm -f ./$(DEPDIR)/liblzma_la-crc32_small.Plo
+       -rm -f ./$(DEPDIR)/liblzma_la-crc32_table.Plo
+       -rm -f ./$(DEPDIR)/liblzma_la-crc32_x86.Plo
+       -rm -f ./$(DEPDIR)/liblzma_la-crc64_fast.Plo
+       -rm -f ./$(DEPDIR)/liblzma_la-crc64_small.Plo
+       -rm -f ./$(DEPDIR)/liblzma_la-crc64_table.Plo
+       -rm -f ./$(DEPDIR)/liblzma_la-crc64_x86.Plo
+       -rm -f ./$(DEPDIR)/liblzma_la-delta_common.Plo
+       -rm -f ./$(DEPDIR)/liblzma_la-delta_decoder.Plo
+       -rm -f ./$(DEPDIR)/liblzma_la-delta_encoder.Plo
+       -rm -f ./$(DEPDIR)/liblzma_la-easy_buffer_encoder.Plo
+       -rm -f ./$(DEPDIR)/liblzma_la-easy_decoder_memusage.Plo
+       -rm -f ./$(DEPDIR)/liblzma_la-easy_encoder.Plo
+       -rm -f ./$(DEPDIR)/liblzma_la-easy_encoder_memusage.Plo
+       -rm -f ./$(DEPDIR)/liblzma_la-easy_preset.Plo
+       -rm -f ./$(DEPDIR)/liblzma_la-fastpos_table.Plo
+       -rm -f ./$(DEPDIR)/liblzma_la-filter_buffer_decoder.Plo
+       -rm -f ./$(DEPDIR)/liblzma_la-filter_buffer_encoder.Plo
+       -rm -f ./$(DEPDIR)/liblzma_la-filter_common.Plo
+       -rm -f ./$(DEPDIR)/liblzma_la-filter_decoder.Plo
+       -rm -f ./$(DEPDIR)/liblzma_la-filter_encoder.Plo
+       -rm -f ./$(DEPDIR)/liblzma_la-filter_flags_decoder.Plo
+       -rm -f ./$(DEPDIR)/liblzma_la-filter_flags_encoder.Plo
+       -rm -f ./$(DEPDIR)/liblzma_la-hardware_cputhreads.Plo
+       -rm -f ./$(DEPDIR)/liblzma_la-hardware_physmem.Plo
+       -rm -f ./$(DEPDIR)/liblzma_la-ia64.Plo
+       -rm -f ./$(DEPDIR)/liblzma_la-index.Plo
+       -rm -f ./$(DEPDIR)/liblzma_la-index_decoder.Plo
+       -rm -f ./$(DEPDIR)/liblzma_la-index_encoder.Plo
+       -rm -f ./$(DEPDIR)/liblzma_la-index_hash.Plo
+       -rm -f ./$(DEPDIR)/liblzma_la-lz_decoder.Plo
+       -rm -f ./$(DEPDIR)/liblzma_la-lz_encoder.Plo
+       -rm -f ./$(DEPDIR)/liblzma_la-lz_encoder_mf.Plo
+       -rm -f ./$(DEPDIR)/liblzma_la-lzma2_decoder.Plo
+       -rm -f ./$(DEPDIR)/liblzma_la-lzma2_encoder.Plo
+       -rm -f ./$(DEPDIR)/liblzma_la-lzma_decoder.Plo
+       -rm -f ./$(DEPDIR)/liblzma_la-lzma_encoder.Plo
+       -rm -f ./$(DEPDIR)/liblzma_la-lzma_encoder_optimum_fast.Plo
+       -rm -f ./$(DEPDIR)/liblzma_la-lzma_encoder_optimum_normal.Plo
+       -rm -f ./$(DEPDIR)/liblzma_la-lzma_encoder_presets.Plo
+       -rm -f ./$(DEPDIR)/liblzma_la-outqueue.Plo
+       -rm -f ./$(DEPDIR)/liblzma_la-powerpc.Plo
+       -rm -f ./$(DEPDIR)/liblzma_la-price_table.Plo
+       -rm -f ./$(DEPDIR)/liblzma_la-sha256.Plo
+       -rm -f ./$(DEPDIR)/liblzma_la-simple_coder.Plo
+       -rm -f ./$(DEPDIR)/liblzma_la-simple_decoder.Plo
+       -rm -f ./$(DEPDIR)/liblzma_la-simple_encoder.Plo
+       -rm -f ./$(DEPDIR)/liblzma_la-sparc.Plo
+       -rm -f ./$(DEPDIR)/liblzma_la-stream_buffer_decoder.Plo
+       -rm -f ./$(DEPDIR)/liblzma_la-stream_buffer_encoder.Plo
+       -rm -f ./$(DEPDIR)/liblzma_la-stream_decoder.Plo
+       -rm -f ./$(DEPDIR)/liblzma_la-stream_encoder.Plo
+       -rm -f ./$(DEPDIR)/liblzma_la-stream_encoder_mt.Plo
+       -rm -f ./$(DEPDIR)/liblzma_la-stream_flags_common.Plo
+       -rm -f ./$(DEPDIR)/liblzma_la-stream_flags_decoder.Plo
+       -rm -f ./$(DEPDIR)/liblzma_la-stream_flags_encoder.Plo
+       -rm -f ./$(DEPDIR)/liblzma_la-tuklib_cpucores.Plo
+       -rm -f ./$(DEPDIR)/liblzma_la-tuklib_physmem.Plo
+       -rm -f ./$(DEPDIR)/liblzma_la-vli_decoder.Plo
+       -rm -f ./$(DEPDIR)/liblzma_la-vli_encoder.Plo
+       -rm -f ./$(DEPDIR)/liblzma_la-vli_size.Plo
+       -rm -f ./$(DEPDIR)/liblzma_la-x86.Plo
        -rm -f Makefile
 distclean-am: clean-am distclean-compile distclean-generic \
        distclean-tags
@@ -1788,7 +1952,83 @@ install-ps-am:
 installcheck-am:
 
 maintainer-clean: maintainer-clean-recursive
-       -rm -rf ./$(DEPDIR)
+               -rm -f ./$(DEPDIR)/liblzma_la-alone_decoder.Plo
+       -rm -f ./$(DEPDIR)/liblzma_la-alone_encoder.Plo
+       -rm -f ./$(DEPDIR)/liblzma_la-arm.Plo
+       -rm -f ./$(DEPDIR)/liblzma_la-armthumb.Plo
+       -rm -f ./$(DEPDIR)/liblzma_la-auto_decoder.Plo
+       -rm -f ./$(DEPDIR)/liblzma_la-block_buffer_decoder.Plo
+       -rm -f ./$(DEPDIR)/liblzma_la-block_buffer_encoder.Plo
+       -rm -f ./$(DEPDIR)/liblzma_la-block_decoder.Plo
+       -rm -f ./$(DEPDIR)/liblzma_la-block_encoder.Plo
+       -rm -f ./$(DEPDIR)/liblzma_la-block_header_decoder.Plo
+       -rm -f ./$(DEPDIR)/liblzma_la-block_header_encoder.Plo
+       -rm -f ./$(DEPDIR)/liblzma_la-block_util.Plo
+       -rm -f ./$(DEPDIR)/liblzma_la-check.Plo
+       -rm -f ./$(DEPDIR)/liblzma_la-common.Plo
+       -rm -f ./$(DEPDIR)/liblzma_la-crc32_fast.Plo
+       -rm -f ./$(DEPDIR)/liblzma_la-crc32_small.Plo
+       -rm -f ./$(DEPDIR)/liblzma_la-crc32_table.Plo
+       -rm -f ./$(DEPDIR)/liblzma_la-crc32_x86.Plo
+       -rm -f ./$(DEPDIR)/liblzma_la-crc64_fast.Plo
+       -rm -f ./$(DEPDIR)/liblzma_la-crc64_small.Plo
+       -rm -f ./$(DEPDIR)/liblzma_la-crc64_table.Plo
+       -rm -f ./$(DEPDIR)/liblzma_la-crc64_x86.Plo
+       -rm -f ./$(DEPDIR)/liblzma_la-delta_common.Plo
+       -rm -f ./$(DEPDIR)/liblzma_la-delta_decoder.Plo
+       -rm -f ./$(DEPDIR)/liblzma_la-delta_encoder.Plo
+       -rm -f ./$(DEPDIR)/liblzma_la-easy_buffer_encoder.Plo
+       -rm -f ./$(DEPDIR)/liblzma_la-easy_decoder_memusage.Plo
+       -rm -f ./$(DEPDIR)/liblzma_la-easy_encoder.Plo
+       -rm -f ./$(DEPDIR)/liblzma_la-easy_encoder_memusage.Plo
+       -rm -f ./$(DEPDIR)/liblzma_la-easy_preset.Plo
+       -rm -f ./$(DEPDIR)/liblzma_la-fastpos_table.Plo
+       -rm -f ./$(DEPDIR)/liblzma_la-filter_buffer_decoder.Plo
+       -rm -f ./$(DEPDIR)/liblzma_la-filter_buffer_encoder.Plo
+       -rm -f ./$(DEPDIR)/liblzma_la-filter_common.Plo
+       -rm -f ./$(DEPDIR)/liblzma_la-filter_decoder.Plo
+       -rm -f ./$(DEPDIR)/liblzma_la-filter_encoder.Plo
+       -rm -f ./$(DEPDIR)/liblzma_la-filter_flags_decoder.Plo
+       -rm -f ./$(DEPDIR)/liblzma_la-filter_flags_encoder.Plo
+       -rm -f ./$(DEPDIR)/liblzma_la-hardware_cputhreads.Plo
+       -rm -f ./$(DEPDIR)/liblzma_la-hardware_physmem.Plo
+       -rm -f ./$(DEPDIR)/liblzma_la-ia64.Plo
+       -rm -f ./$(DEPDIR)/liblzma_la-index.Plo
+       -rm -f ./$(DEPDIR)/liblzma_la-index_decoder.Plo
+       -rm -f ./$(DEPDIR)/liblzma_la-index_encoder.Plo
+       -rm -f ./$(DEPDIR)/liblzma_la-index_hash.Plo
+       -rm -f ./$(DEPDIR)/liblzma_la-lz_decoder.Plo
+       -rm -f ./$(DEPDIR)/liblzma_la-lz_encoder.Plo
+       -rm -f ./$(DEPDIR)/liblzma_la-lz_encoder_mf.Plo
+       -rm -f ./$(DEPDIR)/liblzma_la-lzma2_decoder.Plo
+       -rm -f ./$(DEPDIR)/liblzma_la-lzma2_encoder.Plo
+       -rm -f ./$(DEPDIR)/liblzma_la-lzma_decoder.Plo
+       -rm -f ./$(DEPDIR)/liblzma_la-lzma_encoder.Plo
+       -rm -f ./$(DEPDIR)/liblzma_la-lzma_encoder_optimum_fast.Plo
+       -rm -f ./$(DEPDIR)/liblzma_la-lzma_encoder_optimum_normal.Plo
+       -rm -f ./$(DEPDIR)/liblzma_la-lzma_encoder_presets.Plo
+       -rm -f ./$(DEPDIR)/liblzma_la-outqueue.Plo
+       -rm -f ./$(DEPDIR)/liblzma_la-powerpc.Plo
+       -rm -f ./$(DEPDIR)/liblzma_la-price_table.Plo
+       -rm -f ./$(DEPDIR)/liblzma_la-sha256.Plo
+       -rm -f ./$(DEPDIR)/liblzma_la-simple_coder.Plo
+       -rm -f ./$(DEPDIR)/liblzma_la-simple_decoder.Plo
+       -rm -f ./$(DEPDIR)/liblzma_la-simple_encoder.Plo
+       -rm -f ./$(DEPDIR)/liblzma_la-sparc.Plo
+       -rm -f ./$(DEPDIR)/liblzma_la-stream_buffer_decoder.Plo
+       -rm -f ./$(DEPDIR)/liblzma_la-stream_buffer_encoder.Plo
+       -rm -f ./$(DEPDIR)/liblzma_la-stream_decoder.Plo
+       -rm -f ./$(DEPDIR)/liblzma_la-stream_encoder.Plo
+       -rm -f ./$(DEPDIR)/liblzma_la-stream_encoder_mt.Plo
+       -rm -f ./$(DEPDIR)/liblzma_la-stream_flags_common.Plo
+       -rm -f ./$(DEPDIR)/liblzma_la-stream_flags_decoder.Plo
+       -rm -f ./$(DEPDIR)/liblzma_la-stream_flags_encoder.Plo
+       -rm -f ./$(DEPDIR)/liblzma_la-tuklib_cpucores.Plo
+       -rm -f ./$(DEPDIR)/liblzma_la-tuklib_physmem.Plo
+       -rm -f ./$(DEPDIR)/liblzma_la-vli_decoder.Plo
+       -rm -f ./$(DEPDIR)/liblzma_la-vli_encoder.Plo
+       -rm -f ./$(DEPDIR)/liblzma_la-vli_size.Plo
+       -rm -f ./$(DEPDIR)/liblzma_la-x86.Plo
        -rm -f Makefile
 maintainer-clean-am: distclean-am maintainer-clean-generic
 
@@ -1810,10 +2050,10 @@ uninstall-am: uninstall-docDATA uninstall-libLTLIBRARIES \
 
 .MAKE: $(am__recursive_targets) install-am install-strip
 
-.PHONY: $(am__recursive_targets) CTAGS GTAGS TAGS all all-am check \
-       check-am clean clean-generic clean-libLTLIBRARIES \
-       clean-libtool clean-local cscopelist-am ctags ctags-am \
-       distclean distclean-compile distclean-generic \
+.PHONY: $(am__recursive_targets) CTAGS GTAGS TAGS all all-am \
+       am--depfiles check check-am clean clean-generic \
+       clean-libLTLIBRARIES clean-libtool clean-local cscopelist-am \
+       ctags ctags-am distclean distclean-compile distclean-generic \
        distclean-libtool distclean-tags distdir dvi dvi-am html \
        html-am info info-am install install-am install-data \
        install-data-am install-docDATA install-dvi install-dvi-am \
index b0864a6..ca5fd10 100644 (file)
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.15.1 from Makefile.am.
+# Makefile.in generated by automake 1.16.1 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2017 Free Software Foundation, Inc.
+# Copyright (C) 1994-2018 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -92,14 +92,15 @@ subdir = src/liblzma/api
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/m4/ax_check_capsicum.m4 \
        $(top_srcdir)/m4/ax_pthread.m4 $(top_srcdir)/m4/getopt.m4 \
-       $(top_srcdir)/m4/gettext.m4 $(top_srcdir)/m4/iconv.m4 \
-       $(top_srcdir)/m4/intlmacosx.m4 $(top_srcdir)/m4/lib-ld.m4 \
-       $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \
-       $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \
-       $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \
-       $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/m4/nls.m4 \
-       $(top_srcdir)/m4/po.m4 $(top_srcdir)/m4/posix-shell.m4 \
-       $(top_srcdir)/m4/progtest.m4 $(top_srcdir)/m4/tuklib_common.m4 \
+       $(top_srcdir)/m4/gettext.m4 $(top_srcdir)/m4/host-cpu-c-abi.m4 \
+       $(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/intlmacosx.m4 \
+       $(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \
+       $(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/libtool.m4 \
+       $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \
+       $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \
+       $(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/po.m4 \
+       $(top_srcdir)/m4/posix-shell.m4 $(top_srcdir)/m4/progtest.m4 \
+       $(top_srcdir)/m4/tuklib_common.m4 \
        $(top_srcdir)/m4/tuklib_cpucores.m4 \
        $(top_srcdir)/m4/tuklib_integer.m4 \
        $(top_srcdir)/m4/tuklib_mbstr.m4 \
@@ -246,8 +247,8 @@ MAKEINFO = @MAKEINFO@
 MANIFEST_TOOL = @MANIFEST_TOOL@
 MKDIR_P = @MKDIR_P@
 MSGFMT = @MSGFMT@
-MSGFMT_015 = @MSGFMT_015@
 MSGMERGE = @MSGMERGE@
+MSGMERGE_FOR_MSGFMT_OPTION = @MSGMERGE_FOR_MSGFMT_OPTION@
 NM = @NM@
 NMEDIT = @NMEDIT@
 OBJDUMP = @OBJDUMP@
@@ -303,6 +304,7 @@ datadir = @datadir@
 datarootdir = @datarootdir@
 docdir = @docdir@
 dvidir = @dvidir@
+enable_path_for_scripts = @enable_path_for_scripts@
 exec_prefix = @exec_prefix@
 host = @host@
 host_alias = @host_alias@
@@ -370,8 +372,8 @@ Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
          *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);; \
+           echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles)'; \
+           cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles);; \
        esac;
 
 $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
@@ -465,7 +467,10 @@ cscopelist-am: $(am__tagged_files)
 distclean-tags:
        -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
 
-distdir: $(DISTFILES)
+distdir: $(BUILT_SOURCES)
+       $(MAKE) $(AM_MAKEFLAGS) distdir-am
+
+distdir-am: $(DISTFILES)
        @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
        topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
        list='$(DISTFILES)'; \
index aa88e42..122dab8 100644 (file)
 #              else
 #                      define lzma_nothrow throw()
 #              endif
-#      elif __GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 3)
+#      elif defined(__GNUC__) && (__GNUC__ > 3 \
+                       || (__GNUC__ == 3 && __GNUC_MINOR__ >= 3))
 #              define lzma_nothrow __attribute__((__nothrow__))
 #      else
 #              define lzma_nothrow
  * break anything if these are sometimes enabled and sometimes not, only
  * affects warnings and optimizations.
  */
-#if __GNUC__ >= 3
+#if defined(__GNUC__) && __GNUC__ >= 3
 #      ifndef lzma_attribute
 #              define lzma_attribute(attr) __attribute__(attr)
 #      endif
index 7bdcfd7..962f387 100644 (file)
@@ -448,7 +448,7 @@ extern LZMA_API(lzma_vli) lzma_block_total_size(const lzma_block *block)
  *              - LZMA_MEM_ERROR
  *              - LZMA_OPTIONS_ERROR
  *              - LZMA_UNSUPPORTED_CHECK: block->check specifies a Check ID
- *                that is not supported by this buid of liblzma. Initializing
+ *                that is not supported by this build of liblzma. Initializing
  *                the encoder failed.
  *              - LZMA_PROG_ERROR
  */
index 4e78752..8c85931 100644 (file)
@@ -341,9 +341,10 @@ extern LZMA_API(lzma_ret) lzma_properties_encode(
  * \param       filter      filter->id must have been set to the correct
  *                          Filter ID. filter->options doesn't need to be
  *                          initialized (it's not freed by this function). The
- *                          decoded options will be stored to filter->options.
- *                          filter->options is set to NULL if there are no
- *                          properties or if an error occurs.
+ *                          decoded options will be stored in filter->options;
+ *                          it's application's responsibility to free it when
+ *                          appropriate. filter->options is set to NULL if
+ *                          there are no properties or if an error occurs.
  * \param       allocator   Custom memory allocator used to allocate the
  *                          options. Set to NULL to use the default malloc(),
  *                          and in case of an error, also free().
index 5321d9a..47481f2 100644 (file)
@@ -6,7 +6,7 @@
  * ways to limit the resource usage. Applications linking against liblzma
  * need to do the actual decisions how much resources to let liblzma to use.
  * To ease making these decisions, liblzma provides functions to find out
- * the relevant capabilities of the underlaying hardware. Currently there
+ * the relevant capabilities of the underlying hardware. Currently there
  * is only a function to find out the amount of RAM, but in the future there
  * will be also a function to detect how many concurrent threads the system
  * can run.
index 4e32fa3..df5f23b 100644 (file)
@@ -301,7 +301,7 @@ typedef struct {
         * (2^ pb =2^2=4), which is often a good choice when there's
         * no better guess.
         *
-        * When the aligment is known, setting pb accordingly may reduce
+        * When the alignment is known, setting pb accordingly may reduce
         * the file size a little. E.g. with text files having one-byte
         * alignment (US-ASCII, ISO-8859-*, UTF-8), setting pb=0 can
         * improve compression slightly. For UTF-16 text, pb=1 is a good
index 143c7de..2bf3eae 100644 (file)
@@ -22,7 +22,7 @@
  */
 #define LZMA_VERSION_MAJOR 5
 #define LZMA_VERSION_MINOR 2
-#define LZMA_VERSION_PATCH 4
+#define LZMA_VERSION_PATCH 5
 #define LZMA_VERSION_STABILITY LZMA_VERSION_STABILITY_STABLE
 
 #ifndef LZMA_VERSION_COMMIT
index 9ad13f2..1b7a952 100644 (file)
@@ -54,7 +54,7 @@
  *
  * Valid VLI values are in the range [0, LZMA_VLI_MAX]. Unknown value is
  * indicated with LZMA_VLI_UNKNOWN, which is the maximum value of the
- * underlaying integer type.
+ * underlying integer type.
  *
  * lzma_vli will be uint64_t for the foreseeable future. If a bigger size
  * is needed in the future, it is guaranteed that 2 * LZMA_VLI_MAX will
index 3de0263..eed7350 100644 (file)
@@ -49,7 +49,7 @@ lzma_crc32(const uint8_t *buf, size_t size, uint32_t crc)
 
                // Calculate the CRC32 using the slice-by-eight algorithm.
                while (buf < limit) {
-                       crc ^= *(const uint32_t *)(buf);
+                       crc ^= aligned_read32ne(buf);
                        buf += 4;
 
                        crc = lzma_crc32_table[7][A(crc)]
@@ -57,7 +57,7 @@ lzma_crc32(const uint8_t *buf, size_t size, uint32_t crc)
                            ^ lzma_crc32_table[5][C(crc)]
                            ^ lzma_crc32_table[4][D(crc)];
 
-                       const uint32_t tmp = *(const uint32_t *)(buf);
+                       const uint32_t tmp = aligned_read32ne(buf);
                        buf += 4;
 
                        // At least with some compilers, it is critical for
index 368874e..b11762a 100644 (file)
@@ -12,6 +12,9 @@
 
 #include "common.h"
 
+// Having the declaration here silences clang -Wmissing-variable-declarations.
+extern const uint32_t lzma_crc32_table[8][256];
+
 #ifdef WORDS_BIGENDIAN
 #      include "crc32_table_be.h"
 #else
index 52af29e..8af54cd 100644 (file)
@@ -47,9 +47,9 @@ lzma_crc64(const uint8_t *buf, size_t size, uint64_t crc)
                while (buf < limit) {
 #ifdef WORDS_BIGENDIAN
                        const uint32_t tmp = (crc >> 32)
-                                       ^ *(const uint32_t *)(buf);
+                                       ^ aligned_read32ne(buf);
 #else
-                       const uint32_t tmp = crc ^ *(const uint32_t *)(buf);
+                       const uint32_t tmp = crc ^ aligned_read32ne(buf);
 #endif
                        buf += 4;
 
index 1fbcd94..7560eb0 100644 (file)
@@ -12,6 +12,9 @@
 
 #include "common.h"
 
+// Having the declaration here silences clang -Wmissing-variable-declarations.
+extern const uint64_t lzma_crc64_table[4][256];
+
 #ifdef WORDS_BIGENDIAN
 #      include "crc64_table_be.h"
 #else
index 77d0a9b..239b230 100644 (file)
@@ -50,8 +50,7 @@ typedef struct {
 
 
 static lzma_ret
-alone_decode(void *coder_ptr,
-               const lzma_allocator *allocator lzma_attribute((__unused__)),
+alone_decode(void *coder_ptr, const lzma_allocator *allocator,
                const uint8_t *restrict in, size_t *restrict in_pos,
                size_t in_size, uint8_t *restrict out,
                size_t *restrict out_pos, size_t out_size,
index 4853cfd..96c1db7 100644 (file)
@@ -1,7 +1,7 @@
 ///////////////////////////////////////////////////////////////////////////////
 //
-/// \file       alone_decoder.c
-/// \brief      Decoder for LZMA_Alone files
+/// \file       alone_encoder.c
+/// \brief      Encoder for LZMA_Alone files
 //
 //  Author:     Lasse Collin
 //
@@ -31,8 +31,7 @@ typedef struct {
 
 
 static lzma_ret
-alone_encode(void *coder_ptr,
-               const lzma_allocator *allocator lzma_attribute((__unused__)),
+alone_encode(void *coder_ptr, const lzma_allocator *allocator,
                const uint8_t *restrict in, size_t *restrict in_pos,
                size_t in_size, uint8_t *restrict out,
                size_t *restrict out_pos, size_t out_size,
@@ -122,7 +121,7 @@ alone_encoder_init(lzma_next_coder *next, const lzma_allocator *allocator,
        if (d != UINT32_MAX)
                ++d;
 
-       unaligned_write32le(coder->header + 1, d);
+       write32le(coder->header + 1, d);
 
        // - Uncompressed size (always unknown and using EOPM)
        memset(coder->header + 1 + 4, 0xFF, 8);
index 1dd982f..2e1135d 100644 (file)
@@ -67,7 +67,7 @@ lzma_block_header_decode(lzma_block *block,
        const size_t in_size = block->header_size - 4;
 
        // Verify CRC32
-       if (lzma_crc32(in, in_size, 0) != unaligned_read32le(in + in_size))
+       if (lzma_crc32(in, in_size, 0) != read32le(in + in_size))
                return LZMA_DATA_ERROR;
 
        // Check for unsupported flags.
@@ -98,7 +98,7 @@ lzma_block_header_decode(lzma_block *block,
                block->uncompressed_size = LZMA_VLI_UNKNOWN;
 
        // Filter Flags
-       const size_t filter_count = (in[1] & 3) + 1;
+       const size_t filter_count = (in[1] & 3U) + 1;
        for (size_t i = 0; i < filter_count; ++i) {
                const lzma_ret ret = lzma_filter_flags_decode(
                                &block->filters[i], allocator,
index 5c5f542..160425d 100644 (file)
@@ -126,7 +126,7 @@ lzma_block_header_encode(const lzma_block *block, uint8_t *out)
        memzero(out + out_pos, out_size - out_pos);
 
        // CRC32
-       unaligned_write32le(out + out_size, lzma_crc32(out, out_size, 0));
+       write32le(out + out_size, lzma_crc32(out, out_size, 0));
 
        return LZMA_OK;
 }
index 00c7fe8..acb3111 100644 (file)
@@ -1,6 +1,6 @@
 ///////////////////////////////////////////////////////////////////////////////
 //
-/// \file       block_header.c
+/// \file       block_util.c
 /// \brief      Utility functions to handle lzma_block
 //
 //  Author:     Lasse Collin
index 57e3f8e..cf714e5 100644 (file)
@@ -1,6 +1,6 @@
 ///////////////////////////////////////////////////////////////////////////////
 //
-/// \file       common.h
+/// \file       common.c
 /// \brief      Common functions needed in many places in liblzma
 //
 //  Author:     Lasse Collin
@@ -99,7 +99,11 @@ lzma_bufcpy(const uint8_t *restrict in, size_t *restrict in_pos,
        const size_t out_avail = out_size - *out_pos;
        const size_t copy_size = my_min(in_avail, out_avail);
 
-       memcpy(out + *out_pos, in + *in_pos, copy_size);
+       // Call memcpy() only if there is something to copy. If there is
+       // nothing to copy, in or out might be NULL and then the memcpy()
+       // call would trigger undefined behavior.
+       if (copy_size > 0)
+               memcpy(out + *out_pos, in + *in_pos, copy_size);
 
        *in_pos += copy_size;
        *out_pos += copy_size;
index 42a26a2..9390305 100644 (file)
@@ -1,6 +1,6 @@
 ///////////////////////////////////////////////////////////////////////////////
 //
-/// \file       filter_common.c
+/// \file       filter_common.h
 /// \brief      Filter-specific stuff common for both encoder and decoder
 //
 //  Author:     Lasse Collin
index a2e255f..2dac602 100644 (file)
@@ -1,6 +1,6 @@
 ///////////////////////////////////////////////////////////////////////////////
 //
-/// \file       filter_decoder.c
+/// \file       filter_decoder.h
 /// \brief      Filter ID mapping to filter-specific functions
 //
 //  Author:     Lasse Collin
index d110566..b57b9fd 100644 (file)
@@ -1,7 +1,7 @@
 ///////////////////////////////////////////////////////////////////////////////
 //
 /// \file       filter_flags_encoder.c
-/// \brief      Decodes a Filter Flags field
+/// \brief      Encodes a Filter Flags field
 //
 //  Author:     Lasse Collin
 //
index 7405b65..a2bbbe2 100644 (file)
@@ -19,7 +19,7 @@ extern LZMA_API(uint64_t)
 lzma_physmem(void)
 {
        // It is simpler to make lzma_physmem() a wrapper for
-       // tuklib_physmem() than to hack appropriate symbol visiblity
+       // tuklib_physmem() than to hack appropriate symbol visibility
        // support for the tuklib modules.
        return tuklib_physmem();
 }
index 26e4e51..a41e8f3 100644 (file)
@@ -105,7 +105,7 @@ typedef struct {
 
 
 typedef struct {
-       /// Every index_stream is a node in the tree of Sreams.
+       /// Every index_stream is a node in the tree of Streams.
        index_tree_node node;
 
        /// Number of this Stream (first one is 1)
@@ -166,7 +166,7 @@ struct lzma_index_s {
        lzma_vli index_list_size;
 
        /// How many Records to allocate at once in lzma_index_append().
-       /// This defaults to INDEX_GROUP_SIZE but can be overriden with
+       /// This defaults to INDEX_GROUP_SIZE but can be overridden with
        /// lzma_index_prealloc().
        size_t prealloc;
 
@@ -825,8 +825,8 @@ lzma_index_cat(lzma_index *restrict dest, lzma_index *restrict src,
                                s->groups.root = &newg->node;
                        }
 
-                       if (s->groups.rightmost == &g->node)
-                               s->groups.rightmost = &newg->node;
+                       assert(s->groups.rightmost == &g->node);
+                       s->groups.rightmost = &newg->node;
 
                        lzma_free(g, allocator);
 
index c1efc9e..dcfd8d6 100644 (file)
@@ -61,8 +61,7 @@ lzma_memcmplen(const uint8_t *buf1, const uint8_t *buf2,
        // to __builtin_clzll().
 #define LZMA_MEMCMPLEN_EXTRA 8
        while (len < limit) {
-               const uint64_t x = *(const uint64_t *)(buf1 + len)
-                               - *(const uint64_t *)(buf2 + len);
+               const uint64_t x = read64ne(buf1 + len) - read64ne(buf2 + len);
                if (x != 0) {
 #      if defined(_M_X64) // MSVC or Intel C compiler on Windows
                        unsigned long tmp;
@@ -99,15 +98,7 @@ lzma_memcmplen(const uint8_t *buf1, const uint8_t *buf2,
                        _mm_loadu_si128((const __m128i *)(buf2 + len))));
 
                if (x != 0) {
-#      if defined(__INTEL_COMPILER)
-                       len += _bit_scan_forward(x);
-#      elif defined(_MSC_VER)
-                       unsigned long tmp;
-                       _BitScanForward(&tmp, x);
-                       len += tmp;
-#      else
-                       len += __builtin_ctz(x);
-#      endif
+                       len += ctz32(x);
                        return my_min(len, limit);
                }
 
@@ -120,8 +111,7 @@ lzma_memcmplen(const uint8_t *buf1, const uint8_t *buf2,
        // Generic 32-bit little endian method
 #      define LZMA_MEMCMPLEN_EXTRA 4
        while (len < limit) {
-               uint32_t x = *(const uint32_t *)(buf1 + len)
-                               - *(const uint32_t *)(buf2 + len);
+               uint32_t x = read32ne(buf1 + len) - read32ne(buf2 + len);
                if (x != 0) {
                        if ((x & 0xFFFF) == 0) {
                                len += 2;
@@ -143,8 +133,7 @@ lzma_memcmplen(const uint8_t *buf1, const uint8_t *buf2,
        // Generic 32-bit big endian method
 #      define LZMA_MEMCMPLEN_EXTRA 4
        while (len < limit) {
-               uint32_t x = *(const uint32_t *)(buf1 + len)
-                               ^ *(const uint32_t *)(buf2 + len);
+               uint32_t x = read32ne(buf1 + len) ^ read32ne(buf2 + len);
                if (x != 0) {
                        if ((x & 0xFFFF0000) == 0) {
                                len += 2;
index 2efe44c..01e4033 100644 (file)
@@ -700,7 +700,7 @@ stream_encode_mt(void *coder_ptr, const lzma_allocator *allocator,
                                ret = coder->thread_error;
                                if (ret != LZMA_OK) {
                                        assert(ret != LZMA_STREAM_END);
-                                       break;
+                                       break; // Break out of mythread_sync.
                                }
 
                                // Try to read compressed data to out[].
@@ -958,7 +958,7 @@ stream_encoder_mt_init(lzma_next_coder *next, const lzma_allocator *allocator,
        // Validate the filter chain so that we can give an error in this
        // function instead of delaying it to the first call to lzma_code().
        // The memory usage calculation verifies the filter chain as
-       // a side effect so we take advatange of that.
+       // a side effect so we take advantage of that.
        if (lzma_raw_encoder_memusage(filters) == UINT64_MAX)
                return LZMA_OPTIONS_ERROR;
 
index 1bc2f97..4e43e35 100644 (file)
@@ -38,7 +38,7 @@ lzma_stream_header_decode(lzma_stream_flags *options, const uint8_t *in)
        // and unsupported files.
        const uint32_t crc = lzma_crc32(in + sizeof(lzma_header_magic),
                        LZMA_STREAM_FLAGS_SIZE, 0);
-       if (crc != unaligned_read32le(in + sizeof(lzma_header_magic)
+       if (crc != read32le(in + sizeof(lzma_header_magic)
                        + LZMA_STREAM_FLAGS_SIZE))
                return LZMA_DATA_ERROR;
 
@@ -67,7 +67,7 @@ lzma_stream_footer_decode(lzma_stream_flags *options, const uint8_t *in)
        // CRC32
        const uint32_t crc = lzma_crc32(in + sizeof(uint32_t),
                        sizeof(uint32_t) + LZMA_STREAM_FLAGS_SIZE, 0);
-       if (crc != unaligned_read32le(in))
+       if (crc != read32le(in))
                return LZMA_DATA_ERROR;
 
        // Stream Flags
@@ -75,7 +75,7 @@ lzma_stream_footer_decode(lzma_stream_flags *options, const uint8_t *in)
                return LZMA_OPTIONS_ERROR;
 
        // Backward Size
-       options->backward_size = unaligned_read32le(in + sizeof(uint32_t));
+       options->backward_size = read32le(in + sizeof(uint32_t));
        options->backward_size = (options->backward_size + 1) * 4;
 
        return LZMA_OK;
index 4e71715..b98ab17 100644 (file)
@@ -46,8 +46,8 @@ lzma_stream_header_encode(const lzma_stream_flags *options, uint8_t *out)
        const uint32_t crc = lzma_crc32(out + sizeof(lzma_header_magic),
                        LZMA_STREAM_FLAGS_SIZE, 0);
 
-       unaligned_write32le(out + sizeof(lzma_header_magic)
-                       + LZMA_STREAM_FLAGS_SIZE, crc);
+       write32le(out + sizeof(lzma_header_magic) + LZMA_STREAM_FLAGS_SIZE,
+                       crc);
 
        return LZMA_OK;
 }
@@ -66,7 +66,7 @@ lzma_stream_footer_encode(const lzma_stream_flags *options, uint8_t *out)
        if (!is_backward_size_valid(options))
                return LZMA_PROG_ERROR;
 
-       unaligned_write32le(out + 4, options->backward_size / 4 - 1);
+       write32le(out + 4, options->backward_size / 4 - 1);
 
        // Stream Flags
        if (stream_flags_encode(options, out + 2 * 4))
@@ -76,7 +76,7 @@ lzma_stream_footer_encode(const lzma_stream_flags *options, uint8_t *out)
        const uint32_t crc = lzma_crc32(
                        out + 4, 4 + LZMA_STREAM_FLAGS_SIZE, 0);
 
-       unaligned_write32le(out, crc);
+       write32le(out, crc);
 
        // Magic
        memcpy(out + 2 * 4 + LZMA_STREAM_FLAGS_SIZE,
index c181828..af2799d 100644 (file)
@@ -72,7 +72,7 @@ lzma_vli_decode(lzma_vli *restrict vli, size_t *vli_pos,
                // corrupt.
                //
                // If we need bigger integers in future, old versions liblzma
-               // will confusingly indicate the file being corrupt istead of
+               // will confusingly indicate the file being corrupt instead of
                // unsupported. I suppose it's still better this way, because
                // in the foreseeable future (writing this in 2008) the only
                // reason why files would appear having over 63-bit integers
index 6859afa..13d8a28 100644 (file)
@@ -70,7 +70,7 @@ lzma_delta_props_decode(void **options, const lzma_allocator *allocator,
                return LZMA_MEM_ERROR;
 
        opt->type = LZMA_DELTA_TYPE_BYTE;
-       opt->dist = props[0] + 1;
+       opt->dist = props[0] + 1U;
 
        *options = opt;
 
index c708644..09b5743 100644 (file)
@@ -91,11 +91,17 @@ decode_buffer(lzma_coder *coder,
                                in, in_pos, in_size);
 
                // Copy the decoded data from the dictionary to the out[]
-               // buffer.
+               // buffer. Do it conditionally because out can be NULL
+               // (in which case copy_size is always 0). Calling memcpy()
+               // with a null-pointer is undefined even if the third
+               // argument is 0.
                const size_t copy_size = coder->dict.pos - dict_start;
                assert(copy_size <= out_size - *out_pos);
-               memcpy(out + *out_pos, coder->dict.buf + dict_start,
-                               copy_size);
+
+               if (copy_size > 0)
+                       memcpy(out + *out_pos, coder->dict.buf + dict_start,
+                                       copy_size);
+
                *out_pos += copy_size;
 
                // Reset the dictionary if so requested by coder->lz.code().
@@ -125,8 +131,7 @@ decode_buffer(lzma_coder *coder,
 
 
 static lzma_ret
-lz_decode(void *coder_ptr,
-               const lzma_allocator *allocator lzma_attribute((__unused__)),
+lz_decode(void *coder_ptr, const lzma_allocator *allocator,
                const uint8_t *restrict in, size_t *restrict in_pos,
                size_t in_size, uint8_t *restrict out,
                size_t *restrict out_pos, size_t out_size,
@@ -241,7 +246,7 @@ lzma_lz_decoder_init(lzma_next_coder *next, const lzma_allocator *allocator,
        if (lz_options.dict_size < 4096)
                lz_options.dict_size = 4096;
 
-       // Make dictionary size a multipe of 16. Some LZ-based decoders like
+       // Make dictionary size a multiple of 16. Some LZ-based decoders like
        // LZMA use the lowest bits lzma_dict.pos to know the alignment of the
        // data. Aligned buffer is also good when memcpying from the
        // dictionary to the output buffer, since applications are
index 342a333..fb15c58 100644 (file)
@@ -39,7 +39,7 @@
 // Endianness doesn't matter in hash_2_calc() (no effect on the output).
 #ifdef TUKLIB_FAST_UNALIGNED_ACCESS
 #      define hash_2_calc() \
-               const uint32_t hash_value = *(const uint16_t *)(cur)
+               const uint32_t hash_value = read16ne(cur)
 #else
 #      define hash_2_calc() \
                const uint32_t hash_value \
index 7852077..d03657a 100644 (file)
@@ -113,7 +113,7 @@ normalize(lzma_mf *mf)
        // may be match finders that use larger resolution than one byte.
        const uint32_t subvalue
                        = (MUST_NORMALIZE_POS - mf->cyclic_size);
-                               // & (~(UINT32_C(1) << 10) - 1);
+                               // & ~((UINT32_C(1) << 10) - 1);
 
        for (uint32_t i = 0; i < mf->hash_count; ++i) {
                // If the distance is greater than the dictionary size,
index a3feea5..cba442c 100644 (file)
@@ -101,7 +101,7 @@ extern const uint8_t lzma_fastpos[1 << FASTPOS_BITS];
        (UINT32_C(1) << (FASTPOS_BITS + fastpos_shift(extra, n)))
 
 #define fastpos_result(dist, extra, n) \
-       lzma_fastpos[(dist) >> fastpos_shift(extra, n)] \
+       (uint32_t)(lzma_fastpos[(dist) >> fastpos_shift(extra, n)]) \
                        + 2 * fastpos_shift(extra, n)
 
 
index c97e6f4..d4484c8 100644 (file)
@@ -11,7 +11,6 @@
 //
 ///////////////////////////////////////////////////////////////////////////////
 
-#include <sys/types.h>
 #include <inttypes.h>
 #include <stdio.h>
 #include "fastpos.h"
index 878c870..cf1b511 100644 (file)
@@ -136,7 +136,7 @@ lzma2_decode(void *coder_ptr, lzma_dict *restrict dict,
                break;
 
        case SEQ_UNCOMPRESSED_2:
-               coder->uncompressed_size += in[(*in_pos)++] + 1;
+               coder->uncompressed_size += in[(*in_pos)++] + 1U;
                coder->sequence = SEQ_COMPRESSED_0;
                coder->lzma.set_uncompressed(coder->lzma.coder,
                                coder->uncompressed_size);
@@ -148,7 +148,7 @@ lzma2_decode(void *coder_ptr, lzma_dict *restrict dict,
                break;
 
        case SEQ_COMPRESSED_1:
-               coder->compressed_size += in[(*in_pos)++] + 1;
+               coder->compressed_size += in[(*in_pos)++] + 1U;
                coder->sequence = coder->next_sequence;
                break;
 
@@ -297,8 +297,8 @@ lzma_lzma2_props_decode(void **options, const lzma_allocator *allocator,
        if (props[0] == 40) {
                opt->dict_size = UINT32_MAX;
        } else {
-               opt->dict_size = 2 | (props[0] & 1);
-               opt->dict_size <<= props[0] / 2 + 11;
+               opt->dict_size = 2 | (props[0] & 1U);
+               opt->dict_size <<= props[0] / 2U + 11;
        }
 
        opt->preset_dict = NULL;
index 09efd38..9d040d9 100644 (file)
@@ -122,7 +122,8 @@ typedef enum {
 ///     byte; and
 ///   - the highest literal_context_bits bits of the previous byte.
 #define literal_subcoder(probs, lc, lp_mask, pos, prev_byte) \
-       ((probs)[(((pos) & lp_mask) << lc) + ((prev_byte) >> (8 - lc))])
+       ((probs)[(((pos) & (lp_mask)) << (lc)) \
+                       + ((uint32_t)(prev_byte) >> (8U - (lc)))])
 
 
 static inline void
index d0f29b7..e605a0a 100644 (file)
@@ -398,7 +398,7 @@ lzma_decode(void *coder_ptr, lzma_dict *restrict dictptr,
                                // ("match byte") to "len" to minimize the
                                // number of variables we need to store
                                // between decoder calls.
-                               len = dict_get(&dict, rep0) << 1;
+                               len = (uint32_t)(dict_get(&dict, rep0)) << 1;
 
                                // The usage of "offset" allows omitting some
                                // branches, which should give tiny speed
@@ -569,7 +569,7 @@ lzma_decode(void *coder_ptr, lzma_dict *restrict dictptr,
 #ifdef HAVE_SMALL
                                        do {
                                                rc_bit(probs[symbol], ,
-                                                       rep0 += 1 << offset,
+                                                       rep0 += 1U << offset,
                                                        SEQ_DIST_MODEL);
                                        } while (++offset < limit);
 #else
@@ -577,25 +577,25 @@ lzma_decode(void *coder_ptr, lzma_dict *restrict dictptr,
                                        case 5:
                                                assert(offset == 0);
                                                rc_bit(probs[symbol], ,
-                                                       rep0 += 1,
+                                                       rep0 += 1U,
                                                        SEQ_DIST_MODEL);
                                                ++offset;
                                                --limit;
                                        case 4:
                                                rc_bit(probs[symbol], ,
-                                                       rep0 += 1 << offset,
+                                                       rep0 += 1U << offset,
                                                        SEQ_DIST_MODEL);
                                                ++offset;
                                                --limit;
                                        case 3:
                                                rc_bit(probs[symbol], ,
-                                                       rep0 += 1 << offset,
+                                                       rep0 += 1U << offset,
                                                        SEQ_DIST_MODEL);
                                                ++offset;
                                                --limit;
                                        case 2:
                                                rc_bit(probs[symbol], ,
-                                                       rep0 += 1 << offset,
+                                                       rep0 += 1U << offset,
                                                        SEQ_DIST_MODEL);
                                                ++offset;
                                                --limit;
@@ -607,7 +607,7 @@ lzma_decode(void *coder_ptr, lzma_dict *restrict dictptr,
                                                // the unneeded updating of
                                                // "symbol".
                                                rc_bit_last(probs[symbol], ,
-                                                       rep0 += 1 << offset,
+                                                       rep0 += 1U << offset,
                                                        SEQ_DIST_MODEL);
                                        }
 #endif
@@ -635,7 +635,7 @@ lzma_decode(void *coder_ptr, lzma_dict *restrict dictptr,
                                        do {
                                                rc_bit(coder->pos_align[
                                                                symbol], ,
-                                                       rep0 += 1 << offset,
+                                                       rep0 += 1U << offset,
                                                        SEQ_ALIGN);
                                        } while (++offset < ALIGN_BITS);
 #else
@@ -1049,7 +1049,7 @@ lzma_lzma_props_decode(void **options, const lzma_allocator *allocator,
        // All dictionary sizes are accepted, including zero. LZ decoder
        // will automatically use a dictionary at least a few KiB even if
        // a smaller dictionary is requested.
-       opt->dict_size = unaligned_read32le(props + 1);
+       opt->dict_size = read32le(props + 1);
 
        opt->preset_dict = NULL;
        opt->preset_dict_size = 0;
index ba9ce69..07d2b87 100644 (file)
@@ -663,7 +663,7 @@ lzma_lzma_props_encode(const void *options, uint8_t *out)
        if (lzma_lzma_lclppb_encode(opt, out))
                return LZMA_PROG_ERROR;
 
-       unaligned_write32le(out + 1, opt->dict_size);
+       write32le(out + 1, opt->dict_size);
 
        return LZMA_OK;
 }
index 59f7734..101c8d4 100644 (file)
@@ -636,9 +636,10 @@ helper2(lzma_lzma1_encoder *coder, uint32_t *reps, const uint8_t *buf,
                uint32_t len_test_2 = len_test + 1;
                const uint32_t limit = my_min(buf_avail_full,
                                len_test_2 + nice_len);
-               for (; len_test_2 < limit
-                               && buf[len_test_2] == buf_back[len_test_2];
-                               ++len_test_2) ;
+               // NOTE: len_test_2 may be greater than limit so the call to
+               // lzma_memcmplen() must be done conditionally.
+               if (len_test_2 < limit)
+                       len_test_2 = lzma_memcmplen(buf, buf_back, len_test_2, limit);
 
                len_test_2 -= len_test + 1;
 
@@ -732,9 +733,12 @@ helper2(lzma_lzma1_encoder *coder, uint32_t *reps, const uint8_t *buf,
                                const uint32_t limit = my_min(buf_avail_full,
                                                len_test_2 + nice_len);
 
-                               for (; len_test_2 < limit &&
-                                               buf[len_test_2] == buf_back[len_test_2];
-                                               ++len_test_2) ;
+                               // NOTE: len_test_2 may be greater than limit
+                               // so the call to lzma_memcmplen() must be
+                               // done conditionally.
+                               if (len_test_2 < limit)
+                                       len_test_2 = lzma_memcmplen(buf, buf_back,
+                                                       len_test_2, limit);
 
                                len_test_2 -= len_test + 1;
 
index a2da969..2e34aac 100644 (file)
@@ -25,8 +25,7 @@
 // MATCH_LEN_MIN bytes. Unaligned access gives tiny gain so there's no
 // reason to not use it when it is supported.
 #ifdef TUKLIB_FAST_UNALIGNED_ACCESS
-#      define not_equal_16(a, b) \
-               (*(const uint16_t *)(a) != *(const uint16_t *)(b))
+#      define not_equal_16(a, b) (read16ne(a) != read16ne(b))
 #else
 #      define not_equal_16(a, b) \
                ((a)[0] != (b)[0] || (a)[1] != (b)[1])
index 181d0e3..ff5073a 100644 (file)
@@ -22,9 +22,9 @@ arm_code(void *simple lzma_attribute((__unused__)),
        size_t i;
        for (i = 0; i + 4 <= size; i += 4) {
                if (buffer[i + 3] == 0xEB) {
-                       uint32_t src = (buffer[i + 2] << 16)
-                                       | (buffer[i + 1] << 8)
-                                       | (buffer[i + 0]);
+                       uint32_t src = ((uint32_t)(buffer[i + 2]) << 16)
+                                       | ((uint32_t)(buffer[i + 1]) << 8)
+                                       | (uint32_t)(buffer[i + 0]);
                        src <<= 2;
 
                        uint32_t dest;
index eab4862..a8da334 100644 (file)
@@ -23,10 +23,10 @@ armthumb_code(void *simple lzma_attribute((__unused__)),
        for (i = 0; i + 4 <= size; i += 2) {
                if ((buffer[i + 1] & 0xF8) == 0xF0
                                && (buffer[i + 3] & 0xF8) == 0xF8) {
-                       uint32_t src = ((buffer[i + 1] & 0x7) << 19)
-                                       | (buffer[i + 0] << 11)
-                                       | ((buffer[i + 3] & 0x7) << 8)
-                                       | (buffer[i + 2]);
+                       uint32_t src = (((uint32_t)(buffer[i + 1]) & 7) << 19)
+                               | ((uint32_t)(buffer[i + 0]) << 11)
+                               | (((uint32_t)(buffer[i + 3]) & 7) << 8)
+                               | (uint32_t)(buffer[i + 2]);
 
                        src <<= 1;
 
index 580529e..6492d0a 100644 (file)
@@ -70,7 +70,7 @@ ia64_code(void *simple lzma_attribute((__unused__)),
                                inst_norm |= (uint64_t)(dest & 0x100000)
                                                << (36 - 20);
 
-                               instruction &= (1 << bit_res) - 1;
+                               instruction &= (1U << bit_res) - 1;
                                instruction |= (inst_norm << bit_res);
 
                                for (size_t j = 0; j < 6; j++)
index 54dfbf1..0b60e9b 100644 (file)
@@ -25,10 +25,11 @@ powerpc_code(void *simple lzma_attribute((__unused__)),
                if ((buffer[i] >> 2) == 0x12
                                && ((buffer[i + 3] & 3) == 1)) {
 
-                       const uint32_t src = ((buffer[i + 0] & 3) << 24)
-                                       | (buffer[i + 1] << 16)
-                                       | (buffer[i + 2] << 8)
-                                       | (buffer[i + 3] & (~3));
+                       const uint32_t src
+                               = (((uint32_t)(buffer[i + 0]) & 3) << 24)
+                               | ((uint32_t)(buffer[i + 1]) << 16)
+                               | ((uint32_t)(buffer[i + 2]) << 8)
+                               | ((uint32_t)(buffer[i + 3]) & ~UINT32_C(3));
 
                        uint32_t dest;
                        if (is_encoder)
index 13ebabc..4f499be 100644 (file)
@@ -118,7 +118,15 @@ simple_code(void *coder_ptr, const lzma_allocator *allocator,
                // coder->pos and coder->size yet. This way the coder can be
                // restarted if the next filter in the chain returns e.g.
                // LZMA_MEM_ERROR.
-               memcpy(out + *out_pos, coder->buffer + coder->pos, buf_avail);
+               //
+               // Do the memcpy() conditionally because out can be NULL
+               // (in which case buf_avail is always 0). Calling memcpy()
+               // with a null-pointer is undefined even if the third
+               // argument is 0.
+               if (buf_avail > 0)
+                       memcpy(out + *out_pos, coder->buffer + coder->pos,
+                                       buf_avail);
+
                *out_pos += buf_avail;
 
                // Copy/Encode/Decode more data to out[].
index 1d864f2..dc4d241 100644 (file)
@@ -28,7 +28,7 @@ lzma_simple_props_decode(void **options, const lzma_allocator *allocator,
        if (opt == NULL)
                return LZMA_MEM_ERROR;
 
-       opt->start_offset = unaligned_read32le(props);
+       opt->start_offset = read32le(props);
 
        // Don't leave an options structure allocated if start_offset is zero.
        if (opt->start_offset == 0)
index 8aa463b..d2cc03e 100644 (file)
@@ -32,7 +32,7 @@ lzma_simple_props_encode(const void *options, uint8_t *out)
        if (opt == NULL || opt->start_offset == 0)
                return LZMA_OK;
 
-       unaligned_write32le(out, opt->start_offset);
+       write32le(out, opt->start_offset);
 
        return LZMA_OK;
 }
index 0b14807..0e78909 100644 (file)
@@ -97,7 +97,7 @@ x86_code(void *simple_ptr, uint32_t now_pos, bool is_encoder,
                                if (!Test86MSByte(b))
                                        break;
 
-                               src = dest ^ ((1 << (32 - i * 8)) - 1);
+                               src = dest ^ ((1U << (32 - i * 8)) - 1);
                        }
 
                        buffer[buffer_pos + 4]
index f3b22d6..6ae8b65 100644 (file)
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.15.1 from Makefile.am.
+# Makefile.in generated by automake 1.16.1 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2017 Free Software Foundation, Inc.
+# Copyright (C) 1994-2018 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -95,14 +95,15 @@ subdir = src/lzmainfo
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/m4/ax_check_capsicum.m4 \
        $(top_srcdir)/m4/ax_pthread.m4 $(top_srcdir)/m4/getopt.m4 \
-       $(top_srcdir)/m4/gettext.m4 $(top_srcdir)/m4/iconv.m4 \
-       $(top_srcdir)/m4/intlmacosx.m4 $(top_srcdir)/m4/lib-ld.m4 \
-       $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \
-       $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \
-       $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \
-       $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/m4/nls.m4 \
-       $(top_srcdir)/m4/po.m4 $(top_srcdir)/m4/posix-shell.m4 \
-       $(top_srcdir)/m4/progtest.m4 $(top_srcdir)/m4/tuklib_common.m4 \
+       $(top_srcdir)/m4/gettext.m4 $(top_srcdir)/m4/host-cpu-c-abi.m4 \
+       $(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/intlmacosx.m4 \
+       $(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \
+       $(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/libtool.m4 \
+       $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \
+       $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \
+       $(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/po.m4 \
+       $(top_srcdir)/m4/posix-shell.m4 $(top_srcdir)/m4/progtest.m4 \
+       $(top_srcdir)/m4/tuklib_common.m4 \
        $(top_srcdir)/m4/tuklib_cpucores.m4 \
        $(top_srcdir)/m4/tuklib_integer.m4 \
        $(top_srcdir)/m4/tuklib_mbstr.m4 \
@@ -146,7 +147,10 @@ am__v_at_0 = @
 am__v_at_1 = 
 DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
 depcomp = $(SHELL) $(top_srcdir)/build-aux/depcomp
-am__depfiles_maybe = depfiles
+am__maybe_remake_depfiles = depfiles
+am__depfiles_remade = ./$(DEPDIR)/lzmainfo-lzmainfo.Po \
+       ./$(DEPDIR)/lzmainfo-tuklib_exit.Po \
+       ./$(DEPDIR)/lzmainfo-tuklib_progname.Po
 am__mv = mv -f
 COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
        $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
@@ -288,8 +292,8 @@ MAKEINFO = @MAKEINFO@
 MANIFEST_TOOL = @MANIFEST_TOOL@
 MKDIR_P = @MKDIR_P@
 MSGFMT = @MSGFMT@
-MSGFMT_015 = @MSGFMT_015@
 MSGMERGE = @MSGMERGE@
+MSGMERGE_FOR_MSGFMT_OPTION = @MSGMERGE_FOR_MSGFMT_OPTION@
 NM = @NM@
 NMEDIT = @NMEDIT@
 OBJDUMP = @OBJDUMP@
@@ -345,6 +349,7 @@ datadir = @datadir@
 datarootdir = @datarootdir@
 docdir = @docdir@
 dvidir = @dvidir@
+enable_path_for_scripts = @enable_path_for_scripts@
 exec_prefix = @exec_prefix@
 host = @host@
 host_alias = @host_alias@
@@ -407,8 +412,8 @@ Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
          *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);; \
+           echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles)'; \
+           cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles);; \
        esac;
 
 $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
@@ -479,9 +484,15 @@ mostlyclean-compile:
 distclean-compile:
        -rm -f *.tab.c
 
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/lzmainfo-lzmainfo.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/lzmainfo-tuklib_exit.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/lzmainfo-tuklib_progname.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/lzmainfo-lzmainfo.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/lzmainfo-tuklib_exit.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/lzmainfo-tuklib_progname.Po@am__quote@ # am--include-marker
+
+$(am__depfiles_remade):
+       @$(MKDIR_P) $(@D)
+       @echo '# dummy' >$@-t && $(am__mv) $@-t $@
+
+am--depfiles: $(am__depfiles_remade)
 
 .c.o:
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
@@ -647,7 +658,10 @@ cscopelist-am: $(am__tagged_files)
 distclean-tags:
        -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
 
-distdir: $(DISTFILES)
+distdir: $(BUILT_SOURCES)
+       $(MAKE) $(AM_MAKEFLAGS) distdir-am
+
+distdir-am: $(DISTFILES)
        @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
        topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
        list='$(DISTFILES)'; \
@@ -719,7 +733,9 @@ clean: clean-am
 clean-am: clean-binPROGRAMS clean-generic clean-libtool mostlyclean-am
 
 distclean: distclean-am
-       -rm -rf ./$(DEPDIR)
+               -rm -f ./$(DEPDIR)/lzmainfo-lzmainfo.Po
+       -rm -f ./$(DEPDIR)/lzmainfo-tuklib_exit.Po
+       -rm -f ./$(DEPDIR)/lzmainfo-tuklib_progname.Po
        -rm -f Makefile
 distclean-am: clean-am distclean-compile distclean-generic \
        distclean-tags
@@ -765,7 +781,9 @@ install-ps-am:
 installcheck-am:
 
 maintainer-clean: maintainer-clean-am
-       -rm -rf ./$(DEPDIR)
+               -rm -f ./$(DEPDIR)/lzmainfo-lzmainfo.Po
+       -rm -f ./$(DEPDIR)/lzmainfo-tuklib_exit.Po
+       -rm -f ./$(DEPDIR)/lzmainfo-tuklib_progname.Po
        -rm -f Makefile
 maintainer-clean-am: distclean-am maintainer-clean-generic
 
@@ -788,7 +806,7 @@ uninstall-man: uninstall-man1
 
 .MAKE: install-am install-strip
 
-.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean \
+.PHONY: CTAGS GTAGS TAGS all all-am am--depfiles check check-am clean \
        clean-binPROGRAMS clean-generic clean-libtool cscopelist-am \
        ctags ctags-am distclean distclean-compile distclean-generic \
        distclean-libtool distclean-tags distdir dvi dvi-am html \
index 29bdbcd..fe5742d 100644 (file)
@@ -25,31 +25,65 @@ links += \
 endif
 
 install-exec-hook:
-       cd $(DESTDIR)$(bindir) && \
+       cd "$(DESTDIR)$(bindir)" && \
        for pair in $(links); do \
                target=`echo $$pair | sed 's/-.*$$//' | sed '$(transform)'` && \
                link=`echo $$pair | sed 's/^.*-//' | sed '$(transform)'` && \
-               rm -f $$link && \
-               $(LN_S) $$target $$link; \
+               rm -f "$$link" && \
+               $(LN_S) "$$target" "$$link"; \
        done
 
+# The installation of translated man pages abuses Automake internals
+# by calling "install-man" with redefined dist_man_MANS and man_MANS.
+# If this breaks some day, don't blame Automake developers.
 install-data-hook:
-       cd $(DESTDIR)$(mandir)/man1 && \
-       for pair in $(links); do \
-               target=`echo $$pair | sed 's/-.*$$//' | sed '$(transform)'` && \
-               link=`echo $$pair | sed 's/^.*-//' | sed '$(transform)'` && \
-               rm -f $$link.1 && \
-               $(LN_S) $$target.1 $$link.1; \
+       languages= ; \
+       if test "$(USE_NLS)" = yes && test -d "$(top_srcdir)/po4a/man"; then \
+               languages=`ls "$(top_srcdir)/po4a/man"`; \
+       fi; \
+       for lang in $$languages; do \
+               mans= ; \
+               for man in $(dist_man_MANS); do \
+                       man="$(top_srcdir)/po4a/man/$$lang/$$man" ; \
+                       if test -f "$$man"; then \
+                               mans="$$mans $$man"; \
+                       fi; \
+               done; \
+               $(MAKE) dist_man_MANS="$$mans" man_MANS= \
+                               mandir="$(mandir)/$$lang" install-man; \
+       done; \
+       for lang in . $$languages; do \
+               for pair in $(links); do \
+                       target=`echo $$pair | sed 's/-.*$$//' \
+                                       | sed '$(transform)'` && \
+                       link=`echo $$pair | sed 's/^.*-//' \
+                                       | sed '$(transform)'` && \
+                       man1dir="$(DESTDIR)$(mandir)/$$lang/man1" && \
+                       if test -f "$$man1dir/$$target.1"; then ( \
+                               cd "$$man1dir" && \
+                               rm -f "$$link.1" && \
+                               $(LN_S) "$$target.1" "$$link.1" \
+                       ); fi; \
+               done; \
        done
 
 uninstall-hook:
-       cd $(DESTDIR)$(bindir) && \
+       cd "$(DESTDIR)$(bindir)" && \
        for pair in $(links); do \
                link=`echo $$pair | sed 's/^.*-//' | sed '$(transform)'` && \
-               rm -f $$link; \
+               rm -f "$$link"; \
        done
-       cd $(DESTDIR)$(mandir)/man1 && \
-       for pair in $(links); do \
-               link=`echo $$pair | sed 's/^.*-//' | sed '$(transform)'` && \
-               rm -f $$link.1; \
+       languages= ; \
+       if test "$(USE_NLS)" = yes && test -d "$(top_srcdir)/po4a/man"; then \
+               languages=`ls "$(top_srcdir)/po4a/man"`; \
+       fi; \
+       for lang in . $$languages; do \
+               for pair in $(links); do \
+                       target=`echo $$pair | sed 's/-.*$$//' \
+                                       | sed '$(transform)'` && \
+                       link=`echo $$pair | sed 's/^.*-//' \
+                                       | sed '$(transform)'` && \
+                       rm -f "$(DESTDIR)$(mandir)/$$lang/man1/$$target.1" \
+                               "$(DESTDIR)$(mandir)/$$lang/man1/$$link.1"; \
+               done; \
        done
index 83d1480..224e493 100644 (file)
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.15.1 from Makefile.am.
+# Makefile.in generated by automake 1.16.1 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2017 Free Software Foundation, Inc.
+# Copyright (C) 1994-2018 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -101,14 +101,15 @@ subdir = src/scripts
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/m4/ax_check_capsicum.m4 \
        $(top_srcdir)/m4/ax_pthread.m4 $(top_srcdir)/m4/getopt.m4 \
-       $(top_srcdir)/m4/gettext.m4 $(top_srcdir)/m4/iconv.m4 \
-       $(top_srcdir)/m4/intlmacosx.m4 $(top_srcdir)/m4/lib-ld.m4 \
-       $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \
-       $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \
-       $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \
-       $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/m4/nls.m4 \
-       $(top_srcdir)/m4/po.m4 $(top_srcdir)/m4/posix-shell.m4 \
-       $(top_srcdir)/m4/progtest.m4 $(top_srcdir)/m4/tuklib_common.m4 \
+       $(top_srcdir)/m4/gettext.m4 $(top_srcdir)/m4/host-cpu-c-abi.m4 \
+       $(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/intlmacosx.m4 \
+       $(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \
+       $(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/libtool.m4 \
+       $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \
+       $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \
+       $(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/po.m4 \
+       $(top_srcdir)/m4/posix-shell.m4 $(top_srcdir)/m4/progtest.m4 \
+       $(top_srcdir)/m4/tuklib_common.m4 \
        $(top_srcdir)/m4/tuklib_cpucores.m4 \
        $(top_srcdir)/m4/tuklib_integer.m4 \
        $(top_srcdir)/m4/tuklib_mbstr.m4 \
@@ -241,8 +242,8 @@ MAKEINFO = @MAKEINFO@
 MANIFEST_TOOL = @MANIFEST_TOOL@
 MKDIR_P = @MKDIR_P@
 MSGFMT = @MSGFMT@
-MSGFMT_015 = @MSGFMT_015@
 MSGMERGE = @MSGMERGE@
+MSGMERGE_FOR_MSGFMT_OPTION = @MSGMERGE_FOR_MSGFMT_OPTION@
 NM = @NM@
 NMEDIT = @NMEDIT@
 OBJDUMP = @OBJDUMP@
@@ -298,6 +299,7 @@ datadir = @datadir@
 datarootdir = @datarootdir@
 docdir = @docdir@
 dvidir = @dvidir@
+enable_path_for_scripts = @enable_path_for_scripts@
 exec_prefix = @exec_prefix@
 host = @host@
 host_alias = @host_alias@
@@ -351,8 +353,8 @@ Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
          *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);; \
+           echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles)'; \
+           cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles);; \
        esac;
 
 $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
@@ -462,7 +464,10 @@ ctags CTAGS:
 cscope cscopelist:
 
 
-distdir: $(DISTFILES)
+distdir: $(BUILT_SOURCES)
+       $(MAKE) $(AM_MAKEFLAGS) distdir-am
+
+distdir-am: $(DISTFILES)
        @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
        topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
        list='$(DISTFILES)'; \
@@ -622,33 +627,67 @@ uninstall-man: uninstall-man1
 
 
 install-exec-hook:
-       cd $(DESTDIR)$(bindir) && \
+       cd "$(DESTDIR)$(bindir)" && \
        for pair in $(links); do \
                target=`echo $$pair | sed 's/-.*$$//' | sed '$(transform)'` && \
                link=`echo $$pair | sed 's/^.*-//' | sed '$(transform)'` && \
-               rm -f $$link && \
-               $(LN_S) $$target $$link; \
+               rm -f "$$link" && \
+               $(LN_S) "$$target" "$$link"; \
        done
 
+# The installation of translated man pages abuses Automake internals
+# by calling "install-man" with redefined dist_man_MANS and man_MANS.
+# If this breaks some day, don't blame Automake developers.
 install-data-hook:
-       cd $(DESTDIR)$(mandir)/man1 && \
-       for pair in $(links); do \
-               target=`echo $$pair | sed 's/-.*$$//' | sed '$(transform)'` && \
-               link=`echo $$pair | sed 's/^.*-//' | sed '$(transform)'` && \
-               rm -f $$link.1 && \
-               $(LN_S) $$target.1 $$link.1; \
+       languages= ; \
+       if test "$(USE_NLS)" = yes && test -d "$(top_srcdir)/po4a/man"; then \
+               languages=`ls "$(top_srcdir)/po4a/man"`; \
+       fi; \
+       for lang in $$languages; do \
+               mans= ; \
+               for man in $(dist_man_MANS); do \
+                       man="$(top_srcdir)/po4a/man/$$lang/$$man" ; \
+                       if test -f "$$man"; then \
+                               mans="$$mans $$man"; \
+                       fi; \
+               done; \
+               $(MAKE) dist_man_MANS="$$mans" man_MANS= \
+                               mandir="$(mandir)/$$lang" install-man; \
+       done; \
+       for lang in . $$languages; do \
+               for pair in $(links); do \
+                       target=`echo $$pair | sed 's/-.*$$//' \
+                                       | sed '$(transform)'` && \
+                       link=`echo $$pair | sed 's/^.*-//' \
+                                       | sed '$(transform)'` && \
+                       man1dir="$(DESTDIR)$(mandir)/$$lang/man1" && \
+                       if test -f "$$man1dir/$$target.1"; then ( \
+                               cd "$$man1dir" && \
+                               rm -f "$$link.1" && \
+                               $(LN_S) "$$target.1" "$$link.1" \
+                       ); fi; \
+               done; \
        done
 
 uninstall-hook:
-       cd $(DESTDIR)$(bindir) && \
+       cd "$(DESTDIR)$(bindir)" && \
        for pair in $(links); do \
                link=`echo $$pair | sed 's/^.*-//' | sed '$(transform)'` && \
-               rm -f $$link; \
+               rm -f "$$link"; \
        done
-       cd $(DESTDIR)$(mandir)/man1 && \
-       for pair in $(links); do \
-               link=`echo $$pair | sed 's/^.*-//' | sed '$(transform)'` && \
-               rm -f $$link.1; \
+       languages= ; \
+       if test "$(USE_NLS)" = yes && test -d "$(top_srcdir)/po4a/man"; then \
+               languages=`ls "$(top_srcdir)/po4a/man"`; \
+       fi; \
+       for lang in . $$languages; do \
+               for pair in $(links); do \
+                       target=`echo $$pair | sed 's/-.*$$//' \
+                                       | sed '$(transform)'` && \
+                       link=`echo $$pair | sed 's/^.*-//' \
+                                       | sed '$(transform)'` && \
+                       rm -f "$(DESTDIR)$(mandir)/$$lang/man1/$$target.1" \
+                               "$(DESTDIR)$(mandir)/$$lang/man1/$$link.1"; \
+               done; \
        done
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
index 6aa6b98..eb7825c 100644 (file)
@@ -15,6 +15,7 @@
 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 # GNU General Public License for more details.
 
+@enable_path_for_scripts@
 #SET_PATH - This line is a placeholder to ease patching this script.
 
 # Instead of unsetting XZ_OPT, just make sure that xz will use file format
index a1fd19c..9db5c3a 100644 (file)
@@ -18,6 +18,7 @@
 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 # GNU General Public License for more details.
 
+@enable_path_for_scripts@
 #SET_PATH - This line is a placeholder to ease patching this script.
 
 # Instead of unsetting XZ_OPT, just make sure that xz will use file format
@@ -200,7 +201,7 @@ for i; do
   )
   r=$?
 
-  # fail occured previously, nothing worse can happen
+  # fail occurred previously, nothing worse can happen
   test $res -gt 1 && continue
 
   test "$xz_status" -eq 0 || test "$xz_status" -eq 2 \
index 288dd87..cf61ab2 100644 (file)
@@ -15,6 +15,7 @@
 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 # GNU General Public License for more details.
 
+@enable_path_for_scripts@
 #SET_PATH - This line is a placeholder to ease patching this script.
 
 # Instead of unsetting XZ_OPT, just make sure that xz will use file format
@@ -46,7 +47,7 @@ if test "${LESSMETACHARS+set}" != set; then
        LESSMETACHARS="$space$tab$nl'"';*?"()<>[|&^`#\$%=~'
 fi
 
-if test "$(less -V | { read less ver re && echo ${ver}; })" -ge 429; then
+if test "$(less -V | { read _ ver _ && echo ${ver}; })" -ge 429; then
        # less 429 or later: LESSOPEN pipe will be used on
        # standard input if $LESSOPEN begins with |-.
        LESSOPEN="|-$xz -cdfq -- %s"
index 940d661..ea832a3 100644 (file)
@@ -15,6 +15,7 @@
 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 # GNU General Public License for more details.
 
+@enable_path_for_scripts@
 #SET_PATH - This line is a placeholder to ease patching this script.
 
 # Instead of unsetting XZ_OPT, just make sure that xz will use file format
index 0890aad..4bc64f3 100644 (file)
@@ -81,31 +81,53 @@ xzlinks += lzma unlzma lzcat
 endif
 
 install-exec-hook:
-       cd $(DESTDIR)$(bindir) && \
+       cd "$(DESTDIR)$(bindir)" && \
        target=`echo xz | sed '$(transform)'`$(EXEEXT) && \
        for name in $(xzlinks); do \
                link=`echo $$name | sed '$(transform)'`$(LN_EXEEXT) && \
-               rm -f $$link && \
-               $(LN_S) $$target $$link; \
+               rm -f "$$link" && \
+               $(LN_S) "$$target" "$$link"; \
        done
 
+# The installation of translated man pages abuses Automake internals
+# by calling "install-man" with redefined dist_man_MANS and man_MANS.
+# If this breaks some day, don't blame Automake developers.
 install-data-hook:
-       cd $(DESTDIR)$(mandir)/man1 && \
+       languages= ; \
+       if test "$(USE_NLS)" = yes && test -d "$(top_srcdir)/po4a/man"; then \
+               languages=`ls "$(top_srcdir)/po4a/man"`; \
+       fi; \
        target=`echo xz | sed '$(transform)'` && \
-       for name in $(xzlinks); do \
-               link=`echo $$name | sed '$(transform)'` && \
-               rm -f $$link.1 && \
-               $(LN_S) $$target.1 $$link.1; \
+       for lang in . $$languages; do \
+               man="$(top_srcdir)/po4a/man/$$lang/xz.1" ; \
+               if test -f "$$man"; then \
+                       $(MAKE) dist_man_MANS="$$man" man_MANS= \
+                               mandir="$(mandir)/$$lang" install-man; \
+               fi; \
+               man1dir="$(DESTDIR)$(mandir)/$$lang/man1" && \
+               if test -f "$$man1dir/$$target.1"; then ( \
+                       cd "$$man1dir" && \
+                       for name in $(xzlinks); do \
+                               link=`echo $$name | sed '$(transform)'` && \
+                               rm -f "$$link.1" && \
+                               $(LN_S) "$$target.1" "$$link.1"; \
+                       done \
+               ); fi; \
        done
 
 uninstall-hook:
-       cd $(DESTDIR)$(bindir) && \
+       cd "$(DESTDIR)$(bindir)" && \
        for name in $(xzlinks); do \
                link=`echo $$name | sed '$(transform)'`$(LN_EXEEXT) && \
-               rm -f $$link; \
+               rm -f "$$link"; \
        done
-       cd $(DESTDIR)$(mandir)/man1 && \
-       for name in $(xzlinks); do \
-               link=`echo $$name | sed '$(transform)'` && \
-               rm -f $$link.1; \
+       languages= ; \
+       if test "$(USE_NLS)" = yes && test -d "$(top_srcdir)/po4a/man"; then \
+               languages=`ls "$(top_srcdir)/po4a/man"`; \
+       fi; \
+       for lang in . $$languages; do \
+               for name in xz $(xzlinks); do \
+                       name=`echo $$name | sed '$(transform)'` && \
+                       rm -f "$(DESTDIR)$(mandir)/$$lang/man1/$$name.1"; \
+               done; \
        done
index b9b39ae..203c737 100644 (file)
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.15.1 from Makefile.am.
+# Makefile.in generated by automake 1.16.1 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2017 Free Software Foundation, Inc.
+# Copyright (C) 1994-2018 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -100,14 +100,15 @@ subdir = src/xz
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/m4/ax_check_capsicum.m4 \
        $(top_srcdir)/m4/ax_pthread.m4 $(top_srcdir)/m4/getopt.m4 \
-       $(top_srcdir)/m4/gettext.m4 $(top_srcdir)/m4/iconv.m4 \
-       $(top_srcdir)/m4/intlmacosx.m4 $(top_srcdir)/m4/lib-ld.m4 \
-       $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \
-       $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \
-       $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \
-       $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/m4/nls.m4 \
-       $(top_srcdir)/m4/po.m4 $(top_srcdir)/m4/posix-shell.m4 \
-       $(top_srcdir)/m4/progtest.m4 $(top_srcdir)/m4/tuklib_common.m4 \
+       $(top_srcdir)/m4/gettext.m4 $(top_srcdir)/m4/host-cpu-c-abi.m4 \
+       $(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/intlmacosx.m4 \
+       $(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \
+       $(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/libtool.m4 \
+       $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \
+       $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \
+       $(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/po.m4 \
+       $(top_srcdir)/m4/posix-shell.m4 $(top_srcdir)/m4/progtest.m4 \
+       $(top_srcdir)/m4/tuklib_common.m4 \
        $(top_srcdir)/m4/tuklib_cpucores.m4 \
        $(top_srcdir)/m4/tuklib_integer.m4 \
        $(top_srcdir)/m4/tuklib_mbstr.m4 \
@@ -161,7 +162,17 @@ am__v_at_0 = @
 am__v_at_1 = 
 DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
 depcomp = $(SHELL) $(top_srcdir)/build-aux/depcomp
-am__depfiles_maybe = depfiles
+am__maybe_remake_depfiles = depfiles
+am__depfiles_remade = ./$(DEPDIR)/xz-args.Po ./$(DEPDIR)/xz-coder.Po \
+       ./$(DEPDIR)/xz-file_io.Po ./$(DEPDIR)/xz-hardware.Po \
+       ./$(DEPDIR)/xz-list.Po ./$(DEPDIR)/xz-main.Po \
+       ./$(DEPDIR)/xz-message.Po ./$(DEPDIR)/xz-mytime.Po \
+       ./$(DEPDIR)/xz-options.Po ./$(DEPDIR)/xz-signals.Po \
+       ./$(DEPDIR)/xz-suffix.Po ./$(DEPDIR)/xz-tuklib_exit.Po \
+       ./$(DEPDIR)/xz-tuklib_mbstr_fw.Po \
+       ./$(DEPDIR)/xz-tuklib_mbstr_width.Po \
+       ./$(DEPDIR)/xz-tuklib_open_stdxxx.Po \
+       ./$(DEPDIR)/xz-tuklib_progname.Po ./$(DEPDIR)/xz-util.Po
 am__mv = mv -f
 COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
        $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
@@ -303,8 +314,8 @@ MAKEINFO = @MAKEINFO@
 MANIFEST_TOOL = @MANIFEST_TOOL@
 MKDIR_P = @MKDIR_P@
 MSGFMT = @MSGFMT@
-MSGFMT_015 = @MSGFMT_015@
 MSGMERGE = @MSGMERGE@
+MSGMERGE_FOR_MSGFMT_OPTION = @MSGMERGE_FOR_MSGFMT_OPTION@
 NM = @NM@
 NMEDIT = @NMEDIT@
 OBJDUMP = @OBJDUMP@
@@ -360,6 +371,7 @@ datadir = @datadir@
 datarootdir = @datarootdir@
 docdir = @docdir@
 dvidir = @dvidir@
+enable_path_for_scripts = @enable_path_for_scripts@
 exec_prefix = @exec_prefix@
 host = @host@
 host_alias = @host_alias@
@@ -430,8 +442,8 @@ Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
          *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);; \
+           echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles)'; \
+           cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles);; \
        esac;
 
 $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
@@ -502,23 +514,29 @@ mostlyclean-compile:
 distclean-compile:
        -rm -f *.tab.c
 
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xz-args.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xz-coder.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xz-file_io.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xz-hardware.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xz-list.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xz-main.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xz-message.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xz-mytime.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xz-options.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xz-signals.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xz-suffix.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xz-tuklib_exit.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xz-tuklib_mbstr_fw.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xz-tuklib_mbstr_width.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xz-tuklib_open_stdxxx.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xz-tuklib_progname.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xz-util.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xz-args.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xz-coder.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xz-file_io.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xz-hardware.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xz-list.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xz-main.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xz-message.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xz-mytime.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xz-options.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xz-signals.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xz-suffix.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xz-tuklib_exit.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xz-tuklib_mbstr_fw.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xz-tuklib_mbstr_width.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xz-tuklib_open_stdxxx.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xz-tuklib_progname.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xz-util.Po@am__quote@ # am--include-marker
+
+$(am__depfiles_remade):
+       @$(MKDIR_P) $(@D)
+       @echo '# dummy' >$@-t && $(am__mv) $@-t $@
+
+am--depfiles: $(am__depfiles_remade)
 
 .c.o:
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
@@ -880,7 +898,10 @@ cscopelist-am: $(am__tagged_files)
 distclean-tags:
        -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
 
-distdir: $(DISTFILES)
+distdir: $(BUILT_SOURCES)
+       $(MAKE) $(AM_MAKEFLAGS) distdir-am
+
+distdir-am: $(DISTFILES)
        @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
        topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
        list='$(DISTFILES)'; \
@@ -952,7 +973,23 @@ clean: clean-am
 clean-am: clean-binPROGRAMS clean-generic clean-libtool mostlyclean-am
 
 distclean: distclean-am
-       -rm -rf ./$(DEPDIR)
+               -rm -f ./$(DEPDIR)/xz-args.Po
+       -rm -f ./$(DEPDIR)/xz-coder.Po
+       -rm -f ./$(DEPDIR)/xz-file_io.Po
+       -rm -f ./$(DEPDIR)/xz-hardware.Po
+       -rm -f ./$(DEPDIR)/xz-list.Po
+       -rm -f ./$(DEPDIR)/xz-main.Po
+       -rm -f ./$(DEPDIR)/xz-message.Po
+       -rm -f ./$(DEPDIR)/xz-mytime.Po
+       -rm -f ./$(DEPDIR)/xz-options.Po
+       -rm -f ./$(DEPDIR)/xz-signals.Po
+       -rm -f ./$(DEPDIR)/xz-suffix.Po
+       -rm -f ./$(DEPDIR)/xz-tuklib_exit.Po
+       -rm -f ./$(DEPDIR)/xz-tuklib_mbstr_fw.Po
+       -rm -f ./$(DEPDIR)/xz-tuklib_mbstr_width.Po
+       -rm -f ./$(DEPDIR)/xz-tuklib_open_stdxxx.Po
+       -rm -f ./$(DEPDIR)/xz-tuklib_progname.Po
+       -rm -f ./$(DEPDIR)/xz-util.Po
        -rm -f Makefile
 distclean-am: clean-am distclean-compile distclean-generic \
        distclean-tags
@@ -1000,7 +1037,23 @@ install-ps-am:
 installcheck-am:
 
 maintainer-clean: maintainer-clean-am
-       -rm -rf ./$(DEPDIR)
+               -rm -f ./$(DEPDIR)/xz-args.Po
+       -rm -f ./$(DEPDIR)/xz-coder.Po
+       -rm -f ./$(DEPDIR)/xz-file_io.Po
+       -rm -f ./$(DEPDIR)/xz-hardware.Po
+       -rm -f ./$(DEPDIR)/xz-list.Po
+       -rm -f ./$(DEPDIR)/xz-main.Po
+       -rm -f ./$(DEPDIR)/xz-message.Po
+       -rm -f ./$(DEPDIR)/xz-mytime.Po
+       -rm -f ./$(DEPDIR)/xz-options.Po
+       -rm -f ./$(DEPDIR)/xz-signals.Po
+       -rm -f ./$(DEPDIR)/xz-suffix.Po
+       -rm -f ./$(DEPDIR)/xz-tuklib_exit.Po
+       -rm -f ./$(DEPDIR)/xz-tuklib_mbstr_fw.Po
+       -rm -f ./$(DEPDIR)/xz-tuklib_mbstr_width.Po
+       -rm -f ./$(DEPDIR)/xz-tuklib_open_stdxxx.Po
+       -rm -f ./$(DEPDIR)/xz-tuklib_progname.Po
+       -rm -f ./$(DEPDIR)/xz-util.Po
        -rm -f Makefile
 maintainer-clean-am: distclean-am maintainer-clean-generic
 
@@ -1025,7 +1078,7 @@ uninstall-man: uninstall-man1
 .MAKE: install-am install-data-am install-exec-am install-strip \
        uninstall-am
 
-.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean \
+.PHONY: CTAGS GTAGS TAGS all all-am am--depfiles check check-am clean \
        clean-binPROGRAMS clean-generic clean-libtool cscopelist-am \
        ctags ctags-am distclean distclean-compile distclean-generic \
        distclean-libtool distclean-tags distdir dvi dvi-am html \
@@ -1050,33 +1103,55 @@ uninstall-man: uninstall-man1
                $(xz_CPPFLAGS) $(CPPFLAGS) $(RCFLAGS) -i $< -o $@
 
 install-exec-hook:
-       cd $(DESTDIR)$(bindir) && \
+       cd "$(DESTDIR)$(bindir)" && \
        target=`echo xz | sed '$(transform)'`$(EXEEXT) && \
        for name in $(xzlinks); do \
                link=`echo $$name | sed '$(transform)'`$(LN_EXEEXT) && \
-               rm -f $$link && \
-               $(LN_S) $$target $$link; \
+               rm -f "$$link" && \
+               $(LN_S) "$$target" "$$link"; \
        done
 
+# The installation of translated man pages abuses Automake internals
+# by calling "install-man" with redefined dist_man_MANS and man_MANS.
+# If this breaks some day, don't blame Automake developers.
 install-data-hook:
-       cd $(DESTDIR)$(mandir)/man1 && \
+       languages= ; \
+       if test "$(USE_NLS)" = yes && test -d "$(top_srcdir)/po4a/man"; then \
+               languages=`ls "$(top_srcdir)/po4a/man"`; \
+       fi; \
        target=`echo xz | sed '$(transform)'` && \
-       for name in $(xzlinks); do \
-               link=`echo $$name | sed '$(transform)'` && \
-               rm -f $$link.1 && \
-               $(LN_S) $$target.1 $$link.1; \
+       for lang in . $$languages; do \
+               man="$(top_srcdir)/po4a/man/$$lang/xz.1" ; \
+               if test -f "$$man"; then \
+                       $(MAKE) dist_man_MANS="$$man" man_MANS= \
+                               mandir="$(mandir)/$$lang" install-man; \
+               fi; \
+               man1dir="$(DESTDIR)$(mandir)/$$lang/man1" && \
+               if test -f "$$man1dir/$$target.1"; then ( \
+                       cd "$$man1dir" && \
+                       for name in $(xzlinks); do \
+                               link=`echo $$name | sed '$(transform)'` && \
+                               rm -f "$$link.1" && \
+                               $(LN_S) "$$target.1" "$$link.1"; \
+                       done \
+               ); fi; \
        done
 
 uninstall-hook:
-       cd $(DESTDIR)$(bindir) && \
+       cd "$(DESTDIR)$(bindir)" && \
        for name in $(xzlinks); do \
                link=`echo $$name | sed '$(transform)'`$(LN_EXEEXT) && \
-               rm -f $$link; \
+               rm -f "$$link"; \
        done
-       cd $(DESTDIR)$(mandir)/man1 && \
-       for name in $(xzlinks); do \
-               link=`echo $$name | sed '$(transform)'` && \
-               rm -f $$link.1; \
+       languages= ; \
+       if test "$(USE_NLS)" = yes && test -d "$(top_srcdir)/po4a/man"; then \
+               languages=`ls "$(top_srcdir)/po4a/man"`; \
+       fi; \
+       for lang in . $$languages; do \
+               for name in xz $(xzlinks); do \
+                       name=`echo $$name | sed '$(transform)'` && \
+                       rm -f "$(DESTDIR)$(mandir)/$$lang/man1/$$name.1"; \
+               done; \
        done
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
index 341f29e..9238fb3 100644 (file)
@@ -88,7 +88,7 @@ parse_block_list(char *str)
                        // There is no string, that is, a comma follows
                        // another comma. Use the previous value.
                        //
-                       // NOTE: We checked earler that the first char
+                       // NOTE: We checked earlier that the first char
                        // of the whole list cannot be a comma.
                        assert(i > 0);
                        opt_block_list[i] = opt_block_list[i - 1];
@@ -218,7 +218,7 @@ parse_real(args_info *args, int argc, char **argv)
                // Compression preset (also for decompression if --format=raw)
                case '0': case '1': case '2': case '3': case '4':
                case '5': case '6': case '7': case '8': case '9':
-                       coder_set_preset(c - '0');
+                       coder_set_preset((uint32_t)(c - '0'));
                        break;
 
                // --memlimit-compress
@@ -683,7 +683,7 @@ args_parse(args_info *args, int argc, char **argv)
                // We got at least one filename from the command line, or
                // --files or --files0 was specified.
                args->arg_names = argv + optind;
-               args->arg_count = argc - optind;
+               args->arg_count = (unsigned int)(argc - optind);
        }
 
        return;
index 3c6a01c..85f9543 100644 (file)
@@ -612,6 +612,20 @@ split_block(uint64_t *block_remaining,
 }
 
 
+static bool
+coder_write_output(file_pair *pair)
+{
+       if (opt_mode != MODE_TEST) {
+               if (io_write(pair, &out_buf, IO_BUFFER_SIZE - strm.avail_out))
+                       return true;
+       }
+
+       strm.next_out = out_buf.u8;
+       strm.avail_out = IO_BUFFER_SIZE;
+       return false;
+}
+
+
 /// Compress or decompress using liblzma.
 static bool
 coder_normal(file_pair *pair)
@@ -635,7 +649,7 @@ coder_normal(file_pair *pair)
        // only a single block is created.
        uint64_t block_remaining = UINT64_MAX;
 
-       // next_block_remining for when we are in single-threaded mode and
+       // next_block_remaining for when we are in single-threaded mode and
        // the Block in --block-list is larger than the --block-size=SIZE.
        uint64_t next_block_remaining = 0;
 
@@ -697,7 +711,7 @@ coder_normal(file_pair *pair)
                                        action = LZMA_FULL_BARRIER;
                        }
 
-                       if (action == LZMA_RUN && flush_needed)
+                       if (action == LZMA_RUN && pair->flush_needed)
                                action = LZMA_SYNC_FLUSH;
                }
 
@@ -706,29 +720,23 @@ coder_normal(file_pair *pair)
 
                // Write out if the output buffer became full.
                if (strm.avail_out == 0) {
-                       if (opt_mode != MODE_TEST && io_write(pair, &out_buf,
-                                       IO_BUFFER_SIZE - strm.avail_out))
+                       if (coder_write_output(pair))
                                break;
-
-                       strm.next_out = out_buf.u8;
-                       strm.avail_out = IO_BUFFER_SIZE;
                }
 
                if (ret == LZMA_STREAM_END && (action == LZMA_SYNC_FLUSH
                                || action == LZMA_FULL_BARRIER)) {
                        if (action == LZMA_SYNC_FLUSH) {
                                // Flushing completed. Write the pending data
-                               // out immediatelly so that the reading side
+                               // out immediately so that the reading side
                                // can decompress everything compressed so far.
-                               if (io_write(pair, &out_buf, IO_BUFFER_SIZE
-                                               - strm.avail_out))
+                               if (coder_write_output(pair))
                                        break;
 
-                               strm.next_out = out_buf.u8;
-                               strm.avail_out = IO_BUFFER_SIZE;
-
-                               // Set the time of the most recent flushing.
-                               mytime_set_flush_time();
+                               // Mark that we haven't seen any new input
+                               // since the previous flush.
+                               pair->src_has_seen_input = false;
+                               pair->flush_needed = false;
                        } else {
                                // Start a new Block after LZMA_FULL_BARRIER.
                                if (opt_block_list == NULL) {
@@ -758,9 +766,7 @@ coder_normal(file_pair *pair)
                                // as much data as possible, which can be good
                                // when trying to get at least some useful
                                // data out of damaged files.
-                               if (opt_mode != MODE_TEST && io_write(pair,
-                                               &out_buf, IO_BUFFER_SIZE
-                                                       - strm.avail_out))
+                               if (coder_write_output(pair))
                                        break;
                        }
 
@@ -897,21 +903,23 @@ coder_run(const char *filename)
                        // is used.
                        if (opt_mode == MODE_TEST || !io_open_dest(pair)) {
                                // Remember the current time. It is needed
-                               // for progress indicator and for timed
-                               // flushing.
+                               // for progress indicator.
                                mytime_set_start_time();
 
                                // Initialize the progress indicator.
+                               const bool is_passthru = init_ret
+                                               == CODER_INIT_PASSTHRU;
                                const uint64_t in_size
-                                               = pair->src_st.st_size <= 0
-                                               ? 0 : pair->src_st.st_size;
-                               message_progress_start(&strm, in_size);
+                                       = pair->src_st.st_size <= 0
+                                       ? 0 : (uint64_t)(pair->src_st.st_size);
+                               message_progress_start(&strm,
+                                               is_passthru, in_size);
 
                                // Do the actual coding or passthru.
-                               if (init_ret == CODER_INIT_NORMAL)
-                                       success = coder_normal(pair);
-                               else
+                               if (is_passthru)
                                        success = coder_passthru(pair);
+                               else
+                                       success = coder_normal(pair);
 
                                message_progress_end(success);
                        }
index 041bed8..0ba8db8 100644 (file)
@@ -170,8 +170,11 @@ static void
 io_sandbox_enter(int src_fd)
 {
        if (!sandbox_allowed) {
-               message(V_DEBUG, _("Sandbox is disabled due "
-                               "to incompatible command line arguments"));
+               // This message is more often annoying than useful so
+               // it's commented out. It can be useful when developing
+               // the sandboxing code.
+               //message(V_DEBUG, _("Sandbox is disabled due "
+               //              "to incompatible command line arguments"));
                return;
        }
 
@@ -213,7 +216,8 @@ io_sandbox_enter(int src_fd)
 #      error ENABLE_SANDBOX is defined but no sandboxing method was found.
 #endif
 
-       message(V_DEBUG, _("Sandbox was successfully enabled"));
+       // This message is annoying in xz -lvv.
+       //message(V_DEBUG, _("Sandbox was successfully enabled"));
        return;
 
 error:
@@ -266,11 +270,8 @@ io_wait(file_pair *pair, int timeout, bool is_reading)
                        return IO_WAIT_ERROR;
                }
 
-               if (ret == 0) {
-                       assert(opt_flush_timeout != 0);
-                       flush_needed = true;
+               if (ret == 0)
                        return IO_WAIT_TIMEOUT;
-               }
 
                if (pfd[0].revents != 0)
                        return IO_WAIT_MORE;
@@ -360,13 +361,14 @@ io_copy_attrs(const file_pair *pair)
        // Try changing the owner of the file. If we aren't root or the owner
        // isn't already us, fchown() probably doesn't succeed. We warn
        // about failing fchown() only if we are root.
-       if (fchown(pair->dest_fd, pair->src_st.st_uid, -1) && warn_fchown)
+       if (fchown(pair->dest_fd, pair->src_st.st_uid, (gid_t)(-1))
+                       && warn_fchown)
                message_warning(_("%s: Cannot set the file owner: %s"),
                                pair->dest_name, strerror(errno));
 
        mode_t mode;
 
-       if (fchown(pair->dest_fd, -1, pair->src_st.st_gid)) {
+       if (fchown(pair->dest_fd, (uid_t)(-1), pair->src_st.st_gid)) {
                message_warning(_("%s: Cannot set the file group: %s"),
                                pair->dest_name, strerror(errno));
                // We can still safely copy some additional permissions:
@@ -751,6 +753,8 @@ io_open_src(const char *src_name)
                .src_fd = -1,
                .dest_fd = -1,
                .src_eof = false,
+               .src_has_seen_input = false,
+               .flush_needed = false,
                .dest_try_sparse = false,
                .dest_pending_sparse = 0,
        };
@@ -1109,16 +1113,16 @@ io_fix_src_pos(file_pair *pair, size_t rewind_size)
 
 
 extern size_t
-io_read(file_pair *pair, io_buf *buf_union, size_t size)
+io_read(file_pair *pair, io_buf *buf, size_t size)
 {
        // We use small buffers here.
        assert(size < SSIZE_MAX);
 
-       uint8_t *buf = buf_union->u8;
-       size_t left = size;
+       size_t pos = 0;
 
-       while (left > 0) {
-               const ssize_t amount = read(pair->src_fd, buf, left);
+       while (pos < size) {
+               const ssize_t amount = read(
+                               pair->src_fd, buf->u8 + pos, size - pos);
 
                if (amount == 0) {
                        pair->src_eof = true;
@@ -1135,10 +1139,15 @@ io_read(file_pair *pair, io_buf *buf_union, size_t size)
 
 #ifndef TUKLIB_DOSLIKE
                        if (IS_EAGAIN_OR_EWOULDBLOCK(errno)) {
-                               const io_wait_ret ret = io_wait(pair,
-                                               mytime_get_flush_timeout(),
-                                               true);
-                               switch (ret) {
+                               // Disable the flush-timeout if no input has
+                               // been seen since the previous flush and thus
+                               // there would be nothing to flush after the
+                               // timeout expires (avoids busy waiting).
+                               const int timeout = pair->src_has_seen_input
+                                               ? mytime_get_flush_timeout()
+                                               : -1;
+
+                               switch (io_wait(pair, timeout, true)) {
                                case IO_WAIT_MORE:
                                        continue;
 
@@ -1146,7 +1155,8 @@ io_read(file_pair *pair, io_buf *buf_union, size_t size)
                                        return SIZE_MAX;
 
                                case IO_WAIT_TIMEOUT:
-                                       return size - left;
+                                       pair->flush_needed = true;
+                                       return pos;
 
                                default:
                                        message_bug();
@@ -1160,11 +1170,15 @@ io_read(file_pair *pair, io_buf *buf_union, size_t size)
                        return SIZE_MAX;
                }
 
-               buf += (size_t)(amount);
-               left -= (size_t)(amount);
+               pos += (size_t)(amount);
+
+               if (!pair->src_has_seen_input) {
+                       pair->src_has_seen_input = true;
+                       mytime_set_flush_time();
+               }
        }
 
-       return size - left;
+       return pos;
 }
 
 
@@ -1272,8 +1286,15 @@ io_write(file_pair *pair, const io_buf *buf, size_t size)
                // if the file ends with sparse block, we must also return
                // if size == 0 to avoid doing the lseek().
                if (size == IO_BUFFER_SIZE) {
-                       if (is_sparse(buf)) {
-                               pair->dest_pending_sparse += size;
+                       // Even if the block was sparse, treat it as non-sparse
+                       // if the pending sparse amount is large compared to
+                       // the size of off_t. In practice this only matters
+                       // on 32-bit systems where off_t isn't always 64 bits.
+                       const off_t pending_max
+                               = (off_t)(1) << (sizeof(off_t) * CHAR_BIT - 2);
+                       if (is_sparse(buf) && pair->dest_pending_sparse
+                                       < pending_max) {
+                               pair->dest_pending_sparse += (off_t)(size);
                                return false;
                        }
                } else if (size == 0) {
index 6722aef..c533d64 100644 (file)
 
 
 /// is_sparse() accesses the buffer as uint64_t for maximum speed.
-/// Use an union to make sure that the buffer is properly aligned.
+/// The u32 and u64 members must only be access through this union
+/// to avoid strict aliasing violations. Taking a pointer of u8
+/// should be fine as long as uint8_t maps to unsigned char which
+/// can alias anything.
 typedef union {
        uint8_t u8[IO_BUFFER_SIZE];
        uint32_t u32[IO_BUFFER_SIZE / sizeof(uint32_t)];
@@ -46,6 +49,13 @@ typedef struct {
        /// True once end of the source file has been detected.
        bool src_eof;
 
+       /// For --flush-timeout: True if at least one byte has been read
+       /// since the previous flush or the start of the file.
+       bool src_has_seen_input;
+
+       /// For --flush-timeout: True when flushing is needed.
+       bool flush_needed;
+
        /// If true, we look for long chunks of zeros and try to create
        /// a sparse file.
        bool dest_try_sparse;
index ff32f6d..e746cf9 100644 (file)
@@ -68,9 +68,39 @@ hardware_memlimit_set(uint64_t new_memlimit,
                new_memlimit = (uint32_t)new_memlimit * total_ram / 100;
        }
 
-       if (set_compress)
+       if (set_compress) {
                memlimit_compress = new_memlimit;
 
+#if SIZE_MAX == UINT32_MAX
+               // FIXME?
+               //
+               // When running a 32-bit xz on a system with a lot of RAM and
+               // using a percentage-based memory limit, the result can be
+               // bigger than the 32-bit address space. Limiting the limit
+               // below SIZE_MAX for compression (not decompression) makes
+               // xz lower the compression settings (or number of threads)
+               // to a level that *might* work. In practice it has worked
+               // when using a 64-bit kernel that gives full 4 GiB address
+               // space to 32-bit programs. In other situations this might
+               // still be too high, like 32-bit kernels that may give much
+               // less than 4 GiB to a single application.
+               //
+               // So this is an ugly hack but I will keep it here while
+               // it does more good than bad.
+               //
+               // Use a value less than SIZE_MAX so that there's some room
+               // for the xz program and so on. Don't use 4000 MiB because
+               // it could look like someone mixed up base-2 and base-10.
+               const uint64_t limit_max = UINT64_C(4020) << 20;
+
+               // UINT64_MAX is a special case for the string "max" so
+               // that has to be handled specially.
+               if (memlimit_compress != UINT64_MAX
+                               && memlimit_compress > limit_max)
+                       memlimit_compress = limit_max;
+#endif
+       }
+
        if (set_decompress)
                memlimit_decompress = new_memlimit;
 
index af550c4..ca8a468 100644 (file)
@@ -159,7 +159,7 @@ main(int argc, char **argv)
        // Initialize handling of error/warning/other messages.
        message_init();
 
-       // Set hardware-dependent default values. These can be overriden
+       // Set hardware-dependent default values. These can be overridden
        // on the command line, thus this must be done before args_parse().
        hardware_init();
 
@@ -326,5 +326,5 @@ main(int argc, char **argv)
        if (es == E_WARNING && no_warn)
                es = E_SUCCESS;
 
-       tuklib_exit(es, E_ERROR, message_verbosity_get() != V_SILENT);
+       tuklib_exit((int)es, E_ERROR, message_verbosity_get() != V_SILENT);
 }
index f88c123..aa915d2 100644 (file)
@@ -56,6 +56,11 @@ static bool progress_active = false;
 /// Pointer to lzma_stream used to do the encoding or decoding.
 static lzma_stream *progress_strm;
 
+/// This is true if we are in passthru mode (not actually compressing or
+/// decompressing) and thus cannot use lzma_get_progress(progress_strm, ...).
+/// That is, we are using coder_passthru() in coder.c.
+static bool progress_is_from_passthru;
+
 /// Expected size of the input stream is needed to show completion percentage
 /// and estimate remaining time.
 static uint64_t expected_in_size;
@@ -241,11 +246,12 @@ message_filename(const char *src_name)
 
 
 extern void
-message_progress_start(lzma_stream *strm, uint64_t in_size)
+message_progress_start(lzma_stream *strm, bool is_passthru, uint64_t in_size)
 {
        // Store the pointer to the lzma_stream used to do the coding.
        // It is needed to find out the position in the stream.
        progress_strm = strm;
+       progress_is_from_passthru = is_passthru;
 
        // Store the expected size of the file. If we aren't printing any
        // statistics, then is will be unused. But since it is possible
@@ -434,8 +440,8 @@ progress_remaining(uint64_t in_pos, uint64_t elapsed)
        // Calculate the estimate. Don't give an estimate of zero seconds,
        // since it is possible that all the input has been already passed
        // to the library, but there is still quite a bit of output pending.
-       uint32_t remaining = (double)(expected_in_size - in_pos)
-                       * ((double)(elapsed) / 1000.0) / (double)(in_pos);
+       uint32_t remaining = (uint32_t)((double)(expected_in_size - in_pos)
+                       * ((double)(elapsed) / 1000.0) / (double)(in_pos));
        if (remaining < 1)
                remaining = 1;
 
@@ -507,7 +513,15 @@ progress_pos(uint64_t *in_pos,
                uint64_t *compressed_pos, uint64_t *uncompressed_pos)
 {
        uint64_t out_pos;
-       lzma_get_progress(progress_strm, in_pos, &out_pos);
+       if (progress_is_from_passthru) {
+               // In passthru mode the progress info is in total_in/out but
+               // the *progress_strm itself isn't initialized and thus we
+               // cannot use lzma_get_progress().
+               *in_pos = progress_strm->total_in;
+               out_pos = progress_strm->total_out;
+       } else {
+               lzma_get_progress(progress_strm, in_pos, &out_pos);
+       }
 
        // It cannot have processed more input than it has been given.
        assert(*in_pos <= progress_strm->total_in);
index 74599bd..894ac78 100644 (file)
@@ -150,7 +150,8 @@ extern void message_filename(const char *src_name);
 /// \param      strm      Pointer to lzma_stream used for the coding.
 /// \param      in_size   Size of the input file, or zero if unknown.
 ///
-extern void message_progress_start(lzma_stream *strm, uint64_t in_size);
+extern void message_progress_start(lzma_stream *strm,
+               bool is_passthru, uint64_t in_size);
 
 
 /// Update the progress info if in verbose mode and enough time has passed
index 4be184f..7044400 100644 (file)
@@ -17,7 +17,6 @@
 #endif
 
 uint64_t opt_flush_timeout = 0;
-bool flush_needed;
 
 static uint64_t start_time;
 static uint64_t next_flush;
@@ -39,11 +38,11 @@ mytime_now(void)
        while (clock_gettime(clk_id, &tv))
                clk_id = CLOCK_REALTIME;
 
-       return (uint64_t)(tv.tv_sec) * UINT64_C(1000) + tv.tv_nsec / 1000000;
+       return (uint64_t)tv.tv_sec * 1000 + (uint64_t)(tv.tv_nsec / 1000000);
 #else
        struct timeval tv;
        gettimeofday(&tv, NULL);
-       return (uint64_t)(tv.tv_sec) * UINT64_C(1000) + tv.tv_usec / 1000;
+       return (uint64_t)tv.tv_sec * 1000 + (uint64_t)(tv.tv_usec / 1000);
 #endif
 }
 
@@ -52,8 +51,6 @@ extern void
 mytime_set_start_time(void)
 {
        start_time = mytime_now();
-       next_flush = start_time + opt_flush_timeout;
-       flush_needed = false;
        return;
 }
 
@@ -69,7 +66,6 @@ extern void
 mytime_set_flush_time(void)
 {
        next_flush = mytime_now() + opt_flush_timeout;
-       flush_needed = false;
        return;
 }
 
index ea291ee..a7be2aa 100644 (file)
 extern uint64_t opt_flush_timeout;
 
 
-/// \brief      True when flushing is needed due to expired timeout
-extern bool flush_needed;
-
-
 /// \brief      Store the time when (de)compression was started
 ///
 /// The start time is also stored as the time of the first flush.
@@ -43,5 +39,5 @@ extern void mytime_set_flush_time(void);
 ///
 /// This returns -1 if no timed flushing is used.
 ///
-/// The return value is inteded for use with poll().
+/// The return value is intended for use with poll().
 extern int mytime_get_flush_timeout(void);
index de05364..0c1ee22 100644 (file)
@@ -258,7 +258,7 @@ set_lzma(void *options, unsigned key, uint64_t value, const char *valuestr)
                if (valuestr[0] < '0' || valuestr[0] > '9')
                        error_lzma_preset(valuestr);
 
-               uint32_t preset = valuestr[0] - '0';
+               uint32_t preset = (uint32_t)(valuestr[0] - '0');
 
                // Currently only "e" is supported as a modifier,
                // so keep this simple for now.
index e61563a..d97c22c 100644 (file)
@@ -1,7 +1,7 @@
 ///////////////////////////////////////////////////////////////////////////////
 //
 /// \file       private.h
-/// \brief      Common includes, definions, and prototypes
+/// \brief      Common includes, definitions, and prototypes
 //
 //  Author:     Lasse Collin
 //
index 5387c42..7aef463 100644 (file)
@@ -23,7 +23,7 @@ volatile sig_atomic_t user_abort = false;
 /// been done.
 static volatile sig_atomic_t exit_signal = 0;
 
-/// Mask of signals for which have have established a signal handler to set
+/// Mask of signals for which we have established a signal handler to set
 /// user_abort to true.
 static sigset_t hooked_signals;
 
@@ -152,7 +152,7 @@ signals_unblock(void)
 extern void
 signals_exit(void)
 {
-       const int sig = exit_signal;
+       const int sig = (int)exit_signal;
 
        if (sig != 0) {
 #if defined(TUKLIB_DOSLIKE) || defined(__VMS)
@@ -166,7 +166,7 @@ signals_exit(void)
                sigfillset(&sa.sa_mask);
                sa.sa_flags = 0;
                sigaction(sig, &sa, NULL);
-               raise(exit_signal);
+               raise(sig);
 #endif
        }
 
index 35850f4..a1339f4 100644 (file)
@@ -79,7 +79,7 @@ str_to_uint64(const char *name, const char *value, uint64_t min, uint64_t max)
                result *= 10;
 
                // Another overflow check
-               const uint32_t add = *value - '0';
+               const uint32_t add = (uint32_t)(*value - '0');
                if (UINT64_MAX - add < result)
                        goto error;
 
@@ -142,14 +142,24 @@ round_up_to_mib(uint64_t n)
 }
 
 
-/// Check if thousand separator is supported. Run-time checking is easiest,
-/// because it seems to be sometimes lacking even on POSIXish system.
+/// Check if thousands separator is supported. Run-time checking is easiest
+/// because it seems to be sometimes lacking even on a POSIXish system.
+/// Note that trying to use thousands separators when snprintf() doesn't
+/// support them results in undefined behavior. This just has happened to
+/// work well enough in practice.
+///
+/// DJGPP 2.05 added support for thousands separators but it's broken
+/// at least under WinXP with Finnish locale that uses a non-breaking space
+/// as the thousands separator. Workaround by disabling thousands separators
+/// for DJGPP builds.
 static void
 check_thousand_sep(uint32_t slot)
 {
        if (thousand == UNKNOWN) {
                bufs[slot][0] = '\0';
+#ifndef __DJGPP__
                snprintf(bufs[slot], sizeof(bufs[slot]), "%'u", 1U);
+#endif
                thousand = bufs[slot][0] == '1' ? WORKS : BROKEN;
        }
 
@@ -243,7 +253,7 @@ my_snprintf(char **pos, size_t *left, const char *fmt, ...)
                *left = 0;
        } else {
                *pos += len;
-               *left -= len;
+               *left -= (size_t)(len);
        }
 
        return;
index 9dffdc6..540d136 100644 (file)
@@ -5,7 +5,7 @@
 .\" This file has been put into the public domain.
 .\" You can do whatever you want with this file.
 .\"
-.TH XZ 1 "2017-04-19" "Tukaani" "XZ Utils"
+.TH XZ 1 "2020-02-01" "Tukaani" "XZ Utils"
 .
 .SH NAME
 xz, unxz, xzcat, lzma, unlzma, lzcat \- Compress or decompress .xz and .lzma files
@@ -1005,6 +1005,25 @@ instead of
 until the details have been decided.
 .RE
 .IP ""
+For 32-bit
+.BR xz
+there is a special case: if the
+.I limit
+would be over
+.BR "4020\ MiB" ,
+the
+.I limit
+is set to
+.BR "4020\ MiB" .
+(The values
+.B 0
+and
+.B max
+aren't affected by this.
+A similar feature doesn't exist for decompression.)
+This can be helpful when a 32-bit executable has access
+to 4\ GiB address space while hopefully doing no harm in other situations.
+.IP ""
 See also the section
 .BR "Memory usage" .
 .TP
@@ -1052,7 +1071,7 @@ if using more threads would exceed the memory usage limit.
 Currently the only threading method is to split the input into
 blocks and compress them independently from each other.
 The default block size depends on the compression level and
-can be overriden with the
+can be overridden with the
 .BI \-\-block\-size= size
 option.
 .IP ""
@@ -1551,7 +1570,7 @@ The old BCJ filters will still be useful in embedded systems,
 because the decoder of the new filter will be bigger
 and use more memory.
 .IP ""
-Different instruction sets have have different alignment:
+Different instruction sets have different alignment:
 .RS
 .RS
 .PP
index 5ff8e37..90f1e92 100644 (file)
@@ -50,6 +50,7 @@ lzmadec_LDADD = $(xzdec_LDADD)
 
 
 bin_PROGRAMS =
+lzmadecmanlink =
 
 if COND_XZDEC
 bin_PROGRAMS += xzdec
@@ -60,23 +61,51 @@ if COND_LZMADEC
 bin_PROGRAMS += lzmadec
 
 # Create the symlink lzmadec.1->xzdec.1 only if xzdec.1 was installed.
-# This is better than creating a dangling symlink, especially
-# because creating the link may fail due to the directory being missing.
-#
-# FIXME: The correct solution would be to install xzdec.1 as lzmadec.1
-# but I don't know what is the sane way to do it and since this is a bit
-# unusual situation anyway, it's not that important.
+# This is better than creating a dangling symlink. The correct solution
+# would be to install xzdec.1 as lzmadec.1 but this code is already too
+# complicated so I won't do it. Installing only lzmadec is a bit unusual
+# situation anyway so it's not that important.
 if COND_XZDEC
+lzmadecmanlink += lzmadec
+endif
+endif
+
+if COND_XZDEC
+# The installation of translated man pages abuses Automake internals
+# by calling "install-man" with redefined dist_man_MANS and man_MANS.
+# If this breaks some day, don't blame Automake developers.
 install-data-hook:
-       cd $(DESTDIR)$(mandir)/man1 && \
+       languages= ; \
+       if test "$(USE_NLS)" = yes && test -d "$(top_srcdir)/po4a/man"; then \
+               languages=`ls "$(top_srcdir)/po4a/man"`; \
+       fi; \
        target=`echo xzdec | sed '$(transform)'` && \
        link=`echo lzmadec | sed '$(transform)'` && \
-       rm -f $$link.1 && \
-       $(LN_S) $$target.1 $$link.1
+       for lang in . $$languages; do \
+               man="$(top_srcdir)/po4a/man/$$lang/xzdec.1" ; \
+               if test -f "$$man"; then \
+                       $(MAKE) dist_man_MANS="$$man" man_MANS= \
+                               mandir="$(mandir)/$$lang" install-man; \
+               fi; \
+               man1dir="$(DESTDIR)$(mandir)/$$lang/man1" && \
+               if test -f "$$man1dir/$$target.1"; then \
+                       if test -n "$(lzmadecmanlink)"; then ( \
+                               cd "$$man1dir" && \
+                               rm -f "$$link.1" && \
+                               $(LN_S) "$$target.1" "$$link.1" \
+                       ); fi; \
+               fi; \
+       done
 
 uninstall-hook:
-       cd $(DESTDIR)$(mandir)/man1 && \
-       link=`echo lzmadec | sed '$(transform)'` && \
-       rm -f $$link.1
-endif
+       languages= ; \
+       if test "$(USE_NLS)" = yes && test -d "$(top_srcdir)/po4a/man"; then \
+               languages=`ls "$(top_srcdir)/po4a/man"`; \
+       fi; \
+       for lang in . $$languages; do \
+               for name in xzdec $(lzmadecmanlink); do \
+                       name=`echo $$name | sed '$(transform)'` && \
+                       rm -f "$(DESTDIR)$(mandir)/$$lang/man1/$$name.1"; \
+               done; \
+       done
 endif
index 704e834..2424a2e 100644 (file)
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.15.1 from Makefile.am.
+# Makefile.in generated by automake 1.16.1 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2017 Free Software Foundation, Inc.
+# Copyright (C) 1994-2018 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -94,18 +94,26 @@ host_triplet = @host@
 bin_PROGRAMS = $(am__EXEEXT_1) $(am__EXEEXT_2)
 @COND_XZDEC_TRUE@am__append_4 = xzdec
 @COND_LZMADEC_TRUE@am__append_5 = lzmadec
+
+# Create the symlink lzmadec.1->xzdec.1 only if xzdec.1 was installed.
+# This is better than creating a dangling symlink. The correct solution
+# would be to install xzdec.1 as lzmadec.1 but this code is already too
+# complicated so I won't do it. Installing only lzmadec is a bit unusual
+# situation anyway so it's not that important.
+@COND_LZMADEC_TRUE@@COND_XZDEC_TRUE@am__append_6 = lzmadec
 subdir = src/xzdec
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/m4/ax_check_capsicum.m4 \
        $(top_srcdir)/m4/ax_pthread.m4 $(top_srcdir)/m4/getopt.m4 \
-       $(top_srcdir)/m4/gettext.m4 $(top_srcdir)/m4/iconv.m4 \
-       $(top_srcdir)/m4/intlmacosx.m4 $(top_srcdir)/m4/lib-ld.m4 \
-       $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \
-       $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \
-       $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \
-       $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/m4/nls.m4 \
-       $(top_srcdir)/m4/po.m4 $(top_srcdir)/m4/posix-shell.m4 \
-       $(top_srcdir)/m4/progtest.m4 $(top_srcdir)/m4/tuklib_common.m4 \
+       $(top_srcdir)/m4/gettext.m4 $(top_srcdir)/m4/host-cpu-c-abi.m4 \
+       $(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/intlmacosx.m4 \
+       $(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \
+       $(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/libtool.m4 \
+       $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \
+       $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \
+       $(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/po.m4 \
+       $(top_srcdir)/m4/posix-shell.m4 $(top_srcdir)/m4/progtest.m4 \
+       $(top_srcdir)/m4/tuklib_common.m4 \
        $(top_srcdir)/m4/tuklib_cpucores.m4 \
        $(top_srcdir)/m4/tuklib_integer.m4 \
        $(top_srcdir)/m4/tuklib_mbstr.m4 \
@@ -164,7 +172,12 @@ am__v_at_0 = @
 am__v_at_1 = 
 DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
 depcomp = $(SHELL) $(top_srcdir)/build-aux/depcomp
-am__depfiles_maybe = depfiles
+am__maybe_remake_depfiles = depfiles
+am__depfiles_remade = ./$(DEPDIR)/lzmadec-tuklib_exit.Po \
+       ./$(DEPDIR)/lzmadec-tuklib_progname.Po \
+       ./$(DEPDIR)/lzmadec-xzdec.Po ./$(DEPDIR)/xzdec-tuklib_exit.Po \
+       ./$(DEPDIR)/xzdec-tuklib_progname.Po \
+       ./$(DEPDIR)/xzdec-xzdec.Po
 am__mv = mv -f
 COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
        $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
@@ -306,8 +319,8 @@ MAKEINFO = @MAKEINFO@
 MANIFEST_TOOL = @MANIFEST_TOOL@
 MKDIR_P = @MKDIR_P@
 MSGFMT = @MSGFMT@
-MSGFMT_015 = @MSGFMT_015@
 MSGMERGE = @MSGMERGE@
+MSGMERGE_FOR_MSGFMT_OPTION = @MSGMERGE_FOR_MSGFMT_OPTION@
 NM = @NM@
 NMEDIT = @NMEDIT@
 OBJDUMP = @OBJDUMP@
@@ -363,6 +376,7 @@ datadir = @datadir@
 datarootdir = @datarootdir@
 docdir = @docdir@
 dvidir = @dvidir@
+enable_path_for_scripts = @enable_path_for_scripts@
 exec_prefix = @exec_prefix@
 host = @host@
 host_alias = @host_alias@
@@ -408,6 +422,7 @@ lzmadec_SOURCES = xzdec.c ../common/tuklib_progname.c \
 lzmadec_CPPFLAGS = $(xzdec_CPPFLAGS) -DLZMADEC
 lzmadec_LDFLAGS = $(xzdec_LDFLAGS)
 lzmadec_LDADD = $(xzdec_LDADD)
+lzmadecmanlink = $(am__append_6)
 @COND_XZDEC_TRUE@dist_man_MANS = xzdec.1
 all: all-am
 
@@ -430,8 +445,8 @@ Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
          *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);; \
+           echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles)'; \
+           cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles);; \
        esac;
 
 $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
@@ -506,12 +521,18 @@ mostlyclean-compile:
 distclean-compile:
        -rm -f *.tab.c
 
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/lzmadec-tuklib_exit.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/lzmadec-tuklib_progname.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/lzmadec-xzdec.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xzdec-tuklib_exit.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xzdec-tuklib_progname.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xzdec-xzdec.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/lzmadec-tuklib_exit.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/lzmadec-tuklib_progname.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/lzmadec-xzdec.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xzdec-tuklib_exit.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xzdec-tuklib_progname.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xzdec-xzdec.Po@am__quote@ # am--include-marker
+
+$(am__depfiles_remade):
+       @$(MKDIR_P) $(@D)
+       @echo '# dummy' >$@-t && $(am__mv) $@-t $@
+
+am--depfiles: $(am__depfiles_remade)
 
 .c.o:
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
@@ -719,7 +740,10 @@ cscopelist-am: $(am__tagged_files)
 distclean-tags:
        -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
 
-distdir: $(DISTFILES)
+distdir: $(BUILT_SOURCES)
+       $(MAKE) $(AM_MAKEFLAGS) distdir-am
+
+distdir-am: $(DISTFILES)
        @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
        topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
        list='$(DISTFILES)'; \
@@ -786,16 +810,19 @@ distclean-generic:
 maintainer-clean-generic:
        @echo "This command is intended for maintainers to use"
        @echo "it deletes files that may require special tools to rebuild."
-@COND_LZMADEC_FALSE@install-data-hook:
 @COND_XZDEC_FALSE@install-data-hook:
-@COND_LZMADEC_FALSE@uninstall-hook:
 @COND_XZDEC_FALSE@uninstall-hook:
 clean: clean-am
 
 clean-am: clean-binPROGRAMS clean-generic clean-libtool mostlyclean-am
 
 distclean: distclean-am
-       -rm -rf ./$(DEPDIR)
+               -rm -f ./$(DEPDIR)/lzmadec-tuklib_exit.Po
+       -rm -f ./$(DEPDIR)/lzmadec-tuklib_progname.Po
+       -rm -f ./$(DEPDIR)/lzmadec-xzdec.Po
+       -rm -f ./$(DEPDIR)/xzdec-tuklib_exit.Po
+       -rm -f ./$(DEPDIR)/xzdec-tuklib_progname.Po
+       -rm -f ./$(DEPDIR)/xzdec-xzdec.Po
        -rm -f Makefile
 distclean-am: clean-am distclean-compile distclean-generic \
        distclean-tags
@@ -842,7 +869,12 @@ install-ps-am:
 installcheck-am:
 
 maintainer-clean: maintainer-clean-am
-       -rm -rf ./$(DEPDIR)
+               -rm -f ./$(DEPDIR)/lzmadec-tuklib_exit.Po
+       -rm -f ./$(DEPDIR)/lzmadec-tuklib_progname.Po
+       -rm -f ./$(DEPDIR)/lzmadec-xzdec.Po
+       -rm -f ./$(DEPDIR)/xzdec-tuklib_exit.Po
+       -rm -f ./$(DEPDIR)/xzdec-tuklib_progname.Po
+       -rm -f ./$(DEPDIR)/xzdec-xzdec.Po
        -rm -f Makefile
 maintainer-clean-am: distclean-am maintainer-clean-generic
 
@@ -866,7 +898,7 @@ uninstall-man: uninstall-man1
 
 .MAKE: install-am install-data-am install-strip uninstall-am
 
-.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean \
+.PHONY: CTAGS GTAGS TAGS all all-am am--depfiles check check-am clean \
        clean-binPROGRAMS clean-generic clean-libtool cscopelist-am \
        ctags ctags-am distclean distclean-compile distclean-generic \
        distclean-libtool distclean-tags distdir dvi dvi-am html \
@@ -891,24 +923,43 @@ uninstall-man: uninstall-man1
        $(RC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
                $(xzdec_CPPFLAGS) $(CPPFLAGS) $(RCFLAGS) -i $< -o $@
 
-# Create the symlink lzmadec.1->xzdec.1 only if xzdec.1 was installed.
-# This is better than creating a dangling symlink, especially
-# because creating the link may fail due to the directory being missing.
-#
-# FIXME: The correct solution would be to install xzdec.1 as lzmadec.1
-# but I don't know what is the sane way to do it and since this is a bit
-# unusual situation anyway, it's not that important.
-@COND_LZMADEC_TRUE@@COND_XZDEC_TRUE@install-data-hook:
-@COND_LZMADEC_TRUE@@COND_XZDEC_TRUE@   cd $(DESTDIR)$(mandir)/man1 && \
-@COND_LZMADEC_TRUE@@COND_XZDEC_TRUE@   target=`echo xzdec | sed '$(transform)'` && \
-@COND_LZMADEC_TRUE@@COND_XZDEC_TRUE@   link=`echo lzmadec | sed '$(transform)'` && \
-@COND_LZMADEC_TRUE@@COND_XZDEC_TRUE@   rm -f $$link.1 && \
-@COND_LZMADEC_TRUE@@COND_XZDEC_TRUE@   $(LN_S) $$target.1 $$link.1
-
-@COND_LZMADEC_TRUE@@COND_XZDEC_TRUE@uninstall-hook:
-@COND_LZMADEC_TRUE@@COND_XZDEC_TRUE@   cd $(DESTDIR)$(mandir)/man1 && \
-@COND_LZMADEC_TRUE@@COND_XZDEC_TRUE@   link=`echo lzmadec | sed '$(transform)'` && \
-@COND_LZMADEC_TRUE@@COND_XZDEC_TRUE@   rm -f $$link.1
+# The installation of translated man pages abuses Automake internals
+# by calling "install-man" with redefined dist_man_MANS and man_MANS.
+# If this breaks some day, don't blame Automake developers.
+@COND_XZDEC_TRUE@install-data-hook:
+@COND_XZDEC_TRUE@      languages= ; \
+@COND_XZDEC_TRUE@      if test "$(USE_NLS)" = yes && test -d "$(top_srcdir)/po4a/man"; then \
+@COND_XZDEC_TRUE@              languages=`ls "$(top_srcdir)/po4a/man"`; \
+@COND_XZDEC_TRUE@      fi; \
+@COND_XZDEC_TRUE@      target=`echo xzdec | sed '$(transform)'` && \
+@COND_XZDEC_TRUE@      link=`echo lzmadec | sed '$(transform)'` && \
+@COND_XZDEC_TRUE@      for lang in . $$languages; do \
+@COND_XZDEC_TRUE@              man="$(top_srcdir)/po4a/man/$$lang/xzdec.1" ; \
+@COND_XZDEC_TRUE@              if test -f "$$man"; then \
+@COND_XZDEC_TRUE@                      $(MAKE) dist_man_MANS="$$man" man_MANS= \
+@COND_XZDEC_TRUE@                              mandir="$(mandir)/$$lang" install-man; \
+@COND_XZDEC_TRUE@              fi; \
+@COND_XZDEC_TRUE@              man1dir="$(DESTDIR)$(mandir)/$$lang/man1" && \
+@COND_XZDEC_TRUE@              if test -f "$$man1dir/$$target.1"; then \
+@COND_XZDEC_TRUE@                      if test -n "$(lzmadecmanlink)"; then ( \
+@COND_XZDEC_TRUE@                              cd "$$man1dir" && \
+@COND_XZDEC_TRUE@                              rm -f "$$link.1" && \
+@COND_XZDEC_TRUE@                              $(LN_S) "$$target.1" "$$link.1" \
+@COND_XZDEC_TRUE@                      ); fi; \
+@COND_XZDEC_TRUE@              fi; \
+@COND_XZDEC_TRUE@      done
+
+@COND_XZDEC_TRUE@uninstall-hook:
+@COND_XZDEC_TRUE@      languages= ; \
+@COND_XZDEC_TRUE@      if test "$(USE_NLS)" = yes && test -d "$(top_srcdir)/po4a/man"; then \
+@COND_XZDEC_TRUE@              languages=`ls "$(top_srcdir)/po4a/man"`; \
+@COND_XZDEC_TRUE@      fi; \
+@COND_XZDEC_TRUE@      for lang in . $$languages; do \
+@COND_XZDEC_TRUE@              for name in xzdec $(lzmadecmanlink); do \
+@COND_XZDEC_TRUE@                      name=`echo $$name | sed '$(transform)'` && \
+@COND_XZDEC_TRUE@                      rm -f "$(DESTDIR)$(mandir)/$$lang/man1/$$name.1"; \
+@COND_XZDEC_TRUE@              done; \
+@COND_XZDEC_TRUE@      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.
index 5cb7530..c1bd199 100644 (file)
@@ -37,7 +37,7 @@
 
 /// Error messages are suppressed if this is zero, which is the case when
 /// --quiet has been given at least twice.
-static unsigned int display_errors = 2;
+static int display_errors = 2;
 
 
 static void lzma_attribute((__format__(__printf__, 1, 2)))
index 9e1ba47..f69b441 100644 (file)
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.15.1 from Makefile.am.
+# Makefile.in generated by automake 1.16.1 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2017 Free Software Foundation, Inc.
+# Copyright (C) 1994-2018 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -101,14 +101,15 @@ subdir = tests
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/m4/ax_check_capsicum.m4 \
        $(top_srcdir)/m4/ax_pthread.m4 $(top_srcdir)/m4/getopt.m4 \
-       $(top_srcdir)/m4/gettext.m4 $(top_srcdir)/m4/iconv.m4 \
-       $(top_srcdir)/m4/intlmacosx.m4 $(top_srcdir)/m4/lib-ld.m4 \
-       $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \
-       $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \
-       $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \
-       $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/m4/nls.m4 \
-       $(top_srcdir)/m4/po.m4 $(top_srcdir)/m4/posix-shell.m4 \
-       $(top_srcdir)/m4/progtest.m4 $(top_srcdir)/m4/tuklib_common.m4 \
+       $(top_srcdir)/m4/gettext.m4 $(top_srcdir)/m4/host-cpu-c-abi.m4 \
+       $(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/intlmacosx.m4 \
+       $(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \
+       $(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/libtool.m4 \
+       $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \
+       $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \
+       $(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/po.m4 \
+       $(top_srcdir)/m4/posix-shell.m4 $(top_srcdir)/m4/progtest.m4 \
+       $(top_srcdir)/m4/tuklib_common.m4 \
        $(top_srcdir)/m4/tuklib_cpucores.m4 \
        $(top_srcdir)/m4/tuklib_integer.m4 \
        $(top_srcdir)/m4/tuklib_mbstr.m4 \
@@ -181,7 +182,12 @@ am__v_at_0 = @
 am__v_at_1 = 
 DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
 depcomp = $(SHELL) $(top_srcdir)/build-aux/depcomp
-am__depfiles_maybe = depfiles
+am__maybe_remake_depfiles = depfiles
+am__depfiles_remade = ./$(DEPDIR)/create_compress_files.Po \
+       ./$(DEPDIR)/test_bcj_exact_size.Po \
+       ./$(DEPDIR)/test_block_header.Po ./$(DEPDIR)/test_check.Po \
+       ./$(DEPDIR)/test_filter_flags.Po ./$(DEPDIR)/test_index.Po \
+       ./$(DEPDIR)/test_stream_flags.Po
 am__mv = mv -f
 COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
        $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
@@ -319,8 +325,8 @@ MAKEINFO = @MAKEINFO@
 MANIFEST_TOOL = @MANIFEST_TOOL@
 MKDIR_P = @MKDIR_P@
 MSGFMT = @MSGFMT@
-MSGFMT_015 = @MSGFMT_015@
 MSGMERGE = @MSGMERGE@
+MSGMERGE_FOR_MSGFMT_OPTION = @MSGMERGE_FOR_MSGFMT_OPTION@
 NM = @NM@
 NMEDIT = @NMEDIT@
 OBJDUMP = @OBJDUMP@
@@ -376,6 +382,7 @@ datadir = @datadir@
 datarootdir = @datarootdir@
 docdir = @docdir@
 dvidir = @dvidir@
+enable_path_for_scripts = @enable_path_for_scripts@
 exec_prefix = @exec_prefix@
 host = @host@
 host_alias = @host_alias@
@@ -445,8 +452,8 @@ Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
          *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);; \
+           echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles)'; \
+           cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles);; \
        esac;
 
 $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
@@ -501,13 +508,19 @@ mostlyclean-compile:
 distclean-compile:
        -rm -f *.tab.c
 
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/create_compress_files.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test_bcj_exact_size.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test_block_header.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test_check.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test_filter_flags.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test_index.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test_stream_flags.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/create_compress_files.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test_bcj_exact_size.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test_block_header.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test_check.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test_filter_flags.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test_index.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test_stream_flags.Po@am__quote@ # am--include-marker
+
+$(am__depfiles_remade):
+       @$(MKDIR_P) $(@D)
+       @echo '# dummy' >$@-t && $(am__mv) $@-t $@
+
+am--depfiles: $(am__depfiles_remade)
 
 .c.o:
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
@@ -681,7 +694,10 @@ check-TESTS: $(TESTS)
          test "$$failed" -eq 0; \
        else :; fi
 
-distdir: $(DISTFILES)
+distdir: $(BUILT_SOURCES)
+       $(MAKE) $(AM_MAKEFLAGS) distdir-am
+
+distdir-am: $(DISTFILES)
        @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
        topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
        list='$(DISTFILES)'; \
@@ -753,7 +769,13 @@ clean-am: clean-checkPROGRAMS clean-generic clean-libtool clean-local \
        mostlyclean-am
 
 distclean: distclean-am
-       -rm -rf ./$(DEPDIR)
+               -rm -f ./$(DEPDIR)/create_compress_files.Po
+       -rm -f ./$(DEPDIR)/test_bcj_exact_size.Po
+       -rm -f ./$(DEPDIR)/test_block_header.Po
+       -rm -f ./$(DEPDIR)/test_check.Po
+       -rm -f ./$(DEPDIR)/test_filter_flags.Po
+       -rm -f ./$(DEPDIR)/test_index.Po
+       -rm -f ./$(DEPDIR)/test_stream_flags.Po
        -rm -f Makefile
 distclean-am: clean-am distclean-compile distclean-generic \
        distclean-tags
@@ -799,7 +821,13 @@ install-ps-am:
 installcheck-am:
 
 maintainer-clean: maintainer-clean-am
-       -rm -rf ./$(DEPDIR)
+               -rm -f ./$(DEPDIR)/create_compress_files.Po
+       -rm -f ./$(DEPDIR)/test_bcj_exact_size.Po
+       -rm -f ./$(DEPDIR)/test_block_header.Po
+       -rm -f ./$(DEPDIR)/test_check.Po
+       -rm -f ./$(DEPDIR)/test_filter_flags.Po
+       -rm -f ./$(DEPDIR)/test_index.Po
+       -rm -f ./$(DEPDIR)/test_stream_flags.Po
        -rm -f Makefile
 maintainer-clean-am: distclean-am maintainer-clean-generic
 
@@ -820,19 +848,19 @@ uninstall-am:
 
 .MAKE: check-am install-am install-strip
 
-.PHONY: CTAGS GTAGS TAGS all all-am check check-TESTS check-am clean \
-       clean-checkPROGRAMS clean-generic clean-libtool clean-local \
-       cscopelist-am ctags ctags-am distclean distclean-compile \
-       distclean-generic distclean-libtool 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 mostlyclean-libtool pdf pdf-am ps ps-am \
-       tags tags-am uninstall uninstall-am
+.PHONY: CTAGS GTAGS TAGS all all-am am--depfiles check check-TESTS \
+       check-am clean clean-checkPROGRAMS clean-generic clean-libtool \
+       clean-local cscopelist-am ctags ctags-am distclean \
+       distclean-compile distclean-generic distclean-libtool \
+       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 mostlyclean-libtool \
+       pdf pdf-am ps ps-am tags tags-am uninstall uninstall-am
 
 .PRECIOUS: Makefile
 
index bd5b4ef..88d60b7 100644 (file)
@@ -94,10 +94,10 @@ write_random(FILE *file)
        for (size_t i = 0; i < 123456; ++i) {
                n = 101771 * n + 71777;
 
-               putc(n & 0xFF, file);
-               putc((n >> 8) & 0xFF, file);
-               putc((n >> 16) & 0xFF, file);
-               putc(n >> 24, file);
+               putc((uint8_t)(n), file);
+               putc((uint8_t)(n >> 8), file);
+               putc((uint8_t)(n >> 16), file);
+               putc((uint8_t)(n >> 24), file);
        }
 }
 
index 3d9b5d9..373a807 100644 (file)
@@ -127,7 +127,8 @@ test1(void)
        known_options.filters = filters_one;
        expect(lzma_block_header_size(&known_options) == LZMA_OK);
 
-       known_options.check = 999; // Some invalid value, which gets ignored.
+       // Some invalid value, which gets ignored.
+       known_options.check = (lzma_check)(99);
        expect(lzma_block_header_size(&known_options) == LZMA_OK);
 
        known_options.compressed_size = 5;
@@ -211,7 +212,7 @@ test3(void)
        // Unsupported filter
        // NOTE: This may need updating when new IDs become supported.
        buf[2] ^= 0x1F;
-       unaligned_write32le(buf + known_options.header_size - 4,
+       write32le(buf + known_options.header_size - 4,
                        lzma_crc32(buf, known_options.header_size - 4, 0));
        expect(lzma_block_header_decode(&decoded_options, NULL, buf)
                        == LZMA_OPTIONS_ERROR);
@@ -219,7 +220,7 @@ test3(void)
 
        // Non-nul Padding
        buf[known_options.header_size - 4 - 1] ^= 1;
-       unaligned_write32le(buf + known_options.header_size - 4,
+       write32le(buf + known_options.header_size - 4,
                        lzma_crc32(buf, known_options.header_size - 4, 0));
        expect(lzma_block_header_decode(&decoded_options, NULL, buf)
                        == LZMA_OPTIONS_ERROR);
index 7d4a360..58813a5 100644 (file)
 #include "tests.h"
 
 
-static const uint8_t test_string[9] = "123456789";
-static const uint8_t test_unaligned[12] = "xxx123456789";
+// These must be specified as numbers so that the test works on EBCDIC
+// systems too.
+// static const uint8_t test_string[9] = "123456789";
+// static const uint8_t test_unaligned[12] = "xxx123456789";
+static const uint8_t test_string[9] = { 49, 50, 51, 52, 53, 54, 55, 56, 57 };
+static const uint8_t test_unaligned[12]
+               = { 120, 120, 120, 49, 50, 51, 52, 53, 54, 55, 56, 57 };
 
 
 static bool
index 9611459..39304cd 100644 (file)
@@ -83,7 +83,7 @@ test_footer(void)
 static void
 test_encode_invalid(void)
 {
-       known_flags.check = LZMA_CHECK_ID_MAX + 1;
+       known_flags.check = (lzma_check)(LZMA_CHECK_ID_MAX + 1);
        known_flags.backward_size = 1024;
 
        expect(lzma_stream_header_encode(&known_flags, buffer)
@@ -133,13 +133,13 @@ test_decode_invalid(void)
 
        // Test 2a (valid CRC32)
        uint32_t crc = lzma_crc32(buffer + 6, 2, 0);
-       unaligned_write32le(buffer + 8, crc);
+       write32le(buffer + 8, crc);
        succeed(test_header_decoder(LZMA_OK));
 
        // Test 2b (invalid Stream Flags with valid CRC32)
        buffer[6] ^= 0x20;
        crc = lzma_crc32(buffer + 6, 2, 0);
-       unaligned_write32le(buffer + 8, crc);
+       write32le(buffer + 8, crc);
        succeed(test_header_decoder(LZMA_OPTIONS_ERROR));
 
        // Test 3 (invalid CRC32)
@@ -151,7 +151,7 @@ test_decode_invalid(void)
        expect(lzma_stream_footer_encode(&known_flags, buffer) == LZMA_OK);
        buffer[9] ^= 0x40;
        crc = lzma_crc32(buffer + 4, 6, 0);
-       unaligned_write32le(buffer, crc);
+       write32le(buffer, crc);
        succeed(test_footer_decoder(LZMA_OPTIONS_ERROR));
 
        // Test 5 (invalid Magic Bytes)
index 8f3c745..2fd4237 100644 (file)
@@ -94,13 +94,8 @@ coder_loop(lzma_stream *strm, uint8_t *in, size_t in_size,
        if (ret != expected_ret)
                error = true;
 
-       if (expected_ret == LZMA_STREAM_END) {
-               if (strm->total_in != in_size || strm->total_out != out_size)
-                       error = true;
-       } else {
-               if (strm->total_in != in_size || strm->total_out != out_size)
-                       error = true;
-       }
+       if (strm->total_in != in_size || strm->total_out != out_size)
+               error = true;
 
        return error;
 }
index 7dd3168..17e1da1 100644 (file)
@@ -30,6 +30,10 @@ Building
     compiler switch to link to the CRT statically, so it will not
     have any other DLL dependencies.
 
+    The VS2017 project files don't set <WindowsTargetPlatformVersion>.
+    This means that you may need to either install Windows SDK 8.1 or
+    you may need to set the target platform version before building.
+
     Currently no test programs are built or run under MSVC.
 
     MSVC gives a bunch of compiler warnings. Some warnings are specific
index 4a6a284..9a3ebe0 100644 (file)
@@ -112,7 +112,7 @@ buildit()
        strip -vg "$DESTDIR/"*.a
 }
 
-# Copy files and convert newlines from LF to CR+LF. Optinally add a suffix
+# Copy files and convert newlines from LF to CR+LF. Optionally add a suffix
 # to the destination filename.
 #
 # The first argument is the destination directory. The second argument is
index bf4748f..3277080 100644 (file)
@@ -29,7 +29,6 @@
   <PropertyGroup Label="Globals">
     <ProjectGuid>{12728250-16EC-4DC6-94D7-E21DD88947F8}</ProjectGuid>
     <Keyword>Win32Proj</Keyword>
-    <WindowsTargetPlatformVersion>10.0.15063.0</WindowsTargetPlatformVersion>
   </PropertyGroup>
   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
index 228d82e..33f3e69 100644 (file)
@@ -29,7 +29,6 @@
   <PropertyGroup Label="Globals">
     <ProjectGuid>{E0F247DB-EF12-4755-8DF9-F74BCD1348F7}</ProjectGuid>
     <Keyword>Win32Proj</Keyword>
-    <WindowsTargetPlatformVersion>10.0.15063.0</WindowsTargetPlatformVersion>
   </PropertyGroup>
   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
diff --git a/windows/vs2019/config.h b/windows/vs2019/config.h
new file mode 100644 (file)
index 0000000..ef921e8
--- /dev/null
@@ -0,0 +1,148 @@
+/* config.h for compiling liblzma (*not* the whole XZ Utils) with MSVC 2019 */
+
+/* Prefix for symbols exported by tuklib_*.c files */
+#define TUKLIB_SYMBOL_PREFIX lzma_
+
+/* How many MiB of RAM to assume if the real amount cannot be determined. */
+#define ASSUME_RAM 128
+
+/* Define to 1 if crc32 integrity check is enabled. */
+#define HAVE_CHECK_CRC32 1
+
+/* Define to 1 if crc64 integrity check is enabled. */
+#define HAVE_CHECK_CRC64 1
+
+/* Define to 1 if sha256 integrity check is enabled. */
+#define HAVE_CHECK_SHA256 1
+
+/* Define to 1 if any of HAVE_DECODER_foo have been defined. */
+#define HAVE_DECODERS 1
+
+/* Define to 1 if arm decoder is enabled. */
+#define HAVE_DECODER_ARM 1
+
+/* Define to 1 if armthumb decoder is enabled. */
+#define HAVE_DECODER_ARMTHUMB 1
+
+/* Define to 1 if delta decoder is enabled. */
+#define HAVE_DECODER_DELTA 1
+
+/* Define to 1 if ia64 decoder is enabled. */
+#define HAVE_DECODER_IA64 1
+
+/* Define to 1 if lzma1 decoder is enabled. */
+#define HAVE_DECODER_LZMA1 1
+
+/* Define to 1 if lzma2 decoder is enabled. */
+#define HAVE_DECODER_LZMA2 1
+
+/* Define to 1 if powerpc decoder is enabled. */
+#define HAVE_DECODER_POWERPC 1
+
+/* Define to 1 if sparc decoder is enabled. */
+#define HAVE_DECODER_SPARC 1
+
+/* Define to 1 if x86 decoder is enabled. */
+#define HAVE_DECODER_X86 1
+
+/* Define to 1 if any of HAVE_ENCODER_foo have been defined. */
+#define HAVE_ENCODERS 1
+
+/* Define to 1 if arm encoder is enabled. */
+#define HAVE_ENCODER_ARM 1
+
+/* Define to 1 if armthumb encoder is enabled. */
+#define HAVE_ENCODER_ARMTHUMB 1
+
+/* Define to 1 if delta encoder is enabled. */
+#define HAVE_ENCODER_DELTA 1
+
+/* Define to 1 if ia64 encoder is enabled. */
+#define HAVE_ENCODER_IA64 1
+
+/* Define to 1 if lzma1 encoder is enabled. */
+#define HAVE_ENCODER_LZMA1 1
+
+/* Define to 1 if lzma2 encoder is enabled. */
+#define HAVE_ENCODER_LZMA2 1
+
+/* Define to 1 if powerpc encoder is enabled. */
+#define HAVE_ENCODER_POWERPC 1
+
+/* Define to 1 if sparc encoder is enabled. */
+#define HAVE_ENCODER_SPARC 1
+
+/* Define to 1 if x86 encoder is enabled. */
+#define HAVE_ENCODER_X86 1
+
+/* Define to 1 if you have the <inttypes.h> header file. */
+#define HAVE_INTTYPES_H 1
+
+/* Define to 1 if you have the <limits.h> header file. */
+#define HAVE_LIMITS_H 1
+
+/* Define to 1 to enable bt2 match finder. */
+#define HAVE_MF_BT2 1
+
+/* Define to 1 to enable bt3 match finder. */
+#define HAVE_MF_BT3 1
+
+/* Define to 1 to enable bt4 match finder. */
+#define HAVE_MF_BT4 1
+
+/* Define to 1 to enable hc3 match finder. */
+#define HAVE_MF_HC3 1
+
+/* Define to 1 to enable hc4 match finder. */
+#define HAVE_MF_HC4 1
+
+/* Define to 1 if stdbool.h conforms to C99. */
+#define HAVE_STDBOOL_H 1
+
+/* Define to 1 if you have the <stdint.h> header file. */
+#define HAVE_STDINT_H 1
+
+/* Define to 1 if you have the <stdlib.h> header file. */
+#define HAVE_STDLIB_H 1
+
+/* Define to 1 if you have the <string.h> header file. */
+#define HAVE_STRING_H 1
+
+/* Define to 1 or 0, depending whether the compiler supports simple visibility
+   declarations. */
+#define HAVE_VISIBILITY 0
+
+/* Define to 1 if the system has the type `_Bool'. */
+#define HAVE__BOOL 1
+
+#ifdef _M_IX86
+/* Define to 1 when using Windows 95 (and thus XP) compatible threads. This
+   avoids use of features that were added in Windows Vista.
+   This is used for 32-bit x86 builds for compatibility reasons since it
+   makes no measurable difference in performance compared to Vista threads. */
+#define MYTHREAD_WIN95 1
+#else
+/* Define to 1 when using Windows Vista compatible threads. This uses features
+   that are not available on Windows XP. */
+#define MYTHREAD_VISTA 1
+#endif
+
+/* Define to 1 to disable debugging code. */
+#define NDEBUG 1
+
+/* Define to the full name of this package. */
+#define PACKAGE_NAME "XZ Utils"
+
+/* Define to the home page for this package. */
+#define PACKAGE_URL "https://tukaani.org/xz/"
+
+/* The size of `size_t', as computed by sizeof. */
+#ifdef _WIN64
+#define SIZEOF_SIZE_T 8
+#else
+#define SIZEOF_SIZE_T 4
+#endif
+
+/* Define to 1 if the system supports fast unaligned access to 16-bit and
+   32-bit integers. */
+#define TUKLIB_FAST_UNALIGNED_ACCESS 1
diff --git a/windows/vs2019/liblzma.vcxproj b/windows/vs2019/liblzma.vcxproj
new file mode 100644 (file)
index 0000000..c8039fe
--- /dev/null
@@ -0,0 +1,355 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <ItemGroup Label="ProjectConfigurations">
+    <ProjectConfiguration Include="Debug|Win32">
+      <Configuration>Debug</Configuration>
+      <Platform>Win32</Platform>
+    </ProjectConfiguration>
+    <ProjectConfiguration Include="Debug|x64">
+      <Configuration>Debug</Configuration>
+      <Platform>x64</Platform>
+    </ProjectConfiguration>
+    <ProjectConfiguration Include="ReleaseMT|Win32">
+      <Configuration>ReleaseMT</Configuration>
+      <Platform>Win32</Platform>
+    </ProjectConfiguration>
+    <ProjectConfiguration Include="ReleaseMT|x64">
+      <Configuration>ReleaseMT</Configuration>
+      <Platform>x64</Platform>
+    </ProjectConfiguration>
+    <ProjectConfiguration Include="Release|Win32">
+      <Configuration>Release</Configuration>
+      <Platform>Win32</Platform>
+    </ProjectConfiguration>
+    <ProjectConfiguration Include="Release|x64">
+      <Configuration>Release</Configuration>
+      <Platform>x64</Platform>
+    </ProjectConfiguration>
+  </ItemGroup>
+  <PropertyGroup Label="Globals">
+    <ProjectGuid>{12728250-16EC-4DC6-94D7-E21DD88947F8}</ProjectGuid>
+    <Keyword>Win32Proj</Keyword>
+    <WindowsTargetPlatformVersion>10.0</WindowsTargetPlatformVersion>
+  </PropertyGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
+    <ConfigurationType>StaticLibrary</ConfigurationType>
+    <UseDebugLibraries>true</UseDebugLibraries>
+    <PlatformToolset>v142</PlatformToolset>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
+    <ConfigurationType>StaticLibrary</ConfigurationType>
+    <UseDebugLibraries>true</UseDebugLibraries>
+    <PlatformToolset>v142</PlatformToolset>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
+    <ConfigurationType>StaticLibrary</ConfigurationType>
+    <UseDebugLibraries>false</UseDebugLibraries>
+    <PlatformToolset>v142</PlatformToolset>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
+    <ConfigurationType>StaticLibrary</ConfigurationType>
+    <UseDebugLibraries>false</UseDebugLibraries>
+    <PlatformToolset>v142</PlatformToolset>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='ReleaseMT|Win32'" Label="Configuration">
+    <ConfigurationType>StaticLibrary</ConfigurationType>
+    <UseDebugLibraries>false</UseDebugLibraries>
+    <PlatformToolset>v142</PlatformToolset>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='ReleaseMT|x64'" Label="Configuration">
+    <ConfigurationType>StaticLibrary</ConfigurationType>
+    <UseDebugLibraries>false</UseDebugLibraries>
+    <PlatformToolset>v142</PlatformToolset>
+  </PropertyGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+  <ImportGroup Label="ExtensionSettings">
+  </ImportGroup>
+  <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+  </ImportGroup>
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+  </ImportGroup>
+  <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+  </ImportGroup>
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+  </ImportGroup>
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='ReleaseMT|Win32'" Label="PropertySheets">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+  </ImportGroup>
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='ReleaseMT|x64'" Label="PropertySheets">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+  </ImportGroup>
+  <PropertyGroup Label="UserMacros" />
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+    <LinkIncremental>true</LinkIncremental>
+    <OutDir>$(SolutionDir)$(Configuration)\$(Platform)\$(ProjectName)\</OutDir>
+    <IntDir>$(Configuration)\$(Platform)\$(ProjectName)\</IntDir>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+    <LinkIncremental>true</LinkIncremental>
+    <OutDir>$(SolutionDir)$(Configuration)\$(Platform)\$(ProjectName)\</OutDir>
+    <IntDir>$(Configuration)\$(Platform)\$(ProjectName)\</IntDir>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+    <LinkIncremental>true</LinkIncremental>
+    <OutDir>$(SolutionDir)$(Configuration)\$(Platform)\$(ProjectName)\</OutDir>
+    <IntDir>$(Configuration)\$(Platform)\$(ProjectName)\</IntDir>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+    <LinkIncremental>true</LinkIncremental>
+    <OutDir>$(SolutionDir)$(Configuration)\$(Platform)\$(ProjectName)\</OutDir>
+    <IntDir>$(Configuration)\$(Platform)\$(ProjectName)\</IntDir>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='ReleaseMT|Win32'">
+    <LinkIncremental>true</LinkIncremental>
+    <OutDir>$(SolutionDir)$(Configuration)\$(Platform)\$(ProjectName)\</OutDir>
+    <IntDir>$(Configuration)\$(Platform)\$(ProjectName)\</IntDir>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='ReleaseMT|x64'">
+    <LinkIncremental>true</LinkIncremental>
+    <OutDir>$(SolutionDir)$(Configuration)\$(Platform)\$(ProjectName)\</OutDir>
+    <IntDir>$(Configuration)\$(Platform)\$(ProjectName)\</IntDir>
+  </PropertyGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+    <ClCompile>
+      <PreprocessorDefinitions>WIN32;HAVE_CONFIG_H;_DEBUG;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
+      <WarningLevel>Level3</WarningLevel>
+      <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+      <Optimization>Disabled</Optimization>
+      <AdditionalIncludeDirectories>./;../../src/liblzma/common;../../src/common;../../src/liblzma/api;../../src/liblzma/check;../../src/liblzma/delta;../../src/liblzma/lz;../../src/liblzma/lzma;../../src/liblzma/rangecoder;../../src/liblzma/simple</AdditionalIncludeDirectories>
+    </ClCompile>
+    <Link>
+      <TargetMachine>MachineX86</TargetMachine>
+      <GenerateDebugInformation>true</GenerateDebugInformation>
+      <SubSystem>Windows</SubSystem>
+    </Link>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+    <ClCompile>
+      <PreprocessorDefinitions>WIN32;HAVE_CONFIG_H;_DEBUG;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
+      <WarningLevel>Level3</WarningLevel>
+      <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+      <Optimization>Disabled</Optimization>
+      <AdditionalIncludeDirectories>./;../../src/liblzma/common;../../src/common;../../src/liblzma/api;../../src/liblzma/check;../../src/liblzma/delta;../../src/liblzma/lz;../../src/liblzma/lzma;../../src/liblzma/rangecoder;../../src/liblzma/simple</AdditionalIncludeDirectories>
+    </ClCompile>
+    <Link>
+      <GenerateDebugInformation>true</GenerateDebugInformation>
+      <SubSystem>Windows</SubSystem>
+    </Link>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+    <ClCompile>
+      <PreprocessorDefinitions>WIN32;HAVE_CONFIG_H;NDEBUG;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+      <WarningLevel>Level3</WarningLevel>
+      <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+      <AdditionalIncludeDirectories>./;../../src/liblzma/common;../../src/common;../../src/liblzma/api;../../src/liblzma/check;../../src/liblzma/delta;../../src/liblzma/lz;../../src/liblzma/lzma;../../src/liblzma/rangecoder;../../src/liblzma/simple</AdditionalIncludeDirectories>
+    </ClCompile>
+    <Link>
+      <TargetMachine>MachineX86</TargetMachine>
+      <GenerateDebugInformation>true</GenerateDebugInformation>
+      <SubSystem>Windows</SubSystem>
+      <EnableCOMDATFolding>true</EnableCOMDATFolding>
+      <OptimizeReferences>true</OptimizeReferences>
+    </Link>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+    <ClCompile>
+      <PreprocessorDefinitions>WIN32;HAVE_CONFIG_H;NDEBUG;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+      <WarningLevel>Level3</WarningLevel>
+      <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+      <AdditionalIncludeDirectories>./;../../src/liblzma/common;../../src/common;../../src/liblzma/api;../../src/liblzma/check;../../src/liblzma/delta;../../src/liblzma/lz;../../src/liblzma/lzma;../../src/liblzma/rangecoder;../../src/liblzma/simple</AdditionalIncludeDirectories>
+    </ClCompile>
+    <Link>
+      <GenerateDebugInformation>true</GenerateDebugInformation>
+      <SubSystem>Windows</SubSystem>
+      <EnableCOMDATFolding>true</EnableCOMDATFolding>
+      <OptimizeReferences>true</OptimizeReferences>
+    </Link>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='ReleaseMT|Win32'">
+    <ClCompile>
+      <PreprocessorDefinitions>WIN32;HAVE_CONFIG_H;NDEBUG;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <RuntimeLibrary>MultiThreaded</RuntimeLibrary>
+      <WarningLevel>Level3</WarningLevel>
+      <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+      <AdditionalIncludeDirectories>./;../../src/liblzma/common;../../src/common;../../src/liblzma/api;../../src/liblzma/check;../../src/liblzma/delta;../../src/liblzma/lz;../../src/liblzma/lzma;../../src/liblzma/rangecoder;../../src/liblzma/simple</AdditionalIncludeDirectories>
+    </ClCompile>
+    <Link>
+      <TargetMachine>MachineX86</TargetMachine>
+      <GenerateDebugInformation>true</GenerateDebugInformation>
+      <SubSystem>Windows</SubSystem>
+      <EnableCOMDATFolding>true</EnableCOMDATFolding>
+      <OptimizeReferences>true</OptimizeReferences>
+    </Link>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='ReleaseMT|x64'">
+    <ClCompile>
+      <PreprocessorDefinitions>WIN32;HAVE_CONFIG_H;NDEBUG;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <RuntimeLibrary>MultiThreaded</RuntimeLibrary>
+      <WarningLevel>Level3</WarningLevel>
+      <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+      <AdditionalIncludeDirectories>./;../../src/liblzma/common;../../src/common;../../src/liblzma/api;../../src/liblzma/check;../../src/liblzma/delta;../../src/liblzma/lz;../../src/liblzma/lzma;../../src/liblzma/rangecoder;../../src/liblzma/simple</AdditionalIncludeDirectories>
+    </ClCompile>
+    <Link>
+      <GenerateDebugInformation>true</GenerateDebugInformation>
+      <SubSystem>Windows</SubSystem>
+      <EnableCOMDATFolding>true</EnableCOMDATFolding>
+      <OptimizeReferences>true</OptimizeReferences>
+    </Link>
+  </ItemDefinitionGroup>
+  <ItemGroup>
+    <ClCompile Include="..\..\src\common\tuklib_cpucores.c" />
+    <ClCompile Include="..\..\src\common\tuklib_physmem.c" />
+    <ClCompile Include="..\..\src\liblzma\check\check.c" />
+    <ClCompile Include="..\..\src\liblzma\check\crc32_fast.c" />
+    <ClCompile Include="..\..\src\liblzma\check\crc32_table.c" />
+    <ClCompile Include="..\..\src\liblzma\check\crc64_fast.c" />
+    <ClCompile Include="..\..\src\liblzma\check\crc64_table.c" />
+    <ClCompile Include="..\..\src\liblzma\check\sha256.c" />
+    <ClCompile Include="..\..\src\liblzma\common\alone_decoder.c" />
+    <ClCompile Include="..\..\src\liblzma\common\alone_encoder.c" />
+    <ClCompile Include="..\..\src\liblzma\common\auto_decoder.c" />
+    <ClCompile Include="..\..\src\liblzma\common\block_buffer_decoder.c" />
+    <ClCompile Include="..\..\src\liblzma\common\block_buffer_encoder.c" />
+    <ClCompile Include="..\..\src\liblzma\common\block_decoder.c" />
+    <ClCompile Include="..\..\src\liblzma\common\block_encoder.c" />
+    <ClCompile Include="..\..\src\liblzma\common\block_header_decoder.c" />
+    <ClCompile Include="..\..\src\liblzma\common\block_header_encoder.c" />
+    <ClCompile Include="..\..\src\liblzma\common\block_util.c" />
+    <ClCompile Include="..\..\src\liblzma\common\common.c" />
+    <ClCompile Include="..\..\src\liblzma\common\easy_buffer_encoder.c" />
+    <ClCompile Include="..\..\src\liblzma\common\easy_decoder_memusage.c" />
+    <ClCompile Include="..\..\src\liblzma\common\easy_encoder.c" />
+    <ClCompile Include="..\..\src\liblzma\common\easy_encoder_memusage.c" />
+    <ClCompile Include="..\..\src\liblzma\common\easy_preset.c" />
+    <ClCompile Include="..\..\src\liblzma\common\filter_buffer_decoder.c" />
+    <ClCompile Include="..\..\src\liblzma\common\filter_buffer_encoder.c" />
+    <ClCompile Include="..\..\src\liblzma\common\filter_common.c" />
+    <ClCompile Include="..\..\src\liblzma\common\filter_decoder.c" />
+    <ClCompile Include="..\..\src\liblzma\common\filter_encoder.c" />
+    <ClCompile Include="..\..\src\liblzma\common\filter_flags_decoder.c" />
+    <ClCompile Include="..\..\src\liblzma\common\filter_flags_encoder.c" />
+    <ClCompile Include="..\..\src\liblzma\common\hardware_cputhreads.c" />
+    <ClCompile Include="..\..\src\liblzma\common\hardware_physmem.c" />
+    <ClCompile Include="..\..\src\liblzma\common\index.c" />
+    <ClCompile Include="..\..\src\liblzma\common\index_decoder.c" />
+    <ClCompile Include="..\..\src\liblzma\common\index_encoder.c" />
+    <ClCompile Include="..\..\src\liblzma\common\index_hash.c" />
+    <ClCompile Include="..\..\src\liblzma\common\outqueue.c" />
+    <ClCompile Include="..\..\src\liblzma\common\stream_buffer_decoder.c" />
+    <ClCompile Include="..\..\src\liblzma\common\stream_buffer_encoder.c" />
+    <ClCompile Include="..\..\src\liblzma\common\stream_decoder.c" />
+    <ClCompile Include="..\..\src\liblzma\common\stream_encoder.c" />
+    <ClCompile Include="..\..\src\liblzma\common\stream_encoder_mt.c" />
+    <ClCompile Include="..\..\src\liblzma\common\stream_flags_common.c" />
+    <ClCompile Include="..\..\src\liblzma\common\stream_flags_decoder.c" />
+    <ClCompile Include="..\..\src\liblzma\common\stream_flags_encoder.c" />
+    <ClCompile Include="..\..\src\liblzma\common\vli_decoder.c" />
+    <ClCompile Include="..\..\src\liblzma\common\vli_encoder.c" />
+    <ClCompile Include="..\..\src\liblzma\common\vli_size.c" />
+    <ClCompile Include="..\..\src\liblzma\delta\delta_common.c" />
+    <ClCompile Include="..\..\src\liblzma\delta\delta_decoder.c" />
+    <ClCompile Include="..\..\src\liblzma\delta\delta_encoder.c" />
+    <ClCompile Include="..\..\src\liblzma\lzma\fastpos_table.c" />
+    <ClCompile Include="..\..\src\liblzma\lzma\lzma2_decoder.c" />
+    <ClCompile Include="..\..\src\liblzma\lzma\lzma2_encoder.c" />
+    <ClCompile Include="..\..\src\liblzma\lzma\lzma_decoder.c" />
+    <ClCompile Include="..\..\src\liblzma\lzma\lzma_encoder.c" />
+    <ClCompile Include="..\..\src\liblzma\lzma\lzma_encoder_optimum_fast.c" />
+    <ClCompile Include="..\..\src\liblzma\lzma\lzma_encoder_optimum_normal.c" />
+    <ClCompile Include="..\..\src\liblzma\lzma\lzma_encoder_presets.c" />
+    <ClCompile Include="..\..\src\liblzma\lz\lz_decoder.c" />
+    <ClCompile Include="..\..\src\liblzma\lz\lz_encoder.c" />
+    <ClCompile Include="..\..\src\liblzma\lz\lz_encoder_mf.c" />
+    <ClCompile Include="..\..\src\liblzma\rangecoder\price_table.c" />
+    <ClCompile Include="..\..\src\liblzma\simple\arm.c" />
+    <ClCompile Include="..\..\src\liblzma\simple\armthumb.c" />
+    <ClCompile Include="..\..\src\liblzma\simple\ia64.c" />
+    <ClCompile Include="..\..\src\liblzma\simple\powerpc.c" />
+    <ClCompile Include="..\..\src\liblzma\simple\simple_coder.c" />
+    <ClCompile Include="..\..\src\liblzma\simple\simple_decoder.c" />
+    <ClCompile Include="..\..\src\liblzma\simple\simple_encoder.c" />
+    <ClCompile Include="..\..\src\liblzma\simple\sparc.c" />
+    <ClCompile Include="..\..\src\liblzma\simple\x86.c" />
+  </ItemGroup>
+  <ItemGroup>
+    <ClInclude Include="..\..\src\common\mythread.h" />
+    <ClInclude Include="..\..\src\common\sysdefs.h" />
+    <ClInclude Include="..\..\src\common\tuklib_common.h" />
+    <ClInclude Include="..\..\src\common\tuklib_config.h" />
+    <ClInclude Include="..\..\src\common\tuklib_cpucores.h" />
+    <ClInclude Include="..\..\src\common\tuklib_integer.h" />
+    <ClInclude Include="..\..\src\common\tuklib_physmem.h" />
+    <ClInclude Include="..\..\src\liblzma\api\lzma.h" />
+    <ClInclude Include="..\..\src\liblzma\api\lzma\base.h" />
+    <ClInclude Include="..\..\src\liblzma\api\lzma\bcj.h" />
+    <ClInclude Include="..\..\src\liblzma\api\lzma\block.h" />
+    <ClInclude Include="..\..\src\liblzma\api\lzma\check.h" />
+    <ClInclude Include="..\..\src\liblzma\api\lzma\container.h" />
+    <ClInclude Include="..\..\src\liblzma\api\lzma\delta.h" />
+    <ClInclude Include="..\..\src\liblzma\api\lzma\filter.h" />
+    <ClInclude Include="..\..\src\liblzma\api\lzma\hardware.h" />
+    <ClInclude Include="..\..\src\liblzma\api\lzma\index.h" />
+    <ClInclude Include="..\..\src\liblzma\api\lzma\index_hash.h" />
+    <ClInclude Include="..\..\src\liblzma\api\lzma\lzma12.h" />
+    <ClInclude Include="..\..\src\liblzma\api\lzma\stream_flags.h" />
+    <ClInclude Include="..\..\src\liblzma\api\lzma\version.h" />
+    <ClInclude Include="..\..\src\liblzma\api\lzma\vli.h" />
+    <ClInclude Include="..\..\src\liblzma\check\check.h" />
+    <ClInclude Include="..\..\src\liblzma\check\crc32_table_be.h" />
+    <ClInclude Include="..\..\src\liblzma\check\crc32_table_le.h" />
+    <ClInclude Include="..\..\src\liblzma\check\crc64_table_be.h" />
+    <ClInclude Include="..\..\src\liblzma\check\crc64_table_le.h" />
+    <ClInclude Include="..\..\src\liblzma\check\crc_macros.h" />
+    <ClInclude Include="..\..\src\liblzma\common\alone_decoder.h" />
+    <ClInclude Include="..\..\src\liblzma\common\block_buffer_encoder.h" />
+    <ClInclude Include="..\..\src\liblzma\common\block_decoder.h" />
+    <ClInclude Include="..\..\src\liblzma\common\block_encoder.h" />
+    <ClInclude Include="..\..\src\liblzma\common\common.h" />
+    <ClInclude Include="..\..\src\liblzma\common\easy_preset.h" />
+    <ClInclude Include="..\..\src\liblzma\common\filter_common.h" />
+    <ClInclude Include="..\..\src\liblzma\common\filter_decoder.h" />
+    <ClInclude Include="..\..\src\liblzma\common\filter_encoder.h" />
+    <ClInclude Include="..\..\src\liblzma\common\index.h" />
+    <ClInclude Include="..\..\src\liblzma\common\index_encoder.h" />
+    <ClInclude Include="..\..\src\liblzma\common\memcmplen.h" />
+    <ClInclude Include="..\..\src\liblzma\common\outqueue.h" />
+    <ClInclude Include="..\..\src\liblzma\common\stream_decoder.h" />
+    <ClInclude Include="..\..\src\liblzma\common\stream_flags_common.h" />
+    <ClInclude Include="..\..\src\liblzma\delta\delta_common.h" />
+    <ClInclude Include="..\..\src\liblzma\delta\delta_decoder.h" />
+    <ClInclude Include="..\..\src\liblzma\delta\delta_encoder.h" />
+    <ClInclude Include="..\..\src\liblzma\delta\delta_private.h" />
+    <ClInclude Include="..\..\src\liblzma\lzma\fastpos.h" />
+    <ClInclude Include="..\..\src\liblzma\lzma\lzma2_decoder.h" />
+    <ClInclude Include="..\..\src\liblzma\lzma\lzma2_encoder.h" />
+    <ClInclude Include="..\..\src\liblzma\lzma\lzma_common.h" />
+    <ClInclude Include="..\..\src\liblzma\lzma\lzma_decoder.h" />
+    <ClInclude Include="..\..\src\liblzma\lzma\lzma_encoder.h" />
+    <ClInclude Include="..\..\src\liblzma\lzma\lzma_encoder_private.h" />
+    <ClInclude Include="..\..\src\liblzma\lz\lz_decoder.h" />
+    <ClInclude Include="..\..\src\liblzma\lz\lz_encoder.h" />
+    <ClInclude Include="..\..\src\liblzma\lz\lz_encoder_hash.h" />
+    <ClInclude Include="..\..\src\liblzma\lz\lz_encoder_hash_table.h" />
+    <ClInclude Include="..\..\src\liblzma\rangecoder\price.h" />
+    <ClInclude Include="..\..\src\liblzma\rangecoder\range_common.h" />
+    <ClInclude Include="..\..\src\liblzma\rangecoder\range_decoder.h" />
+    <ClInclude Include="..\..\src\liblzma\rangecoder\range_encoder.h" />
+    <ClInclude Include="..\..\src\liblzma\simple\simple_coder.h" />
+    <ClInclude Include="..\..\src\liblzma\simple\simple_decoder.h" />
+    <ClInclude Include="..\..\src\liblzma\simple\simple_encoder.h" />
+    <ClInclude Include="..\..\src\liblzma\simple\simple_private.h" />
+    <ClInclude Include="config.h" />
+  </ItemGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+  <ImportGroup Label="ExtensionTargets">
+  </ImportGroup>
+</Project>
\ No newline at end of file
diff --git a/windows/vs2019/liblzma_dll.vcxproj b/windows/vs2019/liblzma_dll.vcxproj
new file mode 100644 (file)
index 0000000..fc5ddbb
--- /dev/null
@@ -0,0 +1,384 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <ItemGroup Label="ProjectConfigurations">
+    <ProjectConfiguration Include="Debug|Win32">
+      <Configuration>Debug</Configuration>
+      <Platform>Win32</Platform>
+    </ProjectConfiguration>
+    <ProjectConfiguration Include="Debug|x64">
+      <Configuration>Debug</Configuration>
+      <Platform>x64</Platform>
+    </ProjectConfiguration>
+    <ProjectConfiguration Include="ReleaseMT|Win32">
+      <Configuration>ReleaseMT</Configuration>
+      <Platform>Win32</Platform>
+    </ProjectConfiguration>
+    <ProjectConfiguration Include="ReleaseMT|x64">
+      <Configuration>ReleaseMT</Configuration>
+      <Platform>x64</Platform>
+    </ProjectConfiguration>
+    <ProjectConfiguration Include="Release|Win32">
+      <Configuration>Release</Configuration>
+      <Platform>Win32</Platform>
+    </ProjectConfiguration>
+    <ProjectConfiguration Include="Release|x64">
+      <Configuration>Release</Configuration>
+      <Platform>x64</Platform>
+    </ProjectConfiguration>
+  </ItemGroup>
+  <PropertyGroup Label="Globals">
+    <ProjectGuid>{E0F247DB-EF12-4755-8DF9-F74BCD1348F7}</ProjectGuid>
+    <Keyword>Win32Proj</Keyword>
+    <WindowsTargetPlatformVersion>10.0</WindowsTargetPlatformVersion>
+  </PropertyGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
+    <ConfigurationType>DynamicLibrary</ConfigurationType>
+    <UseDebugLibraries>true</UseDebugLibraries>
+    <PlatformToolset>v142</PlatformToolset>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
+    <ConfigurationType>DynamicLibrary</ConfigurationType>
+    <UseDebugLibraries>true</UseDebugLibraries>
+    <PlatformToolset>v142</PlatformToolset>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
+    <ConfigurationType>DynamicLibrary</ConfigurationType>
+    <UseDebugLibraries>false</UseDebugLibraries>
+    <PlatformToolset>v142</PlatformToolset>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
+    <ConfigurationType>DynamicLibrary</ConfigurationType>
+    <UseDebugLibraries>false</UseDebugLibraries>
+    <PlatformToolset>v142</PlatformToolset>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='ReleaseMT|Win32'" Label="Configuration">
+    <ConfigurationType>DynamicLibrary</ConfigurationType>
+    <UseDebugLibraries>false</UseDebugLibraries>
+    <PlatformToolset>v142</PlatformToolset>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='ReleaseMT|x64'" Label="Configuration">
+    <ConfigurationType>DynamicLibrary</ConfigurationType>
+    <UseDebugLibraries>false</UseDebugLibraries>
+    <PlatformToolset>v142</PlatformToolset>
+  </PropertyGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+  <ImportGroup Label="ExtensionSettings">
+  </ImportGroup>
+  <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+  </ImportGroup>
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+  </ImportGroup>
+  <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+  </ImportGroup>
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+  </ImportGroup>
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='ReleaseMT|Win32'" Label="PropertySheets">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+  </ImportGroup>
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='ReleaseMT|x64'" Label="PropertySheets">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+  </ImportGroup>
+  <PropertyGroup Label="UserMacros" />
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+    <LinkIncremental>true</LinkIncremental>
+    <OutDir>$(SolutionDir)$(Configuration)\$(Platform)\$(ProjectName)\</OutDir>
+    <IntDir>$(Configuration)\$(Platform)\$(ProjectName)\</IntDir>
+    <TargetName>liblzma</TargetName>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+    <LinkIncremental>true</LinkIncremental>
+    <OutDir>$(SolutionDir)$(Configuration)\$(Platform)\$(ProjectName)\</OutDir>
+    <IntDir>$(Configuration)\$(Platform)\$(ProjectName)\</IntDir>
+    <TargetName>liblzma</TargetName>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+    <LinkIncremental>
+    </LinkIncremental>
+    <OutDir>$(SolutionDir)$(Configuration)\$(Platform)\$(ProjectName)\</OutDir>
+    <IntDir>$(Configuration)\$(Platform)\$(ProjectName)\</IntDir>
+    <TargetName>liblzma</TargetName>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+    <LinkIncremental />
+    <OutDir>$(SolutionDir)$(Configuration)\$(Platform)\$(ProjectName)\</OutDir>
+    <IntDir>$(Configuration)\$(Platform)\$(ProjectName)\</IntDir>
+    <TargetName>liblzma</TargetName>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='ReleaseMT|Win32'">
+    <LinkIncremental>
+    </LinkIncremental>
+    <OutDir>$(SolutionDir)$(Configuration)\$(Platform)\$(ProjectName)\</OutDir>
+    <IntDir>$(Configuration)\$(Platform)\$(ProjectName)\</IntDir>
+    <TargetName>liblzma</TargetName>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='ReleaseMT|x64'">
+    <LinkIncremental />
+    <OutDir>$(SolutionDir)$(Configuration)\$(Platform)\$(ProjectName)\</OutDir>
+    <IntDir>$(Configuration)\$(Platform)\$(ProjectName)\</IntDir>
+    <TargetName>liblzma</TargetName>
+  </PropertyGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+    <ClCompile>
+      <PreprocessorDefinitions>WIN32;HAVE_CONFIG_H;DLL_EXPORT;_DEBUG;_WINDOWS;_USRDLL;LIBLZMADLL_EXPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
+      <WarningLevel>Level3</WarningLevel>
+      <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+      <Optimization>Disabled</Optimization>
+      <AdditionalIncludeDirectories>./;../../src/liblzma/common;../../src/common;../../src/liblzma/api;../../src/liblzma/check;../../src/liblzma/delta;../../src/liblzma/lz;../../src/liblzma/lzma;../../src/liblzma/rangecoder;../../src/liblzma/simple</AdditionalIncludeDirectories>
+    </ClCompile>
+    <Link>
+      <TargetMachine>MachineX86</TargetMachine>
+      <GenerateDebugInformation>true</GenerateDebugInformation>
+      <SubSystem>Windows</SubSystem>
+    </Link>
+    <ResourceCompile>
+      <AdditionalIncludeDirectories>./;../../src/liblzma/common;../../src/common;../../src/liblzma/api;</AdditionalIncludeDirectories>
+    </ResourceCompile>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+    <ClCompile>
+      <PreprocessorDefinitions>WIN32;HAVE_CONFIG_H;DLL_EXPORT;_DEBUG;_WINDOWS;_USRDLL;LIBLZMADLL_EXPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
+      <WarningLevel>Level3</WarningLevel>
+      <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+      <Optimization>Disabled</Optimization>
+      <AdditionalIncludeDirectories>./;../../src/liblzma/common;../../src/common;../../src/liblzma/api;../../src/liblzma/check;../../src/liblzma/delta;../../src/liblzma/lz;../../src/liblzma/lzma;../../src/liblzma/rangecoder;../../src/liblzma/simple</AdditionalIncludeDirectories>
+    </ClCompile>
+    <Link>
+      <GenerateDebugInformation>true</GenerateDebugInformation>
+      <SubSystem>Windows</SubSystem>
+    </Link>
+    <ResourceCompile>
+      <AdditionalIncludeDirectories>./;../../src/liblzma/common;../../src/common;../../src/liblzma/api;</AdditionalIncludeDirectories>
+    </ResourceCompile>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+    <ClCompile>
+      <PreprocessorDefinitions>WIN32;HAVE_CONFIG_H;DLL_EXPORT;NDEBUG;_WINDOWS;_USRDLL;LIBLZMADLL_EXPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+      <WarningLevel>Level3</WarningLevel>
+      <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+      <AdditionalIncludeDirectories>./;../../src/liblzma/common;../../src/common;../../src/liblzma/api;../../src/liblzma/check;../../src/liblzma/delta;../../src/liblzma/lz;../../src/liblzma/lzma;../../src/liblzma/rangecoder;../../src/liblzma/simple</AdditionalIncludeDirectories>
+    </ClCompile>
+    <Link>
+      <TargetMachine>MachineX86</TargetMachine>
+      <GenerateDebugInformation>true</GenerateDebugInformation>
+      <SubSystem>Windows</SubSystem>
+      <EnableCOMDATFolding>true</EnableCOMDATFolding>
+      <OptimizeReferences>true</OptimizeReferences>
+    </Link>
+    <ResourceCompile>
+      <AdditionalIncludeDirectories>./;../../src/liblzma/common;../../src/common;../../src/liblzma/api;</AdditionalIncludeDirectories>
+    </ResourceCompile>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+    <ClCompile>
+      <PreprocessorDefinitions>WIN32;HAVE_CONFIG_H;DLL_EXPORT;NDEBUG;_WINDOWS;_USRDLL;LIBLZMADLL_EXPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+      <WarningLevel>Level3</WarningLevel>
+      <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+      <AdditionalIncludeDirectories>./;../../src/liblzma/common;../../src/common;../../src/liblzma/api;../../src/liblzma/check;../../src/liblzma/delta;../../src/liblzma/lz;../../src/liblzma/lzma;../../src/liblzma/rangecoder;../../src/liblzma/simple</AdditionalIncludeDirectories>
+    </ClCompile>
+    <Link>
+      <GenerateDebugInformation>true</GenerateDebugInformation>
+      <SubSystem>Windows</SubSystem>
+      <EnableCOMDATFolding>true</EnableCOMDATFolding>
+      <OptimizeReferences>true</OptimizeReferences>
+    </Link>
+    <ResourceCompile>
+      <AdditionalIncludeDirectories>./;../../src/liblzma/common;../../src/common;../../src/liblzma/api;</AdditionalIncludeDirectories>
+    </ResourceCompile>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='ReleaseMT|Win32'">
+    <ClCompile>
+      <PreprocessorDefinitions>WIN32;HAVE_CONFIG_H;DLL_EXPORT;NDEBUG;_WINDOWS;_USRDLL;LIBLZMADLL_EXPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <RuntimeLibrary>MultiThreaded</RuntimeLibrary>
+      <WarningLevel>Level3</WarningLevel>
+      <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+      <AdditionalIncludeDirectories>./;../../src/liblzma/common;../../src/common;../../src/liblzma/api;../../src/liblzma/check;../../src/liblzma/delta;../../src/liblzma/lz;../../src/liblzma/lzma;../../src/liblzma/rangecoder;../../src/liblzma/simple</AdditionalIncludeDirectories>
+    </ClCompile>
+    <Link>
+      <TargetMachine>MachineX86</TargetMachine>
+      <GenerateDebugInformation>true</GenerateDebugInformation>
+      <SubSystem>Windows</SubSystem>
+      <EnableCOMDATFolding>true</EnableCOMDATFolding>
+      <OptimizeReferences>true</OptimizeReferences>
+    </Link>
+    <ResourceCompile>
+      <AdditionalIncludeDirectories>./;../../src/liblzma/common;../../src/common;../../src/liblzma/api;</AdditionalIncludeDirectories>
+    </ResourceCompile>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='ReleaseMT|x64'">
+    <ClCompile>
+      <PreprocessorDefinitions>WIN32;HAVE_CONFIG_H;DLL_EXPORT;NDEBUG;_WINDOWS;_USRDLL;LIBLZMADLL_EXPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <RuntimeLibrary>MultiThreaded</RuntimeLibrary>
+      <WarningLevel>Level3</WarningLevel>
+      <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+      <AdditionalIncludeDirectories>./;../../src/liblzma/common;../../src/common;../../src/liblzma/api;../../src/liblzma/check;../../src/liblzma/delta;../../src/liblzma/lz;../../src/liblzma/lzma;../../src/liblzma/rangecoder;../../src/liblzma/simple</AdditionalIncludeDirectories>
+    </ClCompile>
+    <Link>
+      <GenerateDebugInformation>true</GenerateDebugInformation>
+      <SubSystem>Windows</SubSystem>
+      <EnableCOMDATFolding>true</EnableCOMDATFolding>
+      <OptimizeReferences>true</OptimizeReferences>
+    </Link>
+    <ResourceCompile>
+      <AdditionalIncludeDirectories>./;../../src/liblzma/common;../../src/common;../../src/liblzma/api;</AdditionalIncludeDirectories>
+    </ResourceCompile>
+  </ItemDefinitionGroup>
+  <ItemGroup>
+    <ClCompile Include="..\..\src\common\tuklib_cpucores.c" />
+    <ClCompile Include="..\..\src\common\tuklib_physmem.c" />
+    <ClCompile Include="..\..\src\liblzma\check\check.c" />
+    <ClCompile Include="..\..\src\liblzma\check\crc32_fast.c" />
+    <ClCompile Include="..\..\src\liblzma\check\crc32_table.c" />
+    <ClCompile Include="..\..\src\liblzma\check\crc64_fast.c" />
+    <ClCompile Include="..\..\src\liblzma\check\crc64_table.c" />
+    <ClCompile Include="..\..\src\liblzma\check\sha256.c" />
+    <ClCompile Include="..\..\src\liblzma\common\alone_decoder.c" />
+    <ClCompile Include="..\..\src\liblzma\common\alone_encoder.c" />
+    <ClCompile Include="..\..\src\liblzma\common\auto_decoder.c" />
+    <ClCompile Include="..\..\src\liblzma\common\block_buffer_decoder.c" />
+    <ClCompile Include="..\..\src\liblzma\common\block_buffer_encoder.c" />
+    <ClCompile Include="..\..\src\liblzma\common\block_decoder.c" />
+    <ClCompile Include="..\..\src\liblzma\common\block_encoder.c" />
+    <ClCompile Include="..\..\src\liblzma\common\block_header_decoder.c" />
+    <ClCompile Include="..\..\src\liblzma\common\block_header_encoder.c" />
+    <ClCompile Include="..\..\src\liblzma\common\block_util.c" />
+    <ClCompile Include="..\..\src\liblzma\common\common.c" />
+    <ClCompile Include="..\..\src\liblzma\common\easy_buffer_encoder.c" />
+    <ClCompile Include="..\..\src\liblzma\common\easy_decoder_memusage.c" />
+    <ClCompile Include="..\..\src\liblzma\common\easy_encoder.c" />
+    <ClCompile Include="..\..\src\liblzma\common\easy_encoder_memusage.c" />
+    <ClCompile Include="..\..\src\liblzma\common\easy_preset.c" />
+    <ClCompile Include="..\..\src\liblzma\common\filter_buffer_decoder.c" />
+    <ClCompile Include="..\..\src\liblzma\common\filter_buffer_encoder.c" />
+    <ClCompile Include="..\..\src\liblzma\common\filter_common.c" />
+    <ClCompile Include="..\..\src\liblzma\common\filter_decoder.c" />
+    <ClCompile Include="..\..\src\liblzma\common\filter_encoder.c" />
+    <ClCompile Include="..\..\src\liblzma\common\filter_flags_decoder.c" />
+    <ClCompile Include="..\..\src\liblzma\common\filter_flags_encoder.c" />
+    <ClCompile Include="..\..\src\liblzma\common\hardware_cputhreads.c" />
+    <ClCompile Include="..\..\src\liblzma\common\hardware_physmem.c" />
+    <ClCompile Include="..\..\src\liblzma\common\index.c" />
+    <ClCompile Include="..\..\src\liblzma\common\index_decoder.c" />
+    <ClCompile Include="..\..\src\liblzma\common\index_encoder.c" />
+    <ClCompile Include="..\..\src\liblzma\common\index_hash.c" />
+    <ClCompile Include="..\..\src\liblzma\common\outqueue.c" />
+    <ClCompile Include="..\..\src\liblzma\common\stream_buffer_decoder.c" />
+    <ClCompile Include="..\..\src\liblzma\common\stream_buffer_encoder.c" />
+    <ClCompile Include="..\..\src\liblzma\common\stream_decoder.c" />
+    <ClCompile Include="..\..\src\liblzma\common\stream_encoder.c" />
+    <ClCompile Include="..\..\src\liblzma\common\stream_encoder_mt.c" />
+    <ClCompile Include="..\..\src\liblzma\common\stream_flags_common.c" />
+    <ClCompile Include="..\..\src\liblzma\common\stream_flags_decoder.c" />
+    <ClCompile Include="..\..\src\liblzma\common\stream_flags_encoder.c" />
+    <ClCompile Include="..\..\src\liblzma\common\vli_decoder.c" />
+    <ClCompile Include="..\..\src\liblzma\common\vli_encoder.c" />
+    <ClCompile Include="..\..\src\liblzma\common\vli_size.c" />
+    <ClCompile Include="..\..\src\liblzma\delta\delta_common.c" />
+    <ClCompile Include="..\..\src\liblzma\delta\delta_decoder.c" />
+    <ClCompile Include="..\..\src\liblzma\delta\delta_encoder.c" />
+    <ClCompile Include="..\..\src\liblzma\lzma\fastpos_table.c" />
+    <ClCompile Include="..\..\src\liblzma\lzma\lzma2_decoder.c" />
+    <ClCompile Include="..\..\src\liblzma\lzma\lzma2_encoder.c" />
+    <ClCompile Include="..\..\src\liblzma\lzma\lzma_decoder.c" />
+    <ClCompile Include="..\..\src\liblzma\lzma\lzma_encoder.c" />
+    <ClCompile Include="..\..\src\liblzma\lzma\lzma_encoder_optimum_fast.c" />
+    <ClCompile Include="..\..\src\liblzma\lzma\lzma_encoder_optimum_normal.c" />
+    <ClCompile Include="..\..\src\liblzma\lzma\lzma_encoder_presets.c" />
+    <ClCompile Include="..\..\src\liblzma\lz\lz_decoder.c" />
+    <ClCompile Include="..\..\src\liblzma\lz\lz_encoder.c" />
+    <ClCompile Include="..\..\src\liblzma\lz\lz_encoder_mf.c" />
+    <ClCompile Include="..\..\src\liblzma\rangecoder\price_table.c" />
+    <ClCompile Include="..\..\src\liblzma\simple\arm.c" />
+    <ClCompile Include="..\..\src\liblzma\simple\armthumb.c" />
+    <ClCompile Include="..\..\src\liblzma\simple\ia64.c" />
+    <ClCompile Include="..\..\src\liblzma\simple\powerpc.c" />
+    <ClCompile Include="..\..\src\liblzma\simple\simple_coder.c" />
+    <ClCompile Include="..\..\src\liblzma\simple\simple_decoder.c" />
+    <ClCompile Include="..\..\src\liblzma\simple\simple_encoder.c" />
+    <ClCompile Include="..\..\src\liblzma\simple\sparc.c" />
+    <ClCompile Include="..\..\src\liblzma\simple\x86.c" />
+  </ItemGroup>
+  <ItemGroup>
+    <ClInclude Include="..\..\src\common\mythread.h" />
+    <ClInclude Include="..\..\src\common\sysdefs.h" />
+    <ClInclude Include="..\..\src\common\tuklib_common.h" />
+    <ClInclude Include="..\..\src\common\tuklib_config.h" />
+    <ClInclude Include="..\..\src\common\tuklib_cpucores.h" />
+    <ClInclude Include="..\..\src\common\tuklib_integer.h" />
+    <ClInclude Include="..\..\src\common\tuklib_physmem.h" />
+    <ClInclude Include="..\..\src\liblzma\api\lzma.h" />
+    <ClInclude Include="..\..\src\liblzma\api\lzma\base.h" />
+    <ClInclude Include="..\..\src\liblzma\api\lzma\bcj.h" />
+    <ClInclude Include="..\..\src\liblzma\api\lzma\block.h" />
+    <ClInclude Include="..\..\src\liblzma\api\lzma\check.h" />
+    <ClInclude Include="..\..\src\liblzma\api\lzma\container.h" />
+    <ClInclude Include="..\..\src\liblzma\api\lzma\delta.h" />
+    <ClInclude Include="..\..\src\liblzma\api\lzma\filter.h" />
+    <ClInclude Include="..\..\src\liblzma\api\lzma\hardware.h" />
+    <ClInclude Include="..\..\src\liblzma\api\lzma\index.h" />
+    <ClInclude Include="..\..\src\liblzma\api\lzma\index_hash.h" />
+    <ClInclude Include="..\..\src\liblzma\api\lzma\lzma12.h" />
+    <ClInclude Include="..\..\src\liblzma\api\lzma\stream_flags.h" />
+    <ClInclude Include="..\..\src\liblzma\api\lzma\version.h" />
+    <ClInclude Include="..\..\src\liblzma\api\lzma\vli.h" />
+    <ClInclude Include="..\..\src\liblzma\check\check.h" />
+    <ClInclude Include="..\..\src\liblzma\check\crc32_table_be.h" />
+    <ClInclude Include="..\..\src\liblzma\check\crc32_table_le.h" />
+    <ClInclude Include="..\..\src\liblzma\check\crc64_table_be.h" />
+    <ClInclude Include="..\..\src\liblzma\check\crc64_table_le.h" />
+    <ClInclude Include="..\..\src\liblzma\check\crc_macros.h" />
+    <ClInclude Include="..\..\src\liblzma\common\alone_decoder.h" />
+    <ClInclude Include="..\..\src\liblzma\common\block_buffer_encoder.h" />
+    <ClInclude Include="..\..\src\liblzma\common\block_decoder.h" />
+    <ClInclude Include="..\..\src\liblzma\common\block_encoder.h" />
+    <ClInclude Include="..\..\src\liblzma\common\common.h" />
+    <ClInclude Include="..\..\src\liblzma\common\easy_preset.h" />
+    <ClInclude Include="..\..\src\liblzma\common\filter_common.h" />
+    <ClInclude Include="..\..\src\liblzma\common\filter_decoder.h" />
+    <ClInclude Include="..\..\src\liblzma\common\filter_encoder.h" />
+    <ClInclude Include="..\..\src\liblzma\common\index.h" />
+    <ClInclude Include="..\..\src\liblzma\common\index_encoder.h" />
+    <ClInclude Include="..\..\src\liblzma\common\memcmplen.h" />
+    <ClInclude Include="..\..\src\liblzma\common\outqueue.h" />
+    <ClInclude Include="..\..\src\liblzma\common\stream_decoder.h" />
+    <ClInclude Include="..\..\src\liblzma\common\stream_flags_common.h" />
+    <ClInclude Include="..\..\src\liblzma\delta\delta_common.h" />
+    <ClInclude Include="..\..\src\liblzma\delta\delta_decoder.h" />
+    <ClInclude Include="..\..\src\liblzma\delta\delta_encoder.h" />
+    <ClInclude Include="..\..\src\liblzma\delta\delta_private.h" />
+    <ClInclude Include="..\..\src\liblzma\lzma\fastpos.h" />
+    <ClInclude Include="..\..\src\liblzma\lzma\lzma2_decoder.h" />
+    <ClInclude Include="..\..\src\liblzma\lzma\lzma2_encoder.h" />
+    <ClInclude Include="..\..\src\liblzma\lzma\lzma_common.h" />
+    <ClInclude Include="..\..\src\liblzma\lzma\lzma_decoder.h" />
+    <ClInclude Include="..\..\src\liblzma\lzma\lzma_encoder.h" />
+    <ClInclude Include="..\..\src\liblzma\lzma\lzma_encoder_private.h" />
+    <ClInclude Include="..\..\src\liblzma\lz\lz_decoder.h" />
+    <ClInclude Include="..\..\src\liblzma\lz\lz_encoder.h" />
+    <ClInclude Include="..\..\src\liblzma\lz\lz_encoder_hash.h" />
+    <ClInclude Include="..\..\src\liblzma\lz\lz_encoder_hash_table.h" />
+    <ClInclude Include="..\..\src\liblzma\rangecoder\price.h" />
+    <ClInclude Include="..\..\src\liblzma\rangecoder\range_common.h" />
+    <ClInclude Include="..\..\src\liblzma\rangecoder\range_decoder.h" />
+    <ClInclude Include="..\..\src\liblzma\rangecoder\range_encoder.h" />
+    <ClInclude Include="..\..\src\liblzma\simple\simple_coder.h" />
+    <ClInclude Include="..\..\src\liblzma\simple\simple_decoder.h" />
+    <ClInclude Include="..\..\src\liblzma\simple\simple_encoder.h" />
+    <ClInclude Include="..\..\src\liblzma\simple\simple_private.h" />
+    <ClInclude Include="config.h" />
+  </ItemGroup>
+  <ItemGroup>
+    <ResourceCompile Include="..\..\src\liblzma\liblzma_w32res.rc" />
+  </ItemGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+  <ImportGroup Label="ExtensionTargets">
+  </ImportGroup>
+</Project>
\ No newline at end of file
diff --git a/windows/vs2019/xz_win.sln b/windows/vs2019/xz_win.sln
new file mode 100644 (file)
index 0000000..c65cd3e
--- /dev/null
@@ -0,0 +1,51 @@
+
+Microsoft Visual Studio Solution File, Format Version 12.00
+# Visual Studio Version 16
+VisualStudioVersion = 16.0.28803.202
+MinimumVisualStudioVersion = 10.0.40219.1
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "liblzma", "liblzma.vcxproj", "{12728250-16EC-4DC6-94D7-E21DD88947F8}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "liblzma_dll", "liblzma_dll.vcxproj", "{E0F247DB-EF12-4755-8DF9-F74BCD1348F7}"
+EndProject
+Global
+       GlobalSection(SolutionConfigurationPlatforms) = preSolution
+               Debug|Win32 = Debug|Win32
+               Debug|x64 = Debug|x64
+               Release|Win32 = Release|Win32
+               Release|x64 = Release|x64
+               ReleaseMT|Win32 = ReleaseMT|Win32
+               ReleaseMT|x64 = ReleaseMT|x64
+       EndGlobalSection
+       GlobalSection(ProjectConfigurationPlatforms) = postSolution
+               {12728250-16EC-4DC6-94D7-E21DD88947F8}.Debug|Win32.ActiveCfg = Debug|Win32
+               {12728250-16EC-4DC6-94D7-E21DD88947F8}.Debug|Win32.Build.0 = Debug|Win32
+               {12728250-16EC-4DC6-94D7-E21DD88947F8}.Debug|x64.ActiveCfg = Debug|x64
+               {12728250-16EC-4DC6-94D7-E21DD88947F8}.Debug|x64.Build.0 = Debug|x64
+               {12728250-16EC-4DC6-94D7-E21DD88947F8}.Release|Win32.ActiveCfg = Release|Win32
+               {12728250-16EC-4DC6-94D7-E21DD88947F8}.Release|Win32.Build.0 = Release|Win32
+               {12728250-16EC-4DC6-94D7-E21DD88947F8}.Release|x64.ActiveCfg = Release|x64
+               {12728250-16EC-4DC6-94D7-E21DD88947F8}.Release|x64.Build.0 = Release|x64
+               {12728250-16EC-4DC6-94D7-E21DD88947F8}.ReleaseMT|Win32.ActiveCfg = ReleaseMT|Win32
+               {12728250-16EC-4DC6-94D7-E21DD88947F8}.ReleaseMT|Win32.Build.0 = ReleaseMT|Win32
+               {12728250-16EC-4DC6-94D7-E21DD88947F8}.ReleaseMT|x64.ActiveCfg = ReleaseMT|x64
+               {12728250-16EC-4DC6-94D7-E21DD88947F8}.ReleaseMT|x64.Build.0 = ReleaseMT|x64
+               {E0F247DB-EF12-4755-8DF9-F74BCD1348F7}.Debug|Win32.ActiveCfg = Debug|Win32
+               {E0F247DB-EF12-4755-8DF9-F74BCD1348F7}.Debug|Win32.Build.0 = Debug|Win32
+               {E0F247DB-EF12-4755-8DF9-F74BCD1348F7}.Debug|x64.ActiveCfg = Debug|x64
+               {E0F247DB-EF12-4755-8DF9-F74BCD1348F7}.Debug|x64.Build.0 = Debug|x64
+               {E0F247DB-EF12-4755-8DF9-F74BCD1348F7}.Release|Win32.ActiveCfg = Release|Win32
+               {E0F247DB-EF12-4755-8DF9-F74BCD1348F7}.Release|Win32.Build.0 = Release|Win32
+               {E0F247DB-EF12-4755-8DF9-F74BCD1348F7}.Release|x64.ActiveCfg = Release|x64
+               {E0F247DB-EF12-4755-8DF9-F74BCD1348F7}.Release|x64.Build.0 = Release|x64
+               {E0F247DB-EF12-4755-8DF9-F74BCD1348F7}.ReleaseMT|Win32.ActiveCfg = ReleaseMT|Win32
+               {E0F247DB-EF12-4755-8DF9-F74BCD1348F7}.ReleaseMT|Win32.Build.0 = ReleaseMT|Win32
+               {E0F247DB-EF12-4755-8DF9-F74BCD1348F7}.ReleaseMT|x64.ActiveCfg = ReleaseMT|x64
+               {E0F247DB-EF12-4755-8DF9-F74BCD1348F7}.ReleaseMT|x64.Build.0 = ReleaseMT|x64
+       EndGlobalSection
+       GlobalSection(SolutionProperties) = preSolution
+               HideSolutionNode = FALSE
+       EndGlobalSection
+       GlobalSection(ExtensibilityGlobals) = postSolution
+               SolutionGuid = {78887FAE-FC02-4B67-A8DB-DC7863496039}
+       EndGlobalSection
+EndGlobal