Fix __FILE__, __TIME__ and __DATE__

If they don't have quotes when passed to sym_AddString() they can't be
used at all by the assembler. I suppose nobody actually used them, they
seem to have been broken forever.

Added a comment to the function to say how to use it correctly for
strings.

Signed-off-by: Antonio Niño Díaz <antonio_nd@outlook.com>
This commit is contained in:
Antonio Niño Díaz
2017-04-09 15:40:06 +01:00
parent 53fa608161
commit 23584a584f
2 changed files with 15 additions and 4 deletions

View File

@@ -346,7 +346,9 @@ fstk_Init(char *s)
{ {
char tzFileName[_MAX_PATH + 1]; char tzFileName[_MAX_PATH + 1];
sym_AddString("__FILE__", s); char tzSymFileName[_MAX_PATH + 1 + 2];
snprintf(tzSymFileName, sizeof(tzSymFileName), "\"%s\"", s);
sym_AddString("__FILE__", tzSymFileName);
strcpy(tzFileName, s); strcpy(tzFileName, s);
pFileStack = NULL; pFileStack = NULL;

View File

@@ -495,7 +495,16 @@ sym_AddEqu(char *tzSym, SLONG value)
} }
/* /*
* Add a string equated symbol * Add a string equated symbol.
*
* If the desired symbol is a string it needs to be passed to this function with
* quotes inside the string, like sym_AddString("name", "\"test\"), or the
* assembler won't be able to use it with DB and similar. This is equivalent as
* ``` name EQUS "\"test\"" ```
*
* If the desired symbol is a register or a number, just the terminator quotes
* of the string are enough: sym_AddString("M_PI", "3.1415"). This is the same
* as ``` M_PI EQUS "3.1415" ```
*/ */
void void
sym_AddString(char *tzSym, char *tzValue) sym_AddString(char *tzSym, char *tzValue)
@@ -824,8 +833,8 @@ sym_Init(void)
struct tm *tptr; struct tm *tptr;
tptr = localtime(&tod); tptr = localtime(&tod);
strftime(SavedTIME, sizeof(SavedTIME), "%H:%M:%S", tptr); strftime(SavedTIME, sizeof(SavedTIME), "\"%H:%M:%S\"", tptr);
strftime(SavedDATE, sizeof(SavedDATE), "%d %B %Y", tptr); strftime(SavedDATE, sizeof(SavedDATE), "\"%d %B %Y\"", tptr);
sym_AddString("__TIME__", SavedTIME); sym_AddString("__TIME__", SavedTIME);
sym_AddString("__DATE__", SavedDATE); sym_AddString("__DATE__", SavedDATE);
} }