X-Git-Url: https://git.gag.com/?a=blobdiff_plain;f=src%2FSDCCglobl.h;h=61eac7b01b81940f6f866432e4d325587d7d3137;hb=3062f96ccb55d1d05caf9c8782f4961f87b341ce;hp=48c466e41f12578595e3711f563c0ac180e76951;hpb=4c527a8dc0a11d9bb33bebfe2fafa42e34b2895b;p=fw%2Fsdcc diff --git a/src/SDCCglobl.h b/src/SDCCglobl.h index 48c466e4..61eac7b0 100644 --- a/src/SDCCglobl.h +++ b/src/SDCCglobl.h @@ -18,6 +18,36 @@ #define UNIX_DIR_SEPARATOR_CHAR '/' +#if defined(__BORLANDC__) || defined(_MSC_VER) +#define STRCASECMP stricmp +#define STRNCASECMP strnicmp +#else +#define STRCASECMP strcasecmp +#define STRNCASECMP strncasecmp +#endif + +#if defined(__MSDOS__) || defined(_WIN32) || defined(__OS2__) || defined (__CYGWIN__) + +#ifndef HAVE_DOS_BASED_FILE_SYSTEM +#define HAVE_DOS_BASED_FILE_SYSTEM 1 +#endif + +#define IS_DIR_SEPARATOR(c) ((c) == DIR_SEPARATOR_CHAR || (c) == UNIX_DIR_SEPARATOR_CHAR) +/* Note that IS_ABSOLUTE_PATH accepts d:foo as well, although it is + only semi-absolute. This is because the users of IS_ABSOLUTE_PATH + want to know whether to prepend the current working directory to + a file name, which should not be done with a name like d:foo. */ +#define IS_ABSOLUTE_PATH(f) (IS_DIR_SEPARATOR((f)[0]) || (((f)[0]) && ((f)[1] == ':'))) +#define FILENAME_CMP(s1, s2) STRCASECMP(s1, s2) + +#else /* not DOSish */ + +#define IS_DIR_SEPARATOR(c) ((c) == DIR_SEPARATOR_CHAR) +#define IS_ABSOLUTE_PATH(f) (IS_DIR_SEPARATOR((f)[0])) +#define FILENAME_CMP(s1, s2) strcmp(s1, s2) + +#endif /* not DOSish */ + #ifdef WIN32 # define NATIVE_WIN32 1 # ifndef __MINGW32__ @@ -255,6 +285,7 @@ struct options int no_std_crt0; /* for the z80/gbz80 do not link default crt0.o*/ int std_c99; /* enable C99 keywords/constructs */ int std_sdcc; /* enable SDCC extensions to C */ + int dollars_in_ident; /* zero means dollar signs are punctuation */ const char *code_seg; /* segment name to use instead of CSEG */ const char *const_seg; /* segment name to use instead of CONST */ /* sets */ @@ -277,8 +308,6 @@ extern char *dstPath; /* path for the output files; */ extern char *moduleName; /* module name is source file without path and extension */ /* can be NULL while linking without compiling */ extern int seqPointNo; /* current sequence point */ -extern int currLineno; /* current line number */ -extern int mylineno; /* line number of the current file SDCC.lex */ extern FILE *yyin; /* */ extern FILE *asmFile; /* assembly output file */ extern FILE *cdbFile; /* debugger symbol file */