rubidium42
f00564eeb2
Fix: String validation could leave invalid Utf8 encoded strings ( #9096 )
...
In case a character was encoded in multiple bytes, but required fewer bytes to be encoded, the first byte would be copied to the output leaving an invalid Utf8 encoded string. Later uses of the validated string would use the same decode logic, which would yield a question mark and just read a single byte, so nothing dangerous happened.
Furthermore, because the next byte would not be a first byte of an encoded Utf8 character, the last few valid characters could be removed by the validation as well.
2021-04-29 23:16:41 +01:00
rubidium42
5202869f0f
Add: String functionality to trim spaces from C-style strings
2021-04-24 08:02:54 +02:00
Charles Pigott
9b800a96ed
Codechange: Remove min/max functions in favour of STL variants ( #8502 )
2021-01-08 11:16:18 +01:00
Michael Lutz
024a3f6259
Codechange: Use automatic memory management for language pack reading.
2020-12-27 13:19:25 +01:00
Michael Lutz
0c6e8a8123
Codechange: Store file search paths as std::string.
2020-12-27 13:19:25 +01:00
Marcus Calhoun-Lopez
eeed3a7613
Fix: unbreak building with ICU on macOS
...
A symbol clash breaks building ICU on macOS, and although it isn't
necessary, it might as well be possible.
2020-06-05 14:47:33 +01:00
Michael Lutz
715aa67a9c
Codechange: Use std::string in INI file parsing.
2020-05-21 20:02:34 +02:00
Michael Lutz
c082f570ce
Codechange: Use std::string when translating TTDP NewGRF string codes.
2020-05-21 20:02:34 +02:00
S. D. Cloudt
13cc8a0cee
Cleanup: Removed SVN headers
2019-11-10 17:59:20 +00:00
Henry Wilson
7c8e7c6b6e
Codechange: Use null pointer literal instead of the NULL macro
2019-04-10 23:22:20 +02:00
Michael Lutz
fbc4cef180
Codechange: Use override specifier for text layout classes.
2019-04-09 22:45:15 +02:00
Henry Wilson
c01a2e2a81
Codechange: Removed SmallVector completely
2019-03-26 20:15:57 +00:00
Henry Wilson
ab711e6942
Codechange: Replaced SmallVector::[Begin|End]() with std alternatives
2019-03-26 20:15:57 +00:00
Henry Wilson
a0f36a50e6
Codechange: Replaced SmallVector::Append() with std::vector::[push|emplace]_back()
2019-03-26 20:15:57 +00:00
Henry Wilson
a690936ed7
Codechange: Replace SmallVector::Length() with std::vector::size()
2019-03-26 20:15:57 +00:00
Henry Wilson
bfd79e59dc
Codechange: Replace SmallVector::Clear() with std::vector::clear()
2019-03-26 20:15:57 +00:00
Patric Stout
36105841b9
Codechange: ICU_SORT is in reality ICU_I18N (according to their CMake files)
...
By naming it in a different way, things get a bit confusing.
Especially if we are switching to CMake, which autodetects these
things, we need to use the name the authors of ICU gave it; not
our interpertation of that name.
2019-03-11 10:16:00 +01:00
glx
c540d72445
Fix: [Win32] WIN32 may not be defined, always prefer the compiler predefined macro _WIN32
2018-12-27 18:09:16 +01:00
Michael Lutz
4bf216993a
Add: [OSX] Native text caret handling.
2018-12-08 20:13:27 +01:00
Michael Lutz
8d7cd6a526
Add: [OSX] Native natural sort implementation.
2018-12-08 20:13:27 +01:00
Charles Pigott
52ed3bcbaa
Remove: A few bits of dead code
2018-10-31 12:41:49 +01:00
Charles Pigott
e0c0394e37
Fix: Remove various dead or unnecessary assignments
2018-10-31 12:41:49 +01:00
Michael Lutz
eec3f40931
Change: [Win32] Use Uniscribe instead of ICU for text caret handling.
...
This removes the need for the ICU lib on Windows.
2018-06-06 21:37:09 +02:00
Michael Lutz
f4394debdc
Add: [Win32] Native natural sort implementation.
2018-06-06 21:37:09 +02:00
michi_cc
35b77450f8
(svn r27380) -Fix: [Win32] Compilation with MSVC2015.
2015-08-10 20:21:29 +00:00
rubidium
562c269770
(svn r27377) -Codechange: use the pkg-config files of ICU as well. Since they are split into separate libraries it becomes possible to split RTL support for natural sorting, although the effect will be minimal
2015-08-09 13:54:17 +00:00
rubidium
69fac508c3
(svn r27367) -Codechange: make a distinction between the layouting part of ICU (lx) or the sorting/collation part of ICU (i18n)
2015-08-09 12:33:27 +00:00
rubidium
d534c80e94
(svn r27020) -Cleanup: some coding style consistency improvements (mostly spaces)
2014-10-15 18:31:37 +00:00
rubidium
db8d208bfc
(svn r26507) -Cleanup: remove now unused custom strndup implementation
2014-04-25 15:17:17 +00:00
rubidium
e61fe21237
(svn r26506) -Codechange: replace most of vsnprintf with vseprintf
2014-04-24 19:51:45 +00:00
rubidium
99452c51ce
(svn r26500) -Cleanup: remove unused snprintf implementation
2014-04-24 18:40:16 +00:00
rubidium
382ca0941f
(svn r26498) -Add: method for duplicating strings with similar behaviours as strecpy and strecat; give end pointer instead of a size
2014-04-24 18:21:32 +00:00
frosch
ef4c2ce031
(svn r26485) -Codechange: Replace ttd_strlcpy and ttd_strlcat with strecpy and strecat.
2014-04-23 20:44:42 +00:00
rubidium
0463dbdc9e
(svn r26482) -Codechange: add an include that allows us to undefine/redefine "unsafe" functions to prevent them from being used, and thus having to care about certain aspects of their return values
2014-04-23 20:13:33 +00:00
rubidium
ddc35bc252
(svn r26472) -Cleanup: pointless instance variable
2014-04-20 14:17:13 +00:00
fonsinchen
d0aa98ef7d
(svn r26384) -Fix [FS#5924]: Return correct values from ICU iterators in case of leading or trailing whitespace
2014-03-01 14:14:41 +00:00
rubidium
5e3aa72855
(svn r26124) -Fix: make sure all members of the default string iterator are initialised
2013-11-26 13:42:09 +00:00
rubidium
cdd6752ead
(svn r25952) -Fix [FS#5719]: do not skip numbers when skipping spaces and other sorting 'improving' characters
2013-11-08 21:15:20 +00:00
michi_cc
76367f6bf1
(svn r25653) -Add: Caret movement by words for CJK languages.
2013-08-05 20:35:31 +00:00
michi_cc
e7dc14b25a
(svn r25652) -Fix: Improve text caret movement for complex scripts.
2013-08-05 20:35:27 +00:00
rubidium
4c443bce5c
(svn r25555) -Fix [FS#5632]: [Script] Texts from scripts were not validated before they were shown, causing an assertion to trigger
2013-07-04 16:36:47 +00:00
alberth
631540c400
(svn r25527) -Fix[FS#5621]: strndup should not examine strings beyond its upper limit.
2013-06-30 08:29:51 +00:00
rubidium
7c0f34130c
(svn r25454) -Remove/Fix/Cleanup: SETX(Y) does not work at all with other than default fonts, so get rid of it
2013-06-24 18:39:19 +00:00
frosch
3e02890b73
(svn r24983) -Change: Apply the same name sorting rules to content and NewGRF list as for the server list.
2013-02-09 17:31:07 +00:00
planetmaker
c24374f99c
(svn r24900) -Fix [FS#5389]: Comments with typos (most fixes supplied by Eagle_rainbow)
2013-01-08 22:46:42 +00:00
yexo
2c99805117
(svn r23816) -Fix (r23635, r23805): make SCC_ENCODED the first entry in the StringControlCode enum since it's value is not allowed to change
2012-01-16 22:29:25 +00:00
smatz
bcd3f2bb59
(svn r23706) -Codechange: prevent 'unknown command' doxygen errors
2012-01-01 17:36:19 +00:00
truebrain
5cda1d7c90
(svn r23603) -Add: support for control commands in strings, in both network and safe/load (Rubidium)
2011-12-19 20:50:44 +00:00
rubidium
fefe22b4aa
(svn r23590) -Codechange: make the string validation settings better expandable
2011-12-18 18:37:54 +00:00
alberth
d55b380b69
(svn r22669) -Codechange: For non-windows, only test for file existence again if strtolower actually changed the name.
2011-07-16 18:43:22 +00:00
rubidium
5a620d1c65
(svn r22406) -Document: some more "random-ish" tidbits
2011-05-01 19:51:52 +00:00
rubidium
59e42ea178
(svn r22177) -Fix: make sure the right endianness is chosen with cross-compiling, and strndup is available in the binary for more exotic platforms
2011-03-03 21:43:24 +00:00
rubidium
9ca4b629cd
(svn r21846) -Codechange: move documentation towards the code to make it more likely to be updated [o-s].
2011-01-18 23:09:43 +00:00
rubidium
440a529701
(svn r21404) -Add: method for getting the length of an Utf8 string in characters
2010-12-05 22:17:25 +00:00
terkhen
4b944cb13e
(svn r21343) -Add: Function that compares strings using case insensitive natural sort.
2010-11-27 22:47:29 +00:00
rubidium
17b514ccd1
(svn r21133) -Add: function to check the validity of a string (without modifying it)
2010-11-10 17:49:14 +00:00
frosch
4bd32799f1
(svn r20286) -Codechange: Unify end of doxygen comments.
2010-08-01 19:44:49 +00:00
frosch
ed4f806f1d
(svn r20283) -Codechange: Unify start of doygen comments.
2010-08-01 19:22:34 +00:00
rubidium
80cc566553
(svn r20220) -Fix [FS#3974]: strip non-printable characters before showing it in an edit box, so when renaming a vehicle type you won't get the "SETX stuff" that some NewGRFs use
2010-07-25 23:14:59 +00:00
alberth
604e56adc2
(svn r20025) -Doc: Fix/add comments to let Doxygen know about the documentation.
2010-06-27 09:05:10 +00:00
rubidium
e3df7caf18
(svn r19874) -Fix [FS#3845]: NetBSD compilation was still broken in some cases (Krille)
2010-05-21 15:56:19 +00:00
rubidium
8aad995e32
(svn r19703) -Add: hexadecimal string filter
2010-04-24 07:31:58 +00:00
rubidium
3c5d19e411
(svn r19158) -Fix (r19149): MSVC 64 bits compile warning
2010-02-18 01:10:04 +00:00
rubidium
a6112670d0
(svn r19149) -Codechange: make our vsnprintf implementation for Windows more POSIX compliant (adf88)
2010-02-17 15:07:09 +00:00
rubidium
1b0e78c588
(svn r19148) -Fix [FS#3627]: [v]seprintf should return the number of added characters excluding '\0' on truncation (adf88)
2010-02-17 13:55:08 +00:00
glx
918b3aff5e
(svn r18919) -Fix (r15371): strcasestr() return should not be const
2010-01-26 14:04:56 +00:00
rubidium
a5d005dd53
(svn r17920) -Codechange: add a 'filter' for numbers+spaces and use it for the NewGRF parameter list
2009-10-31 14:06:16 +00:00
rubidium
7fbc33dae1
(svn r17248) -Fix: add GPL license notice where appropriate
2009-08-21 20:21:05 +00:00
rubidium
dc161c72e0
(svn r15963) -Fix [FS#2814]: (v)seprintf chopped of strings one character earlier than necessary.
2009-04-06 10:05:36 +00:00
rubidium
b25a4f8231
(svn r15718) -Cleanup: apply some comment coding style on the rest of the sources too
2009-03-15 00:32:18 +00:00
rubidium
86ca408d46
(svn r15626) -Fix [FS#2698]: UTF8 string handling could cause buffer overruns.
2009-03-06 01:23:25 +00:00
smatz
c3a7e6b693
(svn r15625) -Codechange: remove unneeded assert
2009-03-06 00:41:58 +00:00
rubidium
13bc604fde
(svn r15537) -Fix (r5215): don't allow special sprite characters (e.g. the ship sprite) as characters in input like filenames or text that is sent over the network.
2009-02-21 00:47:59 +00:00
rubidium
cecc3863cd
(svn r15376) -Fix [FS#2608] (r15371): OSX/BSD also seems to define strcasecmp under some circumstances.
2009-02-06 15:53:48 +00:00
rubidium
35c5da08c5
(svn r15371) -Codechange: add an implementation of strcasestr for when _GNU_SOURCE isn't defined.
2009-02-06 11:58:52 +00:00
glx
6d6e2232ea
(svn r15316) -Fix [NoAI]: ignore unprintable chars when returning a string to squirrel
2009-02-02 13:46:26 +00:00
smatz
0d3f5e6e74
(svn r15299) -Cleanup: remove many redundant includes
2009-01-31 20:16:06 +00:00
rubidium
07e135547e
(svn r15135) -Fix/Change: allow str_validate (part of receiving strings from the network) to pass newlines instead of replacing them with question marks, but only when asked to do so.
2009-01-18 13:12:57 +00:00
rubidium
11da45ee55
(svn r14949) -Cleanup: pointer coding style
2009-01-10 00:31:47 +00:00
skidd13
6d94be75e9
(svn r14557) -Codechange: Remove a redundant line of code
2008-11-02 11:41:13 +00:00
skidd13
38efdc8222
(svn r14546) -Codechange: Unify string(cpy|cat) functions
...
-Doc: string(cpy|cat) functions
2008-10-29 16:30:41 +00:00
rubidium
da0a0ef8ca
(svn r14541) -Fix (r14540): mingw didn't like it :(
2008-10-28 15:47:42 +00:00
rubidium
0d254e8914
(svn r14540) -Codechange: introduce [v]seprintf which are like [v]snprintf but do return the number of characters written instead of the number of characters that would be written; as size_t is unsigned substraction can cause integer underflows quite quickly.
2008-10-28 14:42:31 +00:00
glx
2ddb86eea5
(svn r14154) -Fix (r14153): strndup is a GNU extension, so it doesn't exist on all platforms
2008-08-24 17:02:21 +00:00
rubidium
d03994098b
(svn r12971) -Documentation: add @file in files that missed them and add something more than whitespace as description of files that don't have a description.
2008-05-06 15:11:33 +00:00
rubidium
d4e6a6bf57
(svn r11828) -Codechange: include table/* as the last includes and remove an unneeded include from openttd.h.
2008-01-13 01:21:35 +00:00
rubidium
a3ccdcea36
(svn r11777) -Codechange: split the string header and make do not include it when it's not necessary.
2008-01-07 14:23:25 +00:00
glx
6f7f4adffc
(svn r11744) -Codechange: don't redefine snprintf when using MinGW Runtime 3.14 or superior, as it now have snprintf() and vsnprintf conform to C99
2008-01-02 18:42:51 +00:00
rubidium
429521a7d1
(svn r11692) -Codechange: move some functions from 'functions.h' to a more logical place and remove about 50% of the includes of 'functions.h'
2007-12-25 11:26:07 +00:00
rubidium
bf98e25e43
(svn r11691) -Codechange: move+rename helpers.hpp and only include it when it is really needed.
2007-12-25 09:48:53 +00:00
rubidium
01e20c9140
(svn r11674) -Codechange: refactor some functions out of macros.h into more logical locations.
2007-12-21 19:21:21 +00:00
skidd13
71c4325c50
(svn r11481) -Codechange: Rename the HASBIT function to fit with the naming style
2007-11-19 21:02:30 +00:00
rubidium
197245eefe
(svn r10566) -Fix [FS#1025]: a NewGRF could have a information message that is too long for the internal buffers to handle. We should not crash on such a case even though the message is too big for the window anyway.
2007-07-14 22:37:40 +00:00
belugas
dfe5533db6
(svn r9556) -Documentation: doxygen and comment-style changes. 'R', 'S'.. The end of the preliminary work is near
2007-04-04 01:35:16 +00:00
Darkvater
3b3c7554b7
(svn r9083) -Codechange: Be more lenient when trimming UTF-8 strings and don't terminate the string when an invalid encoding is encountered, but only focus on maximum length.
2007-03-10 00:26:19 +00:00
tron
e092b2d8c7
(svn r9015) -Fix
...
NL at EOF
2007-03-05 05:03:28 +00:00
Darkvater
915ae8ffc2
(svn r9012) -Fix/Feature (UTF8): When cutting strings into multiple lines also take into consideration whitespace characters of more than 1 byte length (eg IDEOGRAPHIC SPACE, IsWhitespace() function). When trimming such strings, account for multiple-byte long sequences so use *Utf8PrevChar(v) = '\0'.
...
-Codechange: Add a function Utf8TrimString() that properly trims a string to an UTF8 encoding seperation instead of somewhere in the wild (and use it in the chat area)
2007-03-05 00:45:56 +00:00
Darkvater
5ed33e549e
(svn r8093) -Codechange: Add a function to get a string representation of an MD5SUM and use it.
2007-01-13 13:47:57 +00:00
Darkvater
c09b7e7fac
(svn r8090) -[win32] Fix (r8089): for *nprintf 'ret = count' NOT 'ret = 0'...
2007-01-13 13:13:32 +00:00
Darkvater
120f57b865
(svn r8089) -[win32] MS-borkedness: All *nprintf functions are broken, but we didn't test to fix it ourselves when 'len = count'.
2007-01-13 13:06:18 +00:00