Skip to content

Commit db4dcd7

Browse files
committed
Make generated parsers read as much data as necessary
Fix the issue #59.
1 parent 8891430 commit db4dcd7

File tree

1 file changed

+7
-7
lines changed

1 file changed

+7
-7
lines changed

src/packcc.c

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -128,7 +128,7 @@ DECLSPEC_IMPORT HRESULT WINAPI SHGetFolderPathA(HWND hwnd, int csidl, HANDLE hTo
128128

129129
#define WEBSITE "https://github.com/arithy/packcc"
130130

131-
#define VERSION "2.0.1"
131+
#define VERSION "2.0.2"
132132

133133
#ifndef BUFFER_MIN_SIZE
134134
#define BUFFER_MIN_SIZE 256
@@ -3189,14 +3189,14 @@ static code_reach_t generate_matching_string_code(generate_t *gen, const char *v
31893189
size_t i;
31903190
stream__write_characters(gen->stream, ' ', indent);
31913191
stream__puts(gen->stream, "if (\n");
3192-
stream__write_characters(gen->stream, ' ', indent + 4);
3193-
stream__printf(gen->stream, "pcc_refill_buffer(ctx, " FMT_LU ") < " FMT_LU " ||\n", (ulong_t)n, (ulong_t)n);
3194-
for (i = 0; i < n - 1; i++) {
3192+
for (i = 0; i < n; i++) {
31953193
stream__write_characters(gen->stream, ' ', indent + 4);
3196-
stream__printf(gen->stream, "(ctx->buffer.buf + ctx->cur)[" FMT_LU "] != '%s' ||\n", (ulong_t)i, escape_character(value[i], &s));
3194+
stream__printf(
3195+
gen->stream,
3196+
"pcc_refill_buffer(ctx, " FMT_LU ") < " FMT_LU " || (ctx->buffer.buf + ctx->cur)[" FMT_LU "] != '%s'%s\n",
3197+
(ulong_t)i + 1, (ulong_t)i + 1, (ulong_t)i, escape_character(value[i], &s), (i < n - 1) ? " ||" : ""
3198+
);
31973199
}
3198-
stream__write_characters(gen->stream, ' ', indent + 4);
3199-
stream__printf(gen->stream, "(ctx->buffer.buf + ctx->cur)[" FMT_LU "] != '%s'\n", (ulong_t)i, escape_character(value[i], &s));
32003200
stream__write_characters(gen->stream, ' ', indent);
32013201
stream__printf(gen->stream, ") goto L%04d;\n", onfail);
32023202
stream__write_characters(gen->stream, ' ', indent);

0 commit comments

Comments
 (0)