diff --git a/sourcepawn/compiler/AMBuilder b/sourcepawn/compiler/AMBuilder index bceea381..021f26b8 100644 --- a/sourcepawn/compiler/AMBuilder +++ b/sourcepawn/compiler/AMBuilder @@ -83,7 +83,7 @@ binary.sources += [ 'memfile.cpp', 'pawncc.cpp', 'sc1.c', - 'sc2.c', + 'sc2.cpp', 'sc3.cpp', 'sc4.cpp', 'sc5.cpp', diff --git a/sourcepawn/compiler/sc.h b/sourcepawn/compiler/sc.h index 1a035ee7..1d9fc118 100644 --- a/sourcepawn/compiler/sc.h +++ b/sourcepawn/compiler/sc.h @@ -828,7 +828,7 @@ SC_FUNC stringlist *insert_docstring(char *string); SC_FUNC char *get_docstring(int index); SC_FUNC void delete_docstring(int index); SC_FUNC void delete_docstringtable(void); -SC_FUNC stringlist *insert_autolist(char *string); +SC_FUNC stringlist *insert_autolist(const char *string); SC_FUNC char *get_autolist(int index); SC_FUNC void delete_autolisttable(void); SC_FUNC stringlist *insert_dbgfile(const char *filename); @@ -844,7 +844,7 @@ SC_FUNC int cp_path(const char *root,const char *directory); SC_FUNC int cp_set(const char *name); SC_FUNC cell cp_translate(const unsigned char *string,const unsigned char **endptr); SC_FUNC cell get_utf8_char(const unsigned char *string,const unsigned char **endptr); -SC_FUNC int scan_utf8(FILE *fp,const char *filename); +SC_FUNC int scan_utf8(void *fp,const char *filename); /* function prototypes in SCSTATE.C */ SC_FUNC constvalue *automaton_add(const char *name); @@ -942,9 +942,9 @@ SC_VDECL int sc_require_newdecls; /* only newdecls are allowed */ SC_VDECL constvalue sc_automaton_tab; /* automaton table */ SC_VDECL constvalue sc_state_tab; /* state table */ -SC_VDECL FILE *inpf; /* file read from (source or include) */ -SC_VDECL FILE *inpf_org; /* main source file */ -SC_VDECL FILE *outf; /* file written to */ +SC_VDECL void *inpf; /* file read from (source or include) */ +SC_VDECL void *inpf_org; /* main source file */ +SC_VDECL void *outf; /* file written to */ SC_VDECL jmp_buf errbuf; /* target of longjmp() on a fatal error */ diff --git a/sourcepawn/compiler/sc2.c b/sourcepawn/compiler/sc2.cpp similarity index 96% rename from sourcepawn/compiler/sc2.c rename to sourcepawn/compiler/sc2.cpp index 87690e74..04b87d34 100644 --- a/sourcepawn/compiler/sc2.c +++ b/sourcepawn/compiler/sc2.cpp @@ -47,7 +47,7 @@ static cell litchar(const unsigned char **lptr,int flags); static symbol *find_symbol(const symbol *root,const char *name,int fnumber,int automaton,int *cmptag); static void substallpatterns(unsigned char *line,int buffersize); -static int match(char *st,int end); +static int match(const char *st,int end); static int alpha(char c); #define SKIPMODE 1 /* bit field in "#if" stack */ @@ -134,7 +134,8 @@ SC_FUNC void clearstk(void) SC_FUNC int plungequalifiedfile(char *name) { -static char *extensions[] = { ".inc", ".p", ".pawn" }; + static const char *extensions[] = { ".inc", ".p", ".pawn" }; + void *fp; char *ext; int ext_idx; @@ -1251,7 +1252,7 @@ static int command(void) break; default: { char s2[20]; - extern char *sc_tokens[];/* forward declaration */ + extern const char *sc_tokens[];/* forward declaration */ if (tok<256) sprintf(s2,"%c",(char)tok); else @@ -1482,7 +1483,7 @@ static char *strdel(char *str,size_t len) return str; } -static char *strins(char *dest,char *src,size_t srclen) +static char *strins(char *dest,const char *src,size_t srclen) { size_t destlen=strlen(dest); assert(srclen<=strlen(src)); @@ -1943,7 +1944,7 @@ SC_FUNC void lexinit(void) sTokenBuffer = &sNormalBuffer; } -char *sc_tokens[] = { +const char *sc_tokens[] = { "*=", "/=", "%=", "+=", "-=", "<<=", ">>>=", ">>=", "&=", "^=", "|=", "||", "&&", "==", "!=", "<=", ">=", "<<", ">>>", ">>", "++", "--", "...", "..", "::", @@ -2003,7 +2004,6 @@ static void lexpop() SC_FUNC int lex(cell *lexvalue,char **lexsym) { int i,toolong,newline; - char **tokptr; const unsigned char *starttoken; if (sTokenBuffer->depth > 0) { @@ -2054,7 +2054,7 @@ SC_FUNC int lex(cell *lexvalue,char **lexsym) tok->start.col = (int)(lptr - pline); i=tFIRST; - tokptr=sc_tokens; + const char **tokptr=sc_tokens; while (i<=tMIDDLE) { /* match multi-character operators */ if (*lptr==**tokptr && match(*tokptr,FALSE)) { tok->id = i; @@ -2440,7 +2440,7 @@ SC_FUNC int require_newline(int allow_semi) * * Global references: lptr (altered) */ -static int match(char *st,int end) +static int match(const char *st,int end) { int k; const unsigned char *ptr; diff --git a/sourcepawn/compiler/sci18n.cpp b/sourcepawn/compiler/sci18n.cpp index 8730e4ec..f016e7f8 100644 --- a/sourcepawn/compiler/sci18n.cpp +++ b/sourcepawn/compiler/sci18n.cpp @@ -391,7 +391,7 @@ SC_FUNC cell get_utf8_char(const unsigned char *string,const unsigned char **end } #endif -SC_FUNC int scan_utf8(FILE *fp,const char *filename) +SC_FUNC int scan_utf8(void *fp,const char *filename) { #if defined NO_UTF8 return 0; diff --git a/sourcepawn/compiler/sclist.cpp b/sourcepawn/compiler/sclist.cpp index 6813b936..8f9f374a 100644 --- a/sourcepawn/compiler/sclist.cpp +++ b/sourcepawn/compiler/sclist.cpp @@ -137,7 +137,7 @@ static int delete_stringpair(stringpair *root,stringpair *item) } /* ----- string list functions ----------------------------------- */ -static stringlist *insert_string(stringlist *root,char *string) +static stringlist *insert_string(stringlist *root,const char *string) { stringlist *cur; @@ -418,7 +418,7 @@ SC_FUNC void delete_docstringtable(void) /* ----- autolisting --------------------------------------------- */ static stringlist autolist; -SC_FUNC stringlist *insert_autolist(char *string) +SC_FUNC stringlist *insert_autolist(const char *string) { return insert_string(&autolist,string); } diff --git a/sourcepawn/compiler/scvars.c b/sourcepawn/compiler/scvars.c index a7b5b5f9..96d36095 100644 --- a/sourcepawn/compiler/scvars.c +++ b/sourcepawn/compiler/scvars.c @@ -98,9 +98,9 @@ SC_VDEFINE int sc_require_newdecls=0; /* Require new-style declarations */ SC_VDEFINE constvalue sc_automaton_tab = { NULL, "", 0, 0}; /* automaton table */ SC_VDEFINE constvalue sc_state_tab = { NULL, "", 0, 0}; /* state table */ -SC_VDEFINE FILE *inpf = NULL; /* file read from (source or include) */ -SC_VDEFINE FILE *inpf_org= NULL; /* main source file */ -SC_VDEFINE FILE *outf = NULL; /* (intermediate) text file written to */ +SC_VDEFINE void *inpf = NULL; /* file read from (source or include) */ +SC_VDEFINE void *inpf_org= NULL; /* main source file */ +SC_VDEFINE void *outf = NULL; /* (intermediate) text file written to */ SC_VDEFINE jmp_buf errbuf;