tb Handle line continuation and left trim lines before tokenizing

This commit is contained in:
2025-10-18 10:36:34 +02:00
parent 9212ff0e97
commit d136c001df

View File

@ -28,7 +28,13 @@ void tz_free(Tokenizer *tz) {
void tz_tokenize(Tokenizer *tz) {
size_t len = string_len(tz->str);
for (size_t i = 0; i < len; i++) {
size_t i = 0;
while (i < len && string_chr_isspace(tz->str[i])) {
i++;
}
for (; i < len; i++) {
if (tz->str[i] == '\'') {
char *str = umalloc(TZ_MAX_TK);
string_memset(str, 0, TZ_MAX_TK);
@ -167,7 +173,7 @@ bool interp_runstring(char *string, InterpResult **res, bool logcmds, bool inter
rt_init();
bool ok = true;
char *line = string_tokenizealloc(string, "\n");
char *line = string_tokenizealloc_linecontinue(string, "\n");
while (line != NULL) {
if (logcmds) {
uprintf("+%s\n", line);
@ -176,7 +182,8 @@ bool interp_runstring(char *string, InterpResult **res, bool logcmds, bool inter
bool skip;
STRING_CHECK_ALL(line, string_chr_isspace, skip);
if (skip) {
line = string_tokenizealloc(NULL, "\n");
ufree(line);
line = string_tokenizealloc_linecontinue(NULL, "\n");
continue;
}
@ -250,7 +257,7 @@ bool interp_runstring(char *string, InterpResult **res, bool logcmds, bool inter
next:
tz_free(&tz);
ufree(line);
line = string_tokenizealloc(NULL, "\n");
line = string_tokenizealloc_linecontinue(NULL, "\n");
}
return ok;