(svn r26775) -Cleanup [Squirrel]: "resolve" several of the unicode wrapper defines

This commit is contained in:
rubidium 2014-09-06 18:10:36 +00:00
parent 33ab505567
commit e63ca12ab8
17 changed files with 130 additions and 152 deletions

View File

@ -16,7 +16,7 @@ void printfunc(HSQUIRRELVM v, const SQChar *s, ...)
{ {
va_list arglist; va_list arglist;
va_start(arglist, s); va_start(arglist, s);
scvprintf(s, arglist); vprintf(s, arglist);
va_end(arglist); va_end(arglist);
} }

View File

@ -90,30 +90,6 @@ struct SQInstance;
struct SQDelegable; struct SQDelegable;
typedef char SQChar; typedef char SQChar;
#define scstrcmp strcmp
#define scsprintf sprintf
#define scsnprintf snprintf
#define scstrlen strlen
#define scstrtod strtod
#define scstrtol strtol
#define scatoi atoi
#define scstrtoul strtoul
#define scvsprintf vsprintf
#define scstrstr strstr
#define scisspace isspace
#define scisdigit isdigit
#define scisxdigit isxdigit
#define sciscntrl iscntrl
#define scisalpha isalpha
#define scisalnum isalnum
#define scprintf printf
#define scfprintf fprintf
#define scvprintf vprintf
#define scvfprintf vfprintf
#define scvsnprintf vsnprintf
#define scstrdup strdup
#define scstrrchr strrchr
#define scstrcat strcat
#define MAX_CHAR 0xFFFF #define MAX_CHAR 0xFFFF
#if defined(_MSC_VER) || defined(__MINGW32__) #if defined(_MSC_VER) || defined(__MINGW32__)

View File

