[med-svn] [r-cran-stringi] 01/06: New upstream version 1.1.5
Andreas Tille
tille at debian.org
Thu Oct 12 20:40:28 UTC 2017
This is an automated email from the git hooks/post-receive script.
tille pushed a commit to branch master
in repository r-cran-stringi.
commit e34d676b174e1b17eb1f7516ddb1f3daf7c133a4
Author: Andreas Tille <tille at debian.org>
Date: Thu Oct 12 22:25:48 2017 +0200
New upstream version 1.1.5
---
DESCRIPTION | 21 +-
INSTALL | 40 ++-
LICENSE | 6 +-
MD5 | 549 +++++++++++++++----------------
NAMESPACE | 2 -
NEWS | 45 ++-
R/ICU_settings.R | 2 +-
R/compare.R | 2 +-
R/draft_encdetect.R | 24 +-
R/draft_files.R | 12 +-
R/encoding.R | 2 +-
R/encoding_conversion.R | 2 +-
R/encoding_detection.R | 2 +-
R/encoding_management.R | 12 +-
R/escape.R | 2 +-
R/install.R | 248 ++++++++------
R/internal_prepare_arg.R | 2 +-
R/internal_test.R | 2 +-
R/join.R | 2 +-
R/length.R | 2 +-
R/locale.R | 2 +-
R/locale_management.R | 2 +-
R/opts.R | 2 +-
R/pad.R | 2 +-
R/random.R | 2 +-
R/reverse.R | 2 +-
R/search.R | 2 +-
R/search_count_4.R | 2 +-
R/search_count_bound.R | 2 +-
R/search_detect_4.R | 2 +-
R/search_extract_4.R | 2 +-
R/search_extract_bound.R | 2 +-
R/search_locate_4.R | 2 +-
R/search_locate_bound.R | 2 +-
R/search_match_4.R | 2 +-
R/search_replace_4.R | 2 +-
R/search_replace_na.R | 2 +-
R/search_split_4.R | 2 +-
R/search_split_bound.R | 2 +-
R/search_startsendswith_4.R | 2 +-
R/search_subset_4.R | 2 +-
R/sort.R | 2 +-
R/stats.R | 2 +-
R/stringi-package.R | 4 +-
R/sub.R | 4 +-
R/time_calendar.R | 2 +-
R/time_format.R | 2 +-
R/time_symbols.R | 2 +-
R/time_zone.R | 2 +-
R/todo_charclass.R | 2 +-
R/todo_justify.R | 2 +-
R/todo_rbnf.R | 2 +-
R/todo_search_in.R | 2 +-
R/todo_split.R | 2 +-
R/trans_casemap.R | 2 +-
R/trans_normalization.R | 2 +-
R/trans_other.R | 2 +-
R/trans_transliterate.R | 2 +-
R/trim.R | 2 +-
R/utils.R | 2 +-
R/wrap.R | 2 +-
configure | 288 ++++++++++++----
inst/AUTHORS | 2 +-
inst/CITATION | 6 +-
man/oper_comparison.Rd | 25 +-
man/oper_plus.Rd | 1 -
man/stri_compare.Rd | 11 +-
man/stri_count.Rd | 1 -
man/stri_count_boundaries.Rd | 7 +-
man/stri_datetime_add.Rd | 5 +-
man/stri_datetime_create.Rd | 1 -
man/stri_datetime_fields.Rd | 1 -
man/stri_datetime_format.Rd | 2 +-
man/stri_datetime_fstr.Rd | 1 -
man/stri_datetime_now.Rd | 1 -
man/stri_datetime_symbols.Rd | 1 -
man/stri_detect.Rd | 3 +-
man/stri_dup.Rd | 1 -
man/stri_duplicated.Rd | 1 -
man/stri_enc_detect.Rd | 15 +-
man/stri_enc_detect2.Rd | 21 +-
man/stri_enc_fromutf32.Rd | 1 -
man/stri_enc_info.Rd | 3 +-
man/stri_enc_isascii.Rd | 1 -
man/stri_enc_isutf16.Rd | 1 -
man/stri_enc_isutf8.Rd | 1 -
man/stri_enc_list.Rd | 1 -
man/stri_enc_mark.Rd | 3 +-
man/stri_enc_set.Rd | 9 +-
man/stri_enc_toascii.Rd | 1 -
man/stri_enc_tonative.Rd | 1 -
man/stri_enc_toutf32.Rd | 1 -
man/stri_enc_toutf8.Rd | 1 -
man/stri_encode.Rd | 3 +-
man/stri_escape_unicode.Rd | 1 -
man/stri_extract.Rd | 21 +-
man/stri_extract_boundaries.Rd | 13 +-
man/stri_flatten.Rd | 1 -
man/stri_info.Rd | 1 -
man/stri_install.Rd | 64 ----
man/stri_isempty.Rd | 1 -
man/stri_join.Rd | 3 +-
man/stri_join_list.Rd | 3 +-
man/stri_length.Rd | 1 -
man/stri_list2matrix.Rd | 1 -
man/stri_locale_info.Rd | 1 -
man/stri_locale_list.Rd | 1 -
man/stri_locale_set.Rd | 3 +-
man/stri_locate.Rd | 27 +-
man/stri_locate_boundaries.Rd | 13 +-
man/stri_match.Rd | 7 +-
man/stri_numbytes.Rd | 1 -
man/stri_opts_brkiter.Rd | 1 -
man/stri_opts_collator.Rd | 1 -
man/stri_opts_fixed.Rd | 1 -
man/stri_opts_regex.Rd | 1 -
man/stri_order.Rd | 1 -
man/stri_pad.Rd | 3 +-
man/stri_rand_lipsum.Rd | 1 -
man/stri_rand_shuffle.Rd | 1 -
man/stri_rand_strings.Rd | 1 -
man/stri_read_lines.Rd | 5 +-
man/stri_read_raw.Rd | 7 +-
man/stri_replace.Rd | 19 +-
man/stri_replace_na.Rd | 1 -
man/stri_reverse.Rd | 1 -
man/stri_split.Rd | 5 +-
man/stri_split_boundaries.Rd | 7 +-
man/stri_split_lines.Rd | 2 +-
man/stri_startsendswith.Rd | 9 +-
man/stri_stats_general.Rd | 1 -
man/stri_stats_latex.Rd | 1 -
man/stri_sub.Rd | 3 +-
man/stri_subset.Rd | 5 +-
man/stri_timezone_info.Rd | 1 -
man/stri_timezone_list.Rd | 1 -
man/stri_timezone_set.Rd | 1 -
man/stri_trans_casemap.Rd | 13 +-
man/stri_trans_char.Rd | 1 -
man/stri_trans_general.Rd | 1 -
man/stri_trans_list.Rd | 1 -
man/stri_trans_nf.Rd | 13 +-
man/stri_trim.Rd | 10 +-
man/stri_unescape_unicode.Rd | 1 -
man/stri_unique.Rd | 1 -
man/stri_width.Rd | 1 -
man/stri_wrap.Rd | 1 -
man/stri_write_lines.Rd | 1 -
man/stringi-arguments.Rd | 2 +-
man/stringi-encoding.Rd | 34 +-
man/stringi-locale.Rd | 2 +-
man/stringi-package.Rd | 18 +-
man/stringi-search-boundaries.Rd | 19 +-
man/stringi-search-charclass.Rd | 2 +-
man/stringi-search-coll.Rd | 8 +-
man/stringi-search-fixed.Rd | 2 +-
man/stringi-search-regex.Rd | 2 +-
man/stringi-search.Rd | 47 ++-
src/Makevars.in | 3 +-
src/Makevars.win | 6 +-
src/install.libs.R.in | 4 +
src/stri_ICU_settings.cpp | 2 +-
src/stri_TODO_justify.cpp | 2 +-
src/stri_TODO_splitpos.cpp | 2 +-
src/stri_TODO_uchar.cpp | 2 +-
src/stri_brkiter.cpp | 4 +-
src/stri_brkiter.h | 27 +-
src/stri_bytesearch_matcher.h | 2 +-
src/stri_collator.cpp | 2 +-
src/stri_common.cpp | 2 +-
src/stri_compare.cpp | 2 +-
src/stri_container_base.cpp | 2 +-
src/stri_container_base.h | 2 +-
src/stri_container_bytesearch.cpp | 2 +-
src/stri_container_bytesearch.h | 2 +-
src/stri_container_charclass.h | 2 +-
src/stri_container_double.h | 2 +-
src/stri_container_integer.h | 2 +-
src/stri_container_listint.cpp | 2 +-
src/stri_container_listint.h | 2 +-
src/stri_container_listraw.cpp | 2 +-
src/stri_container_listraw.h | 2 +-
src/stri_container_listutf8.cpp | 2 +-
src/stri_container_listutf8.h | 2 +-
src/stri_container_logical.h | 2 +-
src/stri_container_regex.cpp | 2 +-
src/stri_container_regex.h | 2 +-
src/stri_container_usearch.cpp | 2 +-
src/stri_container_usearch.h | 2 +-
src/stri_container_utf16.cpp | 2 +-
src/stri_container_utf16.h | 2 +-
src/stri_container_utf8.cpp | 2 +-
src/stri_container_utf8.h | 2 +-
src/stri_container_utf8_indexable.cpp | 12 +-
src/stri_container_utf8_indexable.h | 2 +-
src/stri_encoding_conversion.cpp | 2 +-
src/stri_encoding_detection.cpp | 2 +-
src/stri_encoding_management.cpp | 10 +-
src/stri_escape.cpp | 2 +-
src/stri_exception.cpp | 548 +++++++++++++++---------------
src/stri_exception.h | 12 +-
src/stri_exports.h | 2 +-
src/stri_external.h | 9 +-
src/stri_interval.h | 2 +-
src/stri_intvec.h | 2 +-
src/stri_join.cpp | 2 +-
src/stri_length.cpp | 2 +-
src/stri_macros.h | 40 ++-
src/stri_messages.h | 2 +-
src/stri_pad.cpp | 2 +-
src/stri_prepare_arg.cpp | 2 +-
src/stri_random.cpp | 2 +-
src/stri_reverse.cpp | 2 +-
src/stri_search_boundaries_count.cpp | 2 +-
src/stri_search_boundaries_extract.cpp | 2 +-
src/stri_search_boundaries_locate.cpp | 2 +-
src/stri_search_boundaries_split.cpp | 2 +-
src/stri_search_class_count.cpp | 2 +-
src/stri_search_class_detect.cpp | 2 +-
src/stri_search_class_extract.cpp | 2 +-
src/stri_search_class_locate.cpp | 2 +-
src/stri_search_class_replace.cpp | 2 +-
src/stri_search_class_split.cpp | 2 +-
src/stri_search_class_startsendswith.cpp | 2 +-
src/stri_search_class_subset.cpp | 2 +-
src/stri_search_class_trim.cpp | 2 +-
src/stri_search_coll_count.cpp | 2 +-
src/stri_search_coll_detect.cpp | 2 +-
src/stri_search_coll_extract.cpp | 2 +-
src/stri_search_coll_locate.cpp | 2 +-
src/stri_search_coll_replace.cpp | 2 +-
src/stri_search_coll_split.cpp | 2 +-
src/stri_search_coll_startsendswith.cpp | 2 +-
src/stri_search_coll_subset.cpp | 2 +-
src/stri_search_common.cpp | 2 +-
src/stri_search_fixed_count.cpp | 2 +-
src/stri_search_fixed_detect.cpp | 2 +-
src/stri_search_fixed_extract.cpp | 2 +-
src/stri_search_fixed_locate.cpp | 2 +-
src/stri_search_fixed_replace.cpp | 2 +-
src/stri_search_fixed_split.cpp | 2 +-
src/stri_search_fixed_startsendswith.cpp | 2 +-
src/stri_search_fixed_subset.cpp | 2 +-
src/stri_search_in.cpp | 2 +-
src/stri_search_other_replace.cpp | 2 +-
src/stri_search_other_split.cpp | 2 +-
src/stri_search_regex_count.cpp | 2 +-
src/stri_search_regex_detect.cpp | 2 +-
src/stri_search_regex_extract.cpp | 2 +-
src/stri_search_regex_locate.cpp | 2 +-
src/stri_search_regex_match.cpp | 2 +-
src/stri_search_regex_replace.cpp | 2 +-
src/stri_search_regex_split.cpp | 2 +-
src/stri_search_regex_subset.cpp | 2 +-
src/stri_sort.cpp | 2 +-
src/stri_stats.cpp | 2 +-
src/stri_string8.h | 2 +-
src/stri_string8buf.h | 2 +-
src/stri_stringi.cpp | 7 +-
src/stri_stringi.h | 2 +-
src/stri_sub.cpp | 140 ++++----
src/stri_test.cpp | 2 +-
src/stri_time_calendar.cpp | 2 +-
src/stri_time_format.cpp | 2 +-
src/stri_time_symbols.cpp | 2 +-
src/stri_time_zone.cpp | 2 +-
src/stri_trans_casemap.cpp | 2 +-
src/stri_trans_normalization.cpp | 2 +-
src/stri_trans_other.cpp | 2 +-
src/stri_trans_transliterate.cpp | 2 +-
src/stri_ucnv.cpp | 2 +-
src/stri_ucnv.h | 2 +-
src/stri_uloc.cpp | 2 +-
src/stri_utils.cpp | 2 +-
src/stri_wrap.cpp | 2 +-
src/uconfig_local.h.in | 2 +-
276 files changed, 1547 insertions(+), 1394 deletions(-)
diff --git a/DESCRIPTION b/DESCRIPTION
index 1425e19..1db29c1 100644
--- a/DESCRIPTION
+++ b/DESCRIPTION
@@ -1,32 +1,33 @@
Package: stringi
-Version: 1.1.2
-Date: 2016-09-30
+Version: 1.1.5
+Date: 2017-04-07
Title: Character String Processing Facilities
Description: Allows for fast, correct, consistent, portable,
as well as convenient character string/text processing in every locale
and any native encoding. Owing to the use of the ICU library,
the package provides R users with platform-independent functions
- known to Java, Perl, Python, PHP, and Ruby programmers. Among available
- features there are: pattern searching (e.g., with ICU Java-like regular
+ known to Java, Perl, Python, PHP, and Ruby programmers. Available
+ features include: pattern searching (e.g., with ICU Java-like regular
expressions or the Unicode Collation Algorithm), random string generation,
case mapping, string transliteration, concatenation,
Unicode normalization, date-time formatting and parsing, etc.
URL: http://www.gagolewski.com/software/stringi/
http://site.icu-project.org/ http://www.unicode.org/
BugReports: http://github.com/gagolews/stringi/issues
-SystemRequirements: ICU4C (>= 50, optional)
+SystemRequirements: ICU4C (>= 52, optional)
Type: Package
-Depends: R (>= 2.13.1)
+Depends: R (>= 2.14)
Imports: tools, utils, stats
Biarch: TRUE
License: file LICENSE
-Author: Marek Gagolewski [aut, cre] and Bartek Tartanus [ctb] (stringi source code);
+Author: Marek Gagolewski [aut, cre], Bartek Tartanus [ctb],
+ and other contributors (stringi source code);
IBM and other contributors (ICU4C 55.1 source code);
Unicode, Inc. (Unicode Character Database)
Maintainer: Marek Gagolewski <gagolews at rexamine.com>
-RoxygenNote: 5.0.1
+RoxygenNote: 6.0.1
NeedsCompilation: yes
-Packaged: 2016-09-30 14:18:17 UTC; gagolews
+Packaged: 2017-04-07 09:50:47 UTC; gagolews
License_is_FOSS: yes
Repository: CRAN
-Date/Publication: 2016-10-01 14:26:04
+Date/Publication: 2017-04-07 13:08:03 UTC
diff --git a/INSTALL b/INSTALL
index ec6b6a5..f287734 100644
--- a/INSTALL
+++ b/INSTALL
@@ -7,7 +7,7 @@ Introductory remark
We are putting great effort so that the package may be installed successfully
by simply calling `install.packages("stringi")`. However, due to the
-overwhelming complexity of the ICU4C library, on which stringi bases,
+overwhelming complexity of the ICU4C library, on which stringi is based,
and the colorful variety of operating systems, their flavors, and particular
setups, some users may still experience a few issues while the package
is compiled from sources.
@@ -19,7 +19,7 @@ customized installation.
stringi vs the ICU4C library
----------------------------
-The stringi package depends on the ICU4C >= 50 library.
+The stringi package depends on the ICU4C >= 52 library.
If you build the package from sources and either:
* these requirements are not met (check out http://site.icu-project.org/download,
@@ -56,7 +56,7 @@ of the package. It already includes the `ICU` data archives.
You may also prepare your own `.tar.gz`-ipped distribution of `stringi`
as follows:
-1. File the `git clone https://github.com/gagolews/stringi.git` command.
+1. Execute the `git clone https://github.com/gagolews/stringi.git` command.
2. Edit the `.Rbuildignore` file and get rid of the `^src/icu55/data` line.
3. Run `R CMD build stringi_dir_name`.
4. Install the obtained `.tar.gz` file on your machine(s), e.g.,
@@ -67,14 +67,14 @@ via `install.packages("stringi_xxx.tar.gz")`
C++11 support
-------------
-For R >= 3.1.0 we require (by default) C++11 support to build the package
+For R >= 3.1.0 we suggest (by default) C++11 support to build the package
from sources. This is because ICU4C uses the `long long` type in a few
functions, and this is not part of the C++98 standard.
Yet, if your compiler does not support C++11 or it has not been properly
configured (check out `<R_inst_dir>/etc/Makeconf`) but you are sure it
tolerates the `long long` type (which is very common -- this is checked by the
-`configure` script anyway), you may disable the C++11 usage by passing
+`configure` script anyway), you may disable the use of C++11 by passing
the `--disable-cxx11` argument to the `configure` script.
@@ -93,10 +93,6 @@ Auxiliary `./configure` features and options:
* `--with-extra-cxxflags=FLAGS`: Additional C++ compiler flags.
* `--with-extra-ldflags=FLAGS`: Additional linker flags.
* `--with-extra-libs=FLAGS`: Additional libraries to link against.
-* `--enable-gcc-debug`: Enable -UNDEBUG when compiling stringi
- (for stringi developers).
-* `--enable-gcc-pedantic`: Enable `-Wall -Wextra -ansi -pedantic` when compiling
- stringi with gcc/clang (for stringi developers).
Some influential environment variables:
@@ -109,6 +105,19 @@ Some influential environment variables:
`/usr/lib64/R`. Note that `$R_HOME/bin/R` should point to the R executable.
* `CAT`: The `cat` command used for generating the list of source files
to compile.
+* `PKG_CONFIG`:The `pkg-config` command used for getting necessary compiler
+ flags to link to and existing libicu installation.
+* `STRINGI_DISABLE_CXX11`: Disable the use of C++11,
+ see also `--disable-cxx11`.
+* `STRINGI_DISABLE_PKG_CONFIG`: Force the use of the ICU bundle,
+ see also `--disable-pkg-config`.
+* `STRINGI_DISABLE_ICU_BUNDLE`: Force the use of the system ICU,
+ see also `--disable-icu-bundle`.
+* `STRINGI_CFLAGS`: see `--with-extra-cflags`.
+* `STRINGI_CPPFLAGS`: see `--with-extra-cppflags`.
+* `STRINGI_CXXFLAGS`: see `--with-extra-cxxflags`.
+* `STRINGI_LDFLAGS`: see `--with-extra-ldflags`.
+* `STRINGI_LIBS`: see `--with-extra-libs`.
Final remarks
@@ -117,11 +126,11 @@ Final remarks
We expect that with a properly configured C++11 compiler and properly
installed system ICU4C distribution, you should have no problems
with installing the package. Also, if you use our ICU4C bundle and you
-have a working internet access, all is expected to lead to a happy ending.
+have a working internet access, all is expected to lead to a happy end.
-The package is frequently tested on the following OSes (i.a., via Docker):
-* Fedora: 20, 21, latest,
-* CentOS: 7,
+The package is frequently tested on the following OSes:
+* Fedora: 20, 24, latest,
+* CentOS: latest,
* OpenSUSE: latest,
* Ubuntu: xenial, trusty,
* Debian: testing,
@@ -129,6 +138,11 @@ The package is frequently tested on the following OSes (i.a., via Docker):
* Mageia: latest,
* Windows (via WinBuilder),
* Solaris 10 (gcc/i386, CC/i386, CC/Sparc),
+* Travis CI (os: linux, r: release;
+ os: linux, r: oldrel;
+ os: linux, r: devel,
+ os: osx, r: release,
+ os: osx, r: devel),
and of course on CRAN machines.
Yet, if you do not manage to set up a successful stringi build, do not
diff --git a/LICENSE b/LICENSE
index 312f1f7..5046b43 100644
--- a/LICENSE
+++ b/LICENSE
@@ -1,7 +1,7 @@
** The R and C++ source code of the stringi package **
** [including src/stri_* files] **
-Copyright (C) 2013-2016, Marek Gagolewski and Bartek Tartanus
+Copyright (c) 2013-2017, Marek Gagolewski and other contributors.
All rights reserved.
Redistribution and use in source and binary forms, with or without
@@ -34,7 +34,7 @@ EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
** The ICU4C library **
** [src/icu55/* files] **
-Copyright (c) 1991-2016 IBM; Unicode, Inc; Google, Inc; TaBE
+Copyright (c) 1991-2017 IBM; Unicode, Inc; Google, Inc; TaBE
Project; Pai-Hsiang Hsiao; Computer Systems and Communication Lab,
Institute of Information Science, Academia Sinica; Chih-Hao Tsai;
Nara Institute of Science and Technology; Brian Eugene Wilson; Robert
@@ -67,7 +67,7 @@ http://source.icu-project.org/repos/icu/icuhtml/trunk/legal/copyright.html.
** Unicode Data Files and Software **
-Copyright (c) 1991-2016 Unicode, Inc.
+Copyright (c) 1991-2017 Unicode, Inc.
Distributed under the Terms of Use
in http://www.unicode.org/copyright.html.
See also http://source.icu-project.org/repos/icu/icu/trunk/license.html.
diff --git a/MD5 b/MD5
index 7e8389c..3d42f77 100644
--- a/MD5
+++ b/MD5
@@ -1,164 +1,163 @@
-94d98723af945077e27023a4f9cc6092 *DESCRIPTION
-9c47bdb52da886a78df8171543fa053f *INSTALL
-917d54fd0de4f028322b2265d9307c5e *LICENSE
-0c7ba4582547b178091a7ddfab722771 *NAMESPACE
-c85de79f683ea06e161dd40c218e21d1 *NEWS
-041b295d49331c3a79af471c6235e2b8 *R/ICU_settings.R
-135398ce83412fceb3eafedb662534a8 *R/compare.R
-b323636ececa61126e5c47358610d4d0 *R/draft_encdetect.R
-90dc2f45e85528fd2b07140b5c660453 *R/draft_files.R
-ee8672ab56fa3348b78ee95cb3fcb30b *R/encoding.R
-02db3296cc0088c2bc08c7d0a6904b9f *R/encoding_conversion.R
-d79fadd8d5edae6c5a010cafe9ae7be4 *R/encoding_detection.R
-a618076b5803b944b78403e947ef2609 *R/encoding_management.R
-678c1020c1c2ccf9d696cfaafc0bdffd *R/escape.R
-c0639af6573d20262a64151bd49c730c *R/install.R
-16d3a813dd97d0ab0935551717272fae *R/internal_prepare_arg.R
-cebd0e205ca829e3664b050fce060b23 *R/internal_test.R
-477bba6375b930039c292ffdc82850e3 *R/join.R
-91bc84f4be70fd0b5ecc7b4bfce3e98f *R/length.R
-af8206ad54e30befccda70853bbc3f95 *R/locale.R
-51535c772198c3d01b2c22557f82051f *R/locale_management.R
-2a3130e30d5baf54596289f91a493444 *R/opts.R
-d8b9def7289c02b4bc88a1862ad8cc83 *R/pad.R
-7ae5bed1a706fcc80b528c76cdbd4e49 *R/random.R
-60dd61a03dae15e022060c16b00312ca *R/reverse.R
-80b33ae1699e71f31193d0c70f8d4b6d *R/search.R
-d61cae4ea8ab970688cff9830fcd5d8e *R/search_count_4.R
-081583656384086863ffca191dfa5063 *R/search_count_bound.R
-6a8d76dd0e79881d1c8a7ef2f04b3cbe *R/search_detect_4.R
-e5a91ba8ad0f51baca0bcf9e543ce5ce *R/search_extract_4.R
-236d97c2edfaeace8ca38d86fa2aca9d *R/search_extract_bound.R
-046237598e3cbd9354795f42cc3a8c1d *R/search_locate_4.R
-e202038508b5c580aeadc650011b12ab *R/search_locate_bound.R
-8f0247a23aea0055971b57c3b967a774 *R/search_match_4.R
-59d57f310422e93b805bb87ef5bcd3c8 *R/search_replace_4.R
-f84133ec1919ef019eb60e5de9807031 *R/search_replace_na.R
-bd596f1f4f28065f0b5b023a32e8e8bf *R/search_split_4.R
-a80f441971b542d580d9acd43a4ac79c *R/search_split_bound.R
-6f3525207ad0d54546ac9c1b237a00f3 *R/search_startsendswith_4.R
-9ca5840028310506f4dafd1dfba2d460 *R/search_subset_4.R
-8cbd4130f252d9f2b177f8f948ac4eeb *R/sort.R
-69ca17d16ee3058fb4d6b63caaeef5a4 *R/stats.R
-ddfd867e1969a3e6a7a99944b0f6ee97 *R/stringi-package.R
-120fb9bb81dc5a7a8f4e285f0e790331 *R/sub.R
-e1f9019dfc57854a8fe45aa3866e3308 *R/time_calendar.R
-29e2e8371289c2cede63524b7f467348 *R/time_format.R
-90aa00f039e4895a063e1b920215a360 *R/time_symbols.R
-a33980b4350860e1c2fdd339afb1831c *R/time_zone.R
-5682629b6521ab27d5e470cf98ca6e23 *R/todo_charclass.R
-60ab43767fa8307ba5173362642b8fb5 *R/todo_justify.R
-6880436fd5ceca3750ba50cfaa6c9f44 *R/todo_rbnf.R
-d178863770608bb4ac417a717d4722e0 *R/todo_search_in.R
-54166ca4ab558496b4b517b8d39f0a24 *R/todo_split.R
-603639f8982ffc16cddc8794884ab485 *R/trans_casemap.R
-9e98b0e5f44f29f173c2fdeb6c7d169b *R/trans_normalization.R
-66feb6b6e5431d1ecb2abe25674b2f96 *R/trans_other.R
-30ba1a549925d38ab769411afe6fcc6f *R/trans_transliterate.R
-2a1e3f39e4f0ee75e7d6ba1c72c6053a *R/trim.R
-e401b8360844994f01510e31cd32b8d7 *R/utils.R
-d9bb943f6ea5138b643f2a191102630c *R/wrap.R
+385c56c3e20a13d922d972602623aeb8 *DESCRIPTION
+ee8b16f29c99477beb6d828fe6e91595 *INSTALL
+7046c04fd6bdbea3546adb75e91cb6db *LICENSE
+913e8dae7f4b5710551952537fea0916 *NAMESPACE
+d4852820ea7b69f70c58a3df90ba82b6 *NEWS
+c81ac36a300bf461a0f29a37040defa1 *R/ICU_settings.R
+9bdd87ab2a81cda87f488233507e6aa1 *R/compare.R
+bf6f90295ce7e54700b045e587a0e087 *R/draft_encdetect.R
+91353e5979961a59e44da8ff898d44e8 *R/draft_files.R
+1a9f79d94b2ef225b5839b8e2a2ca74e *R/encoding.R
+f8eae4bb15945176cde77cb727cf51a3 *R/encoding_conversion.R
+a7eac5951ea21c4c30066f4e56459aec *R/encoding_detection.R
+0a96a5c4303fff13da9b113e5f2bce5a *R/encoding_management.R
+4dbeaa05b0029d059299c3079bd3960a *R/escape.R
+5bbb1051a5ac8688a1ffa52e3fdd35e8 *R/install.R
+3dc00a1272b9f9b2a97649351c8bde2b *R/internal_prepare_arg.R
+78c575e30e1afba9e775272003096d05 *R/internal_test.R
+86532c4f060183da7794e078ff10f1a2 *R/join.R
+09b4b730a4e1a0cf21f81085aca019e2 *R/length.R
+dd68e339c8809f97f5558289e6fa9028 *R/locale.R
+4c3258077a514647593f06109e132e5a *R/locale_management.R
+71775f48ad1d507e47f9c72d7cb84b82 *R/opts.R
+4ad424314866e784b45aa5de52e3f90d *R/pad.R
+bcbc6c83a2e3b3f206aba2841ed9a881 *R/random.R
+91f24c91cc37ced12dbbc731c759320a *R/reverse.R
+710e851377719659c1504291238a8da4 *R/search.R
+c173af972d96b772f1d68fefbc9fd489 *R/search_count_4.R
+ca2f35225446f55879f3f3b2637d5ba7 *R/search_count_bound.R
+608c4e3646888367802a3d4c3c629b12 *R/search_detect_4.R
+0578e1734bc2c497ff5f7074ad287f5e *R/search_extract_4.R
+40693bf761a48b16585b3a5912eb3238 *R/search_extract_bound.R
+f3aacf1e82e7c1904b5b1480b702cfb2 *R/search_locate_4.R
+19795d881dd30fae5f3e3a1047f42b0b *R/search_locate_bound.R
+e5c8233ee4ed93dd1c64301536e0abe6 *R/search_match_4.R
+2476f38d0531ad288c27998b48e02049 *R/search_replace_4.R
+f75af2938ebc9b25d087f24338c34f46 *R/search_replace_na.R
+cc0d7f5509fd2999024b1021a1b9388d *R/search_split_4.R
+98127b2026b5c296e0e76fb638612fe8 *R/search_split_bound.R
+c53f03926544896f382189fb70a6a8f2 *R/search_startsendswith_4.R
+2d618c7d5a81cccb5fe7fbe78598015c *R/search_subset_4.R
+dc8cae5f0b0b5e615b285909595a6d79 *R/sort.R
+c7918d77003afbdc7b73617e12cd522b *R/stats.R
+3e270d5c0da94d4158cb440d3c87aecf *R/stringi-package.R
+79a1799eaafdb9da46df272d89b52bb1 *R/sub.R
+0c9439ca1f4948216944a8f3888b148f *R/time_calendar.R
+02f3bd9e2e61b34b1ab264f40c7c571c *R/time_format.R
+b38a9455e88df9aaf78f640c3021e895 *R/time_symbols.R
+16fe8b544e285238f55dc31623277369 *R/time_zone.R
+c023f5b2dd8a6bb3c5d66a3fa5467905 *R/todo_charclass.R
+ee4bc2a14cc038eed8ddd6cb258a26ff *R/todo_justify.R
+04e396a213695fd2d158191861da02af *R/todo_rbnf.R
+54d104aeb5965a1391ba855cc3285ed9 *R/todo_search_in.R
+007d4eef9f1aa9fc5ca34001605d5975 *R/todo_split.R
+31e14d3e1bfdcb0f502d4edc042e1478 *R/trans_casemap.R
+2f4579b7add274ff04ad496251f74eae *R/trans_normalization.R
+c2b9cff7e4a3930d0e415f77fb440dc8 *R/trans_other.R
+f37ba50803cdf6e6254a5fd35480d78e *R/trans_transliterate.R
+7f6ed76b2b142b811293a23fe109a77b *R/trim.R
+9a39ed292c422093c87b321b08e04c1d *R/utils.R
+726393464c54b2e68439fafc37177f1e *R/wrap.R
8b7d9182fddf64d7eb7187569a79483d *cleanup
-937f6d1015f6d6f8134727aaa6570eb3 *configure
+83b2ae8e138d637c0609c11f744a90d7 *configure
01eb39501669fa9713bb7afdc2aa79bd *configure.win
-01d914cf4094ab4bac3ca743eef219f1 *inst/AUTHORS
-e1feb43ce365e9d593e84d4f0fe3176b *inst/CITATION
-ef9e3a3a94520648d33fc868ff48f242 *man/oper_comparison.Rd
-137d279eec6958e2f944a1b4586dbe43 *man/oper_plus.Rd
-b0949f5dd0ccd47aa4d00119ef733302 *man/stri_compare.Rd
-3dc4121f03e0dcc20aec23a651316332 *man/stri_count.Rd
-71dc9a55fbf1b148d722023d014e918d *man/stri_count_boundaries.Rd
-fb5a2de049beeceb0274835903bf8f78 *man/stri_datetime_add.Rd
-c0b0a52c15ec7395215c6198e9bdebb9 *man/stri_datetime_create.Rd
-dd4bdf2d240a4d21592affa1708433aa *man/stri_datetime_fields.Rd
-276a56b8bcbe36478ae899fe95ba1ddc *man/stri_datetime_format.Rd
-88cfcaeb3c1a0e3f04b170f7d118a7ca *man/stri_datetime_fstr.Rd
-c57ed60bc178ce0e3e62b5a9dbff4012 *man/stri_datetime_now.Rd
-ceb5cf228bc8bd48dc31b6331b8610bf *man/stri_datetime_symbols.Rd
-e6b2f1cad62d2dc17095ccd22e0d1b19 *man/stri_detect.Rd
-aec1c9605d5c4521696169cfbdb85a42 *man/stri_dup.Rd
-1da5b1dfe32f7f9e276d45f578f09337 *man/stri_duplicated.Rd
-3cbc8c04027ccf030e261883dfb72494 *man/stri_enc_detect.Rd
-9c6787dc5cc151818414fc1054783711 *man/stri_enc_detect2.Rd
-77b63ccef9247be8767a41eae1343806 *man/stri_enc_fromutf32.Rd
-4a5c56e366b043db08cb3d0f4a8174b7 *man/stri_enc_info.Rd
-d72baf3acb178f918493520b34af26af *man/stri_enc_isascii.Rd
-5e25764cb8ccbc8686eca881cabccef3 *man/stri_enc_isutf16.Rd
-b6406d6e163c445bf344a906e5229025 *man/stri_enc_isutf8.Rd
-693f4d6a7d8ec69e68ddcdbd06a3a45e *man/stri_enc_list.Rd
-305d4c4ceda4e6508c41522f9673639b *man/stri_enc_mark.Rd
-e222a2aac86e4b4a66a85fae18b256e0 *man/stri_enc_set.Rd
-36b06e82796242f34c2aa4a83e46984c *man/stri_enc_toascii.Rd
-732a6dcda27b6483296f4878aef2f3fe *man/stri_enc_tonative.Rd
-2a459a3504ca2a881ceac3b794747050 *man/stri_enc_toutf32.Rd
-225cc4a93167d2b95fd704e8f8a9abf3 *man/stri_enc_toutf8.Rd
-e5b18cb9ad83c256875693174981bc64 *man/stri_encode.Rd
-c28f8ce09c6124325d688ccbdf35ecc6 *man/stri_escape_unicode.Rd
-df733c42bbcfbc2802ba41708b6f63f2 *man/stri_extract.Rd
-f41b9bc78b21b4bf06606248c80fda1e *man/stri_extract_boundaries.Rd
-56916c74a55761d1e347a0f8b02a8fba *man/stri_flatten.Rd
-e94a75d1cae2d5f7a3b86baa819f793a *man/stri_info.Rd
-4f8bafca5d1c7032aae33330863cfb76 *man/stri_install.Rd
-7e8960f912fe48d1e347a33c3dc5bb80 *man/stri_isempty.Rd
-d70e1ba76f089ba6bf34e072bb36c5fa *man/stri_join.Rd
-65ee390bafa39b8385cd9e7085f36137 *man/stri_join_list.Rd
-6558e8aa02824e3b72a8e7c3ae997c98 *man/stri_length.Rd
-21d16db9ba1d0f53f52acebb3eb99125 *man/stri_list2matrix.Rd
-57da94524c2a45aecb8cfd30ce3ddb47 *man/stri_locale_info.Rd
-40ed3662914b0e373ccbaed0b5f0f33e *man/stri_locale_list.Rd
-00bd61cf31226b60d59d2c13d2852b03 *man/stri_locale_set.Rd
-790166a79fc251d50634684a325dca21 *man/stri_locate.Rd
-fb014a4dca60ad81295b0de7e4bd126a *man/stri_locate_boundaries.Rd
-02b2c7e3ea0bffbdd18cc0b4fa4438a2 *man/stri_match.Rd
-a5ad7d12d595e719239ed84c2f4ed3a0 *man/stri_numbytes.Rd
-27e952ebc9912cf4781c8acb2d457d0d *man/stri_opts_brkiter.Rd
-3ea43c7505f379ec83569eb071bff78b *man/stri_opts_collator.Rd
-e0c6e435b7e6201b0b294fa1135c78fb *man/stri_opts_fixed.Rd
-fa19cd9fbbcc5cc641de867266d62fcc *man/stri_opts_regex.Rd
-5c9a2016b320ac23fa1e75137bd9383b *man/stri_order.Rd
-58b06a5315b2cb6872387fdebae1e58b *man/stri_pad.Rd
-6dc427d0de44e2042a662a7ecc46ae19 *man/stri_rand_lipsum.Rd
-c4da82a5fa97866eaa4faeccdac9335d *man/stri_rand_shuffle.Rd
-42b9bfa83889c3f167a2b2d75c1450be *man/stri_rand_strings.Rd
-9671f6e0e72439d92abae5f36a758b1a *man/stri_read_lines.Rd
-17928f8c239e74bbd88dd32f01dccfd4 *man/stri_read_raw.Rd
-516a69f9643a16ef4e5ecf3c5667eb47 *man/stri_replace.Rd
-2259c583f75cc9bfeab31fc1e21c67c4 *man/stri_replace_na.Rd
-385bc02abd9311e4e876acc1778e3c76 *man/stri_reverse.Rd
-c1a3497ca77db9a2007d54f7a984286e *man/stri_split.Rd
-291340a59fac09976f66644c3a3da89d *man/stri_split_boundaries.Rd
-c634473ab2fdba500a879e5149c4551c *man/stri_split_lines.Rd
-93a8440524102ecda662f35d815771f0 *man/stri_startsendswith.Rd
-64e46e31b133333f518f90d32cd0f2e5 *man/stri_stats_general.Rd
-613ea773e8cb58f0e2284a4df9dcfecd *man/stri_stats_latex.Rd
-2f39df3cc0ca8b378058767e1b919919 *man/stri_sub.Rd
-a2e2d9d4e0e0aaa325acb118a82c27d3 *man/stri_subset.Rd
-40ed3fd617b5aacb91bccd3a83f10b63 *man/stri_timezone_info.Rd
-b6f064d11d1b363cf402178a7e6859d1 *man/stri_timezone_list.Rd
-6d4aa2484fea39483d3e825dc8d3c049 *man/stri_timezone_set.Rd
-2dfafe63602598984fa8160206d17c8a *man/stri_trans_casemap.Rd
-a547e0a095dd1b3f36275f90bad1634c *man/stri_trans_char.Rd
-1c7eccf06b125f182bd1675e949c213c *man/stri_trans_general.Rd
-463a284bc5c10ba855d6413f372789ae *man/stri_trans_list.Rd
-716a5ec5f52859be7a38fe4cb76d1580 *man/stri_trans_nf.Rd
-e31ecbe8c31ff3149b543c574a6753cf *man/stri_trim.Rd
-71a69abbe2c479dde7cef2891580121e *man/stri_unescape_unicode.Rd
-6b37092472252440a22e847daa54c797 *man/stri_unique.Rd
-3a15758b8a50dc839dfaaa9b50126ef3 *man/stri_width.Rd
-4fe324c6beb0a4d339b6940c798f45f7 *man/stri_wrap.Rd
-5c745da059392cd933b3597e83d62839 *man/stri_write_lines.Rd
-44ca889c15cb78026d5451ca9eb0af66 *man/stringi-arguments.Rd
-bbef11284e0980a2b033354d3a07ff54 *man/stringi-encoding.Rd
-f2a7b4252833363c44dc84a86f0afd71 *man/stringi-locale.Rd
-96262c4bedb7333b1fd241b8fc51ee1b *man/stringi-package.Rd
-d114ba60534e79d627f9e4a7dc6d0cf0 *man/stringi-search-boundaries.Rd
-6c1b9307ae97e60951960d90ac902d30 *man/stringi-search-charclass.Rd
-97ae4d1759bcd6ed743ceeecd6290a88 *man/stringi-search-coll.Rd
-3ddf8a1475e3690658c3fd5f8162cbeb *man/stringi-search-fixed.Rd
-af0bb3c5f907b3263b39e9ad5596be46 *man/stringi-search-regex.Rd
-1a170e5d4791f1a43dddb7208b9ff6be *man/stringi-search.Rd
-9612f038d81fe66c822adc2d5091c895 *src/Makevars.in
-eeecf90b7a9443da06e7cc6d6505af11 *src/Makevars.win
+bdcd0c49082bf7bf93122474e958d8ff *inst/AUTHORS
+dbff8d774fa477bd3b2025e8d73efd2c *inst/CITATION
+15588b9d62e1c296d432a8e26983d4dd *man/oper_comparison.Rd
+dc278dae56fde988bd69a5bd60b6c375 *man/oper_plus.Rd
+44594f86307e4d3ffe16c0e01789067d *man/stri_compare.Rd
+5e1b9b6176078b30c3b57217880bfc10 *man/stri_count.Rd
+f986ea1bfd8be8a78531c3732e426437 *man/stri_count_boundaries.Rd
+02955a6d446b84214e52b22837ea1da9 *man/stri_datetime_add.Rd
+ac63706d478b516b76ff37ddad6d0b34 *man/stri_datetime_create.Rd
+e142d7447a09ab888a82472295f9cf3b *man/stri_datetime_fields.Rd
+b20ab28a9b4eb1eca659a4cd96a90e52 *man/stri_datetime_format.Rd
+2fd82dfcd06a7f5cc52a58858d3685ec *man/stri_datetime_fstr.Rd
+6412622446aa285eee4c7a2247359676 *man/stri_datetime_now.Rd
+94156536ca92a93f82169be754f600c3 *man/stri_datetime_symbols.Rd
+98f15440ed081367dabea36d462da64d *man/stri_detect.Rd
+01a1d51ab4ea44bab17052d901c9f96b *man/stri_dup.Rd
+47ac5f9198b8aadc311022c2fb865d48 *man/stri_duplicated.Rd
+c44f4108118ac4c4a9ea011d1424628a *man/stri_enc_detect.Rd
+eba1f303c6cff1c4becc4d3b2c2963c1 *man/stri_enc_detect2.Rd
+0fb085072d713fa3f24ed06316655cd4 *man/stri_enc_fromutf32.Rd
+74f9b1edb9cdd3f724b7691d2b8c16d5 *man/stri_enc_info.Rd
+60b8274fe7e4be80b363ed12582808e1 *man/stri_enc_isascii.Rd
+dc25030a6200126851d19a3b478b3bc7 *man/stri_enc_isutf16.Rd
+ae2862b575c8dd89b5e3c9b6a19d39cd *man/stri_enc_isutf8.Rd
+7e8bcb4bb1ed255f337b36d505ac91fb *man/stri_enc_list.Rd
+9bb6890bbae440ed56f386394992f918 *man/stri_enc_mark.Rd
+647408e28f788204616ea95caddb92c0 *man/stri_enc_set.Rd
+8c24ed79483356e110f5591cf2ce7823 *man/stri_enc_toascii.Rd
+84202fe14108acf031518710be2b0d66 *man/stri_enc_tonative.Rd
+270b8b6d2f79adf27708881b9bb2e058 *man/stri_enc_toutf32.Rd
+c324fa2e7f63b3d7a37978e02e46602f *man/stri_enc_toutf8.Rd
+3b45913a491338b87b79fc14e728076b *man/stri_encode.Rd
+e8fa1792aad1bb9273cd156292f284d9 *man/stri_escape_unicode.Rd
+c7db9e1f65d4d5d8d3b8e9c9221eef1f *man/stri_extract.Rd
+881695763d0df0b4a87f881b9a40bc00 *man/stri_extract_boundaries.Rd
+2b1241b500861ca0db508a028712e446 *man/stri_flatten.Rd
+7ededaa6dfab59a9c1707ba56f3def0c *man/stri_info.Rd
+0ad63180fece939705741ff12d2d056d *man/stri_isempty.Rd
+45e41ed4e40dc0df20f93d3a00c69cf6 *man/stri_join.Rd
+75e49f00cadd62ab2c4b9dbc01032728 *man/stri_join_list.Rd
+09b8b7e35949ffae9c23b05a903b0e63 *man/stri_length.Rd
+4a644f3799ff8a6bd69d17a90e30ecda *man/stri_list2matrix.Rd
+76da993ff822a63415e1cdade419bb29 *man/stri_locale_info.Rd
+e78d1d8391a76c574bda1ebca0e9a328 *man/stri_locale_list.Rd
+e5757a261f35d2a043bae01c1aaac82f *man/stri_locale_set.Rd
+e62f5b726e95f761ea8096ff8d9273ad *man/stri_locate.Rd
+79aab9ce68426397df8126a999d25a88 *man/stri_locate_boundaries.Rd
+e172b0704268e508df5a12405b96d756 *man/stri_match.Rd
+5d875353f4d641f44767823cae7b04af *man/stri_numbytes.Rd
+4ec55f96b3f67373624c09c71e6a30bc *man/stri_opts_brkiter.Rd
+2d399c2525262543bad90715db294bff *man/stri_opts_collator.Rd
+5e9fba621a6b886e5591e648e97b131e *man/stri_opts_fixed.Rd
+b95486d98d0b565088c9bd393ee8bea1 *man/stri_opts_regex.Rd
+fee89075b029347c921af5f6d12a94a1 *man/stri_order.Rd
+431f360342d248c3f0ce03a779f6c523 *man/stri_pad.Rd
+796c2f3cfeb748ffff2971508b18bd66 *man/stri_rand_lipsum.Rd
+8fa1d7562a12300ea023047c64d9b154 *man/stri_rand_shuffle.Rd
+ad18ad7cc26177dabd21d6fa2031a139 *man/stri_rand_strings.Rd
+bf8c8c59784e055aaeded1a7c835a6ed *man/stri_read_lines.Rd
+58a84bca88229750b5825c60a257ab5b *man/stri_read_raw.Rd
+8c1327a34aae583175ae0c29ed1d49d9 *man/stri_replace.Rd
+3347d2f732147a3e2b4750fc522c45b8 *man/stri_replace_na.Rd
+b7465654101c1c902c128aeac1dd6248 *man/stri_reverse.Rd
+34f63546939ed8ffc8878dd511c8bfae *man/stri_split.Rd
+961edd3f060aa8781af83e6d4e2376ae *man/stri_split_boundaries.Rd
+b96f311fe838a34b2a19532f7aeb7831 *man/stri_split_lines.Rd
+8a522a8ea9178020ebb1930c2a5b4156 *man/stri_startsendswith.Rd
+1772c43e509a6623b44f69d39d3906be *man/stri_stats_general.Rd
+c9c7574157005d6eb78719c1993113aa *man/stri_stats_latex.Rd
+011623e4bfaaefa0fcdd5b163d0437d2 *man/stri_sub.Rd
+f50bbb055cea299044207a6bed8b9296 *man/stri_subset.Rd
+ada401a07b12245bdd175d5c37e28a97 *man/stri_timezone_info.Rd
+33f6fa48c85c31a88c0bc63c566fd7f3 *man/stri_timezone_list.Rd
+fe0ab8db348bc2287923f361702e85d8 *man/stri_timezone_set.Rd
+1c7cc14e3ee5464c30320983205506e2 *man/stri_trans_casemap.Rd
+1b5b7ec0b1454f1c84ea4c1c1efdef84 *man/stri_trans_char.Rd
+43a549d49f4ea1fdcb38a135b0393825 *man/stri_trans_general.Rd
+80a4d51ef171c4aae0b861d83167a46a *man/stri_trans_list.Rd
+eb7a3e54d887d0890d0ec0d1bbfb7ea6 *man/stri_trans_nf.Rd
+f3f5b310309644d7ff9337ba816a7b41 *man/stri_trim.Rd
+62b1c57ffc343353e65b8d2d3d55a955 *man/stri_unescape_unicode.Rd
+44ab25c42385d0b538840310d652b2f3 *man/stri_unique.Rd
+caf2b2c5fc42cabffba6a2ae9d371252 *man/stri_width.Rd
+97abe47392cd57a37c9d098100f41211 *man/stri_wrap.Rd
+31afcd570890fc4d3ad70a522849a93b *man/stri_write_lines.Rd
+d15ba71c5da0f7de2789b1917502b2f5 *man/stringi-arguments.Rd
+d6bb05c10abd98b24ecf3e86cc45d4da *man/stringi-encoding.Rd
+56bd0b4e9aaf3d7061648a861b9e1d80 *man/stringi-locale.Rd
+7787514f84c5f89b0b01ec9a6aa5c1b2 *man/stringi-package.Rd
+e5b72c2a9febcbc14357b52233be3095 *man/stringi-search-boundaries.Rd
+93b7360481471e1fdfe3fe783d01eb09 *man/stringi-search-charclass.Rd
+38e7e8d6dc3b294f4cb919a21b5f063a *man/stringi-search-coll.Rd
+134d2f24fe61334ec6f2c1346fd9f0bb *man/stringi-search-fixed.Rd
+36ca45bd29defd5a4f23879d4ecc8d28 *man/stringi-search-regex.Rd
+91e81faefac576b549bcb172bf88d8ab *man/stringi-search.Rd
+ecde906ce156481a413325ce9fcdd2ac *src/Makevars.in
+fc24b0aa2722078367c49a673d045999 *src/Makevars.win
d6120ec4bb4b513e4be2792675f39649 *src/icu55/common/appendable.cpp
c8aeea058b0e06604b4cae4f88bae984 *src/icu55/common/bmpset.cpp
91d168ef63acabeb9c16d2b65245d8c8 *src/icu55/common/bmpset.h
@@ -919,120 +918,120 @@ fbcaf02b188edfa1be62b062e9c0bb4c *src/icu55/unicode/uversion.h
bc176c3b849857ea76d0924b2646d408 *src/icu55_i18n_cpp.txt
2d5bced0165af1e31b8b89a4ca58dd23 *src/icu55_stubdata_c.txt
d41d8cd98f00b204e9800998ecf8427e *src/icu55_stubdata_cpp.txt
-143aca567faf0ba17e1e7b91d08adb99 *src/install.libs.R.in
-6c89542e800e7384bd52fbdca10ad20a *src/stri_ICU_settings.cpp
-6eb3b329943408f0306f91d28b6814e5 *src/stri_TODO_justify.cpp
-d92e32cca75d8ae8a30ed6d98d76c149 *src/stri_TODO_splitpos.cpp
-7c3dd76ca6ec57bd9546544ff7ee600d *src/stri_TODO_uchar.cpp
-fe6d06a799631428ac50cf65d6f06094 *src/stri_brkiter.cpp
-2b14f53bab9163163ebaa05a9e95bcc0 *src/stri_brkiter.h
-01a6f685c8090cda961a7c0cf00ae93d *src/stri_bytesearch_matcher.h
-f233762ec52d6ec6e26ba93242e1a78f *src/stri_collator.cpp
-739f14b9ce9bd25f757cecfb6148ec0c *src/stri_common.cpp
-6d6e24eb31092706ba14d4d66ca9f4d0 *src/stri_compare.cpp
-319a1453af3da64e576fe1efc4ddf349 *src/stri_container_base.cpp
-bdf6bf6329756a5323011c613b5b4799 *src/stri_container_base.h
-09292ba806f45572809abbeb3ec06af5 *src/stri_container_bytesearch.cpp
-2ef1538c7efb6be5c2cd6133bac5a2f2 *src/stri_container_bytesearch.h
-c98414ed20d557a5562a39208383407c *src/stri_container_charclass.h
-b96270d47e870993f9e9a35e06b8d3ca *src/stri_container_double.h
-4641236323e8fe8322e52b9a084704a9 *src/stri_container_integer.h
-dadfd0eb0b12b28ec751e765d892a14c *src/stri_container_listint.cpp
-5b355137f24f5015bcc32c68502a0513 *src/stri_container_listint.h
-ca5f38cb8ff7565ec78518b6efb8dacb *src/stri_container_listraw.cpp
-02e39170ae3a1dd96daa4686421512db *src/stri_container_listraw.h
-04d410756bb38bef1375089afc2abd4d *src/stri_container_listutf8.cpp
-493cd0c2477b258894e9e712f4ad1eed *src/stri_container_listutf8.h
-172c7b64784664a72a8701da0e3db551 *src/stri_container_logical.h
-14a7df1a652290f4818ff5f792460407 *src/stri_container_regex.cpp
-87427b1962a0bd5c9511a657d889394b *src/stri_container_regex.h
-d9c3d058487a4813c82c0307e8c52be2 *src/stri_container_usearch.cpp
-094a15f8d0df9a313dcf25a2b939ecac *src/stri_container_usearch.h
-2a0fb65a21fa74f76a6db5f9f33be134 *src/stri_container_utf16.cpp
-3aace42b7734030e7154eeb20e6ed21f *src/stri_container_utf16.h
-bd2c73ab64c55f79f61b8eced599b7ec *src/stri_container_utf8.cpp
-36981539a3de7227b6710ab2f7c48278 *src/stri_container_utf8.h
-3f153a60386b36f9f52aac05eb543d1d *src/stri_container_utf8_indexable.cpp
-af90f8e1c0bb8f3616eb76dc7d81fbaa *src/stri_container_utf8_indexable.h
+c243c834b392ad6c34d3326f983f032d *src/install.libs.R.in
+7c5ffe8ad29e037e72621e775180448f *src/stri_ICU_settings.cpp
+ba647fe26a1b79bff385787aa18e37ec *src/stri_TODO_justify.cpp
+4d94406e0667bd12d230e388360d6f46 *src/stri_TODO_splitpos.cpp
+477ecb853266ee5927f6501cff3b9120 *src/stri_TODO_uchar.cpp
+d4fd984caed48c2df709f6f829f04eed *src/stri_brkiter.cpp
+13b912adffac61cb012756e35b853293 *src/stri_brkiter.h
+3deace6ffb49ef4b5e0f89facbf6c72f *src/stri_bytesearch_matcher.h
+d118eeb04f21bd5d6cd6e07906fb7341 *src/stri_collator.cpp
+c0c2c4cca6916764e0cd983cb2f3e98a *src/stri_common.cpp
+afb99cfbd73d7b7c9dd29d0619d106e1 *src/stri_compare.cpp
+570f14b8a343e3cb18cd090e064ce96d *src/stri_container_base.cpp
+63b7b957013fdc44fc180904e93adebb *src/stri_container_base.h
+c3d4173d85dcddb0a522b1866a4f4a66 *src/stri_container_bytesearch.cpp
+2ecf67bd1bcd1d3cf31841905a2368da *src/stri_container_bytesearch.h
+ed7b4027ac81e8854445bfaa488ad952 *src/stri_container_charclass.h
+a138d27d76c6d16566ab6de8de7fe497 *src/stri_container_double.h
+0134f2ee2a56b3c56a173869e93e432b *src/stri_container_integer.h
+d67e7a50443c58d392c7df1e43d0e41f *src/stri_container_listint.cpp
+7d5fd54cb64d9056ce3a15eb704f3687 *src/stri_container_listint.h
+7330346e22bdf5942309d4e2799fe71c *src/stri_container_listraw.cpp
+96bff8ccbd04eda413aba22bf897a047 *src/stri_container_listraw.h
+0270c7327c6bbaa0c84c0739be677905 *src/stri_container_listutf8.cpp
+40297ed82be0ca2093c72b792f99ccad *src/stri_container_listutf8.h
+07e04c0688fc4a369d5aa68687b5ce94 *src/stri_container_logical.h
+f3957ade52810e77bc2df5a0a397393b *src/stri_container_regex.cpp
+0925b615641dedc3c727680020f5173a *src/stri_container_regex.h
+8a99105a3e8ae6cdcf30b199878dc766 *src/stri_container_usearch.cpp
+4ff13df08fded2c1f6224c48855258b3 *src/stri_container_usearch.h
+9216bb4e70a63401e74dbfef268542e6 *src/stri_container_utf16.cpp
+f0d8889b042b30059f2b9524765e5d29 *src/stri_container_utf16.h
+021b6bd4873784eff92680d0cf57bc5d *src/stri_container_utf8.cpp
+0e24cdb965811e55ee0ec360751bac54 *src/stri_container_utf8.h
+4535e78a2bdf56cb324ce149634f8063 *src/stri_container_utf8_indexable.cpp
+c2d2d5e31de68aa8c278b7533c5f261e *src/stri_container_utf8_indexable.h
3b18001624aeb493392a7108dfbe4ed9 *src/stri_cpp.txt
-2d605e5387171a6cc0dbe30d3c2ce936 *src/stri_encoding_conversion.cpp
-7cf8406d818b6d6b4b7108b996d8090e *src/stri_encoding_detection.cpp
-11fff3ba0a4ebe3c224de3e73b60be65 *src/stri_encoding_management.cpp
-6b0afde7949bf0f88784be7716164a9f *src/stri_escape.cpp
-b3c6a8f231a5db567caae49a2970b997 *src/stri_exception.cpp
-4da66fc741981c702713a63d4c626ced *src/stri_exception.h
-728e5fb21927f3f00d9646e4274f757a *src/stri_exports.h
-63083479eb8109bc09d382ae345a2ddd *src/stri_external.h
-04498def5e0758c0cf736dcf150a2d27 *src/stri_interval.h
-3aad034fb8e3e34475f898a9b3dd9f85 *src/stri_intvec.h
-410ee6155a28f6e9979b5447b44296c0 *src/stri_join.cpp
-9e9b91991e6d37a0febfd887c9460fbd *src/stri_length.cpp
-8e368950bf943129f2162302a71bb62c *src/stri_macros.h
-7d507e7b9608a51d3ac8a9879d842d55 *src/stri_messages.h
-4f0afb44099249e519d2c7ac0d32b76c *src/stri_pad.cpp
-5e0671ecc7e1b6b47573b0dbd06f1f37 *src/stri_prepare_arg.cpp
-5377e358f9f60c20c138b8d120535484 *src/stri_random.cpp
-a175ca03d512319d1b50132118df04a9 *src/stri_reverse.cpp
-71cb5875faee4233661f4b8cff95923d *src/stri_search_boundaries_count.cpp
-ce8638a33a595890570fa4c08785fb9f *src/stri_search_boundaries_extract.cpp
-4f475739430840f63e427881d80a2dc8 *src/stri_search_boundaries_locate.cpp
-dc92f189a1c9a4993fc5c009ef4df40f *src/stri_search_boundaries_split.cpp
-746b71c48eb712f402d3b7b7cb31e239 *src/stri_search_class_count.cpp
-1c51019cd08e74124d34223db27cc32f *src/stri_search_class_detect.cpp
-785f9c44ca50cdd8b8eb6fbc63a991e6 *src/stri_search_class_extract.cpp
-9882351bb4a6d464e0578774d55f1c5c *src/stri_search_class_locate.cpp
-9168aeec13585acf93055cf17719d853 *src/stri_search_class_replace.cpp
-0f821675bbda261d9a956993d82001eb *src/stri_search_class_split.cpp
-6a1a932614ee8c3629f3047cb1a0681a *src/stri_search_class_startsendswith.cpp
-f81d53a126e29d7b60e69d4787a427ef *src/stri_search_class_subset.cpp
-3c7a87d87a284dc241786e0e27b6724b *src/stri_search_class_trim.cpp
-06796577de189c0487f74c323e2806d6 *src/stri_search_coll_count.cpp
-cfb6f5ad6c40a5518078b0d501b83c39 *src/stri_search_coll_detect.cpp
-059c5b5c5f6ee11c2be194eeaaf7f9af *src/stri_search_coll_extract.cpp
-dfc22b8e6a0f5d485716a106ff7de3b4 *src/stri_search_coll_locate.cpp
-8e394582f9ffa7f0bbdaba6e49cfd892 *src/stri_search_coll_replace.cpp
-f3ebabbe645cbc8b7f9aecb438ae2c42 *src/stri_search_coll_split.cpp
-32fe9d1cd33682d174d36f96a63e9bd7 *src/stri_search_coll_startsendswith.cpp
-111ca2609c5567d4369d909fe759b5ee *src/stri_search_coll_subset.cpp
-64e1cd0cd10b6fc9a12158fd9baf57d9 *src/stri_search_common.cpp
-3fe5fa3fcaad5067c4a518d1a9ebdfbf *src/stri_search_fixed_count.cpp
-1bba8f88232a40850e200c15ee0b2cc3 *src/stri_search_fixed_detect.cpp
-7ed4c950279905e971deb9bb84d93601 *src/stri_search_fixed_extract.cpp
-576f8ef42f8a1209bdeb2c63f4b56ba2 *src/stri_search_fixed_locate.cpp
-708e4b90dd48c2702043ded8a1fecb1d *src/stri_search_fixed_replace.cpp
-90c09e264a726dade2a59736d92a4401 *src/stri_search_fixed_split.cpp
-93602aeff93ee83f5ed87c551af84de9 *src/stri_search_fixed_startsendswith.cpp
-f5400af755a84ea17011ef254604196a *src/stri_search_fixed_subset.cpp
-ddfbcba63b7dd1805ea5f54ca0db3cdc *src/stri_search_in.cpp
-e2c5c7064f18d01de3eff5f30868bff2 *src/stri_search_other_replace.cpp
-52c0d5ea1948d74356773111818dba3a *src/stri_search_other_split.cpp
-8f966c4a6a0dfd1a57eb3515988688b2 *src/stri_search_regex_count.cpp
-cde404bc13aa72ae8677182229bf6ce5 *src/stri_search_regex_detect.cpp
-a57b4cb7bcd3696381a8bbda3126fc0a *src/stri_search_regex_extract.cpp
-06b21decf1a7e1a5e241f77044289f9b *src/stri_search_regex_locate.cpp
-eb6ae12465461d31704d291b2da3898b *src/stri_search_regex_match.cpp
-2a9d27d6761eb86940dff5d2923c45ab *src/stri_search_regex_replace.cpp
-9297afa7cb651093aeed3fcf260a2b58 *src/stri_search_regex_split.cpp
-2aa7f377cfbb94378ad067f68c25081b *src/stri_search_regex_subset.cpp
-cb56b6e0f1879f622576564cfef2244e *src/stri_sort.cpp
-aaa6e1b456b0134fdced617cd7bf8725 *src/stri_stats.cpp
-874e9a6bb75f6686e13f8663d067ee06 *src/stri_string8.h
-b3041dfab6f87001e0eee89e3b494aa9 *src/stri_string8buf.h
-501a15663af43d4f4f52dfd40abe6a36 *src/stri_stringi.cpp
-4e730b900eab5490dc5af599420c17dd *src/stri_stringi.h
-c064a7b651c42ed00c0bde6e0824ebf1 *src/stri_sub.cpp
-aca94d72c6c03739881cfe431c31671e *src/stri_test.cpp
-3c14ecb7b40872d59ccb8f6833f687ee *src/stri_time_calendar.cpp
-74588b302e39ae6549b84e28c9a17970 *src/stri_time_format.cpp
-feeb76d4823ccb34f60469214d702825 *src/stri_time_symbols.cpp
-10a41cc3db89223527b1a056aa5a9cfe *src/stri_time_zone.cpp
-a47bd98d72a025d91d23d6d2a7dade49 *src/stri_trans_casemap.cpp
-7c40f12292f290a9c027e76b0aa9e5fe *src/stri_trans_normalization.cpp
-ac5f5d63b7385f1f1a5f60f7ca4c3f2b *src/stri_trans_other.cpp
-3160fc5bdd4a3b7ee5ad01891b431108 *src/stri_trans_transliterate.cpp
-ad51e40d5075445fca98a3e3777de2fc *src/stri_ucnv.cpp
-10c527747d12e8ccdec94d66cd60d19d *src/stri_ucnv.h
-585773dbb203ad2255b8bee41f507438 *src/stri_uloc.cpp
-616b21fd3ad131d6dd676489384d69eb *src/stri_utils.cpp
-35c0b559d6fd2693d3dad12370fb3c81 *src/stri_wrap.cpp
-a62dfc2bfc5d7d64a769a9d412017d2d *src/uconfig_local.h.in
+3da4ddc93586b26385a41f8a3a57b0fe *src/stri_encoding_conversion.cpp
+f262c6635c383fd8f04511235a9d3a2e *src/stri_encoding_detection.cpp
+35b78673d352b72755cfafbea26aff13 *src/stri_encoding_management.cpp
+c8cfd861ba2aff8eaef2f72723f02d3b *src/stri_escape.cpp
+88faae74025909c16637fef77eff7583 *src/stri_exception.cpp
+6bc8b3d28aa6215d74011a918b5cc82c *src/stri_exception.h
+2d5b3d10ac8010363a8822c52f5c05c7 *src/stri_exports.h
+1c2b0a222a0d7dc4e4f5359d92413339 *src/stri_external.h
+b9a820bbd5d593afda7b602ff5e9cbda *src/stri_interval.h
+8ac85cd51ea2b77b3af194ab5ea35219 *src/stri_intvec.h
+a1bdf9995de1b5eb4dae2bb1beafc6ef *src/stri_join.cpp
+64cea2d0034153eaff061b89dffcc9d5 *src/stri_length.cpp
+3219e9f771bc5be77adb6f3c4ef0a5f3 *src/stri_macros.h
+7cf89193ccce3a2d684e61225f132074 *src/stri_messages.h
+d36cc491a7ecf2ef1ce1c03d4cee299a *src/stri_pad.cpp
+53abfefd98aac3ddfabcd0f55fda557a *src/stri_prepare_arg.cpp
+9e1a522240a9e1600b3f979e062a4976 *src/stri_random.cpp
+8ed9cc4f769fd6e8acab340f5b29f5ea *src/stri_reverse.cpp
+67ef54f7230a594f304ef8a19648053d *src/stri_search_boundaries_count.cpp
+1fa039e012943b7c2f9c9227955e4596 *src/stri_search_boundaries_extract.cpp
+725f38b39ec808719ddc8e75ffb48e34 *src/stri_search_boundaries_locate.cpp
+7f20b7851b1836ed523823a54157dd27 *src/stri_search_boundaries_split.cpp
+04cb1d51acf451616c1e417fe81e6dfc *src/stri_search_class_count.cpp
+4d7e6255875713ebbe4fee2136a08e6d *src/stri_search_class_detect.cpp
+992b1898536e464dee39be870199efa4 *src/stri_search_class_extract.cpp
+80fd955351dec707cf8a3242c71cf0f9 *src/stri_search_class_locate.cpp
+5de26cbea73a7471a21ffa4eeafd7598 *src/stri_search_class_replace.cpp
+2a7353c39232fc6c05e95c8cdbff1233 *src/stri_search_class_split.cpp
+1069c29ee589f1440e7e4468dc8855b4 *src/stri_search_class_startsendswith.cpp
+a6c660e7fc15e659eade2f638125c025 *src/stri_search_class_subset.cpp
+3283a68e836fb16d1ecab8ec9f0128ca *src/stri_search_class_trim.cpp
+0ba0c8e48caaff469e7503bc722bd416 *src/stri_search_coll_count.cpp
+f8d451670839979c4f0b8953d1bd3f06 *src/stri_search_coll_detect.cpp
+e9965c1571de6b20fda13679eebb280f *src/stri_search_coll_extract.cpp
+3248674f0e270c1103ef7a920df7f67a *src/stri_search_coll_locate.cpp
+3c67e3877f55566b22bcb049a24b1992 *src/stri_search_coll_replace.cpp
+1f74f26f3a9a23a909fc9f38ad185493 *src/stri_search_coll_split.cpp
+9b5f8e9d75e9ba10763eb81f7ab65ea1 *src/stri_search_coll_startsendswith.cpp
+1cfa5233fd0df1ad68bee428400d6a75 *src/stri_search_coll_subset.cpp
+07b04ec5f1f95c2c689145c53847fe54 *src/stri_search_common.cpp
+5a2427240d19cbbc319cf30498220400 *src/stri_search_fixed_count.cpp
+a30f87883a79a5ca81dada0aebc93c25 *src/stri_search_fixed_detect.cpp
+5703151ae664215657705adde7bf7747 *src/stri_search_fixed_extract.cpp
+e3e35892141ff244015e77887265f22e *src/stri_search_fixed_locate.cpp
+a452a740244b18104b7e6efb2d8f787e *src/stri_search_fixed_replace.cpp
+0f69e9657d2ef897eef396d2cebb51c6 *src/stri_search_fixed_split.cpp
+919dffd21273759b718fbdc6587e79c2 *src/stri_search_fixed_startsendswith.cpp
+d7f24bc33baf7c85d8289beec3f65bc0 *src/stri_search_fixed_subset.cpp
+1ca298307da1d29faf36d7fd92f040c4 *src/stri_search_in.cpp
+5956739d7582ec077286712155e77808 *src/stri_search_other_replace.cpp
+9680c5834cb84bdb7072c90d19031adf *src/stri_search_other_split.cpp
+dede39966d1aa21569972b49712a6410 *src/stri_search_regex_count.cpp
+87395b467c21a4ae38f6146eda05ee94 *src/stri_search_regex_detect.cpp
+87144fd24e247800a5a4950f54060936 *src/stri_search_regex_extract.cpp
+f1ba53d73e8dc313944a61e78626862c *src/stri_search_regex_locate.cpp
+b37b99a4107e3a46f2a8a6b0cbaf4017 *src/stri_search_regex_match.cpp
+2edbe159c5aeab71e04cd79d43eb20da *src/stri_search_regex_replace.cpp
+f2611cfdb3d8ae96d7c42357504a4050 *src/stri_search_regex_split.cpp
+e8c117059e2e5a9e0389b9e3decc4cd6 *src/stri_search_regex_subset.cpp
+5ca7596a235cbc47ba5a0de99ce7e4d8 *src/stri_sort.cpp
+9af40dfd200636cc2bd27d55b7cd7be3 *src/stri_stats.cpp
+394c1c37fe396d80a021cfae56b4a8ea *src/stri_string8.h
+9ec3eb328720a9da00f332dc87476b09 *src/stri_string8buf.h
+fcfba2b7136f32811c0242c29c916531 *src/stri_stringi.cpp
+4c0124f46b8dfbf713e963f449e6b143 *src/stri_stringi.h
+2e5d441db9e6c7a221137c25947c3340 *src/stri_sub.cpp
+1a548da707b9cc1de5537e3f554eae4a *src/stri_test.cpp
+bd10dcf550770f9d399ab6433784e4d2 *src/stri_time_calendar.cpp
+cefb59d556a129b1d1ad586a59f65499 *src/stri_time_format.cpp
+7713b57afacb669115c16d3e41f03dc6 *src/stri_time_symbols.cpp
+aa17ef68160577797c3ac2af37ee885a *src/stri_time_zone.cpp
+40e5d7ca41cfd99f4881897906c4ab08 *src/stri_trans_casemap.cpp
+28d8335e370c09753096799d454378c4 *src/stri_trans_normalization.cpp
+6b6c7ba085629e1cee10dc704fde9607 *src/stri_trans_other.cpp
+b3a9037ac7945a82bbc6406457bf8c74 *src/stri_trans_transliterate.cpp
+844cbcc567b5fb3bcb38dd9042dd7da8 *src/stri_ucnv.cpp
+d9d08e5b0d7eb16bdb00c558ddfe96d6 *src/stri_ucnv.h
+b247553b0afead8c6407f54c199abd3f *src/stri_uloc.cpp
+8ae2c03485913996d36a769d74aea535 *src/stri_utils.cpp
+55110e1f35df17cbccd878bcaf8e2982 *src/stri_wrap.cpp
+7f41ae5e48a6671b23524bd0e7b30103 *src/uconfig_local.h.in
diff --git a/NAMESPACE b/NAMESPACE
index 00879b1..57375cb 100644
--- a/NAMESPACE
+++ b/NAMESPACE
@@ -109,8 +109,6 @@ export(stri_extract_last_regex)
export(stri_extract_last_words)
export(stri_flatten)
export(stri_info)
-export(stri_install_check)
-export(stri_install_icudt)
export(stri_isempty)
export(stri_join)
export(stri_join_list)
diff --git a/NEWS b/NEWS
index c85723d..01f51b7 100644
--- a/NEWS
+++ b/NEWS
@@ -1,11 +1,48 @@
stringi package NEWS and CHANGELOG
===============================================================================
-## Known bugs in ICU
+## 1.1.5 (2017-04-07) **CRAN**
-* [REGEX] #147: regex look-behind assertions may fail to find a multibyte
-Unicode search pattern [solved in ICU4C 57m1, see
-http://bugs.icu-project.org/trac/ticket/11554]
+* [GENERAL] `stringi` now requires ICU4C >= 52.
+
+* [BUGFIX] Fixed errors pointed out by `clang-UBSAN` in `stri_brkiter.h`.
+
+-------------------------------------------------------------------------------
+
+## 1.1.4 (2017-04-06) **devel**
+
+* [GENERAL] `stringi` now requires R >= 2.14.
+
+* [BUILD TIME] #238, #220: Try "standard" ICU4C build flags if a call
+to `pkg-config` fails.
+
+* [BUILD TIME] #258: Use `CXX11` instead of `CXX1X` on R >= 3.4.
+
+* [BUILD TIME, BUGFIX] #254: `dir.exists()` is R >= 3.2.
+
+-------------------------------------------------------------------------------
+
+## 1.1.3 (2017-03-21) **CRAN**
+
+* [REMOVE DEPRECATED] `stri_install_check()` and `stri_install_icudt()`
+marked as deprecated in `stringi` 0.5-5 are no longer being exported.
+
+* [BUGFIX] #227: Incorrect behavior of `stri_sub()` and `stri_sub<-()`
+if the empty string was the result.
+
+* [BUILD TIME] #231: The `./configure` (*NIX only) script now reads the
+following environment variables: `STRINGI_CFLAGS`, `STRINGI_CPPFLAGS`,
+`STRINGI_CXXFLAGS`, `STRINGI_LDFLAGS`, `STRINGI_LIBS`, `STRINGI_DISABLE_CXX11`,
+`STRINGI_DISABLE_ICU_BUNDLE`, `STRINGI_DISABLE_PKG_CONFIG`, `PKG_CONFIG`,
+see `INSTALL` for more information.
+
+* [BUILD TIME] #253: call to `R_useDynamicSymbols` added.
+
+* [BUILD TIME] #230: icudt is now being downloaded by
+`./configure` (*NIX only) *before* building.
+
+* [BUILD TIME] #242: `_COUNT/_LIMIT` enum constants have been deprecated
+as of ICU 58.2, stringi code has been upgraded accordingly.
-------------------------------------------------------------------------------
diff --git a/R/ICU_settings.R b/R/ICU_settings.R
index 603a61c..9ea1706 100644
--- a/R/ICU_settings.R
+++ b/R/ICU_settings.R
@@ -1,5 +1,5 @@
## This file is part of the 'stringi' package for R.
-## Copyright (C) 2013-2016, Marek Gagolewski and Bartek Tartanus
+## Copyright (c) 2013-2017, Marek Gagolewski and other contributors.
## All rights reserved.
##
## Redistribution and use in source and binary forms, with or without
diff --git a/R/compare.R b/R/compare.R
index cea4226..6631172 100644
--- a/R/compare.R
+++ b/R/compare.R
@@ -1,5 +1,5 @@
## This file is part of the 'stringi' package for R.
-## Copyright (C) 2013-2016, Marek Gagolewski and Bartek Tartanus
+## Copyright (c) 2013-2017, Marek Gagolewski and other contributors.
## All rights reserved.
##
## Redistribution and use in source and binary forms, with or without
diff --git a/R/draft_encdetect.R b/R/draft_encdetect.R
index 9b4fdf3..2253488 100644
--- a/R/draft_encdetect.R
+++ b/R/draft_encdetect.R
@@ -1,5 +1,5 @@
## This file is part of the 'stringi' package for R.
-## Copyright (C) 2013-2016, Marek Gagolewski and Bartek Tartanus
+## Copyright (c) 2013-2017, Marek Gagolewski and other contributors.
## All rights reserved.
##
## Redistribution and use in source and binary forms, with or without
@@ -42,14 +42,14 @@
#' This is, at best, an imprecise operation using statistics and heuristics.
#' Because of this, detection works best if you supply at least a few hundred
#' bytes of character data that's mostly in a single language.
-#' However, Because the detection only looks at a limited amount of the input
-#' byte data, some of the returned charsets may fail to handle the
-#' all of input data. Note that in some cases,
+#' However, because the detection only looks at a limited amount of the input
+#' data, some of the returned charsets may fail to handle all of the
+#' input data. Note that in some cases,
#' the language can be determined along with the encoding.
#'
#' Several different techniques are used for character set detection.
-#' For multi-byte encodings, the sequence of bytes is checked for legal patterns.
-#' The detected characters are also check against a list of frequently
+#' For multi-byte encodings, the sequence of bytes is checked for legible patterns.
+#' The detected characters are also checked against a list of frequently
#' used characters in that encoding. For single byte encodings, the data
#' is checked against a list of the most commonly occurring three letter groups
#' for each language that can be written using that encoding.
@@ -101,7 +101,7 @@
#' IBM424 \tab Hebrew \cr
#' }
#'
-#' If you have some initial guess on language and encoding, try with
+#' If you have some initial guess at language and encoding, try with
#' \code{\link{stri_enc_detect2}}.
#'
#' @param str character vector, a raw vector, or
@@ -121,7 +121,7 @@
#' \item \code{Confidence} -- numeric in [0,1]; the higher the value,
#' the more confidence there is in the match; \code{NA} on failure.
#' }
-#' The guesses are ordered w.r.t. nonincreasing confidence.
+#' The guesses are ordered by decreasing confidence.
#'
#' @examples
#' \dontrun{
@@ -164,12 +164,12 @@ stri_enc_detect <- function(str, filter_angle_brackets=FALSE) {
#' of language-specific code points (data provided by the \pkg{ICU} library)
#' converted to all possible 8-bit encodings
#' that fully cover the indicated language.
-#' The encoding is selected basing on the greatest number of total
+#' The encoding is selected based on the greatest number of total
#' byte hits.
#'
#' The guess is of course imprecise
#' [\bold{This is DRAFT API - still does not work as expected}],
-#' as it is obtained using statistics.
+#' as it is obtained using statistics and heuristics.
#' Because of this, detection works best if you supply at least a few hundred
#' bytes of character data that's in a single language.
#'
@@ -178,7 +178,7 @@ stri_enc_detect <- function(str, filter_angle_brackets=FALSE) {
#' \code{\link{stri_enc_detect}} (uses \pkg{ICU} facilities).
#' However, it turns out that (empirically) \code{stri_enc_detect2}
#' works better than the \pkg{ICU}-based one if UTF-* text
-#' is provided. Test yourself.
+#' is provided. Try it yourself.
#'
#' @param str character vector, a raw vector, or
#' a list of \code{raw} vectors
@@ -198,7 +198,7 @@ stri_enc_detect <- function(str, filter_angle_brackets=FALSE) {
#' \item \code{Confidence} -- numeric in [0,1]; the higher the value,
#' the more confidence there is in the match; \code{NA} on failure.
#' }
-#' The guesses are ordered w.r.t. nonincreasing confidence.
+#' The guesses are ordered by decreasing confidence.
#'
#' @family locale_sensitive
#' @family encoding_detection
diff --git a/R/draft_files.R b/R/draft_files.R
index aa5f0fe..c247353 100644
--- a/R/draft_files.R
+++ b/R/draft_files.R
@@ -1,5 +1,5 @@
## This file is part of the 'stringi' package for R.
-## Copyright (C) 2013-2016, Marek Gagolewski and Bartek Tartanus
+## Copyright (c) 2013-2017, Marek Gagolewski and other contributors.
## All rights reserved.
##
## Redistribution and use in source and binary forms, with or without
@@ -38,11 +38,11 @@
#' \bold{[THIS IS AN EXPERIMENTAL FUNCTION]}
#'
#' @details
-#' After reading a text file into memory (vast majority of them
-#' will fit into RAM without any problems), you may perform e.g.
+#' After reading a text file into memory (the vast majority of them
+#' will fit into RAM without any problems), you may perform
#' encoding detection (cf. \code{\link{stri_enc_detect2}}),
#' conversion (cf. \code{\link{stri_encode}}),
-#' and e.g. split it into text lines with
+#' and for example split it into text lines with
#' \code{\link{stri_split_lines1}}.
#'
#' @param fname file name
@@ -69,13 +69,13 @@ stri_read_raw <- function(fname) {
#'
#' @details
#' It is a substitute for the system's \code{\link{readLines}} function,
-#' with the ability to auto-detect input encodings (or specify
+#' with the ability to auto-detect input encodings (or to specify
#' one manually), re-encode input without any strange function calls
#' or sys options change,
#' and split the text into lines with \code{\link{stri_split_lines1}}
#' (which conforms with the Unicode guidelines for newline markers).
#'
-#' If \code{locale} is \code{NA} and auto-detect of UTF-32/16/8 fails,
+#' If \code{locale} is \code{NA} and auto-detection of UTF-32/16/8 fails,
#' then \code{fallback_encoding} is used.
#'
#' @param fname single string with file name
diff --git a/R/encoding.R b/R/encoding.R
index 99a0eae..d39ef12 100644
--- a/R/encoding.R
+++ b/R/encoding.R
@@ -1,5 +1,5 @@
## This file is part of the 'stringi' package for R.
-## Copyright (C) 2013-2016, Marek Gagolewski and Bartek Tartanus
+## Copyright (c) 2013-2017, Marek Gagolewski and other contributors.
## All rights reserved.
##
## Redistribution and use in source and binary forms, with or without
diff --git a/R/encoding_conversion.R b/R/encoding_conversion.R
index c2eb7ec..a34e91d 100644
--- a/R/encoding_conversion.R
+++ b/R/encoding_conversion.R
@@ -1,5 +1,5 @@
## This file is part of the 'stringi' package for R.
-## Copyright (C) 2013-2016, Marek Gagolewski and Bartek Tartanus
+## Copyright (c) 2013-2017, Marek Gagolewski and other contributors.
## All rights reserved.
##
## Redistribution and use in source and binary forms, with or without
diff --git a/R/encoding_detection.R b/R/encoding_detection.R
index dc3194e..45c5ef3 100644
--- a/R/encoding_detection.R
+++ b/R/encoding_detection.R
@@ -1,5 +1,5 @@
## This file is part of the 'stringi' package for R.
-## Copyright (C) 2013-2016, Marek Gagolewski and Bartek Tartanus
+## Copyright (c) 2013-2017, Marek Gagolewski and other contributors.
## All rights reserved.
##
## Redistribution and use in source and binary forms, with or without
diff --git a/R/encoding_management.R b/R/encoding_management.R
index 65db315..9d1c98f 100644
--- a/R/encoding_management.R
+++ b/R/encoding_management.R
@@ -1,5 +1,5 @@
## This file is part of the 'stringi' package for R.
-## Copyright (C) 2013-2016, Marek Gagolewski and Bartek Tartanus
+## Copyright (c) 2013-2017, Marek Gagolewski and other contributors.
## All rights reserved.
##
## Redistribution and use in source and binary forms, with or without
@@ -75,7 +75,7 @@ stri_enc_list <- function(simplify=FALSE) {
#' Gets basic information on a character encoding.
#'
#' @details
-#' An error is raised if the encoding provided is unknown to \pkg{ICU}
+#' An error is raised if the provided encoding is unknown to \pkg{ICU}
#' (see \code{\link{stri_enc_list}} for more details)
#'
#'
@@ -130,12 +130,12 @@ stri_enc_info <- function(enc=NULL) {
#' Unless you are an expert user and you know what you are doing,
#' \code{stri_enc_set} should only be used if \pkg{ICU} fails to detect
#' your system's encoding correctly (while testing \pkg{stringi}
-#' we only encountered such a situation on a very old Solaris machine, though).
+#' we only encountered such a situation on a very old Solaris machine).
#' Note that \pkg{ICU} tries to match the encoding part of the \code{LC_CTYPE}
#' category as given by \code{\link{Sys.getlocale}}.
#'
-#' If you set a default encoding that is not a superset of ASCII
-#' or it is not an 8-bit encoding, a warning will be generated,
+#' If you set a default encoding that is neither a superset of ASCII,
+#' nor an 8-bit encoding, a warning will be generated,
#' see \link{stringi-encoding} for discussion.
#'
#' @param enc single string; character encoding name,
@@ -208,7 +208,7 @@ stri_enc_get <- function() {
#' \code{ASCII}, \code{latin1}, \code{bytes}, \code{native},
#' and \code{UTF-8}. Additionally, missing values are handled properly.
#'
-#' This is exactly the same information which is used by
+#' This is exactly the same information that is used by
#' all the functions in \pkg{stringi} to re-encode their inputs.
#'
#' @family encoding_management
diff --git a/R/escape.R b/R/escape.R
index 90d560d..f2e99f8 100644
--- a/R/escape.R
+++ b/R/escape.R
@@ -1,5 +1,5 @@
## This file is part of the 'stringi' package for R.
-## Copyright (C) 2013-2016, Marek Gagolewski and Bartek Tartanus
+## Copyright (c) 2013-2017, Marek Gagolewski and other contributors.
## All rights reserved.
##
## Redistribution and use in source and binary forms, with or without
diff --git a/R/install.R b/R/install.R
index 18311d1..bcc06c0 100644
--- a/R/install.R
+++ b/R/install.R
@@ -1,5 +1,5 @@
## This file is part of the 'stringi' package for R.
-## Copyright (C) 2013-2016, Marek Gagolewski and Bartek Tartanus
+## Copyright (c) 2013-2017, Marek Gagolewski and other contributors.
## All rights reserved.
##
## Redistribution and use in source and binary forms, with or without
@@ -29,62 +29,61 @@
## EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-#' @title
-#' Installation-Related Utilities [DEPRECATED]
-#'
-#' @description
-#' These functions are responsible for checking and guaranteeing
-#' that the ICU data library (icudt) is available and that \pkg{stringi}
-#' is ready to use.
-#'
-#' These functions are deprecated and will no longer be available
-#' in future \pkg{stringi} releases.
-#'
-#' @details
-#' ICU makes use of a wide variety of data tables to provide many
-#' of its services. Examples include converter mapping tables,
-#' collation rules, transliteration rules, break iterator rules
-#' and dictionaries, and other locale data.
-#'
-#' Without the ICU data library (icudt) many \pkg{stringi} features
-#' will not be available. icudt size is approx. 10-30 MB.
-#'
-#' \code{stri_install_check()} tests whether some ICU services
-#' are available. If they are not, it is most likely due to
-#' unavailable ICU data library.
-#'
-#' \code{stri_install_icudt()} downloads and installs the ICU data library
-#' specific for your platform (little/big-endian). The downloaded
-#' file will be decompressed into the directory where the package has been
-#' installed, see \code{\link{find.package}}, so make sure
-#' you have sufficient write permissions.
-#'
-#' @param silent suppress diagnostic messages
-#' @param check enable \code{stri_install_check()} tests
-#' @param outpath path to install icudt to. If \code{NULL}, then
-#' \code{file.path(path.package("stringi"), "libs")} will be used.
-#' @param inpath path to search icudt archive in.
-#' If \code{NULL}, then only stringi mirror servers will be used.
-#' Mainly of interest to system admins and software developers.
-#'
-#' @return These functions return a logical value, invisibly.
-#' \code{TRUE} denotes that the requested operation has been completed
-#' successfully.
-#'
-#' @references
-#' \emph{ICU Data} -- ICU User Guide,
-#' \url{http://userguide.icu-project.org/icudata}
-#'
-#' @examples
-#' stri_install_check()
-#'
-#' @rdname stri_install
-#' @export
+# @title
+# Installation-Related Utilities [DEPRECATED]
+#
+# @description
+# These functions are responsible for checking and guaranteeing
+# that the ICU data library (icudt) is available and that \pkg{stringi}
+# is ready to use.
+#
+# These functions are deprecated and will no longer be available
+# in future \pkg{stringi} releases.
+#
+# @details
+# ICU makes use of a wide variety of data tables to provide many
+# of its services. Examples include converter mapping tables,
+# collation rules, transliteration rules, break iterator rules
+# and dictionaries, and other locale data.
+#
+# Without the ICU data library (icudt) many \pkg{stringi} features
+# will not be available. icudt size is approx. 10-30 MB.
+#
+# \code{stri_install_check()} tests whether some ICU services
+# are available. If they are not, it is most likely due to
+# unavailable ICU data library.
+#
+# \code{stri_install_icudt()} downloads and installs the ICU data library
+# specific for your platform (little/big-endian). The downloaded
+# file will be decompressed into the directory where the package has been
+# installed, see \code{\link{find.package}}, so make sure
+# you have sufficient write permissions.
+#
+# @param silent suppress diagnostic messages
+# @param check enable \code{stri_install_check()} tests
+# @param outpath path to install icudt to. If \code{NULL}, then
+# \code{file.path(path.package("stringi"), "libs")} will be used.
+# @param inpath path to search icudt archive in.
+# If \code{NULL}, then only stringi mirror servers will be used.
+# Mainly of interest to system admins and software developers.
+#
+# @return These functions return a logical value, invisibly.
+# \code{TRUE} denotes that the requested operation has been completed
+# successfully.
+#
+# @references
+# \emph{ICU Data} -- ICU User Guide,
+# \url{http://userguide.icu-project.org/icudata}
+#
+# @examples
+# stri_install_check()
+#
+# @rdname stri_install
stri_install_check <- function(silent=FALSE) {
- stopifnot(is.logical(silent), length(silent) == 1)
+ # As of v1.1.3, this function is no longer exported.
+ # It was deprecated in 0.5-5.
- warning("THIS FUNCTION IS DEPRECATED")
- # this function may stay as-is, but should no longer be exported in the future
+ stopifnot(is.logical(silent), length(silent) == 1)
allok <- tryCatch({
if (!silent) message(stri_info(TRUE)) # this may also throw an error
@@ -107,88 +106,125 @@ stri_install_check <- function(silent=FALSE) {
}
-#' @rdname stri_install
-#' @export
-stri_install_icudt <- function(check=TRUE, outpath=NULL, inpath=NULL) {
- stopifnot(is.logical(check), length(check) == 1, !is.na(check))
- if (check && stri_install_check(TRUE)) {
- message("icudt has been already installed.")
- return(invisible(TRUE))
- }
- if (check) # install.libs.R calls it with check=FALSE
- warning("THIS FUNCTION IS DEPRECATED")
- # this function should be removed
- # remember about importFrom tools md5sum -> stringi-package.R
- # use this very code in install.libs.R directly
- if (is.null(outpath))
- outpath <- file.path(path.package("stringi"), "libs")
- stopifnot(is.character(outpath), length(outpath) == 1, file.exists(outpath))
+icudt_fname <- c("little"="icudt55l.zip",
+ "big" ="icudt55b.zip")
+
+icudt_md5ex <- c("little"="ff345529f230cc39bb8d450af0607708",
+ "big" ="1194f0dd879d3c1c1f189cde5fd90efe")
+
+icudt_mirrors <- c("https://raw.githubusercontent.com/gagolews/stringi/master/src/icu55/data/",
+ "http://www.mini.pw.edu.pl/~gagolews/stringi/",
+ "http://www.ibspan.waw.pl/~gagolews/stringi/")
+
+
+
+# @rdname stri_install
+stri_download_icudt <- function(inpath) {
- fname <- if (.Platform$endian == 'little') "icudt55l.zip"
- else "icudt55b.zip"
+ fname <- icudt_fname[.Platform$endian]
- md5ex <- if (.Platform$endian == 'little') "ff345529f230cc39bb8d450af0607708"
- else "1194f0dd879d3c1c1f189cde5fd90efe"
+ md5ex <- icudt_md5ex[.Platform$endian]
- mirrors <- c("http://static.rexamine.com/packages/",
- "http://www.mini.pw.edu.pl/~gagolews/stringi/",
- "http://www.ibspan.waw.pl/~gagolews/stringi/")
+ mirrors <- icudt_mirrors
- if (!is.null(inpath)) {
- stopifnot(is.character(inpath), length(inpath) > 0, !is.na(inpath))
- mirrors <- c(inpath, mirrors)
+ icudtzipfname <- file.path(inpath, fname) #tempfile(fileext=".zip")
+
+ if (file.exists(icudtzipfname)) {
+ md5ob <- tools::md5sum(icudtzipfname)
+ if (is.na(md5ob)) {
+ message("error checking md5sum for icudt")
+ return(invisible(FALSE))
+ }
+ if (md5ob != md5ex) {
+ message("md5sum mismatch for icudt")
+ return(invisible(FALSE))
+ }
+ message("icudt already downloaded")
+ return(icudtzipfname)
}
- outfname <- tempfile(fileext=".zip")
- download_from_mirror <- function(href, fname, outfname) {
+ # if (!is.null(inpath)) {
+ # stopifnot(is.character(inpath), length(inpath) > 0, !is.na(inpath))
+ # mirrors <- c(inpath, mirrors)
+ # }
+
+ download_from_mirror <- function(href, fname, icudtzipfname) {
tryCatch({
- suppressWarnings(file.remove(outfname))
- if (!grepl("^https?://", href)) {
- # try to copy icudt from a local repo
- if (!file.exists(file.path(href, fname))) return("no icudt in a local repo")
- message("icudt has been found in a local repo")
- file.copy(file.path(href, fname), outfname)
+ suppressWarnings(file.remove(icudtzipfname))
+ # download icudt
+ if (download.file(paste(href, fname, sep=""), icudtzipfname, mode="wb") != 0) {
+ return("download error")
+ }
+ if (!file.exists(icudtzipfname)) return("download error")
+ md5ob <- tools::md5sum(icudtzipfname)
+ if (is.na(md5ob)) {
+ return("error checking md5sum")
}
- else {
- # download icudt
- if (download.file(paste(href, fname, sep=""), outfname, mode="wb") != 0)
- return("download error")
+ if (md5ob != md5ex) {
+ return("md5sum mismatch")
}
- if (!file.exists(outfname)) return("download error")
- md5ob <- tools::md5sum(outfname)
- if (is.na(md5ob)) return("error checking md5sum")
- if (md5ob != md5ex) return("md5sum mismatch")
TRUE
}, error = function(e) as.character(e))
}
- message("downloading ICU data library (icudt)")
- message("the files will be extracted to: ", outpath)
+ message("downloading the ICU data library (icudt)")
+ message("output path: ", icudtzipfname)
+ if (!exists("dir.exists") || !dir.exists(inpath)) # dir.exists is R >= 3.2.0
+ suppressWarnings(dir.create(inpath))
+
allok <- FALSE
for (m in mirrors) {
- if (identical(status <- download_from_mirror(m, fname, outfname), TRUE)) {
+ if (identical(status <- download_from_mirror(m, fname, icudtzipfname), TRUE)) {
allok <- TRUE
break
}
else message(status)
}
- if (!allok) {
+ if (!allok || !file.exists(icudtzipfname)) {
+ suppressWarnings(file.remove(icudtzipfname))
message("icudt download failed")
return(invisible(FALSE))
}
- message("icudt fetch OK")
- message("decompressing downloaded archive")
- res <- unzip(outfname, exdir=outpath, overwrite=TRUE)
+ message("icudt fetch successful")
+ return(icudtzipfname)
+}
+
+
+# @rdname stri_install
+stri_install_icudt <- function(check=TRUE, outpath=NULL, inpath=NULL) {
+ # As of v1.1.3, this function is no longer exported.
+ # It was deprecated in 0.5-5.
+
+ stopifnot(is.logical(check), length(check) == 1, !is.na(check))
+ if (check && stri_install_check(TRUE)) {
+ message("icudt is already installed.")
+ return(invisible(TRUE))
+ }
+
+ # remember about importFrom tools md5sum -> stringi-package.R
+ # use this very code in install.libs.R directly
+
+ icudtzipfname <- stri_download_icudt(inpath)
+ if (identical(icudtzipfname, FALSE) || !file.exists(icudtzipfname)) {
+ return(invisible(FALSE))
+ }
+
+ if (is.null(outpath))
+ outpath <- file.path(path.package("stringi"), "libs")
+
+ stopifnot(is.character(outpath), length(outpath) == 1, file.exists(outpath))
+
+ message("decompressing icudt archive ", icudtzipfname, " to: ", outpath)
+ res <- unzip(icudtzipfname, exdir=outpath, overwrite=TRUE)
if (!is.character(res) || length(res) <= 0) {
- message("error decompressing archive")
+ message("error decompressing icudt archive")
return(invisible(FALSE))
}
- suppressWarnings(file.remove(outfname))
message("icudt has been installed successfully")
invisible(TRUE)
}
diff --git a/R/internal_prepare_arg.R b/R/internal_prepare_arg.R
index 933b6c4..d544664 100644
--- a/R/internal_prepare_arg.R
+++ b/R/internal_prepare_arg.R
@@ -1,5 +1,5 @@
## This file is part of the 'stringi' package for R.
-## Copyright (C) 2013-2016, Marek Gagolewski and Bartek Tartanus
+## Copyright (c) 2013-2017, Marek Gagolewski and other contributors.
## All rights reserved.
##
## Redistribution and use in source and binary forms, with or without
diff --git a/R/internal_test.R b/R/internal_test.R
index 1ea550e..526e3b9 100644
--- a/R/internal_test.R
+++ b/R/internal_test.R
@@ -1,5 +1,5 @@
## This file is part of the 'stringi' package for R.
-## Copyright (C) 2013-2016, Marek Gagolewski and Bartek Tartanus
+## Copyright (c) 2013-2017, Marek Gagolewski and other contributors.
## All rights reserved.
##
## Redistribution and use in source and binary forms, with or without
diff --git a/R/join.R b/R/join.R
index a3846db..7298501 100644
--- a/R/join.R
+++ b/R/join.R
@@ -1,5 +1,5 @@
## This file is part of the 'stringi' package for R.
-## Copyright (C) 2013-2016, Marek Gagolewski and Bartek Tartanus
+## Copyright (c) 2013-2017, Marek Gagolewski and other contributors.
## All rights reserved.
##
## Redistribution and use in source and binary forms, with or without
diff --git a/R/length.R b/R/length.R
index 8d0486e..2ebf317 100644
--- a/R/length.R
+++ b/R/length.R
@@ -1,5 +1,5 @@
## This file is part of the 'stringi' package for R.
-## Copyright (C) 2013-2016, Marek Gagolewski and Bartek Tartanus
+## Copyright (c) 2013-2017, Marek Gagolewski and other contributors.
## All rights reserved.
##
## Redistribution and use in source and binary forms, with or without
diff --git a/R/locale.R b/R/locale.R
index 82e6485..ea78fca 100644
--- a/R/locale.R
+++ b/R/locale.R
@@ -1,5 +1,5 @@
## This file is part of the 'stringi' package for R.
-## Copyright (C) 2013-2016, Marek Gagolewski and Bartek Tartanus
+## Copyright (c) 2013-2017, Marek Gagolewski and other contributors.
## All rights reserved.
##
## Redistribution and use in source and binary forms, with or without
diff --git a/R/locale_management.R b/R/locale_management.R
index b3ca762..287fddb 100644
--- a/R/locale_management.R
+++ b/R/locale_management.R
@@ -1,5 +1,5 @@
## This file is part of the 'stringi' package for R.
-## Copyright (C) 2013-2016, Marek Gagolewski and Bartek Tartanus
+## Copyright (c) 2013-2017, Marek Gagolewski and other contributors.
## All rights reserved.
##
## Redistribution and use in source and binary forms, with or without
diff --git a/R/opts.R b/R/opts.R
index ed4f9fe..2fab356 100644
--- a/R/opts.R
+++ b/R/opts.R
@@ -1,5 +1,5 @@
## This file is part of the 'stringi' package for R.
-## Copyright (C) 2013-2016, Marek Gagolewski and Bartek Tartanus
+## Copyright (c) 2013-2017, Marek Gagolewski and other contributors.
## All rights reserved.
##
## Redistribution and use in source and binary forms, with or without
diff --git a/R/pad.R b/R/pad.R
index 37b9495..7aa5b9e 100644
--- a/R/pad.R
+++ b/R/pad.R
@@ -1,5 +1,5 @@
## This file is part of the 'stringi' package for R.
-## Copyright (C) 2013-2016, Marek Gagolewski and Bartek Tartanus
+## Copyright (c) 2013-2017, Marek Gagolewski and other contributors.
## All rights reserved.
##
## Redistribution and use in source and binary forms, with or without
diff --git a/R/random.R b/R/random.R
index f28b08e..7aab2ad 100644
--- a/R/random.R
+++ b/R/random.R
@@ -1,5 +1,5 @@
## This file is part of the 'stringi' package for R.
-## Copyright (C) 2013-2016, Marek Gagolewski and Bartek Tartanus
+## Copyright (c) 2013-2017, Marek Gagolewski and other contributors.
## All rights reserved.
##
## Redistribution and use in source and binary forms, with or without
diff --git a/R/reverse.R b/R/reverse.R
index 47e37fe..8ca85f1 100644
--- a/R/reverse.R
+++ b/R/reverse.R
@@ -1,5 +1,5 @@
## This file is part of the 'stringi' package for R.
-## Copyright (C) 2013-2016, Marek Gagolewski and Bartek Tartanus
+## Copyright (c) 2013-2017, Marek Gagolewski and other contributors.
## All rights reserved.
##
## Redistribution and use in source and binary forms, with or without
diff --git a/R/search.R b/R/search.R
index 1935a77..469da7a 100644
--- a/R/search.R
+++ b/R/search.R
@@ -1,5 +1,5 @@
## This file is part of the 'stringi' package for R.
-## Copyright (C) 2013-2016, Marek Gagolewski and Bartek Tartanus
+## Copyright (c) 2013-2017, Marek Gagolewski and other contributors.
## All rights reserved.
##
## Redistribution and use in source and binary forms, with or without
diff --git a/R/search_count_4.R b/R/search_count_4.R
index 355c8b2..45114ab 100644
--- a/R/search_count_4.R
+++ b/R/search_count_4.R
@@ -1,5 +1,5 @@
## This file is part of the 'stringi' package for R.
-## Copyright (C) 2013-2016, Marek Gagolewski and Bartek Tartanus
+## Copyright (c) 2013-2017, Marek Gagolewski and other contributors.
## All rights reserved.
##
## Redistribution and use in source and binary forms, with or without
diff --git a/R/search_count_bound.R b/R/search_count_bound.R
index b35723e..08f53c0 100644
--- a/R/search_count_bound.R
+++ b/R/search_count_bound.R
@@ -1,5 +1,5 @@
## This file is part of the 'stringi' package for R.
-## Copyright (C) 2013-2016, Marek Gagolewski and Bartek Tartanus
+## Copyright (c) 2013-2017, Marek Gagolewski and other contributors.
## All rights reserved.
##
## Redistribution and use in source and binary forms, with or without
diff --git a/R/search_detect_4.R b/R/search_detect_4.R
index 6d3bf63..cf6c244 100644
--- a/R/search_detect_4.R
+++ b/R/search_detect_4.R
@@ -1,5 +1,5 @@
## This file is part of the 'stringi' package for R.
-## Copyright (C) 2013-2016, Marek Gagolewski and Bartek Tartanus
+## Copyright (c) 2013-2017, Marek Gagolewski and other contributors.
## All rights reserved.
##
## Redistribution and use in source and binary forms, with or without
diff --git a/R/search_extract_4.R b/R/search_extract_4.R
index 5b61f55..502239a 100644
--- a/R/search_extract_4.R
+++ b/R/search_extract_4.R
@@ -1,5 +1,5 @@
## This file is part of the 'stringi' package for R.
-## Copyright (C) 2013-2016, Marek Gagolewski and Bartek Tartanus
+## Copyright (c) 2013-2017, Marek Gagolewski and other contributors.
## All rights reserved.
##
## Redistribution and use in source and binary forms, with or without
diff --git a/R/search_extract_bound.R b/R/search_extract_bound.R
index fb9b1fa..b343d28 100644
--- a/R/search_extract_bound.R
+++ b/R/search_extract_bound.R
@@ -1,5 +1,5 @@
## This file is part of the 'stringi' package for R.
-## Copyright (C) 2013-2016, Marek Gagolewski and Bartek Tartanus
+## Copyright (c) 2013-2017, Marek Gagolewski and other contributors.
## All rights reserved.
##
## Redistribution and use in source and binary forms, with or without
diff --git a/R/search_locate_4.R b/R/search_locate_4.R
index e8f7182..32ef8be 100644
--- a/R/search_locate_4.R
+++ b/R/search_locate_4.R
@@ -1,5 +1,5 @@
## This file is part of the 'stringi' package for R.
-## Copyright (C) 2013-2016, Marek Gagolewski and Bartek Tartanus
+## Copyright (c) 2013-2017, Marek Gagolewski and other contributors.
## All rights reserved.
##
## Redistribution and use in source and binary forms, with or without
diff --git a/R/search_locate_bound.R b/R/search_locate_bound.R
index cd3cb97..df3f6e2 100644
--- a/R/search_locate_bound.R
+++ b/R/search_locate_bound.R
@@ -1,5 +1,5 @@
## This file is part of the 'stringi' package for R.
-## Copyright (C) 2013-2016, Marek Gagolewski and Bartek Tartanus
+## Copyright (c) 2013-2017, Marek Gagolewski and other contributors.
## All rights reserved.
##
## Redistribution and use in source and binary forms, with or without
diff --git a/R/search_match_4.R b/R/search_match_4.R
index e84e3a2..8eb75e3 100644
--- a/R/search_match_4.R
+++ b/R/search_match_4.R
@@ -1,5 +1,5 @@
## This file is part of the 'stringi' package for R.
-## Copyright (C) 2013-2016, Marek Gagolewski and Bartek Tartanus
+## Copyright (c) 2013-2017, Marek Gagolewski and other contributors.
## All rights reserved.
##
## Redistribution and use in source and binary forms, with or without
diff --git a/R/search_replace_4.R b/R/search_replace_4.R
index 5adaa28..3404650 100644
--- a/R/search_replace_4.R
+++ b/R/search_replace_4.R
@@ -1,5 +1,5 @@
## This file is part of the 'stringi' package for R.
-## Copyright (C) 2013-2016, Marek Gagolewski and Bartek Tartanus
+## Copyright (c) 2013-2017, Marek Gagolewski and other contributors.
## All rights reserved.
##
## Redistribution and use in source and binary forms, with or without
diff --git a/R/search_replace_na.R b/R/search_replace_na.R
index 81bc09d..6da35d1 100644
--- a/R/search_replace_na.R
+++ b/R/search_replace_na.R
@@ -1,5 +1,5 @@
## This file is part of the 'stringi' package for R.
-## Copyright (C) 2013-2016, Marek Gagolewski and Bartek Tartanus
+## Copyright (c) 2013-2017, Marek Gagolewski and other contributors.
## All rights reserved.
##
## Redistribution and use in source and binary forms, with or without
diff --git a/R/search_split_4.R b/R/search_split_4.R
index 8801a36..29bcc22 100644
--- a/R/search_split_4.R
+++ b/R/search_split_4.R
@@ -1,5 +1,5 @@
## This file is part of the 'stringi' package for R.
-## Copyright (C) 2013-2016, Marek Gagolewski and Bartek Tartanus
+## Copyright (c) 2013-2017, Marek Gagolewski and other contributors.
## All rights reserved.
##
## Redistribution and use in source and binary forms, with or without
diff --git a/R/search_split_bound.R b/R/search_split_bound.R
index 66e3dec..31ac827 100644
--- a/R/search_split_bound.R
+++ b/R/search_split_bound.R
@@ -1,5 +1,5 @@
## This file is part of the 'stringi' package for R.
-## Copyright (C) 2013-2016, Marek Gagolewski and Bartek Tartanus
+## Copyright (c) 2013-2017, Marek Gagolewski and other contributors.
## All rights reserved.
##
## Redistribution and use in source and binary forms, with or without
diff --git a/R/search_startsendswith_4.R b/R/search_startsendswith_4.R
index 839d923..3a8eeab 100644
--- a/R/search_startsendswith_4.R
+++ b/R/search_startsendswith_4.R
@@ -1,5 +1,5 @@
## This file is part of the 'stringi' package for R.
-## Copyright (C) 2013-2016, Marek Gagolewski and Bartek Tartanus
+## Copyright (c) 2013-2017, Marek Gagolewski and other contributors.
## All rights reserved.
##
## Redistribution and use in source and binary forms, with or without
diff --git a/R/search_subset_4.R b/R/search_subset_4.R
index d5bf2f3..1f98268 100644
--- a/R/search_subset_4.R
+++ b/R/search_subset_4.R
@@ -1,5 +1,5 @@
## This file is part of the 'stringi' package for R.
-## Copyright (C) 2013-2016, Marek Gagolewski and Bartek Tartanus
+## Copyright (c) 2013-2017, Marek Gagolewski and other contributors.
## All rights reserved.
##
## Redistribution and use in source and binary forms, with or without
diff --git a/R/sort.R b/R/sort.R
index bc055ae..3666e92 100644
--- a/R/sort.R
+++ b/R/sort.R
@@ -1,5 +1,5 @@
## This file is part of the 'stringi' package for R.
-## Copyright (C) 2013-2016, Marek Gagolewski and Bartek Tartanus
+## Copyright (c) 2013-2017, Marek Gagolewski and other contributors.
## All rights reserved.
##
## Redistribution and use in source and binary forms, with or without
diff --git a/R/stats.R b/R/stats.R
index 4664077..63d004e 100644
--- a/R/stats.R
+++ b/R/stats.R
@@ -1,5 +1,5 @@
## This file is part of the 'stringi' package for R.
-## Copyright (C) 2013-2016, Marek Gagolewski and Bartek Tartanus
+## Copyright (c) 2013-2017, Marek Gagolewski and other contributors.
## All rights reserved.
##
## Redistribution and use in source and binary forms, with or without
diff --git a/R/stringi-package.R b/R/stringi-package.R
index 87ecfa4..caf5023 100644
--- a/R/stringi-package.R
+++ b/R/stringi-package.R
@@ -1,5 +1,5 @@
## This file is part of the 'stringi' package for R.
-## Copyright (C) 2013-2016, Marek Gagolewski and Bartek Tartanus
+## Copyright (c) 2013-2017, Marek Gagolewski and other contributors.
## All rights reserved.
##
## Redistribution and use in source and binary forms, with or without
@@ -143,7 +143,7 @@
#' @aliases stringi
#' @docType package
#' @author Marek Gagolewski,
-#' with contributions from Bartek Tartanus.
+#' with contributions from Bartek Tartanus and others.
#' ICU4C was developed by IBM and others.
#' The Unicode Character Database is due to Unicode, Inc.;
#' see the COPYRIGHTS file for more details.
diff --git a/R/sub.R b/R/sub.R
index 12a7a3a..f35ea25 100644
--- a/R/sub.R
+++ b/R/sub.R
@@ -1,5 +1,5 @@
## This file is part of the 'stringi' package for R.
-## Copyright (C) 2013-2016, Marek Gagolewski and Bartek Tartanus
+## Copyright (c) 2013-2017, Marek Gagolewski and other contributors.
## All rights reserved.
##
## Redistribution and use in source and binary forms, with or without
@@ -61,7 +61,7 @@
#' For negative indices in \code{from} or \code{to},
#' counting starts at the end of the string.
#' For instance, index -1 denotes the last code point in the string.
-#' Negative \code{length} means counting backwards.
+#' Non-positive \code{length} gives an empty string.
#'
#'
#' In \code{stri_sub}, out-of-bound indices are silently
diff --git a/R/time_calendar.R b/R/time_calendar.R
index 6d730e9..cadf10a 100644
--- a/R/time_calendar.R
+++ b/R/time_calendar.R
@@ -1,5 +1,5 @@
## This file is part of the 'stringi' package for R.
-## Copyright (C) 2013-2016, Marek Gagolewski and Bartek Tartanus
+## Copyright (c) 2013-2017, Marek Gagolewski and other contributors.
## All rights reserved.
##
## Redistribution and use in source and binary forms, with or without
diff --git a/R/time_format.R b/R/time_format.R
index 411564f..83fe09f 100644
--- a/R/time_format.R
+++ b/R/time_format.R
@@ -1,5 +1,5 @@
## This file is part of the 'stringi' package for R.
-## Copyright (C) 2013-2016, Marek Gagolewski and Bartek Tartanus
+## Copyright (c) 2013-2017, Marek Gagolewski and other contributors.
## All rights reserved.
##
## Redistribution and use in source and binary forms, with or without
diff --git a/R/time_symbols.R b/R/time_symbols.R
index d402925..c4cc2da 100644
--- a/R/time_symbols.R
+++ b/R/time_symbols.R
@@ -1,5 +1,5 @@
## This file is part of the 'stringi' package for R.
-## Copyright (C) 2013-2016, Marek Gagolewski and Bartek Tartanus
+## Copyright (c) 2013-2017, Marek Gagolewski and other contributors.
## All rights reserved.
##
## Redistribution and use in source and binary forms, with or without
diff --git a/R/time_zone.R b/R/time_zone.R
index f46ab26..732933f 100644
--- a/R/time_zone.R
+++ b/R/time_zone.R
@@ -1,5 +1,5 @@
## This file is part of the 'stringi' package for R.
-## Copyright (C) 2013-2016, Marek Gagolewski and Bartek Tartanus
+## Copyright (c) 2013-2017, Marek Gagolewski and other contributors.
## All rights reserved.
##
## Redistribution and use in source and binary forms, with or without
diff --git a/R/todo_charclass.R b/R/todo_charclass.R
index a77e36d..6817260 100644
--- a/R/todo_charclass.R
+++ b/R/todo_charclass.R
@@ -1,5 +1,5 @@
## This file is part of the 'stringi' package for R.
-## Copyright (C) 2013-2016, Marek Gagolewski and Bartek Tartanus
+## Copyright (c) 2013-2017, Marek Gagolewski and other contributors.
## All rights reserved.
##
## Redistribution and use in source and binary forms, with or without
diff --git a/R/todo_justify.R b/R/todo_justify.R
index 63046ae..3e2c01f 100644
--- a/R/todo_justify.R
+++ b/R/todo_justify.R
@@ -1,5 +1,5 @@
## This file is part of the 'stringi' package for R.
-## Copyright (C) 2013-2016, Marek Gagolewski and Bartek Tartanus
+## Copyright (c) 2013-2017, Marek Gagolewski and other contributors.
## All rights reserved.
##
## Redistribution and use in source and binary forms, with or without
diff --git a/R/todo_rbnf.R b/R/todo_rbnf.R
index 0d936fc..67143f1 100644
--- a/R/todo_rbnf.R
+++ b/R/todo_rbnf.R
@@ -1,5 +1,5 @@
## This file is part of the 'stringi' package for R.
-## Copyright (C) 2013-2016, Marek Gagolewski and Bartek Tartanus
+## Copyright (c) 2013-2017, Marek Gagolewski and other contributors.
## All rights reserved.
##
## Redistribution and use in source and binary forms, with or without
diff --git a/R/todo_search_in.R b/R/todo_search_in.R
index ba7c791..312d03c 100644
--- a/R/todo_search_in.R
+++ b/R/todo_search_in.R
@@ -1,5 +1,5 @@
## This file is part of the 'stringi' package for R.
-## Copyright (C) 2013-2016, Marek Gagolewski and Bartek Tartanus
+## Copyright (c) 2013-2017, Marek Gagolewski and other contributors.
## All rights reserved.
##
## Redistribution and use in source and binary forms, with or without
diff --git a/R/todo_split.R b/R/todo_split.R
index 863dbee..df836b9 100644
--- a/R/todo_split.R
+++ b/R/todo_split.R
@@ -1,5 +1,5 @@
## This file is part of the 'stringi' package for R.
-## Copyright (C) 2013-2016, Marek Gagolewski and Bartek Tartanus
+## Copyright (c) 2013-2017, Marek Gagolewski and other contributors.
## All rights reserved.
##
## Redistribution and use in source and binary forms, with or without
diff --git a/R/trans_casemap.R b/R/trans_casemap.R
index 9d7ee5b..a323423 100644
--- a/R/trans_casemap.R
+++ b/R/trans_casemap.R
@@ -1,5 +1,5 @@
## This file is part of the 'stringi' package for R.
-## Copyright (C) 2013-2016, Marek Gagolewski and Bartek Tartanus
+## Copyright (c) 2013-2017, Marek Gagolewski and other contributors.
## All rights reserved.
##
## Redistribution and use in source and binary forms, with or without
diff --git a/R/trans_normalization.R b/R/trans_normalization.R
index 1089e46..285e6b7 100644
--- a/R/trans_normalization.R
+++ b/R/trans_normalization.R
@@ -1,5 +1,5 @@
## This file is part of the 'stringi' package for R.
-## Copyright (C) 2013-2016, Marek Gagolewski and Bartek Tartanus
+## Copyright (c) 2013-2017, Marek Gagolewski and other contributors.
## All rights reserved.
##
## Redistribution and use in source and binary forms, with or without
diff --git a/R/trans_other.R b/R/trans_other.R
index cb372eb..bfd33b3 100644
--- a/R/trans_other.R
+++ b/R/trans_other.R
@@ -1,5 +1,5 @@
## This file is part of the 'stringi' package for R.
-## Copyright (C) 2013-2016, Marek Gagolewski and Bartek Tartanus
+## Copyright (c) 2013-2017, Marek Gagolewski and other contributors.
## All rights reserved.
##
## Redistribution and use in source and binary forms, with or without
diff --git a/R/trans_transliterate.R b/R/trans_transliterate.R
index 0fb25e7..9f925b5 100644
--- a/R/trans_transliterate.R
+++ b/R/trans_transliterate.R
@@ -1,5 +1,5 @@
## This file is part of the 'stringi' package for R.
-## Copyright (C) 2013-2016, Marek Gagolewski and Bartek Tartanus
+## Copyright (c) 2013-2017, Marek Gagolewski and other contributors.
## All rights reserved.
##
## Redistribution and use in source and binary forms, with or without
diff --git a/R/trim.R b/R/trim.R
index 0aab6c0..0e7c85d 100644
--- a/R/trim.R
+++ b/R/trim.R
@@ -1,5 +1,5 @@
## This file is part of the 'stringi' package for R.
-## Copyright (C) 2013-2016, Marek Gagolewski and Bartek Tartanus
+## Copyright (c) 2013-2017, Marek Gagolewski and other contributors.
## All rights reserved.
##
## Redistribution and use in source and binary forms, with or without
diff --git a/R/utils.R b/R/utils.R
index 36e8c14..5d42f1a 100644
--- a/R/utils.R
+++ b/R/utils.R
@@ -1,5 +1,5 @@
## This file is part of the 'stringi' package for R.
-## Copyright (C) 2013-2016, Marek Gagolewski and Bartek Tartanus
+## Copyright (c) 2013-2017, Marek Gagolewski and other contributors.
## All rights reserved.
##
## Redistribution and use in source and binary forms, with or without
diff --git a/R/wrap.R b/R/wrap.R
index 05b36cd..e40c990 100644
--- a/R/wrap.R
+++ b/R/wrap.R
@@ -1,5 +1,5 @@
## This file is part of the 'stringi' package for R.
-## Copyright (C) 2013-2016, Marek Gagolewski and Bartek Tartanus
+## Copyright (c) 2013-2017, Marek Gagolewski and other contributors.
## All rights reserved.
##
## Redistribution and use in source and binary forms, with or without
diff --git a/configure b/configure
index 5cc9af5..7ab524d 100755
--- a/configure
+++ b/configure
@@ -624,11 +624,6 @@ ac_includes_default="\
ac_subst_vars='LTLIBOBJS
LIBOBJS
ICU_FOUND
-STRINGI_LIBS
-STRINGI_LDFLAGS
-STRINGI_CFLAGS
-STRINGI_CPPFLAGS
-STRINGI_CXXFLAGS
STRINGI_CXXSTD
STRINGI_OBJECTS
STRINGI_ICU_STUBDATA_SOURCES_C
@@ -638,24 +633,32 @@ STRINGI_ICU_I18N_SOURCES_CPP
STRINGI_ICU_COMMON_SOURCES_C
STRINGI_ICU_COMMON_SOURCES_CPP
STRINGI_SOURCES_CPP
-PKG_CONFIG
ac_ct_CXX
EGREP
GREP
-CPP
OBJEXT
EXEEXT
ac_ct_CC
+STRINGI_LIBS
+STRINGI_LDFLAGS
+STRINGI_CXXFLAGS
+STRINGI_CPPFLAGS
+STRINGI_CFLAGS
+STRINGI_DISABLE_PKG_CONFIG
+STRINGI_DISABLE_ICU_BUNDLE
+STRINGI_DISABLE_CXX11
+LDFLAGS
CXXCPP
CXXFLAGS
CXX
CPPFLAGS
-LDFLAGS
+CPP
CFLAGS
CC
-CAT
PKG_CONFIG_PATH
ICUDT_DIR
+PKG_CONFIG
+CAT
R_HOME
target_alias
host_alias
@@ -713,18 +716,27 @@ with_extra_libs
host_alias
target_alias
R_HOME
+CAT
+PKG_CONFIG
ICUDT_DIR
PKG_CONFIG_PATH
-CAT
CC
CFLAGS
-LDFLAGS
-LIBS
+CPP
CPPFLAGS
CXX
CXXFLAGS
CXXCPP
-CPP
+LDFLAGS
+LIBS
+STRINGI_DISABLE_CXX11
+STRINGI_DISABLE_ICU_BUNDLE
+STRINGI_DISABLE_PKG_CONFIG
+STRINGI_CFLAGS
+STRINGI_CPPFLAGS
+STRINGI_CXXFLAGS
+STRINGI_LDFLAGS
+STRINGI_LIBS
CCC'
@@ -1335,7 +1347,7 @@ Optional Features:
--disable-option-checking ignore unrecognized --enable/--with options
--disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no)
--enable-FEATURE[=ARG] include FEATURE [ARG=yes]
- --disable-cxx11 Disable use of C++11; if you build ICU4C from
+ --disable-cxx11 Disable the use of C++11; if you build ICU4C from
sources, make sure your C++ compiler supports the
long long type.
--disable-icu-bundle Force the use of the system ICU.
@@ -1350,19 +1362,28 @@ Optional Packages:
--with-PACKAGE[=ARG] use PACKAGE [ARG=yes]
--without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no)
--with-extra-cflags=FLAGS
- Additional C compiler flags
+ Additional C compiler flags, see also the
+ STRINGI_CFLAGS environment variable
--with-extra-cppflags=FLAGS
- Additional C/C++ preprocessor flags
+ Additional C/C++ preprocessor flags, see also the
+ STRINGI_CPPFLAGS environment variable
--with-extra-cxxflags=FLAGS
- Additional C++ compiler flags
+ Additional C++ compiler flags, see also the
+ STRINGI_CXXFLAGS environment variable
--with-extra-ldflags=FLAGS
- Additional linker flags
- --with-extra-libs=FLAGS Additional libraries to link against
+ Additional linker flags, see also the
+ STRINGI_LDFLAGS environment variable
+ --with-extra-libs=FLAGS Additional libraries to link against, see also the
+ STRINGI_LIBS environment variable
Some influential environment variables:
R_HOME Override the default directory with R installation, e.g.,
/usr/lib64/R, where /usr/lib64 is in the search path. Note that
$R_HOME/bin/R should point to the R executable.
+ CAT The 'cat' command used for generating the list of source files
+ to compile.
+ PKG_CONFIG The 'pkg-config' command used for getting necessary compiler
+ flags to link to and existing libicu installation.
ICUDT_DIR Optional directory from which an already downloaded ICU data
archive (icudt*.zip) may be copied; either an absolute path or a
path relative to <package source dir>/src; defaults to
@@ -1370,17 +1391,33 @@ Some influential environment variables:
PKG_CONFIG_PATH
An optional list of directories to search for pkg-config's .pc
files.
- CAT The 'cat' command used for generating the list of source files
- to compile.
CC Purposedly ignored.
CFLAGS Purposedly ignored.
- LDFLAGS Purposedly ignored.
- LIBS Purposedly ignored.
+ CPP Purposedly ignored.
CPPFLAGS Purposedly ignored.
CXX Purposedly ignored.
CXXFLAGS Purposedly ignored.
CXXCPP Purposedly ignored.
- CPP C preprocessor
+ LDFLAGS Purposedly ignored.
+ LIBS Purposedly ignored.
+ STRINGI_DISABLE_CXX11
+ Disable the use of C++11, see also --disable-cxx11.
+ STRINGI_DISABLE_ICU_BUNDLE
+ Force the use of the system ICU, see also --disable-icu-bundle.
+ STRINGI_DISABLE_PKG_CONFIG
+ Force the use of the ICU bundle, see also --disable-pkg-config.
+ STRINGI_CFLAGS
+ Additional C compiler flags, see also --with-extra-cflags.
+ STRINGI_CPPFLAGS
+ Additional C/C++ preprocessor flags, see also
+ --with-extra-cppflags.
+ STRINGI_CXXFLAGS
+ Additional C++ compiler flags, see also --with-extra-cxxflags.
+ STRINGI_LDFLAGS
+ Additional linker flags, see also --with-extra-ldflags.
+ STRINGI_LIBS
+ Additional libraries to link against, see also
+ --with-extra-libs.
Use these variables to override the choices made by `configure' or to help
it to find libraries and programs with nonstandard names/locations.
@@ -2137,7 +2174,7 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu
-ICU_VERSION_NEEDED="50" # minimal version of ICU4C required to build stringi
+ICU_VERSION_NEEDED="52" # minimal version of ICU4C required to build stringi
##### OPTIONS #################################################################
@@ -2167,34 +2204,57 @@ ICU_VERSION_NEEDED="50" # minimal version of ICU4C required to build stringi
+
+
+
+
+
+
+
# Check whether --enable-cxx11 was given.
if test "${enable_cxx11+set}" = set; then :
enableval=$enable_cxx11;
fi
-if test "x$enable_cxx11" != "xno"; then
+
+
+
+if test "x$enable_cxx11" != "xno" -a -z "${STRINGI_DISABLE_CXX11}"; then
enable_cxx11="yes"
else
enable_cxx11="no"
fi
+
+
# Check whether --enable-icu_bundle was given.
if test "${enable_icu_bundle+set}" = set; then :
enableval=$enable_icu_bundle;
fi
-if test "x$enable_icu_bundle" != "xno"; then
+
+
+
+if test "x$enable_icu_bundle" != "xno" -a -z "${STRINGI_DISABLE_ICU_BUNDLE}"; then
enable_icu_bundle="yes"
else
enable_icu_bundle="no"
fi
+
+
+
+
+
# Check whether --enable-pkg_config was given.
if test "${enable_pkg_config+set}" = set; then :
enableval=$enable_pkg_config;
fi
-if test "x$enable_pkg_config" != "xno"; then
+
+
+
+if test "x$enable_pkg_config" != "xno" -a -z "${STRINGI_DISABLE_PKG_CONFIG}"; then
enable_pkg_config="yes"
else
enable_pkg_config="no"
@@ -2223,6 +2283,7 @@ else
fi
+
# Check whether --with-extra_cflags was given.
if test "${with_extra_cflags+set}" = set; then :
withval=$with_extra_cflags;
@@ -2257,6 +2318,23 @@ if test "${with_extra_libs+set}" = set; then :
fi
+
+
+
+
+
+
+
+
+
+
+
+with_extra_cflags="${with_extra_cflags} ${STRINGI_CFLAGS}"
+with_extra_cppflags="${with_extra_cppflags} ${STRINGI_CPPFLAGS}"
+with_extra_cxxflags="${with_extra_cxxflags} ${STRINGI_CXXFLAGS}"
+with_extra_ldflags="${with_extra_ldflags} ${STRINGI_LDFLAGS}"
+with_extra_libs="${with_extra_libs} ${STRINGI_LIBS}"
+
##### CHECK FOR R #############################################################
# set ICUDT_DIR
@@ -2301,8 +2379,8 @@ fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $R_PATH" >&5
$as_echo "$R_PATH" >&6; }
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for R >= 3.1.0" >&5
-$as_echo_n "checking for R >= 3.1.0... " >&6; }
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for R >= 3.1.0 for C++11 use" >&5
+$as_echo_n "checking for R >= 3.1.0 for C++11 use... " >&6; }
R_GE_31=`"${R_PATH}" --vanilla --slave -e 'cat(if (getRversion() >= numeric_version("3.1.0")) "yes" else "no")'`
if test "x$R_GE_31" == "xyes"; then
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
@@ -2316,6 +2394,19 @@ $as_echo "no" >&6; }
fi
fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for R < 3.4.0 for CXX1X flag use" >&5
+$as_echo_n "checking for R < 3.4.0 for CXX1X flag use... " >&6; }
+R_GE_34=`"${R_PATH}" --vanilla --slave -e 'cat(if (getRversion() >= numeric_version("3.4.0")) "yes" else "no")'`
+if test "x$R_GE_34" == "xyes"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+ STRINGI_CXX1X="CXX11"
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+ STRINGI_CXX1X="CXX1X"
+fi
+
##### CHECK FOR CAT ############################################################
# Check for 'cat' and get full path.
@@ -2392,11 +2483,11 @@ LIBS=
LDFLAGS=
if test "x$enable_cxx11" == "xyes"; then
- CXX_tmp1=`"${R_PATH}" CMD config CXX1X`
- CXX_tmp2=`"${R_PATH}" CMD config CXX1XSTD`
+ CXX_tmp1=`"${R_PATH}" CMD config ${STRINGI_CXX1X}`
+ CXX_tmp2=`"${R_PATH}" CMD config ${STRINGI_CXX1X}STD`
CXX="${CXX_tmp1} ${CXX_tmp2}"
- CXXFLAGS_base=`"${R_PATH}" CMD config CXX1XFLAGS`
- CXXFLAGS_pic=`"${R_PATH}" CMD config CXX1XPICFLAGS`
+ CXXFLAGS_base=`"${R_PATH}" CMD config ${STRINGI_CXX1X}FLAGS`
+ CXXFLAGS_pic=`"${R_PATH}" CMD config ${STRINGI_CXX1X}PICFLAGS`
CXXFLAGS="${CXXFLAGS_base} ${CXXFLAGS_pic}"
STRINGI_CXXSTD="CXX_STD=CXX11"
else
@@ -4091,17 +4182,12 @@ fi
-##### 1. Get settings from pkg-config
+##### 1. Get settings from pkg-config or system
# Note that according to http://userguide.icu-project.org/howtouseicu,
# icu-config is supported, but no longer recommended for production use.
detect_icu_with_pkg_config() {
- if test $enable_pkg_config = "no"; then
- # Use of pkg-config disabled, nothing to do
- return 1
- fi
-
# Retrieve pkg-config's path
# Extract the first word of "pkg-config", so it can be a program name with args.
set dummy pkg-config; ac_word=$2
@@ -4147,20 +4233,18 @@ fi
# auto-detect
if test ! -f "${PKG_CONFIG}"; then
- echo "*** The pkg-config script could not be found"
- echo "*** Make sure it is installed if you want to use system ICU4C-devel installation"
+ echo "*** pkg-config could not be found"
return 1 # go back immediately
fi
# check if pkg-config knows about icu-i18n
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking with pkg-config for ICU4C installed" >&5
-$as_echo_n "checking with pkg-config for ICU4C installed... " >&6; }
- if ! `"${PKG_CONFIG}" --exists icu-i18n icu-uc`; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking with pkg-config for the system ICU4C" >&5
+$as_echo_n "checking with pkg-config for the system ICU4C... " >&6; }
+ if ! `"${PKG_CONFIG}" --exists icu-i18n icu-uc`; then
# pkg config doesn't know about icu-i18n
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
- echo "*** The pkg-config script did not detect ICU4C-devel libraries installed"
- echo "*** We will build ICU4C from sources"
+ echo "*** pkg-config did not detect ICU4C-devel libraries installed"
return 1 # nothing more to do
fi
@@ -4174,20 +4258,19 @@ $as_echo "$ICU_VERSION" >&6; }
$as_echo_n "checking for ICU4C >= $ICU_VERSION_NEEDED... " >&6; }
#VERSION_CHECK=`expr $ICU_VERSION ">=" $ICU_VERSION_NEEDED`
#if test "$VERSION_CHECK" != "1" ; then
- if ! `"${PKG_CONFIG}" --atleast-version=${ICU_VERSION_NEEDED} icu-i18n icu-uc`; then
+ if ! `"${PKG_CONFIG}" --atleast-version=${ICU_VERSION_NEEDED} icu-i18n icu-uc`; then
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
echo "*** ICU4C ${ICU_VERSION} has been detected"
- echo "*** Minimal requirements, i.e. ICU4C >= ${ICU_VERSION_NEEDED}, are not met"
- echo "*** We will build ICU4C from sources"
+ echo "*** Minimal requirements, i.e., ICU4C >= ${ICU_VERSION_NEEDED}, are not met"
return 1 # you may quit querying pkg-config here
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; } # detected version of ICU4C is sufficient
export PKG_CONFIG_ALLOW_SYSTEM_LIBS=1 # always provide system -L
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for proper CPPFLAGS, LDFLAGS, and LIBS" >&5
-$as_echo_n "checking for proper CPPFLAGS, LDFLAGS, and LIBS... " >&6; }
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for additional required CPPFLAGS, LDFLAGS, and LIBS" >&5
+$as_echo_n "checking for additional required CPPFLAGS, LDFLAGS, and LIBS... " >&6; }
ICU_CPPFLAGS=`"${PKG_CONFIG}" --cflags icu-uc icu-i18n`
ICU_LDFLAGS=`"${PKG_CONFIG}" --libs-only-L icu-uc icu-i18n`
ICU_LIBS=`"${PKG_CONFIG}" --libs-only-l icu-uc icu-i18n`
@@ -4196,7 +4279,12 @@ $as_echo "done" >&6; }
# It has been indicated that icu-config may return 32bit libs
# when 64bit libs are not available, even if we compile a 64bit version.
- # Thus, let us check if everything works
+ # Thus, we should then check if the current settings are valid anyway.
+
+ return 0
+}
+
+check_icu_with_pkg_config() {
CPPFLAGS="${CPPFLAGS} ${ICU_CPPFLAGS}"
LDFLAGS="${LDFLAGS} ${ICU_LDFLAGS}"
LIBS="${LIBS} ${ICU_LIBS}"
@@ -4208,8 +4296,8 @@ ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ex
ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we may build an ICU-based project" >&5
-$as_echo_n "checking whether we may build an ICU-based project... " >&6; }
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we may build an ICU4C-based project" >&5
+$as_echo_n "checking whether we may build an ICU4C-based project... " >&6; }
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
@@ -4240,7 +4328,38 @@ else
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
- echo "*** ICU4C will be built from sources"
+ echo "*** The available ICU4C cannot be used"
+ return 1
+
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking programmatically for sufficient U_ICU_VERSION_MAJOR_NUM" >&5
+$as_echo_n "checking programmatically for sufficient U_ICU_VERSION_MAJOR_NUM... " >&6; }
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+ #include <unicode/uvernum.h>
+ #if U_ICU_VERSION_MAJOR_NUM < ${ICU_VERSION_NEEDED}
+ #error "insufficient U_ICU_VERSION_MAJOR_NUM"
+ #endif
+
+ int main() {
+ return 0;
+ }
+
+_ACEOF
+if ac_fn_cxx_try_link "$LINENO"; then :
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+
+else
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+ echo "*** The available ICU4C cannot be used"
return 1
fi
@@ -4322,7 +4441,7 @@ else
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
- echo "*** ICU4C will be built from sources"
+ echo "*** The available ICU4C cannot be used"
return 1
fi
@@ -4387,7 +4506,7 @@ else
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
- echo "*** ICU4C will be built from sources"
+ echo "*** The available ICU4C cannot be used"
return 1
fi
@@ -4401,13 +4520,25 @@ rm -f core conftest.err conftest.$ac_objext \
ICU_FOUND=0
if test $ICU_FOUND = 0; then
- OLD_CPPFLAGS=$CPPFLAGS
- OLD_LDFLAGS=$LDFLAGS
- OLD_LIBS=$LIBS
- detect_icu_with_pkg_config
- CPPFLAGS=$OLD_CPPFLAGS
- LDFLAGS=$OLD_LDFLAGS
- LIBS=$OLD_LIBS
+ if test $enable_pkg_config = "no"; then
+ # Use of pkg-config disabled, nothing to do
+ echo "*** The (possible) use of system ICU4C has been disabled. Skipping."
+ else
+ OLD_CPPFLAGS=$CPPFLAGS
+ OLD_LDFLAGS=$LDFLAGS
+ OLD_LIBS=$LIBS
+ if ! detect_icu_with_pkg_config; then
+ echo "*** Trying with \"standard\" fallback flags"
+ # (#238, #220) trying "standard" fallback flags
+ ICU_CPPFLAGS=""
+ ICU_LDFLAGS=""
+ ICU_LIBS="-licui18n -licuuc -licudata"
+ fi
+ check_icu_with_pkg_config
+ CPPFLAGS=$OLD_CPPFLAGS
+ LDFLAGS=$OLD_LDFLAGS
+ LIBS=$OLD_LIBS
+ fi
fi
@@ -4515,7 +4646,7 @@ else
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
- echo "*** The ICU bundle cannot be build. Upgrade your compiler flags."
+ echo "*** The ICU4C bundle could not be build. Upgrade your compiler flags."
exit 1
fi
@@ -4528,6 +4659,13 @@ rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
}
if test $ICU_FOUND = 0; then
+ if test $enable_icu_bundle = "no"; then
+ echo "*** Failed to configure package build with forced system ICU usage"
+ echo "*** Consider installing, e.g., libicu-devel (RHEL, Fedora) or libicu-dev (Debian, Ubuntu)"
+ echo "*** together with pkg-config"
+ exit 1
+ fi
+
OLD_CFLAGS=$CFLAGS
OLD_CXXFLAGS=$CXXFLAGS
OLD_CPPFLAGS=$CPPFLAGS
@@ -4536,6 +4674,17 @@ if test $ICU_FOUND = 0; then
CFLAGS=$OLD_CFLAGS
CXXFLAGS=$OLD_CXXFLAGS
CPPFLAGS=$OLD_CPPFLAGS
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we can fetch icudt" >&5
+$as_echo_n "checking whether we can fetch icudt... " >&6; }
+ "${R_PATH}" --vanilla --slave -e "setwd(\"src/\"); \
+ source(\"../R/install.R\"); \
+ if (identical(FALSE,stri_download_icudt(\"${ICUDT_DIR}\"))) \
+ stop(\"Stopping on error\")"
+ if test $? -ne 0; then
+ echo "*** icudt could not be downloaded. stopping."
+ exit 1
+ fi
fi
##### PREPARE LIST OF SOURCE FILES #############################################
@@ -4567,7 +4716,8 @@ STRINGI_ICU_STUBDATA_SOURCES_C=`${CAT} src/icu55_stubdata_c.txt`
if test $ICU_FOUND = 0; then
if test $enable_icu_bundle = "no"; then
echo "*** Failed to configure package build with forced system ICU usage"
- echo "*** Make sure that libicu-dev is properly installed"
+ echo "*** Consider installing, e.g., libicu-devel (RHEL, Fedora) or libicu-dev (Debian, Ubuntu)"
+ echo "*** together with pkg-config"
exit 1
fi
@@ -5778,7 +5928,9 @@ fi
echo ""
echo "*** stringi configure summary:"
echo " ICU_FOUND=${ICU_FOUND}"
-echo " ICUDT_DIR=${ICUDT_DIR}"
+if test $ICU_FOUND = 0; then
+ echo " ICUDT_DIR=${ICUDT_DIR}"
+fi
echo " STRINGI_CXXSTD=${STRINGI_CXXSTD}"
echo " STRINGI_CFLAGS=${STRINGI_CFLAGS}"
echo " STRINGI_CPPFLAGS=${STRINGI_CPPFLAGS}"
diff --git a/inst/AUTHORS b/inst/AUTHORS
index 5e5acc3..bb18a1e 100644
--- a/inst/AUTHORS
+++ b/inst/AUTHORS
@@ -2,7 +2,7 @@
* Marek Gagolewski (gagolews at rexamine dot com) [aut,cre]
* Bartek Tartanus [ctb]
-
+and others (see https://github.com/gagolews/stringi/graphs/contributors).
** ICU source code contributors **
diff --git a/inst/CITATION b/inst/CITATION
index d408921..b960229 100644
--- a/inst/CITATION
+++ b/inst/CITATION
@@ -2,11 +2,11 @@ citHeader("To cite package 'stringi' in publications use:")
citEntry(entry = "Manual",
title = "R package stringi: Character string processing facilities",
- author = personList(as.person("Marek Gagolewski"), as.person("Bartek Tartanus")),
- year = "2016",
+ author = personList(as.person("Marek Gagolewski")),
+ year = "2017",
url = "http://www.gagolewski.com/software/stringi/",
textVersion =
- paste("Gagolewski M., Tartanus B. (2016).",
+ paste("Gagolewski M. and others (2017).",
"R package stringi: Character string processing facilities.",
"http://www.gagolewski.com/software/stringi/.",
"DOI:10.5281/zenodo.32557")
diff --git a/man/oper_comparison.Rd b/man/oper_comparison.Rd
index fe4b004..8274e90 100644
--- a/man/oper_comparison.Rd
+++ b/man/oper_comparison.Rd
@@ -1,22 +1,22 @@
% Generated by roxygen2: do not edit by hand
% Please edit documentation in R/compare.R
\name{\%s<\%}
-\alias{\%s!==\%}
-\alias{\%s!=\%}
-\alias{\%s<=\%}
\alias{\%s<\%}
-\alias{\%s===\%}
-\alias{\%s==\%}
-\alias{\%s>=\%}
+\alias{\%s<=\%}
\alias{\%s>\%}
-\alias{\%stri!==\%}
-\alias{\%stri!=\%}
-\alias{\%stri<=\%}
+\alias{\%s>=\%}
+\alias{\%s==\%}
+\alias{\%s!=\%}
+\alias{\%s===\%}
+\alias{\%s!==\%}
\alias{\%stri<\%}
-\alias{\%stri===\%}
-\alias{\%stri==\%}
-\alias{\%stri>=\%}
+\alias{\%stri<=\%}
\alias{\%stri>\%}
+\alias{\%stri>=\%}
+\alias{\%stri==\%}
+\alias{\%stri!=\%}
+\alias{\%stri===\%}
+\alias{\%stri!==\%}
\title{Compare Strings with or without Collation}
\usage{
e1 \%s<\% e2
@@ -94,4 +94,3 @@ Other locale_sensitive: \code{\link{stri_compare}},
\code{\link{stringi-search-boundaries}},
\code{\link{stringi-search-coll}}
}
-
diff --git a/man/oper_plus.Rd b/man/oper_plus.Rd
index 3fb8693..12eff9f 100644
--- a/man/oper_plus.Rd
+++ b/man/oper_plus.Rd
@@ -35,4 +35,3 @@ c('abc', '123', '\\u0105\\u0104') \%stri+\% letters[1:6]
'ID_' \%stri+\% 1:5
}
-
diff --git a/man/stri_compare.Rd b/man/stri_compare.Rd
index 420bb1b..68f26d8 100644
--- a/man/stri_compare.Rd
+++ b/man/stri_compare.Rd
@@ -1,16 +1,16 @@
% Generated by roxygen2: do not edit by hand
% Please edit documentation in R/compare.R
\name{stri_compare}
+\alias{stri_compare}
\alias{stri_cmp}
\alias{stri_cmp_eq}
+\alias{stri_cmp_neq}
\alias{stri_cmp_equiv}
-\alias{stri_cmp_ge}
+\alias{stri_cmp_nequiv}
+\alias{stri_cmp_lt}
\alias{stri_cmp_gt}
\alias{stri_cmp_le}
-\alias{stri_cmp_lt}
-\alias{stri_cmp_neq}
-\alias{stri_cmp_nequiv}
-\alias{stri_compare}
+\alias{stri_cmp_ge}
\title{Compare Strings with or without Collation}
\usage{
stri_compare(e1, e2, ..., opts_collator = NULL)
@@ -148,4 +148,3 @@ Other locale_sensitive: \code{\link{\%s<\%}},
\code{\link{stringi-search-boundaries}},
\code{\link{stringi-search-coll}}
}
-
diff --git a/man/stri_count.Rd b/man/stri_count.Rd
index 47f27b3..4a3f6a0 100644
--- a/man/stri_count.Rd
+++ b/man/stri_count.Rd
@@ -81,4 +81,3 @@ stri_count_regex(c("stringi", "123"), "^(s|1)")
Other search_count: \code{\link{stri_count_boundaries}},
\code{\link{stringi-search}}
}
-
diff --git a/man/stri_count_boundaries.Rd b/man/stri_count_boundaries.Rd
index b3ad894..0b504e9 100644
--- a/man/stri_count_boundaries.Rd
+++ b/man/stri_count_boundaries.Rd
@@ -68,6 +68,9 @@ stri_numbytes(test2)
}
\seealso{
+Other search_count: \code{\link{stri_count}},
+ \code{\link{stringi-search}}
+
Other locale_sensitive: \code{\link{\%s<\%}},
\code{\link{stri_compare}},
\code{\link{stri_duplicated}},
@@ -83,9 +86,6 @@ Other locale_sensitive: \code{\link{\%s<\%}},
\code{\link{stringi-search-boundaries}},
\code{\link{stringi-search-coll}}
-Other search_count: \code{\link{stri_count}},
- \code{\link{stringi-search}}
-
Other text_boundaries: \code{\link{stri_extract_all_boundaries}},
\code{\link{stri_locate_all_boundaries}},
\code{\link{stri_opts_brkiter}},
@@ -96,4 +96,3 @@ Other text_boundaries: \code{\link{stri_extract_all_boundaries}},
\code{\link{stringi-search-boundaries}},
\code{\link{stringi-search}}
}
-
diff --git a/man/stri_datetime_add.Rd b/man/stri_datetime_add.Rd
index 95b4457..eaea4b5 100644
--- a/man/stri_datetime_add.Rd
+++ b/man/stri_datetime_add.Rd
@@ -8,8 +8,8 @@
stri_datetime_add(time, value = 1L, units = "seconds", tz = NULL,
locale = NULL)
-stri_datetime_add(time, units = "seconds", tz = NULL, locale = NULL) <-
- value
+stri_datetime_add(time, units = "seconds", tz = NULL,
+ locale = NULL) <- value
}
\arguments{
\item{time}{an object of class \code{\link{POSIXct}} or an object coercible to}
@@ -68,4 +68,3 @@ Other datetime: \code{\link{stri_datetime_create}},
\code{\link{stri_timezone_info}},
\code{\link{stri_timezone_list}}
}
-
diff --git a/man/stri_datetime_create.Rd b/man/stri_datetime_create.Rd
index 9f038c5..55a2f62 100644
--- a/man/stri_datetime_create.Rd
+++ b/man/stri_datetime_create.Rd
@@ -57,4 +57,3 @@ Other datetime: \code{\link{stri_datetime_add}},
\code{\link{stri_timezone_info}},
\code{\link{stri_timezone_list}}
}
-
diff --git a/man/stri_datetime_fields.Rd b/man/stri_datetime_fields.Rd
index 9ed52d0..4a10af7 100644
--- a/man/stri_datetime_fields.Rd
+++ b/man/stri_datetime_fields.Rd
@@ -62,4 +62,3 @@ Other datetime: \code{\link{stri_datetime_add}},
\code{\link{stri_timezone_info}},
\code{\link{stri_timezone_list}}
}
-
diff --git a/man/stri_datetime_format.Rd b/man/stri_datetime_format.Rd
index 86359f7..7ce434f 100644
--- a/man/stri_datetime_format.Rd
+++ b/man/stri_datetime_format.Rd
@@ -3,6 +3,7 @@
\name{stri_datetime_format}
\alias{stri_datetime_format}
\alias{stri_datetime_parse}
+\alias{stri_datetime_format}
\title{[DRAFT API] Date and Time Formatting and Parsing}
\usage{
stri_datetime_format(time, format = "uuuu-MM-dd HH:mm:ss", tz = NULL,
@@ -212,4 +213,3 @@ Other datetime: \code{\link{stri_datetime_add}},
\code{\link{stri_timezone_info}},
\code{\link{stri_timezone_list}}
}
-
diff --git a/man/stri_datetime_fstr.Rd b/man/stri_datetime_fstr.Rd
index 4a96d70..df27a2e 100644
--- a/man/stri_datetime_fstr.Rd
+++ b/man/stri_datetime_fstr.Rd
@@ -45,4 +45,3 @@ Other datetime: \code{\link{stri_datetime_add}},
\code{\link{stri_timezone_info}},
\code{\link{stri_timezone_list}}
}
-
diff --git a/man/stri_datetime_now.Rd b/man/stri_datetime_now.Rd
index a51ae45..f9566b1 100644
--- a/man/stri_datetime_now.Rd
+++ b/man/stri_datetime_now.Rd
@@ -28,4 +28,3 @@ Other datetime: \code{\link{stri_datetime_add}},
\code{\link{stri_timezone_info}},
\code{\link{stri_timezone_list}}
}
-
diff --git a/man/stri_datetime_symbols.Rd b/man/stri_datetime_symbols.Rd
index cbbf46d..43f0b1d 100644
--- a/man/stri_datetime_symbols.Rd
+++ b/man/stri_datetime_symbols.Rd
@@ -75,4 +75,3 @@ Other datetime: \code{\link{stri_datetime_add}},
\code{\link{stri_timezone_info}},
\code{\link{stri_timezone_list}}
}
-
diff --git a/man/stri_detect.Rd b/man/stri_detect.Rd
index deb21b0..a7e371f 100644
--- a/man/stri_detect.Rd
+++ b/man/stri_detect.Rd
@@ -2,9 +2,9 @@
% Please edit documentation in R/search_detect_4.R
\name{stri_detect}
\alias{stri_detect}
+\alias{stri_detect_fixed}
\alias{stri_detect_charclass}
\alias{stri_detect_coll}
-\alias{stri_detect_fixed}
\alias{stri_detect_regex}
\title{Detect a Pattern Match}
\usage{
@@ -79,4 +79,3 @@ stri_detect_regex("stringi", "STRING.", case_insensitive=TRUE)
Other search_detect: \code{\link{stri_startswith}},
\code{\link{stringi-search}}
}
-
diff --git a/man/stri_dup.Rd b/man/stri_dup.Rd
index 116bcee..26d6313 100644
--- a/man/stri_dup.Rd
+++ b/man/stri_dup.Rd
@@ -30,4 +30,3 @@ stri_dup(c("abc", "pqrst"), c(4, 2))
Other join: \code{\link{stri_flatten}},
\code{\link{stri_join_list}}, \code{\link{stri_join}}
}
-
diff --git a/man/stri_duplicated.Rd b/man/stri_duplicated.Rd
index b308a5a..17ce150 100644
--- a/man/stri_duplicated.Rd
+++ b/man/stri_duplicated.Rd
@@ -101,4 +101,3 @@ Other locale_sensitive: \code{\link{\%s<\%}},
\code{\link{stringi-search-boundaries}},
\code{\link{stringi-search-coll}}
}
-
diff --git a/man/stri_enc_detect.Rd b/man/stri_enc_detect.Rd
index 09c5085..a3e3536 100644
--- a/man/stri_enc_detect.Rd
+++ b/man/stri_enc_detect.Rd
@@ -25,7 +25,7 @@ representing all guesses:
\item \code{Confidence} -- numeric in [0,1]; the higher the value,
the more confidence there is in the match; \code{NA} on failure.
}
-The guesses are ordered w.r.t. nonincreasing confidence.
+The guesses are ordered by decreasing confidence.
}
\description{
This function uses the \pkg{ICU} engine to determine the character set,
@@ -37,14 +37,14 @@ Vectorized over \code{str} and \code{filter_angle_brackets}.
This is, at best, an imprecise operation using statistics and heuristics.
Because of this, detection works best if you supply at least a few hundred
bytes of character data that's mostly in a single language.
-However, Because the detection only looks at a limited amount of the input
-byte data, some of the returned charsets may fail to handle the
-all of input data. Note that in some cases,
+However, because the detection only looks at a limited amount of the input
+data, some of the returned charsets may fail to handle all of the
+input data. Note that in some cases,
the language can be determined along with the encoding.
Several different techniques are used for character set detection.
-For multi-byte encodings, the sequence of bytes is checked for legal patterns.
-The detected characters are also check against a list of frequently
+For multi-byte encodings, the sequence of bytes is checked for legible patterns.
+The detected characters are also checked against a list of frequently
used characters in that encoding. For single byte encodings, the data
is checked against a list of the most commonly occurring three letter groups
for each language that can be written using that encoding.
@@ -96,7 +96,7 @@ IBM420 \tab Arabic \cr
IBM424 \tab Hebrew \cr
}
-If you have some initial guess on language and encoding, try with
+If you have some initial guess at language and encoding, try with
\code{\link{stri_enc_detect2}}.
}
\examples{
@@ -117,4 +117,3 @@ Other encoding_detection: \code{\link{stri_enc_detect2}},
\code{\link{stri_enc_isutf8}},
\code{\link{stringi-encoding}}
}
-
diff --git a/man/stri_enc_detect2.Rd b/man/stri_enc_detect2.Rd
index d7f7a0f..0536f70 100644
--- a/man/stri_enc_detect2.Rd
+++ b/man/stri_enc_detect2.Rd
@@ -26,7 +26,7 @@ Each list element is a list with the following three named components:
\item \code{Confidence} -- numeric in [0,1]; the higher the value,
the more confidence there is in the match; \code{NA} on failure.
}
-The guesses are ordered w.r.t. nonincreasing confidence.
+The guesses are ordered by decreasing confidence.
}
\description{
This function tries to detect character encoding
@@ -49,12 +49,12 @@ the text is checked for the number of occurrences
of language-specific code points (data provided by the \pkg{ICU} library)
converted to all possible 8-bit encodings
that fully cover the indicated language.
-The encoding is selected basing on the greatest number of total
+The encoding is selected based on the greatest number of total
byte hits.
The guess is of course imprecise
[\bold{This is DRAFT API - still does not work as expected}],
-as it is obtained using statistics.
+as it is obtained using statistics and heuristics.
Because of this, detection works best if you supply at least a few hundred
bytes of character data that's in a single language.
@@ -63,15 +63,9 @@ If you have no initial guess on language and encoding, try with
\code{\link{stri_enc_detect}} (uses \pkg{ICU} facilities).
However, it turns out that (empirically) \code{stri_enc_detect2}
works better than the \pkg{ICU}-based one if UTF-* text
-is provided. Test yourself.
+is provided. Try it yourself.
}
\seealso{
-Other encoding_detection: \code{\link{stri_enc_detect}},
- \code{\link{stri_enc_isascii}},
- \code{\link{stri_enc_isutf16be}},
- \code{\link{stri_enc_isutf8}},
- \code{\link{stringi-encoding}}
-
Other locale_sensitive: \code{\link{\%s<\%}},
\code{\link{stri_compare}},
\code{\link{stri_count_boundaries}},
@@ -86,5 +80,10 @@ Other locale_sensitive: \code{\link{\%s<\%}},
\code{\link{stringi-locale}},
\code{\link{stringi-search-boundaries}},
\code{\link{stringi-search-coll}}
-}
+Other encoding_detection: \code{\link{stri_enc_detect}},
+ \code{\link{stri_enc_isascii}},
+ \code{\link{stri_enc_isutf16be}},
+ \code{\link{stri_enc_isutf8}},
+ \code{\link{stringi-encoding}}
+}
diff --git a/man/stri_enc_fromutf32.Rd b/man/stri_enc_fromutf32.Rd
index 450aea6..f334c72 100644
--- a/man/stri_enc_fromutf32.Rd
+++ b/man/stri_enc_fromutf32.Rd
@@ -44,4 +44,3 @@ Other encoding_conversion: \code{\link{stri_enc_toascii}},
\code{\link{stri_enc_toutf8}}, \code{\link{stri_encode}},
\code{\link{stringi-encoding}}
}
-
diff --git a/man/stri_enc_info.Rd b/man/stri_enc_info.Rd
index 0fcba08..3a8eb35 100644
--- a/man/stri_enc_info.Rd
+++ b/man/stri_enc_info.Rd
@@ -38,7 +38,7 @@ scheme reversible?;
Gets basic information on a character encoding.
}
\details{
-An error is raised if the encoding provided is unknown to \pkg{ICU}
+An error is raised if the provided encoding is unknown to \pkg{ICU}
(see \code{\link{stri_enc_list}} for more details)
}
\seealso{
@@ -46,4 +46,3 @@ Other encoding_management: \code{\link{stri_enc_list}},
\code{\link{stri_enc_mark}}, \code{\link{stri_enc_set}},
\code{\link{stringi-encoding}}
}
-
diff --git a/man/stri_enc_isascii.Rd b/man/stri_enc_isascii.Rd
index b9b0047..9fc1d35 100644
--- a/man/stri_enc_isascii.Rd
+++ b/man/stri_enc_isascii.Rd
@@ -34,4 +34,3 @@ Other encoding_detection: \code{\link{stri_enc_detect2}},
\code{\link{stri_enc_isutf8}},
\code{\link{stringi-encoding}}
}
-
diff --git a/man/stri_enc_isutf16.Rd b/man/stri_enc_isutf16.Rd
index 50f7944..06408e2 100644
--- a/man/stri_enc_isutf16.Rd
+++ b/man/stri_enc_isutf16.Rd
@@ -44,4 +44,3 @@ Other encoding_detection: \code{\link{stri_enc_detect2}},
\code{\link{stri_enc_isutf8}},
\code{\link{stringi-encoding}}
}
-
diff --git a/man/stri_enc_isutf8.Rd b/man/stri_enc_isutf8.Rd
index bff4742..49c892d 100644
--- a/man/stri_enc_isutf8.Rd
+++ b/man/stri_enc_isutf8.Rd
@@ -50,4 +50,3 @@ Other encoding_detection: \code{\link{stri_enc_detect2}},
\code{\link{stri_enc_isutf16be}},
\code{\link{stringi-encoding}}
}
-
diff --git a/man/stri_enc_list.Rd b/man/stri_enc_list.Rd
index bdd9a6a..cd5957a 100644
--- a/man/stri_enc_list.Rd
+++ b/man/stri_enc_list.Rd
@@ -36,4 +36,3 @@ Other encoding_management: \code{\link{stri_enc_info}},
\code{\link{stri_enc_mark}}, \code{\link{stri_enc_set}},
\code{\link{stringi-encoding}}
}
-
diff --git a/man/stri_enc_mark.Rd b/man/stri_enc_mark.Rd
index b5e6cc6..1cef697 100644
--- a/man/stri_enc_mark.Rd
+++ b/man/stri_enc_mark.Rd
@@ -16,7 +16,7 @@ Unlike in \code{\link{Encoding}}, possible encodings are:
\code{ASCII}, \code{latin1}, \code{bytes}, \code{native},
and \code{UTF-8}. Additionally, missing values are handled properly.
-This is exactly the same information which is used by
+This is exactly the same information that is used by
all the functions in \pkg{stringi} to re-encode their inputs.
}
\description{
@@ -50,4 +50,3 @@ Other encoding_management: \code{\link{stri_enc_info}},
\code{\link{stri_enc_list}}, \code{\link{stri_enc_set}},
\code{\link{stringi-encoding}}
}
-
diff --git a/man/stri_enc_set.Rd b/man/stri_enc_set.Rd
index f3f81e4..ef78ddf 100644
--- a/man/stri_enc_set.Rd
+++ b/man/stri_enc_set.Rd
@@ -1,8 +1,8 @@
% Generated by roxygen2: do not edit by hand
% Please edit documentation in R/encoding_management.R
\name{stri_enc_set}
-\alias{stri_enc_get}
\alias{stri_enc_set}
+\alias{stri_enc_get}
\title{Set or Get Default Character Encoding in \pkg{stringi}}
\usage{
stri_enc_set(enc)
@@ -34,12 +34,12 @@ Note that changing the default encoding may have undesired consequences.
Unless you are an expert user and you know what you are doing,
\code{stri_enc_set} should only be used if \pkg{ICU} fails to detect
your system's encoding correctly (while testing \pkg{stringi}
-we only encountered such a situation on a very old Solaris machine, though).
+we only encountered such a situation on a very old Solaris machine).
Note that \pkg{ICU} tries to match the encoding part of the \code{LC_CTYPE}
category as given by \code{\link{Sys.getlocale}}.
-If you set a default encoding that is not a superset of ASCII
-or it is not an 8-bit encoding, a warning will be generated,
+If you set a default encoding that is neither a superset of ASCII,
+nor an 8-bit encoding, a warning will be generated,
see \link{stringi-encoding} for discussion.
}
\seealso{
@@ -47,4 +47,3 @@ Other encoding_management: \code{\link{stri_enc_info}},
\code{\link{stri_enc_list}}, \code{\link{stri_enc_mark}},
\code{\link{stringi-encoding}}
}
-
diff --git a/man/stri_enc_toascii.Rd b/man/stri_enc_toascii.Rd
index 894a9d3..8fe60d5 100644
--- a/man/stri_enc_toascii.Rd
+++ b/man/stri_enc_toascii.Rd
@@ -38,4 +38,3 @@ Other encoding_conversion: \code{\link{stri_enc_fromutf32}},
\code{\link{stri_enc_toutf8}}, \code{\link{stri_encode}},
\code{\link{stringi-encoding}}
}
-
diff --git a/man/stri_enc_tonative.Rd b/man/stri_enc_tonative.Rd
index 65d4a63..d145627 100644
--- a/man/stri_enc_tonative.Rd
+++ b/man/stri_enc_tonative.Rd
@@ -32,4 +32,3 @@ Other encoding_conversion: \code{\link{stri_enc_fromutf32}},
\code{\link{stri_enc_toutf8}}, \code{\link{stri_encode}},
\code{\link{stringi-encoding}}
}
-
diff --git a/man/stri_enc_toutf32.Rd b/man/stri_enc_toutf32.Rd
index 0e66107..14db535 100644
--- a/man/stri_enc_toutf32.Rd
+++ b/man/stri_enc_toutf32.Rd
@@ -40,4 +40,3 @@ Other encoding_conversion: \code{\link{stri_enc_fromutf32}},
\code{\link{stri_enc_toutf8}}, \code{\link{stri_encode}},
\code{\link{stringi-encoding}}
}
-
diff --git a/man/stri_enc_toutf8.Rd b/man/stri_enc_toutf8.Rd
index 783334f..2aee51b 100644
--- a/man/stri_enc_toutf8.Rd
+++ b/man/stri_enc_toutf8.Rd
@@ -57,4 +57,3 @@ Other encoding_conversion: \code{\link{stri_enc_fromutf32}},
\code{\link{stri_enc_toutf32}},
\code{\link{stri_encode}}, \code{\link{stringi-encoding}}
}
-
diff --git a/man/stri_encode.Rd b/man/stri_encode.Rd
index c5153c6..9c0b9ea 100644
--- a/man/stri_encode.Rd
+++ b/man/stri_encode.Rd
@@ -1,8 +1,8 @@
% Generated by roxygen2: do not edit by hand
% Please edit documentation in R/encoding_conversion.R
\name{stri_encode}
-\alias{stri_conv}
\alias{stri_encode}
+\alias{stri_conv}
\title{Convert Strings Between Given Encodings}
\usage{
stri_encode(str, from = NULL, to = NULL, to_raw = FALSE)
@@ -96,4 +96,3 @@ Other encoding_conversion: \code{\link{stri_enc_fromutf32}},
\code{\link{stri_enc_toutf8}},
\code{\link{stringi-encoding}}
}
-
diff --git a/man/stri_escape_unicode.Rd b/man/stri_escape_unicode.Rd
index f8b97c9..0dee159 100644
--- a/man/stri_escape_unicode.Rd
+++ b/man/stri_escape_unicode.Rd
@@ -36,4 +36,3 @@ stri_escape_unicode("a\\u0105!")
\seealso{
Other escape: \code{\link{stri_unescape_unicode}}
}
-
diff --git a/man/stri_extract.Rd b/man/stri_extract.Rd
index 7e6e280..8f14620 100644
--- a/man/stri_extract.Rd
+++ b/man/stri_extract.Rd
@@ -1,22 +1,22 @@
% Generated by roxygen2: do not edit by hand
% Please edit documentation in R/search_extract_4.R
\name{stri_extract_all}
-\alias{stri_extract}
\alias{stri_extract_all}
-\alias{stri_extract_all_charclass}
-\alias{stri_extract_all_coll}
-\alias{stri_extract_all_fixed}
-\alias{stri_extract_all_regex}
\alias{stri_extract_first}
-\alias{stri_extract_first_charclass}
-\alias{stri_extract_first_coll}
-\alias{stri_extract_first_fixed}
-\alias{stri_extract_first_regex}
\alias{stri_extract_last}
+\alias{stri_extract}
+\alias{stri_extract_all_charclass}
+\alias{stri_extract_first_charclass}
\alias{stri_extract_last_charclass}
+\alias{stri_extract_all_coll}
+\alias{stri_extract_first_coll}
\alias{stri_extract_last_coll}
-\alias{stri_extract_last_fixed}
+\alias{stri_extract_all_regex}
+\alias{stri_extract_first_regex}
\alias{stri_extract_last_regex}
+\alias{stri_extract_all_fixed}
+\alias{stri_extract_first_fixed}
+\alias{stri_extract_last_fixed}
\title{Extract Occurrences of a Pattern}
\usage{
stri_extract_all(str, ..., regex, fixed, coll, charclass)
@@ -156,4 +156,3 @@ Other search_extract: \code{\link{stri_extract_all_boundaries}},
\code{\link{stri_match_all}},
\code{\link{stringi-search}}
}
-
diff --git a/man/stri_extract_boundaries.Rd b/man/stri_extract_boundaries.Rd
index cfe1ec6..080b1c4 100644
--- a/man/stri_extract_boundaries.Rd
+++ b/man/stri_extract_boundaries.Rd
@@ -2,10 +2,10 @@
% Please edit documentation in R/search_extract_bound.R
\name{stri_extract_all_boundaries}
\alias{stri_extract_all_boundaries}
-\alias{stri_extract_all_words}
+\alias{stri_extract_last_boundaries}
\alias{stri_extract_first_boundaries}
+\alias{stri_extract_all_words}
\alias{stri_extract_first_words}
-\alias{stri_extract_last_boundaries}
\alias{stri_extract_last_words}
\title{Extract Text Between Text Boundaries}
\usage{
@@ -82,6 +82,10 @@ stri_extract_all_words("stringi: THE string processing package 123.48...")
}
\seealso{
+Other search_extract: \code{\link{stri_extract_all}},
+ \code{\link{stri_match_all}},
+ \code{\link{stringi-search}}
+
Other locale_sensitive: \code{\link{\%s<\%}},
\code{\link{stri_compare}},
\code{\link{stri_count_boundaries}},
@@ -97,10 +101,6 @@ Other locale_sensitive: \code{\link{\%s<\%}},
\code{\link{stringi-search-boundaries}},
\code{\link{stringi-search-coll}}
-Other search_extract: \code{\link{stri_extract_all}},
- \code{\link{stri_match_all}},
- \code{\link{stringi-search}}
-
Other text_boundaries: \code{\link{stri_count_boundaries}},
\code{\link{stri_locate_all_boundaries}},
\code{\link{stri_opts_brkiter}},
@@ -111,4 +111,3 @@ Other text_boundaries: \code{\link{stri_count_boundaries}},
\code{\link{stringi-search-boundaries}},
\code{\link{stringi-search}}
}
-
diff --git a/man/stri_flatten.Rd b/man/stri_flatten.Rd
index e990ff8..d235495 100644
--- a/man/stri_flatten.Rd
+++ b/man/stri_flatten.Rd
@@ -41,4 +41,3 @@ stri_flatten(stri_dup(letters[1:6],1:3))
Other join: \code{\link{stri_dup}},
\code{\link{stri_join_list}}, \code{\link{stri_join}}
}
-
diff --git a/man/stri_info.Rd b/man/stri_info.Rd
index 9d6c316..0ccf64f 100644
--- a/man/stri_info.Rd
+++ b/man/stri_info.Rd
@@ -31,4 +31,3 @@ are used (\code{TRUE}) or if \pkg{ICU} was built together with \pkg{stringi}.
\description{
Presents current default settings used by the \pkg{ICU} library.
}
-
diff --git a/man/stri_install.Rd b/man/stri_install.Rd
deleted file mode 100644
index 522ab63..0000000
--- a/man/stri_install.Rd
+++ /dev/null
@@ -1,64 +0,0 @@
-% Generated by roxygen2: do not edit by hand
-% Please edit documentation in R/install.R
-\name{stri_install_check}
-\alias{stri_install_check}
-\alias{stri_install_icudt}
-\title{Installation-Related Utilities [DEPRECATED]}
-\usage{
-stri_install_check(silent = FALSE)
-
-stri_install_icudt(check = TRUE, outpath = NULL, inpath = NULL)
-}
-\arguments{
-\item{silent}{suppress diagnostic messages}
-
-\item{check}{enable \code{stri_install_check()} tests}
-
-\item{outpath}{path to install icudt to. If \code{NULL}, then
-\code{file.path(path.package("stringi"), "libs")} will be used.}
-
-\item{inpath}{path to search icudt archive in.
-If \code{NULL}, then only stringi mirror servers will be used.
-Mainly of interest to system admins and software developers.}
-}
-\value{
-These functions return a logical value, invisibly.
-\code{TRUE} denotes that the requested operation has been completed
-successfully.
-}
-\description{
-These functions are responsible for checking and guaranteeing
-that the ICU data library (icudt) is available and that \pkg{stringi}
-is ready to use.
-
-These functions are deprecated and will no longer be available
-in future \pkg{stringi} releases.
-}
-\details{
-ICU makes use of a wide variety of data tables to provide many
-of its services. Examples include converter mapping tables,
-collation rules, transliteration rules, break iterator rules
-and dictionaries, and other locale data.
-
-Without the ICU data library (icudt) many \pkg{stringi} features
-will not be available. icudt size is approx. 10-30 MB.
-
-\code{stri_install_check()} tests whether some ICU services
-are available. If they are not, it is most likely due to
-unavailable ICU data library.
-
-\code{stri_install_icudt()} downloads and installs the ICU data library
-specific for your platform (little/big-endian). The downloaded
-file will be decompressed into the directory where the package has been
-installed, see \code{\link{find.package}}, so make sure
-you have sufficient write permissions.
-}
-\examples{
-stri_install_check()
-
-}
-\references{
-\emph{ICU Data} -- ICU User Guide,
-\url{http://userguide.icu-project.org/icudata}
-}
-
diff --git a/man/stri_isempty.Rd b/man/stri_isempty.Rd
index de22753..3755ce3 100644
--- a/man/stri_isempty.Rd
+++ b/man/stri_isempty.Rd
@@ -30,4 +30,3 @@ stri_isempty(character(1))
Other length: \code{\link{stri_length}},
\code{\link{stri_numbytes}}, \code{\link{stri_width}}
}
-
diff --git a/man/stri_join.Rd b/man/stri_join.Rd
index 378db33..7e333cd 100644
--- a/man/stri_join.Rd
+++ b/man/stri_join.Rd
@@ -1,8 +1,8 @@
% Generated by roxygen2: do not edit by hand
% Please edit documentation in R/join.R
\name{stri_join}
-\alias{stri_c}
\alias{stri_join}
+\alias{stri_c}
\alias{stri_paste}
\title{Concatenate Character Vectors}
\usage{
@@ -70,4 +70,3 @@ do.call(stri_c, list(c("a", "b", "c"), c("1", "2"), sep='!', collapse='$'))
Other join: \code{\link{stri_dup}},
\code{\link{stri_flatten}}, \code{\link{stri_join_list}}
}
-
diff --git a/man/stri_join_list.Rd b/man/stri_join_list.Rd
index 359b7da..f9da07f 100644
--- a/man/stri_join_list.Rd
+++ b/man/stri_join_list.Rd
@@ -1,8 +1,8 @@
% Generated by roxygen2: do not edit by hand
% Please edit documentation in R/join.R
\name{stri_join_list}
-\alias{stri_c_list}
\alias{stri_join_list}
+\alias{stri_c_list}
\alias{stri_paste_list}
\title{Concatenate Strings in a List}
\usage{
@@ -56,4 +56,3 @@ stri_join_list(stri_extract_all_regex(c("R is OK.", "123 456", "Hey!"),
Other join: \code{\link{stri_dup}},
\code{\link{stri_flatten}}, \code{\link{stri_join}}
}
-
diff --git a/man/stri_length.Rd b/man/stri_length.Rd
index add0a98..fea83de 100644
--- a/man/stri_length.Rd
+++ b/man/stri_length.Rd
@@ -47,4 +47,3 @@ stri_count_boundaries(stri_trans_nfkd('\\u0105'), type="character") # ...and one
Other length: \code{\link{stri_isempty}},
\code{\link{stri_numbytes}}, \code{\link{stri_width}}
}
-
diff --git a/man/stri_list2matrix.Rd b/man/stri_list2matrix.Rd
index 8a456a7..6866569 100644
--- a/man/stri_list2matrix.Rd
+++ b/man/stri_list2matrix.Rd
@@ -55,4 +55,3 @@ stri_list2matrix(list("a", c("b", "c")), fill="")
stri_list2matrix(list("a", c("b", "c")), fill="", n_min=5)
}
-
diff --git a/man/stri_locale_info.Rd b/man/stri_locale_info.Rd
index 1fdc831..03b32ac 100644
--- a/man/stri_locale_info.Rd
+++ b/man/stri_locale_info.Rd
@@ -42,4 +42,3 @@ Other locale_management: \code{\link{stri_locale_list}},
\code{\link{stri_locale_set}},
\code{\link{stringi-locale}}
}
-
diff --git a/man/stri_locale_list.Rd b/man/stri_locale_list.Rd
index 03e9495..6fc77b6 100644
--- a/man/stri_locale_list.Rd
+++ b/man/stri_locale_list.Rd
@@ -25,4 +25,3 @@ Other locale_management: \code{\link{stri_locale_info}},
\code{\link{stri_locale_set}},
\code{\link{stringi-locale}}
}
-
diff --git a/man/stri_locale_set.Rd b/man/stri_locale_set.Rd
index 7c7437c..fc5f6c3 100644
--- a/man/stri_locale_set.Rd
+++ b/man/stri_locale_set.Rd
@@ -1,8 +1,8 @@
% Generated by roxygen2: do not edit by hand
% Please edit documentation in R/locale_management.R
\name{stri_locale_set}
-\alias{stri_locale_get}
\alias{stri_locale_set}
+\alias{stri_locale_get}
\title{Set or Get Default Locale in \pkg{stringi}}
\usage{
stri_locale_set(locale)
@@ -49,4 +49,3 @@ Other locale_management: \code{\link{stri_locale_info}},
\code{\link{stri_locale_list}},
\code{\link{stringi-locale}}
}
-
diff --git a/man/stri_locate.Rd b/man/stri_locate.Rd
index 06e3773..26a6c59 100644
--- a/man/stri_locate.Rd
+++ b/man/stri_locate.Rd
@@ -1,22 +1,22 @@
% Generated by roxygen2: do not edit by hand
% Please edit documentation in R/search_locate_4.R
\name{stri_locate_all}
-\alias{stri_locate}
\alias{stri_locate_all}
-\alias{stri_locate_all_charclass}
-\alias{stri_locate_all_coll}
-\alias{stri_locate_all_fixed}
-\alias{stri_locate_all_regex}
\alias{stri_locate_first}
-\alias{stri_locate_first_charclass}
-\alias{stri_locate_first_coll}
-\alias{stri_locate_first_fixed}
-\alias{stri_locate_first_regex}
\alias{stri_locate_last}
+\alias{stri_locate}
+\alias{stri_locate_all_charclass}
+\alias{stri_locate_first_charclass}
\alias{stri_locate_last_charclass}
+\alias{stri_locate_all_coll}
+\alias{stri_locate_first_coll}
\alias{stri_locate_last_coll}
-\alias{stri_locate_last_fixed}
+\alias{stri_locate_all_regex}
+\alias{stri_locate_first_regex}
\alias{stri_locate_last_regex}
+\alias{stri_locate_all_fixed}
+\alias{stri_locate_first_fixed}
+\alias{stri_locate_last_fixed}
\title{Locate Occurrences of a Pattern}
\usage{
stri_locate_all(str, ..., regex, fixed, coll, charclass)
@@ -167,10 +167,9 @@ stri_locate_all_regex("ACAGAGACTTTAGATAGAGAAGA", "(?=AGA)")
}
\seealso{
-Other indexing: \code{\link{stri_locate_all_boundaries}},
- \code{\link{stri_sub}}
-
Other search_locate: \code{\link{stri_locate_all_boundaries}},
\code{\link{stringi-search}}
-}
+Other indexing: \code{\link{stri_locate_all_boundaries}},
+ \code{\link{stri_sub}}
+}
diff --git a/man/stri_locate_boundaries.Rd b/man/stri_locate_boundaries.Rd
index 43421f4..ee7178e 100644
--- a/man/stri_locate_boundaries.Rd
+++ b/man/stri_locate_boundaries.Rd
@@ -2,11 +2,11 @@
% Please edit documentation in R/search_locate_bound.R
\name{stri_locate_all_boundaries}
\alias{stri_locate_all_boundaries}
-\alias{stri_locate_all_words}
-\alias{stri_locate_first_boundaries}
-\alias{stri_locate_first_words}
\alias{stri_locate_last_boundaries}
+\alias{stri_locate_first_boundaries}
+\alias{stri_locate_all_words}
\alias{stri_locate_last_words}
+\alias{stri_locate_first_words}
\title{Locate Specific Text Boundaries}
\usage{
stri_locate_all_boundaries(str, omit_no_match = FALSE, ...,
@@ -86,6 +86,9 @@ stri_locate_all_words(test)
}
\seealso{
+Other search_locate: \code{\link{stri_locate_all}},
+ \code{\link{stringi-search}}
+
Other indexing: \code{\link{stri_locate_all}},
\code{\link{stri_sub}}
@@ -104,9 +107,6 @@ Other locale_sensitive: \code{\link{\%s<\%}},
\code{\link{stringi-search-boundaries}},
\code{\link{stringi-search-coll}}
-Other search_locate: \code{\link{stri_locate_all}},
- \code{\link{stringi-search}}
-
Other text_boundaries: \code{\link{stri_count_boundaries}},
\code{\link{stri_extract_all_boundaries}},
\code{\link{stri_opts_brkiter}},
@@ -117,4 +117,3 @@ Other text_boundaries: \code{\link{stri_count_boundaries}},
\code{\link{stringi-search-boundaries}},
\code{\link{stringi-search}}
}
-
diff --git a/man/stri_match.Rd b/man/stri_match.Rd
index 12de362..7567b44 100644
--- a/man/stri_match.Rd
+++ b/man/stri_match.Rd
@@ -1,12 +1,12 @@
% Generated by roxygen2: do not edit by hand
% Please edit documentation in R/search_match_4.R
\name{stri_match_all}
-\alias{stri_match}
\alias{stri_match_all}
-\alias{stri_match_all_regex}
\alias{stri_match_first}
-\alias{stri_match_first_regex}
\alias{stri_match_last}
+\alias{stri_match}
+\alias{stri_match_all_regex}
+\alias{stri_match_first_regex}
\alias{stri_match_last_regex}
\title{Extract Regex Pattern Matches, Together with Capture Groups}
\usage{
@@ -111,4 +111,3 @@ Other search_extract: \code{\link{stri_extract_all_boundaries}},
\code{\link{stri_extract_all}},
\code{\link{stringi-search}}
}
-
diff --git a/man/stri_numbytes.Rd b/man/stri_numbytes.Rd
index f507389..2c494ad 100644
--- a/man/stri_numbytes.Rd
+++ b/man/stri_numbytes.Rd
@@ -49,4 +49,3 @@ stri_numbytes('\\U7fffffff') # compare stri_length('\\U7fffffff')
Other length: \code{\link{stri_isempty}},
\code{\link{stri_length}}, \code{\link{stri_width}}
}
-
diff --git a/man/stri_opts_brkiter.Rd b/man/stri_opts_brkiter.Rd
index 1d424a0..d532f9c 100644
--- a/man/stri_opts_brkiter.Rd
+++ b/man/stri_opts_brkiter.Rd
@@ -80,4 +80,3 @@ Other text_boundaries: \code{\link{stri_count_boundaries}},
\code{\link{stringi-search-boundaries}},
\code{\link{stringi-search}}
}
-
diff --git a/man/stri_opts_collator.Rd b/man/stri_opts_collator.Rd
index 1c1230e..8edc6d0 100644
--- a/man/stri_opts_collator.Rd
+++ b/man/stri_opts_collator.Rd
@@ -105,4 +105,3 @@ Other locale_sensitive: \code{\link{\%s<\%}},
Other search_coll: \code{\link{stringi-search-coll}},
\code{\link{stringi-search}}
}
-
diff --git a/man/stri_opts_fixed.Rd b/man/stri_opts_fixed.Rd
index a5da6e8..9d7957d 100644
--- a/man/stri_opts_fixed.Rd
+++ b/man/stri_opts_fixed.Rd
@@ -45,4 +45,3 @@ stri_detect_fixed("ala", "ALA", case_insensitive=TRUE) # equivalent
Other search_fixed: \code{\link{stringi-search-fixed}},
\code{\link{stringi-search}}
}
-
diff --git a/man/stri_opts_regex.Rd b/man/stri_opts_regex.Rd
index 39609b4..747abc6 100644
--- a/man/stri_opts_regex.Rd
+++ b/man/stri_opts_regex.Rd
@@ -75,4 +75,3 @@ stri_detect_regex("ala", "(?i)ALA") # equivalent
Other search_regex: \code{\link{stringi-search-regex}},
\code{\link{stringi-search}}
}
-
diff --git a/man/stri_order.Rd b/man/stri_order.Rd
index 1aa61b8..654bd55 100644
--- a/man/stri_order.Rd
+++ b/man/stri_order.Rd
@@ -77,4 +77,3 @@ Other locale_sensitive: \code{\link{\%s<\%}},
\code{\link{stringi-search-boundaries}},
\code{\link{stringi-search-coll}}
}
-
diff --git a/man/stri_pad.Rd b/man/stri_pad.Rd
index 9d43537..45bcee7 100644
--- a/man/stri_pad.Rd
+++ b/man/stri_pad.Rd
@@ -1,10 +1,10 @@
% Generated by roxygen2: do not edit by hand
% Please edit documentation in R/pad.R
\name{stri_pad_both}
-\alias{stri_pad}
\alias{stri_pad_both}
\alias{stri_pad_left}
\alias{stri_pad_right}
+\alias{stri_pad}
\title{Pad (Center/Left/Right Align) a String}
\usage{
stri_pad_both(str, width = floor(0.9 * getOption("width")), pad = " ",
@@ -70,4 +70,3 @@ cat(stri_pad_both(c("\\ud6c8\\ubbfc\\uc815\\uc74c", # takes width into account
stri_trans_nfkd("\\ud6c8\\ubbfc\\uc815\\uc74c"), "abcd"),
width=10), sep="\\n")
}
-
diff --git a/man/stri_rand_lipsum.Rd b/man/stri_rand_lipsum.Rd
index 649a010..2c8b8c3 100644
--- a/man/stri_rand_lipsum.Rd
+++ b/man/stri_rand_lipsum.Rd
@@ -41,4 +41,3 @@ cat(stri_rand_lipsum(10), sep="\\n\\n")
Other random: \code{\link{stri_rand_shuffle}},
\code{\link{stri_rand_strings}}
}
-
diff --git a/man/stri_rand_shuffle.Rd b/man/stri_rand_shuffle.Rd
index 751ad8a..fa11a8f 100644
--- a/man/stri_rand_shuffle.Rd
+++ b/man/stri_rand_shuffle.Rd
@@ -33,4 +33,3 @@ stri_rand_shuffle(rep(stri_paste(letters, collapse=''), 10))
Other random: \code{\link{stri_rand_lipsum}},
\code{\link{stri_rand_strings}}
}
-
diff --git a/man/stri_rand_strings.Rd b/man/stri_rand_strings.Rd
index e5b6a4a..d6e6e16 100644
--- a/man/stri_rand_strings.Rd
+++ b/man/stri_rand_strings.Rd
@@ -53,4 +53,3 @@ stri_rand_shuffle(stri_paste(
Other random: \code{\link{stri_rand_lipsum}},
\code{\link{stri_rand_shuffle}}
}
-
diff --git a/man/stri_read_lines.Rd b/man/stri_read_lines.Rd
index d8450ec..754b85d 100644
--- a/man/stri_read_lines.Rd
+++ b/man/stri_read_lines.Rd
@@ -32,17 +32,16 @@ Reads a text file, re-encodes it, and splits it into text lines.
}
\details{
It is a substitute for the system's \code{\link{readLines}} function,
-with the ability to auto-detect input encodings (or specify
+with the ability to auto-detect input encodings (or to specify
one manually), re-encode input without any strange function calls
or sys options change,
and split the text into lines with \code{\link{stri_split_lines1}}
(which conforms with the Unicode guidelines for newline markers).
-If \code{locale} is \code{NA} and auto-detect of UTF-32/16/8 fails,
+If \code{locale} is \code{NA} and auto-detection of UTF-32/16/8 fails,
then \code{fallback_encoding} is used.
}
\seealso{
Other files: \code{\link{stri_read_raw}},
\code{\link{stri_write_lines}}
}
-
diff --git a/man/stri_read_raw.Rd b/man/stri_read_raw.Rd
index 25a1a9e..191c19b 100644
--- a/man/stri_read_raw.Rd
+++ b/man/stri_read_raw.Rd
@@ -18,15 +18,14 @@ Reads a text file as-is, with no conversion or text line splitting.
\bold{[THIS IS AN EXPERIMENTAL FUNCTION]}
}
\details{
-After reading a text file into memory (vast majority of them
-will fit into RAM without any problems), you may perform e.g.
+After reading a text file into memory (the vast majority of them
+will fit into RAM without any problems), you may perform
encoding detection (cf. \code{\link{stri_enc_detect2}}),
conversion (cf. \code{\link{stri_encode}}),
-and e.g. split it into text lines with
+and for example split it into text lines with
\code{\link{stri_split_lines1}}.
}
\seealso{
Other files: \code{\link{stri_read_lines}},
\code{\link{stri_write_lines}}
}
-
diff --git a/man/stri_replace.Rd b/man/stri_replace.Rd
index 5050ff5..4a2c4ac 100644
--- a/man/stri_replace.Rd
+++ b/man/stri_replace.Rd
@@ -1,21 +1,21 @@
% Generated by roxygen2: do not edit by hand
% Please edit documentation in R/search_replace_4.R
\name{stri_replace_all}
-\alias{stri_replace}
\alias{stri_replace_all}
-\alias{stri_replace_all_charclass}
-\alias{stri_replace_all_coll}
-\alias{stri_replace_all_fixed}
-\alias{stri_replace_all_regex}
\alias{stri_replace_first}
-\alias{stri_replace_first_charclass}
-\alias{stri_replace_first_coll}
-\alias{stri_replace_first_fixed}
-\alias{stri_replace_first_regex}
\alias{stri_replace_last}
+\alias{stri_replace}
+\alias{stri_replace_all_charclass}
+\alias{stri_replace_first_charclass}
\alias{stri_replace_last_charclass}
+\alias{stri_replace_all_coll}
+\alias{stri_replace_first_coll}
\alias{stri_replace_last_coll}
+\alias{stri_replace_all_fixed}
+\alias{stri_replace_first_fixed}
\alias{stri_replace_last_fixed}
+\alias{stri_replace_all_regex}
+\alias{stri_replace_first_regex}
\alias{stri_replace_last_regex}
\title{Replace Occurrences of a Pattern}
\usage{
@@ -162,4 +162,3 @@ Other search_replace: \code{\link{stri_replace_na}},
\code{\link{stri_trim_both}},
\code{\link{stringi-search}}
}
-
diff --git a/man/stri_replace_na.Rd b/man/stri_replace_na.Rd
index 6537230..794426e 100644
--- a/man/stri_replace_na.Rd
+++ b/man/stri_replace_na.Rd
@@ -38,4 +38,3 @@ Other search_replace: \code{\link{stri_replace_all}},
\code{\link{stri_trim_both}},
\code{\link{stringi-search}}
}
-
diff --git a/man/stri_reverse.Rd b/man/stri_reverse.Rd
index 575fec5..b5cf20c 100644
--- a/man/stri_reverse.Rd
+++ b/man/stri_reverse.Rd
@@ -28,4 +28,3 @@ stri_reverse("ZXY (\\u0105\\u0104123$^).")
stri_reverse(stri_trans_nfd('\\u0105')) == stri_trans_nfd('\\u0105') # A, ogonek -> agonek, A
}
-
diff --git a/man/stri_split.Rd b/man/stri_split.Rd
index 157bcdf..3a78138 100644
--- a/man/stri_split.Rd
+++ b/man/stri_split.Rd
@@ -2,10 +2,10 @@
% Please edit documentation in R/search_split_4.R
\name{stri_split}
\alias{stri_split}
-\alias{stri_split_charclass}
-\alias{stri_split_coll}
\alias{stri_split_fixed}
\alias{stri_split_regex}
+\alias{stri_split_coll}
+\alias{stri_split_charclass}
\title{Split a String By Pattern Matches}
\usage{
stri_split(str, ..., regex, fixed, coll, charclass)
@@ -130,4 +130,3 @@ Other search_split: \code{\link{stri_split_boundaries}},
\code{\link{stri_split_lines}},
\code{\link{stringi-search}}
}
-
diff --git a/man/stri_split_boundaries.Rd b/man/stri_split_boundaries.Rd
index 3d8852c..f046641 100644
--- a/man/stri_split_boundaries.Rd
+++ b/man/stri_split_boundaries.Rd
@@ -74,6 +74,9 @@ So am I, Prof. Smith.", type="sentence", locale="@ss=standard") # ICU >= 56 only
}
\seealso{
+Other search_split: \code{\link{stri_split_lines}},
+ \code{\link{stri_split}}, \code{\link{stringi-search}}
+
Other locale_sensitive: \code{\link{\%s<\%}},
\code{\link{stri_compare}},
\code{\link{stri_count_boundaries}},
@@ -89,9 +92,6 @@ Other locale_sensitive: \code{\link{\%s<\%}},
\code{\link{stringi-search-boundaries}},
\code{\link{stringi-search-coll}}
-Other search_split: \code{\link{stri_split_lines}},
- \code{\link{stri_split}}, \code{\link{stringi-search}}
-
Other text_boundaries: \code{\link{stri_count_boundaries}},
\code{\link{stri_extract_all_boundaries}},
\code{\link{stri_locate_all_boundaries}},
@@ -102,4 +102,3 @@ Other text_boundaries: \code{\link{stri_count_boundaries}},
\code{\link{stringi-search-boundaries}},
\code{\link{stringi-search}}
}
-
diff --git a/man/stri_split_lines.Rd b/man/stri_split_lines.Rd
index 010ae28..a98724a 100644
--- a/man/stri_split_lines.Rd
+++ b/man/stri_split_lines.Rd
@@ -3,6 +3,7 @@
\name{stri_split_lines}
\alias{stri_split_lines}
\alias{stri_split_lines1}
+\alias{stri_split_lines1}
\title{Split a String Into Text Lines}
\usage{
stri_split_lines(str, omit_empty = FALSE)
@@ -70,4 +71,3 @@ Other text_boundaries: \code{\link{stri_count_boundaries}},
\code{\link{stringi-search-boundaries}},
\code{\link{stringi-search}}
}
-
diff --git a/man/stri_startsendswith.Rd b/man/stri_startsendswith.Rd
index a6fa45d..2a4462e 100644
--- a/man/stri_startsendswith.Rd
+++ b/man/stri_startsendswith.Rd
@@ -1,14 +1,14 @@
% Generated by roxygen2: do not edit by hand
% Please edit documentation in R/search_startsendswith_4.R
\name{stri_startswith}
+\alias{stri_startswith}
\alias{stri_endswith}
-\alias{stri_endswith_charclass}
-\alias{stri_endswith_coll}
+\alias{stri_startswith_fixed}
\alias{stri_endswith_fixed}
-\alias{stri_startswith}
\alias{stri_startswith_charclass}
+\alias{stri_endswith_charclass}
\alias{stri_startswith_coll}
-\alias{stri_startswith_fixed}
+\alias{stri_endswith_coll}
\title{Determine if the Start or End of a String Matches a Pattern}
\usage{
stri_startswith(str, ..., fixed, coll, charclass)
@@ -102,4 +102,3 @@ stri_endswith_coll("\\ufdfa\\ufdfa\\ufdfaXYZ", pat, strength=1)
Other search_detect: \code{\link{stri_detect}},
\code{\link{stringi-search}}
}
-
diff --git a/man/stri_stats_general.Rd b/man/stri_stats_general.Rd
index 55841db..fa2c2c8 100644
--- a/man/stri_stats_general.Rd
+++ b/man/stri_stats_general.Rd
@@ -46,4 +46,3 @@ stri_stats_general(s)
\seealso{
Other stats: \code{\link{stri_stats_latex}}
}
-
diff --git a/man/stri_stats_latex.Rd b/man/stri_stats_latex.Rd
index fe0d4e9..761c8a2 100644
--- a/man/stri_stats_latex.Rd
+++ b/man/stri_stats_latex.Rd
@@ -57,4 +57,3 @@ CharsWord CharsCmdEnvir CharsWhite Words Cmds Envirs
\seealso{
Other stats: \code{\link{stri_stats_general}}
}
-
diff --git a/man/stri_sub.Rd b/man/stri_sub.Rd
index 4a3e6b4..61b394f 100644
--- a/man/stri_sub.Rd
+++ b/man/stri_sub.Rd
@@ -60,7 +60,7 @@ Argument \code{to} defines the last index of the substring, inclusive.
For negative indices in \code{from} or \code{to},
counting starts at the end of the string.
For instance, index -1 denotes the last code point in the string.
-Negative \code{length} means counting backwards.
+Non-positive \code{length} gives an empty string.
In \code{stri_sub}, out-of-bound indices are silently
@@ -87,4 +87,3 @@ x <- c("a;b", "c:d")
Other indexing: \code{\link{stri_locate_all_boundaries}},
\code{\link{stri_locate_all}}
}
-
diff --git a/man/stri_subset.Rd b/man/stri_subset.Rd
index 628340f..48a9072 100644
--- a/man/stri_subset.Rd
+++ b/man/stri_subset.Rd
@@ -3,12 +3,12 @@
\name{stri_subset}
\alias{stri_subset}
\alias{stri_subset<-}
+\alias{stri_subset_fixed}
+\alias{stri_subset_fixed<-}
\alias{stri_subset_charclass}
\alias{stri_subset_charclass<-}
\alias{stri_subset_coll}
\alias{stri_subset_coll<-}
-\alias{stri_subset_fixed}
-\alias{stri_subset_fixed<-}
\alias{stri_subset_regex}
\alias{stri_subset_regex<-}
\title{Select Elements that Match a Given Pattern}
@@ -98,4 +98,3 @@ print(x)
\seealso{
Other search_subset: \code{\link{stringi-search}}
}
-
diff --git a/man/stri_timezone_info.Rd b/man/stri_timezone_info.Rd
index bc10752..56b4f2b 100644
--- a/man/stri_timezone_info.Rd
+++ b/man/stri_timezone_info.Rd
@@ -63,4 +63,3 @@ Other datetime: \code{\link{stri_datetime_add}},
Other timezone: \code{\link{stri_timezone_get}},
\code{\link{stri_timezone_list}}
}
-
diff --git a/man/stri_timezone_list.Rd b/man/stri_timezone_list.Rd
index ce1eeca..5b7cd6c 100644
--- a/man/stri_timezone_list.Rd
+++ b/man/stri_timezone_list.Rd
@@ -91,4 +91,3 @@ Other datetime: \code{\link{stri_datetime_add}},
Other timezone: \code{\link{stri_timezone_get}},
\code{\link{stri_timezone_info}}
}
-
diff --git a/man/stri_timezone_set.Rd b/man/stri_timezone_set.Rd
index f97d64a..76f3c41 100644
--- a/man/stri_timezone_set.Rd
+++ b/man/stri_timezone_set.Rd
@@ -59,4 +59,3 @@ Other datetime: \code{\link{stri_datetime_add}},
Other timezone: \code{\link{stri_timezone_info}},
\code{\link{stri_timezone_list}}
}
-
diff --git a/man/stri_trans_casemap.Rd b/man/stri_trans_casemap.Rd
index 31bb6e1..3d817e6 100644
--- a/man/stri_trans_casemap.Rd
+++ b/man/stri_trans_casemap.Rd
@@ -2,8 +2,8 @@
% Please edit documentation in R/trans_casemap.R
\name{stri_trans_tolower}
\alias{stri_trans_tolower}
-\alias{stri_trans_totitle}
\alias{stri_trans_toupper}
+\alias{stri_trans_totitle}
\title{Transform String with Case Mapping}
\usage{
stri_trans_tolower(str, locale = NULL)
@@ -85,6 +85,11 @@ Other locale_sensitive: \code{\link{\%s<\%}},
\code{\link{stringi-search-boundaries}},
\code{\link{stringi-search-coll}}
+Other transform: \code{\link{stri_trans_char}},
+ \code{\link{stri_trans_general}},
+ \code{\link{stri_trans_list}},
+ \code{\link{stri_trans_nfc}}
+
Other text_boundaries: \code{\link{stri_count_boundaries}},
\code{\link{stri_extract_all_boundaries}},
\code{\link{stri_locate_all_boundaries}},
@@ -93,10 +98,4 @@ Other text_boundaries: \code{\link{stri_count_boundaries}},
\code{\link{stri_split_lines}}, \code{\link{stri_wrap}},
\code{\link{stringi-search-boundaries}},
\code{\link{stringi-search}}
-
-Other transform: \code{\link{stri_trans_char}},
- \code{\link{stri_trans_general}},
- \code{\link{stri_trans_list}},
- \code{\link{stri_trans_nfc}}
}
-
diff --git a/man/stri_trans_char.Rd b/man/stri_trans_char.Rd
index 8fa472e..99f39d2 100644
--- a/man/stri_trans_char.Rd
+++ b/man/stri_trans_char.Rd
@@ -40,4 +40,3 @@ Other transform: \code{\link{stri_trans_general}},
\code{\link{stri_trans_nfc}},
\code{\link{stri_trans_tolower}}
}
-
diff --git a/man/stri_trans_general.Rd b/man/stri_trans_general.Rd
index fa99d71..8d54f36 100644
--- a/man/stri_trans_general.Rd
+++ b/man/stri_trans_general.Rd
@@ -70,4 +70,3 @@ Other transform: \code{\link{stri_trans_char}},
\code{\link{stri_trans_nfc}},
\code{\link{stri_trans_tolower}}
}
-
diff --git a/man/stri_trans_list.Rd b/man/stri_trans_list.Rd
index ac4abd2..75431c6 100644
--- a/man/stri_trans_list.Rd
+++ b/man/stri_trans_list.Rd
@@ -24,4 +24,3 @@ Other transform: \code{\link{stri_trans_char}},
\code{\link{stri_trans_nfc}},
\code{\link{stri_trans_tolower}}
}
-
diff --git a/man/stri_trans_nf.Rd b/man/stri_trans_nf.Rd
index 9260cc5..13b9c72 100644
--- a/man/stri_trans_nf.Rd
+++ b/man/stri_trans_nf.Rd
@@ -1,16 +1,16 @@
% Generated by roxygen2: do not edit by hand
% Please edit documentation in R/trans_normalization.R
\name{stri_trans_nfc}
-\alias{stri_trans_isnfc}
-\alias{stri_trans_isnfd}
-\alias{stri_trans_isnfkc}
-\alias{stri_trans_isnfkc_casefold}
-\alias{stri_trans_isnfkd}
\alias{stri_trans_nfc}
\alias{stri_trans_nfd}
+\alias{stri_trans_nfkd}
\alias{stri_trans_nfkc}
\alias{stri_trans_nfkc_casefold}
-\alias{stri_trans_nfkd}
+\alias{stri_trans_isnfc}
+\alias{stri_trans_isnfd}
+\alias{stri_trans_isnfkd}
+\alias{stri_trans_isnfkc}
+\alias{stri_trans_isnfkc_casefold}
\title{Perform or Check For Unicode Normalization}
\usage{
stri_trans_nfc(str)
@@ -107,4 +107,3 @@ Other transform: \code{\link{stri_trans_char}},
\code{\link{stri_trans_list}},
\code{\link{stri_trans_tolower}}
}
-
diff --git a/man/stri_trim.Rd b/man/stri_trim.Rd
index 54817a1..0b53942 100644
--- a/man/stri_trim.Rd
+++ b/man/stri_trim.Rd
@@ -1,10 +1,11 @@
% Generated by roxygen2: do not edit by hand
% Please edit documentation in R/trim.R
\name{stri_trim_both}
-\alias{stri_trim}
\alias{stri_trim_both}
+\alias{stri_trim}
\alias{stri_trim_left}
\alias{stri_trim_right}
+\alias{stri_trim}
\title{Trim Characters from the Left and/or Right Side of a String}
\usage{
stri_trim_both(str, pattern = "\\\\P{Wspace}")
@@ -63,11 +64,10 @@ stri_trim_both(" Total of 23.5 bitcoins. ", "\\\\p{L}")
}
\seealso{
-Other search_charclass: \code{\link{stringi-search-charclass}},
- \code{\link{stringi-search}}
-
Other search_replace: \code{\link{stri_replace_all}},
\code{\link{stri_replace_na}},
\code{\link{stringi-search}}
-}
+Other search_charclass: \code{\link{stringi-search-charclass}},
+ \code{\link{stringi-search}}
+}
diff --git a/man/stri_unescape_unicode.Rd b/man/stri_unescape_unicode.Rd
index 2f450b4..02dabd0 100644
--- a/man/stri_unescape_unicode.Rd
+++ b/man/stri_unescape_unicode.Rd
@@ -44,4 +44,3 @@ stri_unescape_unicode("a\\\\u0105!\\\\u0032\\\\n")
\seealso{
Other escape: \code{\link{stri_escape_unicode}}
}
-
diff --git a/man/stri_unique.Rd b/man/stri_unique.Rd
index e40b5a3..a5e70df 100644
--- a/man/stri_unique.Rd
+++ b/man/stri_unique.Rd
@@ -61,4 +61,3 @@ Other locale_sensitive: \code{\link{\%s<\%}},
\code{\link{stringi-search-boundaries}},
\code{\link{stringi-search-coll}}
}
-
diff --git a/man/stri_width.Rd b/man/stri_width.Rd
index a60e036..33ecac9 100644
--- a/man/stri_width.Rd
+++ b/man/stri_width.Rd
@@ -56,4 +56,3 @@ stri_width(stri_trans_nfkd("\\ubc1f")) # includes Hangul Jamo medial vowels and
Other length: \code{\link{stri_isempty}},
\code{\link{stri_length}}, \code{\link{stri_numbytes}}
}
-
diff --git a/man/stri_wrap.Rd b/man/stri_wrap.Rd
index 9fcacb3..fc32c03 100644
--- a/man/stri_wrap.Rd
+++ b/man/stri_wrap.Rd
@@ -138,4 +138,3 @@ Other text_boundaries: \code{\link{stri_count_boundaries}},
\code{\link{stringi-search-boundaries}},
\code{\link{stringi-search}}
}
-
diff --git a/man/stri_write_lines.Rd b/man/stri_write_lines.Rd
index 4308731..4af2e3c 100644
--- a/man/stri_write_lines.Rd
+++ b/man/stri_write_lines.Rd
@@ -37,4 +37,3 @@ thus, it is the default one for the output.
Other files: \code{\link{stri_read_lines}},
\code{\link{stri_read_raw}}
}
-
diff --git a/man/stringi-arguments.Rd b/man/stringi-arguments.Rd
index 7601d81..eeb7068 100644
--- a/man/stringi-arguments.Rd
+++ b/man/stringi-arguments.Rd
@@ -67,6 +67,7 @@ Thus, if arguments' preserving is needed,
please remember to copy important attributes manually
or use, e.g., the subsetting operation like \code{x[] <- stri_...(x, ...)}.
}
+
\seealso{
Other stringi_general_topics: \code{\link{stringi-encoding}},
\code{\link{stringi-locale}},
@@ -78,4 +79,3 @@ Other stringi_general_topics: \code{\link{stringi-encoding}},
\code{\link{stringi-search-regex}},
\code{\link{stringi-search}}
}
-
diff --git a/man/stringi-encoding.Rd b/man/stringi-encoding.Rd
index 17511da..7433b1a 100644
--- a/man/stringi-encoding.Rd
+++ b/man/stringi-encoding.Rd
@@ -197,6 +197,7 @@ sequence is quite rare (statistically speaking).
Check out \code{\link{stri_enc_detect}} (among others) for a useful
function in this category.
}
+
\references{
\emph{Unicode Basics} -- ICU User Guide,
\url{http://userguide.icu-project.org/unicode}
@@ -210,22 +211,6 @@ function in this category.
\emph{UTF-8, UTF-16, UTF-32 & BOM} -- ICU FAQ, \url{http://www.unicode.org/faq/utf_bom.html}
}
\seealso{
-Other encoding_conversion: \code{\link{stri_enc_fromutf32}},
- \code{\link{stri_enc_toascii}},
- \code{\link{stri_enc_tonative}},
- \code{\link{stri_enc_toutf32}},
- \code{\link{stri_enc_toutf8}}, \code{\link{stri_encode}}
-
-Other encoding_detection: \code{\link{stri_enc_detect2}},
- \code{\link{stri_enc_detect}},
- \code{\link{stri_enc_isascii}},
- \code{\link{stri_enc_isutf16be}},
- \code{\link{stri_enc_isutf8}}
-
-Other encoding_management: \code{\link{stri_enc_info}},
- \code{\link{stri_enc_list}}, \code{\link{stri_enc_mark}},
- \code{\link{stri_enc_set}}
-
Other stringi_general_topics: \code{\link{stringi-arguments}},
\code{\link{stringi-locale}},
\code{\link{stringi-package}},
@@ -235,5 +220,20 @@ Other stringi_general_topics: \code{\link{stringi-arguments}},
\code{\link{stringi-search-fixed}},
\code{\link{stringi-search-regex}},
\code{\link{stringi-search}}
-}
+Other encoding_management: \code{\link{stri_enc_info}},
+ \code{\link{stri_enc_list}}, \code{\link{stri_enc_mark}},
+ \code{\link{stri_enc_set}}
+
+Other encoding_detection: \code{\link{stri_enc_detect2}},
+ \code{\link{stri_enc_detect}},
+ \code{\link{stri_enc_isascii}},
+ \code{\link{stri_enc_isutf16be}},
+ \code{\link{stri_enc_isutf8}}
+
+Other encoding_conversion: \code{\link{stri_enc_fromutf32}},
+ \code{\link{stri_enc_toascii}},
+ \code{\link{stri_enc_tonative}},
+ \code{\link{stri_enc_toutf32}},
+ \code{\link{stri_enc_toutf8}}, \code{\link{stri_encode}}
+}
diff --git a/man/stringi-locale.Rd b/man/stringi-locale.Rd
index 19c0b55..f864262 100644
--- a/man/stringi-locale.Rd
+++ b/man/stringi-locale.Rd
@@ -90,6 +90,7 @@ argument in particular.
Other locale-sensitive functions include, e.g.,
\code{\link{stri_trans_tolower}} (that does character case mapping).
}
+
\references{
\emph{Locale} -- ICU User Guide, \url{http://userguide.icu-project.org/locale}
@@ -128,4 +129,3 @@ Other stringi_general_topics: \code{\link{stringi-arguments}},
\code{\link{stringi-search-regex}},
\code{\link{stringi-search}}
}
-
diff --git a/man/stringi-package.Rd b/man/stringi-package.Rd
index 0609bb4..eea536b 100644
--- a/man/stringi-package.Rd
+++ b/man/stringi-package.Rd
@@ -2,8 +2,8 @@
% Please edit documentation in R/stringi-package.R
\docType{package}
\name{stringi-package}
-\alias{stringi}
\alias{stringi-package}
+\alias{stringi}
\title{THE String Processing Package}
\description{
\pkg{stringi} is THE \R package for fast, correct, consistent,
@@ -112,13 +112,7 @@ for reading and writing text files.
Note that each man page provides many further links to other
interesting facilities and topics.
}
-\author{
-Marek Gagolewski,
-with contributions from Bartek Tartanus.
-ICU4C was developed by IBM and others.
-The Unicode Character Database is due to Unicode, Inc.;
-see the COPYRIGHTS file for more details.
-}
+
\references{
\emph{\pkg{stringi} Package homepage}, \url{http://www.gagolewski.com/software/stringi/}
@@ -142,4 +136,10 @@ Other stringi_general_topics: \code{\link{stringi-arguments}},
\code{\link{stringi-search-regex}},
\code{\link{stringi-search}}
}
-
+\author{
+Marek Gagolewski,
+with contributions from Bartek Tartanus and others.
+ICU4C was developed by IBM and others.
+The Unicode Character Database is due to Unicode, Inc.;
+see the COPYRIGHTS file for more details.
+}
diff --git a/man/stringi-search-boundaries.Rd b/man/stringi-search-boundaries.Rd
index 472f31e..f56e5de 100644
--- a/man/stringi-search-boundaries.Rd
+++ b/man/stringi-search-boundaries.Rd
@@ -69,6 +69,15 @@ Other locale_sensitive: \code{\link{\%s<\%}},
\code{\link{stringi-locale}},
\code{\link{stringi-search-coll}}
+Other text_boundaries: \code{\link{stri_count_boundaries}},
+ \code{\link{stri_extract_all_boundaries}},
+ \code{\link{stri_locate_all_boundaries}},
+ \code{\link{stri_opts_brkiter}},
+ \code{\link{stri_split_boundaries}},
+ \code{\link{stri_split_lines}},
+ \code{\link{stri_trans_tolower}},
+ \code{\link{stri_wrap}}, \code{\link{stringi-search}}
+
Other stringi_general_topics: \code{\link{stringi-arguments}},
\code{\link{stringi-encoding}},
\code{\link{stringi-locale}},
@@ -78,14 +87,4 @@ Other stringi_general_topics: \code{\link{stringi-arguments}},
\code{\link{stringi-search-fixed}},
\code{\link{stringi-search-regex}},
\code{\link{stringi-search}}
-
-Other text_boundaries: \code{\link{stri_count_boundaries}},
- \code{\link{stri_extract_all_boundaries}},
- \code{\link{stri_locate_all_boundaries}},
- \code{\link{stri_opts_brkiter}},
- \code{\link{stri_split_boundaries}},
- \code{\link{stri_split_lines}},
- \code{\link{stri_trans_tolower}},
- \code{\link{stri_wrap}}, \code{\link{stringi-search}}
}
-
diff --git a/man/stringi-search-charclass.Rd b/man/stringi-search-charclass.Rd
index 961ee16..2005417 100644
--- a/man/stringi-search-charclass.Rd
+++ b/man/stringi-search-charclass.Rd
@@ -257,6 +257,7 @@ to portable code (again, in POSIX-like regex engines).
So a POSIX flavor of \code{[:punct:]} is more like
\code{[\\p{P}\\p{S}]} in \pkg{ICU}. You have been warned.
}
+
\references{
\emph{The Unicode Character Database} -- Unicode Standard Annex #44,
\url{http://www.unicode.org/reports/tr44/}
@@ -289,4 +290,3 @@ Other stringi_general_topics: \code{\link{stringi-arguments}},
\code{\link{stringi-search-regex}},
\code{\link{stringi-search}}
}
-
diff --git a/man/stringi-search-coll.Rd b/man/stringi-search-coll.Rd
index 4df7d28..6a9c4bf 100644
--- a/man/stringi-search-coll.Rd
+++ b/man/stringi-search-coll.Rd
@@ -32,6 +32,7 @@ often exhibit poor performance. These functions are not intended to
be fast; they are made to give \emph{correct} in natural
language processing tasks.
}
+
\references{
\emph{ICU String Search Service} -- ICU User Guide,
\url{http://userguide.icu-project.org/collation/icu-string-search-service}
@@ -40,6 +41,9 @@ L. Werner, \emph{Efficient Text Searching in Java}, 1999,
\url{http://icu-project.org/docs/papers/efficient_text_searching_in_java.html}
}
\seealso{
+Other search_coll: \code{\link{stri_opts_collator}},
+ \code{\link{stringi-search}}
+
Other locale_sensitive: \code{\link{\%s<\%}},
\code{\link{stri_compare}},
\code{\link{stri_count_boundaries}},
@@ -55,9 +59,6 @@ Other locale_sensitive: \code{\link{\%s<\%}},
\code{\link{stringi-locale}},
\code{\link{stringi-search-boundaries}}
-Other search_coll: \code{\link{stri_opts_collator}},
- \code{\link{stringi-search}}
-
Other stringi_general_topics: \code{\link{stringi-arguments}},
\code{\link{stringi-encoding}},
\code{\link{stringi-locale}},
@@ -68,4 +69,3 @@ Other stringi_general_topics: \code{\link{stringi-arguments}},
\code{\link{stringi-search-regex}},
\code{\link{stringi-search}}
}
-
diff --git a/man/stringi-search-fixed.Rd b/man/stringi-search-fixed.Rd
index 81bc65e..7694788 100644
--- a/man/stringi-search-fixed.Rd
+++ b/man/stringi-search-fixed.Rd
@@ -30,6 +30,7 @@ see also \link{stringi-search-coll}.
Note that the conversion of input data
to Unicode is done as usual.
}
+
\seealso{
Other search_fixed: \code{\link{stri_opts_fixed}},
\code{\link{stringi-search}}
@@ -44,4 +45,3 @@ Other stringi_general_topics: \code{\link{stringi-arguments}},
\code{\link{stringi-search-regex}},
\code{\link{stringi-search}}
}
-
diff --git a/man/stringi-search-regex.Rd b/man/stringi-search-regex.Rd
index e0191c7..1e35124 100644
--- a/man/stringi-search-regex.Rd
+++ b/man/stringi-search-regex.Rd
@@ -183,6 +183,7 @@ refer to \link{stringi-search-coll} or \link{stringi-search-fixed}.
This allows to do a locale-aware text lookup,
or a very fast exact-byte search, respectively.
}
+
\references{
\emph{Regular expressions} -- ICU User Guide,
\url{http://userguide.icu-project.org/strings/regexp}
@@ -209,4 +210,3 @@ Other stringi_general_topics: \code{\link{stringi-arguments}},
\code{\link{stringi-search-fixed}},
\code{\link{stringi-search}}
}
-
diff --git a/man/stringi-search.Rd b/man/stringi-search.Rd
index 65403b0..8b43a2d 100644
--- a/man/stringi-search.Rd
+++ b/man/stringi-search.Rd
@@ -52,31 +52,37 @@ These may include:
}
}
\seealso{
-Other search_charclass: \code{\link{stri_trim_both}},
- \code{\link{stringi-search-charclass}}
+Other text_boundaries: \code{\link{stri_count_boundaries}},
+ \code{\link{stri_extract_all_boundaries}},
+ \code{\link{stri_locate_all_boundaries}},
+ \code{\link{stri_opts_brkiter}},
+ \code{\link{stri_split_boundaries}},
+ \code{\link{stri_split_lines}},
+ \code{\link{stri_trans_tolower}},
+ \code{\link{stri_wrap}},
+ \code{\link{stringi-search-boundaries}}
+
+Other search_regex: \code{\link{stri_opts_regex}},
+ \code{\link{stringi-search-regex}}
+
+Other search_fixed: \code{\link{stri_opts_fixed}},
+ \code{\link{stringi-search-fixed}}
Other search_coll: \code{\link{stri_opts_collator}},
\code{\link{stringi-search-coll}}
-Other search_count: \code{\link{stri_count_boundaries}},
- \code{\link{stri_count}}
+Other search_charclass: \code{\link{stri_trim_both}},
+ \code{\link{stringi-search-charclass}}
Other search_detect: \code{\link{stri_detect}},
\code{\link{stri_startswith}}
-Other search_extract: \code{\link{stri_extract_all_boundaries}},
- \code{\link{stri_extract_all}},
- \code{\link{stri_match_all}}
-
-Other search_fixed: \code{\link{stri_opts_fixed}},
- \code{\link{stringi-search-fixed}}
+Other search_count: \code{\link{stri_count_boundaries}},
+ \code{\link{stri_count}}
Other search_locate: \code{\link{stri_locate_all_boundaries}},
\code{\link{stri_locate_all}}
-Other search_regex: \code{\link{stri_opts_regex}},
- \code{\link{stringi-search-regex}}
-
Other search_replace: \code{\link{stri_replace_all}},
\code{\link{stri_replace_na}},
\code{\link{stri_trim_both}}
@@ -86,6 +92,10 @@ Other search_split: \code{\link{stri_split_boundaries}},
Other search_subset: \code{\link{stri_subset}}
+Other search_extract: \code{\link{stri_extract_all_boundaries}},
+ \code{\link{stri_extract_all}},
+ \code{\link{stri_match_all}}
+
Other stringi_general_topics: \code{\link{stringi-arguments}},
\code{\link{stringi-encoding}},
\code{\link{stringi-locale}},
@@ -95,15 +105,4 @@ Other stringi_general_topics: \code{\link{stringi-arguments}},
\code{\link{stringi-search-coll}},
\code{\link{stringi-search-fixed}},
\code{\link{stringi-search-regex}}
-
-Other text_boundaries: \code{\link{stri_count_boundaries}},
- \code{\link{stri_extract_all_boundaries}},
- \code{\link{stri_locate_all_boundaries}},
- \code{\link{stri_opts_brkiter}},
- \code{\link{stri_split_boundaries}},
- \code{\link{stri_split_lines}},
- \code{\link{stri_trans_tolower}},
- \code{\link{stri_wrap}},
- \code{\link{stringi-search-boundaries}}
}
-
diff --git a/src/Makevars.in b/src/Makevars.in
index 24c0502..c08b5cf 100644
--- a/src/Makevars.in
+++ b/src/Makevars.in
@@ -1,5 +1,6 @@
## `stringi` Makevars
-## Copyright (C) 2013-2015, M. Gagolewski
+## Copyright (c) 2013-2017, M. Gagolewski
+## All rights reserved.
@STRINGI_CXXSTD@
diff --git a/src/Makevars.win b/src/Makevars.win
index 91b9c0c..332d191 100644
--- a/src/Makevars.win
+++ b/src/Makevars.win
@@ -1,5 +1,5 @@
## `stringi` Makevars.win
-## Copyright (C) 2013-2015, M. Gagolewski
+## Copyright (c) 2013-2017, M. Gagolewski
CXX_STD=CXX11
@@ -8,9 +8,9 @@ PKG_CPPFLAGS=-I. -Iicu55/ -Iicu55/unicode -Iicu55/common -Iicu55/i18n \
-DU_I18N_IMPLEMENTATION -DUCONFIG_USE_LOCAL \
-DU_TOOLUTIL_IMPLEMENTATION -DNDEBUG
-## There is a Cygwin bug, which reports "mem alloc error" while linking
+## There is a Cygwin bug which reports "mem alloc error" while linking
## too much .o files at once (I suppose this is the reason, at least).
-## Thus, below we split the process into 4 parts, using static libs.
+## Thus, below we split the process into a few parts using static libs.
## Voila, it's fixed.
STRI_SOURCES_CPP=$(wildcard stri_*.cpp)
diff --git a/src/install.libs.R.in b/src/install.libs.R.in
index a229d1d..fe48819 100644
--- a/src/install.libs.R.in
+++ b/src/install.libs.R.in
@@ -1,3 +1,7 @@
+## This file is part of the 'stringi' package for R.
+## Copyright (c) 2013-2017, Marek Gagolewski and other contributors.
+## All rights reserved.
+
# copy lib:
libfile <- paste("stringi", SHLIB_EXT, sep="")
dest <- file.path(R_PACKAGE_DIR, paste("libs", R_ARCH, sep=""))
diff --git a/src/stri_ICU_settings.cpp b/src/stri_ICU_settings.cpp
index e84d2d9..c32a568 100644
--- a/src/stri_ICU_settings.cpp
+++ b/src/stri_ICU_settings.cpp
@@ -1,5 +1,5 @@
/* This file is part of the 'stringi' package for R.
- * Copyright (C) 2013-2016, Marek Gagolewski and Bartek Tartanus
+ * Copyright (c) 2013-2017, Marek Gagolewski and other contributors.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/src/stri_TODO_justify.cpp b/src/stri_TODO_justify.cpp
index 31d84c4..7432233 100644
--- a/src/stri_TODO_justify.cpp
+++ b/src/stri_TODO_justify.cpp
@@ -1,5 +1,5 @@
/* This file is part of the 'stringi' package for R.
- * Copyright (C) 2013-2016, Marek Gagolewski and Bartek Tartanus
+ * Copyright (c) 2013-2017, Marek Gagolewski and other contributors.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/src/stri_TODO_splitpos.cpp b/src/stri_TODO_splitpos.cpp
index 94b3b86..900d01d 100644
--- a/src/stri_TODO_splitpos.cpp
+++ b/src/stri_TODO_splitpos.cpp
@@ -1,5 +1,5 @@
/* This file is part of the 'stringi' package for R.
- * Copyright (C) 2013-2016, Marek Gagolewski and Bartek Tartanus
+ * Copyright (c) 2013-2017, Marek Gagolewski and other contributors.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/src/stri_TODO_uchar.cpp b/src/stri_TODO_uchar.cpp
index 5354791..62085fa 100644
--- a/src/stri_TODO_uchar.cpp
+++ b/src/stri_TODO_uchar.cpp
@@ -1,5 +1,5 @@
/* This file is part of the 'stringi' package for R.
- * Copyright (C) 2013-2016, Marek Gagolewski and Bartek Tartanus
+ * Copyright (c) 2013-2017, Marek Gagolewski and other contributors.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/src/stri_brkiter.cpp b/src/stri_brkiter.cpp
index 90f434b..a2eed20 100644
--- a/src/stri_brkiter.cpp
+++ b/src/stri_brkiter.cpp
@@ -1,5 +1,5 @@
/* This file is part of the 'stringi' package for R.
- * Copyright (C) 2013-2016, Marek Gagolewski and Bartek Tartanus
+ * Copyright (c) 2013-2017, Marek Gagolewski and other contributors.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -259,7 +259,7 @@ bool StriRuleBasedBreakIterator::ignoreBoundary() {
if (skip_size <= 0) return false;
- int rule = rbiterator->getRuleStatus();
+ int rule = rbiterator->getRuleStatus(); /* this is ICU 52 */
for (int i=0; i<skip_size; i += 2) {
// skip_size is even - that's sure
if (rule >= skip_rules[i] && rule < skip_rules[i+1])
diff --git a/src/stri_brkiter.h b/src/stri_brkiter.h
index 6d3fe85..94116fa 100644
--- a/src/stri_brkiter.h
+++ b/src/stri_brkiter.h
@@ -1,5 +1,5 @@
/* This file is part of the 'stringi' package for R.
- * Copyright (C) 2013-2016, Marek Gagolewski and Bartek Tartanus
+ * Copyright (c) 2013-2017, Marek Gagolewski and other contributors.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -45,6 +45,8 @@
* A class to manage a break iterator's options
*
* @version 0.4-1 (Marek Gagolewski, 2014-12-02)
+ *
+ * @version 1.1.3 (Marek Gagolewski, 2017-01-07) UBRK_COUNT deprecated
*/
class StriBrkIterOptions {
protected:
@@ -59,7 +61,7 @@ class StriBrkIterOptions {
void setEmptyOpts() {
locale = NULL;
- type = UBRK_COUNT;
+ type = UBRK_CHARACTER;
skip_rules = NULL;
skip_size = 0;
}
@@ -90,8 +92,9 @@ class StriBrkIterOptions {
*
* @version 0.3-1 (Marek Gagolewski, 2014-10-30)
*
- * @version 0.4-1 (Marek Gagolewski, 2014-12-02)
- * separate class
+ * @version 0.4-1 (Marek Gagolewski, 2014-12-02) separate class
+ *
+ * @version 1.1.3 (Marek Gagolewski, 2017-01-07) UBRK_COUNT deprecated
*/
class StriUBreakIterator : public StriBrkIterOptions {
private:
@@ -104,10 +107,10 @@ class StriUBreakIterator : public StriBrkIterOptions {
#endif
UErrorCode status = U_ZERO_ERROR;
switch (type) {
- case UBRK_CHARACTER: // character [this is not documented]
+ case UBRK_CHARACTER: // character
uiterator = ubrk_open(UBRK_CHARACTER, locale, NULL, 0, &status);
break;
- case UBRK_LINE: // line_break [this is not documented]
+ case UBRK_LINE: // line_break
uiterator = ubrk_open(UBRK_LINE, locale, NULL, 0, &status);
break;
case UBRK_SENTENCE: // sentence
@@ -116,7 +119,6 @@ class StriUBreakIterator : public StriBrkIterOptions {
case UBRK_WORD: // word
uiterator = ubrk_open(UBRK_WORD, locale, NULL, 0, &status);
break;
- case UBRK_COUNT:
default:
throw StriException(MSG__INTERNAL_ERROR);
}
@@ -181,7 +183,7 @@ class StriUBreakIterator : public StriBrkIterOptions {
class StriRuleBasedBreakIterator : public StriBrkIterOptions {
private:
- RuleBasedBreakIterator* rbiterator;
+ BreakIterator* rbiterator;
UText* searchText;
R_len_t searchPos; // may be BreakIterator::DONE
const char* searchStr; // owned by caller
@@ -200,18 +202,17 @@ class StriRuleBasedBreakIterator : public StriBrkIterOptions {
Locale loc = Locale::createFromName(locale);
switch (type) {
case UBRK_CHARACTER: // character
- rbiterator = (RuleBasedBreakIterator*)BreakIterator::createCharacterInstance(loc, status);
+ rbiterator = (BreakIterator*)BreakIterator::createCharacterInstance(loc, status);
break;
case UBRK_LINE: // line_break
- rbiterator = (RuleBasedBreakIterator*)BreakIterator::createLineInstance(loc, status);
+ rbiterator = (BreakIterator*)BreakIterator::createLineInstance(loc, status);
break;
case UBRK_SENTENCE: // sentence
- rbiterator = (RuleBasedBreakIterator*)BreakIterator::createSentenceInstance(loc, status);
+ rbiterator = (BreakIterator*)BreakIterator::createSentenceInstance(loc, status);
break;
case UBRK_WORD: // word
- rbiterator = (RuleBasedBreakIterator*)BreakIterator::createWordInstance(loc, status);
+ rbiterator = (BreakIterator*)BreakIterator::createWordInstance(loc, status);
break;
- case UBRK_COUNT:
default:
throw StriException(MSG__INTERNAL_ERROR);
}
diff --git a/src/stri_bytesearch_matcher.h b/src/stri_bytesearch_matcher.h
index d6e8e4a..30ad40d 100644
--- a/src/stri_bytesearch_matcher.h
+++ b/src/stri_bytesearch_matcher.h
@@ -1,5 +1,5 @@
/* This file is part of the 'stringi' package for R.
- * Copyright (C) 2013-2016, Marek Gagolewski and Bartek Tartanus
+ * Copyright (c) 2013-2017, Marek Gagolewski and other contributors.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/src/stri_collator.cpp b/src/stri_collator.cpp
index 8a8b073..a12aba0 100644
--- a/src/stri_collator.cpp
+++ b/src/stri_collator.cpp
@@ -1,5 +1,5 @@
/* This file is part of the 'stringi' package for R.
- * Copyright (C) 2013-2016, Marek Gagolewski and Bartek Tartanus
+ * Copyright (c) 2013-2017, Marek Gagolewski and other contributors.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/src/stri_common.cpp b/src/stri_common.cpp
index e7538e5..b0f808a 100644
--- a/src/stri_common.cpp
+++ b/src/stri_common.cpp
@@ -1,5 +1,5 @@
/* This file is part of the 'stringi' package for R.
- * Copyright (C) 2013-2016, Marek Gagolewski and Bartek Tartanus
+ * Copyright (c) 2013-2017, Marek Gagolewski and other contributors.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/src/stri_compare.cpp b/src/stri_compare.cpp
index 2923cf8..cccd8e2 100644
--- a/src/stri_compare.cpp
+++ b/src/stri_compare.cpp
@@ -1,5 +1,5 @@
/* This file is part of the 'stringi' package for R.
- * Copyright (C) 2013-2016, Marek Gagolewski and Bartek Tartanus
+ * Copyright (c) 2013-2017, Marek Gagolewski and other contributors.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/src/stri_container_base.cpp b/src/stri_container_base.cpp
index 65af992..373f521 100644
--- a/src/stri_container_base.cpp
+++ b/src/stri_container_base.cpp
@@ -1,5 +1,5 @@
/* This file is part of the 'stringi' package for R.
- * Copyright (C) 2013-2016, Marek Gagolewski and Bartek Tartanus
+ * Copyright (c) 2013-2017, Marek Gagolewski and other contributors.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/src/stri_container_base.h b/src/stri_container_base.h
index 244e34b..7bf9a1c 100644
--- a/src/stri_container_base.h
+++ b/src/stri_container_base.h
@@ -1,5 +1,5 @@
/* This file is part of the 'stringi' package for R.
- * Copyright (C) 2013-2016, Marek Gagolewski and Bartek Tartanus
+ * Copyright (c) 2013-2017, Marek Gagolewski and other contributors.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/src/stri_container_bytesearch.cpp b/src/stri_container_bytesearch.cpp
index 4cb7502..e34a398 100644
--- a/src/stri_container_bytesearch.cpp
+++ b/src/stri_container_bytesearch.cpp
@@ -1,5 +1,5 @@
/* This file is part of the 'stringi' package for R.
- * Copyright (C) 2013-2016, Marek Gagolewski and Bartek Tartanus
+ * Copyright (c) 2013-2017, Marek Gagolewski and other contributors.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/src/stri_container_bytesearch.h b/src/stri_container_bytesearch.h
index 4e6da7b..24d6bf9 100644
--- a/src/stri_container_bytesearch.h
+++ b/src/stri_container_bytesearch.h
@@ -1,5 +1,5 @@
/* This file is part of the 'stringi' package for R.
- * Copyright (C) 2013-2016, Marek Gagolewski and Bartek Tartanus
+ * Copyright (c) 2013-2017, Marek Gagolewski and other contributors.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/src/stri_container_charclass.h b/src/stri_container_charclass.h
index e69d9db..99c34dc 100644
--- a/src/stri_container_charclass.h
+++ b/src/stri_container_charclass.h
@@ -1,5 +1,5 @@
/* This file is part of the 'stringi' package for R.
- * Copyright (C) 2013-2016, Marek Gagolewski and Bartek Tartanus
+ * Copyright (c) 2013-2017, Marek Gagolewski and other contributors.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/src/stri_container_double.h b/src/stri_container_double.h
index 6dc58ff..e7e19be 100644
--- a/src/stri_container_double.h
+++ b/src/stri_container_double.h
@@ -1,5 +1,5 @@
/* This file is part of the 'stringi' package for R.
- * Copyright (C) 2013-2016, Marek Gagolewski and Bartek Tartanus
+ * Copyright (c) 2013-2017, Marek Gagolewski and other contributors.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/src/stri_container_integer.h b/src/stri_container_integer.h
index 6f70d6f..e9026bd 100644
--- a/src/stri_container_integer.h
+++ b/src/stri_container_integer.h
@@ -1,5 +1,5 @@
/* This file is part of the 'stringi' package for R.
- * Copyright (C) 2013-2016, Marek Gagolewski and Bartek Tartanus
+ * Copyright (c) 2013-2017, Marek Gagolewski and other contributors.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/src/stri_container_listint.cpp b/src/stri_container_listint.cpp
index 7d4f192..5fa4341 100644
--- a/src/stri_container_listint.cpp
+++ b/src/stri_container_listint.cpp
@@ -1,5 +1,5 @@
/* This file is part of the 'stringi' package for R.
- * Copyright (C) 2013-2016, Marek Gagolewski and Bartek Tartanus
+ * Copyright (c) 2013-2017, Marek Gagolewski and other contributors.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/src/stri_container_listint.h b/src/stri_container_listint.h
index 8fb4a4d..83369c9 100644
--- a/src/stri_container_listint.h
+++ b/src/stri_container_listint.h
@@ -1,5 +1,5 @@
/* This file is part of the 'stringi' package for R.
- * Copyright (C) 2013-2016, Marek Gagolewski and Bartek Tartanus
+ * Copyright (c) 2013-2017, Marek Gagolewski and other contributors.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/src/stri_container_listraw.cpp b/src/stri_container_listraw.cpp
index 29075ce..ea737d3 100644
--- a/src/stri_container_listraw.cpp
+++ b/src/stri_container_listraw.cpp
@@ -1,5 +1,5 @@
/* This file is part of the 'stringi' package for R.
- * Copyright (C) 2013-2016, Marek Gagolewski and Bartek Tartanus
+ * Copyright (c) 2013-2017, Marek Gagolewski and other contributors.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/src/stri_container_listraw.h b/src/stri_container_listraw.h
index 5047c5c..0e9329a 100644
--- a/src/stri_container_listraw.h
+++ b/src/stri_container_listraw.h
@@ -1,5 +1,5 @@
/* This file is part of the 'stringi' package for R.
- * Copyright (C) 2013-2016, Marek Gagolewski and Bartek Tartanus
+ * Copyright (c) 2013-2017, Marek Gagolewski and other contributors.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/src/stri_container_listutf8.cpp b/src/stri_container_listutf8.cpp
index f02a1f4..fd83fac 100644
--- a/src/stri_container_listutf8.cpp
+++ b/src/stri_container_listutf8.cpp
@@ -1,5 +1,5 @@
/* This file is part of the 'stringi' package for R.
- * Copyright (C) 2013-2016, Marek Gagolewski and Bartek Tartanus
+ * Copyright (c) 2013-2017, Marek Gagolewski and other contributors.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/src/stri_container_listutf8.h b/src/stri_container_listutf8.h
index 5919e8d..9f7991b 100644
--- a/src/stri_container_listutf8.h
+++ b/src/stri_container_listutf8.h
@@ -1,5 +1,5 @@
/* This file is part of the 'stringi' package for R.
- * Copyright (C) 2013-2016, Marek Gagolewski and Bartek Tartanus
+ * Copyright (c) 2013-2017, Marek Gagolewski and other contributors.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/src/stri_container_logical.h b/src/stri_container_logical.h
index 1f5d049..65c3794 100644
--- a/src/stri_container_logical.h
+++ b/src/stri_container_logical.h
@@ -1,5 +1,5 @@
/* This file is part of the 'stringi' package for R.
- * Copyright (C) 2013-2016, Marek Gagolewski and Bartek Tartanus
+ * Copyright (c) 2013-2017, Marek Gagolewski and other contributors.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/src/stri_container_regex.cpp b/src/stri_container_regex.cpp
index 83e7dc5..178b470 100644
--- a/src/stri_container_regex.cpp
+++ b/src/stri_container_regex.cpp
@@ -1,5 +1,5 @@
/* This file is part of the 'stringi' package for R.
- * Copyright (C) 2013-2016, Marek Gagolewski and Bartek Tartanus
+ * Copyright (c) 2013-2017, Marek Gagolewski and other contributors.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/src/stri_container_regex.h b/src/stri_container_regex.h
index 22792b4..72bdf46 100644
--- a/src/stri_container_regex.h
+++ b/src/stri_container_regex.h
@@ -1,5 +1,5 @@
/* This file is part of the 'stringi' package for R.
- * Copyright (C) 2013-2016, Marek Gagolewski and Bartek Tartanus
+ * Copyright (c) 2013-2017, Marek Gagolewski and other contributors.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/src/stri_container_usearch.cpp b/src/stri_container_usearch.cpp
index 3c04030..eba87cc 100644
--- a/src/stri_container_usearch.cpp
+++ b/src/stri_container_usearch.cpp
@@ -1,5 +1,5 @@
/* This file is part of the 'stringi' package for R.
- * Copyright (C) 2013-2016, Marek Gagolewski and Bartek Tartanus
+ * Copyright (c) 2013-2017, Marek Gagolewski and other contributors.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/src/stri_container_usearch.h b/src/stri_container_usearch.h
index 43f771b..e4a2f90 100644
--- a/src/stri_container_usearch.h
+++ b/src/stri_container_usearch.h
@@ -1,5 +1,5 @@
/* This file is part of the 'stringi' package for R.
- * Copyright (C) 2013-2016, Marek Gagolewski and Bartek Tartanus
+ * Copyright (c) 2013-2017, Marek Gagolewski and other contributors.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/src/stri_container_utf16.cpp b/src/stri_container_utf16.cpp
index e647bb2..325cb58 100644
--- a/src/stri_container_utf16.cpp
+++ b/src/stri_container_utf16.cpp
@@ -1,5 +1,5 @@
/* This file is part of the 'stringi' package for R.
- * Copyright (C) 2013-2016, Marek Gagolewski and Bartek Tartanus
+ * Copyright (c) 2013-2017, Marek Gagolewski and other contributors.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/src/stri_container_utf16.h b/src/stri_container_utf16.h
index 2d85424..ae8db99 100644
--- a/src/stri_container_utf16.h
+++ b/src/stri_container_utf16.h
@@ -1,5 +1,5 @@
/* This file is part of the 'stringi' package for R.
- * Copyright (C) 2013-2016, Marek Gagolewski and Bartek Tartanus
+ * Copyright (c) 2013-2017, Marek Gagolewski and other contributors.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/src/stri_container_utf8.cpp b/src/stri_container_utf8.cpp
index e1a812f..edad421 100644
--- a/src/stri_container_utf8.cpp
+++ b/src/stri_container_utf8.cpp
@@ -1,5 +1,5 @@
/* This file is part of the 'stringi' package for R.
- * Copyright (C) 2013-2016, Marek Gagolewski and Bartek Tartanus
+ * Copyright (c) 2013-2017, Marek Gagolewski and other contributors.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/src/stri_container_utf8.h b/src/stri_container_utf8.h
index 9b4ae65..a25b0ec 100644
--- a/src/stri_container_utf8.h
+++ b/src/stri_container_utf8.h
@@ -1,5 +1,5 @@
/* This file is part of the 'stringi' package for R.
- * Copyright (C) 2013-2016, Marek Gagolewski and Bartek Tartanus
+ * Copyright (c) 2013-2017, Marek Gagolewski and other contributors.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/src/stri_container_utf8_indexable.cpp b/src/stri_container_utf8_indexable.cpp
index 1c52938..3f9950d 100644
--- a/src/stri_container_utf8_indexable.cpp
+++ b/src/stri_container_utf8_indexable.cpp
@@ -1,5 +1,5 @@
/* This file is part of the 'stringi' package for R.
- * Copyright (C) 2013-2016, Marek Gagolewski and Bartek Tartanus
+ * Copyright (c) 2013-2017, Marek Gagolewski and other contributors.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -117,6 +117,9 @@ StriContainerUTF8_indexable& StriContainerUTF8_indexable::operator=(StriContaine
*
* @version 0.5-1 (Marek Gagolewski, 2015-02-14)
* use String8::isASCII
+ *
+ * @version 1.1.3 (Marek Gagolewski, 2017-03-21)
+ * Issue#227: buffering bug in stri_sub
*/
R_len_t StriContainerUTF8_indexable::UChar32_to_UTF8_index_back(R_len_t i, R_len_t wh)
{
@@ -172,7 +175,7 @@ R_len_t StriContainerUTF8_indexable::UChar32_to_UTF8_index_back(R_len_t i, R_len
++j;
}
- last_ind_back_codepoint = wh;
+ last_ind_back_codepoint = j; // it's not wh, as we can advance at the end of the string, compare #227
last_ind_back_utf8 = jres;
return jres;
@@ -201,6 +204,9 @@ R_len_t StriContainerUTF8_indexable::UChar32_to_UTF8_index_back(R_len_t i, R_len
*
* @version 0.5-1 (Marek Gagolewski, 2015-02-14)
* use String8::isASCII
+ *
+ * @version 1.1.3 (Marek Gagolewski, 2017-03-21)
+ * Issue#227: buffering bug in stri_sub
*/
R_len_t StriContainerUTF8_indexable::UChar32_to_UTF8_index_fwd(R_len_t i, R_len_t wh)
{
@@ -257,7 +263,7 @@ R_len_t StriContainerUTF8_indexable::UChar32_to_UTF8_index_fwd(R_len_t i, R_len_
++j;
}
- last_ind_fwd_codepoint = wh;
+ last_ind_fwd_codepoint = j; // it's not wh, as we can advance at the end of the string, compare #227
last_ind_fwd_utf8 = jres;
return jres;
}
diff --git a/src/stri_container_utf8_indexable.h b/src/stri_container_utf8_indexable.h
index ce1095f..2bb6da2 100644
--- a/src/stri_container_utf8_indexable.h
+++ b/src/stri_container_utf8_indexable.h
@@ -1,5 +1,5 @@
/* This file is part of the 'stringi' package for R.
- * Copyright (C) 2013-2016, Marek Gagolewski and Bartek Tartanus
+ * Copyright (c) 2013-2017, Marek Gagolewski and other contributors.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/src/stri_encoding_conversion.cpp b/src/stri_encoding_conversion.cpp
index fa726e3..a2a189e 100644
--- a/src/stri_encoding_conversion.cpp
+++ b/src/stri_encoding_conversion.cpp
@@ -1,5 +1,5 @@
/* This file is part of the 'stringi' package for R.
- * Copyright (C) 2013-2016, Marek Gagolewski and Bartek Tartanus
+ * Copyright (c) 2013-2017, Marek Gagolewski and other contributors.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/src/stri_encoding_detection.cpp b/src/stri_encoding_detection.cpp
index d2835e1..83e20a8 100644
--- a/src/stri_encoding_detection.cpp
+++ b/src/stri_encoding_detection.cpp
@@ -1,5 +1,5 @@
/* This file is part of the 'stringi' package for R.
- * Copyright (C) 2013-2016, Marek Gagolewski and Bartek Tartanus
+ * Copyright (c) 2013-2017, Marek Gagolewski and other contributors.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/src/stri_encoding_management.cpp b/src/stri_encoding_management.cpp
index a439a68..acb6c12 100644
--- a/src/stri_encoding_management.cpp
+++ b/src/stri_encoding_management.cpp
@@ -1,5 +1,5 @@
/* This file is part of the 'stringi' package for R.
- * Copyright (C) 2013-2016, Marek Gagolewski and Bartek Tartanus
+ * Copyright (c) 2013-2017, Marek Gagolewski and other contributors.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -66,6 +66,14 @@ SEXP stri_enc_set(SEXP enc)
// get "official" encoding name:
const char* name = ucnv_getName(uconv, &status);
STRI__CHECKICUSTATUS_THROW(status, {/* do nothing special on err */})
+
+ /*
+ DO NOT call this function when ANY ICU function is being used
+ from more than one thread! This function sets the current default
+ converter name. If this function needs to be called, it should be
+ called during application initialization.
+ Do not use unless you know what you are doing.
+ */
ucnv_setDefaultName(name); // set as default
return R_NilValue;
diff --git a/src/stri_escape.cpp b/src/stri_escape.cpp
index e783570..91c8fcd 100644
--- a/src/stri_escape.cpp
+++ b/src/stri_escape.cpp
@@ -1,5 +1,5 @@
/* This file is part of the 'stringi' package for R.
- * Copyright (C) 2013-2016, Marek Gagolewski and Bartek Tartanus
+ * Copyright (c) 2013-2017, Marek Gagolewski and other contributors.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/src/stri_exception.cpp b/src/stri_exception.cpp
index 03c03e9..b2ae347 100644
--- a/src/stri_exception.cpp
+++ b/src/stri_exception.cpp
@@ -1,5 +1,5 @@
/* This file is part of the 'stringi' package for R.
- * Copyright (C) 2013-2016, Marek Gagolewski and Bartek Tartanus
+ * Copyright (c) 2013-2017, Marek Gagolewski and other contributors.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -42,11 +42,12 @@
*
* @version 0.4-1 (Marek Gagolewski, 2014-11-30)
* ICU warning info added
+ *
+ * @version 1.1.2 (Marek Gagolewski, 2017-01-07) _LIMIT, _COUNT deprecated
*/
const char* StriException::getICUerrorName(UErrorCode status)
{
- if (status <= U_ERROR_WARNING_LIMIT) {
- switch(status) {
+ switch(status) {
case U_USING_FALLBACK_WARNING:
return "A resource bundle lookup returned a fallback result. (not an error)";
case U_USING_DEFAULT_WARNING:
@@ -65,279 +66,276 @@ const char* StriException::getICUerrorName(UErrorCode status)
return "ucol_open encountered a mismatch between UCA version and collator image version, so the collator was constructed from rules. No impact to further function.";
case U_PLUGIN_CHANGED_LEVEL_WARNING:
return "A plugin caused a level change. May not be an error, but later plugins may not load.";
- // case U_ERROR_WARNING_LIMIT:
- // return "This must always be the last warning value to indicate the limit for UErrorCode warnings (last warning code +1)";
- default:
- return "Unknown ICU warning.";
- }
- }
- else {
- switch(status) {
- case U_ZERO_ERROR:
- return "No error, no warning [THIS IS A BUG].";
- case U_ILLEGAL_ARGUMENT_ERROR:
- return "Start of codes indicating failure.";
- case U_MISSING_RESOURCE_ERROR:
- return "The requested ICU resource cannot be found.";
- case U_INVALID_FORMAT_ERROR:
- return "Data format is not what is expected.";
- case U_FILE_ACCESS_ERROR: // udata.cpp only
- return "The requested ICU resource file cannot be found.";
- case U_INTERNAL_PROGRAM_ERROR:
- return "Internal ICU error, might be a bug in the library code.";
- case U_MESSAGE_PARSE_ERROR:
- return "Unable to parse a message (message format).";
- case U_MEMORY_ALLOCATION_ERROR:
- return "Memory allocation error.";
- case U_INDEX_OUTOFBOUNDS_ERROR:
- return "Trying to access the index that is out of bounds.";
- case U_PARSE_ERROR:
- return "ICU Parse error.";
- case U_INVALID_CHAR_FOUND:
- return "Character conversion: Unmappable input sequence / Invalid character.";
- case U_TRUNCATED_CHAR_FOUND:
- return "Character conversion: Incomplete input sequence.";
- case U_ILLEGAL_CHAR_FOUND:
- return "Character conversion: Illegal input sequence/combination of input units.";
- case U_INVALID_TABLE_FORMAT:
- return "Conversion table file found, but corrupted.";
- case U_INVALID_TABLE_FILE:
- return "Conversion table file not found.";
- case U_BUFFER_OVERFLOW_ERROR:
- return "A result would not fit in the supplied buffer.";
- case U_UNSUPPORTED_ERROR:
- return "Requested operation not supported in current context.";
- case U_RESOURCE_TYPE_MISMATCH:
- return "An operation is requested over a resource that does not support it";
- case U_ILLEGAL_ESCAPE_SEQUENCE:
- return "ISO-2022 illlegal escape sequence.";
- case U_UNSUPPORTED_ESCAPE_SEQUENCE:
- return "ISO-2022 unsupported escape sequence.";
- case U_NO_SPACE_AVAILABLE:
- return "No space available for in-buffer expansion for Arabic shaping.";
- case U_CE_NOT_FOUND_ERROR:
- return "Currently used only while setting variable top, but can be used generally.";
- case U_PRIMARY_TOO_LONG_ERROR:
- return "User tried to set variable top to a primary that is longer than two bytes.";
- case U_STATE_TOO_OLD_ERROR:
- return "ICU cannot construct a service from this state, as it is no longer supported.";
- case U_TOO_MANY_ALIASES_ERROR:
- return "There are too many aliases in the path to the requested resource. It is very possible that a circular alias definition has occured";
- case U_ENUM_OUT_OF_SYNC_ERROR:
- return "UEnumeration out of sync with underlying collection.";
- case U_INVARIANT_CONVERSION_ERROR:
- return "Unable to convert a UChar* string to char* with the invariant converter.";
- case U_INVALID_STATE_ERROR:
- return "Requested operation can not be completed with ICU in its current state.";
- case U_COLLATOR_VERSION_MISMATCH:
- return "Collator version is not compatible with the base version.";
- case U_USELESS_COLLATOR_ERROR:
- return "Collator is options only and no base is specified.";
- case U_NO_WRITE_PERMISSION:
- return "Attempt to modify read-only or constant data.";
- case U_STANDARD_ERROR_LIMIT:
- return "This must always be the last value to indicate the limit for standard errors.";
- case U_BAD_VARIABLE_DEFINITION:
- return "Missing '$' or duplicate variable name.";
- // case U_PARSE_ERROR_START:
- // return "Start of Transliterator errors.";
- case U_MALFORMED_RULE:
- return "Elements of a rule are misplaced.";
- case U_MALFORMED_SET:
- return "A UnicodeSet pattern is invalid.";
- // case U_MALFORMED_SYMBOL_REFERENCE:
- // return "UNUSED as of ICU 2.4.";
- case U_MALFORMED_UNICODE_ESCAPE:
- return "A Unicode escape pattern is invalid.";
- case U_MALFORMED_VARIABLE_DEFINITION:
- return "A variable definition is invalid.";
- case U_MALFORMED_VARIABLE_REFERENCE:
- return "A variable reference is invalid.";
- // case U_MISMATCHED_SEGMENT_DELIMITERS:
- // return "UNUSED as of ICU 2.4.";
- case U_MISPLACED_ANCHOR_START:
- return "A start anchor appears at an illegal position.";
- case U_MISPLACED_CURSOR_OFFSET:
- return "A cursor offset occurs at an illegal position.";
- case U_MISPLACED_QUANTIFIER:
- return "A quantifier appears after a segment close delimiter.";
- case U_MISSING_OPERATOR:
- return "A rule contains no operator.";
- // case U_MISSING_SEGMENT_CLOSE:
- // return "UNUSED as of ICU 2.4.";
- case U_MULTIPLE_ANTE_CONTEXTS:
- return "More than one ante context.";
- case U_MULTIPLE_CURSORS:
- return "More than one cursor.";
- case U_MULTIPLE_POST_CONTEXTS:
- return "More than one post context.";
- case U_TRAILING_BACKSLASH:
- return "A dangling backslash.";
- case U_UNDEFINED_SEGMENT_REFERENCE:
- return "A segment reference does not correspond to a defined segment.";
- case U_UNDEFINED_VARIABLE:
- return "A variable reference does not correspond to a defined variable.";
- case U_UNQUOTED_SPECIAL:
- return "A special character was not quoted or escaped.";
- case U_UNTERMINATED_QUOTE:
- return "A closing single quote is missing.";
- case U_RULE_MASK_ERROR:
- return "A rule is hidden by an earlier more general rule.";
- case U_MISPLACED_COMPOUND_FILTER:
- return "A compound filter is in an invalid location.";
- case U_MULTIPLE_COMPOUND_FILTERS:
- return "More than one compound filter.";
- case U_INVALID_RBT_SYNTAX:
- return "A '::id' rule was passed to the RuleBasedTransliterator parser.";
- // case U_INVALID_PROPERTY_PATTERN:
- // return "UNUSED as of ICU 2.4.";
- case U_MALFORMED_PRAGMA:
- return "A 'use' pragma is invlalid.";
- case U_UNCLOSED_SEGMENT:
- return "A closing ')' is missing.";
- // case U_ILLEGAL_CHAR_IN_SEGMENT:
- // return "UNUSED as of ICU 2.4.";
- case U_VARIABLE_RANGE_EXHAUSTED:
- return "Too many stand-ins generated for the given variable range.";
- case U_VARIABLE_RANGE_OVERLAP:
- return "The variable range overlaps characters used in rules.";
- case U_ILLEGAL_CHARACTER:
- return "A special character is outside its allowed context.";
- case U_INTERNAL_TRANSLITERATOR_ERROR:
- return "Internal transliterator system error.";
- case U_INVALID_ID:
- return "A '::id' rule specifies an unknown transliterator.";
- case U_INVALID_FUNCTION:
- return "A '&fn()' rule specifies an unknown transliterator.";
- case U_PARSE_ERROR_LIMIT:
- return "The limit for Transliterator errors.";
- case U_UNEXPECTED_TOKEN:
- return "Syntax error in format pattern.";
- // case U_FMT_PARSE_ERROR_START:
- // return "Start of format library errors.";
- case U_MULTIPLE_DECIMAL_SEPARATORS:
- // case U_MULTIPLE_DECIMAL_SEPERATORS:
- return "More than one decimal separator in number pattern.";
- case U_MULTIPLE_EXPONENTIAL_SYMBOLS:
- return "More than one exponent symbol in number pattern.";
- case U_MALFORMED_EXPONENTIAL_PATTERN:
- return "Grouping symbol in exponent pattern.";
- case U_MULTIPLE_PERCENT_SYMBOLS:
- return "More than one percent symbol in number pattern.";
- case U_MULTIPLE_PERMILL_SYMBOLS:
- return "More than one permill symbol in number pattern.";
- case U_MULTIPLE_PAD_SPECIFIERS:
- return "More than one pad symbol in number pattern.";
- case U_PATTERN_SYNTAX_ERROR:
- return "Syntax error in format pattern.";
- case U_ILLEGAL_PAD_POSITION:
- return "Pad symbol misplaced in number pattern.";
- case U_UNMATCHED_BRACES:
- return "Braces do not match in message pattern.";
- // case U_UNSUPPORTED_PROPERTY:
- // return "UNUSED as of ICU 2.4.";
- // case U_UNSUPPORTED_ATTRIBUTE:
- // return "UNUSED as of ICU 2.4.";
- case U_ARGUMENT_TYPE_MISMATCH:
- return "Argument name and argument index mismatch in MessageFormat functions.";
- case U_DUPLICATE_KEYWORD:
- return "Duplicate keyword in PluralFormat.";
- case U_UNDEFINED_KEYWORD:
- return "Undefined Plural keyword.";
- case U_DEFAULT_KEYWORD_MISSING:
- return "Missing DEFAULT rule in plural rules.";
- case U_DECIMAL_NUMBER_SYNTAX_ERROR:
- return "Decimal number syntax error.";
- case U_FORMAT_INEXACT_ERROR:
- return "Cannot format a number exactly and rounding mode is ROUND_UNNECESSARY.";
- case U_FMT_PARSE_ERROR_LIMIT:
- return "The limit for format library errors.";
- case U_BRK_INTERNAL_ERROR:
- return "An internal error (bug) was detected in ICU.";
- // case U_BRK_ERROR_START:
- // return "Start of codes indicating Break Iterator failures.";
- case U_BRK_HEX_DIGITS_EXPECTED:
- return "Hex digits expected as part of a escaped char in a rule.";
- case U_BRK_SEMICOLON_EXPECTED:
- return "Missing ';' at the end of a RBBI rule.";
- case U_BRK_RULE_SYNTAX:
- return "Syntax error in RBBI rule.";
- case U_BRK_UNCLOSED_SET:
- return "UnicodeSet witing an RBBI rule missing a closing ']'.";
- case U_BRK_ASSIGN_ERROR:
- return "Syntax error in RBBI rule assignment statement.";
- case U_BRK_VARIABLE_REDFINITION:
- return "RBBI rule $Variable redefined.";
- case U_BRK_MISMATCHED_PAREN:
- return "Mis-matched parentheses in an RBBI rule.";
- case U_BRK_NEW_LINE_IN_QUOTED_STRING:
- return "Missing closing quote in an RBBI rule.";
- case U_BRK_UNDEFINED_VARIABLE:
- return "Use of an undefined $Variable in an RBBI rule.";
- case U_BRK_INIT_ERROR:
- return "Initialization failure. Probable missing ICU Data.";
- case U_BRK_RULE_EMPTY_SET:
- return "Rule contains an empty Unicode Set.";
- case U_BRK_UNRECOGNIZED_OPTION:
- return "!!option in RBBI rules not recognized.";
- case U_BRK_MALFORMED_RULE_TAG:
- return "The {nnn} tag on a rule is mal formed.";
- case U_BRK_ERROR_LIMIT:
- return "This must always be the last value to indicate the limit for Break Iterator failures.";
- case U_REGEX_INTERNAL_ERROR:
- return "An internal error (bug) was detected in ICU.";
- // case U_REGEX_ERROR_START:
- // return "Start of codes indicating Regexp failures.";
- case U_REGEX_RULE_SYNTAX:
- return "Syntax error in regexp pattern.";
- case U_REGEX_INVALID_STATE:
- return "RegexMatcher in invalid state for requested operation.";
- case U_REGEX_BAD_ESCAPE_SEQUENCE:
- return "Unrecognized backslash escape sequence in pattern.";
- case U_REGEX_PROPERTY_SYNTAX:
- return "Incorrect Unicode property.";
- case U_REGEX_UNIMPLEMENTED:
- return "Use of regexp feature that is not yet implemented.";
- case U_REGEX_MISMATCHED_PAREN:
- return "Incorrectly nested parentheses in regexp pattern.";
- case U_REGEX_NUMBER_TOO_BIG:
- return "Decimal number is too large.";
- case U_REGEX_BAD_INTERVAL:
- return "Error in {min,max} interval.";
- case U_REGEX_MAX_LT_MIN:
- return "In {min,max}, max is less than min.";
- case U_REGEX_INVALID_BACK_REF:
- return "Back-reference to a non-existent capture group.";
- case U_REGEX_INVALID_FLAG:
- return "Invalid value for match mode flags.";
- case U_REGEX_LOOK_BEHIND_LIMIT:
- return "Look-Behind pattern matches must have a bounded maximum length.";
- case U_REGEX_SET_CONTAINS_STRING:
- return "Regexps cannot have UnicodeSets containing strings.";
+ case U_ZERO_ERROR:
+ return "No error, no warning (why stringi reports that??? file a bug report, please)";
+ case U_ILLEGAL_ARGUMENT_ERROR:
+ return "Start of codes indicating failure.";
+ case U_MISSING_RESOURCE_ERROR:
+ return "The requested ICU resource cannot be found.";
+ case U_INVALID_FORMAT_ERROR:
+ return "Data format is not what is expected.";
+ case U_FILE_ACCESS_ERROR: // udata.cpp only
+ return "The requested ICU resource file cannot be found.";
+ case U_INTERNAL_PROGRAM_ERROR:
+ return "Internal ICU error, might be a bug in the library code.";
+ case U_MESSAGE_PARSE_ERROR:
+ return "Unable to parse a message (message format).";
+ case U_MEMORY_ALLOCATION_ERROR:
+ return "Memory allocation error.";
+ case U_INDEX_OUTOFBOUNDS_ERROR:
+ return "Trying to access the index that is out of bounds.";
+ case U_PARSE_ERROR:
+ return "ICU Parse error.";
+ case U_INVALID_CHAR_FOUND:
+ return "Character conversion: Unmappable input sequence / Invalid character.";
+ case U_TRUNCATED_CHAR_FOUND:
+ return "Character conversion: Incomplete input sequence.";
+ case U_ILLEGAL_CHAR_FOUND:
+ return "Character conversion: Illegal input sequence/combination of input units.";
+ case U_INVALID_TABLE_FORMAT:
+ return "Conversion table file found, but corrupted.";
+ case U_INVALID_TABLE_FILE:
+ return "Conversion table file not found.";
+ case U_BUFFER_OVERFLOW_ERROR:
+ return "A result would not fit in the supplied buffer.";
+ case U_UNSUPPORTED_ERROR:
+ return "Requested operation not supported in current context.";
+ case U_RESOURCE_TYPE_MISMATCH:
+ return "An operation is requested over a resource that does not support it";
+ case U_ILLEGAL_ESCAPE_SEQUENCE:
+ return "ISO-2022 illlegal escape sequence.";
+ case U_UNSUPPORTED_ESCAPE_SEQUENCE:
+ return "ISO-2022 unsupported escape sequence.";
+ case U_NO_SPACE_AVAILABLE:
+ return "No space available for in-buffer expansion for Arabic shaping.";
+ case U_CE_NOT_FOUND_ERROR:
+ return "Currently used only while setting variable top, but can be used generally.";
+ case U_PRIMARY_TOO_LONG_ERROR:
+ return "User tried to set variable top to a primary that is longer than two bytes.";
+ case U_STATE_TOO_OLD_ERROR:
+ return "ICU cannot construct a service from this state, as it is no longer supported.";
+ case U_TOO_MANY_ALIASES_ERROR:
+ return "There are too many aliases in the path to the requested resource. It is very possible that a circular alias definition has occured";
+ case U_ENUM_OUT_OF_SYNC_ERROR:
+ return "UEnumeration out of sync with underlying collection.";
+ case U_INVARIANT_CONVERSION_ERROR:
+ return "Unable to convert a UChar* string to char* with the invariant converter.";
+ case U_INVALID_STATE_ERROR:
+ return "Requested operation can not be completed with ICU in its current state.";
+ case U_COLLATOR_VERSION_MISMATCH:
+ return "Collator version is not compatible with the base version.";
+ case U_USELESS_COLLATOR_ERROR:
+ return "Collator is options only and no base is specified.";
+ case U_NO_WRITE_PERMISSION:
+ return "Attempt to modify read-only or constant data.";
+ // case U_STANDARD_ERROR_LIMIT:
+ // return "This must always be the last value to indicate the limit for standard errors.";
+ case U_BAD_VARIABLE_DEFINITION:
+ return "Missing '$' or duplicate variable name.";
+// case U_PARSE_ERROR_START:
+// return "Start of Transliterator errors.";
+ case U_MALFORMED_RULE:
+ return "Elements of a rule are misplaced.";
+ case U_MALFORMED_SET:
+ return "A UnicodeSet pattern is invalid.";
+// case U_MALFORMED_SYMBOL_REFERENCE:
+// return "UNUSED as of ICU 2.4.";
+ case U_MALFORMED_UNICODE_ESCAPE:
+ return "A Unicode escape pattern is invalid.";
+ case U_MALFORMED_VARIABLE_DEFINITION:
+ return "A variable definition is invalid.";
+ case U_MALFORMED_VARIABLE_REFERENCE:
+ return "A variable reference is invalid.";
+// case U_MISMATCHED_SEGMENT_DELIMITERS:
+// return "UNUSED as of ICU 2.4.";
+ case U_MISPLACED_ANCHOR_START:
+ return "A start anchor appears at an illegal position.";
+ case U_MISPLACED_CURSOR_OFFSET:
+ return "A cursor offset occurs at an illegal position.";
+ case U_MISPLACED_QUANTIFIER:
+ return "A quantifier appears after a segment close delimiter.";
+ case U_MISSING_OPERATOR:
+ return "A rule contains no operator.";
+// case U_MISSING_SEGMENT_CLOSE:
+// return "UNUSED as of ICU 2.4.";
+ case U_MULTIPLE_ANTE_CONTEXTS:
+ return "More than one ante context.";
+ case U_MULTIPLE_CURSORS:
+ return "More than one cursor.";
+ case U_MULTIPLE_POST_CONTEXTS:
+ return "More than one post context.";
+ case U_TRAILING_BACKSLASH:
+ return "A dangling backslash.";
+ case U_UNDEFINED_SEGMENT_REFERENCE:
+ return "A segment reference does not correspond to a defined segment.";
+ case U_UNDEFINED_VARIABLE:
+ return "A variable reference does not correspond to a defined variable.";
+ case U_UNQUOTED_SPECIAL:
+ return "A special character was not quoted or escaped.";
+ case U_UNTERMINATED_QUOTE:
+ return "A closing single quote is missing.";
+ case U_RULE_MASK_ERROR:
+ return "A rule is hidden by an earlier more general rule.";
+ case U_MISPLACED_COMPOUND_FILTER:
+ return "A compound filter is in an invalid location.";
+ case U_MULTIPLE_COMPOUND_FILTERS:
+ return "More than one compound filter.";
+ case U_INVALID_RBT_SYNTAX:
+ return "A '::id' rule was passed to the RuleBasedTransliterator parser.";
+// case U_INVALID_PROPERTY_PATTERN:
+// return "UNUSED as of ICU 2.4.";
+ case U_MALFORMED_PRAGMA:
+ return "A 'use' pragma is invlalid.";
+ case U_UNCLOSED_SEGMENT:
+ return "A closing ')' is missing.";
+// case U_ILLEGAL_CHAR_IN_SEGMENT:
+// return "UNUSED as of ICU 2.4.";
+ case U_VARIABLE_RANGE_EXHAUSTED:
+ return "Too many stand-ins generated for the given variable range.";
+ case U_VARIABLE_RANGE_OVERLAP:
+ return "The variable range overlaps characters used in rules.";
+ case U_ILLEGAL_CHARACTER:
+ return "A special character is outside its allowed context.";
+ case U_INTERNAL_TRANSLITERATOR_ERROR:
+ return "Internal transliterator system error.";
+ case U_INVALID_ID:
+ return "A '::id' rule specifies an unknown transliterator.";
+ case U_INVALID_FUNCTION:
+ return "A '&fn()' rule specifies an unknown transliterator.";
+ // case U_PARSE_ERROR_LIMIT:
+ // return "The limit for Transliterator errors.";
+ case U_UNEXPECTED_TOKEN:
+ return "Syntax error in format pattern.";
+// case U_FMT_PARSE_ERROR_START:
+// return "Start of format library errors.";
+ case U_MULTIPLE_DECIMAL_SEPARATORS:
+// case U_MULTIPLE_DECIMAL_SEPERATORS:
+ return "More than one decimal separator in number pattern.";
+ case U_MULTIPLE_EXPONENTIAL_SYMBOLS:
+ return "More than one exponent symbol in number pattern.";
+ case U_MALFORMED_EXPONENTIAL_PATTERN:
+ return "Grouping symbol in exponent pattern.";
+ case U_MULTIPLE_PERCENT_SYMBOLS:
+ return "More than one percent symbol in number pattern.";
+ case U_MULTIPLE_PERMILL_SYMBOLS:
+ return "More than one permill symbol in number pattern.";
+ case U_MULTIPLE_PAD_SPECIFIERS:
+ return "More than one pad symbol in number pattern.";
+ case U_PATTERN_SYNTAX_ERROR:
+ return "Syntax error in format pattern.";
+ case U_ILLEGAL_PAD_POSITION:
+ return "Pad symbol misplaced in number pattern.";
+ case U_UNMATCHED_BRACES:
+ return "Braces do not match in message pattern.";
+// case U_UNSUPPORTED_PROPERTY:
+// return "UNUSED as of ICU 2.4.";
+// case U_UNSUPPORTED_ATTRIBUTE:
+// return "UNUSED as of ICU 2.4.";
+ case U_ARGUMENT_TYPE_MISMATCH:
+ return "Argument name and argument index mismatch in MessageFormat functions.";
+ case U_DUPLICATE_KEYWORD:
+ return "Duplicate keyword in PluralFormat.";
+ case U_UNDEFINED_KEYWORD:
+ return "Undefined Plural keyword.";
+ case U_DEFAULT_KEYWORD_MISSING:
+ return "Missing DEFAULT rule in plural rules.";
+ case U_DECIMAL_NUMBER_SYNTAX_ERROR:
+ return "Decimal number syntax error.";
+ case U_FORMAT_INEXACT_ERROR:
+ return "Cannot format a number exactly and rounding mode is ROUND_UNNECESSARY.";
+ // case U_FMT_PARSE_ERROR_LIMIT:
+ // return "The limit for format library errors.";
+ case U_BRK_INTERNAL_ERROR:
+ return "An internal error (bug) was detected in ICU.";
+// case U_BRK_ERROR_START:
+// return "Start of codes indicating Break Iterator failures.";
+ case U_BRK_HEX_DIGITS_EXPECTED:
+ return "Hex digits expected as part of a escaped char in a rule.";
+ case U_BRK_SEMICOLON_EXPECTED:
+ return "Missing ';' at the end of a RBBI rule.";
+ case U_BRK_RULE_SYNTAX:
+ return "Syntax error in RBBI rule.";
+ case U_BRK_UNCLOSED_SET:
+ return "UnicodeSet witing an RBBI rule missing a closing ']'.";
+ case U_BRK_ASSIGN_ERROR:
+ return "Syntax error in RBBI rule assignment statement.";
+ case U_BRK_VARIABLE_REDFINITION:
+ return "RBBI rule $Variable redefined.";
+ case U_BRK_MISMATCHED_PAREN:
+ return "Mis-matched parentheses in an RBBI rule.";
+ case U_BRK_NEW_LINE_IN_QUOTED_STRING:
+ return "Missing closing quote in an RBBI rule.";
+ case U_BRK_UNDEFINED_VARIABLE:
+ return "Use of an undefined $Variable in an RBBI rule.";
+ case U_BRK_INIT_ERROR:
+ return "Initialization failure. Probable missing ICU Data.";
+ case U_BRK_RULE_EMPTY_SET:
+ return "Rule contains an empty Unicode Set.";
+ case U_BRK_UNRECOGNIZED_OPTION:
+ return "!!option in RBBI rules not recognized.";
+ case U_BRK_MALFORMED_RULE_TAG:
+ return "The {nnn} tag on a rule is mal formed.";
+ // case U_BRK_ERROR_LIMIT:
+ // return "This must always be the last value to indicate the limit for Break Iterator failures.";
+ case U_REGEX_INTERNAL_ERROR:
+ return "An internal error (bug) was detected in ICU.";
+// case U_REGEX_ERROR_START:
+// return "Start of codes indicating Regexp failures.";
+ case U_REGEX_RULE_SYNTAX:
+ return "Syntax error in regexp pattern.";
+ case U_REGEX_INVALID_STATE:
+ return "RegexMatcher in invalid state for requested operation.";
+ case U_REGEX_BAD_ESCAPE_SEQUENCE:
+ return "Unrecognized backslash escape sequence in pattern.";
+ case U_REGEX_PROPERTY_SYNTAX:
+ return "Incorrect Unicode property.";
+ case U_REGEX_UNIMPLEMENTED:
+ return "Use of regexp feature that is not yet implemented.";
+ case U_REGEX_MISMATCHED_PAREN:
+ return "Incorrectly nested parentheses in regexp pattern.";
+ case U_REGEX_NUMBER_TOO_BIG:
+ return "Decimal number is too large.";
+ case U_REGEX_BAD_INTERVAL:
+ return "Error in {min,max} interval.";
+ case U_REGEX_MAX_LT_MIN:
+ return "In {min,max}, max is less than min.";
+ case U_REGEX_INVALID_BACK_REF:
+ return "Back-reference to a non-existent capture group.";
+ case U_REGEX_INVALID_FLAG:
+ return "Invalid value for match mode flags.";
+ case U_REGEX_LOOK_BEHIND_LIMIT:
+ return "Look-Behind pattern matches must have a bounded maximum length.";
+ case U_REGEX_SET_CONTAINS_STRING:
+ return "Regexps cannot have UnicodeSets containing strings.";
// case U_REGEX_OCTAL_TOO_BIG: //Deprecated ICU 54. This error cannot occur.
// return "Octal character constants must be <= 0377.";
- case U_REGEX_MISSING_CLOSE_BRACKET:
- return "Missing closing bracket on a bracket expression.";
- case U_REGEX_INVALID_RANGE:
- return "In a character range [x-y], x is greater than y.";
- case U_REGEX_STACK_OVERFLOW:
- return "Regular expression backtrack stack overflow.";
- case U_REGEX_TIME_OUT:
- return "Maximum allowed match time exceeded.";
- case U_REGEX_STOPPED_BY_CALLER:
- return "Matching operation aborted by user callback fn.";
- case U_REGEX_ERROR_LIMIT:
- return "This must always be the last value to indicate the limit for regexp errors.";
- // case U_PLUGIN_ERROR_START:
- // return "Start of codes indicating plugin failures.";
- case U_PLUGIN_TOO_HIGH:
- return "The plugin's level is too high to be loaded right now.";
- case U_PLUGIN_DIDNT_SET_LEVEL:
- return "The plugin didn't call uplug_setPlugLevel in response to a QUERY.";
- // case U_PLUGIN_ERROR_LIMIT:
- // return "This must always be the last value to indicate the limit for plugin errors. ";
- default:
- return "Unknown ICU error.";
- }
+ case U_REGEX_MISSING_CLOSE_BRACKET:
+ return "Missing closing bracket on a bracket expression.";
+ case U_REGEX_INVALID_RANGE:
+ return "In a character range [x-y], x is greater than y.";
+ case U_REGEX_STACK_OVERFLOW:
+ return "Regular expression backtrack stack overflow.";
+ case U_REGEX_TIME_OUT:
+ return "Maximum allowed match time exceeded.";
+ case U_REGEX_STOPPED_BY_CALLER:
+ return "Matching operation aborted by user callback fn.";
+ // case U_REGEX_ERROR_LIMIT:
+ // return "This must always be the last value to indicate the limit for regexp errors.";
+// case U_PLUGIN_ERROR_START:
+// return "Start of codes indicating plugin failures.";
+ case U_PLUGIN_TOO_HIGH:
+ return "The plugin's level is too high to be loaded right now.";
+ case U_PLUGIN_DIDNT_SET_LEVEL:
+ return "The plugin didn't call uplug_setPlugLevel in response to a QUERY.";
+// case U_PLUGIN_ERROR_LIMIT:
+// return "This must always be the last value to indicate the limit for plugin errors. ";
+#if U_ICU_VERSION_MAJOR_NUM>=55
+ case U_REGEX_PATTERN_TOO_BIG:
+ return "Pattern exceeds limits on size or complexity.";
+ case U_REGEX_INVALID_CAPTURE_GROUP_NAME:
+ return "Invalid capture group name.";
+#endif
+ default:
+ return "Unknown ICU error or warning.";
}
}
diff --git a/src/stri_exception.h b/src/stri_exception.h
index 8acfc5a..0f4f3cb 100644
--- a/src/stri_exception.h
+++ b/src/stri_exception.h
@@ -1,5 +1,5 @@
/* This file is part of the 'stringi' package for R.
- * Copyright (C) 2013-2016, Marek Gagolewski and Bartek Tartanus
+ * Copyright (c) 2013-2017, Marek Gagolewski and other contributors.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -87,11 +87,6 @@ using namespace std;
onerror; \
throw StriException(status); \
} \
- else if (status <= U_ERROR_WARNING_LIMIT && status > U_USING_DEFAULT_WARNING) { \
- Rf_warning(MSG__ICU_WARNING, \
- StriException::getICUerrorName(status), \
- u_errorName(status)); \
- } \
}
@@ -102,11 +97,6 @@ using namespace std;
StriException::getICUerrorName(status), \
u_errorName(status)); \
} \
- else if (status <= U_ERROR_WARNING_LIMIT && status > U_USING_DEFAULT_WARNING) { \
- Rf_warning(MSG__ICU_WARNING, \
- StriException::getICUerrorName(status), \
- u_errorName(status)); \
- } \
}
diff --git a/src/stri_exports.h b/src/stri_exports.h
index 883598a..3b4a23f 100644
--- a/src/stri_exports.h
+++ b/src/stri_exports.h
@@ -1,5 +1,5 @@
/* This file is part of the 'stringi' package for R.
- * Copyright (C) 2013-2016, Marek Gagolewski and Bartek Tartanus
+ * Copyright (c) 2013-2017, Marek Gagolewski and other contributors.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/src/stri_external.h b/src/stri_external.h
index 6c805de..b510143 100644
--- a/src/stri_external.h
+++ b/src/stri_external.h
@@ -1,5 +1,5 @@
/* This file is part of the 'stringi' package for R.
- * Copyright (C) 2013-2016, Marek Gagolewski and Bartek Tartanus
+ * Copyright (c) 2013-2017, Marek Gagolewski and other contributors.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -39,10 +39,10 @@
#undef U_CHARSET_IS_UTF8
#endif
-#ifndef NDEBUG
+//#ifndef NDEBUG
//#define U_HIDE_DRAFT_API
-#define U_HIDE_DEPRECATED_API
-#endif
+//#define U_HIDE_DEPRECATED_API
+//#endif
#define UNISTR_FROM_CHAR_EXPLICIT explicit
#define UNISTR_FROM_STRING_EXPLICIT explicit
@@ -64,6 +64,7 @@ using namespace icu;
#define USE_RINTERNALS
#define R_NO_REMAP
#include <R.h>
+#include <Rversion.h>
#include <Rinternals.h>
#include <Rmath.h>
#include <Rdefines.h>
diff --git a/src/stri_interval.h b/src/stri_interval.h
index 4f98ee4..ae1c70a 100644
--- a/src/stri_interval.h
+++ b/src/stri_interval.h
@@ -1,5 +1,5 @@
/* This file is part of the 'stringi' package for R.
- * Copyright (C) 2013-2016, Marek Gagolewski and Bartek Tartanus
+ * Copyright (c) 2013-2017, Marek Gagolewski and other contributors.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/src/stri_intvec.h b/src/stri_intvec.h
index 63300e7..9464987 100644
--- a/src/stri_intvec.h
+++ b/src/stri_intvec.h
@@ -1,5 +1,5 @@
/* This file is part of the 'stringi' package for R.
- * Copyright (C) 2013-2016, Marek Gagolewski and Bartek Tartanus
+ * Copyright (c) 2013-2017, Marek Gagolewski and other contributors.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/src/stri_join.cpp b/src/stri_join.cpp
index 969a163..e6babcd 100644
--- a/src/stri_join.cpp
+++ b/src/stri_join.cpp
@@ -1,5 +1,5 @@
/* This file is part of the 'stringi' package for R.
- * Copyright (C) 2013-2016, Marek Gagolewski and Bartek Tartanus
+ * Copyright (c) 2013-2017, Marek Gagolewski and other contributors.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/src/stri_length.cpp b/src/stri_length.cpp
index 998cc6e..c5b7af5 100644
--- a/src/stri_length.cpp
+++ b/src/stri_length.cpp
@@ -1,5 +1,5 @@
/* This file is part of the 'stringi' package for R.
- * Copyright (C) 2013-2016, Marek Gagolewski and Bartek Tartanus
+ * Copyright (c) 2013-2017, Marek Gagolewski and other contributors.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/src/stri_macros.h b/src/stri_macros.h
index efd1e64..78d98ce 100644
--- a/src/stri_macros.h
+++ b/src/stri_macros.h
@@ -1,5 +1,5 @@
/* This file is part of the 'stringi' package for R.
- * Copyright (C) 2013-2016, Marek Gagolewski and Bartek Tartanus
+ * Copyright (c) 2013-2017, Marek Gagolewski and other contributors.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -107,23 +107,55 @@
(STRI__GET_INT32_LE(str_cur_s, 0) == 0x0000FEFFUL))
-// taken from R's Defn.h - sorry, this is needed
-// CHARSXP charset bits
+/* ************************************************************************
+ * based on R's Defn.h
+ * CHARSXP charset bits
+*/
+#ifndef BYTES_MASK
#define BYTES_MASK (1<<1)
+#endif
+
+#ifndef LATIN1_MASK
#define LATIN1_MASK (1<<2)
+#endif
+
+#ifndef UTF8_MASK
#define UTF8_MASK (1<<3)
+#endif
+
+#ifndef ASCII_MASK
#define ASCII_MASK (1<<6)
+#endif
+
+#ifndef IS_BYTES
#define IS_BYTES(x) ((x)->sxpinfo.gp & BYTES_MASK)
+#endif
+
+#ifndef IS_LATIN1
#define IS_LATIN1(x) ((x)->sxpinfo.gp & LATIN1_MASK)
+#endif
+
+#ifndef IS_ASCII
#define IS_ASCII(x) ((x)->sxpinfo.gp & ASCII_MASK)
+#endif
+
+#ifndef IS_UTF8
#define IS_UTF8(x) ((x)->sxpinfo.gp & UTF8_MASK)
+#endif
+
+#ifndef ENC_KNOWN
#define ENC_KNOWN(x) ((x)->sxpinfo.gp & (LATIN1_MASK | UTF8_MASK | ASCII_MASK))
+#endif
+#ifndef isRaw
#define isRaw(x) (TYPEOF(x) == RAWSXP)
+#endif
+/* ************************************************************************ */
-/// Unicode replacement character
+/* Unicode replacement character */
#define UCHAR_REPLACEMENT 0xFFFD
+
#define ASCII_SUBSTITUTE 0x1A
#define ASCII_MAXCHARCODE 127
#define UCHAR_REPLACEMENT_UTF8_BYTE1 0xef
diff --git a/src/stri_messages.h b/src/stri_messages.h
index ed89320..14e9ce4 100644
--- a/src/stri_messages.h
+++ b/src/stri_messages.h
@@ -1,5 +1,5 @@
/* This file is part of the 'stringi' package for R.
- * Copyright (C) 2013-2016, Marek Gagolewski and Bartek Tartanus
+ * Copyright (c) 2013-2017, Marek Gagolewski and other contributors.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/src/stri_pad.cpp b/src/stri_pad.cpp
index 6be27f3..7c9d331 100644
--- a/src/stri_pad.cpp
+++ b/src/stri_pad.cpp
@@ -1,5 +1,5 @@
/* This file is part of the 'stringi' package for R.
- * Copyright (C) 2013-2016, Marek Gagolewski and Bartek Tartanus
+ * Copyright (c) 2013-2017, Marek Gagolewski and other contributors.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/src/stri_prepare_arg.cpp b/src/stri_prepare_arg.cpp
index ef9e6d6..ff919d5 100644
--- a/src/stri_prepare_arg.cpp
+++ b/src/stri_prepare_arg.cpp
@@ -1,5 +1,5 @@
/* This file is part of the 'stringi' package for R.
- * Copyright (C) 2013-2016, Marek Gagolewski and Bartek Tartanus
+ * Copyright (c) 2013-2017, Marek Gagolewski and other contributors.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/src/stri_random.cpp b/src/stri_random.cpp
index 528e72a..54aa750 100644
--- a/src/stri_random.cpp
+++ b/src/stri_random.cpp
@@ -1,5 +1,5 @@
/* This file is part of the 'stringi' package for R.
- * Copyright (C) 2013-2016, Marek Gagolewski and Bartek Tartanus
+ * Copyright (c) 2013-2017, Marek Gagolewski and other contributors.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/src/stri_reverse.cpp b/src/stri_reverse.cpp
index 7740c30..40fa428 100644
--- a/src/stri_reverse.cpp
+++ b/src/stri_reverse.cpp
@@ -1,5 +1,5 @@
/* This file is part of the 'stringi' package for R.
- * Copyright (C) 2013-2016, Marek Gagolewski and Bartek Tartanus
+ * Copyright (c) 2013-2017, Marek Gagolewski and other contributors.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/src/stri_search_boundaries_count.cpp b/src/stri_search_boundaries_count.cpp
index 141280b..da06816 100644
--- a/src/stri_search_boundaries_count.cpp
+++ b/src/stri_search_boundaries_count.cpp
@@ -1,5 +1,5 @@
/* This file is part of the 'stringi' package for R.
- * Copyright (C) 2013-2016, Marek Gagolewski and Bartek Tartanus
+ * Copyright (c) 2013-2017, Marek Gagolewski and other contributors.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/src/stri_search_boundaries_extract.cpp b/src/stri_search_boundaries_extract.cpp
index 150b2c4..23a32a0 100644
--- a/src/stri_search_boundaries_extract.cpp
+++ b/src/stri_search_boundaries_extract.cpp
@@ -1,5 +1,5 @@
/* This file is part of the 'stringi' package for R.
- * Copyright (C) 2013-2016, Marek Gagolewski and Bartek Tartanus
+ * Copyright (c) 2013-2017, Marek Gagolewski and other contributors.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/src/stri_search_boundaries_locate.cpp b/src/stri_search_boundaries_locate.cpp
index 1578ad3..5379077 100644
--- a/src/stri_search_boundaries_locate.cpp
+++ b/src/stri_search_boundaries_locate.cpp
@@ -1,5 +1,5 @@
/* This file is part of the 'stringi' package for R.
- * Copyright (C) 2013-2016, Marek Gagolewski and Bartek Tartanus
+ * Copyright (c) 2013-2017, Marek Gagolewski and other contributors.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/src/stri_search_boundaries_split.cpp b/src/stri_search_boundaries_split.cpp
index 816cfb8..4983916 100644
--- a/src/stri_search_boundaries_split.cpp
+++ b/src/stri_search_boundaries_split.cpp
@@ -1,5 +1,5 @@
/* This file is part of the 'stringi' package for R.
- * Copyright (C) 2013-2016, Marek Gagolewski and Bartek Tartanus
+ * Copyright (c) 2013-2017, Marek Gagolewski and other contributors.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/src/stri_search_class_count.cpp b/src/stri_search_class_count.cpp
index 771eb0b..860aee6 100644
--- a/src/stri_search_class_count.cpp
+++ b/src/stri_search_class_count.cpp
@@ -1,5 +1,5 @@
/* This file is part of the 'stringi' package for R.
- * Copyright (C) 2013-2016, Marek Gagolewski and Bartek Tartanus
+ * Copyright (c) 2013-2017, Marek Gagolewski and other contributors.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/src/stri_search_class_detect.cpp b/src/stri_search_class_detect.cpp
index 846265b..34ddc92 100644
--- a/src/stri_search_class_detect.cpp
+++ b/src/stri_search_class_detect.cpp
@@ -1,5 +1,5 @@
/* This file is part of the 'stringi' package for R.
- * Copyright (C) 2013-2016, Marek Gagolewski and Bartek Tartanus
+ * Copyright (c) 2013-2017, Marek Gagolewski and other contributors.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/src/stri_search_class_extract.cpp b/src/stri_search_class_extract.cpp
index 4a970e2..4f37011 100644
--- a/src/stri_search_class_extract.cpp
+++ b/src/stri_search_class_extract.cpp
@@ -1,5 +1,5 @@
/* This file is part of the 'stringi' package for R.
- * Copyright (C) 2013-2016, Marek Gagolewski and Bartek Tartanus
+ * Copyright (c) 2013-2017, Marek Gagolewski and other contributors.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/src/stri_search_class_locate.cpp b/src/stri_search_class_locate.cpp
index 99deff9..27c58fe 100644
--- a/src/stri_search_class_locate.cpp
+++ b/src/stri_search_class_locate.cpp
@@ -1,5 +1,5 @@
/* This file is part of the 'stringi' package for R.
- * Copyright (C) 2013-2016, Marek Gagolewski and Bartek Tartanus
+ * Copyright (c) 2013-2017, Marek Gagolewski and other contributors.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/src/stri_search_class_replace.cpp b/src/stri_search_class_replace.cpp
index 632346e..adad425 100644
--- a/src/stri_search_class_replace.cpp
+++ b/src/stri_search_class_replace.cpp
@@ -1,5 +1,5 @@
/* This file is part of the 'stringi' package for R.
- * Copyright (C) 2013-2016, Marek Gagolewski and Bartek Tartanus
+ * Copyright (c) 2013-2017, Marek Gagolewski and other contributors.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/src/stri_search_class_split.cpp b/src/stri_search_class_split.cpp
index 641031f..8eade24 100644
--- a/src/stri_search_class_split.cpp
+++ b/src/stri_search_class_split.cpp
@@ -1,5 +1,5 @@
/* This file is part of the 'stringi' package for R.
- * Copyright (C) 2013-2016, Marek Gagolewski and Bartek Tartanus
+ * Copyright (c) 2013-2017, Marek Gagolewski and other contributors.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/src/stri_search_class_startsendswith.cpp b/src/stri_search_class_startsendswith.cpp
index dac77ec..b90dd16 100644
--- a/src/stri_search_class_startsendswith.cpp
+++ b/src/stri_search_class_startsendswith.cpp
@@ -1,5 +1,5 @@
/* This file is part of the 'stringi' package for R.
- * Copyright (C) 2013-2016, Marek Gagolewski and Bartek Tartanus
+ * Copyright (c) 2013-2017, Marek Gagolewski and other contributors.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/src/stri_search_class_subset.cpp b/src/stri_search_class_subset.cpp
index ab35349..905dff9 100644
--- a/src/stri_search_class_subset.cpp
+++ b/src/stri_search_class_subset.cpp
@@ -1,5 +1,5 @@
/* This file is part of the 'stringi' package for R.
- * Copyright (C) 2013-2016, Marek Gagolewski and Bartek Tartanus
+ * Copyright (c) 2013-2017, Marek Gagolewski and other contributors.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/src/stri_search_class_trim.cpp b/src/stri_search_class_trim.cpp
index fea38ff..182a62c 100644
--- a/src/stri_search_class_trim.cpp
+++ b/src/stri_search_class_trim.cpp
@@ -1,5 +1,5 @@
/* This file is part of the 'stringi' package for R.
- * Copyright (C) 2013-2016, Marek Gagolewski and Bartek Tartanus
+ * Copyright (c) 2013-2017, Marek Gagolewski and other contributors.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/src/stri_search_coll_count.cpp b/src/stri_search_coll_count.cpp
index d0974e5..c700b15 100644
--- a/src/stri_search_coll_count.cpp
+++ b/src/stri_search_coll_count.cpp
@@ -1,5 +1,5 @@
/* This file is part of the 'stringi' package for R.
- * Copyright (C) 2013-2016, Marek Gagolewski and Bartek Tartanus
+ * Copyright (c) 2013-2017, Marek Gagolewski and other contributors.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/src/stri_search_coll_detect.cpp b/src/stri_search_coll_detect.cpp
index cd9c4df..d38f7d4 100644
--- a/src/stri_search_coll_detect.cpp
+++ b/src/stri_search_coll_detect.cpp
@@ -1,5 +1,5 @@
/* This file is part of the 'stringi' package for R.
- * Copyright (C) 2013-2016, Marek Gagolewski and Bartek Tartanus
+ * Copyright (c) 2013-2017, Marek Gagolewski and other contributors.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/src/stri_search_coll_extract.cpp b/src/stri_search_coll_extract.cpp
index f148321..f060d3b 100644
--- a/src/stri_search_coll_extract.cpp
+++ b/src/stri_search_coll_extract.cpp
@@ -1,5 +1,5 @@
/* This file is part of the 'stringi' package for R.
- * Copyright (C) 2013-2016, Marek Gagolewski and Bartek Tartanus
+ * Copyright (c) 2013-2017, Marek Gagolewski and other contributors.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/src/stri_search_coll_locate.cpp b/src/stri_search_coll_locate.cpp
index 35142a2..523c01d 100644
--- a/src/stri_search_coll_locate.cpp
+++ b/src/stri_search_coll_locate.cpp
@@ -1,5 +1,5 @@
/* This file is part of the 'stringi' package for R.
- * Copyright (C) 2013-2016, Marek Gagolewski and Bartek Tartanus
+ * Copyright (c) 2013-2017, Marek Gagolewski and other contributors.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/src/stri_search_coll_replace.cpp b/src/stri_search_coll_replace.cpp
index 4f6555b..436e37b 100644
--- a/src/stri_search_coll_replace.cpp
+++ b/src/stri_search_coll_replace.cpp
@@ -1,5 +1,5 @@
/* This file is part of the 'stringi' package for R.
- * Copyright (C) 2013-2016, Marek Gagolewski and Bartek Tartanus
+ * Copyright (c) 2013-2017, Marek Gagolewski and other contributors.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/src/stri_search_coll_split.cpp b/src/stri_search_coll_split.cpp
index e1f86cd..0b2660c 100644
--- a/src/stri_search_coll_split.cpp
+++ b/src/stri_search_coll_split.cpp
@@ -1,5 +1,5 @@
/* This file is part of the 'stringi' package for R.
- * Copyright (C) 2013-2016, Marek Gagolewski and Bartek Tartanus
+ * Copyright (c) 2013-2017, Marek Gagolewski and other contributors.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/src/stri_search_coll_startsendswith.cpp b/src/stri_search_coll_startsendswith.cpp
index 8d73bfd..fcdaf18 100644
--- a/src/stri_search_coll_startsendswith.cpp
+++ b/src/stri_search_coll_startsendswith.cpp
@@ -1,5 +1,5 @@
/* This file is part of the 'stringi' package for R.
- * Copyright (C) 2013-2016, Marek Gagolewski and Bartek Tartanus
+ * Copyright (c) 2013-2017, Marek Gagolewski and other contributors.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/src/stri_search_coll_subset.cpp b/src/stri_search_coll_subset.cpp
index fd70ee9..23327ac 100644
--- a/src/stri_search_coll_subset.cpp
+++ b/src/stri_search_coll_subset.cpp
@@ -1,5 +1,5 @@
/* This file is part of the 'stringi' package for R.
- * Copyright (C) 2013-2016, Marek Gagolewski and Bartek Tartanus
+ * Copyright (c) 2013-2017, Marek Gagolewski and other contributors.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/src/stri_search_common.cpp b/src/stri_search_common.cpp
index 0e2d006..f7d0d83 100644
--- a/src/stri_search_common.cpp
+++ b/src/stri_search_common.cpp
@@ -1,5 +1,5 @@
/* This file is part of the 'stringi' package for R.
- * Copyright (C) 2013-2016, Marek Gagolewski and Bartek Tartanus
+ * Copyright (c) 2013-2017, Marek Gagolewski and other contributors.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/src/stri_search_fixed_count.cpp b/src/stri_search_fixed_count.cpp
index e26163f..4019e65 100644
--- a/src/stri_search_fixed_count.cpp
+++ b/src/stri_search_fixed_count.cpp
@@ -1,5 +1,5 @@
/* This file is part of the 'stringi' package for R.
- * Copyright (C) 2013-2016, Marek Gagolewski and Bartek Tartanus
+ * Copyright (c) 2013-2017, Marek Gagolewski and other contributors.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/src/stri_search_fixed_detect.cpp b/src/stri_search_fixed_detect.cpp
index 6771c46..2e77c57 100644
--- a/src/stri_search_fixed_detect.cpp
+++ b/src/stri_search_fixed_detect.cpp
@@ -1,5 +1,5 @@
/* This file is part of the 'stringi' package for R.
- * Copyright (C) 2013-2016, Marek Gagolewski and Bartek Tartanus
+ * Copyright (c) 2013-2017, Marek Gagolewski and other contributors.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/src/stri_search_fixed_extract.cpp b/src/stri_search_fixed_extract.cpp
index 5f99f4e..ae033a9 100644
--- a/src/stri_search_fixed_extract.cpp
+++ b/src/stri_search_fixed_extract.cpp
@@ -1,5 +1,5 @@
/* This file is part of the 'stringi' package for R.
- * Copyright (C) 2013-2016, Marek Gagolewski and Bartek Tartanus
+ * Copyright (c) 2013-2017, Marek Gagolewski and other contributors.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/src/stri_search_fixed_locate.cpp b/src/stri_search_fixed_locate.cpp
index 718518c..3a368ed 100644
--- a/src/stri_search_fixed_locate.cpp
+++ b/src/stri_search_fixed_locate.cpp
@@ -1,5 +1,5 @@
/* This file is part of the 'stringi' package for R.
- * Copyright (C) 2013-2016, Marek Gagolewski and Bartek Tartanus
+ * Copyright (c) 2013-2017, Marek Gagolewski and other contributors.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/src/stri_search_fixed_replace.cpp b/src/stri_search_fixed_replace.cpp
index c0f87d9..5054f1e 100644
--- a/src/stri_search_fixed_replace.cpp
+++ b/src/stri_search_fixed_replace.cpp
@@ -1,5 +1,5 @@
/* This file is part of the 'stringi' package for R.
- * Copyright (C) 2013-2016, Marek Gagolewski and Bartek Tartanus
+ * Copyright (c) 2013-2017, Marek Gagolewski and other contributors.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/src/stri_search_fixed_split.cpp b/src/stri_search_fixed_split.cpp
index c670f82..6379cf4 100644
--- a/src/stri_search_fixed_split.cpp
+++ b/src/stri_search_fixed_split.cpp
@@ -1,5 +1,5 @@
/* This file is part of the 'stringi' package for R.
- * Copyright (C) 2013-2016, Marek Gagolewski and Bartek Tartanus
+ * Copyright (c) 2013-2017, Marek Gagolewski and other contributors.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/src/stri_search_fixed_startsendswith.cpp b/src/stri_search_fixed_startsendswith.cpp
index a60d8a0..36f14f2 100644
--- a/src/stri_search_fixed_startsendswith.cpp
+++ b/src/stri_search_fixed_startsendswith.cpp
@@ -1,5 +1,5 @@
/* This file is part of the 'stringi' package for R.
- * Copyright (C) 2013-2016, Marek Gagolewski and Bartek Tartanus
+ * Copyright (c) 2013-2017, Marek Gagolewski and other contributors.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/src/stri_search_fixed_subset.cpp b/src/stri_search_fixed_subset.cpp
index 0598327..5fe3f04 100644
--- a/src/stri_search_fixed_subset.cpp
+++ b/src/stri_search_fixed_subset.cpp
@@ -1,5 +1,5 @@
/* This file is part of the 'stringi' package for R.
- * Copyright (C) 2013-2016, Marek Gagolewski and Bartek Tartanus
+ * Copyright (c) 2013-2017, Marek Gagolewski and other contributors.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/src/stri_search_in.cpp b/src/stri_search_in.cpp
index 0cc5e4a..b89a80a 100644
--- a/src/stri_search_in.cpp
+++ b/src/stri_search_in.cpp
@@ -1,5 +1,5 @@
/* This file is part of the 'stringi' package for R.
- * Copyright (C) 2013-2016, Marek Gagolewski and Bartek Tartanus
+ * Copyright (c) 2013-2017, Marek Gagolewski and other contributors.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/src/stri_search_other_replace.cpp b/src/stri_search_other_replace.cpp
index b223fff..faa5bd5 100644
--- a/src/stri_search_other_replace.cpp
+++ b/src/stri_search_other_replace.cpp
@@ -1,5 +1,5 @@
/* This file is part of the 'stringi' package for R.
- * Copyright (C) 2013-2016, Marek Gagolewski and Bartek Tartanus
+ * Copyright (c) 2013-2017, Marek Gagolewski and other contributors.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/src/stri_search_other_split.cpp b/src/stri_search_other_split.cpp
index f2a5ee2..f44def7 100644
--- a/src/stri_search_other_split.cpp
+++ b/src/stri_search_other_split.cpp
@@ -1,5 +1,5 @@
/* This file is part of the 'stringi' package for R.
- * Copyright (C) 2013-2016, Marek Gagolewski and Bartek Tartanus
+ * Copyright (c) 2013-2017, Marek Gagolewski and other contributors.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/src/stri_search_regex_count.cpp b/src/stri_search_regex_count.cpp
index f66f83e..3d68d3f 100644
--- a/src/stri_search_regex_count.cpp
+++ b/src/stri_search_regex_count.cpp
@@ -1,5 +1,5 @@
/* This file is part of the 'stringi' package for R.
- * Copyright (C) 2013-2016, Marek Gagolewski and Bartek Tartanus
+ * Copyright (c) 2013-2017, Marek Gagolewski and other contributors.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/src/stri_search_regex_detect.cpp b/src/stri_search_regex_detect.cpp
index f593729..e0f6c5d 100644
--- a/src/stri_search_regex_detect.cpp
+++ b/src/stri_search_regex_detect.cpp
@@ -1,5 +1,5 @@
/* This file is part of the 'stringi' package for R.
- * Copyright (C) 2013-2016, Marek Gagolewski and Bartek Tartanus
+ * Copyright (c) 2013-2017, Marek Gagolewski and other contributors.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/src/stri_search_regex_extract.cpp b/src/stri_search_regex_extract.cpp
index cabd258..9cdcd86 100644
--- a/src/stri_search_regex_extract.cpp
+++ b/src/stri_search_regex_extract.cpp
@@ -1,5 +1,5 @@
/* This file is part of the 'stringi' package for R.
- * Copyright (C) 2013-2016, Marek Gagolewski and Bartek Tartanus
+ * Copyright (c) 2013-2017, Marek Gagolewski and other contributors.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/src/stri_search_regex_locate.cpp b/src/stri_search_regex_locate.cpp
index b4298e6..a5583fe 100644
--- a/src/stri_search_regex_locate.cpp
+++ b/src/stri_search_regex_locate.cpp
@@ -1,5 +1,5 @@
/* This file is part of the 'stringi' package for R.
- * Copyright (C) 2013-2016, Marek Gagolewski and Bartek Tartanus
+ * Copyright (c) 2013-2017, Marek Gagolewski and other contributors.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/src/stri_search_regex_match.cpp b/src/stri_search_regex_match.cpp
index d8558cc..7180b73 100644
--- a/src/stri_search_regex_match.cpp
+++ b/src/stri_search_regex_match.cpp
@@ -1,5 +1,5 @@
/* This file is part of the 'stringi' package for R.
- * Copyright (C) 2013-2016, Marek Gagolewski and Bartek Tartanus
+ * Copyright (c) 2013-2017, Marek Gagolewski and other contributors.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/src/stri_search_regex_replace.cpp b/src/stri_search_regex_replace.cpp
index 746a73a..a8bef42 100644
--- a/src/stri_search_regex_replace.cpp
+++ b/src/stri_search_regex_replace.cpp
@@ -1,5 +1,5 @@
/* This file is part of the 'stringi' package for R.
- * Copyright (C) 2013-2016, Marek Gagolewski and Bartek Tartanus
+ * Copyright (c) 2013-2017, Marek Gagolewski and other contributors.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/src/stri_search_regex_split.cpp b/src/stri_search_regex_split.cpp
index e0012bc..2842e32 100644
--- a/src/stri_search_regex_split.cpp
+++ b/src/stri_search_regex_split.cpp
@@ -1,5 +1,5 @@
/* This file is part of the 'stringi' package for R.
- * Copyright (C) 2013-2016, Marek Gagolewski and Bartek Tartanus
+ * Copyright (c) 2013-2017, Marek Gagolewski and other contributors.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/src/stri_search_regex_subset.cpp b/src/stri_search_regex_subset.cpp
index c23fc30..44f89eb 100644
--- a/src/stri_search_regex_subset.cpp
+++ b/src/stri_search_regex_subset.cpp
@@ -1,5 +1,5 @@
/* This file is part of the 'stringi' package for R.
- * Copyright (C) 2013-2016, Marek Gagolewski and Bartek Tartanus
+ * Copyright (c) 2013-2017, Marek Gagolewski and other contributors.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/src/stri_sort.cpp b/src/stri_sort.cpp
index 0d6d23a..1022c2e 100644
--- a/src/stri_sort.cpp
+++ b/src/stri_sort.cpp
@@ -1,5 +1,5 @@
/* This file is part of the 'stringi' package for R.
- * Copyright (C) 2013-2016, Marek Gagolewski and Bartek Tartanus
+ * Copyright (c) 2013-2017, Marek Gagolewski and other contributors.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/src/stri_stats.cpp b/src/stri_stats.cpp
index 065d06b..4da454f 100644
--- a/src/stri_stats.cpp
+++ b/src/stri_stats.cpp
@@ -1,5 +1,5 @@
/* This file is part of the 'stringi' package for R.
- * Copyright (C) 2013-2016, Marek Gagolewski and Bartek Tartanus
+ * Copyright (c) 2013-2017, Marek Gagolewski and other contributors.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/src/stri_string8.h b/src/stri_string8.h
index e43749a..6d4726f 100644
--- a/src/stri_string8.h
+++ b/src/stri_string8.h
@@ -1,5 +1,5 @@
/* This file is part of the 'stringi' package for R.
- * Copyright (C) 2013-2016, Marek Gagolewski and Bartek Tartanus
+ * Copyright (c) 2013-2017, Marek Gagolewski and other contributors.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/src/stri_string8buf.h b/src/stri_string8buf.h
index 549b571..cc6b614 100644
--- a/src/stri_string8buf.h
+++ b/src/stri_string8buf.h
@@ -1,5 +1,5 @@
/* This file is part of the 'stringi' package for R.
- * Copyright (C) 2013-2016, Marek Gagolewski and Bartek Tartanus
+ * Copyright (c) 2013-2017, Marek Gagolewski and other contributors.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/src/stri_stringi.cpp b/src/stri_stringi.cpp
index 3f1f894..dd3a95b 100644
--- a/src/stri_stringi.cpp
+++ b/src/stri_stringi.cpp
@@ -1,5 +1,5 @@
/* This file is part of the 'stringi' package for R.
- * Copyright (C) 2013-2016, Marek Gagolewski and Bartek Tartanus
+ * Copyright (c) 2013-2017, Marek Gagolewski and other contributors.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -305,7 +305,10 @@ extern "C" void R_init_stringi(DllInfo* dll)
Rf_error("ICU init failed: %s", u_errorName(status));
R_registerRoutines(dll, NULL, cCallMethods, NULL, NULL);
-// R_useDynamicSymbols(dll, Rboolean(FALSE)); // slower
+ R_useDynamicSymbols(dll, (Rboolean)FALSE);
+#if defined(R_VERSION) && R_VERSION >= R_Version(3, 0, 0)
+ R_forceSymbols(dll, (Rboolean)TRUE);
+#endif
const R_CallMethodDef* methods = cCallMethods;
while (methods->name) {
diff --git a/src/stri_stringi.h b/src/stri_stringi.h
index 8ade0b2..1ab25e7 100644
--- a/src/stri_stringi.h
+++ b/src/stri_stringi.h
@@ -1,5 +1,5 @@
/* This file is part of the 'stringi' package for R.
- * Copyright (C) 2013-2016, Marek Gagolewski and Bartek Tartanus
+ * Copyright (c) 2013-2017, Marek Gagolewski and other contributors.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/src/stri_sub.cpp b/src/stri_sub.cpp
index 4f5132f..602b8bf 100644
--- a/src/stri_sub.cpp
+++ b/src/stri_sub.cpp
@@ -1,5 +1,5 @@
/* This file is part of the 'stringi' package for R.
- * Copyright (C) 2013-2016, Marek Gagolewski and Bartek Tartanus
+ * Copyright (c) 2013-2017, Marek Gagolewski and other contributors.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -34,66 +34,82 @@
#include "stri_container_utf8_indexable.h"
#include "stri_string8buf.h"
-
-#define STRI__SUB_PREPARE_FROM_TO_LENGTH \
- bool from_ismatrix = Rf_isMatrix(from); \
- if (from_ismatrix) { \
- SEXP t = Rf_getAttrib(from, R_DimSymbol); \
- if (INTEGER(t)[1] == 1) \
- from_ismatrix = false; /* it's a column vector */ \
- else if (INTEGER(t)[1] > 2) { \
- /* error() is allowed here */ \
- Rf_error(MSG__ARG_EXPECTED_MATRIX_WITH_GIVEN_COLUMNS, "from", 2); \
- } \
- } \
- PROTECT(from = stri_prepare_arg_integer(from, "from")); \
- /* may remove R_DimSymbol */ \
- \
- if (from_ismatrix) { \
- from_len = LENGTH(from)/2; \
- to_len = from_len; \
- from_tab = INTEGER(from); \
- to_tab = from_tab+from_len; \
- PROTECT(to); /* fake - not to provoke stack imbalance */ \
- PROTECT(length); /* fake - not to provoke stack imbalance */ \
- } \
- else if (isNull(length)) { \
- PROTECT(to = stri_prepare_arg_integer(to, "to")); \
- from_len = LENGTH(from); \
- from_tab = INTEGER(from); \
- to_len = LENGTH(to); \
- to_tab = INTEGER(to); \
- PROTECT(length); /* fake - not to provoke stack imbalance */ \
- } \
- else { \
- PROTECT(length= stri_prepare_arg_integer(length, "length")); \
- from_len = LENGTH(from); \
- from_tab = INTEGER(from); \
- length_len = LENGTH(length); \
- length_tab = INTEGER(length); \
- PROTECT(to); /* fake - not to provoke stack imbalance */ \
+/***
+ * used both in stri_sub and stri_sub_replacement
+ *
+ * PROTECTs both `to` and `length`
+ */
+void stri__sub_prepare_from_to_length(SEXP& from, SEXP& to, SEXP& length,
+ R_len_t& from_len, R_len_t& to_len, R_len_t& length_len,
+ int*& from_tab, int*& to_tab, int*& length_tab)
+{
+ bool from_ismatrix = Rf_isMatrix(from);
+ if (from_ismatrix) {
+ SEXP t;
+ PROTECT(t = Rf_getAttrib(from, R_DimSymbol));
+ if (INTEGER(t)[1] == 1)
+ from_ismatrix = false; /* it's a column vector */
+ else if (INTEGER(t)[1] > 2) {
+ /* error() is allowed here */
+ Rf_error(MSG__ARG_EXPECTED_MATRIX_WITH_GIVEN_COLUMNS, "from", 2);
+ }
+ UNPROTECT(1); // t
+ }
+ PROTECT(from = stri_prepare_arg_integer(from, "from"));
+ /* may remove R_DimSymbol */
+
+ if (from_ismatrix) {
+ from_len = LENGTH(from)/2;
+ to_len = from_len;
+ from_tab = INTEGER(from);
+ to_tab = from_tab+from_len;
+ PROTECT(to); /* fake - not to provoke stack imbalance */
+ PROTECT(length); /* fake - not to provoke stack imbalance */
+ }
+ else if (isNull(length)) {
+ PROTECT(to = stri_prepare_arg_integer(to, "to"));
+ from_len = LENGTH(from);
+ from_tab = INTEGER(from);
+ to_len = LENGTH(to);
+ to_tab = INTEGER(to);
+ PROTECT(length); /* fake - not to provoke stack imbalance */
+ }
+ else {
+ PROTECT(length= stri_prepare_arg_integer(length, "length"));
+ from_len = LENGTH(from);
+ from_tab = INTEGER(from);
+ length_len = LENGTH(length);
+ length_tab = INTEGER(length);
+ PROTECT(to); /* fake - not to provoke stack imbalance */
}
+}
-#define STRI__SUB_GET_INDICES(cur_from, cur_to, cur_from2, cur_to2) \
- \
- if (cur_from >= 0) { \
- cur_from--; /* 1-based -> 0-based index */ \
- cur_from2 = str_cont.UChar32_to_UTF8_index_fwd(i, cur_from); \
- } \
- else { \
- cur_from = -cur_from; \
- cur_from2 = str_cont.UChar32_to_UTF8_index_back(i, cur_from); \
- } \
- if (cur_to >= 0) { \
- ; /* do nothing with cur_to ; 1-based -> 0-based index */ \
- /* but +1 as we need the next one (bound) */ \
- cur_to2 = str_cont.UChar32_to_UTF8_index_fwd(i, cur_to); \
- } \
- else { \
- cur_to = -cur_to - 1; \
- cur_to2 = str_cont.UChar32_to_UTF8_index_back(i, cur_to); \
+/***
+ * used both in stri_sub and stri_sub_replacement
+ */
+inline void stri__sub_get_indices(StriContainerUTF8_indexable& str_cont, R_len_t& i,
+ R_len_t& cur_from, R_len_t& cur_to,
+ R_len_t& cur_from2, R_len_t& cur_to2)
+{
+ if (cur_from >= 0) {
+ cur_from--; /* 1-based -> 0-based index */
+ cur_from2 = str_cont.UChar32_to_UTF8_index_fwd(i, cur_from);
+ }
+ else {
+ cur_from = -cur_from;
+ cur_from2 = str_cont.UChar32_to_UTF8_index_back(i, cur_from);
}
+ if (cur_to >= 0) {
+ ; /* do nothing with cur_to ; 1-based -> 0-based index */
+ /* but +1 as we need the next one (bound) */
+ cur_to2 = str_cont.UChar32_to_UTF8_index_fwd(i, cur_to);
+ }
+ else {
+ cur_to = -cur_to - 1;
+ cur_to2 = str_cont.UChar32_to_UTF8_index_back(i, cur_to);
+ }
+}
/**
@@ -142,7 +158,8 @@ SEXP stri_sub(SEXP str, SEXP from, SEXP to, SEXP length)
int* to_tab = 0;
int* length_tab = 0;
- STRI__SUB_PREPARE_FROM_TO_LENGTH /* does 3 PROTECTs */
+ stri__sub_prepare_from_to_length(from, to, length, /* PROTECTs 3 objects */
+ from_len, to_len, length_len, from_tab, to_tab, length_tab);
R_len_t vectorize_len = stri__recycling_rule(true, 3,
str_len, from_len, (to_len>length_len)?to_len:length_len);
@@ -182,7 +199,7 @@ SEXP stri_sub(SEXP str, SEXP from, SEXP to, SEXP length)
R_len_t cur_from2; // UTF-8 byte indices
R_len_t cur_to2; // UTF-8 byte indices
- STRI__SUB_GET_INDICES(cur_from, cur_to, cur_from2, cur_to2)
+ stri__sub_get_indices(str_cont, i, cur_from, cur_to, cur_from2, cur_to2);
if (cur_to2 > cur_from2) { // just copy
SET_STRING_ELT(ret, i, Rf_mkCharLenCE(str_cur_s+cur_from2, cur_to2-cur_from2, CE_UTF8));
@@ -252,7 +269,8 @@ SEXP stri_sub_replacement(SEXP str, SEXP from, SEXP to, SEXP length, SEXP omit_n
int* to_tab = 0; // see below
int* length_tab = 0; // see below
- STRI__SUB_PREPARE_FROM_TO_LENGTH /* does 3 PROTECTs */
+ stri__sub_prepare_from_to_length(from, to, length, /* PROTECTs 3 objects */
+ from_len, to_len, length_len, from_tab, to_tab, length_tab);
R_len_t vectorize_len = stri__recycling_rule(true, 4,
str_len, value_len, from_len, (to_len>length_len)?to_len:length_len);
@@ -310,7 +328,7 @@ SEXP stri_sub_replacement(SEXP str, SEXP from, SEXP to, SEXP length, SEXP omit_n
R_len_t cur_from2; // UTF-8 byte indices
R_len_t cur_to2; // UTF-8 byte indices
- STRI__SUB_GET_INDICES(cur_from, cur_to, cur_from2, cur_to2)
+ stri__sub_get_indices(str_cont, i, cur_from, cur_to, cur_from2, cur_to2);
if (cur_to2 < cur_from2) cur_to2 = cur_from2;
R_len_t buflen = str_cur_n-(cur_to2-cur_from2)+value_cur_n;
diff --git a/src/stri_test.cpp b/src/stri_test.cpp
index 6c70a41..ec3396a 100644
--- a/src/stri_test.cpp
+++ b/src/stri_test.cpp
@@ -1,5 +1,5 @@
/* This file is part of the 'stringi' package for R.
- * Copyright (C) 2013-2016, Marek Gagolewski and Bartek Tartanus
+ * Copyright (c) 2013-2017, Marek Gagolewski and other contributors.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/src/stri_time_calendar.cpp b/src/stri_time_calendar.cpp
index b1492e4..3db4703 100644
--- a/src/stri_time_calendar.cpp
+++ b/src/stri_time_calendar.cpp
@@ -1,5 +1,5 @@
/* This file is part of the 'stringi' package for R.
- * Copyright (C) 2013-2016, Marek Gagolewski and Bartek Tartanus
+ * Copyright (c) 2013-2017, Marek Gagolewski and other contributors.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/src/stri_time_format.cpp b/src/stri_time_format.cpp
index 6b4750f..18ca05c 100644
--- a/src/stri_time_format.cpp
+++ b/src/stri_time_format.cpp
@@ -1,5 +1,5 @@
/* This file is part of the 'stringi' package for R.
- * Copyright (C) 2013-2016, Marek Gagolewski and Bartek Tartanus
+ * Copyright (c) 2013-2017, Marek Gagolewski and other contributors.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/src/stri_time_symbols.cpp b/src/stri_time_symbols.cpp
index c571a7c..8b20d8d 100644
--- a/src/stri_time_symbols.cpp
+++ b/src/stri_time_symbols.cpp
@@ -1,5 +1,5 @@
/* This file is part of the 'stringi' package for R.
- * Copyright (C) 2013-2016, Marek Gagolewski and Bartek Tartanus
+ * Copyright (c) 2013-2017, Marek Gagolewski and other contributors.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/src/stri_time_zone.cpp b/src/stri_time_zone.cpp
index c8deeb5..6226470 100644
--- a/src/stri_time_zone.cpp
+++ b/src/stri_time_zone.cpp
@@ -1,5 +1,5 @@
/* This file is part of the 'stringi' package for R.
- * Copyright (C) 2013-2016, Marek Gagolewski and Bartek Tartanus
+ * Copyright (c) 2013-2017, Marek Gagolewski and other contributors.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/src/stri_trans_casemap.cpp b/src/stri_trans_casemap.cpp
index 372fe10..e82bdd4 100644
--- a/src/stri_trans_casemap.cpp
+++ b/src/stri_trans_casemap.cpp
@@ -1,5 +1,5 @@
/* This file is part of the 'stringi' package for R.
- * Copyright (C) 2013-2016, Marek Gagolewski and Bartek Tartanus
+ * Copyright (c) 2013-2017, Marek Gagolewski and other contributors.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/src/stri_trans_normalization.cpp b/src/stri_trans_normalization.cpp
index f05238d..768b0cc 100644
--- a/src/stri_trans_normalization.cpp
+++ b/src/stri_trans_normalization.cpp
@@ -1,5 +1,5 @@
/* This file is part of the 'stringi' package for R.
- * Copyright (C) 2013-2016, Marek Gagolewski and Bartek Tartanus
+ * Copyright (c) 2013-2017, Marek Gagolewski and other contributors.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/src/stri_trans_other.cpp b/src/stri_trans_other.cpp
index adab4b2..d459740 100644
--- a/src/stri_trans_other.cpp
+++ b/src/stri_trans_other.cpp
@@ -1,5 +1,5 @@
/* This file is part of the 'stringi' package for R.
- * Copyright (C) 2013-2016, Marek Gagolewski and Bartek Tartanus
+ * Copyright (c) 2013-2017, Marek Gagolewski and other contributors.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/src/stri_trans_transliterate.cpp b/src/stri_trans_transliterate.cpp
index 8ed5536..2696e83 100644
--- a/src/stri_trans_transliterate.cpp
+++ b/src/stri_trans_transliterate.cpp
@@ -1,5 +1,5 @@
/* This file is part of the 'stringi' package for R.
- * Copyright (C) 2013-2016, Marek Gagolewski and Bartek Tartanus
+ * Copyright (c) 2013-2017, Marek Gagolewski and other contributors.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/src/stri_ucnv.cpp b/src/stri_ucnv.cpp
index 5ec49ee..b591d4c 100644
--- a/src/stri_ucnv.cpp
+++ b/src/stri_ucnv.cpp
@@ -1,5 +1,5 @@
/* This file is part of the 'stringi' package for R.
- * Copyright (C) 2013-2016, Marek Gagolewski and Bartek Tartanus
+ * Copyright (c) 2013-2017, Marek Gagolewski and other contributors.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/src/stri_ucnv.h b/src/stri_ucnv.h
index cf10919..e7617d1 100644
--- a/src/stri_ucnv.h
+++ b/src/stri_ucnv.h
@@ -1,5 +1,5 @@
/* This file is part of the 'stringi' package for R.
- * Copyright (C) 2013-2016, Marek Gagolewski and Bartek Tartanus
+ * Copyright (c) 2013-2017, Marek Gagolewski and other contributors.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/src/stri_uloc.cpp b/src/stri_uloc.cpp
index e507a4b..a04eefc 100644
--- a/src/stri_uloc.cpp
+++ b/src/stri_uloc.cpp
@@ -1,5 +1,5 @@
/* This file is part of the 'stringi' package for R.
- * Copyright (C) 2013-2016, Marek Gagolewski and Bartek Tartanus
+ * Copyright (c) 2013-2017, Marek Gagolewski and other contributors.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/src/stri_utils.cpp b/src/stri_utils.cpp
index 65e5af6..71e8565 100644
--- a/src/stri_utils.cpp
+++ b/src/stri_utils.cpp
@@ -1,5 +1,5 @@
/* This file is part of the 'stringi' package for R.
- * Copyright (C) 2013-2016, Marek Gagolewski and Bartek Tartanus
+ * Copyright (c) 2013-2017, Marek Gagolewski and other contributors.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/src/stri_wrap.cpp b/src/stri_wrap.cpp
index 44bf74c..40e0c6c 100644
--- a/src/stri_wrap.cpp
+++ b/src/stri_wrap.cpp
@@ -1,5 +1,5 @@
/* This file is part of the 'stringi' package for R.
- * Copyright (C) 2013-2016, Marek Gagolewski and Bartek Tartanus
+ * Copyright (c) 2013-2017, Marek Gagolewski and other contributors.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/src/uconfig_local.h.in b/src/uconfig_local.h.in
index 6e8285d..03f1fcf 100644
--- a/src/uconfig_local.h.in
+++ b/src/uconfig_local.h.in
@@ -1,5 +1,5 @@
/* This file is part of the 'stringi' package for R.
- * Copyright (C) 2013-2015, Marek Gagolewski and Bartek Tartanus
+ * Copyright (c) 2013-2017, Marek Gagolewski and other contributors.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
--
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/debian-med/r-cran-stringi.git
More information about the debian-med-commit
mailing list