diff --git a/etc/hello.tal b/etc/hello.tal index 0100cef..e504496 100644 --- a/etc/hello.tal +++ b/etc/hello.tal @@ -18,6 +18,7 @@ POP2 #010f DEO + @1234 BRK diff --git a/src/uxnasm.c b/src/uxnasm.c index 24088c3..0b4f82c 100644 --- a/src/uxnasm.c +++ b/src/uxnasm.c @@ -55,7 +55,7 @@ static char *push(char *s, char c) { char *o = dictnext; while((*dictnext++ = *s #define findlabel(x) finditem(x, labels, label_len) #define findmacro(x) finditem(x, macros, macro_len) #define error_top(name, msg) !fprintf(stderr, "%s: %s\n", name, msg) -#define error_asm(name) !fprintf(stderr, "%s: %s in @%s, %s:%d.\n", name, token, scope, source, ln) +#define error_asm(name) !fprintf(stderr, "%s: %s in @%s, %s:%d.\n", name, token, scope, source, *ln) /* clang-format on */ @@ -105,7 +105,7 @@ walkcomment(FILE *f, int *ln) char c; int depth = 1; while(f && fread(&c, 1, 1, f)) { - if(c == 0xa) ln++; + if(c == 0xa) *ln++; if(c == '(') depth++; if(c == ')' && --depth < 1) return 1; } @@ -160,9 +160,9 @@ makemacro(char *name, FILE *f, int *ln) m->name = push(name, 0); m->content = dictnext; while(f && fread(&c, 1, 1, f) && c != '{') - if(c == 0xa) ln++; + if(c == 0xa) *ln++; while(f && fread(&c, 1, 1, f) && c != '}') { - if(c == 0xa) ln++; + if(c == 0xa) *ln++; if(c == '%') return 0; if(c == '(') walkcomment(f, ln); *dictnext++ = c;