Commit graph

91 commits

Author SHA1 Message Date
Fredrik Roubert
0178a07a26 ICU-22793 Clang-Tidy: google-readability-casting
https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/google/readability-casting.html
2024-07-04 22:32:12 +02:00
Fredrik Roubert
91721504ef ICU-22621 Clang-Tidy: modernize-return-braced-init-list
https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/modernize/return-braced-init-list.html
2024-03-21 13:50:45 +01:00
Fredrik Roubert
ce052f52c2 ICU-22621 Clang-Tidy: readability-delete-null-pointer
https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/readability/delete-null-pointer.html
2024-03-18 17:14:23 +01:00
Fredrik Roubert
5401c12018 ICU-22621 Clang-Tidy: modernize-use-nullptr
https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/modernize/use-nullptr.html
2024-03-15 14:31:54 +01:00
Fredrik Roubert
2de88f9d9c ICU-21833 Replace UChar with char16_t in all C++ code. 2023-02-06 19:27:44 +01:00
Fredrik Roubert
2e0d30cfcf ICU-21833 Replace NULL with nullptr in all C++ code. 2023-02-03 20:20:38 +01:00
Fredrik Roubert
030fa1a479 ICU-21148 Consistently use standard lowercase true/false everywhere.
This is the normal standard way in C, C++ as well as Java and there's no
longer any reason for ICU to be different. The various internal macros
providing custom boolean constants can all be deleted and code as well
as documentation can be updated to use lowercase true/false everywhere.
2022-09-07 20:56:33 +02:00
Andy Heninger
0ec329c6e1 ICU-21662 Improve UVector error handling.
This is the next installment of UVector error handling cleanup. It includes:

- Revise UStack to follow the conventions of UVector, to leave the stack
  unmodified when there is an incoming error code. And, for stacks with a
  deleter function, to delete the incoming object if it cannot be
  succesfully pushed.

 - Review all useage of UStack in ICU; adjust call sites as needed.

 - Review all uses of UVector::addElementX() in the implementation of
   - Regular Expressions
   - Break Iteration
   - toolutil/xmlparser

   changing to the updated functions, and adjusting call sites as needed.
2021-09-08 17:24:52 -07:00
Fredrik Roubert
0a1cfa398c ICU-20973 Use standard keywords true & false to initialize type bool.
Now when all equality operators return standard bool (commit 633438f),
it no longer makes any sense to use the ICU4C constants TRUE & FALSE
or local variables of type UBool for their return value.
2021-08-26 18:53:10 +02:00
Fredrik Roubert
633438f8da ICU-20973 Change all equality operator return types from UBool to bool. 2021-08-17 00:35:00 +02:00
Andy Heninger
c26aebe802 ICU-21662 Rename UVector::addElement().
This is the first step towards improving the error handling and out-of-memory
behavior of UVector::addElement(). A followup PR will add back a new addElement()
with corrected error handling, then additional followups will switch call sites
from the original (renamed) function to the new addElement().

This commit includes no logic or behavior changes; it only renames the existing functions.
2021-07-28 15:36:50 -07:00
Andy Heninger
54a60fe6f4 ICU-11548 Improve regex static UnicodeSets handling
Compiled regular expression patterns make use of several shared common
UnicodeSets. This change simplifies the creation and use of these
static UnicodeSets.

- Pointer fields to the static sets are removed from the compiled patterns,
  and the static variables are accessed directly. The deleted pointers
  were a hold-over from earlier code that did not use shared statics.

- The UnicodeSet pattern literals are changed from hex constants to
  u"string literals".

- The size of fRuleSets (from regexst.h) is changed from a hard-coded 10
  to the number of UnicodeSets actually required. Doing this required
  a change to regexcst.pl to export the required size. Changing and
  rerunning this perl code resulted in massive but benign changes to
  the generated file regexcst.h, the result of perl having changed its
  order of enumeration of hashes since the file was last regenerated.

