summaryrefslogtreecommitdiff
path: root/sysutils/coreutils/patches/patch-ak
diff options
context:
space:
mode:
Diffstat (limited to 'sysutils/coreutils/patches/patch-ak')
-rw-r--r--sysutils/coreutils/patches/patch-ak73
1 files changed, 73 insertions, 0 deletions
diff --git a/sysutils/coreutils/patches/patch-ak b/sysutils/coreutils/patches/patch-ak
new file mode 100644
index 00000000000..967d1846f8b
--- /dev/null
+++ b/sysutils/coreutils/patches/patch-ak
@@ -0,0 +1,73 @@
+$NetBSD: patch-ak,v 1.1 2006/01/09 22:45:08 joerg Exp $
+
+--- src/paste.c.orig 2006-01-03 17:23:26.000000000 +0000
++++ src/paste.c
+@@ -52,14 +52,6 @@
+ /* Indicates that no delimiter should be added in the current position. */
+ #define EMPTY_DELIM '\0'
+
+-static FILE dummy_closed;
+-/* Element marking a file that has reached EOF and been closed. */
+-#define CLOSED (&dummy_closed)
+-
+-static FILE dummy_endlist;
+-/* Element marking end of list of open files. */
+-#define ENDLIST (&dummy_endlist)
+-
+ /* Name this program was run with. */
+ char *program_name;
+
+@@ -76,6 +68,8 @@ static char *delims;
+ /* A pointer to the character after the end of `delims'. */
+ static char const *delim_end;
+
++#define CLOSED NULL
++
+ static struct option const longopts[] =
+ {
+ {"serial", no_argument, 0, 's'},
+@@ -156,7 +150,7 @@ paste_parallel (size_t nfiles, char **fn
+ store the delimiters for closed files. */
+ char *delbuf;
+ FILE **fileptr; /* Streams open to the files to process. */
+- size_t files_open; /* Number of files still open to process. */
++ size_t files_open, last_file; /* Number of files still open to process. */
+ bool opened_stdin = false; /* true if any fopen got fd == STDIN_FILENO */
+
+ delbuf = xmalloc (nfiles + 2);
+@@ -183,7 +177,7 @@ paste_parallel (size_t nfiles, char **fn
+ }
+ }
+
+- fileptr[files_open] = ENDLIST;
++ last_file = files_open;
+
+ if (opened_stdin && have_read_stdin)
+ error (EXIT_FAILURE, 0, _("standard input is closed"));
+@@ -200,7 +194,7 @@ paste_parallel (size_t nfiles, char **fn
+ size_t delims_saved = 0; /* Number of delims saved in `delbuf'. */
+ size_t i;
+
+- for (i = 0; fileptr[i] != ENDLIST && files_open; i++)
++ for (i = 0; i < last_file && files_open; i++)
+ {
+ int chr IF_LINT (= 0); /* Input character. */
+ size_t line_length = 0; /* Number of chars in line. */
+@@ -246,7 +240,7 @@ paste_parallel (size_t nfiles, char **fn
+ files_open--;
+ }
+
+- if (fileptr[i + 1] == ENDLIST)
++ if (i + 1 == last_file)
+ {
+ /* End of this output line.
+ Is this the end of the whole thing? */
+@@ -277,7 +271,7 @@ paste_parallel (size_t nfiles, char **fn
+ somedone = true;
+
+ /* Except for last file, replace last newline with delim. */
+- if (fileptr[i + 1] != ENDLIST)
++ if (i + 1 != last_file)
+ {
+ if (chr != '\n' && chr != EOF)
+ putc (chr, stdout);