24 #ifndef STRING_UTILS_H 25 #define STRING_UTILS_H 31 #include <wx/string.h> 32 #include <wx/filename.h> 81 wxString
TitleCaps(
const wxString& aString );
117 std::string
EscapedUTF8(
const wxString& aString );
122 wxString
EscapeHTML(
const wxString& aString );
129 char*
GetLine( FILE* aFile,
char* Line,
int* LineNum =
nullptr,
int SizeLine = 255 );
168 int StrNumCmp(
const wxString& aString1,
const wxString& aString2,
bool aIgnoreCase =
false );
176 const wxString& string_to_tst,
177 bool case_sensitive =
true );
195 wxString* strBeginning,
231 extern "C" char*
strtok_r(
char* str,
const char* delim,
char** nextp );
242 bool operator() (
const wxString& strA,
const wxString& strB )
const 244 wxString::const_reverse_iterator sA = strA.rbegin();
245 wxString::const_reverse_iterator eA = strA.rend();
247 wxString::const_reverse_iterator sB = strB.rbegin();
248 wxString::const_reverse_iterator eB = strB.rend();
262 while( sA != eA && sB != eB )
264 if( ( *sA ) == ( *sB ) )
271 if( ( *sA ) < ( *sB ) )
293 static inline std::vector<std::string>
split(
const std::string& aStr,
const std::string& aDelim )
299 std::vector<std::string> tokens;
301 while( pos < aStr.size() )
303 pos = aStr.find_first_of( aDelim, last_pos );
305 if( pos == std::string::npos )
308 len = pos - last_pos;
310 tokens.push_back( aStr.substr( last_pos, len ) );
321 if( !aDesc.IsEmpty() )
322 aDesc << wxT(
", " );
334 void wxStringSplit(
const wxString& aText, wxArrayString& aStrings, wxChar aSplitter );
360 #endif // STRING_UTILS_H wxString UnescapeString(const wxString &aSource)
char * strtok_r(char *str, const char *delim, char **nextp)
wxString TitleCaps(const wxString &aString)
Capitalize the first letter in each word.
char * StrPurge(char *text)
Remove leading and training spaces, tabs and end of line chars in text.
A helper for sorting strings from the rear.
int SplitString(const wxString &strToSplit, wxString *strBeginning, wxString *strDigits, wxString *strEnd)
Break a string into three parts: he alphabetic preamble, the numeric part, and any alphabetic ending.
wxString AngleToStringDegrees(double aAngle)
A helper to convert the double aAngle (in internal unit) to a string in degrees.
char * GetLine(FILE *aFile, char *Line, int *LineNum=nullptr, int SizeLine=255)
Read one line line from aFile.
wxString ConvertToNewOverbarNotation(const wxString &aOldStr)
Convert the old ~...~ overbar notation to the new ~{...} one.
bool operator()(const wxString &strA, const wxString &strB) const
std::string EscapedUTF8(const wxString &aString)
Return an 8 bit UTF8 string given aString in Unicode form.
wxString EscapeHTML(const wxString &aString)
Return a new wxString escaped for embedding in HTML.
int ValueStringCompare(const wxString &strFWord, const wxString &strSWord)
Compare strings like the strcmp function but handle numbers and modifiers within the string text corr...
void ConvertMarkdown2Html(const wxString &aMarkdownInput, wxString &aHtmlOutput)
int PrintableCharCount(const wxString &aString)
Return the number of printable (ie: non-formatting) chars.
wxString EscapeString(const wxString &aSource, ESCAPE_CONTEXT aContext)
The Escape/Unescape routines use HTML-entity-reference-style encoding to handle characters which are:...
ESCAPE_CONTEXT
Escape/Unescape routines to safely encode reserved-characters in various contexts.
wxString GetIllegalFileNameWxChars()
bool ReplaceIllegalFileNameChars(std::string *aName, int aReplaceChar=0)
Checks aName for illegal file name characters.
void AccumulateDescription(wxString &aDesc, const wxString &aItem)
Utility to build comma separated lists in messages.
int StrNumCmp(const wxString &aString1, const wxString &aString2, bool aIgnoreCase=false)
Compare two strings with alphanumerical content.
std::string Double2Str(double aValue)
Print a float number without using scientific notation and no trailing 0 We want to avoid scientific ...
bool WildCompareString(const wxString &pattern, const wxString &string_to_tst, bool case_sensitive=true)
Compare a string against wild card (* and ?) pattern using the usual rules.
wxString PrettyPrintForMenu(const wxString &aString)
Remove markup (such as overbar or subscript) that we can't render to menu items.
int GetTrailingInt(const wxString &aStr)
Gets the trailing int, if any, from a string.
int ReadDelimitedText(char *aDest, const char *aSource, int aDestSize)
Copy bytes from aSource delimited string segment to aDest buffer.
bool NoPrintableChars(const wxString &aString)
Return true if the string is empty or contains only whitespace.
void wxStringSplit(const wxString &aText, wxArrayString &aStrings, wxChar aSplitter)
Split aString to a string list separated at aSplitter.
void StripTrailingZeros(wxString &aStringValue, unsigned aTrailingZeroAllowed=1)
Remove trailing zeros from a string containing a converted float number.
bool ConvertSmartQuotesAndDashes(wxString *aString)
Convert curly quotes and em/en dashes to straight quotes and dashes.
static std::vector< std::string > split(const std::string &aStr, const std::string &aDelim)
Split the input string into a vector of output strings.