@ -46,21 +46,21 @@ void printfunc(HSQUIRRELVM v,const SQChar *s,...)
{ {
va_list vl; va_list vl;
va_start(vl, s); va_start(vl, s);
scvprintf( s, vl); vprintf( s, vl);
va_end(vl); va_end(vl);
} }
void PrintVersionInfos() void PrintVersionInfos()
{ {
scfprintf(stdout,"%s %s (%d bits)\n",SQUIRREL_VERSION,SQUIRREL_COPYRIGHT,sizeof(SQInteger)*8); fprintf(stdout,"%s %s (%d bits)\n",SQUIRREL_VERSION,SQUIRREL_COPYRIGHT,sizeof(SQInteger)*8);
if(sizeof(SQFloat) != sizeof(float)) { if(sizeof(SQFloat) != sizeof(float)) {
scfprintf(stdout,"[%d bits floats]\n",sizeof(SQFloat)*8); fprintf(stdout,"[%d bits floats]\n",sizeof(SQFloat)*8);
} }
} }
void PrintUsage() void PrintUsage()
{ {
scfprintf(stderr,"usage: sq <options> <scriptpath [args]>.\n" fprintf(stderr,"usage: sq <options> <scriptpath [args]>.\n"
"Available options are:\n" "Available options are:\n"
" -c compiles the file to bytecode(default output 'out.cnut')\n" " -c compiles the file to bytecode(default output 'out.cnut')\n"
" -o specifies output file for the -c option\n" " -o specifies output file for the -c option\n"
@ -113,7 +113,7 @@ int getargs(HSQUIRRELVM v,int argc, char* argv[])
return _DONE; return _DONE;
default: default:
PrintVersionInfos(); PrintVersionInfos();
scprintf("unknown prameter '-%c'\n",argv[arg][1]); printf("unknown prameter '-%c'\n",argv[arg][1]);
PrintUsage(); PrintUsage();
return _DONE; return _DONE;
} }
@ -161,7 +161,7 @@ int getargs(HSQUIRRELVM v,int argc, char* argv[])
const SQChar *err; const SQChar *err;
sq_getlasterror(v); sq_getlasterror(v);
if(SQ_SUCCEEDED(sq_getstring(v,-1,&err))) { if(SQ_SUCCEEDED(sq_getstring(v,-1,&err))) {
scprintf("Error [%s]\n",err); printf("Error [%s]\n",err);
return _DONE; return _DONE;
} }
} }
@ -194,7 +194,7 @@ void Interactive(HSQUIRRELVM v)
while (!done) while (!done)
{ {
SQInteger i = 0; SQInteger i = 0;
scprintf("\nsq>"); printf("\nsq>");
for(;;) { for(;;) {
int c; int c;
if(done)return; if(done)return;
@ -217,7 +217,7 @@ void Interactive(HSQUIRRELVM v)
buffer[i++] = (SQChar)c; buffer[i++] = (SQChar)c;
} }
else if (i >= MAXINPUT-1) { else if (i >= MAXINPUT-1) {
scfprintf(stderr, "sq : input line too long\n"); fprintf(stderr, "sq : input line too long\n");
break; break;
} }
else{ else{
@ -227,17 +227,17 @@ void Interactive(HSQUIRRELVM v)
buffer[i] = '\0'; buffer[i] = '\0';
if(buffer[0]=='='){ if(buffer[0]=='='){
scsprintf(sq_getscratchpad(v,MAXINPUT),"return (%s)",&buffer[1]); sprintf(sq_getscratchpad(v,MAXINPUT),"return (%s)",&buffer[1]);
memcpy(buffer,sq_getscratchpad(v,-1),(scstrlen(sq_getscratchpad(v,-1))+1)*sizeof(SQChar)); memcpy(buffer,sq_getscratchpad(v,-1),(strlen(sq_getscratchpad(v,-1))+1)*sizeof(SQChar));
retval=1; retval=1;
} }
i=scstrlen(buffer); i=strlen(buffer);
if(i>0){ if(i>0){
SQInteger oldtop=sq_gettop(v); SQInteger oldtop=sq_gettop(v);
if(SQ_SUCCEEDED(sq_compilebuffer(v,buffer,i,"interactive console",SQTrue))){ if(SQ_SUCCEEDED(sq_compilebuffer(v,buffer,i,"interactive console",SQTrue))){
sq_pushroottable(v); sq_pushroottable(v);
if(SQ_SUCCEEDED(sq_call(v,1,retval,SQTrue)) && retval){ if(SQ_SUCCEEDED(sq_call(v,1,retval,SQTrue)) && retval){
scprintf("\n"); printf("\n");
sq_pushroottable(v); sq_pushroottable(v);
sq_pushstring(v,"print",-1); sq_pushstring(v,"print",-1);
sq_get(v,-2); sq_get(v,-2);
@ -245,7 +245,7 @@ void Interactive(HSQUIRRELVM v)
sq_push(v,-4); sq_push(v,-4);
sq_call(v,2,SQFalse,SQTrue); sq_call(v,2,SQFalse,SQTrue);
retval=0; retval=0;
scprintf("\n"); printf("\n");
} }
} }

View File

@ -27,8 +27,8 @@ void sqstd_printcallstack(HSQUIRRELVM v)
* Since the path only reaches NoAI code in a formatted string we have * Since the path only reaches NoAI code in a formatted string we have
* to strip it here. Let's hope nobody installs openttd in a subdirectory * to strip it here. Let's hope nobody installs openttd in a subdirectory
* of a directory named /ai/. */ * of a directory named /ai/. */
src = scstrstr(si.source, "\\ai\\"); src = strstr(si.source, "\\ai\\");
if (!src) src = scstrstr(si.source, "/ai/"); if (!src) src = strstr(si.source, "/ai/");
if (src) { if (src) {
src += 4; src += 4;
} else { } else {

View File

@ -526,7 +526,7 @@ SQRex *sqstd_rex_compile(const SQChar *pattern,const SQChar **error)
SQRex *exp = (SQRex *)sq_malloc(sizeof(SQRex)); SQRex *exp = (SQRex *)sq_malloc(sizeof(SQRex));
exp->_eol = exp->_bol = NULL; exp->_eol = exp->_bol = NULL;
exp->_p = pattern; exp->_p = pattern;
exp->_nallocated = (SQInteger)scstrlen(pattern) * sizeof(SQChar); exp->_nallocated = (SQInteger)strlen(pattern) * sizeof(SQChar);
exp->_nodes = (SQRexNode *)sq_malloc(exp->_nallocated * sizeof(SQRexNode)); exp->_nodes = (SQRexNode *)sq_malloc(exp->_nallocated * sizeof(SQRexNode));
exp->_nsize = 0; exp->_nsize = 0;
exp->_matches = 0; exp->_matches = 0;
@ -544,16 +544,16 @@ SQRex *sqstd_rex_compile(const SQChar *pattern,const SQChar **error)
SQRexNode *t; SQRexNode *t;
nsize = exp->_nsize; nsize = exp->_nsize;
t = &exp->_nodes[0]; t = &exp->_nodes[0];
scprintf("\n"); printf("\n");
/* XXX -- The (int) casts are needed to silent warnings on 64bit systems (SQInteger is 64bit, %d assumes 32bit, (int) is 32bit) */ /* XXX -- The (int) casts are needed to silent warnings on 64bit systems (SQInteger is 64bit, %d assumes 32bit, (int) is 32bit) */
for(i = 0;i < nsize; i++) { for(i = 0;i < nsize; i++) {
if(exp->_nodes[i].type>MAX_CHAR) if(exp->_nodes[i].type>MAX_CHAR)
scprintf("[%02d] %10s ",(int)i,g_nnames[exp->_nodes[i].type-MAX_CHAR]); printf("[%02d] %10s ",(int)i,g_nnames[exp->_nodes[i].type-MAX_CHAR]);
else else
scprintf("[%02d] %10c ",(int)i,exp->_nodes[i].type); printf("[%02d] %10c ",(int)i,exp->_nodes[i].type);
scprintf("left %02d right %02d next %02d\n",(int)exp->_nodes[i].left,(int)exp->_nodes[i].right,(int)exp->_nodes[i].next); printf("left %02d right %02d next %02d\n",(int)exp->_nodes[i].left,(int)exp->_nodes[i].right,(int)exp->_nodes[i].next);
} }
scprintf("\n"); printf("\n");
} }
#endif #endif
exp->_matches = (SQRexMatch *) sq_malloc(exp->_nsubexpr * sizeof(SQRexMatch)); exp->_matches = (SQRexMatch *) sq_malloc(exp->_nsubexpr * sizeof(SQRexMatch));
@ -579,7 +579,7 @@ SQBool sqstd_rex_match(SQRex* exp,const SQChar* text)
{ {
const SQChar* res = NULL; const SQChar* res = NULL;
exp->_bol = text; exp->_bol = text;
exp->_eol = text + scstrlen(text); exp->_eol = text + strlen(text);
exp->_currsubexp = 0; exp->_currsubexp = 0;
res = sqstd_rex_matchnode(exp,exp->_nodes,text,NULL); res = sqstd_rex_matchnode(exp,exp->_nodes,text,NULL);
if(res == NULL || res != exp->_eol) if(res == NULL || res != exp->_eol)
@ -618,7 +618,7 @@ SQBool sqstd_rex_searchrange(SQRex* exp,const SQChar* text_begin,const SQChar* t
SQBool sqstd_rex_search(SQRex* exp,const SQChar* text, const SQChar** out_begin, const SQChar** out_end) SQBool sqstd_rex_search(SQRex* exp,const SQChar* text, const SQChar** out_begin, const SQChar** out_end)
{ {
return sqstd_rex_searchrange(exp,text,text + scstrlen(text),out_begin,out_end); return sqstd_rex_searchrange(exp,text,text + strlen(text),out_begin,out_end);
} }
SQInteger sqstd_rex_getsubexpcount(SQRex* exp) SQInteger sqstd_rex_getsubexpcount(SQRex* exp)

View File

@ -22,7 +22,7 @@ static SQInteger validate_format(HSQUIRRELVM v, SQChar *fmt, const SQChar *src,
SQInteger start = n; SQInteger start = n;
fmt[0] = '%'; fmt[0] = '%';
while (scstrchr("-+ #0", src[n])) n++; while (scstrchr("-+ #0", src[n])) n++;
while (scisdigit(src[n])) { while (isdigit(src[n])) {
swidth[wc] = src[n]; swidth[wc] = src[n];
n++; n++;
wc++; wc++;
@ -31,7 +31,7 @@ static SQInteger validate_format(HSQUIRRELVM v, SQChar *fmt, const SQChar *src,
} }
swidth[wc] = '\0'; swidth[wc] = '\0';
if(wc > 0) { if(wc > 0) {
width = scatoi(swidth); width = atoi(swidth);
} }
else else
width = 0; width = 0;
@ -39,7 +39,7 @@ static SQInteger validate_format(HSQUIRRELVM v, SQChar *fmt, const SQChar *src,
n++; n++;
wc = 0; wc = 0;
while (scisdigit(src[n])) { while (isdigit(src[n])) {
swidth[wc] = src[n]; swidth[wc] = src[n];
n++; n++;
wc++; wc++;
@ -48,7 +48,7 @@ static SQInteger validate_format(HSQUIRRELVM v, SQChar *fmt, const SQChar *src,
} }
swidth[wc] = '\0'; swidth[wc] = '\0';
if(wc > 0) { if(wc > 0) {
width += scatoi(swidth); width += atoi(swidth);
} }
} }
if (n-start > MAX_FORMAT_LEN ) if (n-start > MAX_FORMAT_LEN )
@ -69,7 +69,7 @@ static void _append_string(SQInteger &i, SQChar *dest, SQInteger allocated, cons
{ {
va_list va; va_list va;
va_start(va, fmt); va_start(va, fmt);
i += scvsnprintf(&dest[i],allocated-i,fmt,va); i += vsnprintf(&dest[i],allocated-i,fmt,va);
va_end(va); va_end(va);
} }
@ -156,7 +156,7 @@ static SQInteger _string_format(HSQUIRRELVM v)
static void __strip_l(const SQChar *str,const SQChar **start) static void __strip_l(const SQChar *str,const SQChar **start)
{ {
const SQChar *t = str; const SQChar *t = str;
while(((*t) != '\0') && scisspace(*t)){ t++; } while(((*t) != '\0') && isspace(*t)){ t++; }
*start = t; *start = t;
} }
@ -167,7 +167,7 @@ static void __strip_r(const SQChar *str,SQInteger len,const SQChar **end)
return; return;
} }
const SQChar *t = &str[len-1]; const SQChar *t = &str[len-1];
while(t != str && scisspace(*t)) { t--; } while(t != str && isspace(*t)) { t--; }
*end = t+1; *end = t+1;
} }

View File

@ -40,7 +40,7 @@ SQInteger sq_aux_throwobject(HSQUIRRELVM v,SQObjectPtr &e)
SQInteger sq_aux_invalidtype(HSQUIRRELVM v,SQObjectType type) SQInteger sq_aux_invalidtype(HSQUIRRELVM v,SQObjectType type)
{ {
scsprintf(_ss(v)->GetScratchPad(100), "unexpected type %s", IdType2Name(type)); sprintf(_ss(v)->GetScratchPad(100), "unexpected type %s", IdType2Name(type));
return sq_throwerror(v, _ss(v)->GetScratchPad(-1)); return sq_throwerror(v, _ss(v)->GetScratchPad(-1));
} }

View File

@ -19,14 +19,14 @@
bool str2num(const SQChar *s,SQObjectPtr &res) bool str2num(const SQChar *s,SQObjectPtr &res)
{ {
SQChar *end; SQChar *end;
if(scstrstr(s,".")){ if(strstr(s,".")){
SQFloat r = SQFloat(scstrtod(s,&end)); SQFloat r = SQFloat(strtod(s,&end));
if(s == end) return false; if(s == end) return false;
res = r; res = r;
return true; return true;
} }
else{ else{
SQInteger r = SQInteger(scstrtol(s,&end,10)); SQInteger r = SQInteger(strtol(s,&end,10));
if(s == end) return false; if(s == end) return false;
res = r; res = r;
return true; return true;
@ -651,7 +651,7 @@ static SQInteger string_find(HSQUIRRELVM v)
if(((top=sq_gettop(v))>1) && SQ_SUCCEEDED(sq_getstring(v,1,&str)) && SQ_SUCCEEDED(sq_getstring(v,2,&substr))){ if(((top=sq_gettop(v))>1) && SQ_SUCCEEDED(sq_getstring(v,1,&str)) && SQ_SUCCEEDED(sq_getstring(v,2,&substr))){
if(top>2)sq_getinteger(v,3,&start_idx); if(top>2)sq_getinteger(v,3,&start_idx);
if((sq_getsize(v,1)>start_idx) && (start_idx>=0)){ if((sq_getsize(v,1)>start_idx) && (start_idx>=0)){
ret=scstrstr(&str[start_idx],substr); ret=strstr(&str[start_idx],substr);
if(ret){ if(ret){
sq_pushinteger(v,(SQInteger)(ret-str)); sq_pushinteger(v,(SQInteger)(ret-str));
return 1; return 1;

View File

@ -66,7 +66,7 @@ public:
static SQChar temp[256]; static SQChar temp[256];
va_list vl; va_list vl;
va_start(vl, s); va_start(vl, s);
scvsnprintf(temp, sizeof(temp), s, vl); vsnprintf(temp, sizeof(temp), s, vl);
va_end(vl); va_end(vl);
throw temp; throw temp;
} }

View File

@ -60,7 +60,7 @@ void SQVM::Raise_Error(const SQChar *s, ...)
{ {
va_list vl; va_list vl;
va_start(vl, s); va_start(vl, s);
scvsprintf(_sp(rsl((SQInteger)scstrlen(s)+(NUMBER_MAX_CHAR*2))), s, vl); vsprintf(_sp(rsl((SQInteger)strlen(s)+(NUMBER_MAX_CHAR*2))), s, vl);
va_end(vl); va_end(vl);
_lasterror = SQString::Create(_ss(this),_spval,-1); _lasterror = SQString::Create(_ss(this),_spval,-1);
} }
@ -75,11 +75,11 @@ SQString *SQVM::PrintObjVal(const SQObject &o)
switch(type(o)) { switch(type(o)) {
case OT_STRING: return _string(o); case OT_STRING: return _string(o);
case OT_INTEGER: case OT_INTEGER:
scsprintf(_sp(rsl(NUMBER_MAX_CHAR+1)), SQ_PRINTF64, _integer(o)); sprintf(_sp(rsl(NUMBER_MAX_CHAR+1)), SQ_PRINTF64, _integer(o));
return SQString::Create(_ss(this), _spval); return SQString::Create(_ss(this), _spval);
break; break;
case OT_FLOAT: case OT_FLOAT:
scsprintf(_sp(rsl(NUMBER_MAX_CHAR+1)), "%.14g", _float(o)); sprintf(_sp(rsl(NUMBER_MAX_CHAR+1)), "%.14g", _float(o));
return SQString::Create(_ss(this), _spval); return SQString::Create(_ss(this), _spval);
break; break;
default: default:

View File

@ -78,11 +78,11 @@ SQInstructionDesc g_InstrDesc[]={
void DumpLiteral(SQObjectPtr &o) void DumpLiteral(SQObjectPtr &o)
{ {
switch(type(o)){ switch(type(o)){
case OT_STRING: scprintf("\"%s\"",_stringval(o));break; case OT_STRING: printf("\"%s\"",_stringval(o));break;
case OT_FLOAT: scprintf("{%f}",_float(o));break; case OT_FLOAT: printf("{%f}",_float(o));break;
case OT_INTEGER: scprintf("{" SQ_PRINTF64 "}",_integer(o));break; case OT_INTEGER: printf("{" SQ_PRINTF64 "}",_integer(o));break;
case OT_BOOL: scprintf("%s",_integer(o)?"true":"false");break; case OT_BOOL: printf("%s",_integer(o)?"true":"false");break;
default: scprintf("(%s %p)",GetTypeName(o),(void*)_rawval(o));break; break; //shut up compiler default: printf("(%s %p)",GetTypeName(o),(void*)_rawval(o));break; break; //shut up compiler
} }
} }
@ -115,11 +115,11 @@ void SQFuncState::Dump(SQFunctionProto *func)
{ {
SQUnsignedInteger n=0,i; SQUnsignedInteger n=0,i;
SQInteger si; SQInteger si;
scprintf("SQInstruction sizeof %d\n",sizeof(SQInstruction)); printf("SQInstruction sizeof %d\n",sizeof(SQInstruction));
scprintf("SQObject sizeof %d\n",sizeof(SQObject)); printf("SQObject sizeof %d\n",sizeof(SQObject));
scprintf("--------------------------------------------------------------------\n"); printf("--------------------------------------------------------------------\n");
scprintf("*****FUNCTION [%s]\n",type(func->_name)==OT_STRING?_stringval(func->_name):"unknown"); printf("*****FUNCTION [%s]\n",type(func->_name)==OT_STRING?_stringval(func->_name):"unknown");
scprintf("-----LITERALS\n"); printf("-----LITERALS\n");
SQObjectPtr refidx,key,val; SQObjectPtr refidx,key,val;
SQInteger idx; SQInteger idx;
SQObjectPtrVec templiterals; SQObjectPtrVec templiterals;
@ -129,43 +129,43 @@ void SQFuncState::Dump(SQFunctionProto *func)
templiterals[_integer(val)]=key; templiterals[_integer(val)]=key;
} }
for(i=0;i<templiterals.size();i++){ for(i=0;i<templiterals.size();i++){
scprintf("[%d] ",n); printf("[%d] ",n);
DumpLiteral(templiterals[i]); DumpLiteral(templiterals[i]);
scprintf("\n"); printf("\n");
n++; n++;
} }
scprintf("-----PARAMS\n"); printf("-----PARAMS\n");
if(_varparams) if(_varparams)
scprintf("<<VARPARAMS>>\n"); printf("<<VARPARAMS>>\n");
n=0; n=0;
for(i=0;i<_parameters.size();i++){ for(i=0;i<_parameters.size();i++){
scprintf("[%d] ",n); printf("[%d] ",n);
DumpLiteral(_parameters[i]); DumpLiteral(_parameters[i]);
scprintf("\n"); printf("\n");
n++; n++;
} }
scprintf("-----LOCALS\n"); printf("-----LOCALS\n");
for(si=0;si<func->_nlocalvarinfos;si++){ for(si=0;si<func->_nlocalvarinfos;si++){
SQLocalVarInfo lvi=func->_localvarinfos[si]; SQLocalVarInfo lvi=func->_localvarinfos[si];
scprintf("[%d] %s \t%d %d\n",lvi._pos,_stringval(lvi._name),lvi._start_op,lvi._end_op); printf("[%d] %s \t%d %d\n",lvi._pos,_stringval(lvi._name),lvi._start_op,lvi._end_op);
n++; n++;
} }
scprintf("-----LINE INFO\n"); printf("-----LINE INFO\n");
for(i=0;i<_lineinfos.size();i++){ for(i=0;i<_lineinfos.size();i++){
SQLineInfo li=_lineinfos[i]; SQLineInfo li=_lineinfos[i];
scprintf("op [%d] line [%d] \n",li._op,li._line); printf("op [%d] line [%d] \n",li._op,li._line);
n++; n++;
} }
scprintf("-----dump\n"); printf("-----dump\n");
n=0; n=0;
for(i=0;i<_instructions.size();i++){ for(i=0;i<_instructions.size();i++){
SQInstruction &inst=_instructions[i]; SQInstruction &inst=_instructions[i];
if(inst.op==_OP_LOAD || inst.op==_OP_DLOAD || inst.op==_OP_PREPCALLK || inst.op==_OP_GETK ){ if(inst.op==_OP_LOAD || inst.op==_OP_DLOAD || inst.op==_OP_PREPCALLK || inst.op==_OP_GETK ){
SQInteger lidx = inst._arg1; SQInteger lidx = inst._arg1;
scprintf("[%03d] %15s %d ",n,g_InstrDesc[inst.op].name,inst._arg0); printf("[%03d] %15s %d ",n,g_InstrDesc[inst.op].name,inst._arg0);
if(lidx >= 0xFFFFFFFF) if(lidx >= 0xFFFFFFFF)
scprintf("null"); printf("null");
else { else {
SQInteger refidx; SQInteger refidx;
SQObjectPtr val,key,refo; SQObjectPtr val,key,refo;
@ -175,13 +175,13 @@ void SQFuncState::Dump(SQFunctionProto *func)
DumpLiteral(key); DumpLiteral(key);
} }
if(inst.op != _OP_DLOAD) { if(inst.op != _OP_DLOAD) {
scprintf(" %d %d \n",inst._arg2,inst._arg3); printf(" %d %d \n",inst._arg2,inst._arg3);
} }
else { else {
scprintf(" %d ",inst._arg2); printf(" %d ",inst._arg2);
lidx = inst._arg3; lidx = inst._arg3;
if(lidx >= 0xFFFFFFFF) if(lidx >= 0xFFFFFFFF)
scprintf("null"); printf("null");
else { else {
SQInteger refidx; SQInteger refidx;
SQObjectPtr val,key,refo; SQObjectPtr val,key,refo;
@ -189,23 +189,23 @@ void SQFuncState::Dump(SQFunctionProto *func)
refo = refidx; refo = refidx;
} }
DumpLiteral(key); DumpLiteral(key);
scprintf("\n"); printf("\n");
} }
} }
} }
else if(inst.op==_OP_LOADFLOAT) { else if(inst.op==_OP_LOADFLOAT) {
scprintf("[%03d] %15s %d %f %d %d\n",n,g_InstrDesc[inst.op].name,inst._arg0,*((SQFloat*)&inst._arg1),inst._arg2,inst._arg3); printf("[%03d] %15s %d %f %d %d\n",n,g_InstrDesc[inst.op].name,inst._arg0,*((SQFloat*)&inst._arg1),inst._arg2,inst._arg3);
} }
else if(inst.op==_OP_ARITH){ else if(inst.op==_OP_ARITH){
scprintf("[%03d] %15s %d %d %d %c\n",n,g_InstrDesc[inst.op].name,inst._arg0,inst._arg1,inst._arg2,inst._arg3); printf("[%03d] %15s %d %d %d %c\n",n,g_InstrDesc[inst.op].name,inst._arg0,inst._arg1,inst._arg2,inst._arg3);
} }
else else
scprintf("[%03d] %15s %d %d %d %d\n",n,g_InstrDesc[inst.op].name,inst._arg0,inst._arg1,inst._arg2,inst._arg3); printf("[%03d] %15s %d %d %d %d\n",n,g_InstrDesc[inst.op].name,inst._arg0,inst._arg1,inst._arg2,inst._arg3);
n++; n++;
} }
scprintf("-----\n"); printf("-----\n");
scprintf("stack size[%d]\n",func->_stacksize); printf("stack size[%d]\n",func->_stacksize);
scprintf("--------------------------------------------------------------------\n\n"); printf("--------------------------------------------------------------------\n\n");
} }
#endif #endif

View File

@ -251,17 +251,17 @@ SQInteger SQLexer::Lex()
case SQUIRREL_EOB: case SQUIRREL_EOB:
return 0; return 0;
default:{ default:{
if (scisdigit(CUR_CHAR)) { if (isdigit(CUR_CHAR)) {
SQInteger ret = ReadNumber(); SQInteger ret = ReadNumber();
RETURN_TOKEN(ret); RETURN_TOKEN(ret);
} }
else if (scisalpha(CUR_CHAR) || CUR_CHAR == '_') { else if (isalpha(CUR_CHAR) || CUR_CHAR == '_') {
SQInteger t = ReadID(); SQInteger t = ReadID();
RETURN_TOKEN(t); RETURN_TOKEN(t);
} }
else { else {
SQInteger c = CUR_CHAR; SQInteger c = CUR_CHAR;
if (sciscntrl((int)c)) Error("unexpected character(control)"); if (iscntrl((int)c)) Error("unexpected character(control)");
NEXT(); NEXT();
RETURN_TOKEN(c); RETURN_TOKEN(c);
} }
@ -317,7 +317,7 @@ SQInteger SQLexer::ReadString(LexChar ndelim,bool verbatim)
} }
temp[n] = 0; temp[n] = 0;
SQChar *sTemp; SQChar *sTemp;
APPEND_CHAR((SQChar)scstrtoul(temp,&sTemp,16)); APPEND_CHAR((SQChar)strtoul(temp,&sTemp,16));
} }
break; break;
case 't': APPEND_CHAR('\t'); NEXT(); break; case 't': APPEND_CHAR('\t'); NEXT(); break;
@ -368,8 +368,8 @@ void LexHexadecimal(const SQChar *s,SQUnsignedInteger *res)
*res = 0; *res = 0;
while(*s != 0) while(*s != 0)
{ {
if(scisdigit(*s)) *res = (*res)*16+((*s++)-'0'); if(isdigit(*s)) *res = (*res)*16+((*s++)-'0');
else if(scisxdigit(*s)) *res = (*res)*16+(toupper(*s++)-'A'+10); else if(isxdigit(*s)) *res = (*res)*16+(toupper(*s++)-'A'+10);
else { assert(0); } else { assert(0); }
} }
} }
@ -417,7 +417,7 @@ SQInteger SQLexer::ReadNumber()
APPEND_CHAR(CUR_CHAR); APPEND_CHAR(CUR_CHAR);
NEXT(); NEXT();
} }
if(scisdigit(CUR_CHAR)) Error("invalid octal number"); if(isdigit(CUR_CHAR)) Error("invalid octal number");
} }
else { else {
NEXT(); NEXT();
@ -431,7 +431,7 @@ SQInteger SQLexer::ReadNumber()
} }
else { else {
APPEND_CHAR((int)firstchar); APPEND_CHAR((int)firstchar);
while (CUR_CHAR == '.' || scisdigit(CUR_CHAR) || isexponent(CUR_CHAR)) { while (CUR_CHAR == '.' || isdigit(CUR_CHAR) || isexponent(CUR_CHAR)) {
if(CUR_CHAR == '.' || isexponent(CUR_CHAR)) type = TFLOAT; if(CUR_CHAR == '.' || isexponent(CUR_CHAR)) type = TFLOAT;
if(isexponent(CUR_CHAR)) { if(isexponent(CUR_CHAR)) {
if(type != TFLOAT) Error("invalid numeric format"); if(type != TFLOAT) Error("invalid numeric format");
@ -442,7 +442,7 @@ SQInteger SQLexer::ReadNumber()
APPEND_CHAR(CUR_CHAR); APPEND_CHAR(CUR_CHAR);
NEXT(); NEXT();
} }
if(!scisdigit(CUR_CHAR)) Error("exponent expected"); if(!isdigit(CUR_CHAR)) Error("exponent expected");
} }
APPEND_CHAR(CUR_CHAR); APPEND_CHAR(CUR_CHAR);
@ -453,7 +453,7 @@ SQInteger SQLexer::ReadNumber()
switch(type) { switch(type) {
case TSCIENTIFIC: case TSCIENTIFIC:
case TFLOAT: case TFLOAT:
_fvalue = (SQFloat)scstrtod(&_longstr[0],&sTemp); _fvalue = (SQFloat)strtod(&_longstr[0],&sTemp);
return TK_FLOAT; return TK_FLOAT;
case TINT: case TINT:
LexInteger(&_longstr[0],(SQUnsignedInteger *)&_nvalue); LexInteger(&_longstr[0],(SQUnsignedInteger *)&_nvalue);
@ -475,7 +475,7 @@ SQInteger SQLexer::ReadID()
do { do {
APPEND_CHAR(CUR_CHAR); APPEND_CHAR(CUR_CHAR);
NEXT(); NEXT();
} while(scisalnum(CUR_CHAR) || CUR_CHAR == '_'); } while(isalnum(CUR_CHAR) || CUR_CHAR == '_');
TERMINATE_BUFFER(); TERMINATE_BUFFER();
res = GetIDType(&_longstr[0]); res = GetIDType(&_longstr[0]);
if(res == TK_IDENTIFIER || res == TK_CONSTRUCTOR) { if(res == TK_IDENTIFIER || res == TK_CONSTRUCTOR) {

View File

@ -513,7 +513,7 @@ void SQStringTable::AllocNodes(SQInteger size)
SQString *SQStringTable::Add(const SQChar *news,SQInteger len) SQString *SQStringTable::Add(const SQChar *news,SQInteger len)
{ {
if(len<0) if(len<0)
len = (SQInteger)scstrlen(news); len = (SQInteger)strlen(news);
SQHash h = ::_hashstr(news,(size_t)len)&(_numofslots-1); SQHash h = ::_hashstr(news,(size_t)len)&(_numofslots-1);
SQString *s; SQString *s;
for (s = _strings[h]; s; s = s->_next){ for (s = _strings[h]; s; s = s->_next){

View File

@ -185,7 +185,7 @@ bool SQVM::ObjCmp(const SQObjectPtr &o1,const SQObjectPtr &o2,SQInteger &result)
SQObjectPtr res; SQObjectPtr res;
switch(type(o1)){ switch(type(o1)){
case OT_STRING: case OT_STRING:
_RET_SUCCEED(scstrcmp(_stringval(o1),_stringval(o2))); _RET_SUCCEED(strcmp(_stringval(o1),_stringval(o2)));
case OT_INTEGER: case OT_INTEGER:
/* FS#3954: wrong integer comparison */ /* FS#3954: wrong integer comparison */
_RET_SUCCEED((_integer(o1)<_integer(o2))?-1:(_integer(o1)==_integer(o2))?0:1); _RET_SUCCEED((_integer(o1)<_integer(o2))?-1:(_integer(o1)==_integer(o2))?0:1);
@ -256,13 +256,13 @@ void SQVM::ToString(const SQObjectPtr &o,SQObjectPtr &res)
res = o; res = o;
return; return;
case OT_FLOAT: case OT_FLOAT:
scsprintf(_sp(rsl(NUMBER_MAX_CHAR+1)),"%g",_float(o)); sprintf(_sp(rsl(NUMBER_MAX_CHAR+1)),"%g",_float(o));
break; break;
case OT_INTEGER: case OT_INTEGER:
scsprintf(_sp(rsl(NUMBER_MAX_CHAR+1)),SQ_PRINTF64,_integer(o)); sprintf(_sp(rsl(NUMBER_MAX_CHAR+1)),SQ_PRINTF64,_integer(o));
break; break;
case OT_BOOL: case OT_BOOL:
scsprintf(_sp(rsl(6)),_integer(o)?"true":"false"); sprintf(_sp(rsl(6)),_integer(o)?"true":"false");
break; break;
case OT_TABLE: case OT_TABLE:
case OT_USERDATA: case OT_USERDATA:
@ -276,7 +276,7 @@ void SQVM::ToString(const SQObjectPtr &o,SQObjectPtr &res)
} }
} }
default: default:
scsprintf(_sp(rsl(sizeof(void*)+20)),"(%s : 0x%p)",GetTypeName(o),(void*)_rawval(o)); sprintf(_sp(rsl(sizeof(void*)+20)),"(%s : 0x%p)",GetTypeName(o),(void*)_rawval(o));
} }
res = SQString::Create(_ss(this),_spval); res = SQString::Create(_ss(this),_spval);
} }
@ -735,7 +735,7 @@ exception_restore:
const SQInstruction &_i_ = *ci->_ip++; const SQInstruction &_i_ = *ci->_ip++;
//dumpstack(_stackbase); //dumpstack(_stackbase);
//scprintf("%s %d %d %d %d\n",g_InstrDesc[_i_.op].name,arg0,arg1,arg2,arg3); //printf("%s %d %d %d %d\n",g_InstrDesc[_i_.op].name,arg0,arg1,arg2,arg3);
switch(_i_.op) switch(_i_.op)
{ {
case _OP_LINE: case _OP_LINE:
@ -1554,37 +1554,37 @@ void SQVM::dumpstack(SQInteger stackbase,bool dumpall)
{ {
SQInteger size=dumpall?_stack.size():_top; SQInteger size=dumpall?_stack.size():_top;
SQInteger n=0; SQInteger n=0;
scprintf("\n>>>>stack dump<<<<\n"); printf("\n>>>>stack dump<<<<\n");
CallInfo &ci=_callsstack[_callsstacksize-1]; CallInfo &ci=_callsstack[_callsstacksize-1];
scprintf("IP: %p\n",ci._ip); printf("IP: %p\n",ci._ip);
scprintf("prev stack base: %d\n",ci._prevstkbase); printf("prev stack base: %d\n",ci._prevstkbase);
scprintf("prev top: %d\n",ci._prevtop); printf("prev top: %d\n",ci._prevtop);
for(SQInteger i=0;i<size;i++){ for(SQInteger i=0;i<size;i++){
SQObjectPtr &obj=_stack[i]; SQObjectPtr &obj=_stack[i];
if(stackbase==i)scprintf(">");else scprintf(" "); if(stackbase==i)printf(">");else printf(" ");
scprintf("[%d]:",n); printf("[%d]:",n);
switch(type(obj)){ switch(type(obj)){
case OT_FLOAT: scprintf("FLOAT %.3f",_float(obj));break; case OT_FLOAT: printf("FLOAT %.3f",_float(obj));break;
case OT_INTEGER: scprintf("INTEGER %d",_integer(obj));break; case OT_INTEGER: printf("INTEGER %d",_integer(obj));break;
case OT_BOOL: scprintf("BOOL %s",_integer(obj)?"true":"false");break; case OT_BOOL: printf("BOOL %s",_integer(obj)?"true":"false");break;
case OT_STRING: scprintf("STRING %s",_stringval(obj));break; case OT_STRING: printf("STRING %s",_stringval(obj));break;
case OT_NULL: scprintf("NULL"); break; case OT_NULL: printf("NULL"); break;
case OT_TABLE: scprintf("TABLE %p[%p]",_table(obj),_table(obj)->_delegate);break; case OT_TABLE: printf("TABLE %p[%p]",_table(obj),_table(obj)->_delegate);break;
case OT_ARRAY: scprintf("ARRAY %p",_array(obj));break; case OT_ARRAY: printf("ARRAY %p",_array(obj));break;
case OT_CLOSURE: scprintf("CLOSURE [%p]",_closure(obj));break; case OT_CLOSURE: printf("CLOSURE [%p]",_closure(obj));break;
case OT_NATIVECLOSURE: scprintf("NATIVECLOSURE");break; case OT_NATIVECLOSURE: printf("NATIVECLOSURE");break;
case OT_USERDATA: scprintf("USERDATA %p[%p]",_userdataval(obj),_userdata(obj)->_delegate);break; case OT_USERDATA: printf("USERDATA %p[%p]",_userdataval(obj),_userdata(obj)->_delegate);break;
case OT_GENERATOR: scprintf("GENERATOR %p",_generator(obj));break; case OT_GENERATOR: printf("GENERATOR %p",_generator(obj));break;
case OT_THREAD: scprintf("THREAD [%p]",_thread(obj));break; case OT_THREAD: printf("THREAD [%p]",_thread(obj));break;
case OT_USERPOINTER: scprintf("USERPOINTER %p",_userpointer(obj));break; case OT_USERPOINTER: printf("USERPOINTER %p",_userpointer(obj));break;
case OT_CLASS: scprintf("CLASS %p",_class(obj));break; case OT_CLASS: printf("CLASS %p",_class(obj));break;
case OT_INSTANCE: scprintf("INSTANCE %p",_instance(obj));break; case OT_INSTANCE: printf("INSTANCE %p",_instance(obj));break;
case OT_WEAKREF: scprintf("WEAKERF %p",_weakref(obj));break; case OT_WEAKREF: printf("WEAKERF %p",_weakref(obj));break;
default: default:
assert(0); assert(0);
break; break;
}; };
scprintf("\n"); printf("\n");
++n; ++n;
} }
} }

View File

@ -46,7 +46,7 @@ void Script_CreateDummyInfo(HSQUIRRELVM vm, const char *type, const char *dir)
sq_pushroottable(vm); sq_pushroottable(vm);
/* Load and run the script */ /* Load and run the script */
if (SQ_SUCCEEDED(sq_compilebuffer(vm, sq_dummy_script, scstrlen(sq_dummy_script), "dummy", SQTrue))) { if (SQ_SUCCEEDED(sq_compilebuffer(vm, sq_dummy_script, strlen(sq_dummy_script), "dummy", SQTrue))) {
sq_push(vm, -2); sq_push(vm, -2);
if (SQ_SUCCEEDED(sq_call(vm, 1, SQFalse, SQTrue))) { if (SQ_SUCCEEDED(sq_call(vm, 1, SQFalse, SQTrue))) {
sq_pop(vm, 1); sq_pop(vm, 1);
@ -101,7 +101,7 @@ void Script_CreateDummy(HSQUIRRELVM vm, StringID string, const char *type)
/* And finally we load and run the script */ /* And finally we load and run the script */
sq_pushroottable(vm); sq_pushroottable(vm);
if (SQ_SUCCEEDED(sq_compilebuffer(vm, sq_dummy_script, scstrlen(sq_dummy_script), "dummy", SQTrue))) { if (SQ_SUCCEEDED(sq_compilebuffer(vm, sq_dummy_script, strlen(sq_dummy_script), "dummy", SQTrue))) {
sq_push(vm, -2); sq_push(vm, -2);
if (SQ_SUCCEEDED(sq_call(vm, 1, SQFalse, SQTrue))) { if (SQ_SUCCEEDED(sq_call(vm, 1, SQFalse, SQTrue))) {
sq_pop(vm, 1); sq_pop(vm, 1);

View File

@ -21,7 +21,8 @@
/* Due to the different characters for Squirrel, the scsnprintf might be a simple /* Due to the different characters for Squirrel, the scsnprintf might be a simple
* snprint which triggers the safeguard. But it isn't always a simple snprintf. * snprint which triggers the safeguard. But it isn't always a simple snprintf.
* Likewise for scvsnprintf and scstrcat. */ * Likewise for scvsnprintf and scstrcat.
* TODO: use properly safe functions now that Squirrel uses chars exclusively. */
#include "../safeguards.h" #include "../safeguards.h"
#undef snprintf #undef snprintf
#undef vsnprintf #undef vsnprintf
@ -50,13 +51,13 @@ void Squirrel::ErrorPrintFunc(HSQUIRRELVM vm, const SQChar *s, ...)
SQChar buf[1024]; SQChar buf[1024];
va_start(arglist, s); va_start(arglist, s);
scvsnprintf(buf, lengthof(buf), s, arglist); vsnprintf(buf, lengthof(buf), s, arglist);
va_end(arglist); va_end(arglist);
/* Check if we have a custom print function */ /* Check if we have a custom print function */
SQPrintFunc *func = ((Squirrel *)sq_getforeignptr(vm))->print_func; SQPrintFunc *func = ((Squirrel *)sq_getforeignptr(vm))->print_func;
if (func == NULL) { if (func == NULL) {
scfprintf(stderr, "%s", buf); fprintf(stderr, "%s", buf);
} else { } else {
(*func)(true, buf); (*func)(true, buf);
} }
@ -74,7 +75,7 @@ void Squirrel::RunError(HSQUIRRELVM vm, const SQChar *error)
Squirrel *engine = (Squirrel *)sq_getforeignptr(vm); Squirrel *engine = (Squirrel *)sq_getforeignptr(vm);
SQPrintFunc *func = engine->print_func; SQPrintFunc *func = engine->print_func;
if (func == NULL) { if (func == NULL) {
scfprintf(stderr, "%s", buf); fprintf(stderr, "%s", buf);
} else { } else {
(*func)(true, buf); (*func)(true, buf);
} }
@ -106,14 +107,14 @@ void Squirrel::PrintFunc(HSQUIRRELVM vm, const SQChar *s, ...)
SQChar buf[1024]; SQChar buf[1024];
va_start(arglist, s); va_start(arglist, s);
scvsnprintf(buf, lengthof(buf) - 2, s, arglist); vsnprintf(buf, lengthof(buf) - 2, s, arglist);
va_end(arglist); va_end(arglist);
scstrcat(buf, "\n"); strcat(buf, "\n");
/* Check if we have a custom print function */ /* Check if we have a custom print function */
SQPrintFunc *func = ((Squirrel *)sq_getforeignptr(vm))->print_func; SQPrintFunc *func = ((Squirrel *)sq_getforeignptr(vm))->print_func;
if (func == NULL) { if (func == NULL) {
scprintf("%s", buf); printf("%s", buf);
} else { } else {
(*func)(false, buf); (*func)(false, buf);
} }

View File

@ -19,7 +19,8 @@
#include "../string_func.h" #include "../string_func.h"
/* Due to the different characters for Squirrel, the scstrcat might be a simple /* Due to the different characters for Squirrel, the scstrcat might be a simple
* strcat which triggers the safeguard. But it isn't always a simple strcat. */ * strcat which triggers the safeguard. But it isn't always a simple strcat.
* TODO: use properly safe functions now that Squirrel uses chars exclusively. */
#include "../safeguards.h" #include "../safeguards.h"
#undef strcat #undef strcat
#undef strdup #undef strdup
@ -60,9 +61,9 @@ SQInteger SquirrelStd::require(HSQUIRRELVM vm)
DEBUG(misc, 0, "[squirrel] Couldn't detect the script-name of the 'require'-caller; this should never happen!"); DEBUG(misc, 0, "[squirrel] Couldn't detect the script-name of the 'require'-caller; this should never happen!");
return SQ_ERROR; return SQ_ERROR;
} }
real_filename = scstrdup(si.source); real_filename = strdup(si.source);
/* Keep the dir, remove the rest */ /* Keep the dir, remove the rest */
SQChar *s = scstrrchr(real_filename, PATHSEPCHAR); SQChar *s = strrchr(real_filename, PATHSEPCHAR);
if (s != NULL) { if (s != NULL) {
/* Keep the PATHSEPCHAR there, remove the rest */ /* Keep the PATHSEPCHAR there, remove the rest */
s++; s++;
@ -70,8 +71,8 @@ SQInteger SquirrelStd::require(HSQUIRRELVM vm)
} }
/* And now we concat, so we are relative from the current script /* And now we concat, so we are relative from the current script
* First, we have to make sure we have enough space for the full path */ * First, we have to make sure we have enough space for the full path */
real_filename = ReallocT(real_filename, scstrlen(real_filename) + scstrlen(filename) + 1); real_filename = ReallocT(real_filename, strlen(real_filename) + strlen(filename) + 1);
scstrcat(real_filename, filename); strcat(real_filename, filename);
/* Tars dislike opening files with '/' on Windows.. so convert it to '\\' ;) */ /* Tars dislike opening files with '/' on Windows.. so convert it to '\\' ;) */
char *filen = stredup(real_filename); char *filen = stredup(real_filename);
#if (PATHSEPCHAR != '/') #if (PATHSEPCHAR != '/')