Skip to content

Commit

Permalink
genksyms: Handle string literals with spaces in reference files
Browse files Browse the repository at this point in the history
The reference files use spaces to separate tokens, however, we must
preserve spaces inside string literals. Currently the only case in the
tree is struct edac_raw_error_desc in <linux/edac.h>:

$ KBUILD_SYMTYPES=1 make -s drivers/edac/amd64_edac.symtypes
$ mv drivers/edac/amd64_edac.{symtypes,symref}
$ KBUILD_SYMTYPES=1 make -s drivers/edac/amd64_edac.symtypes
drivers/edac/amd64_edac.c:527: warning: amd64_get_dram_hole_info: modversion changed because of changes in struct edac_raw_error_desc

Signed-off-by: Michal Marek <[email protected]>
  • Loading branch information
Michal Marek committed Dec 9, 2015
1 parent 4c835b5 commit a78f70e
Showing 1 changed file with 4 additions and 2 deletions.
6 changes: 4 additions & 2 deletions scripts/genksyms/genksyms.c
Original file line number Diff line number Diff line change
Expand Up @@ -423,13 +423,15 @@ static struct string_list *read_node(FILE *f)
struct string_list node = {
.string = buffer,
.tag = SYM_NORMAL };
int c;
int c, in_string = 0;

while ((c = fgetc(f)) != EOF) {
if (c == ' ') {
if (!in_string && c == ' ') {
if (node.string == buffer)
continue;
break;
} else if (c == '"') {
in_string = !in_string;
} else if (c == '\n') {
if (node.string == buffer)
return NULL;
Expand Down

0 comments on commit a78f70e

Please sign in to comment.