diff options
author | kdx <kdx.42@42l.fr> | 2023-03-17 05:36:27 +0000 |
---|---|---|
committer | kdx <kdx.42@42l.fr> | 2023-03-17 05:37:36 +0000 |
commit | 3ca9bd11165cc86bc38334cac5a0b30fe0e946b9 (patch) | |
tree | a48df33cafc1478bb2958305cbd57d4441aaac10 /memory.c | |
parent | 2bc0161433869d21a8c99779f39ce2f932389ea0 (diff) | |
download | golem-3ca9bd11165cc86bc38334cac5a0b30fe0e946b9.tar.gz |
note string_ptr in token
Diffstat (limited to 'memory.c')
-rw-r--r-- | memory.c | 14 |
1 files changed, 7 insertions, 7 deletions
@@ -16,17 +16,17 @@ strings_len(Token *list) } static int -strings_cat(char *mem, Token *list) +strings_cat(char *mem, Token *list, int off) { - int len = 0; for (Token *e = list; e != NULL; e = e->next) if (e->type == TOK_GROUP) - len += strings_cat(mem + len, e->group.tokens); + off = strings_cat(mem, e->group.tokens, off); else if (e->type == TOK_STRING) { - slice_cpy(mem + len, e->slice); - len += slice_len(e->slice) + 1; + slice_cpy(mem + off, e->slice); + e->string_ptr = off; + off += slice_len(e->slice) + 1; } - return len; + return off; } int @@ -38,7 +38,7 @@ memory_create(Memory *memory, Token *list) perror("memory_create:malloc"); return 1; } - const int cated = strings_cat(memory->strings, list); + const int cated = strings_cat(memory->strings, list, 0); if (cated != len) { fprintf(stderr, "strings_cat wrote %d bytes instead of %d", cated, len); |