commit aafef20ba5e280e9a93c728d57c112ed889c7a2e
parent 03caf9317b3230e2c81b51c49751e26eb1cd250f
Author: Devine Lu Linvega <aliceffekt@gmail.com>
Date: Wed, 27 Mar 2024 13:23:16 -0700
(uxnasm) Increment line value at pointer
Diffstat:
2 files changed, 5 insertions(+), 4 deletions(-)
diff --git 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
@@ -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;