+++ /dev/null
-Description: Update mktime* from gnulib 20140202+stable-2
- This fixes a build-error on x32.
- Diagnosis and solution by Helmut Grohne.
-Author: Andreas Metzler <ametzler@debian.org>
-Origin: vendor
-Bug-Debian: http://bugs.debian.org/753896
-Forwarded: not-needed
-Last-Update: 2014-07-06
-
---- /dev/null
-+++ findutils-4.4.2/gnulib/lib/mktime-internal.h
-@@ -0,0 +1,4 @@
-+#include <time.h>
-+time_t mktime_internal (struct tm *,
-+ struct tm * (*) (time_t const *, struct tm *),
-+ time_t *);
---- findutils-4.4.2.orig/gnulib/lib/mktime.c
-+++ findutils-4.4.2/gnulib/lib/mktime.c
-@@ -1,21 +1,21 @@
--/* Convert a `struct tm' to a time_t value.
-- Copyright (C) 1993-1999, 2002-2005, 2006, 2007 Free Software Foundation, Inc.
-+/* Convert a 'struct tm' to a time_t value.
-+ Copyright (C) 1993-2014 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Paul Eggert <eggert@twinsun.com>.
-
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
-- the Free Software Foundation; either version 3, or (at your option)
-- any later version.
-+ The GNU C Library is free software; you can redistribute it and/or
-+ modify it under the terms of the GNU Lesser General Public
-+ License as published by the Free Software Foundation; either
-+ version 2.1 of the License, or (at your option) any later version.
-
-- This program is distributed in the hope that it will be useful,
-+ The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-- GNU General Public License for more details.
-+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-+ Lesser General Public License for more details.
-
-- You should have received a copy of the GNU General Public License along
-- with this program; if not, write to the Free Software Foundation,
-- Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */
-+ You should have received a copy of the GNU Lesser General Public
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- /* Define this to have a standalone program to test this implementation of
- mktime. */
-@@ -26,7 +26,7 @@
- #endif
-
- /* Assume that leap seconds are possible, unless told otherwise.
-- If the host has a `zic' command with a `-L leapsecondfilename' option,
-+ If the host has a 'zic' command with a '-L leapsecondfilename' option,
- then it supports leap seconds; otherwise it probably doesn't. */
- #ifndef LEAP_SECONDS_POSSIBLE
- # define LEAP_SECONDS_POSSIBLE 1
-@@ -42,9 +42,43 @@
- # include <stdio.h>
- # include <stdlib.h>
- /* Make it work even if the system's libc has its own mktime routine. */
-+# undef mktime
- # define mktime my_mktime
- #endif /* DEBUG */
-
-+/* Some of the code in this file assumes that signed integer overflow
-+ silently wraps around. This assumption can't easily be programmed
-+ around, nor can it be checked for portably at compile-time or
-+ easily eliminated at run-time.
-+
-+ Define WRAPV to 1 if the assumption is valid and if
-+ #pragma GCC optimize ("wrapv")
-+ does not trigger GCC bug 51793
-+ <http://gcc.gnu.org/bugzilla/show_bug.cgi?id=51793>.
-+ Otherwise, define it to 0; this forces the use of slower code that,
-+ while not guaranteed by the C Standard, works on all production
-+ platforms that we know about. */
-+#ifndef WRAPV
-+# if (((__GNUC__ == 4 && 4 <= __GNUC_MINOR__) || 4 < __GNUC__) \
-+ && defined __GLIBC__)
-+# pragma GCC optimize ("wrapv")
-+# define WRAPV 1
-+# else
-+# define WRAPV 0
-+# endif
-+#endif
-+
-+/* Verify a requirement at compile-time (unlike assert, which is runtime). */
-+#define verify(name, assertion) struct name { char a[(assertion) ? 1 : -1]; }
-+
-+/* A signed type that is at least one bit wider than int. */
-+#if INT_MAX <= LONG_MAX / 2
-+typedef long int long_int;
-+#else
-+typedef long long int long_int;
-+#endif
-+verify (long_int_is_wide_enough, INT_MAX == INT_MAX * (long_int) 2 / 2);
-+
- /* Shift A right by B bits portably, by dividing A by 2**B and
- truncating towards minus infinity. A and B should be free of side
- effects, and B should be in the range 0 <= B <= INT_BITS - 2, where
-@@ -55,9 +89,11 @@
- implementations (e.g., UNICOS 9.0 on a Cray Y-MP EL) don't shift
- right in the usual way when A < 0, so SHR falls back on division if
- ordinary A >> B doesn't seem to be the usual signed shift. */
--#define SHR(a, b) \
-- (-1 >> 1 == -1 \
-- ? (a) >> (b) \
-+#define SHR(a, b) \
-+ ((-1 >> 1 == -1 \
-+ && (long_int) -1 >> 1 == -1 \
-+ && ((time_t) -1 >> 1 == -1 || ! TYPE_SIGNED (time_t))) \
-+ ? (a) >> (b) \
- : (a) / (1 << (b)) - ((a) % (1 << (b)) < 0))
-
- /* The extra casts in the following macros work around compiler bugs,
-@@ -68,12 +104,8 @@
- #define TYPE_IS_INTEGER(t) ((t) 1.5 == 1)
-
- /* True if negative values of the signed integer type T use two's
-- complement, ones' complement, or signed magnitude representation,
-- respectively. Much GNU code assumes two's complement, but some
-- people like to be portable to all possible C hosts. */
-+ complement, or if T is an unsigned integer type. */
- #define TYPE_TWOS_COMPLEMENT(t) ((t) ~ (t) 0 == (t) -1)
--#define TYPE_ONES_COMPLEMENT(t) ((t) ~ (t) 0 == 0)
--#define TYPE_SIGNED_MAGNITUDE(t) ((t) ~ (t) 0 < (t) -1)
-
- /* True if the arithmetic type T is signed. */
- #define TYPE_SIGNED(t) (! ((t) 0 < (t) -1))
-@@ -85,13 +117,11 @@
- #define TYPE_MINIMUM(t) \
- ((t) (! TYPE_SIGNED (t) \
- ? (t) 0 \
-- : TYPE_SIGNED_MAGNITUDE (t) \
-- ? ~ (t) 0 \
-- : ~ (t) 0 << (sizeof (t) * CHAR_BIT - 1)))
-+ : ~ TYPE_MAXIMUM (t)))
- #define TYPE_MAXIMUM(t) \
- ((t) (! TYPE_SIGNED (t) \
- ? (t) -1 \
-- : ~ (~ (t) 0 << (sizeof (t) * CHAR_BIT - 1))))
-+ : ((((t) 1 << (sizeof (t) * CHAR_BIT - 2)) - 1) * 2 + 1)))
-
- #ifndef TIME_T_MIN
- # define TIME_T_MIN TYPE_MINIMUM (time_t)
-@@ -101,22 +131,19 @@
- #endif
- #define TIME_T_MIDPOINT (SHR (TIME_T_MIN + TIME_T_MAX, 1) + 1)
-
--/* Verify a requirement at compile-time (unlike assert, which is runtime). */
--#define verify(name, assertion) struct name { char a[(assertion) ? 1 : -1]; }
--
- verify (time_t_is_integer, TYPE_IS_INTEGER (time_t));
--verify (twos_complement_arithmetic, TYPE_TWOS_COMPLEMENT (int));
--/* The code also assumes that signed integer overflow silently wraps
-- around, but this assumption can't be stated without causing a
-- diagnostic on some hosts. */
-+verify (twos_complement_arithmetic,
-+ (TYPE_TWOS_COMPLEMENT (int)
-+ && TYPE_TWOS_COMPLEMENT (long_int)
-+ && TYPE_TWOS_COMPLEMENT (time_t)));
-
- #define EPOCH_YEAR 1970
- #define TM_YEAR_BASE 1900
- verify (base_year_is_a_multiple_of_100, TM_YEAR_BASE % 100 == 0);
-
- /* Return 1 if YEAR + TM_YEAR_BASE is a leap year. */
--static inline int
--leapyear (long int year)
-+static int
-+leapyear (long_int year)
- {
- /* Don't add YEAR to TM_YEAR_BASE, as that might overflow.
- Also, work even if YEAR is negative. */
-@@ -147,8 +174,17 @@ const unsigned short int __mon_yday[2][1
- # undef __localtime_r
- # define __localtime_r localtime_r
- # define __mktime_internal mktime_internal
-+# include "mktime-internal.h"
- #endif
-
-+/* Return 1 if the values A and B differ according to the rules for
-+ tm_isdst: A and B differ if one is zero and the other positive. */
-+static int
-+isdst_differ (int a, int b)
-+{
-+ return (!a != !b) && (0 <= a) && (0 <= b);
-+}
-+
- /* Return an integer value measuring (YEAR1-YDAY1 HOUR1:MIN1:SEC1) -
- (YEAR0-YDAY0 HOUR0:MIN0:SEC0) in seconds, assuming that the clocks
- were not adjusted between the time stamps.
-@@ -160,13 +196,11 @@ const unsigned short int __mon_yday[2][1
- The result may overflow. It is the caller's responsibility to
- detect overflow. */
-
--static inline time_t
--ydhms_diff (long int year1, long int yday1, int hour1, int min1, int sec1,
-+static time_t
-+ydhms_diff (long_int year1, long_int yday1, int hour1, int min1, int sec1,
- int year0, int yday0, int hour0, int min0, int sec0)
- {
- verify (C99_integer_division, -1 / 2 == 0);
-- verify (long_int_year_and_yday_are_wide_enough,
-- INT_MAX <= LONG_MAX / 2 || TIME_T_MAX <= UINT_MAX);
-
- /* Compute intervening leap days correctly even if year is negative.
- Take care to avoid integer overflow here. */
-@@ -189,6 +223,53 @@ ydhms_diff (long int year1, long int yda
- return seconds;
- }
-
-+/* Return the average of A and B, even if A + B would overflow. */
-+static time_t
-+time_t_avg (time_t a, time_t b)
-+{
-+ return SHR (a, 1) + SHR (b, 1) + (a & b & 1);
-+}
-+
-+/* Return 1 if A + B does not overflow. If time_t is unsigned and if
-+ B's top bit is set, assume that the sum represents A - -B, and
-+ return 1 if the subtraction does not wrap around. */
-+static int
-+time_t_add_ok (time_t a, time_t b)
-+{
-+ if (! TYPE_SIGNED (time_t))
-+ {
-+ time_t sum = a + b;
-+ return (sum < a) == (TIME_T_MIDPOINT <= b);
-+ }
-+ else if (WRAPV)
-+ {
-+ time_t sum = a + b;
-+ return (sum < a) == (b < 0);
-+ }
-+ else
-+ {
-+ time_t avg = time_t_avg (a, b);
-+ return TIME_T_MIN / 2 <= avg && avg <= TIME_T_MAX / 2;
-+ }
-+}
-+
-+/* Return 1 if A + B does not overflow. */
-+static int
-+time_t_int_add_ok (time_t a, int b)
-+{
-+ verify (int_no_wider_than_time_t, INT_MAX <= TIME_T_MAX);
-+ if (WRAPV)
-+ {
-+ time_t sum = a + b;
-+ return (sum < a) == (b < 0);
-+ }
-+ else
-+ {
-+ int a_odd = a & 1;
-+ time_t avg = SHR (a, 1) + (SHR (b, 1) + (a_odd & b));
-+ return TIME_T_MIN / 2 <= avg && avg <= TIME_T_MAX / 2;
-+ }
-+}
-
- /* Return a time_t value corresponding to (YEAR-YDAY HOUR:MIN:SEC),
- assuming that *T corresponds to *TP and that no clock adjustments
-@@ -197,7 +278,7 @@ ydhms_diff (long int year1, long int yda
- If overflow occurs, yield the minimal or maximal value, except do not
- yield a value equal to *T. */
- static time_t
--guess_time_tm (long int year, long int yday, int hour, int min, int sec,
-+guess_time_tm (long_int year, long_int yday, int hour, int min, int sec,
- const time_t *t, const struct tm *tp)
- {
- if (tp)
-@@ -205,9 +286,8 @@ guess_time_tm (long int year, long int y
- time_t d = ydhms_diff (year, yday, hour, min, sec,
- tp->tm_year, tp->tm_yday,
- tp->tm_hour, tp->tm_min, tp->tm_sec);
-- time_t t1 = *t + d;
-- if ((t1 < *t) == (TYPE_SIGNED (time_t) ? d < 0 : TIME_T_MAX / 2 < d))
-- return t1;
-+ if (time_t_add_ok (*t, d))
-+ return *t + d;
- }
-
- /* Overflow occurred one way or another. Return the nearest result
-@@ -239,9 +319,7 @@ ranged_convert (struct tm *(*convert) (c
- they differ by 1. */
- while (bad != ok + (bad < 0 ? -1 : 1))
- {
-- time_t mid = *t = (bad < 0
-- ? bad + ((ok - bad) >> 1)
-- : ok + ((bad - ok) >> 1));
-+ time_t mid = *t = time_t_avg (ok, bad);
- r = convert (t, tp);
- if (r)
- ok = mid;
-@@ -299,8 +377,8 @@ __mktime_internal (struct tm *tp,
- int mon_remainder = mon % 12;
- int negative_mon_remainder = mon_remainder < 0;
- int mon_years = mon / 12 - negative_mon_remainder;
-- long int lyear_requested = year_requested;
-- long int year = lyear_requested + mon_years;
-+ long_int lyear_requested = year_requested;
-+ long_int year = lyear_requested + mon_years;
-
- /* The other values need not be in range:
- the remaining code handles minor overflows correctly,
-@@ -312,8 +390,8 @@ __mktime_internal (struct tm *tp,
- int mon_yday = ((__mon_yday[leapyear (year)]
- [mon_remainder + 12 * negative_mon_remainder])
- - 1);
-- long int lmday = mday;
-- long int yday = mon_yday + lmday;
-+ long_int lmday = mday;
-+ long_int yday = mon_yday + lmday;
-
- time_t guessed_offset = *offset;
-
-@@ -367,9 +445,9 @@ __mktime_internal (struct tm *tp,
-
- int approx_biennia = SHR (t0, ALOG2_SECONDS_PER_BIENNIUM);
- int diff = approx_biennia - approx_requested_biennia;
-- int abs_diff = diff < 0 ? - diff : diff;
-+ int approx_abs_diff = diff < 0 ? -1 - diff : diff;
-
-- /* IRIX 4.0.5 cc miscaculates TIME_T_MIN / 3: it erroneously
-+ /* IRIX 4.0.5 cc miscalculates TIME_T_MIN / 3: it erroneously
- gives a positive value of 715827882. Setting a variable
- first then doing math on it seems to work.
- (ghazi@caip.rutgers.edu) */
-@@ -378,15 +456,15 @@ __mktime_internal (struct tm *tp,
- time_t overflow_threshold =
- (time_t_max / 3 - time_t_min / 3) >> ALOG2_SECONDS_PER_BIENNIUM;
-
-- if (overflow_threshold < abs_diff)
-+ if (overflow_threshold < approx_abs_diff)
- {
- /* Overflow occurred. Try repairing it; this might work if
- the time zone offset is enough to undo the overflow. */
- time_t repaired_t0 = -1 - t0;
- approx_biennia = SHR (repaired_t0, ALOG2_SECONDS_PER_BIENNIUM);
- diff = approx_biennia - approx_requested_biennia;
-- abs_diff = diff < 0 ? - diff : diff;
-- if (overflow_threshold < abs_diff)
-+ approx_abs_diff = diff < 0 ? -1 - diff : diff;
-+ if (overflow_threshold < approx_abs_diff)
- return -1;
- guessed_offset += repaired_t0 - t0;
- t0 = repaired_t0;
-@@ -420,7 +498,7 @@ __mktime_internal (struct tm *tp,
-
- /* We have a match. Check whether tm.tm_isdst has the requested
- value, if any. */
-- if (isdst != tm.tm_isdst && 0 <= isdst && 0 <= tm.tm_isdst)
-+ if (isdst_differ (isdst, tm.tm_isdst))
- {
- /* tm.tm_isdst has the wrong value. Look for a neighboring
- time with the right value, and use its UTC offset.
-@@ -453,22 +531,20 @@ __mktime_internal (struct tm *tp,
-
- for (delta = stride; delta < delta_bound; delta += stride)
- for (direction = -1; direction <= 1; direction += 2)
-- {
-- time_t ot = t + delta * direction;
-- if ((ot < t) == (direction < 0))
-- {
-- struct tm otm;
-- ranged_convert (convert, &ot, &otm);
-- if (otm.tm_isdst == isdst)
-- {
-- /* We found the desired tm_isdst.
-- Extrapolate back to the desired time. */
-- t = guess_time_tm (year, yday, hour, min, sec, &ot, &otm);
-- ranged_convert (convert, &t, &tm);
-- goto offset_found;
-- }
-- }
-- }
-+ if (time_t_int_add_ok (t, delta * direction))
-+ {
-+ time_t ot = t + delta * direction;
-+ struct tm otm;
-+ ranged_convert (convert, &ot, &otm);
-+ if (! isdst_differ (isdst, otm.tm_isdst))
-+ {
-+ /* We found the desired tm_isdst.
-+ Extrapolate back to the desired time. */
-+ t = guess_time_tm (year, yday, hour, min, sec, &ot, &otm);
-+ ranged_convert (convert, &t, &tm);
-+ goto offset_found;
-+ }
-+ }
- }
-
- offset_found:
-@@ -479,11 +555,13 @@ __mktime_internal (struct tm *tp,
- /* Adjust time to reflect the tm_sec requested, not the normalized value.
- Also, repair any damage from a false match due to a leap second. */
- int sec_adjustment = (sec == 0 && tm.tm_sec == 60) - sec;
-+ if (! time_t_int_add_ok (t, sec_requested))
-+ return -1;
- t1 = t + sec_requested;
-+ if (! time_t_int_add_ok (t1, sec_adjustment))
-+ return -1;
- t2 = t1 + sec_adjustment;
-- if (((t1 < t) != (sec_requested < 0))
-- | ((t2 < t1) != (sec_adjustment < 0))
-- | ! convert (&t2, &tm))
-+ if (! convert (&t2, &tm))
- return -1;
- t = t2;
- }
-@@ -505,7 +583,7 @@ mktime (struct tm *tp)
- {
- #ifdef _LIBC
- /* POSIX.1 8.1.1 requires that whenever mktime() is called, the
-- time zone names contained in the external variable `tzname' shall
-+ time zone names contained in the external variable 'tzname' shall
- be set as if the tzset() function had been called. */
- __tzset ();
- #endif
-@@ -534,7 +612,7 @@ not_equal_tm (const struct tm *a, const
- | (a->tm_mon ^ b->tm_mon)
- | (a->tm_year ^ b->tm_year)
- | (a->tm_yday ^ b->tm_yday)
-- | (a->tm_isdst ^ b->tm_isdst));
-+ | isdst_differ (a->tm_isdst, b->tm_isdst));
- }
-
- static void
-@@ -658,6 +736,6 @@ main (int argc, char **argv)
- \f
- /*
- Local Variables:
--compile-command: "gcc -DDEBUG -Wall -W -O -g mktime.c -o mktime"
-+compile-command: "gcc -DDEBUG -I. -Wall -W -O2 -g mktime.c -o mktime"
- End:
- */
---- findutils-4.4.2/po/pl.po.orig 2009-05-16 17:17:01.000000000 +0200
-+++ findutils-4.4.2/po/pl.po 2010-11-04 08:09:35.247095747 +0100
-@@ -5,10 +5,10 @@
- #
- msgid ""
+--- findutils-4.6.0/po/pl.po.orig 2015-12-28 22:37:34.000000000 +0100
++++ findutils-4.6.0/po/pl.po 2016-01-24 11:34:36.111487608 +0100
+@@ -8,7 +8,7 @@ msgid ""
msgstr ""
--"Project-Id-Version: findutils 4.4.0\n"
-+"Project-Id-Version: findutils 4.4.2\n"
+ "Project-Id-Version: findutils 4.5.15\n"
"Report-Msgid-Bugs-To: bug-findutils@gnu.org\n"
- "POT-Creation-Date: 2009-05-12 09:47+0100\n"
--"PO-Revision-Date: 2008-03-16 00:10+0100\n"
-+"PO-Revision-Date: 2010-11-04 08:05+0100\n"
+-"POT-Creation-Date: 2015-12-28 21:37+0000\n"
++"POT-Creation-Date: 2015-12-18 14:45+0000\n"
+ "PO-Revision-Date: 2015-12-18 23:41+0100\n"
"Last-Translator: Jakub Bogusz <qboosh@pld-linux.org>\n"
"Language-Team: Polish <translation-team-pl@lists.sourceforge.net>\n"
- "MIME-Version: 1.0\n"
-@@ -507,9 +507,9 @@
- msgstr "Ten system nie daje mo¿liwo¶ci sprawdzenia czasu narodzin pliku."
+@@ -31,98 +31,57 @@ msgid "Cannot close standard input"
+ msgstr "Nie można zamknąć standardowego wejścia"
- #: find/parser.c:1525
+ #: find/exec.c:285
-#, fuzzy, c-format
+-msgid "Failed to change directory%s%s"
+#, c-format
- msgid "The %s test needs an argument"
--msgstr "%s: opcja `%s' musi mieæ argument\n"
-+msgstr "Test %s musi mieæ argument"
++msgid "Failed to change directory: %s"
+ msgstr "Nie udało się zmienić katalogu: %s"
- #: find/parser.c:1562
+-#: find/exec.c:314 xargs/xargs.c:1265
++#: find/exec.c:312 xargs/xargs.c:1241
#, c-format
-@@ -571,14 +571,13 @@
- msgstr "B³êdny argument %s opcji -used"
+ msgid "cannot fork"
+ msgstr "nie można wykonać fork"
- #: find/parser.c:2463
--#, fuzzy, c-format
+-#: find/exec.c:345
++#: find/exec.c:343
+ #, c-format
+ msgid "error waiting for %s"
+ msgstr "błąd podczas czekania na %s"
+
+-#: find/exec.c:354
++#: find/exec.c:352
+ #, c-format
+ msgid "%s terminated by signal %d"
+ msgstr "%s zakończony sygnałem %d"
+
+-#: find/fstype.c:185
+-#, c-format
+-msgid "Cannot read mounted file system list"
+-msgstr "Nie można odczytać listy zamontowanych systemów plików"
+-
+-#: find/fstype.c:244
+-msgid "unknown"
+-msgstr "nieznany"
+-
+-#: find/ftsfind.c:245 find/oldfind.c:1139
+-#, c-format
+-msgid ""
+-"Symbolic link %s is part of a loop in the directory hierarchy; we have "
+-"already visited the directory to which it points."
+-msgstr ""
+-"Dowiązanie symboliczne %s jest częścią pętli w hierarchii katalogów; katalog "
+-"wskazywany przez to dowiązanie był już odwiedzony."
+-
+-#: find/ftsfind.c:259
+-#, c-format
+-msgid ""
+-"File system loop detected; %s is part of the same file system loop as %s."
+-msgstr ""
+-"Wykryto pętlę w systemie plików; %s jest częścią tej samej pętli w systemie "
+-"plików co %s."
+-
+-#: find/ftsfind.c:444 find/util.c:221
+-#, c-format
+-msgid "WARNING: file %s appears to have mode 0000"
+-msgstr "UWAGA: wygląda na to, że plik %s ma uprawnienia 0000"
+-
+-#: find/ftsfind.c:559
+-#, c-format
+-msgid "cannot search %s"
+-msgstr "nie można szukać %s"
+-
+-#: find/ftsfind.c:609
+-#, c-format
+-msgid "failed to restore working directory after searching %s"
+-msgstr "nie udało się przywrócić katalogu roboczego po przeszukaniu %s"
+-
+-#: find/ftsfind.c:677 find/oldfind.c:204
++#: find/find.c:203 find/ftsfind.c:677
+ #, c-format
+ msgid "Failed to initialize shared-file hash table"
+ msgstr "Nie udało się zainicjować tablicy haszującej współdzielonych plików"
+
+-#: find/ftsfind.c:693 find/oldfind.c:220 locate/bigram.c:105 locate/code.c:174
+-#: locate/frcode.c:233 locate/locate.c:1581 xargs/xargs.c:423
++#: find/find.c:219 find/ftsfind.c:693 locate/bigram.c:105 locate/code.c:174
++#: locate/frcode.c:233 locate/locate.c:1581 xargs/xargs.c:401
+ #, c-format
+ msgid "The atexit library function failed"
+ msgstr "Wywołanie funkcji bibliotecznej atexit nie powiodło się"
+
+-#: find/oldfind.c:264
++#: find/find.c:263
+ #, c-format
+ msgid "cannot stat current directory"
+ msgstr "nie można wykonać stat na bieżącym katalogu"
+
+-#: find/oldfind.c:355
++#: find/find.c:354
+ #, c-format
+ msgid "Cannot read list of mounted devices."
+ msgstr "Nie można odczytać listy podmontowanych urządzeń."
+
+-#: find/oldfind.c:444
++#: find/find.c:443
+ #, c-format
+ msgid "WARNING: file system %s has recently been unmounted."
+ msgstr "UWAGA: system plików %s został niedawno odmontowany."
+
+-#: find/oldfind.c:454
++#: find/find.c:453
+ #, c-format
+ msgid "WARNING: file system %s has recently been mounted."
+ msgstr "UWAGA: system plików %s został niedawno zamontowany."
+
+-#: find/oldfind.c:551
++#: find/find.c:550
+ #, c-format
+ msgid ""
+ "%s%s changed during execution of %s (old device number %ld, new device "
+@@ -131,7 +90,7 @@ msgstr ""
+ "%s%s zmienił się podczas wykonywania %s (stary numer urządzenia %ld, nowy "
+ "numer urządzenia %ld, typ systemu plików to %s) [ref %ld]"
+
+-#: find/oldfind.c:588
++#: find/find.c:587
+ #, c-format
+ msgid ""
+ "%s%s changed during execution of %s (old inode number %<PRIuMAX>, new inode "
+@@ -140,17 +99,26 @@ msgstr ""
+ "%s%s zmienił się podczas wykonywania %s (stary numer i-węzła %<PRIuMAX>, "
+ "nowy numer i-węzła %<PRIuMAX>, typ systemu plików %s) [ref %ld]"
+
+-#: find/oldfind.c:753
++#: find/find.c:752
+ #, c-format
+ msgid "failed to return to parent directory"
+ msgstr "nie udało się wrócić do katalogu nadrzędnego"
+
+-#: find/oldfind.c:1039
++#: find/find.c:1038
+ #, c-format
+ msgid "Failed to safely change directory into %s"
+ msgstr "Nie udało się bezpiecznie zmienić katalogu na %s"
+
+-#: find/oldfind.c:1158
++#: find/find.c:1138 find/ftsfind.c:245
++#, c-format
++msgid ""
++"Symbolic link %s is part of a loop in the directory hierarchy; we have "
++"already visited the directory to which it points."
++msgstr ""
++"Dowiązanie symboliczne %s jest częścią pętli w hierarchii katalogów; katalog "
++"wskazywany przez to dowiązanie był już odwiedzony."
++
++#: find/find.c:1157
+ #, c-format
+ msgid ""
+ "Filesystem loop detected; %s has the same device number and inode as a "
+@@ -168,12 +136,12 @@ msgstr[2] ""
+ "Wykryto pętlę w systemie plików; %s ma ten sam numer urządzenia i i-węzeł co "
+ "katalog %d poziomów wyżej w hierarchii systemu plików."
+
+-#: find/oldfind.c:1410
++#: find/find.c:1409
+ #, c-format
+ msgid "warning: not following the symbolic link %s"
+ msgstr "uwaga: nie podążanie za dowiązaniem symbolicznym %s"
+
+-#: find/oldfind.c:1483
++#: find/find.c:1482
+ #, c-format
+ msgid ""
+ "WARNING: Hard link count is wrong for %s (saw only st_nlink=%<PRIuMAX> but "
+@@ -188,6 +156,38 @@ msgstr ""
+ "Wcześniejsze wyniki mogły nie zawierać katalogów, które powinny być "
+ "przeszukane."
+
++#: find/fstype.c:185
++#, c-format
++msgid "Cannot read mounted file system list"
++msgstr "Nie można odczytać listy zamontowanych systemów plików"
++
++#: find/fstype.c:244
++msgid "unknown"
++msgstr "nieznany"
++
++#: find/ftsfind.c:259
++#, c-format
++msgid ""
++"File system loop detected; %s is part of the same file system loop as %s."
++msgstr ""
++"Wykryto pętlę w systemie plików; %s jest częścią tej samej pętli w systemie "
++"plików co %s."
++
++#: find/ftsfind.c:444 find/util.c:222
+#, c-format
++msgid "WARNING: file %s appears to have mode 0000"
++msgstr "UWAGA: wygląda na to, że plik %s ma uprawnienia 0000"
++
++#: find/ftsfind.c:559
++#, c-format
++msgid "cannot search %s"
++msgstr "nie można szukać %s"
++
++#: find/ftsfind.c:609
++#, c-format
++msgid "failed to restore working directory after searching %s"
++msgstr "nie udało się przywrócić katalogu roboczego po przeszukaniu %s"
++
+ #: find/parser.c:452
+ #, c-format
+ msgid ""
+@@ -199,7 +199,7 @@ msgstr ""
+ "aktywna jest opcja -depth. Aby wykonać tę akcję, należy explicite użyć opcji "
+ "-depth."
+
+-#: find/parser.c:608
++#: find/parser.c:599
+ #, c-format
+ msgid ""
+ "warning: you have specified the %s option after a non-option argument %s, "
+@@ -211,7 +211,7 @@ msgstr ""
+ "pozycyjne (%s wpływa na testy podane przed nią jak i po niej). Proszę "
+ "podawać opcje przed innymi argumentami.\n"
+
+-#: find/parser.c:915
++#: find/parser.c:906
+ #, c-format
+ msgid ""
+ "warning: the -d option is deprecated; please use -depth instead, because the "
+@@ -220,7 +220,7 @@ msgstr ""
+ "uwaga: opcja -d jest przestarzała; proszę zamiast niej używać -depth, "
+ "ponieważ ta jest zgodna z POSIX."
+
+-#: find/parser.c:1188
++#: find/parser.c:1179
+ #, c-format
+ msgid ""
+ "%s is not the name of an existing group and it does not look like a numeric "
+@@ -229,17 +229,17 @@ msgstr ""
+ "%s nie jest nazwą żadnej istniejącej grupy i nie wygląda na liczbowy "
+ "identyfikator grupy, ponieważ ma nieznany przyrostek %s"
+
+-#: find/parser.c:1203
++#: find/parser.c:1194
+ #, c-format
+ msgid "%s is not the name of an existing group"
+ msgstr "%s nie jest nazwą żadnej istniejącej grupy"
+
+-#: find/parser.c:1209
++#: find/parser.c:1200
+ #, c-format
+ msgid "argument to -group is empty, but should be a group name"
+ msgstr "argument opcji -group jest pusty, a powinien być nazwą grupy"
+
+-#: find/parser.c:1231
++#: find/parser.c:1222
+ msgid ""
+ "\n"
+ "default path is the current directory; default expression is -print\n"
+@@ -249,7 +249,7 @@ msgstr ""
+ "domyślna ścieżka to aktualny katalog; domyślne wyrażenie to -print\n"
+ "wyrażenie może składać się z: operatorów, opcji, testów i akcji:\n"
+
+-#: find/parser.c:1234
++#: find/parser.c:1225
+ msgid ""
+ "operators (decreasing precedence; -and is implicit where no others are "
+ "given):\n"
+@@ -260,7 +260,7 @@ msgstr ""
+ " ( WYR ) ! WYR -not WYR WYR1 -a WYR2 WYR1 -and WYR2\n"
+ " WYR1 -o WYR2 WYR1 -or WYR2 WYR1 , WYR2\n"
+
+-#: find/parser.c:1238
++#: find/parser.c:1229
+ msgid ""
+ "positional options (always true): -daystart -follow -regextype\n"
+ "\n"
+@@ -274,7 +274,7 @@ msgstr ""
+ " -depth --help -maxdepth POZIOMY -mindepth POZIOMY -mount -noleaf\n"
+ " --version -xdev -ignore_readdir_race -noignore_readdir_race\n"
+
+-#: find/parser.c:1243
++#: find/parser.c:1234
+ msgid ""
+ "tests (N can be +N or -N or N): -amin N -anewer FILE -atime N -cmin N\n"
+ " -cnewer FILE -ctime N -empty -false -fstype TYPE -gid N -group NAME\n"
+@@ -289,7 +289,7 @@ msgstr ""
+ "WZORZEC\n"
+ " -links N -lname WZORZEC -mmin N -mtime N -name WZORZEC -newer PLIK"
+
+-#: find/parser.c:1248
++#: find/parser.c:1239
+ msgid ""
+ " -nouser -nogroup -path PATTERN -perm [-/]MODE -regex PATTERN\n"
+ " -readable -writable -executable\n"
+@@ -301,11 +301,11 @@ msgstr ""
+ " -wholename WZORZEC -size N[bcwkMG] -true -type [bcdpflsD] -uid N\n"
+ " -used N -user NAZWA -xtype [bcdpfls]"
+
+-#: find/parser.c:1253
++#: find/parser.c:1244
+ msgid " -context CONTEXT\n"
+ msgstr " -context KONTEKST\n"
+
+-#: find/parser.c:1255
++#: find/parser.c:1246
+ msgid ""
+ "\n"
+ "actions: -delete -print0 -printf FORMAT -fprintf FILE FORMAT -print \n"
+@@ -319,7 +319,7 @@ msgstr ""
+ " -exec POLECENIE ; -exec POLECENIE {} + -ok POLECENIE ;\n"
+ " -execdir POLECENIE ; -execdir POLECENIE {} + -okdir POLECENIE ;\n"
+
+-#: find/parser.c:1261
++#: find/parser.c:1252
+ msgid ""
+ "Report (and track progress on fixing) bugs via the findutils bug-reporting\n"
+ "page at http://savannah.gnu.org/ or, if you have no web access, by sending\n"
+@@ -330,13 +330,13 @@ msgstr ""
+ "w przypadku braku dostępu do WWW, wysyłając pocztę elektroniczną pod\n"
+ "adres <bug-findutils@gnu.org>."
+
+-#: find/parser.c:1316
++#: find/parser.c:1307
+ #, c-format
+ msgid "sanity check of the fnmatch() library function failed."
+ msgstr ""
+ "sprawdzenie poprawności funkcji bibliotecznej fnmatch() nie powiodło się."
+
+-#: find/parser.c:1330
++#: find/parser.c:1321
+ #, c-format
+ msgid ""
+ "warning: Unix filenames usually don't contain slashes (though pathnames "
+@@ -350,44 +350,44 @@ msgstr ""
+ "systemie. Przydatny może być test '-wholename' albo '-samefile'. "
+ "Ewentualnie, mając GNU grepa, można użyć 'find ... -print0 | grep -FzZ %s'."
+
+-#: find/parser.c:1456
++#: find/parser.c:1447
+ #, c-format
+ msgid "Expected a positive decimal integer argument to %s, but got %s"
+ msgstr ""
+ "Dla opcji %s oczekiwano argumentu będącego dodatnią liczbą całkowitą, a "
+ "otrzymano %s"
+
+-#: find/parser.c:1621
++#: find/parser.c:1612
+ #, c-format
+ msgid "This system does not provide a way to find the birth time of a file."
+ msgstr "Ten system nie daje możliwości sprawdzenia czasu narodzin pliku."
+
+-#: find/parser.c:1642
++#: find/parser.c:1633
+ #, c-format
+ msgid "The %s test needs an argument"
+ msgstr "Test %s musi mieć argument"
+
+-#: find/parser.c:1679
++#: find/parser.c:1670
+ #, c-format
+ msgid "I cannot figure out how to interpret %s as a date or time"
+ msgstr "Nie wiem jak zinterpretować %s jako datę lub czas"
+
+-#: find/parser.c:1696
++#: find/parser.c:1687
+ #, c-format
+ msgid "Cannot obtain birth time of file %s"
+ msgstr "Nie można uzyskać czasu narodzin pliku %s"
+
+-#: find/parser.c:1840
++#: find/parser.c:1831
+ #, c-format
+ msgid "warning: -%s %s will not match anything because it ends with /."
+ msgstr "uwaga: -%s %s nie pasuje do niczego, ponieważ kończy się /."
+
+-#: find/parser.c:1937
++#: find/parser.c:1928
+ #, c-format
+ msgid "invalid mode %s"
+ msgstr "niewłaściwe uprawnienia %s"
+
+-#: find/parser.c:1955
++#: find/parser.c:1946
+ #, c-format
+ msgid ""
+ "warning: you have specified a mode pattern %s (which is equivalent to /000). "
+@@ -399,27 +399,22 @@ msgstr ""
+ "wcześniej nie pasowało do żadnych plików, ale teraz pasuje do wszystkich "
+ "plików."
+
+-#: find/parser.c:2128
+-#, c-format
+-msgid "failed to compile regular expression '%s': %s"
+-msgstr ""
+-
+-#: find/parser.c:2157
++#: find/parser.c:2147
+ #, c-format
+ msgid "invalid null argument to -size"
+ msgstr "błędny zerowy argument opcji -size"
+
+-#: find/parser.c:2207
++#: find/parser.c:2197
+ #, c-format
+ msgid "invalid -size type `%c'"
+ msgstr "błędny typ -size `%c'"
+
+-#: find/parser.c:2217
++#: find/parser.c:2207
+ #, c-format
+ msgid "Invalid argument `%s%s' to -size"
+ msgstr "Błędny argument `%s%s' opcji -size"
+
+-#: find/parser.c:2399
++#: find/parser.c:2389
+ msgid ""
+ "The -show-control-chars option takes a single argument which must be "
+ "'literal' or 'safe'"
+@@ -427,37 +422,37 @@ msgstr ""
+ "Opcja -show-control-chars przyjmuje jeden argument o wartości 'literal' lub "
+ "'safe'"
+
+-#: find/parser.c:2513
++#: find/parser.c:2503
+ #, c-format
+ msgid "Invalid argument %s to -used"
+ msgstr "Błędny argument %s opcji -used"
+
+-#: find/parser.c:2554
++#: find/parser.c:2544
+ #, c-format
msgid "%s is not the name of a known user"
--msgstr "%s nie jest nazw± ¿adnej istniej±cej grupy"
-+msgstr "%s nie jest nazw± ¿adnego znanego u¿ytkownika"
+ msgstr "%s nie jest nazwą żadnego znanego użytkownika"
- #: find/parser.c:2469
--#, fuzzy
+-#: find/parser.c:2561
++#: find/parser.c:2551
+ #, c-format
msgid "The argument to -user should not be empty"
--msgstr "Argument opcji --max-database-age nie mo¿e byæ pusty"
-+msgstr "Argument opcji -user nie mo¿e byæ pusty"
+ msgstr "Argument opcji -user nie może być pusty"
+
+-#: find/parser.c:2586
++#: find/parser.c:2576
+ #, c-format
+ msgid "Features enabled: "
+ msgstr "Włączone właściwości: "
+
+-#: find/parser.c:2663
++#: find/parser.c:2653
+ #, c-format
+ msgid "invalid predicate -context: SELinux is not enabled."
+ msgstr "błędne wyrażenie -context: SELinux nie jest włączony."
+
+-#: find/parser.c:2727
++#: find/parser.c:2717
+ #, c-format
+ msgid "Arguments to -type should contain only one letter"
+ msgstr "Argumenty dla -type powinny zawierać tylko jedną literę"
+
+-#: find/parser.c:2756
++#: find/parser.c:2746
+ #, c-format
+ msgid ""
+ "-type %c is not supported because symbolic links are not supported on the "
+@@ -466,7 +461,7 @@ msgstr ""
+ "-type %c nie jest obsługiwane, ponieważ dowiązania symboliczne nie są "
+ "obsługiwane na platformie, dla której find został skompilowany."
+
+-#: find/parser.c:2767
++#: find/parser.c:2757
+ #, c-format
+ msgid ""
+ "-type %c is not supported because FIFOs are not supported on the platform "
+@@ -475,7 +470,7 @@ msgstr ""
+ "-type %c nie jest obsługiwane, ponieważ FIFO nie są obsługiwane na "
+ "platformie, dla której find został skompilowany."
+
+-#: find/parser.c:2778
++#: find/parser.c:2768
+ #, c-format
+ msgid ""
+ "-type %c is not supported because named sockets are not supported on the "
+@@ -484,7 +479,7 @@ msgstr ""
+ "-type %c nie jest obsługiwane, ponieważ gniazda nazwane nie są obsługiwane "
+ "na platformie, dla której find został skompilowany."
+
+-#: find/parser.c:2789
++#: find/parser.c:2779
+ #, c-format
+ msgid ""
+ "-type %c is not supported because Solaris doors are not supported on the "
+@@ -493,12 +488,12 @@ msgstr ""
+ "-type %c nie jest obsługiwane, ponieważ solarisowe \"drzwi\" nie są "
+ "obsługiwane na platformie, dla której find został skompilowany."
+
+-#: find/parser.c:2796
++#: find/parser.c:2786
+ #, c-format
+ msgid "Unknown argument to -type: %c"
+ msgstr "Nieznany argument opcji -type: %c"
+
+-#: find/parser.c:2870
++#: find/parser.c:2860
+ #, c-format
+ msgid ""
+ "The current directory is included in the PATH environment variable, which is "
+@@ -511,7 +506,7 @@ msgstr ""
+ "katalog ze zmiennej $PATH (tzn. usunąć \".\", podwójne, wiodące lub końcowe "
+ "dwukropki)"
+
+-#: find/parser.c:2882
++#: find/parser.c:2872
+ #, c-format
+ msgid ""
+ "The relative path %s is included in the PATH environment variable, which is "
+@@ -522,7 +517,7 @@ msgstr ""
+ "niebezpieczne w połączeniu z akcją %s polecenia find. Proszę usunąć ten wpis "
+ "ze zmiennej $PATH"
+
+-#: find/parser.c:2991
++#: find/parser.c:2981
+ #, c-format
+ msgid ""
+ "You may not use {} within the utility name for -execdir and -okdir, because "
+@@ -531,37 +526,37 @@ msgstr ""
+ "Nie można używać {} wewnątrz nazwy narzędzia dla opcji -execdir i -okdir, "
+ "ponieważ jest to potencjalny problem z bezpieczeństwem."
+
+-#: find/parser.c:3017
++#: find/parser.c:3007
+ #, c-format
+ msgid "Only one instance of {} is supported with -exec%s ... +"
+ msgstr "Obsługiwane jest tylko jedno wystąpienie {} przy -exec%s ... +"
+
+-#: find/parser.c:3027
++#: find/parser.c:3017
+ #, c-format
+ msgid "In %s the %s must appear by itself, but you specified %s"
+ msgstr "W %s %s musi wystąpić jako takie, ale podano %s"
+
+-#: find/parser.c:3047
++#: find/parser.c:3037
+ #, c-format
+ msgid "The environment is too large for exec()."
+ msgstr "Środowisko jest zbyt duże, aby wykonać exec()."
+
+-#: find/parser.c:3216
++#: find/parser.c:3206
+ #, c-format
+ msgid "arithmetic overflow while converting %s days to a number of seconds"
+ msgstr "przepełnienie arytmetyczne przy przeliczaniu %s z dni na liczbę sekund"
+
+-#: find/parser.c:3240
++#: find/parser.c:3230
+ #, c-format
+ msgid "arithmetic overflow when trying to calculate the end of today"
+ msgstr ""
+ "przepełnienie arytmetyczne przy próbie obliczenia końca dnia dzisiejszego"
+
+-#: find/parser.c:3399
++#: find/parser.c:3389
+ msgid "standard error"
+ msgstr "standardowe wyjście diagnostyczne"
+
+-#: find/parser.c:3404
++#: find/parser.c:3394
+ msgid "standard output"
+ msgstr "standardowe wyjście"
+
+@@ -736,52 +731,52 @@ msgstr "nie obsÅ\82ugiwane dodatkowe wyraÅ
+ msgid "oops -- invalid default insertion of and!"
+ msgstr "ojej -- błędne domyślne wstawienie and!"
+
+-#: find/util.c:174
++#: find/util.c:175
+ #, c-format
+ msgid "Usage: %s [-H] [-L] [-P] [-Olevel] [-D "
+ msgstr "Składnia: %s [-H] [-L] [-P] [-Opoziom] [-D "
+
+-#: find/util.c:176
++#: find/util.c:177
+ #, c-format
+ msgid "] [path...] [expression]\n"
+ msgstr "] [ścieżka...] [wyrażenie]\n"
+
+-#: find/util.c:458
+-#, fuzzy, c-format
+-msgid "Failed to save initial working directory%s%s"
++#: find/util.c:459
++#, c-format
++msgid "failed to save initial working directory: %s"
+ msgstr "nie udało się zachować początkowego katalogu roboczego: %s"
+
+-#: find/util.c:477
+-#, fuzzy, c-format
+-msgid "Failed to restore initial working directory%s%s"
++#: find/util.c:476
++#, c-format
++msgid "failed to restore initial working directory: %s"
+ msgstr "nie udało się przywrócić początkowego katalogu roboczego: %s"
+
+-#: find/util.c:827
++#: find/util.c:824
+ #, c-format
+ msgid "Ignoring unrecognised debug flag %s"
+ msgstr "Zignorowano nierozpoznaną flagę diagnostyczną %s"
+
+-#: find/util.c:834
++#: find/util.c:831
+ #, c-format
+ msgid "Empty argument to the -D option."
+ msgstr "Pusty argument dla opcji -D."
+
+-#: find/util.c:850
++#: find/util.c:847
+ #, c-format
+ msgid "The -O option must be immediately followed by a decimal integer"
+ msgstr "Bezpośrednio po opcji -O musi wystąpić liczba dziesiętna"
+
+-#: find/util.c:860 find/util.c:871
++#: find/util.c:857 find/util.c:868
+ #, c-format
+ msgid "Please specify a decimal number immediately after -O"
+ msgstr "Proszę podać liczbę dziesiętną bezpośrednio po -O"
+
+-#: find/util.c:876 find/util.c:881
++#: find/util.c:873 find/util.c:878
+ #, c-format
+ msgid "Invalid optimisation level %s"
+ msgstr "Błędny poziom optymalizacji %s"
+
+-#: find/util.c:889
++#: find/util.c:886
+ #, c-format
+ msgid ""
+ "Optimisation level %lu is too high. If you want to find files very quickly, "
+@@ -790,7 +785,7 @@ msgstr ""
+ "Poziom optymalizacji %lu jest zbyt duży. Aby odnaleźć pliki bardzo szybko, "
+ "można użyć GNU locate."
+
+-#: find/util.c:1033
++#: find/util.c:1030
+ #, c-format
+ msgid ""
+ "The environment variable FIND_BLOCK_SIZE is not supported, the only thing "
+@@ -799,29 +794,367 @@ msgstr ""
+ "Zmienna środowiskowa FIND_BLOCK_SIZE nie jest obsługiwana; jedyne, co wpływa "
+ "na rozmiar bloku, to zmienna środowiskowa POSIXLY_CORRECT"
+
+-#: lib/buildcmd.c:160
++#: gl/lib/argmatch.c:133
++#, c-format
++msgid "invalid argument %s for %s"
++msgstr "błędny argument %s opcji %s"
++
++#: gl/lib/argmatch.c:134
++#, c-format
++msgid "ambiguous argument %s for %s"
++msgstr "niejednoznaczny argument %s opcji %s"
++
++#: gl/lib/argmatch.c:153
++msgid "Valid arguments are:"
++msgstr "Prawidłowe argumenty to:"
++
++#: gl/lib/closein.c:100
++msgid "error closing file"
++msgstr "błąd podczas zamykania pliku"
++
++#: gl/lib/closeout.c:112 locate/code.c:153 locate/frcode.c:210
++#, c-format
++msgid "write error"
++msgstr "błąd zapisu"
++
++#: gl/lib/error.c:188
++msgid "Unknown system error"
++msgstr "Nieznany błąd systemowy"
++
++#: gl/lib/getopt.c:547 gl/lib/getopt.c:576
++#, c-format
++msgid "%s: option '%s' is ambiguous; possibilities:"
++msgstr "%s: opcja '%s' jest niejednoznaczna; możliwości:"
++
++#: gl/lib/getopt.c:624 gl/lib/getopt.c:628
++#, c-format
++msgid "%s: option '--%s' doesn't allow an argument\n"
++msgstr "%s: opcja '--%s' nie może mieć argumentów\n"
++
++#: gl/lib/getopt.c:637 gl/lib/getopt.c:642
++#, c-format
++msgid "%s: option '%c%s' doesn't allow an argument\n"
++msgstr "%s: opcja '%c%s' nie może mieć argumentów\n"
++
++#: gl/lib/getopt.c:685 gl/lib/getopt.c:704
++#, c-format
++msgid "%s: option '--%s' requires an argument\n"
++msgstr "%s: opcja '--%s' musi mieć argument\n"
++
++#: gl/lib/getopt.c:742 gl/lib/getopt.c:745
++#, c-format
++msgid "%s: unrecognized option '--%s'\n"
++msgstr "%s: nieznana opcja '--%s'\n"
++
++#: gl/lib/getopt.c:753 gl/lib/getopt.c:756
++#, c-format
++msgid "%s: unrecognized option '%c%s'\n"
++msgstr "%s: nieznana opcja '%c%s'\n"
++
++#: gl/lib/getopt.c:805 gl/lib/getopt.c:808
++#, c-format
++msgid "%s: invalid option -- '%c'\n"
++msgstr "%s: błędna opcja -- '%c'\n"
++
++#: gl/lib/getopt.c:861 gl/lib/getopt.c:878 gl/lib/getopt.c:1088
++#: gl/lib/getopt.c:1106
++#, c-format
++msgid "%s: option requires an argument -- '%c'\n"
++msgstr "%s: opcja musi mieć argument -- '%c'\n"
++
++#: gl/lib/getopt.c:934 gl/lib/getopt.c:950
++#, c-format
++msgid "%s: option '-W %s' is ambiguous\n"
++msgstr "%s: opcja '-W %s' jest niejednoznaczna\n"
++
++#: gl/lib/getopt.c:974 gl/lib/getopt.c:992
++#, c-format
++msgid "%s: option '-W %s' doesn't allow an argument\n"
++msgstr "%s: opcja '-W %s' nie może mieć argumentów\n"
++
++#: gl/lib/getopt.c:1013 gl/lib/getopt.c:1031
++#, c-format
++msgid "%s: option '-W %s' requires an argument\n"
++msgstr "%s: opcja '-W %s' musi mieć argument\n"
++
++#: gl/lib/openat-die.c:38
++#, c-format
++msgid "unable to record current working directory"
++msgstr "nie udało się zapisać bieżącego katalogu roboczego"
++
++#: gl/lib/openat-die.c:57
++#, c-format
++msgid "failed to return to initial working directory"
++msgstr "nie udało się wrócić do początkowego katalogu roboczego"
++
++#. TRANSLATORS:
++#. Get translations for open and closing quotation marks.
++#. The message catalog should translate "`" to a left
++#. quotation mark suitable for the locale, and similarly for
++#. "'". For example, a French Unicode local should translate
++#. these to U+00AB (LEFT-POINTING DOUBLE ANGLE
++#. QUOTATION MARK), and U+00BB (RIGHT-POINTING DOUBLE ANGLE
++#. QUOTATION MARK), respectively.
++#.
++#. If the catalog has no translation, we will try to
++#. use Unicode U+2018 (LEFT SINGLE QUOTATION MARK) and
++#. Unicode U+2019 (RIGHT SINGLE QUOTATION MARK). If the
++#. current locale is not Unicode, locale_quoting_style
++#. will quote 'like this', and clocale_quoting_style will
++#. quote "like this". You should always include translations
++#. for "`" and "'" even if U+2018 and U+2019 are appropriate
++#. for your locale.
++#.
++#. If you don't know what to put here, please see
++#. <http://en.wikipedia.org/wiki/Quotation_marks_in_other_languages>
++#. and use glyphs suitable for your language.
++#: gl/lib/quotearg.c:312
++msgid "`"
++msgstr "`"
++
++#: gl/lib/quotearg.c:313
++msgid "'"
++msgstr "'"
++
++#. TRANSLATORS: A regular expression testing for an affirmative answer
++#. (english: "yes"). Testing the first character may be sufficient.
++#. Take care to consider upper and lower case.
++#. To enquire the regular expression that your system uses for this
++#. purpose, you can use the command
++#. locale -k LC_MESSAGES | grep '^yesexpr='
++#: gl/lib/rpmatch.c:150
++msgid "^[yY]"
++msgstr "^[yYtT]"
++
++#. TRANSLATORS: A regular expression testing for a negative answer
++#. (english: "no"). Testing the first character may be sufficient.
++#. Take care to consider upper and lower case.
++#. To enquire the regular expression that your system uses for this
++#. purpose, you can use the command
++#. locale -k LC_MESSAGES | grep '^noexpr='
++#: gl/lib/rpmatch.c:163
++msgid "^[nN]"
++msgstr "^[nN]"
++
++#: gl/lib/version-etc.c:74
++#, c-format
++msgid "Packaged by %s (%s)\n"
++msgstr "Pakietujący: %s (%s)\n"
++
++#: gl/lib/version-etc.c:77
++#, c-format
++msgid "Packaged by %s\n"
++msgstr "Pakietujący: %s\n"
++
++#. TRANSLATORS: Translate "(C)" to the copyright symbol
++#. (C-in-a-circle), if this symbol is available in the user's
++#. locale. Otherwise, do not translate "(C)"; leave it as-is.
++#: gl/lib/version-etc.c:84
++msgid "(C)"
++msgstr "(C)"
++
++#: gl/lib/version-etc.c:86
++msgid ""
++"\n"
++"License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl."
++"html>.\n"
++"This is free software: you are free to change and redistribute it.\n"
++"There is NO WARRANTY, to the extent permitted by law.\n"
++"\n"
++msgstr ""
++"\n"
++"Licencja GPLv3+: GNU GPL wersja 3 lub późniejsza:\n"
++"<http://gnu.org/licenses/gpl.html>\n"
++"To jest oprogramowanie wolnodostępne: można je modyfikować i "
++"rozpowszechniać.\n"
++"Nie ma ŻADNEJ GWARANCJI w zakresie dopuszczalnym przez prawo.\n"
++
++#. TRANSLATORS: %s denotes an author name.
++#: gl/lib/version-etc.c:102
++#, c-format
++msgid "Written by %s.\n"
++msgstr "Autor: %s.\n"
++
++#. TRANSLATORS: Each %s denotes an author name.
++#: gl/lib/version-etc.c:106
++#, c-format
++msgid "Written by %s and %s.\n"
++msgstr "Autorzy: %s i %s.\n"
++
++#. TRANSLATORS: Each %s denotes an author name.
++#: gl/lib/version-etc.c:110
++#, c-format
++msgid "Written by %s, %s, and %s.\n"
++msgstr "Autorzy: %s, %s i %s.\n"
++
++#. TRANSLATORS: Each %s denotes an author name.
++#. You can use line breaks, estimating that each author name occupies
++#. ca. 16 screen columns and that a screen line has ca. 80 columns.
++#: gl/lib/version-etc.c:117
++#, c-format
++msgid ""
++"Written by %s, %s, %s,\n"
++"and %s.\n"
++msgstr ""
++"Autorzy: %s, %s, %s\n"
++"i %s.\n"
++
++#. TRANSLATORS: Each %s denotes an author name.
++#. You can use line breaks, estimating that each author name occupies
++#. ca. 16 screen columns and that a screen line has ca. 80 columns.
++#: gl/lib/version-etc.c:124
++#, c-format
++msgid ""
++"Written by %s, %s, %s,\n"
++"%s, and %s.\n"
++msgstr ""
++"Autorzy: %s, %s, %s,\n"
++"%s i %s.\n"
++
++#. TRANSLATORS: Each %s denotes an author name.
++#. You can use line breaks, estimating that each author name occupies
++#. ca. 16 screen columns and that a screen line has ca. 80 columns.
++#: gl/lib/version-etc.c:131
++#, c-format
++msgid ""
++"Written by %s, %s, %s,\n"
++"%s, %s, and %s.\n"
++msgstr ""
++"Autorzy: %s, %s, %s,\n"
++"%s, %s i %s.\n"
++
++#. TRANSLATORS: Each %s denotes an author name.
++#. You can use line breaks, estimating that each author name occupies
++#. ca. 16 screen columns and that a screen line has ca. 80 columns.
++#: gl/lib/version-etc.c:139
++#, c-format
++msgid ""
++"Written by %s, %s, %s,\n"
++"%s, %s, %s, and %s.\n"
++msgstr ""
++"Autorzy: %s, %s, %s,\n"
++"%s, %s, %s i %s.\n"
++
++#. TRANSLATORS: Each %s denotes an author name.
++#. You can use line breaks, estimating that each author name occupies
++#. ca. 16 screen columns and that a screen line has ca. 80 columns.
++#: gl/lib/version-etc.c:147
++#, c-format
++msgid ""
++"Written by %s, %s, %s,\n"
++"%s, %s, %s, %s,\n"
++"and %s.\n"
++msgstr ""
++"Autorzy: %s, %s, %s,\n"
++"%s, %s, %s, %s\n"
++"i %s.\n"
++
++#. TRANSLATORS: Each %s denotes an author name.
++#. You can use line breaks, estimating that each author name occupies
++#. ca. 16 screen columns and that a screen line has ca. 80 columns.
++#: gl/lib/version-etc.c:156
++#, c-format
++msgid ""
++"Written by %s, %s, %s,\n"
++"%s, %s, %s, %s,\n"
++"%s, and %s.\n"
++msgstr ""
++"Autorzy: %s, %s, %s,\n"
++"%s, %s, %s, %s,\n"
++"%s i %s.\n"
++
++#. TRANSLATORS: Each %s denotes an author name.
++#. You can use line breaks, estimating that each author name occupies
++#. ca. 16 screen columns and that a screen line has ca. 80 columns.
++#: gl/lib/version-etc.c:167
++#, c-format
++msgid ""
++"Written by %s, %s, %s,\n"
++"%s, %s, %s, %s,\n"
++"%s, %s, and others.\n"
++msgstr ""
++"Autorzy: %s, %s, %s,\n"
++"%s, %s, %s, %s,\n"
++"%s, %s i inni.\n"
++
++#. TRANSLATORS: The placeholder indicates the bug-reporting address
++#. for this package. Please add _another line_ saying
++#. "Report translation bugs to <...>\n" with the address for translation
++#. bugs (typically your translation team's web or email address).
++#: gl/lib/version-etc.c:245
++#, c-format
++msgid ""
++"\n"
++"Report bugs to: %s\n"
++msgstr ""
++"\n"
++"Prosimy zgłaszać błędy na adres <%s>.\n"
++"Błędy w tłumaczeniu prosimy zgłaszać na adres <translation-team-pl@lists."
++"sourceforge.net>.\n"
++
++#: gl/lib/version-etc.c:247
++#, c-format
++msgid "Report %s bugs to: %s\n"
++msgstr "Błędy pakietującego (%s) prosimy zgłaszać na adres <%s>.\n"
++
++#: gl/lib/version-etc.c:251
++#, c-format
++msgid "%s home page: <%s>\n"
++msgstr "Strona domowa pakietu %s: <%s>\n"
++
++#: gl/lib/version-etc.c:253
++#, c-format
++msgid "%s home page: <http://www.gnu.org/software/%s/>\n"
++msgstr "Strona domowa pakietu %s: <http://www.gnu.org/software/%s/>.\n"
++
++#: gl/lib/version-etc.c:256
++msgid "General help using GNU software: <http://www.gnu.org/gethelp/>\n"
++msgstr ""
++"Ogólna pomoc przy używaniu oprogramowania GNU: <http://www.gnu.org/gethelp/"
++">.\n"
++
++#: gl/lib/xalloc-die.c:34
++msgid "memory exhausted"
++msgstr "pamięć wyczerpana"
++
++#: gl/lib/xstrtol-error.c:63
++#, c-format
++msgid "invalid %s%s argument '%s'"
++msgstr "błędny argument opcji %s%s '%s'"
++
++#: gl/lib/xstrtol-error.c:68
++#, c-format
++msgid "invalid suffix in %s%s argument '%s'"
++msgstr "błędny przyrostek argumentu opcji %s%s '%s'"
++
++#: gl/lib/xstrtol-error.c:72
++#, c-format
++msgid "%s%s argument '%s' too large"
++msgstr "argument opcji %s%s '%s' zbyt duży"
++
++#: lib/buildcmd.c:161
+ #, c-format
+ msgid "command too long"
+ msgstr "polecenie zbyt długie"
+
+-#: lib/buildcmd.c:300
++#: lib/buildcmd.c:301
+ #, c-format
+ msgid "can't call exec() due to argument size restrictions"
+ msgstr ""
+ "nie można wywołać exec() ze względu na ograniczenia rozmiaru argumentów"
+
+-#: lib/buildcmd.c:370
++#: lib/buildcmd.c:371
+ #, c-format
+ msgid "cannot fit single argument within argument list size limit"
+ msgstr ""
+ "nie można zmieścić pojedynczego argumentu w limicie rozmiaru listy argumentów"
+
+-#: lib/buildcmd.c:376
++#: lib/buildcmd.c:377
+ #, c-format
+ msgid "argument list too long"
+ msgstr "lista argumentów zbyt długa"
+
+-#: lib/buildcmd.c:628
++#: lib/buildcmd.c:629
+ #, c-format
+ msgid "Environment variable %s is not set to a valid decimal number"
+ msgstr ""
+@@ -849,7 +1182,7 @@ msgstr "James Youngman"
+ msgid "Kevin Dalley"
+ msgstr "Kevin Dalley"
+
+-#: lib/listfile.c:451
++#: lib/listfile.c:452
+ #, c-format
+ msgid "Failed to write output (at stage %d)"
+ msgstr "Nie udało się zapisać wyjścia (na etapie %d)"
+@@ -879,7 +1212,7 @@ msgstr ""
+ "lub %s najpopularniejsze_bigramy < lista-plików > baza-danych-locate\n"
+
+ #: locate/code.c:135 locate/frcode.c:162 locate/locate.c:1394
+-#: xargs/xargs.c:1697
++#: xargs/xargs.c:1673
+ msgid ""
+ "\n"
+ "Report bugs to <bug-findutils@gnu.org>.\n"
+@@ -887,11 +1220,6 @@ msgstr ""
+ "\n"
+ "Błędy proszę zgłaszać na adres <bug-findutils@gnu.org>.\n"
+
+-#: locate/code.c:153 locate/frcode.c:210
+-#, c-format
+-msgid "write error"
+-msgstr "błąd zapisu"
+-
+ #: locate/frcode.c:160
+ #, c-format
+ msgid "Usage: %s [-0 | --null] [--version] [--help]\n"
+@@ -1191,53 +1519,53 @@ msgstr ""
+ msgid "environment is too large for exec"
+ msgstr "środowisko jest zbyt duże, aby wykonać exec"
+
+-#: xargs/xargs.c:590
++#: xargs/xargs.c:568
+ #, c-format
+ msgid "warning: value %ld for -s option is too large, using %ld instead"
+ msgstr "uwaga: wartość %ld dla opcji -s jest zbyt duża, użyto %ld"
+
+-#: xargs/xargs.c:637
++#: xargs/xargs.c:615
+ #, c-format
+ msgid "option --%s may not be set to a value which includes `='"
+ msgstr "opcja --%s nie może być ustawiona na wartość zawierającą `='"
+
+-#: xargs/xargs.c:649
++#: xargs/xargs.c:627
+ #, c-format
+ msgid "failed to unset environment variable %s"
+ msgstr "nie udało się usunąć zmiennej środowiskowej %s"
+
+-#: xargs/xargs.c:663
++#: xargs/xargs.c:641
+ #, c-format
+ msgid "warning: the -E option has no effect if -0 or -d is used.\n"
+ msgstr "uwaga: opcja -E nie ma znaczenia, jeśli użyto -0 lub -d.\n"
+
+-#: xargs/xargs.c:685
++#: xargs/xargs.c:663
+ #, c-format
+ msgid "Cannot set SIGUSR1 signal handler"
+ msgstr "Nie można ustawić procedury obsługi sygnału SIGUSR1"
+
+-#: xargs/xargs.c:691
++#: xargs/xargs.c:669
+ #, c-format
+ msgid "Cannot set SIGUSR2 signal handler"
+ msgstr "Nie można ustawić procedury obsługi sygnału SIGUSR2"
+
+-#: xargs/xargs.c:707
++#: xargs/xargs.c:685
+ #, c-format
+ msgid "Cannot open input file %s"
+ msgstr "Nie można otworzyć pliku wejściowego %s"
+
+-#: xargs/xargs.c:726
++#: xargs/xargs.c:704
+ #, c-format
+ msgid "Your environment variables take up %<PRIuMAX> bytes\n"
+ msgstr "Zmienne środowiskowe zajmują %<PRIuMAX> bajtów\n"
+
+-#: xargs/xargs.c:729
++#: xargs/xargs.c:707
+ #, c-format
+ msgid "POSIX upper limit on argument length (this system): %<PRIuMAX>\n"
+ msgstr ""
+ "POSIX-owy górny limit na długość argumentów (na tym systemie): %<PRIuMAX>\n"
+
+-#: xargs/xargs.c:732
++#: xargs/xargs.c:710
+ #, c-format
+ msgid ""
+ "POSIX smallest allowable upper limit on argument length (all systems): "
+@@ -1246,23 +1574,23 @@ msgstr ""
+ "POSIX-owy najmniejszy dopuszczalny górny limit na długość argumentów: "
+ "%<PRIuMAX>\n"
+
+-#: xargs/xargs.c:735
++#: xargs/xargs.c:713
+ #, c-format
+ msgid "Maximum length of command we could actually use: %<PRIuMAX>\n"
+ msgstr "Maksymalna długość polecenia, które można użyć: %<PRIuMAX>\n"
+
+-#: xargs/xargs.c:738
++#: xargs/xargs.c:716
+ #, c-format
+ msgid "Size of command buffer we are actually using: %<PRIuMAX>\n"
+ msgstr "Rozmiar używanego bufora polecenia: %<PRIuMAX>\n"
+
+-#: xargs/xargs.c:741
++#: xargs/xargs.c:719
+ #, c-format
+ msgid "Maximum parallelism (--max-procs must be no greater): %<PRIuMAX>\n"
+ msgstr ""
+ "Maksymalne zrównoleglenie (--max-procs nie może być większe): %<PRIuMAX>\n"
+
+-#: xargs/xargs.c:747
++#: xargs/xargs.c:725
+ #, c-format
+ msgid ""
+ "\n"
+@@ -1275,7 +1603,7 @@ msgstr ""
+ "uruchamiać polecenia; jeśli nie jest to porządane zachowanie, proszę "
+ "wprowadzić znak końca pliku.\n"
+
+-#: xargs/xargs.c:755
++#: xargs/xargs.c:733
+ #, c-format
+ msgid ""
+ "Warning: %s will be run at least once. If you do not want that to happen, "
+@@ -1284,7 +1612,7 @@ msgstr ""
+ "Uwaga: %s będzie uruchomione przynajmniej raz. Jeśli nie jest to porządane "
+ "zachowanie, proszę nacisnąć klawisz przerwania.\n"
- #: find/parser.c:2494
+-#: xargs/xargs.c:883 xargs/xargs.c:976
++#: xargs/xargs.c:861 xargs/xargs.c:954
#, c-format
+ msgid ""
+ "unmatched %s quote; by default quotes are special to xargs unless you use "
+@@ -1293,15 +1621,15 @@ msgstr ""
+ "niedopasowany %s cudzysłów; domyślnie znaki cytowania są specjalnymi dla "
+ "xargs o ile nie użyto opcji -0"
+
+-#: xargs/xargs.c:884 xargs/xargs.c:977
++#: xargs/xargs.c:862 xargs/xargs.c:955
+ msgid "double"
+ msgstr "podwójny"
+
+-#: xargs/xargs.c:884 xargs/xargs.c:977
++#: xargs/xargs.c:862 xargs/xargs.c:955
+ msgid "single"
+ msgstr "pojedynczy"
+
+-#: xargs/xargs.c:996
++#: xargs/xargs.c:974
+ #, c-format
+ msgid ""
+ "WARNING: a NUL character occurred in the input. It cannot be passed through "
+@@ -1310,42 +1638,42 @@ msgstr ""
+ "UWAGA: na wejściu wystąpił znak NUL. Nie może być przekazany poprzez listę "
+ "argumentów. Czyżby miała być użyta opcja --null?"
+
+-#: xargs/xargs.c:1006 xargs/xargs.c:1071
++#: xargs/xargs.c:984 xargs/xargs.c:1049
+ #, c-format
+ msgid "argument line too long"
+ msgstr "za długa linia argumentów"
+
+-#: xargs/xargs.c:1090 xargs/xargs.c:1107
++#: xargs/xargs.c:1068 xargs/xargs.c:1085
+ #, c-format
+ msgid "Failed to write to stderr"
+ msgstr "Nie udało się zapisać na standardowe wyjście diagnostyczne"
+
+-#: xargs/xargs.c:1103
++#: xargs/xargs.c:1081
+ #, c-format
+ msgid "failed to open /dev/tty for reading"
+ msgstr "nie udało się otworzyć /dev/tty do odczytu"
+
+-#: xargs/xargs.c:1113
++#: xargs/xargs.c:1091
+ #, c-format
+ msgid "Failed to read from stdin"
+ msgstr "Nie udało się odczytać ze standardowego wyjścia"
+
+-#: xargs/xargs.c:1150
++#: xargs/xargs.c:1128
+ #, c-format
+ msgid "unable to allocate memory"
+ msgstr "nie udało się przydzielić pamięci"
+
+-#: xargs/xargs.c:1165
++#: xargs/xargs.c:1143
+ #, c-format
+ msgid "failed to set environment variable %s"
+ msgstr "nie udało się ustawić zmiennej środowiskowej %s"
+
+-#: xargs/xargs.c:1254
++#: xargs/xargs.c:1230
+ #, c-format
+ msgid "could not create pipe before fork"
+ msgstr "nie udało się utworzyć potoku przed wywołaniem fork"
+
+-#: xargs/xargs.c:1325
++#: xargs/xargs.c:1301
+ #, c-format
+ msgid ""
+ "errno-buffer safe_read failed in xargs_do_exec (this is probably a bug, "
+@@ -1354,7 +1682,7 @@ msgstr ""
+ "safe_read bufora errno w xargs_do_exec nie powiódł się (prawdopodobnie błąd, "
+ "proszę to zgłosić)"
+
+-#: xargs/xargs.c:1378
++#: xargs/xargs.c:1354
+ #, c-format
+ msgid ""
+ "read returned unexpected value %zu; this is probably a bug, please report it"
+@@ -1362,52 +1690,52 @@ msgstr ""
+ "read zwróciło nieoczekiwaną wartość %zu; prawdopodobnie błąd, proszę to "
+ "zgłosić"
+
+-#: xargs/xargs.c:1471
++#: xargs/xargs.c:1447
+ #, c-format
+ msgid "error waiting for child process"
+ msgstr "błąd podczas oczekiwania na proces potomny"
+
+-#: xargs/xargs.c:1504
++#: xargs/xargs.c:1480
+ #, c-format
+ msgid "WARNING: Lost track of %lu child processes"
+ msgstr "UWAGA: utracono ślad po %lu procesach potomnych"
+
+-#: xargs/xargs.c:1523
++#: xargs/xargs.c:1499
+ #, c-format
+ msgid "%s: exited with status 255; aborting"
+ msgstr "%s: wyszedł ze stanem 255; zaniechanie"
+
+-#: xargs/xargs.c:1526
++#: xargs/xargs.c:1502
+ #, c-format
+ msgid "%s: stopped by signal %d"
+ msgstr "%s: zatrzymany sygnałem %d"
+
+-#: xargs/xargs.c:1529
++#: xargs/xargs.c:1505
+ #, c-format
+ msgid "%s: terminated by signal %d"
+ msgstr "%s: zakończony sygnałem %d"
+
+-#: xargs/xargs.c:1614
++#: xargs/xargs.c:1590
+ #, c-format
+ msgid "%s: invalid number for -%c option\n"
+ msgstr "%s: błędna liczba dla opcji -%c\n"
+
+-#: xargs/xargs.c:1621
++#: xargs/xargs.c:1597
+ #, c-format
+ msgid "%s: value for -%c option should be >= %ld\n"
+ msgstr "%s: wartość dla opcji -%c powinna być >= %ld\n"
+
+-#: xargs/xargs.c:1635
++#: xargs/xargs.c:1611
+ #, c-format
+ msgid "%s: value for -%c option should be <= %ld\n"
+ msgstr "%s: wartość dla opcji -%c powinna być <= %ld\n"
+
+-#: xargs/xargs.c:1654
++#: xargs/xargs.c:1630
+ #, c-format
+ msgid "Usage: %s [OPTION]... COMMAND [INITIAL-ARGS]...\n"
+ msgstr "Składnia: %s [OPCJA]... POLECENIE [ARGUMENTY-POCZĄTKOWE]...\n"
+
+-#: xargs/xargs.c:1659
++#: xargs/xargs.c:1635
+ msgid ""
+ "Run COMMAND with arguments INITIAL-ARGS and more arguments read from input.\n"
+ "\n"
+@@ -1416,7 +1744,7 @@ msgstr ""
+ "czytanymi z wejścia.\n"
+ "\n"
+
+-#: xargs/xargs.c:1661
++#: xargs/xargs.c:1637
+ msgid ""
+ "Mandatory and optional arguments to long options are also\n"
+ "mandatory or optional for the corresponding short option.\n"
+@@ -1424,7 +1752,7 @@ msgstr ""
+ "Argumenty obowiązkowe i opcjonalne dla opcji długich są również\n"
+ "obowiązkowe i opcjonalne dla odpowiadających im opcji krótkich.\n"
+
+-#: xargs/xargs.c:1663
++#: xargs/xargs.c:1639
+ msgid ""
+ " -0, --null items are separated by a null, not "
+ "whitespace;\n"
+@@ -1438,7 +1766,7 @@ msgstr ""
+ "odwrotnych\n"
+ " ukośników i logicznych EOF\n"
+
+-#: xargs/xargs.c:1666
++#: xargs/xargs.c:1642
+ msgid ""
+ " -a, --arg-file=FILE read arguments from FILE, not standard input\n"
+ msgstr ""
+@@ -1446,7 +1774,7 @@ msgstr ""
+ "standardowego\n"
+ " wejścia\n"
+
+-#: xargs/xargs.c:1667
++#: xargs/xargs.c:1643
+ msgid ""
+ " -d, --delimiter=CHARACTER items in input stream are separated by "
+ "CHARACTER,\n"
+@@ -1458,7 +1786,7 @@ msgstr ""
+ " odstępów; wyłącza przetwarzanie cytowania,\n"
+ " odwrotnych ukośników i logicznych EOF\n"
+
+-#: xargs/xargs.c:1670
++#: xargs/xargs.c:1646
+ msgid ""
+ " -E END set logical EOF string; if END occurs as a "
+ "line\n"
+@@ -1471,7 +1799,7 @@ msgstr ""
+ " zignorowana (bez znaczenia z opcją -0 lub -"
+ "d)\n"
+
+-#: xargs/xargs.c:1673
++#: xargs/xargs.c:1649
+ msgid ""
+ " -e, --eof[=END] equivalent to -E END if END is specified;\n"
+ " otherwise, there is no end-of-file string\n"
+@@ -1480,11 +1808,11 @@ msgstr ""
+ " w przeciwnym wypadku nie ma łańcucha\n"
+ " oznaczającego koniec pliku\n"
+
+-#: xargs/xargs.c:1675
++#: xargs/xargs.c:1651
+ msgid " -I R same as --replace=R\n"
+ msgstr " -I R to samo, co --replace=R\n"
+
+-#: xargs/xargs.c:1676
++#: xargs/xargs.c:1652
+ msgid ""
+ " -i, --replace[=R] replace R in INITIAL-ARGS with names read\n"
+ " from standard input; if R is unspecified,\n"
+@@ -1494,7 +1822,7 @@ msgstr ""
+ " nazwy czytane ze standardowego wejścia;\n"
+ " jeśli nie podano R, przyjmowane jest {}\n"
+
+-#: xargs/xargs.c:1679
++#: xargs/xargs.c:1655
+ msgid ""
+ " -L, --max-lines=MAX-LINES use at most MAX-LINES non-blank input lines "
+ "per\n"
+@@ -1504,7 +1832,7 @@ msgstr ""
+ "wejścia\n"
+ " dla linii polecenia\n"
+
+-#: xargs/xargs.c:1681
++#: xargs/xargs.c:1657
+ msgid ""
+ " -l[MAX-LINES] similar to -L but defaults to at most one "
+ "non-\n"
+@@ -1514,7 +1842,7 @@ msgstr ""
+ " -l[MAKS] podobnie do -L, ale domyślnie najwyżej jedna\n"
+ " niepusta linia, jeśli nie podano MAKS\n"
+
+-#: xargs/xargs.c:1683
++#: xargs/xargs.c:1659
+ msgid ""
+ " -n, --max-args=MAX-ARGS use at most MAX-ARGS arguments per command "
+ "line\n"
+@@ -1522,18 +1850,18 @@ msgstr ""
+ " -n, --max-args=MAKS użycie najwyżej MAKS argumentów dla linii\n"
+ " polecenia\n"
+
+-#: xargs/xargs.c:1684
++#: xargs/xargs.c:1660
+ msgid ""
+ " -P, --max-procs=MAX-PROCS run at most MAX-PROCS processes at a time\n"
+ msgstr ""
+ " -P, --max-procs=MAKS uruchomienie najwyżej MAKS procesów "
+ "jednocześnie\n"
+
+-#: xargs/xargs.c:1685
++#: xargs/xargs.c:1661
+ msgid " -p, --interactive prompt before running commands\n"
+ msgstr " -p, --interactive zapytanie przed uruchomieniem poleceń\n"
+
+-#: xargs/xargs.c:1686
++#: xargs/xargs.c:1662
+ msgid ""
+ " --process-slot-var=VAR set environment variable VAR in child "
+ "processes\n"
+@@ -1542,7 +1870,7 @@ msgstr ""
+ "procesach\n"
+ " potomnych\n"
+
+-#: xargs/xargs.c:1687
++#: xargs/xargs.c:1663
+ msgid ""
+ " -r, --no-run-if-empty if there are no arguments, then do not run "
+ "COMMAND;\n"
+@@ -1554,227 +1882,34 @@ msgstr ""
+ " argumentów; bez tej opcji POLECENIE zostanie\n"
+ " uruchomione przynajmniej raz\n"
+
+-#: xargs/xargs.c:1690
++#: xargs/xargs.c:1666
+ msgid ""
+ " -s, --max-chars=MAX-CHARS limit length of command line to MAX-CHARS\n"
+ msgstr ""
+ " -s, --max-chars=MAKS ograniczenie poleceń do najwyżej MAKS znaków\n"
+
+-#: xargs/xargs.c:1691
++#: xargs/xargs.c:1667
+ msgid " --show-limits show limits on command-line length\n"
+ msgstr ""
+ " --show-limits wyświetlenie limitów długości linii "
+ "polecenia\n"
+
+-#: xargs/xargs.c:1692
++#: xargs/xargs.c:1668
+ msgid " -t, --verbose print commands before executing them\n"
+ msgstr ""
+ " -t, --verbose wypisywanie poleceń przed ich uruchomieniem\n"
+
+-#: xargs/xargs.c:1693
++#: xargs/xargs.c:1669
+ msgid " -x, --exit exit if the size (see -s) is exceeded\n"
+ msgstr ""
+ " -x, --exit zakończenie w wypadku przekroczenia rozmiaru "
+ "(-s)\n"
+
+-#: xargs/xargs.c:1695
++#: xargs/xargs.c:1671
+ msgid " --help display this help and exit\n"
+ msgstr " --help wyświetlenie tego opisu i zakończenie\n"
+
+-#: xargs/xargs.c:1696
++#: xargs/xargs.c:1672
+ msgid " --version output version information and exit\n"
+ msgstr ""
+ " --version wypisanie informacji o wersji i zakończenie\n"
+-
+-#~ msgid "invalid argument %s for %s"
+-#~ msgstr "błędny argument %s opcji %s"
+-
+-#~ msgid "ambiguous argument %s for %s"
+-#~ msgstr "niejednoznaczny argument %s opcji %s"
+-
+-#~ msgid "Valid arguments are:"
+-#~ msgstr "Prawidłowe argumenty to:"
+-
+-#~ msgid "error closing file"
+-#~ msgstr "błąd podczas zamykania pliku"
+-
+-#~ msgid "Unknown system error"
+-#~ msgstr "Nieznany błąd systemowy"
+-
+-#~ msgid "%s: option '%s' is ambiguous; possibilities:"
+-#~ msgstr "%s: opcja '%s' jest niejednoznaczna; możliwości:"
+-
+-#, fuzzy
+-#~ msgid "%s: option '%s' is ambiguous\n"
+-#~ msgstr "%s: opcja '-W %s' jest niejednoznaczna\n"
+-
+-#~ msgid "%s: option '--%s' doesn't allow an argument\n"
+-#~ msgstr "%s: opcja '--%s' nie może mieć argumentów\n"
+-
+-#~ msgid "%s: option '%c%s' doesn't allow an argument\n"
+-#~ msgstr "%s: opcja '%c%s' nie może mieć argumentów\n"
+-
+-#~ msgid "%s: option '--%s' requires an argument\n"
+-#~ msgstr "%s: opcja '--%s' musi mieć argument\n"
+-
+-#~ msgid "%s: unrecognized option '--%s'\n"
+-#~ msgstr "%s: nieznana opcja '--%s'\n"
+-
+-#~ msgid "%s: unrecognized option '%c%s'\n"
+-#~ msgstr "%s: nieznana opcja '%c%s'\n"
+-
+-#~ msgid "%s: invalid option -- '%c'\n"
+-#~ msgstr "%s: błędna opcja -- '%c'\n"
+-
+-#~ msgid "%s: option requires an argument -- '%c'\n"
+-#~ msgstr "%s: opcja musi mieć argument -- '%c'\n"
+-
+-#~ msgid "%s: option '-W %s' is ambiguous\n"
+-#~ msgstr "%s: opcja '-W %s' jest niejednoznaczna\n"
+-
+-#~ msgid "%s: option '-W %s' doesn't allow an argument\n"
+-#~ msgstr "%s: opcja '-W %s' nie może mieć argumentów\n"
+-
+-#~ msgid "%s: option '-W %s' requires an argument\n"
+-#~ msgstr "%s: opcja '-W %s' musi mieć argument\n"
+-
+-#~ msgid "unable to record current working directory"
+-#~ msgstr "nie udało się zapisać bieżącego katalogu roboczego"
+-
+-#~ msgid "failed to return to initial working directory"
+-#~ msgstr "nie udało się wrócić do początkowego katalogu roboczego"
+-
+-#~ msgid "`"
+-#~ msgstr "`"
+-
+-#~ msgid "'"
+-#~ msgstr "'"
+-
+-#~ msgid "^[yY]"
+-#~ msgstr "^[yYtT]"
+-
+-#~ msgid "^[nN]"
+-#~ msgstr "^[nN]"
+-
+-#~ msgid "Packaged by %s (%s)\n"
+-#~ msgstr "Pakietujący: %s (%s)\n"
+-
+-#~ msgid "Packaged by %s\n"
+-#~ msgstr "Pakietujący: %s\n"
+-
+-#~ msgid "(C)"
+-#~ msgstr "(C)"
+-
+-#~ msgid ""
+-#~ "\n"
+-#~ "License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl."
+-#~ "html>.\n"
+-#~ "This is free software: you are free to change and redistribute it.\n"
+-#~ "There is NO WARRANTY, to the extent permitted by law.\n"
+-#~ "\n"
+-#~ msgstr ""
+-#~ "\n"
+-#~ "Licencja GPLv3+: GNU GPL wersja 3 lub późniejsza:\n"
+-#~ "<http://gnu.org/licenses/gpl.html>\n"
+-#~ "To jest oprogramowanie wolnodostępne: można je modyfikować i "
+-#~ "rozpowszechniać.\n"
+-#~ "Nie ma ŻADNEJ GWARANCJI w zakresie dopuszczalnym przez prawo.\n"
+-
+-#~ msgid "Written by %s.\n"
+-#~ msgstr "Autor: %s.\n"
+-
+-#~ msgid "Written by %s and %s.\n"
+-#~ msgstr "Autorzy: %s i %s.\n"
+-
+-#~ msgid "Written by %s, %s, and %s.\n"
+-#~ msgstr "Autorzy: %s, %s i %s.\n"
+-
+-#~ msgid ""
+-#~ "Written by %s, %s, %s,\n"
+-#~ "and %s.\n"
+-#~ msgstr ""
+-#~ "Autorzy: %s, %s, %s\n"
+-#~ "i %s.\n"
+-
+-#~ msgid ""
+-#~ "Written by %s, %s, %s,\n"
+-#~ "%s, and %s.\n"
+-#~ msgstr ""
+-#~ "Autorzy: %s, %s, %s,\n"
+-#~ "%s i %s.\n"
+-
+-#~ msgid ""
+-#~ "Written by %s, %s, %s,\n"
+-#~ "%s, %s, and %s.\n"
+-#~ msgstr ""
+-#~ "Autorzy: %s, %s, %s,\n"
+-#~ "%s, %s i %s.\n"
+-
+-#~ msgid ""
+-#~ "Written by %s, %s, %s,\n"
+-#~ "%s, %s, %s, and %s.\n"
+-#~ msgstr ""
+-#~ "Autorzy: %s, %s, %s,\n"
+-#~ "%s, %s, %s i %s.\n"
+-
+-#~ msgid ""
+-#~ "Written by %s, %s, %s,\n"
+-#~ "%s, %s, %s, %s,\n"
+-#~ "and %s.\n"
+-#~ msgstr ""
+-#~ "Autorzy: %s, %s, %s,\n"
+-#~ "%s, %s, %s, %s\n"
+-#~ "i %s.\n"
+-
+-#~ msgid ""
+-#~ "Written by %s, %s, %s,\n"
+-#~ "%s, %s, %s, %s,\n"
+-#~ "%s, and %s.\n"
+-#~ msgstr ""
+-#~ "Autorzy: %s, %s, %s,\n"
+-#~ "%s, %s, %s, %s,\n"
+-#~ "%s i %s.\n"
+-
+-#~ msgid ""
+-#~ "Written by %s, %s, %s,\n"
+-#~ "%s, %s, %s, %s,\n"
+-#~ "%s, %s, and others.\n"
+-#~ msgstr ""
+-#~ "Autorzy: %s, %s, %s,\n"
+-#~ "%s, %s, %s, %s,\n"
+-#~ "%s, %s i inni.\n"
+-
+-#~ msgid ""
+-#~ "\n"
+-#~ "Report bugs to: %s\n"
+-#~ msgstr ""
+-#~ "\n"
+-#~ "Prosimy zgłaszać błędy na adres <%s>.\n"
+-#~ "Błędy w tłumaczeniu prosimy zgłaszać na adres <translation-team-pl@lists."
+-#~ "sourceforge.net>.\n"
+-
+-#~ msgid "Report %s bugs to: %s\n"
+-#~ msgstr "Błędy pakietującego (%s) prosimy zgłaszać na adres <%s>.\n"
+-
+-#~ msgid "%s home page: <%s>\n"
+-#~ msgstr "Strona domowa pakietu %s: <%s>\n"
+-
+-#~ msgid "%s home page: <http://www.gnu.org/software/%s/>\n"
+-#~ msgstr "Strona domowa pakietu %s: <http://www.gnu.org/software/%s/>.\n"
+-
+-#~ msgid "General help using GNU software: <http://www.gnu.org/gethelp/>\n"
+-#~ msgstr ""
+-#~ "Ogólna pomoc przy używaniu oprogramowania GNU: <http://www.gnu.org/"
+-#~ "gethelp/>.\n"
+-
+-#~ msgid "memory exhausted"
+-#~ msgstr "pamięć wyczerpana"
+-
+-#~ msgid "invalid %s%s argument '%s'"
+-#~ msgstr "błędny argument opcji %s%s '%s'"
+-
+-#~ msgid "invalid suffix in %s%s argument '%s'"
+-#~ msgstr "błędny przyrostek argumentu opcji %s%s '%s'"
+-
+-#~ msgid "%s%s argument '%s' too large"
+-#~ msgstr "argument opcji %s%s '%s' zbyt duży"
+++ /dev/null
-diff -up findutils-4.4.2/configure.ac_old findutils-4.4.2/configure.ac
---- findutils-4.4.2/configure.ac_old 2009-07-01 10:24:04.000000000 +0200
-+++ findutils-4.4.2/configure.ac 2009-07-01 10:24:46.000000000 +0200
-@@ -114,6 +114,16 @@ AC_CHECK_LIB([m],[fabs],[FINDLIBS="-lm $
- AC_DEFINE_UNQUOTED(HAVE_FABS_IN_LIBM,1,[fabs is defined in -lm]))
- AC_SUBST([FINDLIBS])
-
-+AC_ARG_WITH([selinux],
-+ AS_HELP_STRING([--without-selinux], [disable SELinux support]),
-+ [:],
-+[AC_CHECK_LIB([selinux], [is_selinux_enabled],
-+ [with_selinux=yes], [with_selinux=no])])
-+if test x$with_selinux != xno; then
-+ AC_DEFINE([WITH_SELINUX], [1], [Define to support SELinux])
-+ AC_SUBST([LIBSELINUX], [-lselinux])
-+fi
-+
- dnl Checks for header files.
- AC_HEADER_STDC
- dnl Assume unistd.h is present - coreutils does too.
-diff -up findutils-4.4.2/doc/find.texi_old findutils-4.4.2/doc/find.texi
---- findutils-4.4.2/doc/find.texi_old 2009-07-01 10:25:09.000000000 +0200
-+++ findutils-4.4.2/doc/find.texi 2009-07-01 10:26:37.000000000 +0200
-@@ -7,7 +7,6 @@
- @c %**end of header
-
- @include version.texi
--@include ../locate/dblocation.texi
-
- @iftex
- @finalout
-@@ -1242,6 +1241,14 @@ situation.
-
- @end deffn
-
-+@deffn Test -context pattern
-+True if file's SELinux context matches the pattern @var{pattern}.
-+The pattern uses shell glob matching.
-+
-+This predicate is supported only on @code{find} versions compiled with
-+SELinux support and only when SELinux is enabled.
-+@end deffn
-+
- @node Contents
- @section Contents
-
-@@ -1826,6 +1833,9 @@ value used for BLOCKSIZE is system-depen
- bytes. If the file size is zero, the value printed is undefined. On
- systems which lack support for st_blocks, a file's sparseness is
- assumed to be 1.0.
-+@item %Z
-+File's SELinux context, or empty string if the file has no SELinux context
-+or this version of find does not support SELinux.
- @end table
-
- @node Location Directives
-diff -up findutils-4.4.2/find/defs.h_old findutils-4.4.2/find/defs.h
---- findutils-4.4.2/find/defs.h_old 2009-07-01 12:38:32.000000000 +0200
-+++ findutils-4.4.2/find/defs.h 2009-07-01 12:52:47.000000000 +0200
-@@ -91,6 +91,9 @@ int get_statinfo PARAMS((const char *pat
- #define MODE_RWX (S_IXUSR | S_IXGRP | S_IXOTH | MODE_RW)
- #define MODE_ALL (S_ISUID | S_ISGID | S_ISVTX | MODE_RWX)
-
-+#ifdef WITH_SELINUX
-+#include <selinux/selinux.h>
-+#endif
-
- struct predicate;
- struct options;
-@@ -315,6 +318,9 @@ struct predicate
- struct samefile_file_id samefileid; /* samefile */
- mode_t type; /* type */
- struct format_val printf_vec; /* printf fprintf fprint ls fls print0 fprint0 print */
-+#ifdef WITH_SELINUX
-+ security_context_t scontext; /* scontext */
-+#endif
- } args;
-
- /* The next predicate in the user input sequence,
-@@ -459,6 +465,9 @@ PREDICATEFUNCTION pred_used;
- PREDICATEFUNCTION pred_user;
- PREDICATEFUNCTION pred_writable;
- PREDICATEFUNCTION pred_xtype;
-+#ifdef WITH_SELINUX
-+PREDICATEFUNCTION pred_context;
-+#endif
-
-
-
-@@ -601,6 +610,10 @@ struct options
- */
- int regex_options;
-
-+#ifdef WITH_SELINUX
-+ int (*x_getfilecon) ();
-+#endif
-+
- /* Optimisation level. One is the default.
- */
- unsigned short optimisation_level;
-diff -up findutils-4.4.2/find/find.1_old findutils-4.4.2/find/find.1
---- findutils-4.4.2/find/find.1_old 2009-07-01 10:30:04.000000000 +0200
-+++ findutils-4.4.2/find/find.1 2009-07-01 10:30:59.000000000 +0200
-@@ -933,6 +933,8 @@ if \fIc\fR is `l'. In other words, for
- checks the type of the file that
- .B \-type
- does not check.
-+.IP "\-context \fIpattern\fR"
-+(SELinux only) Security context of the file matches glob \fIpattern\fR.
-
- .SS ACTIONS
- .IP "\-delete\fR"
-@@ -1354,6 +1356,8 @@ File's type (like in
- U=unknown type (shouldn't happen)
- .IP %Y
- File's type (like %y), plus follow symlinks: L=loop, N=nonexistent
-+.IP %Z
-+(SELinux only) file's security context.
- .PP
- A `%' character followed by any other character is discarded, but the
- other character is printed (don't rely on this, as further format
-diff -up findutils-4.4.2/find/find.c_old findutils-4.4.2/find/find.c
---- findutils-4.4.2/find/find.c_old 2009-07-01 10:26:53.000000000 +0200
-+++ findutils-4.4.2/find/find.c 2009-07-01 10:29:52.000000000 +0200
-@@ -120,6 +120,36 @@ int get_current_dirfd(void)
- return AT_FDCWD;
- }
-
-+#ifdef WITH_SELINUX
-+static int
-+fallback_getfilecon(const char *name, security_context_t *p, int prev_rv)
-+{
-+ /* Our original getfilecon() call failed. Perhaps we can't follow a
-+ * symbolic link. If that might be the problem, lgetfilecon() the link.
-+ * Otherwise, admit defeat.
-+ */
-+ switch (errno)
-+ {
-+ case ENOENT:
-+ case ENOTDIR:
-+#ifdef DEBUG_STAT
-+ fprintf(stderr, "fallback_getfilecon(): getfilecon(%s) failed; falling back on lgetfilecon()\n", name);
-+#endif
-+ return lgetfilecon(name, p);
-+
-+ case EACCES:
-+ case EIO:
-+ case ELOOP:
-+ case ENAMETOOLONG:
-+#ifdef EOVERFLOW
-+ case EOVERFLOW: /* EOVERFLOW is not #defined on UNICOS. */
-+#endif
-+ default:
-+ return prev_rv;
-+ }
-+}
-+#endif /* WITH_SELINUX */
-+
- \f
- int
- main (int argc, char **argv)
-@@ -1270,7 +1300,7 @@ process_path (char *pathname, char *name
- static void
- process_dir (char *pathname, char *name, int pathlen, const struct stat *statp, char *parent)
- {
-- int subdirs_left; /* Number of unexamined subdirs in PATHNAME. */
-+ int subdirs_left = 0; /* Number of unexamined subdirs in PATHNAME. */
- boolean subdirs_unreliable; /* if true, cannot use dir link count as subdir limif (if false, it may STILL be unreliable) */
- unsigned int idx; /* Which entry are we on? */
- struct stat stat_buf;
-diff -up findutils-4.4.2/find/Makefile.am_old findutils-4.4.2/find/Makefile.am
---- findutils-4.4.2/find/Makefile.am_old 2009-07-01 10:35:04.000000000 +0200
-+++ findutils-4.4.2/find/Makefile.am 2009-07-01 10:35:37.000000000 +0200
-@@ -26,7 +26,7 @@ endif
-
- EXTRA_DIST = defs.h $(man_MANS)
- INCLUDES = -I../gnulib/lib -I$(top_srcdir)/lib -I$(top_srcdir)/gnulib/lib -I../intl -DLOCALEDIR=\"$(localedir)\"
--LDADD = ./libfindtools.a ../lib/libfind.a ../gnulib/lib/libgnulib.a @INTLLIBS@ @LIB_CLOCK_GETTIME@ @FINDLIBS@
-+LDADD = ./libfindtools.a ../lib/libfind.a ../gnulib/lib/libgnulib.a @INTLLIBS@ @LIB_CLOCK_GETTIME@ @FINDLIBS@ @LIBSELINUX@
- man_MANS = find.1
- SUBDIRS = . testsuite
-
-diff -up findutils-4.4.2/find/parser.c_old findutils-4.4.2/find/parser.c
---- findutils-4.4.2/find/parser.c_old 2009-07-01 10:35:43.000000000 +0200
-+++ findutils-4.4.2/find/parser.c 2009-07-01 12:38:19.000000000 +0200
-@@ -53,6 +53,10 @@
- #include <unistd.h>
- #include <sys/stat.h>
-
-+#ifdef WITH_SELINUX
-+#include <selinux/selinux.h>
-+#endif
-+
- #if ENABLE_NLS
- # include <libintl.h>
- # define _(Text) gettext (Text)
-@@ -155,6 +159,9 @@ static boolean parse_noignore_race PARAM
- static boolean parse_warn PARAMS((const struct parser_table*, char *argv[], int *arg_ptr));
- static boolean parse_xtype PARAMS((const struct parser_table*, char *argv[], int *arg_ptr));
- static boolean parse_quit PARAMS((const struct parser_table*, char *argv[], int *arg_ptr));
-+#ifdef WITH_SELINUX
-+static boolean parse_context PARAMS((const struct parser_table*, char *argv[], int *arg_ptr));
-+#endif
-
- boolean parse_print PARAMS((const struct parser_table*, char *argv[], int *arg_ptr));
-
-@@ -251,6 +258,9 @@ static struct parser_table const parse_t
- PARSE_TEST ("cmin", cmin), /* GNU */
- PARSE_TEST ("cnewer", cnewer), /* GNU */
- {ARG_TEST, "ctime", parse_time, pred_ctime}, /* POSIX */
-+#ifdef WITH_SELINUX
-+ PARSE_TEST ("context", context), /* GNU */
-+#endif
- PARSE_POSOPT ("daystart", daystart), /* GNU */
- PARSE_ACTION ("delete", delete), /* GNU, Mac OS, FreeBSD */
- PARSE_OPTION ("d", d), /* Mac OS X, FreeBSD, NetBSD, OpenBSD, but deprecated in favour of -depth */
-@@ -347,6 +357,89 @@ static struct parser_table const parse_t
- static const char *first_nonoption_arg = NULL;
- static const struct parser_table *noop = NULL;
-
-+#ifdef WITH_SELINUX
-+static int
-+fallback_getfilecon(const char *name, security_context_t *p, int prev_rv)
-+{
-+ /* Our original getfilecon() call failed. Perhaps we can't follow a
-+ * symbolic link. If that might be the problem, lgetfilecon() the link.
-+ * Otherwise, admit defeat.
-+ */
-+ switch (errno)
-+ {
-+ case ENOENT:
-+ case ENOTDIR:
-+#ifdef DEBUG_STAT
-+ fprintf(stderr, "fallback_getfilecon(): getfilecon(%s) failed; falling back on lgetfilecon()\n", name);
-+#endif
-+ return lgetfilecon(name, p);
-+
-+ case EACCES:
-+ case EIO:
-+ case ELOOP:
-+ case ENAMETOOLONG:
-+#ifdef EOVERFLOW
-+ case EOVERFLOW: /* EOVERFLOW is not #defined on UNICOS. */
-+#endif
-+ default:
-+ return prev_rv;
-+ }
-+}
-+
-+/* optionh_getfilecon() implements the getfilecon operation when the
-+ * -H option is in effect.
-+ *
-+ * If the item to be examined is a command-line argument, we follow
-+ * symbolic links. If the getfilecon() call fails on the command-line
-+ * item, we fall back on the properties of the symbolic link.
-+ *
-+ * If the item to be examined is not a command-line argument, we
-+ * examine the link itself.
-+ */
-+int
-+optionh_getfilecon(const char *name, security_context_t *p)
-+{
-+ if (0 == state.curdepth)
-+ {
-+ /* This file is from the command line; deference the link (if it
-+ * is a link).
-+ */
-+ int rv = getfilecon(name, p);
-+ if (0 == rv)
-+ return 0; /* success */
-+ else
-+ return fallback_getfilecon(name, p, rv);
-+ }
-+ else
-+ {
-+ /* Not a file on the command line; do not derefernce the link.
-+ */
-+ return lgetfilecon(name, p);
-+ }
-+}
-+/* optionl_getfilecon() implements the getfilecon operation when the
-+ * -L option is in effect. That option makes us examine the thing the
-+ * symbolic link points to, not the symbolic link itself.
-+ */
-+int
-+optionl_getfilecon(const char *name, security_context_t *p)
-+{
-+ int rv = getfilecon(name, p);
-+ if (0 == rv)
-+ return 0; /* normal case. */
-+ else
-+ return fallback_getfilecon(name, p, rv);
-+}
-+/* optionp_getfilecon() implements the stat operation when the -P
-+ * option is in effect (this is also the default). That option makes
-+ * us examine the symbolic link itself, not the thing it points to.
-+ */
-+int
-+optionp_getfilecon(const char *name, security_context_t *p)
-+{
-+ return lgetfilecon(name, p);
-+}
-+#endif /* WITH_SELINUX */
-
- void
- check_option_combinations(const struct predicate *p)
-@@ -450,11 +543,17 @@ set_follow_state(enum SymlinkOption opt)
- {
- case SYMLINK_ALWAYS_DEREF: /* -L */
- options.xstat = optionl_stat;
-+#ifdef WITH_SELINUX
-+ options.x_getfilecon = optionl_getfilecon;
-+#endif
- options.no_leaf_check = true;
- break;
-
- case SYMLINK_NEVER_DEREF: /* -P (default) */
- options.xstat = optionp_stat;
-+#ifdef WITH_SELINUX
-+ options.x_getfilecon = optionp_getfilecon;
-+#endif
- /* Can't turn no_leaf_check off because the user might have specified
- * -noleaf anyway
- */
-@@ -462,6 +561,9 @@ set_follow_state(enum SymlinkOption opt)
-
- case SYMLINK_DEREF_ARGSONLY: /* -H */
- options.xstat = optionh_stat;
-+#ifdef WITH_SELINUX
-+ options.x_getfilecon = optionh_getfilecon;
-+#endif
- options.no_leaf_check = true;
- }
- }
-@@ -1127,8 +1229,12 @@ tests (N can be +N or -N or N): -amin N
- -nouser -nogroup -path PATTERN -perm [+-]MODE -regex PATTERN\n\
- -readable -writable -executable\n\
- -wholename PATTERN -size N[bcwkMG] -true -type [bcdpflsD] -uid N\n\
-- -used N -user NAME -xtype [bcdpfls]\n"));
-+ -used N -user NAME -xtype [bcdpfls]"));
-+#ifdef WITH_SELINUX
- puts (_("\
-+ -context CONTEXT\n"));
-+#endif
-+ puts (_("\n\
- actions: -delete -print0 -printf FORMAT -fprintf FILE FORMAT -print \n\
- -fprint0 FILE -fprint FILE -ls -fls FILE -prune -quit\n\
- -exec COMMAND ; -exec COMMAND {} + -ok COMMAND ;\n\
-@@ -2518,6 +2624,10 @@ parse_version (const struct parser_table
- printf("LEAF_OPTIMISATION ");
- ++features;
- #endif
-+#if defined(WITH_SELINUX)
-+ printf("SELINUX ");
-+ ++features;
-+#endif
-
- flags = 0;
- if (is_fts_enabled(&flags))
-@@ -2552,6 +2662,32 @@ parse_version (const struct parser_table
- exit (0);
- }
-
-+#ifdef WITH_SELINUX
-+static boolean
-+parse_context (const struct parser_table* entry, char **argv, int *arg_ptr)
-+{
-+ struct predicate *our_pred;
-+
-+ if ((argv == NULL) || (argv[*arg_ptr] == NULL))
-+ return false;
-+
-+ if (is_selinux_enabled() <= 0)
-+ {
-+ error (1, 0, _("invalid predicate -context: SELinux is not enabled."));
-+ return false;
-+ }
-+ our_pred = insert_primary (entry);
-+ our_pred->need_stat = false;
-+#ifdef DEBUG
-+ our_pred->p_name = find_pred_name (pred_context);
-+#endif /*DEBUG*/
-+ our_pred->args.scontext = argv[*arg_ptr];
-+
-+ (*arg_ptr)++;
-+ return true;
-+}
-+#endif /* WITH_SELINUX */
-+
- static boolean
- parse_xdev (const struct parser_table* entry, char **argv, int *arg_ptr)
- {
-@@ -2803,7 +2939,7 @@ insert_fprintf (struct format_val *vec,
- if (*scan2 == '.')
- for (scan2++; ISDIGIT (*scan2); scan2++)
- /* Do nothing. */ ;
-- if (strchr ("abcdDfFgGhHiklmMnpPsStuUyY", *scan2))
-+ if (strchr ("abcdDfFgGhHiklmMnpPsStuUyYZ", *scan2))
- {
- segmentp = make_segment (segmentp, format, scan2 - format,
- KIND_FORMAT, *scan2, 0,
-@@ -2930,6 +3066,7 @@ make_segment (struct segment **segment,
- case 'h': /* leading directories part of path */
- case 'p': /* pathname */
- case 'P': /* pathname with ARGV element stripped */
-+ case 'Z': /* SELinux security context */
- *fmt++ = 's';
- break;
-
-diff -up findutils-4.4.2/find/pred.c_old findutils-4.4.2/find/pred.c
---- findutils-4.4.2/find/pred.c_old 2009-07-01 10:31:11.000000000 +0200
-+++ findutils-4.4.2/find/pred.c 2009-07-01 10:33:45.000000000 +0200
-@@ -48,6 +48,10 @@
- #include "error.h"
- #include "verify.h"
-
-+#ifdef WITH_SELINUX
-+#include <selinux/selinux.h>
-+#endif /*WITH_SELINUX*/
-+
- #if ENABLE_NLS
- # include <libintl.h>
- # define _(Text) gettext (Text)
-@@ -230,6 +234,9 @@ struct pred_assoc pred_table[] =
- {pred_user, "user "},
- {pred_writable, "writable "},
- {pred_xtype, "xtype "},
-+#ifdef WITH_SELINUX
-+ {pred_context, "context"},
-+#endif /*WITH_SELINUX*/
- {0, "none "}
- };
- #endif
-@@ -1054,6 +1061,27 @@ do_fprintf(struct format_val *dest,
- mode_to_filetype(stat_buf->st_mode & S_IFMT));
- }
- break;
-+ case 'Z': /* SELinux security context */
-+#ifdef WITH_SELINUX
-+ {
-+ security_context_t scontext;
-+ int rv;
-+ rv = (*options.x_getfilecon) (state.rel_pathname, &scontext);
-+
-+ if (rv < 0)
-+ {
-+ fprintf (stderr, "getfilecon(%s): %s", pathname,
-+ strerror(errno));
-+ fflush (stderr);
-+ }
-+ else
-+ {
-+ checked_fprintf (dest, segment->text, scontext);
-+ freecon (scontext);
-+ }
-+ }
-+#endif /* WITH_SELINUX */
-+ break;
- }
- /* end of KIND_FORMAT case */
- break;
-@@ -1844,6 +1872,32 @@ pred_xtype (const char *pathname, struct
- */
- return (pred_type (pathname, &sbuf, pred_ptr));
- }
-+
-+#ifdef WITH_SELINUX
-+
-+boolean
-+pred_context (const char *pathname, struct stat *stat_buf,
-+ struct predicate *pred_ptr)
-+{
-+ int rv;
-+ security_context_t scontext;
-+
-+ rv = (*options.x_getfilecon) (state.rel_pathname, &scontext);
-+
-+ if (rv < 0)
-+ {
-+ fprintf (stderr, "getfilecon(%s): %s\n", pathname, strerror(errno));
-+ fflush (stderr);
-+ return false;
-+ }
-+
-+ rv = (fnmatch (pred_ptr->args.scontext, scontext, 0) == 0);
-+ freecon (scontext);
-+ return rv;
-+}
-+
-+#endif /*WITH_SELINUX*/
-+
- \f
- /* 1) fork to get a child; parent remembers the child pid
- 2) child execs the command requested
-diff -up findutils-4.4.2/find/tree.c_old findutils-4.4.2/find/tree.c
---- findutils-4.4.2/find/tree.c_old 2009-07-01 10:33:57.000000000 +0200
-+++ findutils-4.4.2/find/tree.c 2009-07-01 10:34:54.000000000 +0200
-@@ -953,7 +953,8 @@ static struct pred_cost_lookup costlooku
- { pred_used , NeedsStatInfo },
- { pred_user , NeedsStatInfo },
- { pred_writable , NeedsAccessInfo },
-- { pred_xtype , NeedsType } /* roughly correct unless most files are symlinks */
-+ { pred_xtype , NeedsType }, /* roughly correct unless most files are symlinks */
-+ { pred_context , NeedsNothing } /* remove warning only:) */
- };
- static int pred_table_sorted = 0;
- \f
-@@ -1434,6 +1435,9 @@ get_new_pred (const struct parser_table
- last_pred->need_stat = true;
- last_pred->need_type = true;
- last_pred->args.str = NULL;
-+#ifdef WITH_SELINUX
-+ last_pred->args.scontext = NULL;
-+#endif
- last_pred->pred_next = NULL;
- last_pred->pred_left = NULL;
- last_pred->pred_right = NULL;