shithub: pokecrystal

Download patch

ref: 0c446367ce79dfe2a26f4bd7668036477811a279
parent: 12070ca50067d3abe36a730190f88ee43f2cace9
parent: 8efa0dcfb0e156dee5ca2542f80e9b795a80e3a5
author: yenatch <yenatch@gmail.com>
date: Sun Mar 25 07:19:59 EDT 2018

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

Fix scan_includes matching the word "include" in strings.

--- a/tools/scan_includes.c
+++ b/tools/scan_includes.c
@@ -48,9 +48,20 @@
 				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 @@
 				}
 				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);