Merge pull request #500 from yenatch/fix-scan-includes

Fix scan_includes matching the word "include" in strings.
This commit is contained in:
yenatch 2018-03-25 11:19:59 -04:00 committed by GitHub
commit 0c446367ce
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 13 additions and 1 deletions

View File

@ -48,9 +48,20 @@ void scan_file(char* filename) {
buffer = strchr(buffer, '\n');
if (!buffer) {
fprintf(stderr, "%s: no newline at end of file\n", filename);
break;
}
break;
case '"':
buffer++;
buffer = strchr(buffer, '"');
if (!buffer) {
fprintf(stderr, "%s: unterminated string\n", filename);
break;
}
buffer++;
break;
case 'i':
case 'I':
if ((strncmp(buffer, "INCBIN", 6) == 0) || (strncmp(buffer, "incbin", 6) == 0)) {
@ -60,9 +71,10 @@ void scan_file(char* filename) {
}
if (is_incbin || is_include) {
buffer = strchr(buffer, '"');
if (!buffer++) {
if (!buffer) {
break;
}
buffer++;
int length = strcspn(buffer, "\"");
char *include = malloc(length + 1);
strncpy(include, buffer, length);