aboutsummaryrefslogtreecommitdiff
path: root/common/str.cpp
AgeCommit message (Collapse)Author
2017-01-05COMMON: Add strnlen for safer C string length readsColin Snover
This API is intended for use in cases where C strings come from untrusted sources like game files, where malformed data missing the null terminator would cause strlen to read out of bounds.
2016-08-24COMMON: Add replace(String, String, String)Alexander Tkachev
Searches for a substring in the string and replaces it with the other string.
2016-08-24COMMON: Add String::asUint64()Alexander Tkachev
Instead of all these atoull() I've added everywhere.
2016-05-28COMMON: Fix warning about shadowing class membersEugene Sandulenko
2016-05-16COMMON: Add replace functions to Common and String.Borja Lorente Escobar
COMMON: Add replacement to common/algorithm.h COMMON: Intermediate commit to show doubts. COMMON: Basic String::replace() methods implemented. COMMON: Fix typo in the algorithm.h documentation. COMMON: Fix documentation of String::replace() COMMON: Fix formatting issues in method signatures. COMMON: Add assert and reformat loops in str and algorithm. COMMON: Fix typo in comment. COMMON: Fix style in string test cases. COMMON: Add Doxygen documentation to algorithm and String. COMMON: Add Doxygen documentation to algorithm and String. COMMON: Add Doxygen documentation to algorithm. COMMON: Fix style in algorithm comments. COMMON: Add Doxygen comments to String. COMMON: Add Doxygen comments to algorithm test function. COMMON: Add String support for substring replace. COMMON: Fix string replace to comply with STL COMMON: Fix documentation on string replace COMMON: Fix style in string replace COMMON: Fix unwanted reference problem in String::replace(). COMMON: Fix indentation in comments for replace COMMON: Fix indentation in replace COMMON: Fix comments in String::replace to match implementation. COMMON: Remove assert to allow for not-null-terminated character arrays COMMON: Add new test for String::replace COMMON: Fix broken comments on String::replace COMMON: Fix sharing bug on ensureCapacity COMMON: Remove superfluous call to makeUnique()
2016-01-26COMMON: Allow '#' to only match digits in matchString.Johannes Schickel
2014-02-18COMMON: Make GPL headers consistent in themselves.Johannes Schickel
2013-06-20COMMON: Add erase method to String classrichiesams
2013-03-20COMMON: Fix assert condition in String::setChar()Thierry Crozat
2013-01-26JANITORIAL: Enforce "} // End of namespace" with a single space after }.Johannes Schickel
2012-12-13COMMON: Add wrapper for isprint.Johannes Schickel
This is done in the spirit of 658080deeda79d20ea40643569fbcb072573e7cf.
2012-02-21Merge pull request #182 from fingolfin/forbid-ctypeWillem Jan Palenstijn
ALL: Avoid using is* macros from ctype.h
2012-02-16COMMON: Fix typoMax Horn
2012-02-15ALL: Avoid using is* macros from ctype.hMax Horn
On some systems, passing signed chars to macros like isspace() etc. lead to a runtime error. Hence, mark these macros as forbidden by default, and introduce otherwise equivalent alternatives for them.
2011-06-23ANALYSIS: Add static casts to is* functionsLittleboy
This fixes a potential problem with passing char values that would be sign-extended and yield unexpected results. See http://msdn.microsoft.com/en-us/library/ms245348.aspx
2011-06-18COMMON: Add vformat() function (Common::String analog to vsprintf)Max Horn
2011-06-03COMMON: Let Common::normalizePath normalize '..' in pathsMax Horn
There are some unit tests to verify that this works correctly. There is a small chance that this causes regressions in weird setups.
2011-05-23COMMON: Provide our own implementations for scumm_str(n)icmpMax Horn
This takes up a tiny little bit of extra binary size, but gets rid of some awful #ifdef hackery.
2011-05-12GIT: Clean up: Suppress SVN tags, now uselessstrangerke
2010-11-01COMMON: Rename String::printf() to String::format()Max Horn
This is a first step towards getting rid of all uses of regular printf, fprintf, vprintf, vfprintf, puts, fputs, etc. in our codebase. The name format() reflects the purpose of the function, and parallels String.format() in Java, boost::format, and others. svn-id: r54004
2010-10-18Revert "COMMON: Implement Common::vprintf(). Patch by littleboy"Eugene Sandulenko
svn-id: r53586
2010-10-18COMMON: Implement Common::vprintf(). Patch by littleboyEugene Sandulenko
svn-id: r53576
2010-10-10COMMON: work around different vsnprintf behaviour on IRIXJoost Peters
The return value of vsnprintf when the provided buffer is not large enough to hold the formatted string is implementation-dependent: C99: The size the formatted string would take up. MSVC: -1, with no indication of how large the buffer should be. IRIX: The number of characters actually written, which is at most the size of the buffer minus one, as the string is truncated to fit. This means the only way to be sure the entire string is written is if the return value is less than the capacity - 1. This change means that whenever we try to format a string where the size is 1 below the built-in capacity, that the capacity will be needlessly increased. If this turns out to be problematic we could make this behaviour __sgi conditional. svn-id: r53143
2010-09-07COMMON: Fix edge case for wildcard in matchStringWillem Jan Palenstijn
svn-id: r52618
2010-08-17COMMON: fix MSVC assert when using umlauts (or other characters > 127) in ↵Florian Kagerer
the global save/load menu svn-id: r52173
2010-08-17COMMON: Remove redundant include from str.cppEugene Sandulenko
If it is needed for your specific platform, then readd it, but for that platform. Although to me it looks all redundant. svn-id: r52155
2010-08-16Common: Fix bug in lastPathComponent.Johannes Schickel
Prior to this change lastPathComponent would not create a correct result, when the input of lastPathComponent did not contain a single separator. I also added a test case for this in our unit tests. svn-id: r52123
2010-07-05Note Common::String's behaviour may be undefined with \0 characters.Willem Jan Palenstijn
Also make operator=(char) and String(char) behave the same. svn-id: r50712
2010-06-19Fix an issue in String::ensureCapacity() when the string is shared. It could ↵Thierry Crozat
allocate two much memory as it was at least doubling the current capacity even when this one was sufficient. It fixes a crash in GUI::Widget::cleanupHotkey() as the capacity of the string was doubled at each iteration once it was too long for the internal storage (only to add one character to the string). This ended up in a bad_alloc exception after a few iterations. svn-id: r50050
2010-05-05Add a custom implementation of OpenBSD's strlcat and strlcpy.Johannes Schickel
This includes both an implementation and some basic unit tests for the above mentioned functions. svn-id: r48953
2010-03-18COMMON: Move tag2str from util.h to str.hMax Horn
svn-id: r48281
2010-01-31Slight formatting fixes to comply to our coding guidelines.Johannes Schickel
svn-id: r47744
2009-12-30Get rid of Common::String::emptyString, and also of some port specific ↵Max Horn
hackery (getting rid of certain global C++ objs) svn-id: r46781
2009-10-12Fix broken size in Common::String::printf output in MSVCWillem Jan Palenstijn
svn-id: r44979
2009-10-03Use buffer in Common::String::printf slightly more efficientlyWillem Jan Palenstijn
svn-id: r44562
2009-10-01Fix Common::String::printf in MSVCWillem Jan Palenstijn
svn-id: r44520
2009-09-23COMMON: Add "ignoreCase" parameter to matchString.Johannes Schickel
svn-id: r44265
2009-07-25FormattingEugene Sandulenko
svn-id: r42746
2009-07-25Add Common::String::printf to format a stringWillem Jan Palenstijn
svn-id: r42743
2009-06-07Fixed appending a (substring of a) string to itselfMax Horn
svn-id: r41337
2009-06-07Added some new method variants to Common::StringMax Horn
svn-id: r41333
2009-05-04Fixed new[] / delete mismatch in Common::StringMax Horn
svn-id: r40302
2009-05-03COMMON: Check for failed memory allocations; changed Common::String to use ↵Max Horn
new/delete instead of malloc/free svn-id: r40291
2009-02-15Merged internal 'matchPath' method of class Archive into global matchString ↵Max Horn
function (via an optional 'path mode' in the latter). Also changed Archive::listMatchingMembers to use path mode when matching, just like FSDirectory::listMatchingMembers svn-id: r38277
2008-12-22Fixed indentation and removed whitespaces at the end of lineJordi Vilalta Prat
svn-id: r35481
2008-10-12COMMON: Added a new ObjectPool class, with matching operator new/delete ↵Max Horn
overloads svn-id: r34785
2008-10-02Ignore String::deleteLastChar when called on an empty stringMax Horn
svn-id: r34718
2008-09-24Changed Common::String to use a MemoryPool for its refcountsMax Horn
svn-id: r34642
2008-09-20Little readability tweakMax Horn
svn-id: r34615
2008-09-05Optimized matchString for the common case where there is a trailing * (if ↵Max Horn
that is the case, abort immediately instead of scanning the rest of the string) svn-id: r34367