in cScript.cpp on or about 420
Code: Select all
char *lwrSpeech = new char[strlen(speech)+1];
strcpy( lwrSpeech, speech );
strlwr( lwrSpeech );
Code: Select all
UString lwrSpeech = speech ;
Code: Select all
strSpeech = JS_NewStringCopyZ( targContext,lwrSpeech);
Code: Select all
strSpeech = JS_NewStringCopyZ( targContext, lwrSpeech.lower().c_str() );
Code: Select all
delete[] lwrSpeech;
On our about line 2227 do something simlar
Code: Select all
char *lwrSpeech = new char[strlen(mySpeech)+1];
strcpy( lwrSpeech, mySpeech );
strlwr( lwrSpeech );
strSpeech = JS_NewStringCopyZ( targContext, lwrSpeech );
Code: Select all
UString lwrSpeech = mySpeech;
strSpeech = JS_NewStringCopyZ(targContext,lwrSpeech.lower().c_str());
Code: Select all
delete lwrSpeech ;
Now in UOXJSMethods.cpp
line 3715
Code: Select all
char *mode = JS_GetStringBytes( JS_ValueToString( cx, argv[1] ) );
strlwr( mode );
if( mode[0] != 'r' && mode[0] != 'w' && mode[0] != 'a' )
{
MethodError( "Open: Invalid mode must be \"read\", \"write\", or \"append\"!" );
return JS_FALSE;
}
if( strstr( filename, ".." ) || strstr( filename, "\\" ) || strstr( filename, "/" ) )
{
MethodError( "Open: file names may not contain \"..\", \"\\\", or \"/\"." );
return JS_FALSE;
}
mode[1] = 0;
mFile->mWrap = fopen( filename, mode );
Code: Select all
UString mode = JS_GetStringBytes( JS_ValueToString( cx, argv[1] ) );
if (mode.lower().find_first_of("rwa",0,1) == std::string::npos)
{
MethodError( "Open: Invalid mode must be \"read\", \"write\", or \"append\"!" );
return JS_FALSE;
}
if( strstr( filename, ".." ) || strstr( filename, "\\" ) || strstr( filename, "/" ) )
{
MethodError( "Open: file names may not contain \"..\", \"\\\", or \"/\"." );
return JS_FALSE;
}
mFile->mWrap = fopen( filename, mode.lower().substr(0,1).c_str() );
Ok, now to get rid of strupr
in speech.cpp
line 47
Code: Select all
strupr( langCode ); // Convert to uppercase
UnicodeTypes cLang = s->Language();
if( LanguageCodes[cLang] != langCode )
{
UnicodeTypes newLang = FindLanguage( langCode );
if( newLang == TOTAL_LANGUAGES )
Console.Error( 0, "Unknown language type \"%s\". PLEASE report this on www.sourceforge.net/projects/uox3 in the bugtracker!", langCode );
else
s->Language( newLang );
}
becomes
Code: Select all
UString ulangCode = langCode ;
ulangCode = ulangCode.upper();
UnicodeTypes cLang = s->Language();
if( LanguageCodes[cLang] != ulangCode.c_str() )
{
UnicodeTypes newLang = FindLanguage( ulangCode.c_str() );
if( newLang == TOTAL_LANGUAGES )
Console.Error( 0, "Unknown language type \"%s\". PLEASE report this on www.sourceforge.net/projects/uox3 in the bugtracker!", ulangCode.c_str() );
else
s->Language( newLang );
}
Now in speech.cpp as well around line 28 change this line
Code: Select all
UnicodeTypes FindLanguage( char *lang )
Code: Select all
UnicodeTypes FindLanguage(char *lang )
Code: Select all
UnicodeTypes FindLanguage( const char *lang );
Code: Select all
UnicodeTypes FindLanguage( const char *lang );
Ok, now in globals.cpp delete the bottom where strlwr and strupr where defined, and in Platform.h whre they where prototyped.