From f6d979a084d985db38ba1cae9a849afaf926e427 Mon Sep 17 00:00:00 2001 From: curt mayer Date: Sat, 22 Feb 2020 12:14:13 -0800 Subject: [PATCH] fixed quoted double quote bug, added tests --- Tools/unix/uz80as/Makefile | 12 +++++++++--- Tools/unix/uz80as/pp.c | 6 +++++- 2 files changed, 14 insertions(+), 4 deletions(-) diff --git a/Tools/unix/uz80as/Makefile b/Tools/unix/uz80as/Makefile index d158f4dd..712c47b0 100644 --- a/Tools/unix/uz80as/Makefile +++ b/Tools/unix/uz80as/Makefile @@ -58,9 +58,15 @@ clean: uz80as: $(OBJECTS) $(CC) $(CFLAGS) -o uz80as $(OBJECTS) -test: test.asm uz80as - ./uz80as test.asm - cat test.lst +TESTS=test*.asm + +test: uz80as + echo "running tests" + for i in $(TESTS) ; do \ + echo "====== $$i ======" ; \ + ./uz80as $$i ; \ + cat $$(basename $$i .asm).lst ; \ + done .c.o: $(CC) $(CFLAGS) -I. -c $< -o $@ diff --git a/Tools/unix/uz80as/pp.c b/Tools/unix/uz80as/pp.c index 842247a2..b3b69f2a 100644 --- a/Tools/unix/uz80as/pp.c +++ b/Tools/unix/uz80as/pp.c @@ -278,8 +278,12 @@ static int expand_line(char *dp, char *dq, const char *p) /* strings */ s = p; p++; - while (*p != '\0' && *p != '\"') + /* skip over the string literal */ + while (*p != '\0' && *p != '\"') { + if (p[0] == '\\' && p[1] == '\"') + p++; p++; + } if (*p == '\"') p++; dp = copypp(dp, dq, s, p);