From b1bd1067032c51a8d88818488c924c82a8678454 Mon Sep 17 00:00:00 2001 From: rubidium Date: Mon, 18 Jan 2010 15:41:38 +0000 Subject: (svn r18862) -Fix [FS#3544]: don't pass AI strings through iconv --- src/script/squirrel.cpp | 24 ++++++++++++------------ src/script/squirrel.hpp | 4 ++-- src/script/squirrel_helper.hpp | 10 +++++----- src/script/squirrel_std.cpp | 2 +- 4 files changed, 20 insertions(+), 20 deletions(-) (limited to 'src/script') diff --git a/src/script/squirrel.cpp b/src/script/squirrel.cpp index 090df3304..dea7c6232 100644 --- a/src/script/squirrel.cpp +++ b/src/script/squirrel.cpp @@ -118,7 +118,7 @@ void Squirrel::PrintFunc(HSQUIRRELVM vm, const SQChar *s, ...) void Squirrel::AddMethod(const char *method_name, SQFUNCTION proc, uint nparam, const char *params, void *userdata, int size) { - sq_pushstring(this->vm, OTTD2FS(method_name), -1); + sq_pushstring(this->vm, OTTD2SQ(method_name), -1); if (size != 0) { void *ptr = sq_newuserdata(vm, size); @@ -126,21 +126,21 @@ void Squirrel::AddMethod(const char *method_name, SQFUNCTION proc, uint nparam, } sq_newclosure(this->vm, proc, size != 0 ? 1 : 0); - if (nparam != 0) sq_setparamscheck(this->vm, nparam, OTTD2FS(params)); - sq_setnativeclosurename(this->vm, -1, OTTD2FS(method_name)); + if (nparam != 0) sq_setparamscheck(this->vm, nparam, OTTD2SQ(params)); + sq_setnativeclosurename(this->vm, -1, OTTD2SQ(method_name)); sq_newslot(this->vm, -3, SQFalse); } void Squirrel::AddConst(const char *var_name, int value) { - sq_pushstring(this->vm, OTTD2FS(var_name), -1); + sq_pushstring(this->vm, OTTD2SQ(var_name), -1); sq_pushinteger(this->vm, value); sq_newslot(this->vm, -3, SQTrue); } void Squirrel::AddConst(const char *var_name, bool value) { - sq_pushstring(this->vm, OTTD2FS(var_name), -1); + sq_pushstring(this->vm, OTTD2SQ(var_name), -1); sq_pushbool(this->vm, value); sq_newslot(this->vm, -3, SQTrue); } @@ -148,15 +148,15 @@ void Squirrel::AddConst(const char *var_name, bool value) void Squirrel::AddClassBegin(const char *class_name) { sq_pushroottable(this->vm); - sq_pushstring(this->vm, OTTD2FS(class_name), -1); + sq_pushstring(this->vm, OTTD2SQ(class_name), -1); sq_newclass(this->vm, SQFalse); } void Squirrel::AddClassBegin(const char *class_name, const char *parent_class) { sq_pushroottable(this->vm); - sq_pushstring(this->vm, OTTD2FS(class_name), -1); - sq_pushstring(this->vm, OTTD2FS(parent_class), -1); + sq_pushstring(this->vm, OTTD2SQ(class_name), -1); + sq_pushstring(this->vm, OTTD2SQ(parent_class), -1); if (SQ_FAILED(sq_get(this->vm, -3))) { DEBUG(misc, 0, "[squirrel] Failed to initialize class '%s' based on parent class '%s'", class_name, parent_class); DEBUG(misc, 0, "[squirrel] Make sure that '%s' exists before trying to define '%s'", parent_class, class_name); @@ -178,7 +178,7 @@ bool Squirrel::MethodExists(HSQOBJECT instance, const char *method_name) /* Go to the instance-root */ sq_pushobject(this->vm, instance); /* Find the function-name inside the script */ - sq_pushstring(this->vm, OTTD2FS(method_name), -1); + sq_pushstring(this->vm, OTTD2SQ(method_name), -1); if (SQ_FAILED(sq_get(this->vm, -2))) { sq_settop(this->vm, top); return false; @@ -217,7 +217,7 @@ bool Squirrel::CallMethod(HSQOBJECT instance, const char *method_name, HSQOBJECT /* Go to the instance-root */ sq_pushobject(this->vm, instance); /* Find the function-name inside the script */ - sq_pushstring(this->vm, OTTD2FS(method_name), -1); + sq_pushstring(this->vm, OTTD2SQ(method_name), -1); if (SQ_FAILED(sq_get(this->vm, -2))) { DEBUG(misc, 0, "[squirrel] Could not find '%s' in the class", method_name); sq_settop(this->vm, top); @@ -269,7 +269,7 @@ bool Squirrel::CallBoolMethod(HSQOBJECT instance, const char *method_name, bool /* First, find the class */ sq_pushroottable(vm); - sq_pushstring(vm, OTTD2FS(class_name), -1); + sq_pushstring(vm, OTTD2SQ(class_name), -1); if (SQ_FAILED(sq_get(vm, -2))) { DEBUG(misc, 0, "[squirrel] Failed to find class by the name '%s'", class_name); sq_settop(vm, oldtop); @@ -455,7 +455,7 @@ static SQInteger _io_file_read(SQUserPointer file, SQUserPointer buf, SQInteger default: func = _io_file_lexfeed_ASCII; fseek(file, -2, SEEK_CUR); break; // ASCII } - if (SQ_SUCCEEDED(sq_compile(vm, func, &f, OTTD2FS(filename), printerror))) { + if (SQ_SUCCEEDED(sq_compile(vm, func, &f, OTTD2SQ(filename), printerror))) { FioFCloseFile(file); return SQ_OK; } diff --git a/src/script/squirrel.hpp b/src/script/squirrel.hpp index 7d8e05dad..43aaa11fa 100644 --- a/src/script/squirrel.hpp +++ b/src/script/squirrel.hpp @@ -175,7 +175,7 @@ public: /** * Convert a Squirrel-object to a string. */ - static const char *ObjectToString(HSQOBJECT *ptr) { return FS2OTTD(sq_objtostring(ptr)); } + static const char *ObjectToString(HSQOBJECT *ptr) { return SQ2OTTD(sq_objtostring(ptr)); } /** * Convert a Squirrel-object to an integer. @@ -206,7 +206,7 @@ public: /** * Throw a Squirrel error that will be nicely displayed to the user. */ - void ThrowError(const char *error) { sq_throwerror(this->vm, OTTD2FS(error)); } + void ThrowError(const char *error) { sq_throwerror(this->vm, OTTD2SQ(error)); } /** * Release a SQ object. diff --git a/src/script/squirrel_helper.hpp b/src/script/squirrel_helper.hpp index 61b8f1a18..67f8a21ce 100644 --- a/src/script/squirrel_helper.hpp +++ b/src/script/squirrel_helper.hpp @@ -87,8 +87,8 @@ namespace SQConvert { template <> inline int Return (HSQUIRRELVM vm, int64 res) { sq_pushinteger(vm, ClampToI32(res)); return 1; } template <> inline int Return (HSQUIRRELVM vm, Money res) { sq_pushinteger(vm, ClampToI32(res)); return 1; } template <> inline int Return (HSQUIRRELVM vm, bool res) { sq_pushbool (vm, res); return 1; } - template <> inline int Return (HSQUIRRELVM vm, char *res) { if (res == NULL) sq_pushnull(vm); else { sq_pushstring(vm, OTTD2FS(res), -1); free(res); } return 1; } - template <> inline int Return(HSQUIRRELVM vm, const char *res) { if (res == NULL) sq_pushnull(vm); else { sq_pushstring(vm, OTTD2FS(res), -1); } return 1; } + template <> inline int Return (HSQUIRRELVM vm, char *res) { if (res == NULL) sq_pushnull(vm); else { sq_pushstring(vm, OTTD2SQ(res), -1); free(res); } return 1; } + template <> inline int Return(HSQUIRRELVM vm, const char *res) { if (res == NULL) sq_pushnull(vm); else { sq_pushstring(vm, OTTD2SQ(res), -1); } return 1; } template <> inline int Return (HSQUIRRELVM vm, void *res) { sq_pushuserpointer(vm, res); return 1; } /** @@ -109,7 +109,7 @@ namespace SQConvert { sq_tostring(vm, index); const SQChar *tmp; sq_getstring(vm, -1, &tmp); - char *tmp_str = strdup(FS2OTTD(tmp)); + char *tmp_str = strdup(SQ2OTTD(tmp)); sq_poptop(vm); *ptr->Append() = (void *)tmp_str; str_validate(tmp_str, tmp_str + strlen(tmp_str)); @@ -763,7 +763,7 @@ namespace SQConvert { /* Protect against calls to a non-static method in a static way */ sq_pushroottable(vm); - sq_pushstring(vm, OTTD2FS(Tcls::GetClassName()), -1); + sq_pushstring(vm, OTTD2SQ(Tcls::GetClassName()), -1); sq_get(vm, -2); sq_pushobject(vm, instance); if (sq_instanceof(vm) != SQTrue) return sq_throwerror(vm, _SC("class method is non-static")); @@ -805,7 +805,7 @@ namespace SQConvert { /* Protect against calls to a non-static method in a static way */ sq_pushroottable(vm); - sq_pushstring(vm, OTTD2FS(Tcls::GetClassName()), -1); + sq_pushstring(vm, OTTD2SQ(Tcls::GetClassName()), -1); sq_get(vm, -2); sq_pushobject(vm, instance); if (sq_instanceof(vm) != SQTrue) return sq_throwerror(vm, _SC("class method is non-static")); diff --git a/src/script/squirrel_std.cpp b/src/script/squirrel_std.cpp index f831231d8..a95020fcc 100644 --- a/src/script/squirrel_std.cpp +++ b/src/script/squirrel_std.cpp @@ -67,7 +67,7 @@ SQInteger SquirrelStd::require(HSQUIRRELVM vm) real_filename = ReallocT(real_filename, scstrlen(real_filename) + scstrlen(filename) + 1); scstrcat(real_filename, filename); /* Tars dislike opening files with '/' on Windows.. so convert it to '\\' ;) */ - char *filen = strdup(FS2OTTD(real_filename)); + char *filen = strdup(SQ2OTTD(real_filename)); #if (PATHSEPCHAR != '/') for (char *n = filen; *n != '\0'; n++) if (*n == '/') *n = PATHSEPCHAR; #endif -- cgit v1.2.3-70-g09d2