- UnicodeSets are frozen when possible. Should result in faster matching.
2020-01-30 15:13:07 -08:00
Andy Heninger
e94657e614 ICU-20863 Regex Named Capture map, add a missing nullptr check. 2019-10-28 16:53:18 -07:00
Andy Heninger
03937347fb ICU-20863 Regex, lazy creation and reduced size of map from capture group names to numbers. 2019-10-22 17:23:26 -07:00
Fredrik Roubert
5d6d29b76a ICU-20601 Remove superfluous semicolons (-Wextra-semi-stmt).
These are the same changes for the C++ code as was done for the C code
by commit 17606e0345.
2019-08-15 12:30:21 +02:00
Andy Heninger
242e02c388 ICU-12764 icu4c utf-8 source files, update Copyright notices.
X-SVN-Rev: 39583
2017-01-20 00:20:31 +00:00
Michael Ow
61607c2773 ICU-12564 Update copyright notice in trunk
X-SVN-Rev: 38848
2016-06-15 18:58:17 +00:00
Yoshito Umaoka
00ca13e126 ICU-12564 Reverted r38761 and r38762, because we want to prepend the Unicode copyright for existing source files, instead of replacing copyright comments.
X-SVN-Rev: 38776
2016-05-31 21:45:07 +00:00
Michael Ow
c9f199a30f ICU-12564 Update copyright notice in ICU4C
X-SVN-Rev: 38761
2016-05-26 22:32:17 +00:00
Fredrik Roubert
ebc0f5b22a ICU-12012 Replace all sizeof p / sizeof T with UPRV_LENGTHOF().
R=markus.icu@gmail.com

Review URL: https://codereview.appspot.com/288320043 .

X-SVN-Rev: 38347
2016-02-24 21:48:56 +00:00
Andy Heninger
8dba7301b7 ICU-11554 Fix regex bug with look-behind matching & UTF-8 input.
X-SVN-Rev: 38056
2015-10-09 20:01:46 +00:00
Andy Heninger
ce09d8a4bc ICU-11393 Regex, add pattern chars R v and h
X-SVN-Rev: 37057
2015-02-24 00:24:59 +00:00
Andy Heninger
ec3f77f878 ICU-5312 Regular Expressions Named Capture.
X-SVN-Rev: 37040
2015-02-18 23:56:19 +00:00
Yoshito Umaoka
ff4fd29a21 ICU-11302 Proper error handling with utext_clone in regular expression implementation.
X-SVN-Rev: 36673
2014-10-13 17:46:34 +00:00
Andy Heninger
2914240e10 ICU-10463 Regular Expressions, remove overlooked function boilerplate from r34565 check-in; should fix failing Windows build.
X-SVN-Rev: 34569
2013-10-15 21:19:27 +00:00
Andy Heninger
10dd7ed47b ICU-10463 Regular Expressions, rework debug conditionals to fix build failures on clang, and to somewhat simplify.
X-SVN-Rev: 34565
2013-10-14 22:11:21 +00:00
Andy Heninger
c74df646b7 ICU-6947 implement UREGEX_LITERAL flag.
X-SVN-Rev: 31398
2012-02-15 01:30:55 +00:00
Andy Heninger
8bb50b4c00 ICU-9102 Remove uneeded u_init() from RegexPattern constructor
X-SVN-Rev: 31365
2012-02-10 22:50:02 +00:00
Andy Heninger
f777c14042 ICU-8444 Remove PATTERN_IS_UTEXT from regex API.
X-SVN-Rev: 29845
2011-04-21 22:57:19 +00:00
Michael Grady
751473d25a ICU-7813 64bit regex API, 7675: UText-based Regex to use native indexes, 7764: Improved UText-regex API error handling, 7855: UText regex group API returns shallow clone, 7851: Set region and start position, 7763: Inline regex progress callback function.
X-SVN-Rev: 28647
2010-09-18 03:07:17 +00:00
Peter Edberg
7eb5ef037e ICU-7446 Note that UREGEX_LITERAL is unimplemented, and return U_REGEX_UNIMPLEMENTED for it.
X-SVN-Rev: 27718
2010-02-27 03:40:56 +00:00
Peter Edberg
411a93712a ICU-4521 Merge from branch, fixes for 64bit alignment & type conversions
X-SVN-Rev: 27670
2010-02-25 06:33:29 +00:00
Peter Edberg
a6c3b1905e ICU-4521 Fix dangling pointer if a UnicodeString passed to RegexPattern::compile
doesn't persist for the life of the RegexPattern; ensure RegexPattern == still works.

