genksyms: Handle string literals with spaces in reference files
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 <mmarek@suse.com>
This commit is contained in:
@ -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;
|
||||
|
Reference in New Issue
Block a user