# HG changeset patch # User lost@l-w.ca # Date 1306382398 21600 # Node ID 8fa52c3f29705be11d9358359471a064e8721a59 # Parent 16a72d9b6eb66f7db5f16def99f839db948a3599 Make *pragma work correctly diff -r 16a72d9b6eb6 -r 8fa52c3f2970 lwasm/pass1.c --- a/lwasm/pass1.c Wed May 25 21:42:01 2011 -0600 +++ b/lwasm/pass1.c Wed May 25 21:59:58 2011 -0600 @@ -195,8 +195,8 @@ else stspace = 0; - if (*p1 == '*' || *p1 == ';' || *p1 == '#') - goto nextline; +// if (*p1 == '*' || *p1 == ';' || *p1 == '#') +// goto nextline; if (!*p1) { // nothing but whitespace - context break @@ -210,6 +210,8 @@ if (*p1 == ':' || *p1 == '=' || stspace == 0) { + if (*tok == '*' || *tok == ';' || *tok == '#') + goto nextline; // have a symbol here sym = lw_strndup(tok, p1 - tok); if (*p1 == ':') @@ -255,6 +257,9 @@ break; } + if (instab[opnum].opcode == NULL && (*tok == '*' || *tok == ';' || *tok == '#')) + goto nextline; + // p1 points to the start of the operand // if we're inside a macro definition and not at ENDM, diff -r 16a72d9b6eb6 -r 8fa52c3f2970 lwasm/pragma.c --- a/lwasm/pragma.c Wed May 25 21:42:01 2011 -0600 +++ b/lwasm/pragma.c Wed May 25 21:59:58 2011 -0600 @@ -123,7 +123,7 @@ PARSEFUNC(pseudo_parse_starpragma) { char *ps, *t; - + for (t = *p; *t && !isspace(*t); t++) /* do nothing */ ;