Willem Jan Palenstijn
a3202eab7c
Note Common::String's behaviour may be undefined with \0 characters.
...
Also make operator=(char) and String(char) behave the same.
svn-id: r50712
2010-07-05 21:29:52 +00:00
Thierry Crozat
721db3eccb
Fix an issue in String::ensureCapacity() when the string is shared. It could 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-06-19 15:35:21 +00:00
Johannes Schickel
388e4b65bf
Add a custom implementation of OpenBSD's strlcat and strlcpy.
...
This includes both an implementation and some basic unit tests for
the above mentioned functions.
svn-id: r48953
2010-05-05 17:52:59 +00:00
Max Horn
30c84d2cff
COMMON: Move tag2str from util.h to str.h
...
svn-id: r48281
2010-03-18 15:07:48 +00:00
Johannes Schickel
5278b82f33
Slight formatting fixes to comply to our coding guidelines.
...
svn-id: r47744
2010-01-31 10:22:09 +00:00
Max Horn
b0e02675e7
Get rid of Common::String::emptyString, and also of some port specific hackery (getting rid of certain global C++ objs)
...
svn-id: r46781
2009-12-30 23:01:36 +00:00
Willem Jan Palenstijn
833e6f41d5
Fix broken size in Common::String::printf output in MSVC
...
svn-id: r44979
2009-10-12 11:51:28 +00:00
Willem Jan Palenstijn
90eebcd245
Use buffer in Common::String::printf slightly more efficiently
...
svn-id: r44562
2009-10-03 20:26:30 +00:00
Willem Jan Palenstijn
ddea9a5bda
Fix Common::String::printf in MSVC
...
svn-id: r44520
2009-10-01 14:47:52 +00:00
Johannes Schickel
75113ad5f3
COMMON: Add "ignoreCase" parameter to matchString.
...
svn-id: r44265
2009-09-23 00:14:06 +00:00
Eugene Sandulenko
a69b4d60fc
Formatting
...
svn-id: r42746
2009-07-25 10:37:20 +00:00
Willem Jan Palenstijn
744112ceb0
Add Common::String::printf to format a string
...
svn-id: r42743
2009-07-25 10:25:57 +00:00
Max Horn
a5ff6cc19d
Fixed appending a (substring of a) string to itself
...
svn-id: r41337
2009-06-07 13:14:34 +00:00
Max Horn
a39048877a
Added some new method variants to Common::String
...
svn-id: r41333
2009-06-07 13:04:03 +00:00
Max Horn
c33a875d9f
Fixed new[] / delete mismatch in Common::String
...
svn-id: r40302
2009-05-04 14:20:17 +00:00
Max Horn
882c24d2ee
COMMON: Check for failed memory allocations; changed Common::String to use new/delete instead of malloc/free
...
svn-id: r40291
2009-05-03 22:45:31 +00:00
Max Horn
17014c4f47
Merged internal 'matchPath' method of class Archive into global matchString 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
2009-02-15 18:45:53 +00:00
Jordi Vilalta Prat
b1999a2a16
Fixed indentation and removed whitespaces at the end of line
...
svn-id: r35481
2008-12-22 11:22:15 +00:00
Max Horn
95474b048a
COMMON: Added a new ObjectPool class, with matching operator new/delete overloads
...
svn-id: r34785
2008-10-12 22:05:26 +00:00
Max Horn
0aa9e6ff4c
Ignore String::deleteLastChar when called on an empty string
...
svn-id: r34718
2008-10-02 17:17:18 +00:00
Max Horn
f9650f0b6a
Changed Common::String to use a MemoryPool for its refcounts
...
svn-id: r34642
2008-09-24 20:29:29 +00:00
Max Horn
bbba275913
Little readability tweak
...
svn-id: r34615
2008-09-20 15:53:17 +00:00
Max Horn
0dcb30e75c
Optimized matchString for the common case where there is a trailing * (if that is the case, abort immediately instead of scanning the rest of the string)
...
svn-id: r34367
2008-09-05 20:29:03 +00:00
Max Horn
9bf7aa308e
Moved matchString from util.* to str.*; added new String::matchString method; fixed matchString doxygen comment (it confused pattern & string); added unit tests for matchString
...
svn-id: r34364
2008-09-05 20:07:34 +00:00
Max Horn
3cb4cfa06f
Fix nasty off-by-one errors
...
svn-id: r34317
2008-09-03 18:38:01 +00:00
Max Horn
c3d7c908e8
Modified Common::Str to use exponential growth for its storage; also changed the meaning of 'capacity' from 'max length of string' to 'size of storage' (i.e. added one)
...
svn-id: r34313
2008-09-03 17:39:18 +00:00
Max Horn
155b8606c1
Added two new global funcs which ease proper handling of 'path' strings: Common::lastPathComponent() and Common::normalizePath()
...
svn-id: r34272
2008-09-02 11:32:38 +00:00
Max Horn
a79e9385a1
Unified member names in container/storage classes Array, HashMap and String: _storage, _size, _capacity
...
svn-id: r34052
2008-08-20 11:07:16 +00:00
Max Horn
918e0fe473
Reorder stuff a little bit, moving private String methods together: cleanup
...
svn-id: r33248
2008-07-23 16:49:45 +00:00
Max Horn
15c610a069
Added convenience method String::makeUnique(); simplified String::operator=(char c); extended String unit tests
...
svn-id: r33246
2008-07-23 16:33:53 +00:00
Max Horn
d5e2c6d4bf
Fix String::trim to work right for shared strings; augemented test cases to cover this
...
svn-id: r33234
2008-07-23 09:53:29 +00:00
Max Horn
705c92ddc3
Added String::trim() method
...
svn-id: r33203
2008-07-22 14:39:26 +00:00
Max Horn
c625a6a647
Fixed potential issue in Common::String when asserting a substring of a string X back to X (memcpy -> memmove); also added some other sanity checks, and merged some duplicate code into a new method String::initWithCStr
...
svn-id: r33137
2008-07-20 16:42:56 +00:00
Max Horn
57ad73faee
Removed char &operator [] from class String -- it had the potential to wreak havoc when used on shared strings (thanks to tramboi for pointing this out)
...
svn-id: r31334
2008-03-30 18:37:09 +00:00
Kari Salminen
b6cad0f0ce
Added a simple non-optimized StringTokenizer-class for tokenizing strings. Also added a contains(char)-function to the String-class because it was handy in implementing the StringTokenizer.
...
svn-id: r30828
2008-02-08 04:11:20 +00:00
Nicola Mettifogo
258901bab9
Merged common/stdafx.h into common/scummsys.h. All referencing files have been updated.
...
svn-id: r28966
2007-09-19 08:40:12 +00:00
Max Horn
95ba2986d3
Enhanced Common::String by adding char constructor and operator+ for chars
...
svn-id: r27051
2007-06-02 12:42:40 +00:00
Max Horn
218e132e37
Updated legal headers in source files, based on what Pidgin (the IM client formerly knowns as Gaim) does; added new (incomplete) COPYRIGHT file; updated copyright dates in a few spots
...
svn-id: r27024
2007-05-30 21:56:52 +00:00
Max Horn
aecd100f93
Added Common::String::contains() method
...
svn-id: r26514
2007-04-15 18:27:10 +00:00
Max Horn
728d01cb17
Removing some unnecessary #includes
...
svn-id: r26044
2007-03-09 23:46:45 +00:00
Gregory Montoir
1ce912e106
made rtrim() and ltrim() global functions, to reduce code duplication (it seems parallaction/parser.cpp code re-use them too
...
svn-id: r25564
2007-02-13 21:06:57 +00:00
Willem Jan Palenstijn
9543231685
replace ensureCapacity(_len-1) by ensureCapacity(_len) (fixes bug #1617410 )
...
svn-id: r24865
2006-12-17 19:41:41 +00:00
Gregory Montoir
b2fb23a134
Changed the way String::_storage is initialised, to help GCC 2.95 (see tracker item #1602879 )
...
svn-id: r24793
2006-11-27 00:51:14 +00:00
Max Horn
a6c3257c5e
Rewrote class String to use an internal (stack based) storage for small strings, thus avoiding a couple ten thousand heap allocations
...
svn-id: r24043
2006-09-30 18:55:38 +00:00
Max Horn
53f73eac85
Added explicit string equals/hash functors to a new header common/hash-str.h; removed Hash functor specialization for String and char pointers; changed all code using hashmaps with string keys to explicitly specify whether they honor or ignore case
...
svn-id: r23634
2006-07-30 12:21:54 +00:00
Max Horn
bd49091afd
Added new equals(IgnoreCase) and compareTo(IgnoreCase) methods to class String
...
svn-id: r23633
2006-07-30 12:17:51 +00:00
Eugene Sandulenko
5b1aaf4ea0
Patch #1503718 : "Strange results from Common::computeCapacity"
...
svn-id: r22998
2006-06-10 07:56:09 +00:00
Max Horn
6d0a06463a
Lazily allocate _refCount in class String
...
svn-id: r22935
2006-06-05 17:36:08 +00:00
Torbjörn Andersson
2e071b59d6
When ensureCapacity() does not have an old string to copy, make sure the newly
...
allocated one is terminated. Hopefully this will keep the SCUMM save dialog
from randomly adding garbage to my savegame names.
svn-id: r22908
2006-06-04 09:14:07 +00:00
Max Horn
cbe66f3360
Allocate and grow Common::String objects in multiples of 32, and leave at least 16 spare bytes at the end, in case the string grows a little bit.
...
svn-id: r22896
2006-06-03 16:33:42 +00:00