aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMartin Matuska <mm@FreeBSD.org>2011-07-11 13:10:34 +0000
committerMartin Matuska <mm@FreeBSD.org>2011-07-11 13:10:34 +0000
commit01cf4e6286ee76f1fe6be0766968d5eb5170f040 (patch)
treeb691cbad464efeafe031d19275e3db335851fafc
parent92129d14e194b551f83a0a4d123d2c29d7b9c44b (diff)
downloadsrc-01cf4e6286ee76f1fe6be0766968d5eb5170f040.tar.gz
src-01cf4e6286ee76f1fe6be0766968d5eb5170f040.zip
Update vendor/xz from v5.0 branch (post-5.0.3)
Git commit: edf339227a966f24aebe1845fcca9429b8f6e318
Notes
Notes: svn path=/vendor/xz/dist/; revision=223934
-rw-r--r--ChangeLog325
-rw-r--r--THANKS9
-rw-r--r--po/LINGUAS2
-rw-r--r--po/fr.po864
-rw-r--r--po/it.po333
-rw-r--r--po/pl.po825
-rw-r--r--src/common/tuklib_open_stdxxx.c4
-rw-r--r--src/liblzma/api/lzma/block.h1
-rw-r--r--src/liblzma/api/lzma/container.h12
-rw-r--r--src/liblzma/api/lzma/filter.h8
-rw-r--r--src/liblzma/api/lzma/version.h2
-rw-r--r--src/liblzma/common/alone_decoder.c2
-rw-r--r--src/liblzma/common/alone_encoder.c4
-rw-r--r--src/liblzma/common/block_buffer_encoder.c18
-rw-r--r--src/liblzma/common/block_encoder.c7
-rw-r--r--src/liblzma/common/common.c2
-rw-r--r--src/liblzma/common/common.h2
-rw-r--r--src/liblzma/common/filter_common.c6
-rw-r--r--src/liblzma/common/index.c7
-rw-r--r--src/liblzma/common/index_decoder.c9
-rw-r--r--src/liblzma/common/index_encoder.c11
-rw-r--r--src/liblzma/common/stream_buffer_encoder.c23
-rw-r--r--src/liblzma/common/stream_encoder.c2
-rw-r--r--src/liblzma/delta/delta_encoder.c2
-rw-r--r--src/liblzma/lz/lz_decoder.c2
-rw-r--r--src/liblzma/lz/lz_encoder.c2
-rw-r--r--src/liblzma/lz/lz_encoder_hash.h2
-rw-r--r--src/liblzma/lzma/lzma2_decoder.c8
-rw-r--r--src/liblzma/lzma/lzma2_encoder.c2
-rw-r--r--src/liblzma/simple/arm.c2
-rw-r--r--src/liblzma/simple/armthumb.c2
-rw-r--r--src/liblzma/simple/ia64.c2
-rw-r--r--src/liblzma/simple/powerpc.c2
-rw-r--r--src/liblzma/simple/simple_coder.c2
-rw-r--r--src/liblzma/simple/sparc.c2
-rw-r--r--src/lzmainfo/lzmainfo.c4
-rw-r--r--src/xz/coder.c2
-rw-r--r--src/xz/file_io.c2
-rw-r--r--src/xz/hardware.h2
-rw-r--r--src/xz/list.c21
-rw-r--r--src/xz/message.c8
-rw-r--r--src/xz/message.h18
-rw-r--r--src/xz/options.c6
-rw-r--r--src/xz/signals.c2
-rw-r--r--src/xz/suffix.c53
-rw-r--r--src/xz/util.h6
-rw-r--r--src/xz/xz.12
-rw-r--r--src/xzdec/xzdec.c6
48 files changed, 2372 insertions, 268 deletions
diff --git a/ChangeLog b/ChangeLog
index 7d5406c8a7eb..07464225e649 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,328 @@
+commit edf339227a966f24aebe1845fcca9429b8f6e318
+Author: Anders F Bjorklund <afb@users.sourceforge.net>
+Date: Fri Nov 5 12:56:11 2010 +0100
+
+ add build script for macosx universal
+
+commit 7fcc6334ea8923550ba6b5347ff99dc8432234b0
+Author: Lasse Collin <lasse.collin@tukaani.org>
+Date: Thu Jun 16 12:15:29 2011 +0300
+
+ liblzma: Remove unneeded semicolon.
+
+commit 631f4d3ae6adfda84d1a110781d9402c12e16cfc
+Author: Lasse Collin <lasse.collin@tukaani.org>
+Date: Sat May 28 16:43:26 2011 +0300
+
+ Don't call close(-1) in tuklib_open_stdxxx() on error.
+
+ Thanks to Jim Meyering.
+
+commit c89faf4c9e5970e7f7f8a25521ed9aa62d1a2d9a
+Author: Lasse Collin <lasse.collin@tukaani.org>
+Date: Sat May 28 09:47:56 2011 +0300
+
+ Translations: Update Italian translation.
+
+ Thanks to Milo Casagrande.
+
+commit 6fe2fc9b6ab5bf6848140823e9536370834f42fb
+Author: Lasse Collin <lasse.collin@tukaani.org>
+Date: Sat May 28 08:46:04 2011 +0300
+
+ Tests: Add a test file for the bug in the previous commit.
+
+commit 6c4d4db2bc8d8b682bd927144d37daa2ab21a6d6
+Author: Lasse Collin <lasse.collin@tukaani.org>
+Date: Fri May 27 22:25:44 2011 +0300
+
+ xz: Fix error handling in xz -lvv.
+
+ It could do an invalid free() and read past the end
+ of the uninitialized filters array.
+
+commit 844f84fcad9670c543550edf7c7e42630c8f7715
+Author: Lasse Collin <lasse.collin@tukaani.org>
+Date: Fri May 27 22:09:49 2011 +0300
+
+ liblzma: Handle allocation failures correctly in lzma_index_init().
+
+ Thanks to Jim Meyering.
+
+commit 240e8b9791df597063a3b68d04ffcb3aa4f2de6a
+Author: Lasse Collin <lasse.collin@tukaani.org>
+Date: Mon May 23 18:30:30 2011 +0300
+
+ Build: Set GZIP_ENV=-9n in top-level Makefile.am.
+
+commit e32cb264ea72a4459810f30abad70dae5a4fa17d
+Author: Lasse Collin <lasse.collin@tukaani.org>
+Date: Sat May 21 16:59:22 2011 +0300
+
+ Bump version and soname for 5.0.3.
+
+commit 65cff45f8fd1c250491557157cce0f5f38481082
+Author: Lasse Collin <lasse.collin@tukaani.org>
+Date: Sat May 21 16:56:53 2011 +0300
+
+ Update NEWS for 5.0.3.
+
+commit 316c67ffdae1f811ac95e838d5290a013bff4ca7
+Author: Lasse Collin <lasse.collin@tukaani.org>
+Date: Sat May 21 16:28:44 2011 +0300
+
+ Add French translation.
+
+ It is known that the BCJ filter --help text is only
+ partially translated.
+
+commit 1931175eea6d09c0845d6e8e334a7333647f11c0
+Author: Lasse Collin <lasse.collin@tukaani.org>
+Date: Sat May 21 15:12:10 2011 +0300
+
+ xz: Translate also the string used to print the program name.
+
+ French needs a space before a colon, e.g. "xz : foo error".
+
+commit 841dc1f891b48b23f84c0f0e0c86c7c4e4bdcdf5
+Author: Lasse Collin <lasse.collin@tukaani.org>
+Date: Tue May 17 12:26:28 2011 +0300
+
+ Update THANKS.
+
+commit 0f7e2d36240ebf1159d5fb85d8cd7422337a0d3f
+Author: Lasse Collin <lasse.collin@tukaani.org>
+Date: Tue May 17 12:21:33 2011 +0300
+
+ Update INSTALL with a note about linker problem on OpenSolaris x86.
+
+commit 793d857e01e1725f16fc0c8af8172c91a9e38617
+Author: Lasse Collin <lasse.collin@tukaani.org>
+Date: Tue May 17 12:01:37 2011 +0300
+
+ Build: Fix initialization of enable_check_* variables in configure.ac.
+
+ This doesn't matter much in practice since it is unlikely
+ that anyone would have such environment variable names.
+
+ Thanks to Wim Lewis.
+
+commit afcff45cee04c5c7d9c333504046ffb63d1418b5
+Author: Lasse Collin <lasse.collin@tukaani.org>
+Date: Tue May 17 11:54:38 2011 +0300
+
+ Add underscores to attributes (__attribute((__foo__))).
+
+commit 22159c6ba2300a006f2e46ce85ae132e2d2f7d57
+Author: Lasse Collin <lasse.collin@tukaani.org>
+Date: Mon Apr 18 19:35:49 2011 +0300
+
+ Update THANKS.
+
+commit 5e3499059515033d1ce44b6fb0fa49183c7ac633
+Author: Martin Väth <vaeth@mathematik.uni-wuerzburg.de>
+Date: Fri Apr 15 04:54:49 2011 -0400
+
+ xzgrep: fix typo in $0 parsing
+
+ Reported-by: Diego Elio Pettenò <flameeyes@gentoo.org>
+ Signed-off-by: Martin Väth <vaeth@mathematik.uni-wuerzburg.de>
+ Signed-off-by: Mike Frysinger <vapier@gentoo.org>
+
+commit 1125611b9b8d4a209b6a73d2c76e1b39c065972a
+Author: Lasse Collin <lasse.collin@tukaani.org>
+Date: Tue Apr 12 11:59:49 2011 +0300
+
+ Remove doubled words from documentation and comments.
+
+ Spot candidates by running these commands:
+ git ls-files |xargs perl -0777 -n \
+ -e 'while (/\b(then?|[iao]n|i[fst]|but|f?or|at|and|[dt]o)\s+\1\b/gims)' \
+ -e '{$n=($` =~ tr/\n/\n/ + 1); ($v=$&)=~s/\n/\\n/g; print "$ARGV:$n:$v\n"}'
+
+ Thanks to Jim Meyering for the original patch.
+
+commit 3f8fa53837bae8b44f3addf19923e26401336c3d
+Author: Lasse Collin <lasse.collin@tukaani.org>
+Date: Mon Apr 11 21:04:13 2011 +0300
+
+ liblzma: Document lzma_easy_(enc|dec)oder_memusage() better too.
+
+commit 320d734c20d0776e3eb80f6b5984ddeb494715b5
+Author: Lasse Collin <lasse.collin@tukaani.org>
+Date: Mon Apr 11 20:59:07 2011 +0300
+
+ liblzma: Document lzma_raw_(enc|dec)oder_memusage() better.
+
+ It didn't mention the return value that is used if
+ an error occurs.
+
+commit 2ee4edeffc8d9734bf68230df31b20ac6a94c9b5
+Author: Lasse Collin <lasse.collin@tukaani.org>
+Date: Mon Apr 11 13:59:50 2011 +0300
+
+ liblzma: Don't create an empty Block in lzma_stream_buffer_encode().
+
+ Empty Block was created if the input buffer was empty.
+ Empty Block wastes a few bytes of space, but more importantly
+ it triggers a bug in XZ Utils 5.0.1 and older when trying
+ to decompress such a file. 5.0.1 and older consider such
+ files to be corrupt. I thought that no encoder creates empty
+ Blocks when releasing 5.0.2 but I was wrong.
+
+commit 73f56fb87d54091d0c4fd22d70e6f042902e3b63
+Author: Lasse Collin <lasse.collin@tukaani.org>
+Date: Mon Apr 11 13:28:40 2011 +0300
+
+ liblzma: Fix API docs to mention LZMA_UNSUPPORTED_CHECK.
+
+ This return value was missing from the API comments of
+ four functions.
+
+commit 4ce1cf97a88ae1640a380dd19cbc255d729f966b
+Author: Lasse Collin <lasse.collin@tukaani.org>
+Date: Mon Apr 11 13:21:28 2011 +0300
+
+ liblzma: Validate encoder arguments better.
+
+ The biggest problem was that the integrity check type
+ wasn't validated, and e.g. lzma_easy_buffer_encode()
+ would create a corrupt .xz Stream if given an unsupported
+ Check ID. Luckily applications don't usually try to use
+ an unsupport Check ID, so this bug is unlikely to cause
+ many real-world problems.
+
+commit 972f05d7a4268dbe42573701f83faa45d03249eb
+Author: Lasse Collin <lasse.collin@tukaani.org>
+Date: Sat Apr 9 18:29:30 2011 +0300
+
+ Update THANKS.
+
+commit 28154eeaf6e3442cd1e174f4e81266d60c4dac60
+Author: Lasse Collin <lasse.collin@tukaani.org>
+Date: Sat Apr 9 18:28:58 2011 +0300
+
+ liblzma: Add missing #ifdefs to filter_common.c.
+
+ Passing --disable-decoders to configure broke a few
+ encoders due to missing #ifdefs in filter_common.c.
+
+ Thanks to Jason Gorski for the patch.
+
+commit aa95516d3d509c6b7895ee519004afcf500a0759
+Author: Lasse Collin <lasse.collin@tukaani.org>
+Date: Sat Apr 2 14:49:56 2011 +0300
+
+ liblzma: Fix a memory leak in stream_encoder.c.
+
+ It leaks old filter options structures (hundred bytes or so)
+ every time the lzma_stream is reinitialized. With the xz tool,
+ this happens when compressing multiple files.
+
+commit 58f52c72f49562a08042da9a2f4bbdf4dd162d0c
+Author: Lasse Collin <lasse.collin@tukaani.org>
+Date: Fri Apr 1 08:47:46 2011 +0300
+
+ Bumped version and liblzma soname to 5.0.2.
+
+commit 162779682e01d15f0ce386ef7f40d1be05ad0053
+Author: Lasse Collin <lasse.collin@tukaani.org>
+Date: Fri Apr 1 08:47:20 2011 +0300
+
+ Updated NEWS for 5.0.2.
+
+commit 45553f9b4b0175c292023010dc41520347004852
+Author: Lasse Collin <lasse.collin@tukaani.org>
+Date: Thu Mar 31 15:06:58 2011 +0300
+
+ Update INSTALL with another note about IRIX.
+
+commit af9d48d5515eadef689b1ce9ffb91e4dbcbc7f35
+Author: Lasse Collin <lasse.collin@tukaani.org>
+Date: Thu Mar 31 12:22:55 2011 +0300
+
+ Tests: Add a new file to test empty LZMA2 streams.
+
+commit d099ef9f517b59ab8e3b6f6aa0543c3643983470
+Author: Lasse Collin <lasse.collin@tukaani.org>
+Date: Thu Mar 31 11:54:48 2011 +0300
+
+ liblzma: Fix decoding of LZMA2 streams having no uncompressed data.
+
+ The decoder considered empty LZMA2 streams to be corrupt.
+ This shouldn't matter much with .xz files, because no encoder
+ creates empty LZMA2 streams in .xz. This bug is more likely
+ to cause problems in applications that use raw LZMA2 streams.
+
+commit df87249b26e79a75fd91041e85512944fc247b57
+Author: Lasse Collin <lasse.collin@tukaani.org>
+Date: Thu Mar 24 01:42:49 2011 +0200
+
+ Scripts: Better fix for xzgrep.
+
+ Now it uses "grep -q".
+
+ Thanks to Gregory Margo.
+
+commit 68c453e1c7b09dc9c7d2ef9d994c46f5b367f5d3
+Author: Lasse Collin <lasse.collin@tukaani.org>
+Date: Thu Mar 24 01:22:18 2011 +0200
+
+ Updated THANKS.
+
+commit b441d39855516ae618faffd5156261b8b413394f
+Author: Lasse Collin <lasse.collin@tukaani.org>
+Date: Thu Mar 24 01:21:32 2011 +0200
+
+ Scripts: Fix xzgrep -l.
+
+ It didn't work at all. It tried to use the -q option
+ for grep, but it appended it after "--". This works
+ around it by redirecting to /dev/null. The downside
+ is that this can be slower with big files compared
+ to proper use of "grep -q".
+
+ Thanks to Gregory Margo.
+
+commit 82d5164839517f55daeadd9ee88c76425db30224
+Author: Lasse Collin <lasse.collin@tukaani.org>
+Date: Fri Feb 4 22:49:31 2011 +0200
+
+ xz: Clean up suffix.c.
+
+ struct suffix_pair isn't needed in compresed_name()
+ so get rid of it there.
+
+commit 6decc8b41882c2250f0450eb87b83c9fbf495e95
+Author: Lasse Collin <lasse.collin@tukaani.org>
+Date: Fri Feb 4 11:29:47 2011 +0200
+
+ xz: Check if the file already has custom suffix when compressing.
+
+ Now "xz -S .test foo.test" refuses to compress the
+ file because it already has the suffix .test. The man
+ page had it documented this way already.
+
+commit ecda90061df8d39399e707e5c76c2ec0a0f400e5
+Author: Lasse Collin <lasse.collin@tukaani.org>
+Date: Wed Feb 2 23:01:51 2011 +0200
+
+ Updated THANKS.
+
+commit 0fda1ae5b1aa0a5c629a09e5228db8ba1cd0dd5f
+Author: Lasse Collin <lasse.collin@tukaani.org>
+Date: Wed Feb 2 23:00:33 2011 +0200
+
+ Translations: Add Polish translation.
+
+ Thanks to Jakub Bogusz.
+
+commit 00be32978fedc5038748438bf685ac1713d1db83
+Author: Lasse Collin <lasse.collin@tukaani.org>
+Date: Wed Feb 2 22:24:00 2011 +0200
+
+ Updated THANKS.
+
commit 7232fcf96bf4bd5f9cd4fc6c93ca2912c665e004
Author: Lasse Collin <lasse.collin@tukaani.org>
Date: Fri Jan 28 20:26:38 2011 +0200
diff --git a/THANKS b/THANKS
index a9a22083e195..70303e0a1be5 100644
--- a/THANKS
+++ b/THANKS
@@ -10,6 +10,9 @@ has been important. :-) In alphabetical order:
- Karl Berry
- Anders F. Björklund
- Emmanuel Blot
+ - Martin Blumenstingl
+ - Jakub Bogusz
+ - Maarten Bosmans
- Trent W. Buck
- David Burklund
- Daniel Mealha Cabrita
@@ -22,6 +25,7 @@ has been important. :-) In alphabetical order:
- Gilles Espinasse
- Denis Excoffier
- Mike Frysinger
+ - Jason Gorski
- Juan Manuel Guerrero
- Joachim Henke
- Peter Ivanov
@@ -34,7 +38,9 @@ has been important. :-) In alphabetical order:
- Peter Lawler
- Hin-Tak Leung
- Andraž 'ruskie' Levstik
+ - Wim Lewis
- Lorenzo De Liso
+ - Gregory Margo
- Jim Meyering
- Rafał Mużyło
- Adrien Nader
@@ -43,6 +49,7 @@ has been important. :-) In alphabetical order:
- Andre Noll
- Peter O'Gorman
- Igor Pavlov
+ - Diego Elio Pettenò
- Elbert Pol
- Mikko Pouru
- Robert Readman
@@ -55,10 +62,12 @@ has been important. :-) In alphabetical order:
- Dan Shechter
- Stuart Shelton
- Jonathan Stott
+ - Dan Stromberg
- Paul Townsend
- Mohammed Adnène Trojette
- Alexey Tourbin
- Patrick J. Volkerding
+ - Martin Väth
- Christian Weisgerber
- Bert Wesarg
- Ralf Wildenhues
diff --git a/po/LINGUAS b/po/LINGUAS
index 7bd249cd2bf5..6babcabd7d4a 100644
--- a/po/LINGUAS
+++ b/po/LINGUAS
@@ -1,3 +1,5 @@
cs
de
+fr
it
+pl
diff --git a/po/fr.po b/po/fr.po
new file mode 100644
index 000000000000..2d9541108dff
--- /dev/null
+++ b/po/fr.po
@@ -0,0 +1,864 @@
+# XZ Utils French Translation
+# This file is put in the public domain.
+# Adrien Nader <camaradetux@gmail.com>, 2011.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: xz-utils\n"
+"Report-Msgid-Bugs-To: lasse.collin@tukaani.org\n"
+"POT-Creation-Date: 2011-05-21 14:35+0200\n"
+"PO-Revision-Date: 2010-09-24 21;12+0200\n"
+"Last-Translator: Adrien Nader <camaradetux@gmail.com>\n"
+"Language-Team: None\n"
+"Language: fr\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n==1) ? 0 : 1;\n"
+
+#: src/xz/args.c:338
+#, c-format
+msgid "%s: Unknown file format type"
+msgstr "%s : Format de fichier inconnu"
+
+#: src/xz/args.c:361 src/xz/args.c:369
+#, c-format
+msgid "%s: Unsupported integrity check type"
+msgstr "%s : Type de vérification d'intégrité inconnu"
+
+#: src/xz/args.c:396
+msgid "Only one file can be specified with `--files' or `--files0'."
+msgstr "Un seul fichier peut être spécifié avec `--files' ou `--files0'."
+
+#: src/xz/args.c:459
+#, c-format
+msgid "The environment variable %s contains too many arguments"
+msgstr "La variable d'environnement %s contient trop d'arguments"
+
+#: src/xz/coder.c:105
+msgid "Maximum number of filters is four"
+msgstr "Le nombre maximal de filtres est quatre"
+
+#: src/xz/coder.c:118
+msgid "Memory usage limit is too low for the given filter setup."
+msgstr "La limite d'utilisation mémoire est trop basse pour la configuration de filtres donnée."
+
+#: src/xz/coder.c:148
+msgid "Using a preset in raw mode is discouraged."
+msgstr "Utiliser un préréglage en mode `raw' est déconseillé."
+
+#: src/xz/coder.c:150
+msgid "The exact options of the presets may vary between software versions."
+msgstr "Le détail des préréglages peut varier entre différentes versions du logiciel."
+
+#: src/xz/coder.c:176
+msgid "The .lzma format supports only the LZMA1 filter"
+msgstr "Le format .lzma ne prend en charge que le filtre LZMA1"
+
+#: src/xz/coder.c:184
+msgid "LZMA1 cannot be used with the .xz format"
+msgstr "Le filtre LZMA1 ne peut être utilisé avec le format .xz"
+
+#: src/xz/coder.c:203
+#, c-format
+msgid "Using up to %<PRIu32> threads."
+msgstr "Jusqu'à %<PRIu32> threads seront utilisés."
+
+#: src/xz/coder.c:216
+msgid "Unsupported filter chain or filter options"
+msgstr "Enchaînement ou options de filtres non pris en charge"
+
+#: src/xz/coder.c:224
+#, c-format
+msgid "Decompression will need %s MiB of memory."
+msgstr "La décompression nécessitera %s MiB de mémoire."
+
+#: src/xz/coder.c:259
+#, c-format
+msgid "Adjusted the number of threads from %s to %s to not exceed the memory usage limit of %s MiB"
+msgstr "Nombre de threads réduit de %s à %s pour ne pas dépasser la limite d'utilisation mémoire de %s MiB"
+
+#: src/xz/coder.c:313
+#, 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 "Taille du dictionnaire LZMA%c réduite de %s MiB à %s MiB pour ne pas dépasser la limite d'utilisation mémoire de %s MiB"
+
+#. 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:136
+#, 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:143 src/xz/file_io.c:635
+#, c-format
+msgid "%s: Cannot remove: %s"
+msgstr "%s : Impossible de supprimer : %s"
+
+#: src/xz/file_io.c:168
+#, 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:174
+#, 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:193
+#, c-format
+msgid "%s: Cannot set the file permissions: %s"
+msgstr "%s : Impossible de modifier les permissions du fichier : %s"
+
+#: src/xz/file_io.c:340 src/xz/file_io.c:423
+#, c-format
+msgid "%s: Is a symbolic link, skipping"
+msgstr "%s est un lien symbolique : ignoré"
+
+#: src/xz/file_io.c:468
+#, c-format
+msgid "%s: Is a directory, skipping"
+msgstr "%s est un répertoire : ignoré"
+
+#: src/xz/file_io.c:474
+#, c-format
+msgid "%s: Not a regular file, skipping"
+msgstr "%s n'est pas un fichier régulier : ignoré"
+
+#: src/xz/file_io.c:491
+#, 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:498
+#, 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:505
+#, 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é"
+
+#: src/xz/file_io.c:761
+#, 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:773
+#, c-format
+msgid "%s: Closing the file failed: %s"
+msgstr "%s : Impossible de fermer le fichier : %s"
+
+#: src/xz/file_io.c:809 src/xz/file_io.c:1008
+#, 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:883
+#, c-format
+msgid "%s: Read error: %s"
+msgstr "%s : Erreur d'écriture : %s"
+
+#: src/xz/file_io.c:906
+#, 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:916
+#, c-format
+msgid "%s: Unexpected end of file"
+msgstr "%s : Fin de fichier inattendue"
+
+#: src/xz/file_io.c:966
+#, c-format
+msgid "%s: Write error: %s"
+msgstr "%s : Erreur d'écriture : %s"
+
+#: src/xz/hardware.c:101
+msgid "Disabled"
+msgstr "Désactivé"
+
+#. TRANSLATORS: Test with "xz --info-memory" to see if
+#. the alignment looks nice.
+#: src/xz/hardware.c:120
+msgid "Total amount of physical memory (RAM): "
+msgstr "Quantité totale de mémoire physique (RAM) : "
+
+#: src/xz/hardware.c:122
+msgid "Memory usage limit for compression: "
+msgstr "Limite d'utilisation pour la compression : "
+
+#: src/xz/hardware.c:124
+msgid "Memory usage limit for decompression: "
+msgstr "Limite d'utilisation pour la décompression : "
+
+#. 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:62
+msgid "None"
+msgstr "Aucune"
+
+#. 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:69
+msgid "Unknown-2"
+msgstr "Inconnue-2"
+
+#: src/xz/list.c:70
+msgid "Unknown-3"
+msgstr "Inconnue-3"
+
+#: src/xz/list.c:72
+msgid "Unknown-5"
+msgstr "Inconnue-5"
+
+#: src/xz/list.c:73
+msgid "Unknown-6"
+msgstr "Inconnue-6"
+
+#: src/xz/list.c:74
+msgid "Unknown-7"
+msgstr "Inconnue-7"
+
+#: src/xz/list.c:75
+msgid "Unknown-8"
+msgstr "Inconnue-8"
+
+#: src/xz/list.c:76
+msgid "Unknown-9"
+msgstr "Inconnue-9"
+
+#: src/xz/list.c:78
+msgid "Unknown-11"
+msgstr "Inconnue-11"
+
+#: src/xz/list.c:79
+msgid "Unknown-12"
+msgstr "Inconnue-12"
+
+#: src/xz/list.c:80
+msgid "Unknown-13"
+msgstr "Inconnue-13"
+
+#: src/xz/list.c:81
+msgid "Unknown-14"
+msgstr "Inconnue-14"
+
+#: src/xz/list.c:82
+msgid "Unknown-15"
+msgstr "Inconnue-15"
+
+#: src/xz/list.c:126
+#, c-format
+msgid "%s: File is empty"
+msgstr "%s : Le fichier est vide"
+
+#: src/xz/list.c:131
+#, c-format
+msgid "%s: Too small to be a valid .xz file"
+msgstr "%s : Trop petit pour être un fichier xz valide."
+
+#. 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:612
+msgid "Strms Blocks Compressed Uncompressed Ratio Check Filename"
+msgstr "Flux Blocs Compressé Décompressé Ratio Vérif Nom de fichier"
+
+#: src/xz/list.c:652
+#, c-format
+msgid " Streams: %s\n"
+msgstr " Flux : %s\n"
+
+#: src/xz/list.c:654
+#, c-format
+msgid " Blocks: %s\n"
+msgstr " Blocs : %s\n"
+
+#: src/xz/list.c:656
+#, c-format
+msgid " Compressed size: %s\n"
+msgstr " Taille compressé : %s\n"
+
+#: src/xz/list.c:659
+#, c-format
+msgid " Uncompressed size: %s\n"
+msgstr " Taille décompressé : %s\n"
+
+#: src/xz/list.c:662
+#, c-format
+msgid " Ratio: %s\n"
+msgstr " Ratio : %s\n"
+
+#: src/xz/list.c:664
+#, c-format
+msgid " Check: %s\n"
+msgstr " Vérification : %s\n"
+
+#: src/xz/list.c:665
+#, c-format
+msgid " Stream padding: %s\n"
+msgstr " Octets de rembourrage du flux : %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:693
+msgid ""
+" Streams:\n"
+" Stream Blocks CompOffset UncompOffset CompSize UncompSize Ratio Check Padding"
+msgstr ""
+" Flux :\n"
+" Flux Blocs PositionComp PositionDécomp TailleComp TailleDécomp Ratio Vérif. Bourrage"
+
+#. TRANSLATORS: The second line is column headings. All
+#. except Check are right aligned; Check is left aligned.
+#: src/xz/list.c:748
+#, c-format
+msgid ""
+" Blocks:\n"
+" Stream Block CompOffset UncompOffset TotalSize UncompSize Ratio Check"
+msgstr ""
+" Blocs :\n"
+" Flux Bloc PositionComp PositionDécomp TailleTot TailleDécomp Ratio Vérif."
+
+#. 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:760
+#, c-format
+msgid " CheckVal %*s Header Flags CompSize MemUsage Filters"
+msgstr " ValVérif %*sEn-tête Drapeaux TailleComp UtilMém Filtres"
+
+#: src/xz/list.c:838 src/xz/list.c:1007
+#, c-format
+msgid " Memory needed: %s MiB\n"
+msgstr " Mémoire nécessaire : %s MiB\n"
+
+#: src/xz/list.c:840 src/xz/list.c:1009
+#, c-format
+msgid " Sizes in headers: %s\n"
+msgstr " Tailles stockées dans l'en-tête : %s\n"
+
+#: src/xz/list.c:841 src/xz/list.c:1010
+msgid "Yes"
+msgstr "Oui"
+
+#: src/xz/list.c:841 src/xz/list.c:1010
+msgid "No"
+msgstr "Non"
+
+#. 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:986
+#, c-format
+msgid "%s file\n"
+msgid_plural "%s files\n"
+msgstr[0] "%s fichier\n"
+msgstr[1] "%s fichiers\n"
+
+#: src/xz/list.c:999
+msgid "Totals:"
+msgstr "Totaux :"
+
+#: src/xz/list.c:1000
+#, c-format
+msgid " Number of files: %s\n"
+msgstr " Nombre de fichiers : %s\n"
+
+#: src/xz/list.c:1072
+msgid "--list works only on .xz files (--format=xz or --format=auto)"
+msgstr "--list ne marche que sur les fichiers .xz (--format=xz ou --format=auto)"
+
+#: src/xz/list.c:1078
+msgid "--list does not support reading from standard input"
+msgstr "--list est incompatible avec la lecture sur l'entrée standard"
+
+#: src/xz/main.c:89
+#, c-format
+msgid "%s: Error reading filenames: %s"
+msgstr "%s : Erreur lors de la lecture des noms de fichiers : %s"
+
+#: src/xz/main.c:96
+#, c-format
+msgid "%s: Unexpected end of input when reading filenames"
+msgstr "%s : Fin des données inattendue lors de la lecture des noms de fichiers"
+
+#: 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 : Caractère NULL détecté lors de la lecture des noms de fichiers ; peut-être pensiez-vous à `--files0' plutot qu'a `--files' ?"
+
+#: src/xz/main.c:174
+msgid "Compression and decompression with --robot are not supported yet."
+msgstr "La compression et la décompression ne marchent pas encore avec --robot."
+
+#: src/xz/main.c:231
+msgid "Cannot read data from standard input when reading filenames from standard input"
+msgstr "Impossible de lire à la fois les données et les noms de fichiers depuis l'entrée standard"
+
+#. 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:733
+#, c-format
+msgid "%s: "
+msgstr "%s : "
+
+#: src/xz/message.c:796 src/xz/message.c:846
+msgid "Internal error (bug)"
+msgstr "Erreur interne (bug)"
+
+#: src/xz/message.c:803
+msgid "Cannot establish signal handlers"
+msgstr "Impossible d'installer le gestionnaire de signaux"
+
+#: src/xz/message.c:812
+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:815
+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:822
+msgid "Memory usage limit reached"
+msgstr "Limite d'utilisation mémoire atteinte"
+
+#: src/xz/message.c:825
+msgid "File format not recognized"
+msgstr "Format de fichier inconnu"
+
+#: src/xz/message.c:828
+msgid "Unsupported options"
+msgstr "Options non prises en charge"
+
+#: src/xz/message.c:831
+msgid "Compressed data is corrupt"
+msgstr "Les données compressées sont corrompues"
+
+#: src/xz/message.c:834
+msgid "Unexpected end of input"
+msgstr "Fin des données inattendue "
+
+#: src/xz/message.c:885
+#, 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:1052
+#, c-format
+msgid "%s: Filter chain: %s\n"
+msgstr "%s : Enchaînement de filtres : %s\n"
+
+#: src/xz/message.c:1062
+#, c-format
+msgid "Try `%s --help' for more information."
+msgstr "Utilisez `%s --help' pour plus d'informations."
+
+#: src/xz/message.c:1088
+#, c-format
+msgid ""
+"Usage: %s [OPTION]... [FILE]...\n"
+"Compress or decompress FILEs in the .xz format.\n"
+"\n"
+msgstr ""
+"Utilisation : %s [OPTION]... [FICHIER]...\n"
+"Compresse ou decompresse FICHIER(s) au format .xz.\n"
+"\n"
+
+#: src/xz/message.c:1095
+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:1099
+msgid " Operation mode:\n"
+msgstr " Mode d'opération :\n"
+
+#: src/xz/message.c:1102
+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 forcer la compression\n"
+" -d, --decompress forcer la décompression\n"
+" -t, --test tester l'intégrité du fichier compressé\n"
+" -l, --list lister les informations à propos des fichiers .xz"
+
+#: src/xz/message.c:1108
+msgid ""
+"\n"
+" Operation modifiers:\n"
+msgstr ""
+"\n"
+" Modifictauers :\n"
+
+#: src/xz/message.c:1111
+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 ne pas supprimer les fichiers d'entrée (\"keep\")\n"
+" -f, --force forcer l'écrasement du fichier de sortie et\n"
+" (dé)compresser les liens\n"
+" -c, --stdout écrire sur la sortie standard et ne pas supprimer les\n"
+" fichiers d'entrée"
+
+#: src/xz/message.c:1117
+msgid ""
+" --single-stream decompress only the first stream, and silently\n"
+" ignore possible remaining input data"
+msgstr ""
+" --single-stream décompresser uniquement le premier flux et ignorer\n"
+" silenciseusement les données éventuellement restantes"
+
+#: src/xz/message.c:1120
+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 pas créer de 'sparse file' lors de la décompression\n"
+" -S, --suffix=.SUF utiliser le suffixe `.SUF' pour les fichiers compressés\n"
+" --files[=FILE] lire les fichiers sur lesquels opérer depuis FILE ; si\n"
+" FILE est omis, ceux-ci sont lus depuis l'entrée standard\n"
+" et doivent être suivis d'un caractère de retour à la ligne\n"
+" --files0[=FILE] comme --files mais avec un caractère null comme séparateur"
+
+#: src/xz/message.c:1129
+msgid ""
+"\n"
+" Basic file format and compression options:\n"
+msgstr ""
+"\n"
+" Options basiques de format de fichier et de compression :\n"
+
+#: src/xz/message.c:1131
+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 format de fichier à encoder ou décoder ; les possibilités\n"
+" sont : `auto' (par défaut), `xz', `lzma' et `raw'\n"
+" -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:1138
+msgid ""
+" -0 ... -9 compression preset; default is 6; take compressor *and*\n"
+" decompressor memory usage into account before using 7-9!"
+msgstr ""
+" -0 ... -9 préréglage de compression ; 6 par défaut ; pensez à\n"
+" l'utilisation mémoire du compresseur *et* du décompresseur\n"
+" avant d'utiliser 7, 8 ou 9 !"
+
+#: src/xz/message.c:1142
+msgid ""
+" -e, --extreme try to improve compression ratio by using more CPU time;\n"
+" does not affect decompressor memory requirements"
+msgstr ""
+" -e, --extreme essayer d'améliorer la compression en utilisant davantage\n"
+" de temps processeur sans affecter les besoins mémoire du\n"
+" décompresseur"
+
+#: src/xz/message.c:1147
+msgid ""
+" --block-size=SIZE\n"
+" when compressing to the .xz format, start a new block\n"
+" after every SIZE bytes of input; 0=disabled (default)"
+msgstr ""
+" --block-size=SIZE\n"
+" pour une compression au format .xz, entamer un nouveau\n"
+" bloc après SIZE octets d'entrée ; 0=désactivé (par défaut)"
+
+#: src/xz/message.c:1151
+#, 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=LIMIT\n"
+" --memlimit-decompress=LIMIT\n"
+" -M, --memlimit=LIMIT\n"
+" règle la limite d'utilisation mémoire pour la compression,\n"
+" décompression ou les deux ; LIMIT est en octets, % de\n"
+" RAM, ou 0 pour les valeurs par défaut"
+
+#: src/xz/message.c:1158
+msgid ""
+" --no-adjust if compression settings exceed the memory usage limit,\n"
+" give an error instead of adjusting the settings downwards"
+msgstr ""
+" --no-adjust si les réglages de compression dépassent la limite\n"
+" d'utilisation mémoire, renvoyer une erreur plutôt que de\n"
+" diminuer les réglages"
+
+#: src/xz/message.c:1164
+msgid ""
+"\n"
+" Custom filter chain for compression (alternative for using presets):"
+msgstr ""
+"\n"
+" Enchaînement de filtres de compression personnalisé (au lieu des préréglages) :"
+
+#: src/xz/message.c:1173
+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[=OPTS] LZMA1 ou LZMA2 ; OPTS est une liste de zéro ou plusieurs\n"
+" --lzma2[=OPTS] options parmi les suivantes (vals. valides ; par défaut) :\n"
+" preset=PRE remettre les options à un préréglage (0-9[e])\n"
+" dict=NUM taille dictionnaire (4KiB - 1536MiB ; 8MiB)\n"
+" lc=NUM nombre de 'literal context bits' (0-4 ; 3)\n"
+" lp=NUM nombre de 'literal position bits' (0-4 ; 0)\n"
+" pb=NUM nombre de 'position bits' (0-4 ; 2)\n"
+" mode=MODE mode de compression (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 profondeur de recherche maximale ;\n"
+" 0=automatique (par défaut)"
+
+#: src/xz/message.c:1188
+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] filtre BCJ x86 (32-bit et 64-bit)\n"
+" --powerpc[=OPTS] filtre BCJ PowerPC ('big endian' uniquement)\n"
+" --ia64[=OPTS] filtre BCJ IA-64 (Itanium)\n"
+" --arm[=OPTS] filtre BCJ ARM ('little endian' uniquement)\n"
+" --armthumb[=OPTS] filtre BCJ ARM-Thumb ('little endian' uniquement)\n"
+" --sparc[=OPTS] filtre BCJ SPARC\n"
+" OPTS valides pour tous les filtres BCJ :\n"
+" start=NUM start offset for conversions (default=0)"
+
+#: src/xz/message.c:1200
+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] Filtre delta ; OPTS valides (vals. valides ; par défaut) :\n"
+" dist=NUM distance entre les octets soustraits\n"
+" les uns aux autres (1-256 ; 1)"
+
+#: src/xz/message.c:1208
+msgid ""
+"\n"
+" Other options:\n"
+msgstr ""
+"\n"
+" Autres options :\n"
+
+#: src/xz/message.c:1211
+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 supprimer les avertissemnts ; spécifier deux fois pour\n"
+" aussi supprimer les erreur\n"
+" -v, --verbose être bavard ; spécifier deux fois pour l'être davantage"
+
+#: src/xz/message.c:1216
+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:1218
+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:1221
+msgid ""
+" --info-memory display the total amount of RAM and the currently active\n"
+" memory usage limits, and exit"
+msgstr ""
+" --info-memory affiche la quantité totale de RAM et la limite actuelle\n"
+" en mémoire puis quitte"
+
+#: src/xz/message.c:1224
+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 affiche l'aide courte (ne liste que les options de base)\n"
+" -H, --long-help affiche l'aide longue (ceci) puis quitte"
+
+#: src/xz/message.c:1228
+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 affiche l'aide courte (ceci) puis quitte\n"
+" -H, --long-help affiche l'aide longue (liste aussi les options avancées)"
+
+#: src/xz/message.c:1233
+msgid " -V, --version display the version number and exit"
+msgstr " -V, --version affiche le numéro de version puis quitte"
+
+#: src/xz/message.c:1235
+msgid ""
+"\n"
+"With no FILE, or when FILE is -, read standard input.\n"
+msgstr ""
+"\n"
+"Sans FILE ou quand FILE est -, lire l'entrée standard.\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:1241
+#, 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 à <camaradetux@gmail.com>.\n"
+
+#: src/xz/message.c:1243
+#, c-format
+msgid "%s home page: <%s>\n"
+msgstr "%s page du projet : <%s>\n"
+
+#: src/xz/options.c:86
+#, c-format
+msgid "%s: Options must be `name=value' pairs separated with commas"
+msgstr "%s: Les options doivent être des paires `nom=valeur' séparées par des virgules"
+
+#: src/xz/options.c:93
+#, c-format
+msgid "%s: Invalid option name"
+msgstr "%s : Nom d'option invalide"
+
+#: src/xz/options.c:113
+#, c-format
+msgid "%s: Invalid option value"
+msgstr "%s : Valeur d'option invalide"
+
+#: src/xz/options.c:247
+#, c-format
+msgid "Unsupported LZMA1/LZMA2 preset: %s"
+msgstr "Préréglage LZMA1/LZMA2 non pris en charge : %s"
+
+#: src/xz/options.c:355
+msgid "The sum of lc and lp must not exceed 4"
+msgstr "La somme de lc et lp ne doit pas dépasser 4"
+
+#: src/xz/options.c:359
+#, c-format
+msgid "The selected match finder requires at least nice=%<PRIu32>"
+msgstr "Le `match finder' choisi nécessite au moins 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 : Avec --format=raw, --suffix=.SUF est nécessaire sauf lors de l'écriture vers stdout"
+
+#: src/xz/suffix.c:164
+#, c-format
+msgid "%s: Filename has an unknown suffix, skipping"
+msgstr "%s : Le fichier a un suffixe inconnu, ignoré"
+
+#: src/xz/suffix.c:185
+#, c-format
+msgid "%s: File already has `%s' suffix, skipping"
+msgstr "%s : Le fichier a déjà le suffixe '%s', ignoré"
+
+#: src/xz/suffix.c:393
+#, c-format
+msgid "%s: Invalid filename suffix"
+msgstr "%s: Suffixe de nom de fichier invalide"
+
+#: src/xz/util.c:61
+#, c-format
+msgid "%s: Value is not a non-negative decimal integer"
+msgstr "%s : La valeur n'est pas un entier décimal non négatif"
+
+#: src/xz/util.c:103
+#, c-format
+msgid "%s: Invalid multiplier suffix"
+msgstr "%s : Suffixe multiplicateur invalide"
+
+#: src/xz/util.c:105
+msgid "Valid suffixes are `KiB' (2^10), `MiB' (2^20), and `GiB' (2^30)."
+msgstr "Les suffixes valides sont 'KiB' (2^10), 'MiB' (2^20) et 'GiB' (2^30)."
+
+#: src/xz/util.c:122
+#, c-format
+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:247
+msgid "Empty filename, skipping"
+msgstr "Nom de fichier vide, ignoré"
+
+#: src/xz/util.c:261
+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:274
+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
+msgid "Writing to standard output failed"
+msgstr "Impossible d'écrire vers la sortie standard"
+
+#: src/common/tuklib_exit.c:42
+msgid "Unknown error"
+msgstr "Erreur inconnue"
diff --git a/po/it.po b/po/it.po
index 8e096dd4eaef..ea6f85808ab5 100644
--- a/po/it.po
+++ b/po/it.po
@@ -2,78 +2,83 @@
# This file is 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.
+# Milo Casagrande <milo@ubuntu.com>, 2009, 2010, 2011.
+#
msgid ""
msgstr ""
"Project-Id-Version: xz-utils\n"
-"Report-Msgid-Bugs-To: lasse.collin@tukaani.org\n"
-"POT-Creation-Date: 2010-09-10 14:50+0300\n"
-"PO-Revision-Date: 2010-09-16 21:32+0200\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2011-05-27 11:42+0200\n"
+"PO-Revision-Date: 2011-05-27 11:43+0200\n"
"Last-Translator: Milo Casagrande <milo@ubuntu.com>\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-Launchpad-Export-Date: 2010-08-16 19:16+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
-"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+"Plural-Forms: nplurals=2; plural=(n != 1)\n"
-#: src/xz/args.c:333
+#: ../src/xz/args.c:333
#, c-format
msgid "%s: Unknown file format type"
-msgstr "%s: tipo di formato del file sconosciutoN"
+msgstr "%s: tipo di formato del file sconosciuto"
-#: src/xz/args.c:356 src/xz/args.c:364
+#: ../src/xz/args.c:356 ../src/xz/args.c:364
#, c-format
msgid "%s: Unsupported integrity check type"
msgstr "%s: tipo di controllo integrità non supportato"
-#: src/xz/args.c:382
+#: ../src/xz/args.c:382
msgid "Only one file can be specified with `--files' or `--files0'."
msgstr "Solo un file può essere specificato con \"--files\" o \"--files0\"."
-#: src/xz/args.c:445
+#: ../src/xz/args.c:445
#, c-format
msgid "The environment variable %s contains too many arguments"
msgstr "La variabile d'ambiente %s contiene troppi argomenti"
-#: src/xz/coder.c:95
+#: ../src/xz/coder.c:95
msgid "Maximum number of filters is four"
msgstr "Il numero massimo di filtri è quattro"
-#: src/xz/coder.c:108
+#: ../src/xz/coder.c:108
msgid "Memory usage limit is too low for the given filter setup."
msgstr ""
"Il limite dell'uso della memoria è troppo basso per l'impostazione del "
"filtro dato."
-#: src/xz/coder.c:129
+#. The message is shown only if warnings are allowed
+#. but the exit status isn't changed.
+#: ../src/xz/coder.c:129
msgid "Using a preset in raw mode is discouraged."
msgstr "Non è consigliato usare un preset nella modalità raw."
-#: src/xz/coder.c:131
+#: ../src/xz/coder.c:131
msgid "The exact options of the presets may vary between software versions."
msgstr ""
"Le opzioni esatte per i preset possono variare tra le versioni del software."
-#: src/xz/coder.c:157
+#: ../src/xz/coder.c:157
msgid "The .lzma format supports only the LZMA1 filter"
msgstr "Il formato .lzma supporta solo il filtro LZMA1"
-#: src/xz/coder.c:165
+#: ../src/xz/coder.c:165
msgid "LZMA1 cannot be used with the .xz format"
msgstr "LZMA1 non può essere usato con il formato .xz"
-#: src/xz/coder.c:182
+#: ../src/xz/coder.c:182
msgid "Unsupported filter chain or filter options"
msgstr "Catena di filtri od opzioni del filtro non supportata"
-#: src/xz/coder.c:190
+#: ../src/xz/coder.c:190
#, c-format
msgid "Decompression will need %s MiB of memory."
msgstr "L'estrazione necessita di %s MiB di memoria."
-#: src/xz/coder.c:247
+#. Tell the user that we decreased the dictionary size.
+#: ../src/xz/coder.c:247
#, c-format
msgid ""
"Adjusted LZMA%c dictionary size from %s MiB to %s MiB to not exceed the "
@@ -92,119 +97,128 @@ 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:137
+#: ../src/xz/file_io.c:137
#, 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:144 src/xz/file_io.c:590
+#: ../src/xz/file_io.c:144 ../src/xz/file_io.c:589
#, c-format
msgid "%s: Cannot remove: %s"
msgstr "%s: impossibile rimuovere: %s"
-#: src/xz/file_io.c:169
+#: ../src/xz/file_io.c:169
#, c-format
msgid "%s: Cannot set the file owner: %s"
msgstr "%s: impossibile impostare il proprietario del file: %s"
-#: src/xz/file_io.c:175
+#: ../src/xz/file_io.c:175
#, c-format
msgid "%s: Cannot set the file group: %s"
msgstr "%s: impossibile impostare il gruppo del file: %s"
-#: src/xz/file_io.c:194
+#: ../src/xz/file_io.c:194
#, c-format
msgid "%s: Cannot set the file permissions: %s"
msgstr "%s: impossibile impostare i permessi del file: %s"
-#: src/xz/file_io.c:337 src/xz/file_io.c:420
+#: ../src/xz/file_io.c:337 ../src/xz/file_io.c:420
#, c-format
msgid "%s: Is a symbolic link, skipping"
msgstr "%s: è un collegamento simbolico, viene saltato"
-#: src/xz/file_io.c:455
+#: ../src/xz/file_io.c:455
#, c-format
msgid "%s: Is a directory, skipping"
msgstr "%s: è una directory, viene saltata"
-#: src/xz/file_io.c:462
+#: ../src/xz/file_io.c:461
#, c-format
msgid "%s: Not a regular file, skipping"
msgstr "%s: non è un file regolare, viene saltato"
-#: src/xz/file_io.c:479
+#. gzip rejects setuid and setgid files even
+#. when --force was used. bzip2 doesn't check
+#. for them, but calls fchown() after fchmod(),
+#. and many systems automatically drop setuid
+#. and setgid bits there.
+#.
+#. We accept setuid and setgid files if
+#. --force was used. We drop these bits
+#. explicitly in io_copy_attr().
+#: ../src/xz/file_io.c:478
#, 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:486
+#: ../src/xz/file_io.c:485
#, 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:493
+#: ../src/xz/file_io.c:492
#, 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:714
+#: ../src/xz/file_io.c:713
#, 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:726
+#: ../src/xz/file_io.c:725
#, c-format
msgid "%s: Closing the file failed: %s"
msgstr "%s: chiusura del file non riuscita: %s"
-#: src/xz/file_io.c:762 src/xz/file_io.c:946
+#: ../src/xz/file_io.c:761 ../src/xz/file_io.c:945
#, 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:821
+#: ../src/xz/file_io.c:820
#, c-format
msgid "%s: Read error: %s"
msgstr "%s: errore di lettura: %s"
-#: src/xz/file_io.c:844
+#: ../src/xz/file_io.c:843
#, c-format
msgid "%s: Error seeking the file: %s"
msgstr "%s: errore nel cercare il file: %s"
-#: src/xz/file_io.c:854
+#: ../src/xz/file_io.c:853
#, c-format
msgid "%s: Unexpected end of file"
msgstr "%s: fine del file inaspettata"
-#: src/xz/file_io.c:904
+#: ../src/xz/file_io.c:903
#, c-format
msgid "%s: Write error: %s"
msgstr "%s: errore di scrittura: %s"
-#: src/xz/hardware.c:100
+#: ../src/xz/hardware.c:100
msgid "Disabled"
msgstr "Disabilitato"
#. TRANSLATORS: Test with "xz --info-memory" to see if
#. the alignment looks nice.
-#: src/xz/hardware.c:119
+#: ../src/xz/hardware.c:119
msgid "Total amount of physical memory (RAM): "
msgstr "Quantità totale di memoria fisica (RAM): "
-#: src/xz/hardware.c:121
+#: ../src/xz/hardware.c:121
msgid "Memory usage limit for compression: "
msgstr "Limite utilizzo memoria per la compressione: "
-#: src/xz/hardware.c:123
+#: ../src/xz/hardware.c:123
msgid "Memory usage limit for decompression: "
msgstr "Limite utilizzo memoria per l'estrazione: "
#. 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:62
+#: ../src/xz/list.c:62
msgid "None"
msgstr "Nessuno"
@@ -212,61 +226,61 @@ msgstr "Nessuno"
#. 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.
-#: src/xz/list.c:69
+#. you need space for one extra letter, but don't use spaces.
+#: ../src/xz/list.c:69
msgid "Unknown-2"
msgstr "Sconosc2"
-#: src/xz/list.c:70
+#: ../src/xz/list.c:70
msgid "Unknown-3"
msgstr "Sconosc3"
-#: src/xz/list.c:72
+#: ../src/xz/list.c:72
msgid "Unknown-5"
msgstr "Sconosc5"
-#: src/xz/list.c:73
+#: ../src/xz/list.c:73
msgid "Unknown-6"
msgstr "Sconosc6"
-#: src/xz/list.c:74
+#: ../src/xz/list.c:74
msgid "Unknown-7"
msgstr "Sconosc7"
-#: src/xz/list.c:75
+#: ../src/xz/list.c:75
msgid "Unknown-8"
msgstr "Sconosc8"
-#: src/xz/list.c:76
+#: ../src/xz/list.c:76
msgid "Unknown-9"
msgstr "Sconosc9"
-#: src/xz/list.c:78
+#: ../src/xz/list.c:78
msgid "Unknown-11"
msgstr "Sconosc11"
-#: src/xz/list.c:79
+#: ../src/xz/list.c:79
msgid "Unknown-12"
msgstr "Sconosc12"
-#: src/xz/list.c:80
+#: ../src/xz/list.c:80
msgid "Unknown-13"
msgstr "Sconosc13"
-#: src/xz/list.c:81
+#: ../src/xz/list.c:81
msgid "Unknown-14"
msgstr "Sconosc14"
-#: src/xz/list.c:82
+#: ../src/xz/list.c:82
msgid "Unknown-15"
msgstr "Sconosc15"
-#: src/xz/list.c:126
+#: ../src/xz/list.c:126
#, c-format
msgid "%s: File is empty"
msgstr "%s: il file è vuoto"
-#: src/xz/list.c:131
+#: ../src/xz/list.c:131
#, c-format
msgid "%s: Too small to be a valid .xz file"
msgstr "%s: troppo piccolo per essere un file .xz valido"
@@ -275,49 +289,51 @@ msgstr "%s: troppo piccolo per essere un file .xz valido"
#. 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:612
+#: ../src/xz/list.c:612
msgid "Strms Blocks Compressed Uncompressed Ratio Check Filename"
msgstr " Strm Blocc. Compresso Estratto Rapp. Contr Nome file"
-#: src/xz/list.c:652
+#: ../src/xz/list.c:652
#, c-format
msgid " Streams: %s\n"
msgstr " Stream: %s\n"
-#: src/xz/list.c:654
+#: ../src/xz/list.c:654
#, c-format
msgid " Blocks: %s\n"
msgstr " Blocchi: %s\n"
-#: src/xz/list.c:656
+#: ../src/xz/list.c:656
#, c-format
msgid " Compressed size: %s\n"
msgstr " Dim. compresso: %s\n"
-#: src/xz/list.c:659
+#: ../src/xz/list.c:659
#, c-format
msgid " Uncompressed size: %s\n"
msgstr " Dim. estratto: %s\n"
-#: src/xz/list.c:662
+#: ../src/xz/list.c:662
#, c-format
msgid " Ratio: %s\n"
msgstr " Rapporto: %s\n"
-#: src/xz/list.c:664
+#: ../src/xz/list.c:664
#, c-format
msgid " Check: %s\n"
msgstr " Controllo: %s\n"
-#: src/xz/list.c:665
+#: ../src/xz/list.c:665
#, c-format
msgid " Stream padding: %s\n"
msgstr " Padding dello stream: %s\n"
+#. Print information about the Streams.
+#.
#. 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:693
+#: ../src/xz/list.c:693
msgid ""
" Streams:\n"
" Stream Blocks CompOffset UncompOffset CompSize "
@@ -329,7 +345,7 @@ msgstr ""
#. TRANSLATORS: The second line is column headings. All
#. except Check are right aligned; Check is left aligned.
-#: src/xz/list.c:748
+#: ../src/xz/list.c:748
#, c-format
msgid ""
" Blocks:\n"
@@ -347,66 +363,74 @@ msgstr ""
#. 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:760
+#: ../src/xz/list.c:760
#, c-format
msgid " CheckVal %*s Header Flags CompSize MemUsage Filters"
msgstr " Val.cont %*s Header Flag Dim.compr. Uso mem. Filtri"
-#: src/xz/list.c:838 src/xz/list.c:1007
+#: ../src/xz/list.c:838 ../src/xz/list.c:1007
#, c-format
msgid " Memory needed: %s MiB\n"
msgstr " Memoria necessaria: %s MiB\n"
-#: src/xz/list.c:840 src/xz/list.c:1009
+#: ../src/xz/list.c:840 ../src/xz/list.c:1009
#, c-format
msgid " Sizes in headers: %s\n"
msgstr " Dim. negli header: %s\n"
-#: src/xz/list.c:841 src/xz/list.c:1010
+#: ../src/xz/list.c:841 ../src/xz/list.c:1010
msgid "Yes"
msgstr "Sì"
-#: src/xz/list.c:841 src/xz/list.c:1010
+#: ../src/xz/list.c:841 ../src/xz/list.c:1010
msgid "No"
msgstr "No"
+#. Since we print totals only when there are at least two files,
+#. the English message will always use "%s files". But some other
+#. languages need different forms for different plurals so we
+#. have to translate this with ngettext().
+#.
#. 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:986
+#: ../src/xz/list.c:986
#, c-format
msgid "%s file\n"
msgid_plural "%s files\n"
msgstr[0] "%s file\n"
msgstr[1] "%s file\n"
-#: src/xz/list.c:999
+#: ../src/xz/list.c:999
msgid "Totals:"
msgstr "Totali:"
-#: src/xz/list.c:1000
+#: ../src/xz/list.c:1000
#, c-format
msgid " Number of files: %s\n"
msgstr " Numero di file: %s\n"
-#: src/xz/list.c:1072
+#: ../src/xz/list.c:1072
msgid "--list works only on .xz files (--format=xz or --format=auto)"
msgstr "--list funziona solamente con file .xz (--format=xz o --format=auto)"
-#: src/xz/list.c:1078
+#: ../src/xz/list.c:1078
msgid "--list does not support reading from standard input"
msgstr "--list non è in grado di leggere dallo standard input"
-#: src/xz/main.c:89
+#: ../src/xz/main.c:89
#, c-format
msgid "%s: Error reading filenames: %s"
msgstr "%s: errore nel leggere i nomi dei file: %s"
-#: src/xz/main.c:96
+#: ../src/xz/main.c:96
#, c-format
msgid "%s: Unexpected end of input when reading filenames"
msgstr "%s: fine dell'input durante la lettura dei nomi dei file non attesa"
-#: src/xz/main.c:120
+#. A null character was found when using --files,
+#. which expects plain text input separated with
+#. newlines.
+#: ../src/xz/main.c:120
#, c-format
msgid ""
"%s: Null character found when reading filenames; maybe you meant to use `--"
@@ -415,11 +439,11 @@ msgstr ""
"%s: nessun carattere trovato durante la lettura dei nomi dei file; forse si "
"intendeva usare \"--files0\" invece di \"--files\"?"
-#: src/xz/main.c:174
+#: ../src/xz/main.c:174
msgid "Compression and decompression with --robot are not supported yet."
msgstr "La compressione e l'estrazione con --robot non sono ancora supportate."
-#: src/xz/main.c:231
+#: ../src/xz/main.c:231
msgid ""
"Cannot read data from standard input when reading filenames from standard "
"input"
@@ -427,61 +451,72 @@ msgstr ""
"Impossibile leggere i dati dallo standard input durante la lettura dei nomi "
"dei file dallo standard input"
-#: src/xz/message.c:800 src/xz/message.c:844
+#. 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:733
+#, c-format
+msgid "%s: "
+msgstr "%s: "
+
+#: ../src/xz/message.c:796 ../src/xz/message.c:846
msgid "Internal error (bug)"
msgstr "Errore interno (bug)"
-#: src/xz/message.c:807
+#: ../src/xz/message.c:803
msgid "Cannot establish signal handlers"
msgstr "Impossibile stabilire i gestori dei segnali"
-#: src/xz/message.c:816
+#: ../src/xz/message.c:812
msgid "No integrity check; not verifying file integrity"
msgstr ""
"Nessun controllo d'integrità; l'integrità del file non viene verificata"
-#: src/xz/message.c:819
+#: ../src/xz/message.c:815
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:826
+#: ../src/xz/message.c:822
msgid "Memory usage limit reached"
msgstr "Limite di utilizzo della memoria raggiunto"
-#: src/xz/message.c:829
+#: ../src/xz/message.c:825
msgid "File format not recognized"
msgstr "Formato di file non riconosciuto"
-#: src/xz/message.c:832
+#: ../src/xz/message.c:828
msgid "Unsupported options"
msgstr "Opzioni non supportate"
-#: src/xz/message.c:835
+#: ../src/xz/message.c:831
msgid "Compressed data is corrupt"
msgstr "I dati compressi sono danneggiati"
-#: src/xz/message.c:838
+#: ../src/xz/message.c:834
msgid "Unexpected end of input"
msgstr "Fine dell'input non attesa"
-#: src/xz/message.c:886
+#: ../src/xz/message.c:885
#, 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:1053
+#: ../src/xz/message.c:1052
#, c-format
msgid "%s: Filter chain: %s\n"
msgstr "%s: catena di filtri: %s\n"
-#: src/xz/message.c:1063
+#. Print this with V_WARNING instead of V_ERROR to prevent it from
+#. showing up when --quiet has been specified.
+#: ../src/xz/message.c:1062
#, c-format
msgid "Try `%s --help' for more information."
msgstr "Provare \"%s --help\" per maggiori informazioni."
-#: src/xz/message.c:1089
+#: ../src/xz/message.c:1088
#, c-format
msgid ""
"Usage: %s [OPTION]... [FILE]...\n"
@@ -492,18 +527,18 @@ msgstr ""
"Comprime o estrae i FILE nel formato .xz.\n"
"\n"
-#: src/xz/message.c:1096
+#: ../src/xz/message.c:1095
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:1100
+#: ../src/xz/message.c:1099
msgid " Operation mode:\n"
msgstr " Modalità di operazione:\n"
-#: src/xz/message.c:1103
+#: ../src/xz/message.c:1102
msgid ""
" -z, --compress force compression\n"
" -d, --decompress force decompression\n"
@@ -515,7 +550,7 @@ msgstr ""
" -t, --test Verifica l'integrità dei file compressi\n"
" -l, --list Elenca informazioni sui file .xz"
-#: src/xz/message.c:1109
+#: ../src/xz/message.c:1108
msgid ""
"\n"
" Operation modifiers:\n"
@@ -523,7 +558,7 @@ msgstr ""
"\n"
" Modificatori di operazioni:\n"
-#: src/xz/message.c:1112
+#: ../src/xz/message.c:1111
msgid ""
" -k, --keep keep (don't delete) input files\n"
" -f, --force force overwrite of output file and (de)compress links\n"
@@ -536,7 +571,7 @@ msgstr ""
" -c, --stdout Scrive sullo standard output e non elimina i file di "
"input"
-#: src/xz/message.c:1118
+#: ../src/xz/message.c:1117
msgid ""
" --no-sparse do not create sparse files when decompressing\n"
" -S, --suffix=.SUF use the suffix `.SUF' on compressed files\n"
@@ -556,7 +591,7 @@ msgstr ""
" di newline\n"
" --files0=[FILE] Come --files ma usa il carattere null come terminatore"
-#: src/xz/message.c:1126
+#: ../src/xz/message.c:1125
msgid ""
"\n"
" Basic file format and compression options:\n"
@@ -564,7 +599,7 @@ msgstr ""
"\n"
" Formato file di base e opzioni di compressione:\n"
-#: src/xz/message.c:1128
+#: ../src/xz/message.c:1127
msgid ""
" -F, --format=FMT file format to encode or decode; possible values are\n"
" `auto' (default), `xz', `lzma', and `raw'\n"
@@ -579,12 +614,12 @@ msgstr ""
"attenzione),\n"
" \"crc32\", \"crc64\" (predefinito) o \"sha256\""
-#: src/xz/message.c:1135
+#: ../src/xz/message.c:1134
msgid ""
" -0 ... -9 compression preset; default is 6; take compressor "
"*and*\n"
-" decompressor memory usage into account before using 7-"
-"9!"
+" decompressor memory usage into account before using "
+"7-9!"
msgstr ""
" -0 ... -9 Preset di compressione; predefinito è 6; tenere a "
"mente\n"
@@ -592,7 +627,7 @@ msgstr ""
"prima\n"
" di usare 7-9"
-#: src/xz/message.c:1139
+#: ../src/xz/message.c:1138
msgid ""
" -e, --extreme try to improve compression ratio by using more CPU "
"time;\n"
@@ -603,7 +638,7 @@ msgstr ""
"di\n"
" memoria in fase di estrazione"
-#: src/xz/message.c:1144
+#: ../src/xz/message.c:1143
#, no-c-format
msgid ""
" --memlimit-compress=LIMIT\n"
@@ -621,7 +656,7 @@ msgstr ""
"byte,\n"
" % della memoria RAM oppure 0 per il valore predefinito"
-#: src/xz/message.c:1151
+#: ../src/xz/message.c:1150
msgid ""
" --no-adjust if compression settings exceed the memory usage "
"limit,\n"
@@ -633,7 +668,7 @@ msgstr ""
" utilizzo della memoria, lancia un errore invece di\n"
" utilizzare valori più piccoli"
-#: src/xz/message.c:1157
+#: ../src/xz/message.c:1156
msgid ""
"\n"
" Custom filter chain for compression (alternative for using presets):"
@@ -642,7 +677,7 @@ msgstr ""
" Catena di filtri personalizzati per la compressione (alternative per\n"
" l'utilizzo di preset):"
-#: src/xz/message.c:1166
+#: ../src/xz/message.c:1165
msgid ""
"\n"
" --lzma1[=OPTS] LZMA1 or LZMA2; OPTS is a comma-separated list of zero "
@@ -672,8 +707,8 @@ msgstr ""
" (4KiB - 1536MiB; 8MiB)\n"
" lc=NUM Numero di bit letterali di contesto (0-4; "
"3)\n"
-" lp=NUM Numero di bit letterali di posizione (0-"
-"4; 0)\n"
+" lp=NUM Numero di bit letterali di posizione "
+"(0-4; 0)\n"
" pb=NUM Numero di bit di posizione (0-4; 2)\n"
" mode=MODE Modalità di compressione\n"
" (fast, normal; normal)\n"
@@ -685,7 +720,7 @@ msgstr ""
"0=automatica\n"
" (predefinito)"
-#: src/xz/message.c:1181
+#: ../src/xz/message.c:1180
msgid ""
"\n"
" --x86[=OPTS] x86 BCJ filter (32-bit and 64-bit)\n"
@@ -708,7 +743,7 @@ msgstr ""
" start=NUM Offset iniziale per le conversioni\n"
" (predefinito=0)"
-#: src/xz/message.c:1193
+#: ../src/xz/message.c:1192
msgid ""
"\n"
" --delta[=OPTS] Delta filter; valid OPTS (valid values; default):\n"
@@ -720,7 +755,7 @@ msgstr ""
" dist=NUM Distanza tra byte sottratti\n"
" gli uni dagli altri (1-256; 1)"
-#: src/xz/message.c:1201
+#: ../src/xz/message.c:1200
msgid ""
"\n"
" Other options:\n"
@@ -728,7 +763,7 @@ msgstr ""
"\n"
" Altre opzioni:\n"
-#: src/xz/message.c:1204
+#: ../src/xz/message.c:1203
msgid ""
" -q, --quiet suppress warnings; specify twice to suppress errors "
"too\n"
@@ -741,16 +776,16 @@ msgstr ""
"ancora\n"
" più prolisso"
-#: src/xz/message.c:1209
+#: ../src/xz/message.c:1208
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:1211
+#: ../src/xz/message.c:1210
msgid ""
" --robot use machine-parsable messages (useful for scripts)"
msgstr " --robot Usa messaggi analizzabili (utile per gli script)"
-#: src/xz/message.c:1214
+#: ../src/xz/message.c:1213
msgid ""
" --info-memory display the total amount of RAM and the currently "
"active\n"
@@ -760,7 +795,7 @@ msgstr ""
"attuale\n"
" attivo di utilizzo della memore ed esce"
-#: src/xz/message.c:1217
+#: ../src/xz/message.c:1216
msgid ""
" -h, --help display the short help (lists only the basic options)\n"
" -H, --long-help display this long help and exit"
@@ -768,7 +803,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:1221
+#: ../src/xz/message.c:1220
msgid ""
" -h, --help display this short help and exit\n"
" -H, --long-help display the long help (lists also the advanced options)"
@@ -776,11 +811,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:1226
+#: ../src/xz/message.c:1225
msgid " -V, --version display the version number and exit"
msgstr " -V, --version Stampa il numero della versione ed esce"
-#: src/xz/message.c:1228
+#: ../src/xz/message.c:1227
msgid ""
"\n"
"With no FILE, or when FILE is -, read standard input.\n"
@@ -792,51 +827,51 @@ 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:1234
+#: ../src/xz/message.c:1233
#, 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:1236
+#: ../src/xz/message.c:1235
#, c-format
msgid "%s home page: <%s>\n"
msgstr "Sito web di %s: <%s>\n"
-#: src/xz/options.c:86
+#: ../src/xz/options.c:86
#, c-format
msgid "%s: Options must be `name=value' pairs separated with commas"
msgstr ""
"%s: le opzioni devono essere coppie \"nome=valore\" separate da virgole"
-#: src/xz/options.c:93
+#: ../src/xz/options.c:93
#, c-format
msgid "%s: Invalid option name"
msgstr "%s: nome opzione non valido"
-#: src/xz/options.c:113
+#: ../src/xz/options.c:113
#, c-format
msgid "%s: Invalid option value"
msgstr "%s: valore dell'opzione non valido"
-#: src/xz/options.c:247
+#: ../src/xz/options.c:247
#, c-format
msgid "Unsupported LZMA1/LZMA2 preset: %s"
msgstr "Preset LZMA/LZMA2 non supportato: %s"
-#: src/xz/options.c:355
+#: ../src/xz/options.c:355
msgid "The sum of lc and lp must not exceed 4"
msgstr "La somma di lc e lp non deve superare 4"
-#: src/xz/options.c:359
+#: ../src/xz/options.c:359
#, c-format
msgid "The selected match finder requires at least nice=%<PRIu32>"
msgstr ""
-"Lo strumento per cercare corrispondenze selezionato richiede almeno nice=%"
-"<PRIu32>"
+"Lo strumento per cercare corrispondenze selezionato richiede almeno nice="
+"%<PRIu32>"
-#: src/xz/suffix.c:79 src/xz/suffix.c:164
+#: ../src/xz/suffix.c:101 ../src/xz/suffix.c:194
#, c-format
msgid ""
"%s: With --format=raw, --suffix=.SUF is required unless writing to stdout"
@@ -844,59 +879,59 @@ msgstr ""
"%s: con --format=raw, --suffix=.SUF è richiesto a meno che non si scriva "
"sullo stdout"
-#: src/xz/suffix.c:99
+#: ../src/xz/suffix.c:121
#, c-format
msgid "%s: Filename has an unknown suffix, skipping"
msgstr "%s: il nome del file ha un suffisso sconosciuto, viene saltato"
-#: src/xz/suffix.c:154
+#: ../src/xz/suffix.c:175 ../src/xz/suffix.c:184
#, c-format
msgid "%s: File already has `%s' suffix, skipping"
msgstr "%s: il file ha già il suffisso \"%s\", viene saltato"
-#: src/xz/suffix.c:205
+#: ../src/xz/suffix.c:235
#, c-format
msgid "%s: Invalid filename suffix"
msgstr "%s: suffisso del nome del file non valido"
-#: src/xz/util.c:61
+#: ../src/xz/util.c:61
#, c-format
msgid "%s: Value is not a non-negative decimal integer"
msgstr "%s: il valore non è un numero intero decimale non-negativo"
-#: src/xz/util.c:103
+#: ../src/xz/util.c:103
#, c-format
msgid "%s: Invalid multiplier suffix"
msgstr "%s: suffisso del moltiplicatore non valido"
-#: src/xz/util.c:105
+#: ../src/xz/util.c:105
msgid "Valid suffixes are `KiB' (2^10), `MiB' (2^20), and `GiB' (2^30)."
msgstr ""
"I suffissi validi sono \"KiB\" (2^10), \"MiB\" (2^20), e \"GiB\" (2^30)."
-#: src/xz/util.c:122
+#: ../src/xz/util.c:122
#, c-format
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>]"
+"Il valore dell'opzione \"%s\" deve essere nell'intervallo [%<PRIu64>, "
+"%<PRIu64>]"
-#: src/xz/util.c:247
+#: ../src/xz/util.c:247
msgid "Empty filename, skipping"
msgstr "Nome file vuoto, viene saltato"
-#: src/xz/util.c:261
+#: ../src/xz/util.c:261
msgid "Compressed data cannot be read from a terminal"
msgstr "I dati compressi non possono essere letti da un terminale"
-#: src/xz/util.c:274
+#: ../src/xz/util.c:274
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:39
msgid "Writing to standard output failed"
msgstr "Scrittura sullo standard ouput non riuscita"
-#: src/common/tuklib_exit.c:42
+#: ../src/common/tuklib_exit.c:42
msgid "Unknown error"
msgstr "Errore sconosciuto"
diff --git a/po/pl.po b/po/pl.po
new file mode 100644
index 000000000000..f359fae63510
--- /dev/null
+++ b/po/pl.po
@@ -0,0 +1,825 @@
+# Polish translation for xz.
+# This file is in the public domain.
+# Jakub Bogusz <qboosh@pld-linux.org>, 2011.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: xz 5.0.1\n"
+"Report-Msgid-Bugs-To: lasse.collin@tukaani.org\n"
+"POT-Creation-Date: 2011-01-28 20:01+0200\n"
+"PO-Revision-Date: 2011-02-02 16:51+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"
+"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:333
+#, c-format
+msgid "%s: Unknown file format type"
+msgstr "%s: Nieznany typ formatu pliku"
+
+#: src/xz/args.c:356 src/xz/args.c:364
+#, c-format
+msgid "%s: Unsupported integrity check type"
+msgstr "%s: Nieobsługiwany typ kontroli spójności"
+
+#: src/xz/args.c:382
+msgid "Only one file can be specified with `--files' or `--files0'."
+msgstr "Wraz z opcją `--files' lub `--files0' można podać tylko jeden plik."
+
+#: src/xz/args.c:445
+#, c-format
+msgid "The environment variable %s contains too many arguments"
+msgstr "Zmienna środowiskowa %s zawiera zbyt dużo argumentów"
+
+#: src/xz/coder.c:95
+msgid "Maximum number of filters is four"
+msgstr "Maksymalna liczba filtrów to cztery"
+
+#: src/xz/coder.c:108
+msgid "Memory usage limit is too low for the given filter setup."
+msgstr "Limit użycia pamięci jest zbyt mały dla podanej konfiguracji filtra."
+
+#: src/xz/coder.c:129
+msgid "Using a preset in raw mode is discouraged."
+msgstr "Użycie ustawień predefiniowanych w trybie surowym jest odradzane."
+
+#: src/xz/coder.c:131
+msgid "The exact options of the presets may vary between software versions."
+msgstr "Dokładne opcje ustawień predefiniowanych mogą różnić się między wersjami oprogramowania."
+
+#: src/xz/coder.c:157
+msgid "The .lzma format supports only the LZMA1 filter"
+msgstr "Format .lzma obsługuje tylko filtr LZMA1"
+
+#: src/xz/coder.c:165
+msgid "LZMA1 cannot be used with the .xz format"
+msgstr "LZMA1 nie może być używany z formatem .xz"
+
+#: src/xz/coder.c:182
+msgid "Unsupported filter chain or filter options"
+msgstr "Nieobsługiwany łańcuch filtrów lub opcje filtra"
+
+#: src/xz/coder.c:190
+#, c-format
+msgid "Decompression will need %s MiB of memory."
+msgstr "Dekompresja będzie wymagała %s MiB pamięci."
+
+#: src/xz/coder.c:247
+#, 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 "Skorygowano rozmiar słownika LZMA%c z %s MiB do %s MiB aby nie przekroczyć limitu użycia pamięci %s MiB"
+
+#. 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:137
+#, 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:144 src/xz/file_io.c:589
+#, c-format
+msgid "%s: Cannot remove: %s"
+msgstr "%s: Nie można usunąć: %s"
+
+#: src/xz/file_io.c:169
+#, 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:175
+#, c-format
+msgid "%s: Cannot set the file group: %s"
+msgstr "%s: Nie można ustawić grupy pliku: %s"
+
+#: src/xz/file_io.c:194
+#, c-format
+msgid "%s: Cannot set the file permissions: %s"
+msgstr "%s: Nie można ustawić uprawnień pliku: %s"
+
+#: src/xz/file_io.c:337 src/xz/file_io.c:420
+#, c-format
+msgid "%s: Is a symbolic link, skipping"
+msgstr "%s: Jest dowiązaniem symbolicznym, pominięto"
+
+#: src/xz/file_io.c:455
+#, c-format
+msgid "%s: Is a directory, skipping"
+msgstr "%s: Jest katalogiem, pominięto"
+
+#: src/xz/file_io.c:461
+#, c-format
+msgid "%s: Not a regular file, skipping"
+msgstr "%s: Nie jest zwykłym plikiem, pominięto"
+
+#: src/xz/file_io.c:478
+#, 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:485
+#, c-format
+msgid "%s: File has sticky bit set, skipping"
+msgstr "%s: Plik ma ustawiony bit sticky, pominięto"
+
+#: src/xz/file_io.c:492
+#, 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:713
+#, 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:725
+#, c-format
+msgid "%s: Closing the file failed: %s"
+msgstr "%s: Zamknięcie pliku nie powiodło się: %s"
+
+#: src/xz/file_io.c:761 src/xz/file_io.c:945
+#, 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:820
+#, c-format
+msgid "%s: Read error: %s"
+msgstr "%s: Błąd odczytu: %s"
+
+#: src/xz/file_io.c:843
+#, c-format
+msgid "%s: Error seeking the file: %s"
+msgstr "%s: Błąd podczas zmiany pozycji w pliku: %s"
+
+#: src/xz/file_io.c:853
+#, c-format
+msgid "%s: Unexpected end of file"
+msgstr "%s: Nieoczekiwany koniec pliku"
+
+#: src/xz/file_io.c:903
+#, c-format
+msgid "%s: Write error: %s"
+msgstr "%s: Błąd zapisu: %s"
+
+#: src/xz/hardware.c:100
+msgid "Disabled"
+msgstr "Wyłączony"
+
+#. TRANSLATORS: Test with "xz --info-memory" to see if
+#. the alignment looks nice.
+#: src/xz/hardware.c:119
+msgid "Total amount of physical memory (RAM): "
+msgstr "Całkowita ilość pamięci fizycznej (RAM): "
+
+#: src/xz/hardware.c:121
+msgid "Memory usage limit for compression: "
+msgstr "Limit użycia pamięci dla kompresji: "
+
+#: src/xz/hardware.c:123
+msgid "Memory usage limit for decompression: "
+msgstr "Limit użycia pamięci dla dekompresji: "
+
+#. 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:62
+msgid "None"
+msgstr "Brak"
+
+#. 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:69
+msgid "Unknown-2"
+msgstr "Nieznany-2"
+
+#: src/xz/list.c:70
+msgid "Unknown-3"
+msgstr "Nieznany-3"
+
+#: src/xz/list.c:72
+msgid "Unknown-5"
+msgstr "Nieznany-5"
+
+#: src/xz/list.c:73
+msgid "Unknown-6"
+msgstr "Nieznany-6"
+
+#: src/xz/list.c:74
+msgid "Unknown-7"
+msgstr "Nieznany-7"
+
+#: src/xz/list.c:75
+msgid "Unknown-8"
+msgstr "Nieznany-8"
+
+#: src/xz/list.c:76
+msgid "Unknown-9"
+msgstr "Nieznany-9"
+
+#: src/xz/list.c:78
+msgid "Unknown-11"
+msgstr "Nieznany11"
+
+#: src/xz/list.c:79
+msgid "Unknown-12"
+msgstr "Nieznany12"
+
+#: src/xz/list.c:80
+msgid "Unknown-13"
+msgstr "Nieznany13"
+
+#: src/xz/list.c:81
+msgid "Unknown-14"
+msgstr "Nieznany14"
+
+#: src/xz/list.c:82
+msgid "Unknown-15"
+msgstr "Nieznany15"
+
+#: src/xz/list.c:126
+#, c-format
+msgid "%s: File is empty"
+msgstr "%s: Plik jest pusty"
+
+#: src/xz/list.c:131
+#, c-format
+msgid "%s: Too small to be a valid .xz file"
+msgstr "%s: Za mały na poprawny plik .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:612
+msgid "Strms Blocks Compressed Uncompressed Ratio Check Filename"
+msgstr "Strum. Bloki Spakowany Rozpakowany Wsp. Kontrola Nazwa pliku"
+
+#: src/xz/list.c:652
+#, c-format
+msgid " Streams: %s\n"
+msgstr " Strumienie: %s\n"
+
+#: src/xz/list.c:654
+#, c-format
+msgid " Blocks: %s\n"
+msgstr " Bloki: %s\n"
+
+#: src/xz/list.c:656
+#, c-format
+msgid " Compressed size: %s\n"
+msgstr " Rozmiar spakowany: %s\n"
+
+#: src/xz/list.c:659
+#, c-format
+msgid " Uncompressed size: %s\n"
+msgstr " Rozmiar rozpakowany: %s\n"
+
+#: src/xz/list.c:662
+#, c-format
+msgid " Ratio: %s\n"
+msgstr " Współczynnik: %s\n"
+
+#: src/xz/list.c:664
+#, c-format
+msgid " Check: %s\n"
+msgstr " Kontrola spójności: %s\n"
+
+#: src/xz/list.c:665
+#, c-format
+msgid " Stream padding: %s\n"
+msgstr " Wyrównanie strumienia: %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:693
+msgid ""
+" Streams:\n"
+" Stream Blocks CompOffset UncompOffset CompSize UncompSize Ratio Check Padding"
+msgstr ""
+" Strumienie:\n"
+" Strumień Bloki Offset spak. Offset rozp. Rozm.spak. Rozm.rozp. Wsp. Kontrola Wyrównanie"
+
+#. TRANSLATORS: The second line is column headings. All
+#. except Check are right aligned; Check is left aligned.
+#: src/xz/list.c:748
+#, c-format
+msgid ""
+" Blocks:\n"
+" Stream Block CompOffset UncompOffset TotalSize UncompSize Ratio Check"
+msgstr ""
+" Bloki:\n"
+" Strumień Blok Offset spak. Offset rozp. Rozm.całkowity Rozm.rozp. Wsp. Kontrola"
+
+#. 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:760
+#, c-format
+msgid " CheckVal %*s Header Flags CompSize MemUsage Filters"
+msgstr " S.kontr. %*sNagłówek Flagi Rozm. spak. Uż.pamięci Filtry"
+
+#: src/xz/list.c:838 src/xz/list.c:1007
+#, c-format
+msgid " Memory needed: %s MiB\n"
+msgstr " Wymagana pamięć: %s MiB\n"
+
+#: src/xz/list.c:840 src/xz/list.c:1009
+#, c-format
+msgid " Sizes in headers: %s\n"
+msgstr " Rozmiar w nagłówkach: %s\n"
+
+#: src/xz/list.c:841 src/xz/list.c:1010
+msgid "Yes"
+msgstr "Tak"
+
+#: src/xz/list.c:841 src/xz/list.c:1010
+msgid "No"
+msgstr "Nie"
+
+#. 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:986
+#, c-format
+msgid "%s file\n"
+msgid_plural "%s files\n"
+msgstr[0] "%s plik\n"
+msgstr[1] "%s pliki\n"
+msgstr[2] "%s plików\n"
+
+#: src/xz/list.c:999
+msgid "Totals:"
+msgstr "Sumarycznie:"
+
+#: src/xz/list.c:1000
+#, c-format
+msgid " Number of files: %s\n"
+msgstr " Liczba plików: %s\n"
+
+#: src/xz/list.c:1072
+msgid "--list works only on .xz files (--format=xz or --format=auto)"
+msgstr "--list działa tylko z plikami .xz (--format=xz lub --format=auto)"
+
+#: src/xz/list.c:1078
+msgid "--list does not support reading from standard input"
+msgstr "--list nie obsługuje odczytu ze standardowego wejścia"
+
+#: src/xz/main.c:89
+#, c-format
+msgid "%s: Error reading filenames: %s"
+msgstr "%s: Błąd odczytu nazw plików: %s"
+
+#: src/xz/main.c:96
+#, c-format
+msgid "%s: Unexpected end of input when reading filenames"
+msgstr "%s: Nieoczekiwany koniec wejścia podczas odczytu nazw plików"
+
+#: 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: Napotkano znak NUL podczas odczytu nazw plików; może miało być `--files0' zamiast `--files'?"
+
+#: src/xz/main.c:174
+msgid "Compression and decompression with --robot are not supported yet."
+msgstr "Kompresja i dekompresja z opcją --robot nie jest jeszcze obsługiwana."
+
+#: src/xz/main.c:231
+msgid "Cannot read data from standard input when reading filenames from standard input"
+msgstr "Nie można odczytać danych ze standardowego wejścia przy czytaniu nazw plików ze standardowego wejścia"
+
+#: src/xz/message.c:792 src/xz/message.c:842
+msgid "Internal error (bug)"
+msgstr "Błąd wewnętrzny"
+
+#: src/xz/message.c:799
+msgid "Cannot establish signal handlers"
+msgstr "Nie można ustawić obsługi sygnałów"
+
+#: src/xz/message.c:808
+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:811
+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:818
+msgid "Memory usage limit reached"
+msgstr "Osiągnięto limit użycia pamięci"
+
+#: src/xz/message.c:821
+msgid "File format not recognized"
+msgstr "Nie rozpoznany format pliku"
+
+#: src/xz/message.c:824
+msgid "Unsupported options"
+msgstr "Nieobsługiwane opcje"
+
+#: src/xz/message.c:827
+msgid "Compressed data is corrupt"
+msgstr "Dane skompresowane są uszkodzone"
+
+#: src/xz/message.c:830
+msgid "Unexpected end of input"
+msgstr "Nieoczekiwany koniec wejścia"
+
+#: src/xz/message.c:881
+#, 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:1048
+#, c-format
+msgid "%s: Filter chain: %s\n"
+msgstr "%s: Łańcuch filtrów: %s\n"
+
+#: src/xz/message.c:1058
+#, c-format
+msgid "Try `%s --help' for more information."
+msgstr "Polecenie `%s --help' pokaże więcej informacji."
+
+#: src/xz/message.c:1084
+#, c-format
+msgid ""
+"Usage: %s [OPTION]... [FILE]...\n"
+"Compress or decompress FILEs in the .xz format.\n"
+"\n"
+msgstr ""
+"Składnia: %s [OPCJA]... [PLIK]...\n"
+"Kompresja lub dekompresja PLIKÓW w formacie .xz.\n"
+"\n"
+
+#: src/xz/message.c:1091
+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:1095
+msgid " Operation mode:\n"
+msgstr " Tryb pracy:\n"
+
+#: src/xz/message.c:1098
+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 wymuszenie kompresji\n"
+" -d, --decompress wymuszenie dekompresji\n"
+" -t, --test sprawdzenie spójności plików skompresowanych\n"
+" -l, --list wypisanie informacji o plikach .xz"
+
+#: src/xz/message.c:1104
+msgid ""
+"\n"
+" Operation modifiers:\n"
+msgstr ""
+"\n"
+" Modyfikatory operacji:\n"
+
+#: src/xz/message.c:1107
+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 zachowanie (nieusuwanie) plików wejściowych\n"
+" -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:1113
+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 nietworzenie plików rzadkich podczas dekompresji\n"
+" -S, --suffix=.ROZ użycie rozszerzenia `.ROZ' dla plików skompresowanych\n"
+" --files[=PLIK] odczyt nazw plików do przetworzenia z PLIKU; jeśli PLIK\n"
+" nie został podany, nazwy są czytane ze standardowego\n"
+" 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:1121
+msgid ""
+"\n"
+" Basic file format and compression options:\n"
+msgstr ""
+"\n"
+" Podstawowe opcje formatu pliku i kompresji:\n"
+
+#: src/xz/message.c:1123
+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=FORM format pliki do kodowania lub dekodowania; możliwe to\n"
+" `auto' (domyślny), `xz', 'lzma' i `raw'\n"
+" -C, --check=TEST typ kontroli spójności: `none' (ostrożnie!),\n"
+" `crc32', `crc64' (domyślny) lub `sha256'"
+
+#: src/xz/message.c:1130
+msgid ""
+" -0 ... -9 compression preset; default is 6; take compressor *and*\n"
+" decompressor memory usage into account before using 7-9!"
+msgstr ""
+" -0 ... -9 predefiniowane opcje kompresji; domyślna to 6; przed\n"
+" użyciem wartości 7-9 należy wziąć pod uwagę wykorzystanie\n"
+" pamięci przy kompresji *oraz* dekompresji!"
+
+#: src/xz/message.c:1134
+msgid ""
+" -e, --extreme try to improve compression ratio by using more CPU time;\n"
+" does not affect decompressor memory requirements"
+msgstr ""
+" -e, --extreme próba poprawy współczynnika kompresji z użyciem większej\n"
+" ilości czasu procesora; nie wpływa na wymagania\n"
+" pamięciowe dekompresora"
+
+#: src/xz/message.c:1139
+#, 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=LIMIT\n"
+" --memlimit-decompress=LIMIT\n"
+" -M, --memlimit=LIMIT\n"
+" ustawienie limitu użycia pamięci dla kompresji,\n"
+" dekompresji lub obu; LIMIT jest w bajtach, % RAM lub 0\n"
+" dla limitów domyślnych"
+
+#: src/xz/message.c:1146
+msgid ""
+" --no-adjust if compression settings exceed the memory usage limit,\n"
+" give an error instead of adjusting the settings downwards"
+msgstr ""
+" --no-adjust jeśli ustawienia kompresji przekraczają limit użycia\n"
+" pamięci, zostanie zgłoszony błąd zamiast zmniejszania\n"
+" ustawień"
+
+#: src/xz/message.c:1152
+msgid ""
+"\n"
+" Custom filter chain for compression (alternative for using presets):"
+msgstr ""
+"\n"
+" Łańcuch własnych filtrów do kompresji (alternatywa do używania -0 .. -9):"
+
+#: src/xz/message.c:1161
+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[=OPCJE] LZMA1 lub LZMA2; OPCJE to oddzielona przecinkami lista\n"
+" --lzma2[=OPCJE] zera lub więcej następujących opcji (w nawiasach wartości\n"
+" poprawne; domyślne):\n"
+" preset=PRE ustawienie opcji na predefiniowane (0-9[e])\n"
+" dict=ILE rozmiar słownika (4KiB - 1536MiB; 8MiB)\n"
+" lc=ILE liczba bitów kontekstu literału (0-4; 3)\n"
+" lp=ILE liczba bitów pozycji literału (0-4; 0)\n"
+" pp=ILE liczba bitów pozycji (0-4; 2)\n"
+" mode=TRYB tryb kompresji (fast, normal; normal)\n"
+" nice=ILE długość dopasowania (2-273; 64)\n"
+" mf=NAZWA dopasowywacz (hc3, hc4, bt2, bt3, bt4; bt4)\n"
+" depth=ILE maks. głębokość szukania; 0=auto (domyślne)"
+
+#: src/xz/message.c:1176
+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[=OPCJE] Filtr BCJ x86 (32-bitowy lub 64-bitowy)\n"
+" --powerpc[=OPCJE] Filtr BCJ PowerPC (tylko big-endian)\n"
+" --ia64[=OPCJE] Filtr BCJ IA-64 (Itanium)\n"
+" --arm[=OPCJE] Filtr BCJ ARM (tylko little-endian)\n"
+" --armthumb[=OPCJE] Filtr BCJ ARM-Thumb (tylko little-endian)\n"
+" --sparc[=OPCJE] Filtr BCJ SPARC\n"
+" Poprawne OPCJE dla wszystkich filtrów BCJ:\n"
+" start=ILE offset początku konwersji (domyślnie=0)"
+
+#: src/xz/message.c:1188
+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[=OPCJE] Filtr delta; poprawne OPCJE (poprawne wart.; domyślne):\n"
+" dist=ILE odległość między bajtami odejmowanymi od\n"
+" siebie (1-256; 1)"
+
+#: src/xz/message.c:1196
+msgid ""
+"\n"
+" Other options:\n"
+msgstr ""
+"\n"
+" Inne opcje:\n"
+
+#: src/xz/message.c:1199
+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 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:1204
+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:1206
+msgid " --robot use machine-parsable messages (useful for scripts)"
+msgstr " --robot komunikaty w formacie dla maszyny (do skryptów)"
+
+#: src/xz/message.c:1209
+msgid ""
+" --info-memory display the total amount of RAM and the currently active\n"
+" memory usage limits, and exit"
+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:1212
+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 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:1216
+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 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:1221
+msgid " -V, --version display the version number and exit"
+msgstr " -V, --version wyświetlenie informacji o wersji i zakończenie"
+
+#: src/xz/message.c:1223
+msgid ""
+"\n"
+"With no FILE, or when FILE is -, read standard input.\n"
+msgstr ""
+"\n"
+"Jeśli nie podano PLIKU lub PLIK to -, czytane jest standardowe wejście.\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:1229
+#, c-format
+msgid "Report bugs to <%s> (in English or Finnish).\n"
+msgstr ""
+"Błędy prosimy zgłaszać na adres <%s>\n"
+"(w języku angielskim lub fińskim).\n"
+"Błędy w tłumaczeniu prosimy zgłaszać na adres\n"
+"<translation-team-pl@lists.sourceforge.net>.\n"
+
+#: src/xz/message.c:1231
+#, c-format
+msgid "%s home page: <%s>\n"
+msgstr "Strona domowa %s: <%s>\n"
+
+#: src/xz/options.c:86
+#, c-format
+msgid "%s: Options must be `name=value' pairs separated with commas"
+msgstr "%s: Opcje muszą być parami `nazwa=wartość' rozdzielonymi przecinkami"
+
+#: src/xz/options.c:93
+#, c-format
+msgid "%s: Invalid option name"
+msgstr "%s: Błędna nazwa opcji"
+
+#: src/xz/options.c:113
+#, c-format
+msgid "%s: Invalid option value"
+msgstr "%s: Błędna wartość opcji"
+
+#: src/xz/options.c:247
+#, c-format
+msgid "Unsupported LZMA1/LZMA2 preset: %s"
+msgstr "Nieobsługiwane ustawienie predefiniowane LZMA1/LZMA2: %s"
+
+#: src/xz/options.c:355
+msgid "The sum of lc and lp must not exceed 4"
+msgstr "Suma lc i lp nie może przekroczyć 4"
+
+#: src/xz/options.c:359
+#, c-format
+msgid "The selected match finder requires at least nice=%<PRIu32>"
+msgstr "Wybrany dopasowywacz wymaga przynajmniej nice=%<PRIu32>"
+
+#: src/xz/suffix.c:104 src/xz/suffix.c:189
+#, c-format
+msgid "%s: With --format=raw, --suffix=.SUF is required unless writing to stdout"
+msgstr "%s: Przy --format=raw i zapisie do pliku wymagana jest opcja --suffix=.ROZ"
+
+#: src/xz/suffix.c:124
+#, c-format
+msgid "%s: Filename has an unknown suffix, skipping"
+msgstr "%s: Nazwa pliku ma nieznane rozszerzenie, pominięto"
+
+#: src/xz/suffix.c:179
+#, c-format
+msgid "%s: File already has `%s' suffix, skipping"
+msgstr "%s: Plik już ma rozszerzenie `%s', pominięto"
+
+#: src/xz/suffix.c:230
+#, c-format
+msgid "%s: Invalid filename suffix"
+msgstr "%s: Błędne rozszerzenie nazwy pliku"
+
+#: src/xz/util.c:61
+#, c-format
+msgid "%s: Value is not a non-negative decimal integer"
+msgstr "%s: Wartość nie jest nieujemną liczbą całkowitą"
+
+#: src/xz/util.c:103
+#, c-format
+msgid "%s: Invalid multiplier suffix"
+msgstr "%s: Błędny przyrostek mnożnika"
+
+#: src/xz/util.c:105
+msgid "Valid suffixes are `KiB' (2^10), `MiB' (2^20), and `GiB' (2^30)."
+msgstr "Poprawne przyrostki to `KiB' (2^10), `MiB' (2^20) i `GiB' (2^30)."
+
+#: src/xz/util.c:122
+#, c-format
+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:247
+msgid "Empty filename, skipping"
+msgstr "Pusta nazwa pliku, pominięto"
+
+#: src/xz/util.c:261
+msgid "Compressed data cannot be read from a terminal"
+msgstr "Dane skompresowane nie mogą być czytane z terminala"
+
+#: src/xz/util.c:274
+msgid "Compressed data cannot be written to a terminal"
+msgstr "Dane skompresowane nie mogą być zapisywane na terminal"
+
+#: src/common/tuklib_exit.c:39
+msgid "Writing to standard output failed"
+msgstr "Zapis na standardowe wyjście nie powiódł się"
+
+#: src/common/tuklib_exit.c:42
+msgid "Unknown error"
+msgstr "Nieznany błąd"
diff --git a/src/common/tuklib_open_stdxxx.c b/src/common/tuklib_open_stdxxx.c
index 08bc60d8cf87..26702a6afab0 100644
--- a/src/common/tuklib_open_stdxxx.c
+++ b/src/common/tuklib_open_stdxxx.c
@@ -39,12 +39,14 @@ tuklib_open_stdxxx(int err_status)
| (i == 0 ? O_WRONLY : O_RDONLY));
if (fd != i) {
+ if (fd != -1)
+ (void)close(fd);
+
// Something went wrong. Exit with the
// exit status we were given. Don't try
// to print an error message, since stderr
// may very well be non-existent. This
// error should be extremely rare.
- (void)close(fd);
exit(err_status);
}
}
diff --git a/src/liblzma/api/lzma/block.h b/src/liblzma/api/lzma/block.h
index 3019bf916fec..8a4bf2323ccc 100644
--- a/src/liblzma/api/lzma/block.h
+++ b/src/liblzma/api/lzma/block.h
@@ -483,6 +483,7 @@ extern LZMA_API(size_t) lzma_block_buffer_bound(size_t uncompressed_size)
*
* \return - LZMA_OK: Encoding was successful.
* - LZMA_BUF_ERROR: Not enough output buffer space.
+ * - LZMA_UNSUPPORTED_CHECK
* - LZMA_OPTIONS_ERROR
* - LZMA_MEM_ERROR
* - LZMA_DATA_ERROR
diff --git a/src/liblzma/api/lzma/container.h b/src/liblzma/api/lzma/container.h
index 83e70b44f220..7a9ffc645788 100644
--- a/src/liblzma/api/lzma/container.h
+++ b/src/liblzma/api/lzma/container.h
@@ -66,6 +66,10 @@
* This function is a wrapper for lzma_raw_encoder_memusage().
*
* \param preset Compression preset (level and possible flags)
+ *
+ * \return Number of bytes of memory required for the given
+ * preset when encoding. If an error occurs, for example
+ * due to unsupported preset, UINT64_MAX is returned.
*/
extern LZMA_API(uint64_t) lzma_easy_encoder_memusage(uint32_t preset)
lzma_nothrow lzma_attr_pure;
@@ -77,6 +81,11 @@ extern LZMA_API(uint64_t) lzma_easy_encoder_memusage(uint32_t preset)
* This function is a wrapper for lzma_raw_decoder_memusage().
*
* \param preset Compression preset (level and possible flags)
+ *
+ * \return Number of bytes of memory required to decompress a file
+ * that was compressed using the given preset. If an error
+ * occurs, for example due to unsupported preset, UINT64_MAX
+ * is returned.
*/
extern LZMA_API(uint64_t) lzma_easy_decoder_memusage(uint32_t preset)
lzma_nothrow lzma_attr_pure;
@@ -148,6 +157,7 @@ extern LZMA_API(lzma_ret) lzma_easy_encoder(
*
* \return - LZMA_OK: Encoding was successful.
* - LZMA_BUF_ERROR: Not enough output buffer space.
+ * - LZMA_UNSUPPORTED_CHECK
* - LZMA_OPTIONS_ERROR
* - LZMA_MEM_ERROR
* - LZMA_DATA_ERROR
@@ -171,6 +181,7 @@ extern LZMA_API(lzma_ret) lzma_easy_buffer_encode(
*
* \return - LZMA_OK: Initialization was successful.
* - LZMA_MEM_ERROR
+ * - LZMA_UNSUPPORTED_CHECK
* - LZMA_OPTIONS_ERROR
* - LZMA_PROG_ERROR
*/
@@ -250,6 +261,7 @@ extern LZMA_API(size_t) lzma_stream_buffer_bound(size_t uncompressed_size)
*
* \return - LZMA_OK: Encoding was successful.
* - LZMA_BUF_ERROR: Not enough output buffer space.
+ * - LZMA_UNSUPPORTED_CHECK
* - LZMA_OPTIONS_ERROR
* - LZMA_MEM_ERROR
* - LZMA_DATA_ERROR
diff --git a/src/liblzma/api/lzma/filter.h b/src/liblzma/api/lzma/filter.h
index efd036f7f041..e0bc163ad35a 100644
--- a/src/liblzma/api/lzma/filter.h
+++ b/src/liblzma/api/lzma/filter.h
@@ -131,7 +131,9 @@ extern LZMA_API(lzma_ret) lzma_filters_copy(const lzma_filter *src,
* .id == LZMA_VLI_UNKNOWN.
*
* \return Number of bytes of memory required for the given
- * filter chain when encoding.
+ * filter chain when encoding. If an error occurs,
+ * for example due to unsupported filter chain,
+ * UINT64_MAX is returned.
*/
extern LZMA_API(uint64_t) lzma_raw_encoder_memusage(const lzma_filter *filters)
lzma_nothrow lzma_attr_pure;
@@ -148,7 +150,9 @@ extern LZMA_API(uint64_t) lzma_raw_encoder_memusage(const lzma_filter *filters)
* .id == LZMA_VLI_UNKNOWN.
*
* \return Number of bytes of memory required for the given
- * filter chain when decoding.
+ * filter chain when decoding. If an error occurs,
+ * for example due to unsupported filter chain,
+ * UINT64_MAX is returned.
*/
extern LZMA_API(uint64_t) lzma_raw_decoder_memusage(const lzma_filter *filters)
lzma_nothrow lzma_attr_pure;
diff --git a/src/liblzma/api/lzma/version.h b/src/liblzma/api/lzma/version.h
index 43c211fa960d..92266637760a 100644
--- a/src/liblzma/api/lzma/version.h
+++ b/src/liblzma/api/lzma/version.h
@@ -22,7 +22,7 @@
*/
#define LZMA_VERSION_MAJOR 5
#define LZMA_VERSION_MINOR 0
-#define LZMA_VERSION_PATCH 1
+#define LZMA_VERSION_PATCH 3
#define LZMA_VERSION_STABILITY LZMA_VERSION_STABILITY_STABLE
#ifndef LZMA_VERSION_COMMIT
diff --git a/src/liblzma/common/alone_decoder.c b/src/liblzma/common/alone_decoder.c
index 039b42859546..678c79e65433 100644
--- a/src/liblzma/common/alone_decoder.c
+++ b/src/liblzma/common/alone_decoder.c
@@ -46,7 +46,7 @@ struct lzma_coder_s {
static lzma_ret
alone_decode(lzma_coder *coder,
- lzma_allocator *allocator lzma_attribute((unused)),
+ lzma_allocator *allocator lzma_attribute((__unused__)),
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,
diff --git a/src/liblzma/common/alone_encoder.c b/src/liblzma/common/alone_encoder.c
index d8c0170f0238..eb1697e99753 100644
--- a/src/liblzma/common/alone_encoder.c
+++ b/src/liblzma/common/alone_encoder.c
@@ -32,7 +32,7 @@ struct lzma_coder_s {
static lzma_ret
alone_encode(lzma_coder *coder,
- lzma_allocator *allocator lzma_attribute((unused)),
+ lzma_allocator *allocator lzma_attribute((__unused__)),
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,
@@ -103,7 +103,7 @@ alone_encoder_init(lzma_next_coder *next, lzma_allocator *allocator,
if (options->dict_size < LZMA_DICT_SIZE_MIN)
return LZMA_OPTIONS_ERROR;
- // Round up to to the next 2^n or 2^n + 2^(n - 1) depending on which
+ // Round up to the next 2^n or 2^n + 2^(n - 1) depending on which
// one is the next unless it is UINT32_MAX. While the header would
// allow any 32-bit integer, we do this to keep the decoder of liblzma
// accepting the resulting files.
diff --git a/src/liblzma/common/block_buffer_encoder.c b/src/liblzma/common/block_buffer_encoder.c
index a8f71c2140e0..519c6a684d76 100644
--- a/src/liblzma/common/block_buffer_encoder.c
+++ b/src/liblzma/common/block_buffer_encoder.c
@@ -226,16 +226,23 @@ lzma_block_buffer_encode(lzma_block *block, lzma_allocator *allocator,
const uint8_t *in, size_t in_size,
uint8_t *out, size_t *out_pos, size_t out_size)
{
- // Sanity checks
- if (block == NULL || block->filters == NULL
- || (in == NULL && in_size != 0) || out == NULL
+ // Validate the arguments.
+ if (block == NULL || (in == NULL && in_size != 0) || out == NULL
|| out_pos == NULL || *out_pos > out_size)
return LZMA_PROG_ERROR;
- // Check the version field.
+ // The contents of the structure may depend on the version so
+ // check the version before validating the contents of *block.
if (block->version != 0)
return LZMA_OPTIONS_ERROR;
+ if ((unsigned int)(block->check) > LZMA_CHECK_ID_MAX
+ || block->filters == NULL)
+ return LZMA_PROG_ERROR;
+
+ if (!lzma_check_is_supported(block->check))
+ return LZMA_UNSUPPORTED_CHECK;
+
// Size of a Block has to be a multiple of four, so limit the size
// here already. This way we don't need to check it again when adding
// Block Padding.
@@ -243,8 +250,7 @@ lzma_block_buffer_encode(lzma_block *block, lzma_allocator *allocator,
// Get the size of the Check field.
const size_t check_size = lzma_check_size(block->check);
- if (check_size == UINT32_MAX)
- return LZMA_PROG_ERROR;
+ assert(check_size != UINT32_MAX);
// Reserve space for the Check field.
if (out_size - *out_pos <= check_size)
diff --git a/src/liblzma/common/block_encoder.c b/src/liblzma/common/block_encoder.c
index ca5152357e7d..1eeb502b7f83 100644
--- a/src/liblzma/common/block_encoder.c
+++ b/src/liblzma/common/block_encoder.c
@@ -144,7 +144,7 @@ block_encoder_end(lzma_coder *coder, lzma_allocator *allocator)
static lzma_ret
block_encoder_update(lzma_coder *coder, lzma_allocator *allocator,
- const lzma_filter *filters lzma_attribute((unused)),
+ const lzma_filter *filters lzma_attribute((__unused__)),
const lzma_filter *reversed_filters)
{
if (coder->sequence != SEQ_CODE)
@@ -161,6 +161,11 @@ lzma_block_encoder_init(lzma_next_coder *next, lzma_allocator *allocator,
{
lzma_next_coder_init(&lzma_block_encoder_init, next, allocator);
+ if (block == NULL)
+ return LZMA_PROG_ERROR;
+
+ // The contents of the structure may depend on the version so
+ // check the version first.
if (block->version != 0)
return LZMA_OPTIONS_ERROR;
diff --git a/src/liblzma/common/common.c b/src/liblzma/common/common.c
index 0408e15328b3..b9e386027368 100644
--- a/src/liblzma/common/common.c
+++ b/src/liblzma/common/common.c
@@ -35,7 +35,7 @@ lzma_version_string(void)
// Memory allocation //
///////////////////////
-extern void * lzma_attribute((malloc))
+extern void * lzma_attribute((__malloc__)) lzma_attr_alloc_size(1)
lzma_alloc(size_t size, lzma_allocator *allocator)
{
// Some malloc() variants return NULL if called with size == 0.
diff --git a/src/liblzma/common/common.h b/src/liblzma/common/common.h
index b819432371d4..45aba4f06b27 100644
--- a/src/liblzma/common/common.h
+++ b/src/liblzma/common/common.h
@@ -205,7 +205,7 @@ struct lzma_internal_s {
/// Allocates memory
extern void *lzma_alloc(size_t size, lzma_allocator *allocator)
- lzma_attribute((malloc)) lzma_attr_alloc_size(1);
+ lzma_attribute((__malloc__)) lzma_attr_alloc_size(1);
/// Frees memory
extern void lzma_free(void *ptr, lzma_allocator *allocator);
diff --git a/src/liblzma/common/filter_common.c b/src/liblzma/common/filter_common.c
index b157c6280f81..7c95b05f2a3f 100644
--- a/src/liblzma/common/filter_common.c
+++ b/src/liblzma/common/filter_common.c
@@ -43,7 +43,7 @@ static const struct {
.changes_size = true,
},
#endif
-#ifdef HAVE_DECODER_LZMA2
+#if defined(HAVE_ENCODER_LZMA2) || defined(HAVE_DECODER_LZMA2)
{
.id = LZMA_FILTER_LZMA2,
.options_size = sizeof(lzma_options_lzma),
@@ -52,7 +52,7 @@ static const struct {
.changes_size = true,
},
#endif
-#ifdef HAVE_DECODER_X86
+#if defined(HAVE_ENCODER_X86) || defined(HAVE_DECODER_X86)
{
.id = LZMA_FILTER_X86,
.options_size = sizeof(lzma_options_bcj),
@@ -70,7 +70,7 @@ static const struct {
.changes_size = false,
},
#endif
-#ifdef HAVE_DECODER_IA64
+#if defined(HAVE_ENCODER_IA64) || defined(HAVE_DECODER_IA64)
{
.id = LZMA_FILTER_IA64,
.options_size = sizeof(lzma_options_bcj),
diff --git a/src/liblzma/common/index.c b/src/liblzma/common/index.c
index ddb9d3643623..9af4bc19d1b5 100644
--- a/src/liblzma/common/index.c
+++ b/src/liblzma/common/index.c
@@ -398,10 +398,13 @@ extern LZMA_API(lzma_index *)
lzma_index_init(lzma_allocator *allocator)
{
lzma_index *i = index_init_plain(allocator);
+ if (i == NULL)
+ return NULL;
+
index_stream *s = index_stream_init(0, 0, 1, 0, allocator);
- if (i == NULL || s == NULL) {
- index_stream_end(s, allocator);
+ if (s == NULL) {
lzma_free(i, allocator);
+ return NULL;
}
index_tree_append(&i->streams, &s->node);
diff --git a/src/liblzma/common/index_decoder.c b/src/liblzma/common/index_decoder.c
index a6bc650e046c..83c8a3af1db8 100644
--- a/src/liblzma/common/index_decoder.c
+++ b/src/liblzma/common/index_decoder.c
@@ -56,10 +56,11 @@ struct lzma_coder_s {
static lzma_ret
index_decode(lzma_coder *coder, lzma_allocator *allocator,
const uint8_t *restrict in, size_t *restrict in_pos,
- size_t in_size, uint8_t *restrict out lzma_attribute((unused)),
- size_t *restrict out_pos lzma_attribute((unused)),
- size_t out_size lzma_attribute((unused)),
- lzma_action action lzma_attribute((unused)))
+ size_t in_size,
+ uint8_t *restrict out lzma_attribute((__unused__)),
+ size_t *restrict out_pos lzma_attribute((__unused__)),
+ size_t out_size lzma_attribute((__unused__)),
+ lzma_action action lzma_attribute((__unused__)))
{
// Similar optimization as in index_encoder.c
const size_t in_start = *in_pos;
diff --git a/src/liblzma/common/index_encoder.c b/src/liblzma/common/index_encoder.c
index c10d7afa06b4..45919f094c42 100644
--- a/src/liblzma/common/index_encoder.c
+++ b/src/liblzma/common/index_encoder.c
@@ -42,12 +42,13 @@ struct lzma_coder_s {
static lzma_ret
index_encode(lzma_coder *coder,
- lzma_allocator *allocator lzma_attribute((unused)),
- const uint8_t *restrict in lzma_attribute((unused)),
- size_t *restrict in_pos lzma_attribute((unused)),
- size_t in_size lzma_attribute((unused)),
+ lzma_allocator *allocator lzma_attribute((__unused__)),
+ const uint8_t *restrict in lzma_attribute((__unused__)),
+ size_t *restrict in_pos lzma_attribute((__unused__)),
+ size_t in_size lzma_attribute((__unused__)),
uint8_t *restrict out, size_t *restrict out_pos,
- size_t out_size, lzma_action action lzma_attribute((unused)))
+ size_t out_size,
+ lzma_action action lzma_attribute((__unused__)))
{
// Position where to start calculating CRC32. The idea is that we
// need to call lzma_crc32() only once per call to index_encode().
diff --git a/src/liblzma/common/stream_buffer_encoder.c b/src/liblzma/common/stream_buffer_encoder.c
index f727d8542b34..2450ee2e1fa0 100644
--- a/src/liblzma/common/stream_buffer_encoder.c
+++ b/src/liblzma/common/stream_buffer_encoder.c
@@ -51,6 +51,9 @@ lzma_stream_buffer_encode(lzma_filter *filters, lzma_check check,
|| out_pos_ptr == NULL || *out_pos_ptr > out_size)
return LZMA_PROG_ERROR;
+ if (!lzma_check_is_supported(check))
+ return LZMA_UNSUPPORTED_CHECK;
+
// Note for the paranoids: Index encoder prevents the Stream from
// getting too big and still being accepted with LZMA_OK, and Block
// encoder catches if the input is too big. So we don't need to
@@ -81,26 +84,32 @@ lzma_stream_buffer_encode(lzma_filter *filters, lzma_check check,
out_pos += LZMA_STREAM_HEADER_SIZE;
- // Block
+ // Encode a Block but only if there is at least one byte of input.
lzma_block block = {
.version = 0,
.check = check,
.filters = filters,
};
- return_if_error(lzma_block_buffer_encode(&block, allocator,
- in, in_size, out, &out_pos, out_size));
+ if (in_size > 0)
+ return_if_error(lzma_block_buffer_encode(&block, allocator,
+ in, in_size, out, &out_pos, out_size));
// Index
{
- // Create an Index with one Record.
+ // Create an Index. It will have one Record if there was
+ // at least one byte of input to encode. Otherwise the
+ // Index will be empty.
lzma_index *i = lzma_index_init(allocator);
if (i == NULL)
return LZMA_MEM_ERROR;
- lzma_ret ret = lzma_index_append(i, allocator,
- lzma_block_unpadded_size(&block),
- block.uncompressed_size);
+ lzma_ret ret = LZMA_OK;
+
+ if (in_size > 0)
+ ret = lzma_index_append(i, allocator,
+ lzma_block_unpadded_size(&block),
+ block.uncompressed_size);
// If adding the Record was successful, encode the Index
// and get its size which will be stored into Stream Footer.
diff --git a/src/liblzma/common/stream_encoder.c b/src/liblzma/common/stream_encoder.c
index 48d91da7933c..97a7a23a8135 100644
--- a/src/liblzma/common/stream_encoder.c
+++ b/src/liblzma/common/stream_encoder.c
@@ -280,6 +280,7 @@ lzma_stream_encoder_init(lzma_next_coder *next, lzma_allocator *allocator,
next->end = &stream_encoder_end;
next->update = &stream_encoder_update;
+ next->coder->filters[0].id = LZMA_VLI_UNKNOWN;
next->coder->block_encoder = LZMA_NEXT_CODER_INIT;
next->coder->index_encoder = LZMA_NEXT_CODER_INIT;
next->coder->index = NULL;
@@ -289,7 +290,6 @@ lzma_stream_encoder_init(lzma_next_coder *next, lzma_allocator *allocator,
next->coder->sequence = SEQ_STREAM_HEADER;
next->coder->block_options.version = 0;
next->coder->block_options.check = check;
- next->coder->filters[0].id = LZMA_VLI_UNKNOWN;
// Initialize the Index
lzma_index_end(next->coder->index, allocator);
diff --git a/src/liblzma/delta/delta_encoder.c b/src/liblzma/delta/delta_encoder.c
index ea1cc2cb020c..15c7951e104a 100644
--- a/src/liblzma/delta/delta_encoder.c
+++ b/src/liblzma/delta/delta_encoder.c
@@ -85,7 +85,7 @@ delta_encode(lzma_coder *coder, lzma_allocator *allocator,
static lzma_ret
delta_encoder_update(lzma_coder *coder, lzma_allocator *allocator,
- const lzma_filter *filters_null lzma_attribute((unused)),
+ const lzma_filter *filters_null lzma_attribute((__unused__)),
const lzma_filter *reversed_filters)
{
// Delta doesn't and will never support changing the options in
diff --git a/src/liblzma/lz/lz_decoder.c b/src/liblzma/lz/lz_decoder.c
index 2c57355125f7..d74085cf4471 100644
--- a/src/liblzma/lz/lz_decoder.c
+++ b/src/liblzma/lz/lz_decoder.c
@@ -126,7 +126,7 @@ decode_buffer(lzma_coder *coder,
static lzma_ret
lz_decode(lzma_coder *coder,
- lzma_allocator *allocator lzma_attribute((unused)),
+ lzma_allocator *allocator lzma_attribute((__unused__)),
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,
diff --git a/src/liblzma/lz/lz_encoder.c b/src/liblzma/lz/lz_encoder.c
index 273f577b69b9..e2406965882c 100644
--- a/src/liblzma/lz/lz_encoder.c
+++ b/src/liblzma/lz/lz_encoder.c
@@ -480,7 +480,7 @@ lz_encoder_end(lzma_coder *coder, lzma_allocator *allocator)
static lzma_ret
lz_encoder_update(lzma_coder *coder, lzma_allocator *allocator,
- const lzma_filter *filters_null lzma_attribute((unused)),
+ const lzma_filter *filters_null lzma_attribute((__unused__)),
const lzma_filter *reversed_filters)
{
if (coder->lz.options_update == NULL)
diff --git a/src/liblzma/lz/lz_encoder_hash.h b/src/liblzma/lz/lz_encoder_hash.h
index c398d7d05e4d..342a333d1682 100644
--- a/src/liblzma/lz/lz_encoder_hash.h
+++ b/src/liblzma/lz/lz_encoder_hash.h
@@ -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 = *(const uint16_t *)(cur)
#else
# define hash_2_calc() \
const uint32_t hash_value \
diff --git a/src/liblzma/lzma/lzma2_decoder.c b/src/liblzma/lzma/lzma2_decoder.c
index f38879ce17cd..3e42575d5b80 100644
--- a/src/liblzma/lzma/lzma2_decoder.c
+++ b/src/liblzma/lzma/lzma2_decoder.c
@@ -67,6 +67,10 @@ lzma2_decode(lzma_coder *restrict coder, lzma_dict *restrict dict,
const uint32_t control = in[*in_pos];
++*in_pos;
+ // End marker
+ if (control == 0x00)
+ return LZMA_STREAM_END;
+
if (control >= 0xE0 || control == 1) {
// Dictionary reset implies that next LZMA chunk has
// to set new properties.
@@ -104,10 +108,6 @@ lzma2_decode(lzma_coder *restrict coder, lzma_dict *restrict dict,
&coder->options);
}
} else {
- // End marker
- if (control == 0x00)
- return LZMA_STREAM_END;
-
// Invalid control values
if (control > 2)
return LZMA_DATA_ERROR;
diff --git a/src/liblzma/lzma/lzma2_encoder.c b/src/liblzma/lzma/lzma2_encoder.c
index b48e0d6894f6..992720ca6d5a 100644
--- a/src/liblzma/lzma/lzma2_encoder.c
+++ b/src/liblzma/lzma/lzma2_encoder.c
@@ -374,7 +374,7 @@ lzma_lzma2_props_encode(const void *options, uint8_t *out)
const lzma_options_lzma *const opt = options;
uint32_t d = my_max(opt->dict_size, LZMA_DICT_SIZE_MIN);
- // Round up to to the next 2^n - 1 or 2^n + 2^(n - 1) - 1 depending
+ // Round up to the next 2^n - 1 or 2^n + 2^(n - 1) - 1 depending
// on which one is the next:
--d;
d |= d >> 2;
diff --git a/src/liblzma/simple/arm.c b/src/liblzma/simple/arm.c
index 8fcf64374914..a84702ac62f2 100644
--- a/src/liblzma/simple/arm.c
+++ b/src/liblzma/simple/arm.c
@@ -15,7 +15,7 @@
static size_t
-arm_code(lzma_simple *simple lzma_attribute((unused)),
+arm_code(lzma_simple *simple lzma_attribute((__unused__)),
uint32_t now_pos, bool is_encoder,
uint8_t *buffer, size_t size)
{
diff --git a/src/liblzma/simple/armthumb.c b/src/liblzma/simple/armthumb.c
index eb6a69d1282a..4b49175fec4d 100644
--- a/src/liblzma/simple/armthumb.c
+++ b/src/liblzma/simple/armthumb.c
@@ -15,7 +15,7 @@
static size_t
-armthumb_code(lzma_simple *simple lzma_attribute((unused)),
+armthumb_code(lzma_simple *simple lzma_attribute((__unused__)),
uint32_t now_pos, bool is_encoder,
uint8_t *buffer, size_t size)
{
diff --git a/src/liblzma/simple/ia64.c b/src/liblzma/simple/ia64.c
index fd263d4aea0d..ce3692b98f1d 100644
--- a/src/liblzma/simple/ia64.c
+++ b/src/liblzma/simple/ia64.c
@@ -15,7 +15,7 @@
static size_t
-ia64_code(lzma_simple *simple lzma_attribute((unused)),
+ia64_code(lzma_simple *simple lzma_attribute((__unused__)),
uint32_t now_pos, bool is_encoder,
uint8_t *buffer, size_t size)
{
diff --git a/src/liblzma/simple/powerpc.c b/src/liblzma/simple/powerpc.c
index aaa14f221977..6f8351176c5e 100644
--- a/src/liblzma/simple/powerpc.c
+++ b/src/liblzma/simple/powerpc.c
@@ -15,7 +15,7 @@
static size_t
-powerpc_code(lzma_simple *simple lzma_attribute((unused)),
+powerpc_code(lzma_simple *simple lzma_attribute((__unused__)),
uint32_t now_pos, bool is_encoder,
uint8_t *buffer, size_t size)
{
diff --git a/src/liblzma/simple/simple_coder.c b/src/liblzma/simple/simple_coder.c
index 06db86ec2d0a..37de7fa1a0c5 100644
--- a/src/liblzma/simple/simple_coder.c
+++ b/src/liblzma/simple/simple_coder.c
@@ -212,7 +212,7 @@ simple_coder_end(lzma_coder *coder, lzma_allocator *allocator)
static lzma_ret
simple_coder_update(lzma_coder *coder, lzma_allocator *allocator,
- const lzma_filter *filters_null lzma_attribute((unused)),
+ const lzma_filter *filters_null lzma_attribute((__unused__)),
const lzma_filter *reversed_filters)
{
// No update support, just call the next filter in the chain.
diff --git a/src/liblzma/simple/sparc.c b/src/liblzma/simple/sparc.c
index 808a59aaac78..8270d6ab19f1 100644
--- a/src/liblzma/simple/sparc.c
+++ b/src/liblzma/simple/sparc.c
@@ -15,7 +15,7 @@
static size_t
-sparc_code(lzma_simple *simple lzma_attribute((unused)),
+sparc_code(lzma_simple *simple lzma_attribute((__unused__)),
uint32_t now_pos, bool is_encoder,
uint8_t *buffer, size_t size)
{
diff --git a/src/lzmainfo/lzmainfo.c b/src/lzmainfo/lzmainfo.c
index 3100dc631af2..b0ccdfb430ec 100644
--- a/src/lzmainfo/lzmainfo.c
+++ b/src/lzmainfo/lzmainfo.c
@@ -26,7 +26,7 @@
#endif
-static void lzma_attribute((noreturn))
+static void lzma_attribute((__noreturn__))
help(void)
{
printf(
@@ -45,7 +45,7 @@ _("Usage: %s [--help] [--version] [FILE]...\n"
}
-static void lzma_attribute((noreturn))
+static void lzma_attribute((__noreturn__))
version(void)
{
puts("lzmainfo (" PACKAGE_NAME ") " LZMA_VERSION_STRING);
diff --git a/src/xz/coder.c b/src/xz/coder.c
index 5182dddc3ff2..b123ec5bf2b7 100644
--- a/src/xz/coder.c
+++ b/src/xz/coder.c
@@ -102,7 +102,7 @@ coder_add_filter(lzma_vli id, void *options)
}
-static void lzma_attribute((noreturn))
+static void lzma_attribute((__noreturn__))
memlimit_too_small(uint64_t memory_usage)
{
message(V_ERROR, _("Memory usage limit is too low for the given "
diff --git a/src/xz/file_io.c b/src/xz/file_io.c
index 09edcca69eb4..f9b7f305e09c 100644
--- a/src/xz/file_io.c
+++ b/src/xz/file_io.c
@@ -53,7 +53,7 @@ static bool io_write_buf(file_pair *pair, const uint8_t *buf, size_t size);
extern void
io_init(void)
{
- // Make sure that stdin, stdout, and and stderr are connected to
+ // Make sure that stdin, stdout, and stderr are connected to
// a valid file descriptor. Exit immediately with exit code ERROR
// if we cannot make the file descriptors valid. Maybe we should
// print an error message, but our stderr could be screwed anyway.
diff --git a/src/xz/hardware.h b/src/xz/hardware.h
index bed952b07d23..ad526f260bc1 100644
--- a/src/xz/hardware.h
+++ b/src/xz/hardware.h
@@ -35,4 +35,4 @@ extern void hardware_memlimit_set(uint64_t new_memlimit,
extern uint64_t hardware_memlimit_get(enum operation_mode mode);
/// Display the amount of RAM and memory usage limits and exit.
-extern void hardware_memlimit_show(void) lzma_attribute((noreturn));
+extern void hardware_memlimit_show(void) lzma_attribute((__noreturn__));
diff --git a/src/xz/list.c b/src/xz/list.c
index 1c93718b1382..98307eb247ef 100644
--- a/src/xz/list.c
+++ b/src/xz/list.c
@@ -382,14 +382,9 @@ parse_block_header(file_pair *pair, const lzma_index_iter *iter,
if (buf.u8[0] == 0)
goto data_error;
- lzma_block block;
- lzma_filter filters[LZMA_FILTERS_MAX + 1];
-
- // Initialize the pointers so that they can be passed to free().
- for (size_t i = 0; i < ARRAY_SIZE(filters); ++i)
- filters[i].options = NULL;
-
// Initialize the block structure and decode Block Header Size.
+ lzma_filter filters[LZMA_FILTERS_MAX + 1];
+ lzma_block block;
block.version = 0;
block.check = iter->stream.flags->check;
block.filters = filters;
@@ -437,6 +432,10 @@ parse_block_header(file_pair *pair, const lzma_index_iter *iter,
break;
case LZMA_DATA_ERROR:
+ // Free the memory allocated by lzma_block_header_decode().
+ for (size_t i = 0; filters[i].id != LZMA_VLI_UNKNOWN; ++i)
+ free(filters[i].options);
+
goto data_error;
default:
@@ -466,14 +465,6 @@ data_error:
// Show the error message.
message_error("%s: %s", pair->src_name,
message_strm(LZMA_DATA_ERROR));
-
- // Free the memory allocated by lzma_block_header_decode().
- // This is truly needed only if we get here after a succcessful
- // call to lzma_block_header_decode() but it doesn't hurt to
- // always do it.
- for (size_t i = 0; filters[i].id != LZMA_VLI_UNKNOWN; ++i)
- free(filters[i].options);
-
return true;
}
diff --git a/src/xz/message.c b/src/xz/message.c
index 38cce4a1b0fd..80c86a49c3db 100644
--- a/src/xz/message.c
+++ b/src/xz/message.c
@@ -94,7 +94,7 @@ static volatile sig_atomic_t progress_needs_updating = false;
/// Signal handler for SIGALRM
static void
-progress_signal_handler(int sig lzma_attribute((unused)))
+progress_signal_handler(int sig lzma_attribute((__unused__)))
{
progress_needs_updating = true;
return;
@@ -726,7 +726,11 @@ vmessage(enum message_verbosity v, const char *fmt, va_list ap)
progress_flush(false);
- fprintf(stderr, "%s: ", progname);
+ // 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.
+ fprintf(stderr, _("%s: "), progname);
vfprintf(stderr, fmt, ap);
fputc('\n', stderr);
diff --git a/src/xz/message.h b/src/xz/message.h
index e3fca3cc42ca..74599bd978a1 100644
--- a/src/xz/message.h
+++ b/src/xz/message.h
@@ -45,7 +45,7 @@ extern enum message_verbosity message_verbosity_get(void);
///
/// This doesn't touch the exit status.
extern void message(enum message_verbosity verbosity, const char *fmt, ...)
- lzma_attribute((format(printf, 2, 3)));
+ lzma_attribute((__format__(__printf__, 2, 3)));
/// \brief Prints a warning and possibly sets exit status
@@ -53,7 +53,7 @@ extern void message(enum message_verbosity verbosity, const char *fmt, ...)
/// The message is printed only if verbosity level is at least V_WARNING.
/// The exit status is set to WARNING unless it was already at ERROR.
extern void message_warning(const char *fmt, ...)
- lzma_attribute((format(printf, 1, 2)));
+ lzma_attribute((__format__(__printf__, 1, 2)));
/// \brief Prints an error message and sets exit status
@@ -61,25 +61,25 @@ extern void message_warning(const char *fmt, ...)
/// The message is printed only if verbosity level is at least V_ERROR.
/// The exit status is set to ERROR.
extern void message_error(const char *fmt, ...)
- lzma_attribute((format(printf, 1, 2)));
+ lzma_attribute((__format__(__printf__, 1, 2)));
/// \brief Prints an error message and exits with EXIT_ERROR
///
/// The message is printed only if verbosity level is at least V_ERROR.
extern void message_fatal(const char *fmt, ...)
- lzma_attribute((format(printf, 1, 2)))
- lzma_attribute((noreturn));
+ lzma_attribute((__format__(__printf__, 1, 2)))
+ lzma_attribute((__noreturn__));
/// Print an error message that an internal error occurred and exit with
/// EXIT_ERROR.
-extern void message_bug(void) lzma_attribute((noreturn));
+extern void message_bug(void) lzma_attribute((__noreturn__));
/// Print a message that establishing signal handlers failed, and exit with
/// exit status ERROR.
-extern void message_signal_handler(void) lzma_attribute((noreturn));
+extern void message_signal_handler(void) lzma_attribute((__noreturn__));
/// Convert lzma_ret to a string.
@@ -116,11 +116,11 @@ extern void message_try_help(void);
/// Prints the version number to stdout and exits with exit status SUCCESS.
-extern void message_version(void) lzma_attribute((noreturn));
+extern void message_version(void) lzma_attribute((__noreturn__));
/// Print the help message.
-extern void message_help(bool long_help) lzma_attribute((noreturn));
+extern void message_help(bool long_help) lzma_attribute((__noreturn__));
/// \brief Set the total number of files to be processed
diff --git a/src/xz/options.c b/src/xz/options.c
index 379a2e46dc08..f21a0ba51065 100644
--- a/src/xz/options.c
+++ b/src/xz/options.c
@@ -150,7 +150,7 @@ enum {
static void
set_delta(void *options, uint32_t key, uint64_t value,
- const char *valuestr lzma_attribute((unused)))
+ const char *valuestr lzma_attribute((__unused__)))
{
lzma_options_delta *opt = options;
switch (key) {
@@ -194,7 +194,7 @@ enum {
static void
set_bcj(void *options, uint32_t key, uint64_t value,
- const char *valuestr lzma_attribute((unused)))
+ const char *valuestr lzma_attribute((__unused__)))
{
lzma_options_bcj *opt = options;
switch (key) {
@@ -241,7 +241,7 @@ enum {
};
-static void lzma_attribute((noreturn))
+static void lzma_attribute((__noreturn__))
error_lzma_preset(const char *valuestr)
{
message_fatal(_("Unsupported LZMA1/LZMA2 preset: %s"), valuestr);
diff --git a/src/xz/signals.c b/src/xz/signals.c
index 4d6a9da31624..de213644d00b 100644
--- a/src/xz/signals.c
+++ b/src/xz/signals.c
@@ -179,7 +179,7 @@ signals_exit(void)
// console window.
static BOOL WINAPI
-signal_handler(DWORD type lzma_attribute((unused)))
+signal_handler(DWORD type lzma_attribute((__unused__)))
{
// Since we don't get a signal number which we could raise() at
// signals_exit() like on POSIX, just set the exit status to
diff --git a/src/xz/suffix.c b/src/xz/suffix.c
index ea86c1a3f6b9..c89f67fe853e 100644
--- a/src/xz/suffix.c
+++ b/src/xz/suffix.c
@@ -21,12 +21,6 @@
static char *custom_suffix = NULL;
-struct suffix_pair {
- const char *compressed;
- const char *uncompressed;
-};
-
-
/// \brief Test if the char is a directory separator
static bool
is_dir_sep(char c)
@@ -86,7 +80,10 @@ test_suffix(const char *suffix, const char *src_name, size_t src_len)
static char *
uncompressed_name(const char *src_name, const size_t src_len)
{
- static const struct suffix_pair suffixes[] = {
+ static const struct {
+ const char *compressed;
+ const char *uncompressed;
+ } suffixes[] = {
{ ".xz", "" },
{ ".txz", ".tar" }, // .txz abbreviation for .txt.gz is rare.
{ ".lzma", "" },
@@ -145,25 +142,25 @@ static char *
compressed_name(const char *src_name, const size_t src_len)
{
// The order of these must match the order in args.h.
- static const struct suffix_pair all_suffixes[][3] = {
+ static const char *const all_suffixes[][3] = {
{
- { ".xz", "" },
- { ".txz", ".tar" },
- { NULL, NULL }
+ ".xz",
+ ".txz",
+ NULL
}, {
- { ".lzma", "" },
- { ".tlz", ".tar" },
- { NULL, NULL }
+ ".lzma",
+ ".tlz",
+ NULL
/*
}, {
- { ".gz", "" },
- { ".tgz", ".tar" },
- { NULL, NULL }
+ ".gz",
+ ".tgz",
+ NULL
*/
}, {
// --format=raw requires specifying the suffix
// manually or using stdout.
- { NULL, NULL }
+ NULL
}
};
@@ -171,14 +168,22 @@ compressed_name(const char *src_name, const size_t src_len)
assert(opt_format != FORMAT_AUTO);
const size_t format = opt_format - 1;
- const struct suffix_pair *const suffixes = all_suffixes[format];
+ const char *const *suffixes = all_suffixes[format];
+
+ for (size_t i = 0; suffixes[i] != NULL; ++i) {
+ if (test_suffix(suffixes[i], src_name, src_len) != 0) {
+ message_warning(_("%s: File already has `%s' "
+ "suffix, skipping"), src_name,
+ suffixes[i]);
+ return NULL;
+ }
+ }
- for (size_t i = 0; suffixes[i].compressed != NULL; ++i) {
- if (test_suffix(suffixes[i].compressed, src_name, src_len)
- != 0) {
+ if (custom_suffix != NULL) {
+ if (test_suffix(custom_suffix, src_name, src_len) != 0) {
message_warning(_("%s: File already has `%s' "
"suffix, skipping"), src_name,
- suffixes[i].compressed);
+ custom_suffix);
return NULL;
}
}
@@ -193,7 +198,7 @@ compressed_name(const char *src_name, const size_t src_len)
}
const char *suffix = custom_suffix != NULL
- ? custom_suffix : suffixes[0].compressed;
+ ? custom_suffix : suffixes[0];
const size_t suffix_len = strlen(suffix);
char *dest_name = xmalloc(src_len + suffix_len + 1);
diff --git a/src/xz/util.h b/src/xz/util.h
index 4b2d3e2f573f..a2516bf96803 100644
--- a/src/xz/util.h
+++ b/src/xz/util.h
@@ -20,11 +20,11 @@
/// \brief Safe realloc() that never returns NULL
extern void *xrealloc(void *ptr, size_t size)
- lzma_attribute((malloc)) lzma_attr_alloc_size(2);
+ lzma_attribute((__malloc__)) lzma_attr_alloc_size(2);
/// \brief Safe strdup() that never returns NULL
-extern char *xstrdup(const char *src) lzma_attribute((malloc));
+extern char *xstrdup(const char *src) lzma_attribute((__malloc__));
/// \brief Fancy version of strtoull()
@@ -102,7 +102,7 @@ extern const char *uint64_to_nicestr(uint64_t value,
/// A maximum of *left bytes is written starting from *pos. *pos and *left
/// are updated accordingly.
extern void my_snprintf(char **pos, size_t *left, const char *fmt, ...)
- lzma_attribute((format(printf, 3, 4)));
+ lzma_attribute((__format__(__printf__, 3, 4)));
/// \brief Check if filename is empty and print an error message
diff --git a/src/xz/xz.1 b/src/xz/xz.1
index cba1d077c2d1..f1c9135d1592 100644
--- a/src/xz/xz.1
+++ b/src/xz/xz.1
@@ -866,7 +866,7 @@ This is equivalent to specifying \fB\-\-memlimit\-compress=\fIlimit
\fB\-\-memlimit\-decompress=\fIlimit\fR.
.TP
.B \-\-no\-adjust
-Display an error and exit if the compression settings exceed the
+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.
diff --git a/src/xzdec/xzdec.c b/src/xzdec/xzdec.c
index fd015076de97..b7830db4b523 100644
--- a/src/xzdec/xzdec.c
+++ b/src/xzdec/xzdec.c
@@ -40,7 +40,7 @@
static unsigned int display_errors = 2;
-static void lzma_attribute((format(printf, 1, 2)))
+static void lzma_attribute((__format__(__printf__, 1, 2)))
my_errorf(const char *fmt, ...)
{
va_list ap;
@@ -57,7 +57,7 @@ my_errorf(const char *fmt, ...)
}
-static void lzma_attribute((noreturn))
+static void lzma_attribute((__noreturn__))
help(void)
{
printf(
@@ -81,7 +81,7 @@ PACKAGE_NAME " home page: <" PACKAGE_URL ">\n", progname);
}
-static void lzma_attribute((noreturn))
+static void lzma_attribute((__noreturn__))
version(void)
{
printf(TOOL_FORMAT "dec (" PACKAGE_NAME ") " LZMA_VERSION_STRING "\n"