diff --git a/src/asar/main.cpp b/src/asar/main.cpp index ad318f41..0e499801 100644 --- a/src/asar/main.cpp +++ b/src/asar/main.cpp @@ -503,7 +503,9 @@ void assembleline(const char * fname, int linenum, const char * line) single_line_for_tracker = 1; try { - string tmp=replace_macro_args(line); + string tmp; + if(inmacro) tmp = replace_macro_args(line); + else tmp = line; clean(tmp); string out; if (numif==numtrue) resolvedefines(out, tmp); diff --git a/tests/macrolabels.asm b/tests/macrolabels.asm index 2dbb27ed..ba8e576b 100644 --- a/tests/macrolabels.asm +++ b/tests/macrolabels.asm @@ -14,6 +14,7 @@ ;`1D 80 00 ;`04 80 00 ;`04 80 00 +;`3C 61 3E org $008000 Main: @@ -49,4 +50,7 @@ org $008000 dl Main_Sub dl InMacro dl Main_InMacroSub ; Note that this is not InMacro_InMacroSub - \ No newline at end of file + + ; not exactly a test for macro labels, but close enough + db "" ; macro argument outside macro - should be left unexpanded +