Compare commits
No commits in common. "c8s" and "c8" have entirely different histories.
1
.coreutils.metadata
Normal file
1
.coreutils.metadata
Normal file
@ -0,0 +1 @@
|
||||
bd5d495c162730873a2774acd1c5091fbf0c55a4 SOURCES/coreutils-8.30.tar.xz
|
||||
@ -1 +0,0 @@
|
||||
1
|
||||
2
.gitignore
vendored
2
.gitignore
vendored
@ -1 +1 @@
|
||||
/coreutils-[0-9.]*.tar.xz
|
||||
SOURCES/coreutils-8.30.tar.xz
|
||||
|
||||
@ -1,7 +0,0 @@
|
||||
srpm coreutils
|
||||
mcd $BUILDDIR/$1
|
||||
(cd $SRC/${1}-*/ ; autoreconf -vif)
|
||||
$SRC/${1}-*/configure $TCONFIGARGS --disable-pam
|
||||
notparallel
|
||||
make $J man1_MANS= V=1
|
||||
make $J man1_MANS= install DESTDIR=${ROOTFS}
|
||||
@ -1,17 +0,0 @@
|
||||
-----BEGIN PGP SIGNATURE-----
|
||||
Version: GnuPG v2
|
||||
|
||||
iQIcBAABCAAGBQJbOYLXAAoJEN9v2XEwYDfZFRwP/1xKMtXTqCOnP3ECRze+bYnX
|
||||
GB5Mm57kcP2NXwzo62+9C+FToEfkRTALtlU95edIRlsjLGBoDvv12fsOKdsyO/c5
|
||||
7paI3NoaUFyJxby9w91mNOcgN6eR5WZ/LHm2VbTs5VFpsNcSVyHSvhiqgPXtRrVp
|
||||
ZrnUKbg9iWjn8jcJHIS7qrIO4GsoFzfhn9gVh8Xxp4AYx0btn3BwPTWCxg53Ie0p
|
||||
OgrMmMnOe3wrpwrlJOgfvpk5na7yKRt7GYsyGMaKB7OxbHlVg4UCx4LuRBnaUPZr
|
||||
QmlX37sIR/sEJne0zR4iMorPi5IsErMT39VaBDLnsAjyccbmYQ/RmFYASiM5Zijw
|
||||
d94fk+TocyDBrOMsO5fzKUID5Uf4c5vJlhCXBsPBykNiKsQTb3M7fZ+gjYrMJmoS
|
||||
4DDgAMryoB5yc2i9HcNj8WMNHy4RGIrRWxOAUZf5j2zEEVwKaRcoNosFoycUotEA
|
||||
yoWdRIwyCkVwlemVhx0zQTm8WbtFl0kkAFKTqu7uHGUGOKSS4dzTi000cJ4qHSyY
|
||||
ODrouvKgqKwB+Q7IfpQ72i6DLpTzNjLKNMipBPsSkSW+RaWC67+smo1vL9V5ZlfX
|
||||
ypzjMF++r3cRuIWG9IwAwedl/sH7iqjHwdMf4y+8sGxRzW5Oeyvx20TvqxMqRLGD
|
||||
nU0Y2GCLW7C2Idw+I5QM
|
||||
=pibq
|
||||
-----END PGP SIGNATURE-----
|
||||
@ -1,13 +0,0 @@
|
||||
diff -urNp coreutils-8.5-orig/src/dircolors.hin coreutils-8.5/src/dircolors.hin
|
||||
--- coreutils-8.5-orig/src/dircolors.hin 2010-04-20 21:52:04.000000000 +0200
|
||||
+++ coreutils-8.5/src/dircolors.hin 2010-07-22 16:18:41.978036926 +0200
|
||||
@@ -127,6 +127,9 @@ EXEC 01;32
|
||||
.deb 01;31
|
||||
.rpm 01;31
|
||||
.jar 01;31
|
||||
+.war 01;31
|
||||
+.ear 01;31
|
||||
+.sar 01;31
|
||||
.rar 01;31
|
||||
.ace 01;31
|
||||
.zoo 01;31
|
||||
@ -1,587 +0,0 @@
|
||||
(sb) lin18nux/lsb compliance - cut - not stable enough, not applied
|
||||
|
||||
--- coreutils-8.24/src/cut.c 2015-06-26 19:05:22.000000000 +0200
|
||||
+++ cut.c 2016-01-15 10:15:04.863804121 +0100
|
||||
@@ -28,6 +28,11 @@
|
||||
#include <assert.h>
|
||||
#include <getopt.h>
|
||||
#include <sys/types.h>
|
||||
+
|
||||
+#include <mbfile.h>
|
||||
+#include <mbiter.h>
|
||||
+#include <string.h>
|
||||
+
|
||||
#include "system.h"
|
||||
|
||||
#include "error.h"
|
||||
@@ -61,25 +66,16 @@
|
||||
CURRENT_RP.HI then we make CURRENT_RP to point to the next range pair. */
|
||||
static struct field_range_pair *current_rp;
|
||||
|
||||
-/* This buffer is used to support the semantics of the -s option
|
||||
- (or lack of same) when the specified field list includes (does
|
||||
- not include) the first field. In both of those cases, the entire
|
||||
- first field must be read into this buffer to determine whether it
|
||||
- is followed by a delimiter or a newline before any of it may be
|
||||
- output. Otherwise, cut_fields can do the job without using this
|
||||
- buffer. */
|
||||
-static char *field_1_buffer;
|
||||
-
|
||||
-/* The number of bytes allocated for FIELD_1_BUFFER. */
|
||||
-static size_t field_1_bufsize;
|
||||
-
|
||||
enum operating_mode
|
||||
{
|
||||
undefined_mode,
|
||||
|
||||
- /* Output characters that are in the given bytes. */
|
||||
+ /* Output the given bytes. */
|
||||
byte_mode,
|
||||
|
||||
+ /* Output characters that are in the given positions . */
|
||||
+ char_mode,
|
||||
+
|
||||
/* Output the given delimiter-separated fields. */
|
||||
field_mode
|
||||
};
|
||||
@@ -91,12 +87,16 @@ static enum operating_mode operating_mode;
|
||||
with field mode. */
|
||||
static bool suppress_non_delimited;
|
||||
|
||||
+/* Unless true, we do not recognize multibyte characters in byte-splitting
|
||||
+ mode. */
|
||||
+static bool no_break_mb_chars;
|
||||
+
|
||||
/* If true, print all bytes, characters, or fields _except_
|
||||
those that were specified. */
|
||||
static bool complement;
|
||||
|
||||
/* The delimiter character for field mode. */
|
||||
-static unsigned char delim;
|
||||
+static mbf_char_t delim;
|
||||
|
||||
/* The delimiter for each line/record. */
|
||||
static unsigned char line_delim = '\n';
|
||||
@@ -109,7 +109,7 @@ static size_t output_delimiter_length;
|
||||
|
||||
/* The output field separator string. Defaults to the 1-character
|
||||
string consisting of the input delimiter. */
|
||||
-static char *output_delimiter_string;
|
||||
+static char const *output_delimiter_string;
|
||||
|
||||
/* True if we have ever read standard input. */
|
||||
static bool have_read_stdin;
|
||||
@@ -164,7 +164,7 @@ Print selected parts of lines from each FILE to standard output.\n\
|
||||
-f, --fields=LIST select only these fields; also print any line\n\
|
||||
that contains no delimiter character, unless\n\
|
||||
the -s option is specified\n\
|
||||
- -n (ignored)\n\
|
||||
+ -n with -b, don't split multibyte characters\n\
|
||||
"), stdout);
|
||||
fputs (_("\
|
||||
--complement complement the set of selected bytes, characters\n\
|
||||
@@ -211,6 +211,12 @@ next_item (size_t *item_idx)
|
||||
current_rp++;
|
||||
}
|
||||
|
||||
+static inline void
|
||||
+next_item_n (size_t *item_idx, size_t n)
|
||||
+{
|
||||
+ while (n-- > 0)
|
||||
+ next_item (item_idx);
|
||||
+}
|
||||
/* Return nonzero if the K'th field or byte is printable. */
|
||||
|
||||
static inline bool
|
||||
@@ -219,6 +225,15 @@ print_kth (size_t k)
|
||||
return current_rp->lo <= k;
|
||||
}
|
||||
|
||||
+/* The lo and hi params should be used for the current characters byte position
|
||||
+ * and byte size, respectively. */
|
||||
+static inline bool
|
||||
+rp_intersect (size_t lo, size_t hi)
|
||||
+{
|
||||
+ return ((current_rp->lo <= lo && current_rp->hi >= lo)
|
||||
+ || (current_rp->lo <= hi && current_rp->hi >= hi));
|
||||
+}
|
||||
+
|
||||
/* Return nonzero if K'th byte is the beginning of a range. */
|
||||
|
||||
static inline bool
|
||||
@@ -281,23 +296,215 @@ cut_bytes (FILE *stream)
|
||||
}
|
||||
|
||||
/* Read from stream STREAM, printing to standard output any selected fields. */
|
||||
+extern ssize_t
|
||||
+mb_getndelim2 (mbf_char_t **lineptr, size_t *linesize, size_t nmax,
|
||||
+ mbf_char_t delim1, mbf_char_t delim2, mb_file_t *stream)
|
||||
+{
|
||||
+/* The maximum value that getndelim2 can return without suffering from
|
||||
+ overflow problems, either internally (because of pointer
|
||||
+ subtraction overflow) or due to the API (because of ssize_t). */
|
||||
+#define GETNDELIM2_MAXIMUM (PTRDIFF_MAX < SSIZE_MAX ? PTRDIFF_MAX : SSIZE_MAX)
|
||||
+
|
||||
+/* Try to add at least this many bytes when extending the buffer.
|
||||
+ MIN_CHUNK must be no greater than GETNDELIM2_MAXIMUM. */
|
||||
+#define MIN_CHUNK 64
|
||||
+ size_t nchars_avail; /* Allocated but unused chars in *LINEPTR. */
|
||||
+ mbf_char_t *read_pos; /* Where we're reading into *LINEPTR. */
|
||||
+ ssize_t chars_stored = -1;
|
||||
+ mbf_char_t *ptr = *lineptr;
|
||||
+ size_t size = *linesize;
|
||||
+ bool found_delimiter;
|
||||
+
|
||||
+ if (!ptr)
|
||||
+ {
|
||||
+ size = nmax < MIN_CHUNK ? nmax : MIN_CHUNK;
|
||||
+ ptr = malloc (size * sizeof (mbf_char_t));
|
||||
+ if (!ptr)
|
||||
+ return -1;
|
||||
+ }
|
||||
+
|
||||
+ if (size < 0)
|
||||
+ goto done;
|
||||
+
|
||||
+ nchars_avail = size;
|
||||
+ read_pos = ptr;
|
||||
+
|
||||
+ if (nchars_avail == 0 && nmax <= size)
|
||||
+ goto done;
|
||||
+
|
||||
+ /* Normalize delimiters, since memchr2 doesn't handle EOF. */
|
||||
+ if (mb_iseof (delim1))
|
||||
+ mb_copy (&delim1, &delim2);
|
||||
+ else if (mb_iseof (delim2))
|
||||
+ mb_copy (&delim2, &delim1);
|
||||
+
|
||||
+ flockfile (stream);
|
||||
+
|
||||
+ found_delimiter = false;
|
||||
+ do
|
||||
+ {
|
||||
+ /* Here always ptr + size == read_pos + nchars_avail.
|
||||
+ Also nchars_avail > 0 || size < nmax. */
|
||||
+
|
||||
+ mbf_char_t c IF_LINT (= 0);
|
||||
+ {
|
||||
+ mbf_getc (c, *stream);
|
||||
+ if (mb_iseof (c))
|
||||
+ {
|
||||
+ /* Return partial line, if any. */
|
||||
+ if (read_pos == ptr)
|
||||
+ goto unlock_done;
|
||||
+ else
|
||||
+ break;
|
||||
+ }
|
||||
+ if (mb_equal (c, delim1) || mb_equal (c, delim2))
|
||||
+ found_delimiter = true;
|
||||
+ }
|
||||
+
|
||||
+ /* We always want at least one byte left in the buffer, since we
|
||||
+ always (unless we get an error while reading the first byte)
|
||||
+ NUL-terminate the line buffer. */
|
||||
+
|
||||
+ if (!nchars_avail)
|
||||
+ {
|
||||
+ /* Grow size proportionally, not linearly, to avoid O(n^2)
|
||||
+ running time. */
|
||||
+ size_t newsize = size < MIN_CHUNK ? size + MIN_CHUNK : 2 * size;
|
||||
+ mbf_char_t *newptr;
|
||||
+
|
||||
+ /* Respect nmax. This handles possible integer overflow. */
|
||||
+ if (! (size < newsize && newsize <= nmax))
|
||||
+ newsize = nmax;
|
||||
+
|
||||
+ if (GETNDELIM2_MAXIMUM < newsize)
|
||||
+ {
|
||||
+ size_t newsizemax = GETNDELIM2_MAXIMUM + 1;
|
||||
+ if (size == newsizemax)
|
||||
+ goto unlock_done;
|
||||
+ newsize = newsizemax;
|
||||
+ }
|
||||
+ nchars_avail = newsize - (read_pos - ptr);
|
||||
+ newptr = realloc (ptr, newsize * sizeof (mbf_char_t));
|
||||
+ if (!newptr)
|
||||
+ goto unlock_done;
|
||||
+ ptr = newptr;
|
||||
+ size = newsize;
|
||||
+ read_pos = size - nchars_avail + ptr;
|
||||
+ }
|
||||
+
|
||||
+ /* Here, if size < nmax, nchars_avail >= buffer_len + 1.
|
||||
+ If size == nmax, nchars_avail > 0. */
|
||||
+
|
||||
+ if (1 < nchars_avail--)
|
||||
+ {
|
||||
+ mb_copy(read_pos++, &c);
|
||||
+ }
|
||||
+
|
||||
+ }
|
||||
+ while (!found_delimiter);
|
||||
+
|
||||
+ chars_stored = (read_pos - ptr);
|
||||
+
|
||||
+ unlock_done:
|
||||
+ funlockfile (stream);
|
||||
+
|
||||
+ done:
|
||||
+ *lineptr = ptr;
|
||||
+ *linesize = size;
|
||||
+ return chars_stored;
|
||||
+}
|
||||
+
|
||||
+static void
|
||||
+cut_chars (FILE *stream)
|
||||
+{
|
||||
+ size_t char_idx; /* Number of chars in the line so far. */
|
||||
+ bool print_delimiter;
|
||||
+ mbf_char_t c;
|
||||
+ mb_file_t mbf;
|
||||
+
|
||||
+ print_delimiter = false;
|
||||
+ char_idx = 0;
|
||||
+ current_rp = frp;
|
||||
+
|
||||
+ mbf_init (mbf, stream);
|
||||
+ while (true)
|
||||
+ {
|
||||
+ mbf_getc (c, mbf);
|
||||
+
|
||||
+ if (mb_iseq (c, line_delim))
|
||||
+ {
|
||||
+ putc (line_delim, stdout);
|
||||
+ char_idx = 0;
|
||||
+ print_delimiter = false;
|
||||
+ current_rp = frp;
|
||||
+ }
|
||||
+ else if (mb_iseof (c))
|
||||
+ {
|
||||
+ if (char_idx > 0)
|
||||
+ putc (line_delim, stdout);
|
||||
+ break;
|
||||
+ }
|
||||
+ else
|
||||
+ {
|
||||
+ /* Forward by one byte. */
|
||||
+ next_item (&char_idx);
|
||||
+
|
||||
+ /* Check if the current characters byte range is within
|
||||
+ * the argument list. */
|
||||
+ if (rp_intersect (char_idx, char_idx + mb_len (c) - 1))
|
||||
+ {
|
||||
+ if (output_delimiter_specified)
|
||||
+ {
|
||||
+ if (print_delimiter && is_range_start_index (char_idx))
|
||||
+ {
|
||||
+ fwrite (output_delimiter_string, sizeof (char),
|
||||
+ output_delimiter_length, stdout);
|
||||
+ }
|
||||
+ print_delimiter = true;
|
||||
+ }
|
||||
+ mb_putc (c, stdout);
|
||||
+ }
|
||||
+
|
||||
+ /* Byte mode with multibyte characters uncut (-b -n). */
|
||||
+ if (no_break_mb_chars)
|
||||
+ /* Forward by an additional byte_length (c) - 1. */
|
||||
+ next_item_n (&char_idx, mb_len (c) - 1);
|
||||
+ }
|
||||
+ }
|
||||
+}
|
||||
|
||||
static void
|
||||
cut_fields (FILE *stream)
|
||||
{
|
||||
- int c;
|
||||
+
|
||||
+ /* This buffer is used to support the semantics of the -s option
|
||||
+ (or lack of same) when the specified field list includes (does
|
||||
+ not include) the first field. In both of those cases, the entire
|
||||
+ first field must be read into this buffer to determine whether it
|
||||
+ is followed by a delimiter or a newline before any of it may be
|
||||
+ output. Otherwise, cut_fields can do the job without using this
|
||||
+ buffer. */
|
||||
+ mbf_char_t *field_1_buffer = 0;
|
||||
+ /* The number of bytes allocated for FIELD_1_BUFFER. */
|
||||
+ size_t field_1_bufsize;
|
||||
+
|
||||
+
|
||||
+ mbf_char_t c, d;
|
||||
+ mb_file_t mbf;
|
||||
size_t field_idx = 1;
|
||||
bool found_any_selected_field = false;
|
||||
bool buffer_first_field;
|
||||
|
||||
current_rp = frp;
|
||||
|
||||
- c = getc (stream);
|
||||
- if (c == EOF)
|
||||
+ mbf_init (mbf, stream);
|
||||
+ mbf_getc (c, mbf);
|
||||
+ if (mb_iseof (c))
|
||||
return;
|
||||
|
||||
- ungetc (c, stream);
|
||||
- c = 0;
|
||||
+ mbf_ungetc (c, mbf);
|
||||
+ mb_setascii (&c, 0);
|
||||
+ mb_copy (&d, &delim);
|
||||
|
||||
/* To support the semantics of the -s flag, we may have to buffer
|
||||
all of the first field to determine whether it is 'delimited.'
|
||||
@@ -312,10 +519,14 @@ cut_fields (FILE *stream)
|
||||
if (field_idx == 1 && buffer_first_field)
|
||||
{
|
||||
ssize_t len;
|
||||
- size_t n_bytes;
|
||||
+ size_t n_chars;
|
||||
+ mbf_char_t nl;
|
||||
+ mb_setascii (&nl, line_delim);
|
||||
+
|
||||
+ len = mb_getndelim2 (&field_1_buffer, &field_1_bufsize,
|
||||
+ GETNLINE_NO_LIMIT, d, nl, &mbf);
|
||||
+
|
||||
|
||||
- len = getndelim2 (&field_1_buffer, &field_1_bufsize, 0,
|
||||
- GETNLINE_NO_LIMIT, delim, line_delim, stream);
|
||||
if (len < 0)
|
||||
{
|
||||
free (field_1_buffer);
|
||||
@@ -325,15 +536,15 @@ cut_fields (FILE *stream)
|
||||
xalloc_die ();
|
||||
}
|
||||
|
||||
- n_bytes = len;
|
||||
- assert (n_bytes != 0);
|
||||
+ n_chars = len;
|
||||
+ //assert (n_chars != 0);
|
||||
|
||||
- c = 0;
|
||||
+ mb_setascii (&c, 0);
|
||||
|
||||
/* If the first field extends to the end of line (it is not
|
||||
delimited) and we are printing all non-delimited lines,
|
||||
print this one. */
|
||||
- if (to_uchar (field_1_buffer[n_bytes - 1]) != delim)
|
||||
+ if (!mb_equal (field_1_buffer[n_chars - 1], d))
|
||||
{
|
||||
if (suppress_non_delimited)
|
||||
{
|
||||
@@ -341,26 +552,30 @@ cut_fields (FILE *stream)
|
||||
}
|
||||
else
|
||||
{
|
||||
- fwrite (field_1_buffer, sizeof (char), n_bytes, stdout);
|
||||
+ for (int i = 0; i < n_chars; ++i)
|
||||
+ mb_putc (field_1_buffer[i], stdout);
|
||||
+
|
||||
/* Make sure the output line is newline terminated. */
|
||||
- if (field_1_buffer[n_bytes - 1] != line_delim)
|
||||
+ if (!mb_iseq (field_1_buffer[n_chars - 1], line_delim))
|
||||
putchar (line_delim);
|
||||
- c = line_delim;
|
||||
+ mb_setascii (&c, line_delim);
|
||||
}
|
||||
continue;
|
||||
}
|
||||
if (print_kth (1))
|
||||
{
|
||||
/* Print the field, but not the trailing delimiter. */
|
||||
- fwrite (field_1_buffer, sizeof (char), n_bytes - 1, stdout);
|
||||
+ for (int i = 0; i < n_chars - 1; ++i)
|
||||
+ mb_putc (field_1_buffer[i], stdout);
|
||||
|
||||
/* With -d$'\n' don't treat the last '\n' as a delimiter. */
|
||||
- if (delim == line_delim)
|
||||
+ if (mb_iseq (d, line_delim))
|
||||
{
|
||||
- int last_c = getc (stream);
|
||||
- if (last_c != EOF)
|
||||
+ mbf_char_t last_c;
|
||||
+ mbf_getc (last_c, mbf);
|
||||
+ if (!mb_iseof (last_c))
|
||||
{
|
||||
- ungetc (last_c, stream);
|
||||
+ mbf_ungetc (last_c, mbf);
|
||||
found_any_selected_field = true;
|
||||
}
|
||||
}
|
||||
@@ -370,7 +585,8 @@ cut_fields (FILE *stream)
|
||||
next_item (&field_idx);
|
||||
}
|
||||
|
||||
- int prev_c = c;
|
||||
+ mbf_char_t prev_c;
|
||||
+ mb_copy (&prev_c, &c);
|
||||
|
||||
if (print_kth (field_idx))
|
||||
{
|
||||
@@ -381,42 +597,46 @@ cut_fields (FILE *stream)
|
||||
}
|
||||
found_any_selected_field = true;
|
||||
|
||||
- while ((c = getc (stream)) != delim && c != line_delim && c != EOF)
|
||||
+ mbf_getc (c, mbf);
|
||||
+ while (!mb_equal (c, d) && !mb_iseq (c, line_delim) && !mb_iseof (c))
|
||||
{
|
||||
- putchar (c);
|
||||
- prev_c = c;
|
||||
+ mb_putc (c, stdout);
|
||||
+ mb_copy (&prev_c, &c);
|
||||
+ mbf_getc (c, mbf);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
- while ((c = getc (stream)) != delim && c != line_delim && c != EOF)
|
||||
+ mbf_getc (c, mbf);
|
||||
+ while (!mb_equal (c, d) && !mb_iseq (c, line_delim) && !mb_iseof (c))
|
||||
{
|
||||
- prev_c = c;
|
||||
+ mb_copy (&prev_c, &c);
|
||||
+ mbf_getc (c, mbf);
|
||||
}
|
||||
}
|
||||
|
||||
/* With -d$'\n' don't treat the last '\n' as a delimiter. */
|
||||
- if (delim == line_delim && c == delim)
|
||||
+ if (mb_iseq (d, line_delim) && mb_equal (c, d))
|
||||
{
|
||||
- int last_c = getc (stream);
|
||||
- if (last_c != EOF)
|
||||
- ungetc (last_c, stream);
|
||||
+ mbf_char_t last_c;
|
||||
+ mbf_getc (last_c, mbf);
|
||||
+ if (!mb_iseof (last_c))
|
||||
+ mbf_ungetc (last_c, mbf);
|
||||
else
|
||||
- c = last_c;
|
||||
+ mb_copy (&c, &last_c);
|
||||
}
|
||||
|
||||
- if (c == delim)
|
||||
+ if (mb_equal (c, d))
|
||||
next_item (&field_idx);
|
||||
- else if (c == line_delim || c == EOF)
|
||||
+ else if (mb_iseq (c, line_delim) || mb_iseof (c))
|
||||
{
|
||||
if (found_any_selected_field
|
||||
|| !(suppress_non_delimited && field_idx == 1))
|
||||
{
|
||||
- if (c == line_delim || prev_c != line_delim
|
||||
- || delim == line_delim)
|
||||
+ if (mb_iseq (c, line_delim) || !mb_iseq (prev_c, line_delim) || mb_iseq (d, line_delim))
|
||||
putchar (line_delim);
|
||||
}
|
||||
- if (c == EOF)
|
||||
+ if (mb_iseof (c))
|
||||
break;
|
||||
field_idx = 1;
|
||||
current_rp = frp;
|
||||
@@ -429,7 +649,14 @@ static void
|
||||
cut_stream (FILE *stream)
|
||||
{
|
||||
if (operating_mode == byte_mode)
|
||||
- cut_bytes (stream);
|
||||
+ {
|
||||
+ if (no_break_mb_chars)
|
||||
+ cut_chars (stream);
|
||||
+ else
|
||||
+ cut_bytes (stream);
|
||||
+ }
|
||||
+ else if (operating_mode == char_mode)
|
||||
+ cut_chars (stream);
|
||||
else
|
||||
cut_fields (stream);
|
||||
}
|
||||
@@ -483,6 +710,7 @@ main (int argc, char **argv)
|
||||
bool ok;
|
||||
bool delim_specified = false;
|
||||
char *spec_list_string IF_LINT ( = NULL);
|
||||
+ mbi_iterator_t iter;
|
||||
|
||||
initialize_main (&argc, &argv);
|
||||
set_program_name (argv[0]);
|
||||
@@ -496,8 +724,10 @@ main (int argc, char **argv)
|
||||
|
||||
/* By default, all non-delimited lines are printed. */
|
||||
suppress_non_delimited = false;
|
||||
+ /* Default behaviour for -b, unless -n is also specified. */
|
||||
+ no_break_mb_chars = false;
|
||||
|
||||
- delim = '\0';
|
||||
+ mb_setascii (&delim, '\0');
|
||||
have_read_stdin = false;
|
||||
|
||||
while ((optc = getopt_long (argc, argv, "b:c:d:f:nsz", longopts, NULL)) != -1)
|
||||
@@ -505,7 +735,6 @@ main (int argc, char **argv)
|
||||
switch (optc)
|
||||
{
|
||||
case 'b':
|
||||
- case 'c':
|
||||
/* Build the byte list. */
|
||||
if (operating_mode != undefined_mode)
|
||||
FATAL_ERROR (_("only one type of list may be specified"));
|
||||
@@ -513,6 +742,14 @@ main (int argc, char **argv)
|
||||
spec_list_string = optarg;
|
||||
break;
|
||||
|
||||
+ case 'c':
|
||||
+ /* Build the char list. */
|
||||
+ if (operating_mode != undefined_mode)
|
||||
+ FATAL_ERROR (_("only one type of list may be specified"));
|
||||
+ operating_mode = char_mode;
|
||||
+ spec_list_string = optarg;
|
||||
+ break;
|
||||
+
|
||||
case 'f':
|
||||
/* Build the field list. */
|
||||
if (operating_mode != undefined_mode)
|
||||
@@ -524,9 +761,17 @@ main (int argc, char **argv)
|
||||
case 'd':
|
||||
/* New delimiter. */
|
||||
/* Interpret -d '' to mean 'use the NUL byte as the delimiter.' */
|
||||
- if (optarg[0] != '\0' && optarg[1] != '\0')
|
||||
+ mbi_init (iter, optarg, strlen (optarg));
|
||||
+ if (!mbi_avail (iter))
|
||||
+ mb_setascii (&delim, '\0');
|
||||
+ else
|
||||
+ {
|
||||
+ mb_copy (&delim, &mbi_cur (iter));
|
||||
+
|
||||
+ mbi_advance (iter);
|
||||
+ if (mbi_avail (iter))
|
||||
FATAL_ERROR (_("the delimiter must be a single character"));
|
||||
- delim = optarg[0];
|
||||
+ }
|
||||
delim_specified = true;
|
||||
break;
|
||||
|
||||
@@ -540,6 +785,7 @@ main (int argc, char **argv)
|
||||
break;
|
||||
|
||||
case 'n':
|
||||
+ no_break_mb_chars = true;
|
||||
break;
|
||||
|
||||
case 's':
|
||||
@@ -579,15 +825,12 @@ main (int argc, char **argv)
|
||||
| (complement ? SETFLD_COMPLEMENT : 0) );
|
||||
|
||||
if (!delim_specified)
|
||||
- delim = '\t';
|
||||
+ mb_setascii (&delim, '\t');
|
||||
|
||||
if (output_delimiter_string == NULL)
|
||||
{
|
||||
- static char dummy[2];
|
||||
- dummy[0] = delim;
|
||||
- dummy[1] = '\0';
|
||||
- output_delimiter_string = dummy;
|
||||
- output_delimiter_length = 1;
|
||||
+ output_delimiter_string = mb_ptr (delim);
|
||||
+ output_delimiter_length = mb_len (delim);
|
||||
}
|
||||
|
||||
if (optind == argc)
|
||||
@ -1,7 +0,0 @@
|
||||
--- !Policy
|
||||
product_versions:
|
||||
- rhel-8
|
||||
decision_context: osci_compose_gate
|
||||
rules:
|
||||
- !PassingTestCaseRule {test_case_name: osci.brew-build./plans/tier1-internal/coreutils-multi.functional}
|
||||
- !PassingTestCaseRule {test_case_name: osci.brew-build./plans/tier1-internal/coreutils-single.functional}
|
||||
@ -1,23 +0,0 @@
|
||||
discover:
|
||||
how: fmf
|
||||
filter: 'tag: CI-Tier-1'
|
||||
url: https://pkgs.devel.redhat.com/git/tests/coreutils
|
||||
execute:
|
||||
how: tmt
|
||||
adjust:
|
||||
enabled: false
|
||||
when: distro == centos-stream or distro == fedora
|
||||
|
||||
/coreutils-multi:
|
||||
summary: Internal Tier1 tests plan - coreutils
|
||||
prepare:
|
||||
how: install
|
||||
exclude:
|
||||
- coreutils-single
|
||||
|
||||
/coreutils-single:
|
||||
summary: Internal Tier1 tests plan - coreutils-single
|
||||
prepare:
|
||||
how: install
|
||||
exclude:
|
||||
- coreutils
|
||||
Binary file not shown.
1
sources
1
sources
@ -1 +0,0 @@
|
||||
SHA512 (coreutils-8.30.tar.xz) = 25bc132c0d89ce71c33e417f04649c9fcfce6c5ef8b19f093b2e9e2851bfde9b5a31e20499d9c427332228ba54b88d445ddb445551e1944bb8f5cbff5ffa4eda
|
||||
123
upstream-key.gpg
123
upstream-key.gpg
@ -1,123 +0,0 @@
|
||||
-----BEGIN PGP PUBLIC KEY BLOCK-----
|
||||
Version: GnuPG v1.4.6 (GNU/Linux)
|
||||
|
||||
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
|
||||
Ke4=
|
||||
=zRdO
|
||||
-----END PGP PUBLIC KEY BLOCK-----
|
||||
Loading…
Reference in New Issue
Block a user