]> Shamusworld >> Repos - rmac/blobdiff - procln.c
Fixed a nasty bug that dropped symbols that shouldn't have been.
[rmac] / procln.c
index b56b25461d9012c845e6720a107851b6f38d5a19..44b94d698332703eca6e06b0f5a784b7e086f9b5 100644 (file)
--- a/procln.c
+++ b/procln.c
@@ -94,7 +94,7 @@ int HandleLabel(char *, int);
 
 
 //
-// Initialize Line Processor
+// Initialize line processor
 //
 void InitLineProcessor(void)
 {
@@ -106,7 +106,7 @@ void InitLineProcessor(void)
 
 
 //
-// Line Processor
+// Line processor
 //
 void Assemble(void)
 {
@@ -371,7 +371,7 @@ normal:
                        {
 //REALLY?                              sy->sattre |= ~UNDEF_EQUR; 
                                sy->sattre &= ~UNDEF_EQUR; 
-                               sy->svalue  = 0;
+                               sy->svalue = 0;
                        }
                        else if ((equtyp == CCDEF) && (sy->sattre & UNDEF_CC))
                        {
@@ -386,9 +386,8 @@ normal:
                        }
                }
 
-               // Put symbol in "order of definition" list
-               if (!(sy->sattr & SDECLLIST))
-                       AddToSymbolOrderList(sy);
+               // Put symbol in "order of definition" list if it's not already there
+               AddToSymbolDeclarationList(sy);
 
                // Parse value to equate symbol to;
                // o  .equr
@@ -450,9 +449,9 @@ checking to see if it's already been equated, issue a warning.
 // What needs to happen here is to prime registerbank with regbank, then use
 // registerbank down below for the bank marking.
 #warning "!!! regbank <-> registerbank confusion here !!!"
-// The question here is why, if we're allowed to override the ".regbankN" rules above,
-// then why is it using the one set by the directive in the extended attributes and
-// not in what ends up in symbol->svalue?
+// The question here is why, if we're allowed to override the ".regbankN" rules
+// above, then why is it using the one set by the directive in the extended
+// attributes and not in what ends up in symbol->svalue?
 // ".regbankN" is not an original Madmac directive, so it's suspect
                                sy->sattre |= regbank;          // Store register bank
 #endif
@@ -546,13 +545,13 @@ checking to see if it's already been equated, issue a warning.
                        goto loop;
                }
 
-               sy->sattr |= eattr | EQUATED;           // Symbol inherits value and attributes
+               sy->sattr |= eattr | EQUATED;   // Symbol inherits value and attributes
                sy->svalue = eval;
 
-               if (list_flag)                                          // Put value in listing
+               if (list_flag)                                  // Put value in listing
                        listvalue(eval);
 
-               at_eol();                                                       // Must be at EOL now
+               at_eol();                                               // Must be at EOL now
                goto loop;
        }
 
@@ -694,9 +693,8 @@ int HandleLabel(char * label, int labelType)
        else if (symbol->sattr & DEFINED)
                return errors("multiply-defined label '%s'", label);
 
-       // Put symbol in "order of definition" list
-       if (!(symbol->sattr & SDECLLIST))
-               AddToSymbolOrderList(symbol);
+       // Put symbol in "order of definition" list if it's not already in it
+       AddToSymbolDeclarationList(symbol);
 
        if (orgactive)
        {
@@ -728,7 +726,7 @@ int HandleLabel(char * label, int labelType)
 
 
 // 
-// .if, Start Conditional Assembly
+// .if, Start conditional assembly
 //
 int d_if(void)
 {
@@ -763,7 +761,7 @@ int d_if(void)
 
 
 // 
-// .else, Do Alternate Case For .if
+// .else, Do alternate case for .if
 //
 int d_else(void)
 {