bool VpeMain::execute( const WString& cmd ) { if( _config->debug() && !confirm( "Starting '%s'", cmd ) ) { return( false ); } startWait(); size_t icount = strlen( cmd ); for( size_t i = 0; i < icount; ) { WString cbuff; while( isspace( cmd[i] ) ) i++; for( ; i < icount; ) { char ch = cmd[i]; i++; if( ch == '\n' || ch == '\r' ) break; cbuff.concat( ch ); } if( cbuff.size() > 0 ) { if( strnicmp( cbuff, "!Error ", 7 ) == 0 ) { WString msg; for( size_t i = 7; i < cbuff.size() && cbuff[i] != '$'; i++ ) { msg.concat( cbuff[i] ); } WMessageDialog::messagef( this, MsgError, MsgOk, _viperError, msg ); return( false ); } else { if( !executeOne( cbuff ) ) { return( false ); } } } } return( true ); }
size_t SDLPlatform::getShortPathName( const WString & _path, WChar * _short, size_t _len ) const { size_t pathSize = _path.size(); if( _len == pathSize ) { wcscpy( _short, _path.c_str() ); } return _path.size(); }
void CWebView::ConvertURL ( const CefString& url, SString& convertedURL ) { CefURLParts urlParts; if ( !CefParseURL ( url, urlParts ) ) { convertedURL = ""; return; } WString scheme = urlParts.scheme.str; if ( scheme == L"http" || scheme == L"https" ) { convertedURL = UTF16ToMbUTF8 ( urlParts.spec.str ); } else { // Get the file name (charsequence after last /) WString tempStr = urlParts.path.str; size_t pos = tempStr.find_last_of ( L"/" ); if ( pos != std::wstring::npos && pos < tempStr.size () ) convertedURL = UTF16ToMbUTF8 ( tempStr.SubStr ( pos + 1 ) ); else convertedURL = ""; } }
void MWorkFile::dump( WFile& fil ) { MRule* rule = _item->rule(); WString& mask = _component->mask(); fil.printf( "#%FP", this ); fil.printf( ", %s:%s", (const char*)mask, (const char*)rule->tag() ); fil.printf( ", %s", (const char*)*this ); WString n; int icount = _states.count(); if( icount > 0 ) { bool first = TRUE; for( int i=0; i<icount; i++ ) { MState* st = (MState*)_states[i]; WString temp; st->sw()->getText( temp, st ); if( temp.size() > 0 ) { if( first ) n.concat( " (" ); if( !first ) n.concat( ' ' ); n.concat( temp ); first = FALSE; } } if( !first ) n.concat( ')' ); } fil.printf( " %s\n", (const char*)n ); }
MSwitch* WEXPORT MFamily::findSwitch( MTool *tool, WString& switchtag, long fixed_version ) { // // Open Watcom IDE configuration/project files are buggy // There are many switch ID's which were changed by incompatible way // IDE uses various hacks to fix it later instead of proper solution // It is very hard to detect what was broken in each OW version because // there vere no change to version number of project files // #if CUR_CFG_VERSION < 5 tool = tool; #endif int icount = _switches.count(); bool isSetable = ( switchtag.size() > MASK_SIZE && switchtag[MASK_SIZE] != ' ' ); if( fixed_version == 0 || !isSetable ) { for( int i = 0; i < icount; i++ ) { MSwitch* sw = (MSwitch*)_switches[i]; if( sw->isTagEqual( switchtag ) ) { return( sw ); } } } else { for( int i = 0; i < icount; i++ ) { MSwitch* sw = (MSwitch*)_switches[i]; if( !sw->isSetable() ) continue; #if CUR_CFG_VERSION > 4 // upgrade switchtag to current configuration files version if( _config->version() > 4 || fixed_version < 41 ) { // check for old text if( sw->isTagEqual( tool, switchtag, 1 ) ) { sw->getTag( switchtag ); return( sw ); } // check for current text if( sw->isTagEqual( tool, switchtag ) ) { sw->getTag( switchtag ); return( sw ); } continue; } #endif if( sw->isTagEqual( switchtag ) ) { return( sw ); } // // hack for buggy version of configuration/project files // if( _config->version() == 4 || fixed_version == 40 ) { if( sw->isTagEqual( switchtag, 1 ) ) { // upgrade switchtag to current configuration files version sw->getTag( switchtag ); return( sw ); } } } } return( NULL ); }
String w2l(const WString& wstr) { return w2l(wstr.c_str(), wstr.size()); #if 0 size_t len = wstr.size(); String result; result.resize(len * AX_MB_LEN_MAX); size_t count = wcstombs(&result[0], &wstr[0], result.size()); AX_ASSERT(count <= result.size()); result.resize(count); return result; #endif }
String w2u(const WString& wstr) { return w2u(wstr.c_str(), wstr.size()); #if 0 size_t len = wstr.size(); String result; result.resize(len * AX_UTF8_LEN_MAX); if (sizeof(wchar_t) == sizeof(UTF16)) { const UTF16* srcstart = (UTF16*)&wstr[0]; const UTF16* srcend = srcstart + len; UTF8* dststart = (UTF8*)&result[0]; UTF8* dstend = dststart + result.size(); ConversionResult cr = ConvertUTF16toUTF8(&srcstart, srcend, &dststart, dstend, strictConversion); result.resize(dststart - (UTF8*)&result[0]); } return result; #endif }
MTool::MTool( WTokenFile& fil, WString& tok ) { fil.token( _tag ); fil.token( _name ); fil.token( tok ); for(;;) { if( tok == "Family" ) { _families.add( new MFamily( fil, tok ) ); } else if( tok == "IncludeTool" ) { MTool* tool = _config->findTool( fil.token( tok ) ); if( tool != NULL ) { _incTools.add( tool ); } fil.token( tok ); #if CUR_CFG_VERSION > 4 } else if( _config->version() > 4 && tok == "SwitchText" ) { WString id; fil.token( id ); fil.token( tok ); if( tok.size() > 0 ) { _switchesTexts.setThis( new WString( tok ), new WString( id ) ); } // define map "text -> id" for older versions of project files while( !fil.eol() ) { fil.token( tok ); if( tok.size() > 0 ) { // define new switch text for map _switchesIds.setThis( new WString( id ), new WString( tok ) ); } } fil.token( tok ); #endif } else if( tok == "Help" ) { fil.token( _help ); fil.token( tok ); } else if( tok == "rem" ) { fil.flushLine( tok ); fil.token( tok ); } else { break; } } }
void MConfig::kludgeMask( WString& str ) { if( _kludge ) { WString temp; for( size_t i=0; i<str.size(); i++ ) { temp.concat( str[i] ); if( _kludge == 3 && i == 0 ) temp.concat( '?' ); if( _version > 1 && _kludge == 3 && i == 2 ) temp.concat( '?' ); if( _version > 1 && _kludge == 4 && i == 3 ) temp.concat( '?' ); } str = temp; } }
//----------------------------------------------------------------------- String UnicodeFileSystemArchive::toString( const WString& _wstring ) const { if(sizeof(String::value_type) == sizeof(WString::value_type)) { return reinterpret_cast<const String&>(_wstring); } else { CodepageConverter::ByteBuffer buf( (const uint8*) _wstring.c_str(), _wstring.size() * 2); String string; mUtf16Converter->bufferToUnicode(string, buf); return string; } }
void GUIStatusBar::setProject(const WString& name, bool modified) { WStringStream content; content << L"Project: "; if (name.size() > 20) content << name.substr(0, 20) << L"..."; else content << name; if (modified) content << L"*"; mProject->setContent(HString(content.str())); }
void GUIStatusBar::setScene(const WString& name, bool modified) { WStringStream content; content << L"Scene: "; if (name.size() > 15) content << name.substr(0, 15) << L"..."; else content << name; if (modified) content << L"*"; mScene->setContent(HString(content.str())); }
void MProject::insertBlanks( WString& s ) { WString ss; bool lineStart = true; for( size_t i=0; i<s.size(); i++ ) { if( lineStart && s[i] != ' ' && s[i] != '!' ) { ss.concat( ' ' ); } ss.concat( s[i] ); if( s[i] == '\n' ) { lineStart = true; } else { lineStart = false; } } s = ss; }
void VMsgLog::runCmd( WString &cmd ) { static char buff[MAX_BUFF+1]; addLine( cmd ); blength = 0; buffer[blength] = '\0'; if( !_batserv ) { #ifdef __WINDOWS__ VxDPut( cmd.gets(), cmd.size() + 1 ); for(;;) { int len = VxDGet( buff, MAX_BUFF ); buff[len] = '\0'; if( streq( buff, TERMINATE_COMMAND_STR ) ) { break; } else if( len > 0 ) { scanLine( buff, len ); } } #endif } else { unsigned maxlen; maxlen = BatchMaxCmdLine(); cmd.truncate( maxlen ); BatchSpawn( cmd ); for( ;; ) { WSystemService::sysYield(); //allow other tasks to run unsigned long stat; int len = BatchCollect( buff, MAX_BUFF, &stat ); if( len < 0 ) { break; } else if( len > 0 ) { scanLine( buff, len ); } } } if( strlen( buffer ) > 0 ) { addLine( buffer ); } }
void VMsgLog::doRun() { _running = TRUE; if( isIconic() ) { show( WWinStateShowNormal ); } else { show(); } setFocus(); _batcher->setFocus(); if( _cwd.size() > 0 ) { WString c( "cd " ); c.concat( _cwd ); lastCD = ""; if( !_batserv ) { runCmd( c ); } else { addLine( c ); BatchChdir( _cwd ); } } int icount = _command.size(); for( int i=0; i<icount; ) { WString cbuff; for( ;i<icount; ) { char ch = _command[i++]; if( ch == '\n' ) break; cbuff.concat( ch ); } if( cbuff.size() > 0 ) { runCmd( cbuff ); } } addLine( "Execution complete" ); _running = FALSE; _parent->quickRefresh(); }
void QueryConfig::okButton( WWindow * ) //------------------------------------- { WString str; _symName->getCommand( str ); if( str.size() > 0 ) { WString * addStr = new WString( str ); if( !_searchStrings->find( addStr ) ) { _searchStrings->insertAt( 0, addStr ); } } WBRWinBase::optManager()->setIgnoreCase( !_matchCase->checked() ); WBRWinBase::optManager()->setWholeWord( _wholeWord->checked() ); WBRWinBase::optManager()->setUseRX(_useRX->checked() ); _filter->setName( str.gets() ); // setName _after_ options set! // NYI -- file stuff quit( TRUE ); }
void MConfig::configProject( WTokenFile& fil, WString& tok ) { WString target_os( "" ); fil.token( tok ); for(;;) { if( tok == "Editor" ) { // just ignore this and set things to the defaults // read all the stuff fil.flushLine( tok ); fil.token( tok ); } else if( tok == "Browse" ) { fil.token( _browseMerge ); expandMacroes( _browseMerge ); fil.token( _browse ); expandMacroes( _browse ); fil.token( tok ); } else if( tok == "HelpFile" ) { fil.token( _helpFile ); fil.token( tok ); } else if( tok == "HtmlHelpFile" ) { fil.token( _htmlHelpFile ); fil.token( tok ); } else if( tok == "TargetGroup" ) { fil.token( target_os ); fil.token( tok ); } else if( tok == "Target" ) { _targets.add( new MTarget( fil, tok, target_os ) ); } else if( tok == "ToolItem" ) { _toolItems.add( new MToolItem( fil, tok ) ); } else if( tok == "Action" ) { _actions.add( new MAction( fil, tok ) ); } else if( tok == "HelpAction" ) { _helpactions.add( new MAction( fil, tok ) ); } else if( tok == "Before" ) { fil.token( tok ); while( tok == "Command" ) { _before.concat( fil.token( tok ) ); _before.concat( "\n" ); fil.token( tok ); } } else if( tok == "After" ) { fil.token( tok ); while( tok == "Command" ) { _after.concat( fil.token( tok ) ); _after.concat( "\n" ); } } else if( tok == "Filter" ) { fil.token( tok ); size_t size = _fileFilterSize; for( int i=0; i<2; i++ ) { _fileFilters = REALLOC( _fileFilters, size + (tok.size() + 1) + 1 ); if( _fileFilters ) { strcpy( &_fileFilters[size], tok ); size += tok.size() + 1; _fileFilters[size] = '\0'; } fil.token( tok ); } _fileFilterSize = size; } else if( tok == "rem" ) { fil.flushLine( tok ); fil.token( tok ); } else { break; } } }
HDDEDATA WEXPORT WServer::xtRequest( UINT fmt, HSZ /*htopic*/, HSZ hitem ) { /**************************************************************************/ HDDEDATA hdata = NULL; if( (_owner != NULL) && (_notify != NULL) ) { int len = (int)DdeQueryString( _procid, hitem, (LPSTR)NULL, 0L, CP_WINANSI ); char *request = new char [len + 1]; DdeQueryString( _procid, hitem, request, len + 1, CP_WINANSI ); WString *reply = (_owner->*_notify)( request ); if( reply != NULL ) { hdata = DdeCreateDataHandle( _procid, (unsigned char *)(const char *)*reply, (DWORD)( reply->size() + 1 ), 0, hitem, fmt, false ); delete reply; } delete[] request; return( hdata ); } return( NULL ); }