]> Shamusworld >> Repos - rmac/blobdiff - token.c
Small cleanups + version bump for last commit.
[rmac] / token.c
diff --git a/token.c b/token.c
index e1be9b5b8871ea3cde208b29b8e9a072f43ec64d..34c4a52ceda455b030d7d9a4023d3c5d0ea15f07 100644 (file)
--- a/token.c
+++ b/token.c
@@ -716,6 +716,11 @@ char * GetNextRepeatLine(void)
 
 //             strp = irept->ir_nextln;
        }
+       // Mark the current macro line in the irept object
+       // This is probably overkill - a global variable
+       // would suffice here (it only gets used during
+       // error reporting anyway)
+       irept->lineno = irept->ir_nextln->lineno;
 
 //     strcpy(irbuf, (char *)(irept->ir_nextln + 1));
        strcpy(irbuf, irept->ir_nextln->line);
@@ -1619,7 +1624,8 @@ dostring:
 
                                        *tk.u32++ = FCONST;
 // Shamus: Well, this is all kinds of icky--not the least of which is that unlike uintNN_t types, we have no guarantees of any kind when it comes to the size of floating point numbers in C (as far as I know of). If there is, we need to use those kinds here, or else figure out at runtime what sizes we're dealing with and act accordingly. To be fair, this is OK as long as the double type is less than 64 bits wide, but again, there's no guarantee that it isn't. :-/
-                                       *tk.u64++ = f;
+                                       *tk.dp = f;
+                                       tk.u64++;
                                        continue;
                                }
                        }