* Makefile.in, configure.in, configure,
[fw/sdcc] / src / altlex.c
index 5b84d12d17ca6df790442a26cfd0a376f572c25b..52532248fe88df3c0bf6aba7248a2e055c5a712a 100644 (file)
@@ -47,7 +47,7 @@ extern char *filename;
 
 FILE *yyin;
 
-int yylineno;
+int mylineno;
 char *currFname;
 char *yytext;
 
@@ -234,12 +234,12 @@ check_token (const char *sz)
   /* check if it is in the typedef table */
   if (findSym (TypedefTab, NULL, sz))
     {
-      strcpy (yylval.yychar, sz);
+      strncpyz (yylval.yychar, sz, sizeof(yylval.yychar));
       return TYPE_NAME;
     }
   else
     {
-      strcpy (yylval.yychar, sz);
+      strncpyz (yylval.yychar, sz, sizeof(yylval.yychar));
       return IDENTIFIER;
     }
 }
@@ -292,8 +292,8 @@ handle_line (void)
   if (line[0] == '\0')
     error ("Error in number in #line");
   /* This is weird but cpp seems to add an extra three to the line no */
-  yylineno = atoi (line) - 3;
-  lineno = yylineno;
+  mylineno = atoi (line) - 3;
+  lineno = mylineno;
   /* Fetch the filename if there is one */
   while (c == '\t' || c == ' ')
     c = GETC ();
@@ -325,8 +325,8 @@ static INLINE int
 check_newline (void)
 {
   int c;
-  yylineno++;
-  lineno = yylineno;
+  mylineno++;
+  lineno = mylineno;
 
   /* Skip any leading white space */
   c = GETC ();
@@ -843,6 +843,7 @@ yylex (void)
       ENTRY (SIGNED);
       ENTRY (UNSIGNED);
       ENTRY (FLOAT);
+      ENTRY (FIXED16X16);
       ENTRY (DOUBLE);
       ENTRY (CONST);
       ENTRY (VOLATILE);
@@ -916,7 +917,7 @@ int
 altlex_testparse (const char *input)
 {
   /* Fiddle with the read-ahead buffer to insert ourselves */
-  strcpy (linebuf, input);
+  strncpyz (linebuf, input, sizeof(linebuf));
   linelen = strlen (linebuf) + 1;
   linepos = 0;
 
@@ -1042,6 +1043,7 @@ altlex_runtests (void)
   TEST (altlex_testparse ("enum") == ENUM);
   TEST (altlex_testparse ("extern") == EXTERN);
   TEST (altlex_testparse ("float") == FLOAT);
+  TEST (altlex_testparse ("fixed16x16") == FIXED16X16);
   TEST (altlex_testparse ("for") == FOR);
   TEST (altlex_testparse ("goto") == GOTO);
   TEST (altlex_testparse ("if") == IF);