int PNS_TOPOLOGY::MatchDpSuffix( wxString aNetName, wxString& aComplementNet, wxString& aBaseDpName ) { int rv = 0; if( aNetName.EndsWith( "+" ) ) { aComplementNet = "-"; rv = 1; } else if( aNetName.EndsWith( "_P" ) ) { aComplementNet = "_N"; rv = 1; } else if( aNetName.EndsWith( "-" ) ) { aComplementNet = "+"; rv = -1; } else if( aNetName.EndsWith( "_N" ) ) { aComplementNet = "_P"; rv = -1; } if( rv != 0 ) { aBaseDpName = aNetName.Left( aNetName.Length() - aComplementNet.Length() ); aComplementNet = aBaseDpName + aComplementNet; } return rv; }
int PCBNEW_PAIRING_RESOLVER::MatchDpSuffix(wxString aNetName, wxString &aComplementNet, wxString &aBaseDpName) const { int rv = 0; if( aNetName.EndsWith( "+" ) ) { aComplementNet = "-"; rv = 1; } else if( aNetName.EndsWith( "_P" ) ) { aComplementNet = "_N"; rv = 1; } else if( aNetName.EndsWith( "-" ) ) { aComplementNet = "+"; rv = -1; } else if( aNetName.EndsWith( "_N" ) ) { aComplementNet = "_P"; rv = -1; } if( rv != 0 ) { aBaseDpName = aNetName.Left( aNetName.Length() - aComplementNet.Length() ); aComplementNet = aBaseDpName + aComplementNet; } return rv; }
int PNS_DIFF_PAIR_PLACER::matchDpSuffix( wxString aNetName, wxString& aComplementNet, wxString& aBaseDpName ) { int rv = 0; if( aNetName.EndsWith( "+" ) ) { aComplementNet = "-"; rv = 1; } else if( aNetName.EndsWith( "_P" ) ) { aComplementNet = "_N"; rv = 1; } else if( aNetName.EndsWith( "-" ) ) { aComplementNet = "+"; rv = -1; } else if( aNetName.EndsWith( "_N" ) ) { aComplementNet = "_P"; rv = -1; } if( rv != 0 ) { aBaseDpName = aNetName.Left( aNetName.Length() - aComplementNet.Length() ); } return rv; }
bool CopyDirWithFilebackupRename( wxString from, wxString to, bool overwrite ) { wxString sep = wxFileName::GetPathSeparator(); // append a slash if there is not one (for easier parsing) // because who knows what people will pass to the function. if ( !to.EndsWith( sep ) ) { to += sep; } // for both dirs if ( !from.EndsWith( sep ) ) { from += sep; } // first make sure that the source dir exists if(!wxDir::Exists(from)) { wxLogError(from + _T(" does not exist. Can not copy directory.") ); return false; } if (!wxDirExists(to)) wxMkdir(to); wxDir dir(from); wxString filename; bool bla = dir.GetFirst(&filename); if (bla){ do { if (wxDirExists(from + filename) ) { wxMkdir(to + filename); CopyDir(from + filename, to + filename, overwrite); } else{ //if files exists move it to backup, this way we can use this func on windows to replace 'active' files if ( wxFileExists( to + filename ) ) { //delete prev backup if ( wxFileExists( to + filename + _T(".old") ) ) { wxRemoveFile( to + filename + _T(".old") ); } //make backup if ( !wxRenameFile( to + filename, to + filename + _T(".old") ) ) { wxLogError( _T("could not rename %s, copydir aborted"), (to + filename).c_str() ); return false; } } //do the actual copy if ( !wxCopyFile(from + filename, to + filename, overwrite) ) { wxLogError( _T("could not copy %s to %s, copydir aborted"), (from + filename).c_str(), (to + filename).c_str() ); return false; } } } while (dir.GetNext(&filename) ); } return true; }
// -------------------------------------------------------------------------------- // bool guIsValidImageFile( const wxString &filename ) { return filename.EndsWith( wxT( ".jpg" ) ) || filename.EndsWith( wxT( ".jpeg" ) ) || filename.EndsWith( wxT( ".png" ) ) || filename.EndsWith( wxT( ".bmp" ) ) || filename.EndsWith( wxT( ".gif" ) ); }
virtual bool isSCMdir(const wxString& dirname) const { if(dirname.EndsWith(wxString(wxT("CVS")) + wxFileName::GetPathSeparator()) || dirname.EndsWith(wxString(wxT(".svn")) + wxFileName::GetPathSeparator()) ) { return true; } return false; }
int PNS_PCBNEW_RULE_RESOLVER::matchDpSuffix( const wxString& aNetName, wxString& aComplementNet, wxString& aBaseDpName ) { int rv = 0; if( aNetName.EndsWith( "+" ) ) { aComplementNet = "-"; rv = 1; } else if( aNetName.EndsWith( "P" ) ) { aComplementNet = "N"; rv = 1; } else if( aNetName.EndsWith( "-" ) ) { aComplementNet = "+"; rv = -1; } else if( aNetName.EndsWith( "N" ) ) { aComplementNet = "P"; rv = -1; } // Match P followed by 2 digits else if( aNetName.Right( 2 ).IsNumber() && aNetName.Right( 3 ).Left( 1 ) == "P" ) { aComplementNet = "N" + aNetName.Right( 2 ); rv = 1; } // Match P followed by 1 digit else if( aNetName.Right( 1 ).IsNumber() && aNetName.Right( 2 ).Left( 1 ) == "P" ) { aComplementNet = "N" + aNetName.Right( 1 ); rv = 1; } // Match N followed by 2 digits else if( aNetName.Right( 2 ).IsNumber() && aNetName.Right( 3 ).Left( 1 ) == "N" ) { aComplementNet = "P" + aNetName.Right( 2 ); rv = -1; } // Match N followed by 1 digit else if( aNetName.Right( 1 ).IsNumber() && aNetName.Right( 2 ).Left( 1 ) == "N" ) { aComplementNet = "P" + aNetName.Right( 1 ); rv = -1; } if( rv != 0 ) { aBaseDpName = aNetName.Left( aNetName.Length() - aComplementNet.Length() ); aComplementNet = aBaseDpName + aComplementNet; } return rv; }
void SPICE_VALUE::stripZeros( wxString& aString ) { if ( aString.Find( ',' ) >= 0 || aString.Find( '.' ) >= 0 ) { while( aString.EndsWith( '0' ) ) aString.RemoveLast(); if( aString.EndsWith( '.' ) || aString.EndsWith( ',' ) ) aString.RemoveLast(); } }
// Return the size in KiB from a string with either KiB or MiB suffix. int GetSizeFromText(const wxString& text) const { wxString size; unsigned factor = 1; if ( text.EndsWith(" MiB", &size) ) factor = 1024; else if ( !text.EndsWith(" KiB", &size) ) return 0; unsigned long n = 0; size.ToULong(&n); return n*factor; }
/** * FUNCTION: commandLineCleanOption * INPUTS: * option - input string needs to be reformatted * schemaObject - Is this an object related to schema? * PURPOSE: * - Fixup a (double-quoted) string for use on the command line */ wxString commandLineCleanOption(const wxString &option, bool schemaObject) { wxString tmp = option; if (schemaObject) { // Replace double-quote with slash & double-quote tmp.Replace(wxT("\""), wxT("\\\"")); } else { // If required, clean the string to know the real object name if (option.StartsWith(wxT("\"")) && option.EndsWith(wxT("\""))) tmp = option.AfterFirst((wxChar)'"').BeforeLast((wxChar)'"'); // Replace single splash to double-splash tmp.Replace(wxT("\\"), wxT("\\\\")); // Replace double-quote with slash & double-quote tmp.Replace(wxT("\""), wxT("\\\"")); // Replace double (slash & double-quote) combination to single (slash & double-quote) combination tmp.Replace(wxT("\\\"\\\""), wxT("\\\"")); // Add the double quotes tmp = wxT("\"") + tmp + wxT("\""); } return tmp; }
wxString KeynameConverter::discardModifier( const wxString& keystring ) { wxString result; if ( keystring.EndsWith(wxT("+")) ) //handle stuff like numpad+ or ctrl++ { wxString tmp = keystring; result = tmp.RemoveLast().AfterLast(wxT('+')) + wxT('+'); } else if ( keystring.StartsWith(wxT("+")) ) //handle stuff like "+ (numpad)" { result = keystring; } else { size_t lastAdd = keystring.find_last_of(wxT('+')); if ( ( lastAdd != keystring.npos ) && ( keystring.GetChar(lastAdd - 1) == wxT('+') ) ) { assert( (lastAdd > 0) && "character '+' found in unexcepted location!" ); result = keystring.substr( lastAdd ); } else { result = keystring.AfterLast(wxT('+')); } } return result; }
bool wxHtmlTag::GetParamAsIntOrPercent(const wxString& par, int* value, bool& isPercent) const { const wxString param = GetParam(par); if ( param.empty() ) return false; wxString num; if ( param.EndsWith("%", &num) ) { isPercent = true; } else { isPercent = false; num = param; } long lValue; if ( !num.ToLong(&lValue) ) return false; if ( lValue > INT_MAX || lValue < INT_MIN ) return false; *value = static_cast<int>(lValue); return true; }
//! @param filepath - path to file, either original or backup //! virtual wxDirTraverseResult OnFile(const wxString& filepath) { wxString destinationFilepath; wxString sourceFilepath; // Check if the filename finishes with ".original" // If so it's the backup else the original to restore if (filepath.EndsWith(_(".original"), &destinationFilepath)) { sourceFilepath = filepath; } else { destinationFilepath = filepath; sourceFilepath = filepath+_(".original"); } cerr << "Info: Restoring \n" << " => " << destinationFilepath.ToAscii() <<"\n" << " <= " << sourceFilepath.ToAscii() << "\n"; if (!wxFileExists(sourceFilepath)) { cerr << "Warning: No backup exists - skipping restoration\n"; return wxDIR_CONTINUE; } if (!wxRenameFile(sourceFilepath, destinationFilepath, true)) { cerr << "Error: Failed to restore" << destinationFilepath.ToAscii() << "\n"; return wxDIR_STOP; } cerr << "Done\n"; return wxDIR_CONTINUE; }
void setImage(wxString path) { m_image_path = path; if(path.EndsWith(wxT(".icns"))) { wxExecute(wxT("sips -s format png '") + path + wxT("' --out /tmp/tmpicon.png"), wxEXEC_SYNC); path = wxT("/tmp/tmpicon.png"); } m_image.LoadFile(path, wxBITMAP_TYPE_ANY); if(m_image.IsOk()) { if(m_image.GetWidth() > 50 or m_image.GetHeight() > 50) { wxImage tmp = m_image.ConvertToImage(); tmp.Rescale(50, 50, wxIMAGE_QUALITY_HIGH); m_image = wxBitmap(tmp); } const int w = m_image.GetWidth(); const int h = m_image.GetHeight(); SetMinSize(wxSize(w + 20, h + 20)); SetMaxSize(wxSize(w + 20, h + 20)); Refresh(); // repaint needed to see change } else { wxMessageBox(_("Failed to load image")); } }
Instance::Instance(const wxString &rootDir) : modList(this), m_running(false) { if (!rootDir.EndsWith("/")) this->rootDir = wxFileName::DirName(rootDir + "/"); else this->rootDir = wxFileName::DirName(rootDir); config = new wxFileConfig(wxEmptyString, wxEmptyString, GetConfigPath().GetFullPath(), wxEmptyString, wxCONFIG_USE_LOCAL_FILE | wxCONFIG_USE_RELATIVE_PATH); evtHandler = NULL; MkDirs(); // initialize empty mod lists - they are filled later and only if requested (see apropriate Get* methods) modList.SetDir(GetInstModsDir().GetFullPath()); mlModList.SetDir(GetMLModsDir().GetFullPath()); coreModList.SetDir(GetCoreModsDir().GetFullPath()); worldList.SetDir(GetSavesDir().GetFullPath()); tpList.SetDir(GetTexturePacksDir().GetFullPath()); modloader_list_inited = false; coremod_list_inited = false; jar_list_inited = false; world_list_initialized = false; tp_list_initialized = false; parentModel = nullptr; UpdateVersion(); }
static wxString TrimSep(const wxString& path) { const wxString sep = wxFileName::GetPathSeparator(); if (path.EndsWith(sep)) { return path.SubString(0, path.length()-2); } return path; }
GpxxExtensionsElement::GpxxExtensionsElement(const wxString &element_name) : TiXmlElement(element_name.mb_str()) { if ( element_name.EndsWith (_T("RouteExtension")) ) { GpxSimpleElement * g = new GpxSimpleElement(wxString(_T("gpxx:IsAutoNamed")), _T("false")); //FIXME: the namespace should be taken from element_name... LinkEndChild(g); } }
void MainFrame::SetLastUsedFile(wxString file) { if ( file.EndsWith(".autosave") ) return; m_recentlist.SetLastUsed( file ); for ( std::size_t i = 0;i < 9;i++ ) wxConfigBase::Get()->Write( wxString::Format( _T( "/Recent/%d" ), i ), m_recentlist.GetEntry( i ) ); }
static inline long parseInt( const wxString& aValue, double aScalar ) { double value = LONG_MAX; /* * In 2011 gEDA/pcb introduced values with units, like "10mm" or "200mil". * Unit-less values are still centimils (100000 units per inch), like with * the previous format. * * Distinction between the even older format (mils, 1000 units per inch) * and the pre-2011 format is done in ::parseMODULE already; the * distinction is by wether an object definition opens with '(' or '['. * All values with explicite unit open with a '[' so there's no need to * consider this distinction when parsing them. * * The solution here is to watch for a unit and, if present, convert the * value to centimils. All unit-less values are read unaltered. This way * the code below can contine to consider all read values to be in mils or * centimils. It also matches the strategy gEDA/pcb uses for backwards * compatibility with its own layouts. * * Fortunately gEDA/pcb allows only units 'mil' and 'mm' in files, see * definition of ALLOW_READABLE in gEDA/pcb's pcb_printf.h. So we don't * have to test for all 11 units gEDA/pcb allows in user dialogs. */ if( aValue.EndsWith( wxT( "mm" ) ) ) { aScalar *= 100000.0 / 25.4; } else if( aValue.EndsWith( wxT( "mil" ) ) ) { aScalar *= 100.; } // This conversion reports failure on strings as simple as "1000", still // it returns the right result in &value. Thus, ignore the return value. aValue.ToCDouble(&value); if( value == LONG_MAX ) // conversion really failed { THROW_IO_ERROR( wxString::Format( _( "Cannot convert \"%s\" to an integer" ), aValue.GetData() ) ); return 0; } return KiROUND( value * aScalar ); }
/** * URLの末尾にある拡張子が何か判別し、Content-Typeを返す */ wxString XrossBoardUtil::DetermineContentType(const wxString& href) { // ex) image/png; charset=utf-8 if (href.EndsWith(wxT(".jpg")) || href.EndsWith(wxT(".JPG"))) { return wxT("image/jpg; charset=utf-8"); } else if (href.EndsWith(wxT(".jpeg")) || href.EndsWith(wxT(".JPEG"))) { return wxT("image/jpeg; charset=utf-8"); } else if (href.EndsWith(wxT(".png")) || href.EndsWith(wxT(".PNG"))) { return wxT("image/png; charset=utf-8"); } else if (href.EndsWith(wxT(".gif")) || href.EndsWith(wxT(".GIF"))) { return wxT("image/gif; charset=utf-8"); } else if (href.EndsWith(wxT(".bmp")) || href.EndsWith(wxT(".BMP"))) { return wxT("image/bmp; charset=utf-8"); } return wxEmptyString; }
dbgArgInfo::dbgArgInfo(const wxString &_name, const wxString &_type, Oid _typeOid, short _mode) : m_name(_name), m_type(_type), m_typeOid(_typeOid), m_mode(_mode), m_hasDefault(false), m_useDefault(false), m_null(false) { if (!_type.EndsWith(wxT("[]"), &m_baseType)) { m_baseType = wxEmptyString; } }
//-------------------------------------------------------------------------------- void CUIEdPane::RemoveViewerTemp(wxString path,bool removeAll) { #ifdef _DEBUG return; #endif if (!path.EndsWith(L"\\") && !path.EndsWith(L"/")) path.Append(L"/"); wxDir dir(path); wxString file; bool doing=dir.GetFirst(&file,L"",wxDIR_FILES); while (doing) { if (file.Lower().StartsWith(VIEWER_TEMP) || removeAll) { #ifdef I3D_OS_WINDOWS SetFileAttributes((path+file).c_str(),FILE_ATTRIBUTE_NORMAL); #else chmod((path+file).mb_str(),S_IRUSR|S_IWUSR|S_IRGRP|S_IWGRP|S_IROTH|S_IWOTH); #endif wxRemoveFile(path+file); } doing=dir.GetNext(&file); } doing=dir.GetFirst(&file,L"",wxDIR_DIRS); while (doing) { if (file.IsSameAs(VIEWER_TEMP,false) || removeAll) { RemoveViewerTemp(path+file,true); wxFileName::Rmdir(path+file); } else RemoveViewerTemp(path+file,false); doing=dir.GetNext(&file); } }
static wxString escapeStr(const wxString& str) { if (str.Find(_T(" ")) == wxNOT_FOUND) { return str; } if (str.StartsWith(_T("\"")) && str.EndsWith(_T("\""))) { //no double escape return str; } return _T("\"") + str + _T("\""); }
// copied from http://wxforum.shadonet.com/viewtopic.php?t=2080 //slightly modified bool CopyDir( wxString from, wxString to, bool overwrite ) { wxString sep = wxFileName::GetPathSeparator(); // append a slash if there is not one (for easier parsing) // because who knows what people will pass to the function. if ( !to.EndsWith( sep ) ) { to += sep; } // for both dirs if ( !from.EndsWith( sep ) ) { from += sep; } // first make sure that the source dir exists if(!wxDir::Exists(from)) { wxLogError(from + _T(" does not exist. Can not copy directory.") ); return false; } if (!wxDirExists(to)) wxMkdir(to); wxDir dir(from); wxString filename; bool bla = dir.GetFirst(&filename); if (bla){ do { if (wxDirExists(from + filename) ) { wxMkdir(to + filename); CopyDir(from + filename, to + filename, overwrite); } else{ wxCopyFile(from + filename, to + filename, overwrite); } } while (dir.GetNext(&filename) ); } return true; }
bool MainFrame::Save(gd::Project & project, wxString file) { bool isJSON = file.EndsWith(".json"); bool success = (!isJSON && gd::ProjectFileWriter::SaveToFile(project, file)) || (isJSON && gd::ProjectFileWriter::SaveToJSONFile(project, file)); SetLastUsedFile(project.GetProjectFile()); return success; }
void Maximas::saveNifti( wxString fileName ) { // Prevents copying the whole vector vector<float> *pDataset = &l_fileFloatData; int dims[] = { 4, m_columns, m_rows, m_frames, m_bands, 0, 0, 0 }; nifti_image* pImage(NULL); pImage = nifti_make_new_nim( dims, m_dataType, 1 ); if( !fileName.EndsWith( _T( ".nii" ) ) && !fileName.EndsWith( _T( ".nii.gz" ) ) ) { fileName += _T( ".nii.gz" ); } char fn[1024]; strcpy( fn, (const char*)fileName.mb_str( wxConvUTF8 ) ); pImage->qform_code = 1; pImage->datatype = m_dataType; pImage->fname = fn; pImage->dx = m_voxelSizeX; pImage->dy = m_voxelSizeY; pImage->dz = m_voxelSizeZ; vector<float> tmp( pDataset->size() ); int datasetSize = m_columns * m_rows * m_frames; for( int i( 0 ); i < datasetSize; ++i ) { for( int j( 0 ); j < m_bands; ++j ) { tmp[j * datasetSize + i] = l_fileFloatData[i * m_bands + j]; } } // Do not move the call to nifti_image_write out of the // if, because it will crash, since the temp vector will // not exist anymore, and pImage->data will point to garbage. pImage->data = &tmp[0]; nifti_image_write( pImage ); }
wxString::size_type wxFilterClassFactoryBase::FindExtension( const wxString& location) const { for (const wxChar *const *p = GetProtocols(wxSTREAM_FILEEXT); *p; p++) { if ( location.EndsWith(*p) ) return location.length() - wxStrlen(*p); } return wxString::npos; }
bool IsFileToIgnore(const wxString& filename) { return filename.EndsWith(_T(".exe")) || filename.EndsWith(_T(".map")) || filename.EndsWith(_T(".pdb")) || filename.EndsWith(_T(".app")) || filename.EndsWith(_T(".ini")) || filename.EndsWith(_T(".tar")) || filename.EndsWith(_T(".gz")) || filename.EndsWith(_T(".bz2")) || filename.EndsWith(_T(".tgz")) || filename.EndsWith(_T(".tbz")) || filename.EndsWith(_T(".tbz2")); }
void t4p::ApacheClass::SetVirtualHostMapping(const wxString& fileSystemPath, wxString hostName) { if (!hostName.EndsWith(wxT("/"))) { hostName += wxT("/"); } if (!hostName.StartsWith(wxT("http://")) && !hostName.StartsWith(wxT("https://"))) { hostName = wxT("http://") + hostName; } wxFileName filename; filename.AssignDir(fileSystemPath); // when inserting into the map, normalize the host document root VirtualHostMappings[filename.GetFullPath()] = hostName; }
/// @brief Constructor /// @param _filename /// AvisynthAudioProvider::AvisynthAudioProvider(wxString filename) : filename(filename) { try { AVSValue script; wxMutexLocker lock(avs_wrapper.GetMutex()); wxFileName fn(filename); if (!fn.FileExists()) throw agi::FileNotFoundError(STD_STR(filename)); IScriptEnvironment *env = avs_wrapper.GetEnv(); // Include if (filename.EndsWith(".avs")) { char *fname = env->SaveString(fn.GetShortPath().mb_str(csConvLocal)); script = env->Invoke("Import", fname); } // Use DirectShowSource else { const char * argnames[3] = { 0, "video", "audio" }; AVSValue args[3] = { env->SaveString(fn.GetShortPath().mb_str(csConvLocal)), false, true }; // Load DirectShowSource.dll from app dir if it exists wxFileName dsspath(StandardPaths::DecodePath("?data/DirectShowSource.dll")); if (dsspath.FileExists()) { env->Invoke("LoadPlugin",env->SaveString(dsspath.GetShortPath().mb_str(csConvLocal))); } // Load audio with DSS if it exists if (env->FunctionExists("DirectShowSource")) { script = env->Invoke("DirectShowSource", AVSValue(args,3),argnames); } // Otherwise fail else { throw agi::AudioProviderOpenError("No suitable audio source filter found. Try placing DirectShowSource.dll in the Aegisub application directory.", 0); } } LoadFromClip(script); } catch (AvisynthError &err) { std::string errmsg(err.msg); if (errmsg.find("filter graph manager won't talk to me") != errmsg.npos) throw agi::AudioDataNotFoundError("Avisynth error: " + errmsg, 0); else throw agi::AudioProviderOpenError("Avisynth error: " + errmsg, 0); } }