X-SVN-Rev: 27541
2010-02-11 06:57:20 +00:00
Peter Edberg
f308bffc8c ICU-4521 Disambiguate signatures for RegexPattern::matcher,RegexMatcher::group for 0 pointers; fix warnings
X-SVN-Rev: 27522
2010-02-09 20:17:52 +00:00
Michael Grady
8216117f21 ICU-4521 UText-based regex implementation
X-SVN-Rev: 27482
2010-02-03 02:59:35 +00:00
Andy Heninger
20e7751c2c ICU-6998 swat a bunch of compiler warnings.
X-SVN-Rev: 26288
2009-07-10 18:58:35 +00:00
Andy Heninger
49db0e1ead ICU-3491 remove extra calls to u_init(), and simplify the API comments for u_init().
X-SVN-Rev: 26279
2009-07-09 22:50:01 +00:00
George Rhoten
acd8f28273 ICU-6076 Make sure that we objects are fully initialized for deletion, and
that we don't leak memory after an allocation failure.

X-SVN-Rev: 23450
2008-02-17 18:26:39 +00:00
Michael Ow
d4081eab27 ICU-6132 Set the retMatcher's status to the correct error code.
X-SVN-Rev: 23266
2008-01-17 22:57:16 +00:00
Michael Ow
5bdd0a03d1 ICU-6132 Check null pointer allocation and perform appropriate actions in regexst.cpp, remtrans.cpp, and repattrn.cpp.
X-SVN-Rev: 23235
2008-01-14 23:25:13 +00:00
Andy Heninger
67e296e813 ICU-5386 Regular Expressions update, improved Java 1.5 compatibility. svn merge -r 22747:23061 from branches/andy/regex
X-SVN-Rev: 23063
2007-12-11 21:30:10 +00:00
George Rhoten
32416a8a9c ICU-5125 Remove unusable code.
X-SVN-Rev: 19435
2006-03-25 00:15:56 +00:00
George Rhoten
4b8ef3e6e6 ICU-4288 Mostly fixes for --enable-strict for gcc 3.4 (Fedora Core 3)
X-SVN-Rev: 17040
2004-12-30 07:25:51 +00:00
George Rhoten
0da7a95df6 ICU-3905 Fix some compiler warnings
X-SVN-Rev: 16770
2004-11-05 18:18:36 +00:00
Andy Heninger
9f286086d1 ICU-3337 better detect incorrect usage of Regex APIs.
X-SVN-Rev: 16595
2004-10-22 16:32:12 +00:00
George Rhoten
7dd960a8b4 ICU-4078 Loosely couple the cleanup functions.
X-SVN-Rev: 16307
2004-09-12 23:07:29 +00:00
George Rhoten
7c225a89aa ICU-4072 Explicitly use U_EXPORT2 to specify calling convention of static C++ code.
X-SVN-Rev: 16183
2004-08-24 17:38:33 +00:00
Eric Mader
abefef5844 ICU-3770 Updated copyright notices for ICU 3.0
X-SVN-Rev: 15411
2004-05-19 20:42:44 +00:00
Andy Heninger
efeb3b480d ICU-2421 Redo Regex C API changes lost in OSS crash
X-SVN-Rev: 14721
2004-03-22 22:16:21 +00:00
Andy Heninger
f21db4aa62 ICU-3423 fix problems in RegexPattern assignment/copy/clone
X-SVN-Rev: 14255
2004-01-08 00:40:59 +00:00