* tests/regression.at (Invalid CPP headers): New.

From Alexander Belopolsky.
* src/files.c (compute_header_macro): Map non alnum chars to `_'.
This commit is contained in:
Akim Demaille
2001-10-02 16:17:41 +00:00
parent f1394282f0
commit d9302e4b73
4 changed files with 51 additions and 25 deletions

View File

@@ -1,3 +1,9 @@
2001-10-02 Akim Demaille <akim@epita.fr>
* tests/regression.at (Invalid CPP headers): New.
From Alexander Belopolsky.
* src/files.c (compute_header_macro): Map non alnum chars to `_'.
2001-10-02 Akim Demaille <akim@epita.fr> 2001-10-02 Akim Demaille <akim@epita.fr>
* tests/regression.at (Invalid input): New. * tests/regression.at (Invalid input): New.

1
THANKS
View File

@@ -3,6 +3,7 @@ it is today without the invaluable help of these people:
Akim Demaille akim@epita.fr Akim Demaille akim@epita.fr
Albert Chin-A-Young china@thewrittenword.com Albert Chin-A-Young china@thewrittenword.com
Alexander Belopolsky alexb@rentec.com
Daniel Hagerty hag@gnu.org Daniel Hagerty hag@gnu.org
David J. MacKenzie djm@gnu.org David J. MacKenzie djm@gnu.org
Fabrice Bauzac noon@cote-dazur.com Fabrice Bauzac noon@cote-dazur.com

View File

@@ -94,8 +94,7 @@ stringappend (const char *string1, const char *string2)
static char * static char *
compute_header_macro (void) compute_header_macro (void)
{ {
int ite; char *macro_name, *cp;
char *macro_name;
if (spec_defines_file) if (spec_defines_file)
macro_name = xstrdup (spec_defines_file); macro_name = xstrdup (spec_defines_file);
@@ -109,14 +108,12 @@ compute_header_macro (void)
strcat (macro_name, header_extension); strcat (macro_name, header_extension);
} }
for (ite = 0; macro_name[ite]; ite++) for (cp = macro_name; *cp; ++cp)
if (macro_name[ite] == '.') if (islower (*cp))
macro_name[ite] = '_'; *cp = toupper (*cp);
else else if (!isalnum (*cp))
{ *cp = '_';
if (islower (macro_name[ite]))
macro_name[ite] -= ('a' - 'A');
}
return macro_name; return macro_name;
} }

View File

@@ -107,3 +107,25 @@ input.y:3: fatal error: no rules in the input grammar
]) ])
AT_CLEANUP AT_CLEANUP
## --------------------- ##
## Invalid CPP headers. ##
## --------------------- ##
AT_SETUP([Invalid CPP headers])
mkdir input
AT_DATA([input/input.y],
[%%
dummy:
])
AT_CHECK([bison --defines input/input.y])
AT_CHECK([sed 1q input/input.tab.h], 0,
[[#ifndef INPUT_INPUT_TAB_H
]])
AT_CLEANUP(input)