summaryrefslogtreecommitdiff
path: root/devel/id-utils/patches/patch-aq
diff options
context:
space:
mode:
Diffstat (limited to 'devel/id-utils/patches/patch-aq')
-rw-r--r--devel/id-utils/patches/patch-aq209
1 files changed, 209 insertions, 0 deletions
diff --git a/devel/id-utils/patches/patch-aq b/devel/id-utils/patches/patch-aq
new file mode 100644
index 00000000000..55fd271a743
--- /dev/null
+++ b/devel/id-utils/patches/patch-aq
@@ -0,0 +1,209 @@
+$NetBSD: patch-aq,v 1.1 2002/04/03 16:26:58 joda Exp $
+
+--- libidu/scanners.c~ Wed Apr 3 14:29:42 2002
++++ libidu/scanners.c Wed Apr 3 14:37:59 2002
+@@ -44,6 +44,19 @@
+ extern void usage __P((void));
+ extern char *program_name;
+
++static char *id_0;
++static size_t id_0_len;
++#define APPEND_CHAR(C) do { \
++ if(id_0 == NULL || id == id_0 + id_0_len) { \
++ size_t __pos = id_0 ? id - id_0 : 0; \
++ id_0 = xrealloc(id_0, id_0_len + BUFSIZ); \
++ id_0_len += BUFSIZ; \
++ id = id_0 + __pos; \
++ } \
++ *id++ = (C); \
++ } while(0);
++
++
+ /****************************************************************************/
+
+ struct lang_args **parse_language_map_file __P((char const *file_name, struct lang_args **next_ptr));
+@@ -488,7 +501,6 @@
+ #define ARGS ((struct args_c const *) args)
+ static int new_line = 1;
+ unsigned short const *rct = &ARGS->ctype[1];
+- char id_0[BUFSIZ];
+ char *id = id_0;
+ int c;
+
+@@ -507,10 +519,10 @@
+ if (!ISID1ST (c))
+ goto next;
+ id = id_0;
+- *id++ = c;
++ APPEND_CHAR(c);
+ while (ISIDREST (c = getc (in_FILE)))
+- *id++ = c;
+- *id = '\0';
++ APPEND_CHAR(c);
++ APPEND_CHAR('\0');
+ if (strequ (id_0, "include"))
+ {
+ while (c == ' ' || c == '\t')
+@@ -526,7 +538,7 @@
+ c = getc (in_FILE);
+ while (c != '\n' && c != EOF && c != '"')
+ {
+- *id++ = c;
++ APPEND_CHAR(c);
+ c = getc (in_FILE);
+ }
+ *flags = TOK_STRING;
+@@ -536,16 +548,16 @@
+ c = getc (in_FILE);
+ while (c != '\n' && c != EOF && c != '>')
+ {
+- *id++ = c;
++ APPEND_CHAR(c);
+ c = getc (in_FILE);
+ }
+ *flags = TOK_STRING;
+ }
+ else if (ISID1ST (c))
+ {
+- *id++ = c;
++ APPEND_CHAR(c);
+ while (ISIDREST (c = getc (in_FILE)))
+- *id++ = c;
++ APPEND_CHAR(c);
+ *flags = TOK_NAME;
+ }
+ else
+@@ -580,14 +592,14 @@
+ {
+ case '"':
+ id = id_0;
+- *id++ = c = getc (in_FILE);
++ APPEND_CHAR(c = getc (in_FILE));
+ for (;;)
+ {
+ while (ISQ2BORING (c))
+- *id++ = c = getc (in_FILE);
++ APPEND_CHAR(c = getc (in_FILE));
+ if (c == '\\')
+ {
+- *id++ = c = getc (in_FILE);
++ APPEND_CHAR(c = getc (in_FILE));
+ continue;
+ }
+ else if (c != '"')
+@@ -668,18 +680,18 @@
+ return 0;
+ }
+ id = id_0;
+- *id++ = c;
++ APPEND_CHAR(c);
+ if (ISID1ST (c))
+ {
+ *flags = TOK_NAME;
+ while (ISIDREST (c = getc (in_FILE)))
+- *id++ = c;
++ APPEND_CHAR(c);
+ }
+ else if (ISDIGIT (c))
+ {
+ *flags = TOK_NUMBER;
+ while (ISNUMBER (c = getc (in_FILE)))
+- *id++ = c;
++ APPEND_CHAR(c);
+ }
+ else
+ {
+@@ -874,7 +886,6 @@
+ #define ARGS ((struct args_asm const *) args)
+ static int new_line = 1;
+ unsigned char const *rct = &ARGS->ctype[1];
+- char id_0[BUFSIZ];
+ char *id = id_0;
+ int c;
+
+@@ -892,18 +903,18 @@
+ if (!ISID1ST (c))
+ goto next;
+ id = id_0;
+- *id++ = c;
++ APPEND_CHAR(c);
+ while (ISIDREST (c = getc (in_FILE)))
+- *id++ = c;
+- *id = '\0';
++ APPEND_CHAR(c);
++ APPEND_CHAR('\0');
+ if (strequ (id_0, "include"))
+ {
+ while (c != '"' && c != '<')
+ c = getc (in_FILE);
+ id = id_0;
+- *id++ = c = getc (in_FILE);
++ APPEND_CHAR(c = getc (in_FILE));
+ while ((c = getc (in_FILE)) != '"' && c != '>')
+- *id++ = c;
++ APPEND_CHAR(c);
+ *flags = TOK_STRING;
+ obstack_grow0 (&tokens_obstack, id_0, id - id_0);
+ return (struct token *) obstack_finish (&tokens_obstack);
+@@ -973,18 +984,18 @@
+ obstack_grow0 (&tokens_obstack, "_", 1);
+ return (struct token *) obstack_finish (&tokens_obstack);
+ }
+- *id++ = c;
++ APPEND_CHAR(c);
+ if (ISID1ST (c))
+ {
+ *flags = TOK_NAME;
+ while (ISIDREST (c = getc (in_FILE)))
+- *id++ = c;
++ APPEND_CHAR(c);
+ }
+ else if (ISNUMBER (c))
+ {
+ *flags = TOK_NUMBER;
+ while (ISNUMBER (c = getc (in_FILE)))
+- *id++ = c;
++ APPEND_CHAR(c);
+ }
+ else
+ {
+@@ -995,7 +1006,7 @@
+ goto next;
+ }
+
+- *id = '\0';
++ APPEND_CHAR('\0');
+ for (id = id_0; *id; id++)
+ if (ISIGNORE (*id))
+ goto next;
+@@ -1159,7 +1170,6 @@
+ get_token_text (FILE *in_FILE, void const *args, int *flags)
+ {
+ #define ARGS ((struct args_text const *) args)
+- static char id_0[BUFSIZ];
+ unsigned char const *rct = &ARGS->ctype[1];
+ int c;
+ char *id = id_0;
+@@ -1176,19 +1186,19 @@
+ return 0;
+ }
+ id = id_0;
+- *id++ = c;
++ APPEND_CHAR(c);
+ if (ISID1ST (c))
+ {
+ *flags = TOK_NAME;
+ while (ISIDREST (c = getc (in_FILE)))
+ if (!ISIDSQUEEZE (c))
+- *id++ = c;
++ APPEND_CHAR(c);
+ }
+ else if (ISNUMBER (c))
+ {
+ *flags = TOK_NUMBER;
+ while (ISNUMBER (c = getc (in_FILE)))
+- *id++ = c;
++ APPEND_CHAR(c);
+ }
+ else
+ {