mirror of
https://github.com/cc65/cc65.git
synced 2025-02-04 13:32:54 +00:00
More CfgName issues.
Use CfgError instead of calling Error directly. Use dynamically allocated string buffers in the CfgError and CfgWarning functions. git-svn-id: svn://svn.cc65.org/cc65/trunk@3359 b7a2c559-68d2-44c3-8de9-860c34a00d81
This commit is contained in:
parent
8559581d9f
commit
a456e503e4
@ -41,6 +41,7 @@
|
|||||||
|
|
||||||
/* common */
|
/* common */
|
||||||
#include "chartype.h"
|
#include "chartype.h"
|
||||||
|
#include "strbuf.h"
|
||||||
#include "xsprintf.h"
|
#include "xsprintf.h"
|
||||||
|
|
||||||
/* ld65 */
|
/* ld65 */
|
||||||
@ -86,14 +87,15 @@ static FILE* InputFile = 0;
|
|||||||
void CfgWarning (const char* Format, ...)
|
void CfgWarning (const char* Format, ...)
|
||||||
/* Print a warning message adding file name and line number of the config file */
|
/* Print a warning message adding file name and line number of the config file */
|
||||||
{
|
{
|
||||||
char Buf [512];
|
StrBuf Buf = STATIC_STRBUF_INITIALIZER;
|
||||||
va_list ap;
|
va_list ap;
|
||||||
|
|
||||||
va_start (ap, Format);
|
va_start (ap, Format);
|
||||||
xvsprintf (Buf, sizeof (Buf), Format, ap);
|
SB_VPrintf (&Buf, Format, ap);
|
||||||
va_end (ap);
|
va_end (ap);
|
||||||
|
|
||||||
Warning ("%s(%u): %s", CfgGetName(), CfgErrorLine, Buf);
|
Warning ("%s(%u): %s", CfgGetName(), CfgErrorLine, SB_GetConstBuf (&Buf));
|
||||||
|
DoneStrBuf (&Buf);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -101,14 +103,15 @@ void CfgWarning (const char* Format, ...)
|
|||||||
void CfgError (const char* Format, ...)
|
void CfgError (const char* Format, ...)
|
||||||
/* Print an error message adding file name and line number of the config file */
|
/* Print an error message adding file name and line number of the config file */
|
||||||
{
|
{
|
||||||
char Buf [512];
|
StrBuf Buf = STATIC_STRBUF_INITIALIZER;
|
||||||
va_list ap;
|
va_list ap;
|
||||||
|
|
||||||
va_start (ap, Format);
|
va_start (ap, Format);
|
||||||
xvsprintf (Buf, sizeof (Buf), Format, ap);
|
SB_VPrintf (&Buf, Format, ap);
|
||||||
va_end (ap);
|
va_end (ap);
|
||||||
|
|
||||||
Error ("%s(%u): %s", CfgGetName(), CfgErrorLine, Buf);
|
Error ("%s(%u): %s", CfgGetName(), CfgErrorLine, SB_GetConstBuf (&Buf));
|
||||||
|
DoneStrBuf (&Buf);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -197,7 +200,7 @@ Again:
|
|||||||
if (C == '$') {
|
if (C == '$') {
|
||||||
NextChar ();
|
NextChar ();
|
||||||
if (!isxdigit (C)) {
|
if (!isxdigit (C)) {
|
||||||
Error ("%s(%u): Hex digit expected", CfgGetName(), InputLine);
|
CfgError ("Hex digit expected");
|
||||||
}
|
}
|
||||||
CfgIVal = 0;
|
CfgIVal = 0;
|
||||||
while (isxdigit (C)) {
|
while (isxdigit (C)) {
|
||||||
@ -262,7 +265,7 @@ Again:
|
|||||||
I = 0;
|
I = 0;
|
||||||
while (C != '\"') {
|
while (C != '\"') {
|
||||||
if (C == EOF || C == '\n') {
|
if (C == EOF || C == '\n') {
|
||||||
Error ("%s(%u): Unterminated string", CfgName, InputLine);
|
CfgError ("Unterminated string");
|
||||||
}
|
}
|
||||||
if (I < CFG_MAX_IDENT_LEN) {
|
if (I < CFG_MAX_IDENT_LEN) {
|
||||||
CfgSVal [I++] = C;
|
CfgSVal [I++] = C;
|
||||||
@ -316,7 +319,7 @@ Again:
|
|||||||
break;
|
break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
Error ("%s(%u): Invalid character `%c'", CfgGetName(), InputLine, C);
|
CfgError ("Invalid character `%c'", C);
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -436,7 +439,7 @@ void CfgSpecialToken (const IdentTok* Table, unsigned Size, const char* Name)
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* Not found or no identifier */
|
/* Not found or no identifier */
|
||||||
Error ("%s(%u): %s expected", CfgGetName(), InputLine, Name);
|
CfgError ("%s expected", Name);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user