From 20f9ac424718170299febebb384c4d08b1f8cf52 Mon Sep 17 00:00:00 2001 From: Dan Gudmundsson Date: Thu, 22 Mar 2018 12:32:37 +0100 Subject: Revert "Deprecate old string functions" It has been decided that it was to early to deprecate the old string functions. This partially reverts commit ccb3f7f9768d3c28783c771df47eec1829e51802. --- lib/stdlib/doc/src/string.xml | 394 +++++++++++++++++++++++++++++++++++++++- lib/stdlib/src/otp_internal.erl | 46 ----- lib/stdlib/src/string.erl | 10 - 3 files changed, 392 insertions(+), 58 deletions(-) (limited to 'lib') diff --git a/lib/stdlib/doc/src/string.xml b/lib/stdlib/doc/src/string.xml index 130fc74a28..c7772d63a3 100644 --- a/lib/stdlib/doc/src/string.xml +++ b/lib/stdlib/doc/src/string.xml @@ -109,8 +109,10 @@

This module has been reworked in Erlang/OTP 20 to handle unicode:chardata() and operate on grapheme - clusters. The old functions that only work on Latin-1 lists as input - are kept for backwards compatibility reasons but should not be used. + clusters. The old + functions that only work on Latin-1 lists as input + are still available but should not be used, they will be + deprecated in a future release.

@@ -629,5 +631,393 @@ ÖÄÅ + +
+ + Obsolete API functions +

Here follows the function of the old API. + These functions only work on a list of Latin-1 characters. +

+

+ The functions are kept for backward compatibility, but are + not recommended. + They will be deprecated in Erlang/OTP 21. +

+

Any undocumented functions in string are not to be used.

+
+
+ + + + + + Center a string. + +

Returns a string, where String is centered in the + string and surrounded by blanks or Character. + The resulting string has length Number.

+

This function is obsolete. + Use + pad/3. +

+
+
+ + + + + Return a string consisting of numbers of characters. + +

Returns a string consisting of Number characters + Character. Optionally, the string can end with + string Tail.

+

This function is obsolete. + Use + lists:duplicate/2.

+
+
+ + + + Return the index of the first occurrence of + a character in a string. + +

Returns the index of the first occurrence of + Character in String. Returns + 0 if Character does not occur.

+

This function is obsolete. + Use + find/2.

+
+
+ + + + Concatenate two strings. + +

Concatenates String1 and + String2 to form a new string + String3, which is returned.

+

+ This function is obsolete. + Use [String1, String2] as + Data argument, and call + + unicode:characters_to_list/2 or + + unicode:characters_to_binary/2 + to flatten the output. +

+
+
+ + + + Copy a string. + +

Returns a string containing String repeated + Number times.

+

This function is obsolete. + Use + lists:duplicate/2.

+
+
+ + + + Span characters at start of a string. + +

Returns the length of the maximum initial segment of + String, which consists entirely of characters + not from Chars.

+

This function is obsolete. + Use + take/3.

+

Example:

+ +> string:cspan("\t abcdef", " \t"). +0 +
+
+ + + + Join a list of strings with separator. + +

Returns a string with the elements of StringList + separated by the string in Separator.

+

This function is obsolete. + Use + lists:join/2.

+

Example:

+ +> join(["one", "two", "three"], ", "). +"one, two, three" +
+
+ + + + + Adjust left end of a string. + +

Returns String with the length adjusted in + accordance with Number. The left margin is + fixed. If length(String) < + Number, then String is padded + with blanks or Characters.

+

This function is obsolete. + Use + pad/2 or + pad/3.

+

Example:

+ +> string:left("Hello",10,$.). +"Hello....." +
+
+ + + + Return the length of a string. + +

Returns the number of characters in String.

+

This function is obsolete. + Use + length/1.

+
+
+ + + + Return the index of the last occurrence of + a character in a string. + +

Returns the index of the last occurrence of + Character in String. Returns + 0 if Character does not occur.

+

This function is obsolete. + Use + find/3.

+
+
+ + + + + Adjust right end of a string. + +

Returns String with the length adjusted in + accordance with Number. The right margin is + fixed. If the length of (String) < + Number, then String is padded + with blanks or Characters.

+

This function is obsolete. + Use + pad/3.

+

Example:

+ +> string:right("Hello", 10, $.). +".....Hello" +
+
+ + + + Find the index of a substring. + +

Returns the position where the last occurrence of + SubString begins in String. + Returns 0 if SubString + does not exist in String.

+

This function is obsolete. + Use + find/3.

+

Example:

+ +> string:rstr(" Hello Hello World World ", "Hello World"). +8 +
+
+ + + + Span characters at start of a string. + +

Returns the length of the maximum initial segment of + String, which consists entirely of characters + from Chars.

+

This function is obsolete. + Use + take/2.

+

Example:

+ +> string:span("\t abcdef", " \t"). +5 +
+
+ + + + Find the index of a substring. + +

Returns the position where the first occurrence of + SubString begins in String. + Returns 0 if SubString + does not exist in String.

+

This function is obsolete. + Use + find/2.

+

Example:

+ +> string:str(" Hello Hello World World ", "Hello World"). +8 +
+
+ + + + + + Strip leading or trailing characters. + +

Returns a string, where leading or trailing, or both, blanks or a + number of Character have been removed. + Direction, which can be left, right, + or both, indicates from which direction blanks are to be + removed. strip/1 is equivalent to + strip(String, both).

+

This function is obsolete. + Use + trim/3.

+

Example:

+ +> string:strip("...Hello.....", both, $.). +"Hello" +
+
+ + + + + Extract a substring. + +

Returns a substring of String, starting at + position Start to the end of the string, or to + and including position Stop.

+

This function is obsolete. + Use + slice/3.

+

Example:

+ +sub_string("Hello World", 4, 8). +"lo Wo" +
+
+ + + + + Return a substring of a string. + +

Returns a substring of String, starting at + position Start, and ending at the end of the + string or at length Length.

+

This function is obsolete. + Use + slice/3.

+

Example:

+ +> substr("Hello World", 4, 5). +"lo Wo" +
+
+ + + + + Extract subword. + +

Returns the word in position Number of + String. Words are separated by blanks or + Characters.

+

This function is obsolete. + Use + nth_lexeme/3.

+

Example:

+ +> string:sub_word(" Hello old boy !",3,$o). +"ld b" +
+
+ + + + + + + Convert case of string (ISO/IEC 8859-1). + + + + + +

The specified string or character is case-converted. Notice that + the supported character set is ISO/IEC 8859-1 (also called Latin 1); + all values outside this set are unchanged

+

This function is obsolete use + lowercase/1, + uppercase/1, + titlecase/1 or + casefold/1.

+
+
+ + + + Split string into tokens. + +

Returns a list of tokens in String, separated + by the characters in SeparatorList.

+

Example:

+ +> tokens("abc defxxghix jkl", "x "). +["abc", "def", "ghi", "jkl"] +

Notice that, as shown in this example, two or more + adjacent separator characters in String + are treated as one. That is, there are no empty + strings in the resulting list of tokens.

+

This function is obsolete. + Use + lexemes/2.

+
+
+ + + + + Count blank separated words. + +

Returns the number of words in String, separated + by blanks or Character.

+

This function is obsolete. + Use + lexemes/2.

+

Example:

+ +> words(" Hello old boy!", $o). +4 +
+
+
+ +
+ Notes +

Some of the general string functions can seem to overlap each + other. The reason is that this string package is the + combination of two earlier packages and all functions of + both packages have been retained.

+
+ diff --git a/lib/stdlib/src/otp_internal.erl b/lib/stdlib/src/otp_internal.erl index 122b476ddb..5b488cc677 100644 --- a/lib/stdlib/src/otp_internal.erl +++ b/lib/stdlib/src/otp_internal.erl @@ -609,52 +609,6 @@ obsolete_1(filename, find_src, 2) -> obsolete_1(erlang, hash, 2) -> {removed, {erlang, phash2, 2}, "20.0"}; -%% Added in OTP-21 -obsolete_1(string, len, 1) -> - {deprecated, "deprecated; use string:length/3 instead"}; -obsolete_1(string, concat, 2) -> - {deprecated, "deprecated; use [Str1,Str2] instead"}; -obsolete_1(string, str, 2) -> - {deprecated, "deprecated; use string:find/2 instead"}; -obsolete_1(string, rstr, 2) -> - {deprecated, "deprecated; use string:find/3 instead"}; -obsolete_1(string, chr, 2) -> - {deprecated, "deprecated; use string:find/2 instead"}; -obsolete_1(string, rchr, 2) -> - {deprecated, "deprecated; use string:find/3 instead"}; -obsolete_1(string, span, 2) -> - {deprecated, "deprecated; use string:take/2 instead"}; -obsolete_1(string, cspan, 2) -> - {deprecated, "deprecated; use string:take/3 instead"}; -obsolete_1(string, substr, _) -> - {deprecated, "deprecated; use string:slice/3 instead"}; -obsolete_1(string, tokens, 2) -> - {deprecated, "deprecated; use string:lexemes/2 instead"}; -obsolete_1(string, chars, _) -> - {deprecated, "deprecated; use lists:duplicate/2 instead"}; -obsolete_1(string, copies, _) -> - {deprecated, "deprecated; use lists:duplicate/2 instead"}; -obsolete_1(string, words, _) -> - {deprecated, "deprecated; use string:lexemes/2 instead"}; -obsolete_1(string, strip, _) -> - {deprecated, "deprecated; use string:trim/3 instead"}; -obsolete_1(string, sub_word, _) -> - {deprecated, "deprecated; use string:nth_lexeme/3 instead"}; -obsolete_1(string, sub_string, _) -> - {deprecated, "deprecated; use string:slice/3 instead"}; -obsolete_1(string, left, _) -> - {deprecated, "deprecated; use string:pad/3 instead"}; -obsolete_1(string, right, _) -> - {deprecated, "deprecated; use string:pad/3 instead"}; -obsolete_1(string, centre, _) -> - {deprecated, "deprecated; use string:pad/3 instead"}; -obsolete_1(string, join, _) -> - {deprecated, "deprecated; use lists:join/2 instead"}; -obsolete_1(string, to_upper, _) -> - {deprecated, "deprecated; use string:uppercase/1 or string:titlecase/1 instead"}; -obsolete_1(string, to_lower, _) -> - {deprecated, "deprecated; use string:lowercase/1 or string:casefold/1 instead"}; - %% not obsolete obsolete_1(_, _, _) -> diff --git a/lib/stdlib/src/string.erl b/lib/stdlib/src/string.erl index 4e89819e41..0736374f21 100644 --- a/lib/stdlib/src/string.erl +++ b/lib/stdlib/src/string.erl @@ -88,16 +88,6 @@ %%% May be removed -export([list_to_float/1, list_to_integer/1]). --deprecated([{len,1},{concat,2}, - {str,2},{chr,2},{rchr,2},{rstr,2}, - {span,2},{cspan,2},{substr,'_'},{tokens,2}, - {chars,'_'}, - {copies,2},{words,'_'},{strip,'_'}, - {sub_word,'_'},{left,'_'},{right,'_'}, - {sub_string,'_'},{centre,'_'},{join,2}, - {to_upper,1}, {to_lower,1} - ]). - %% Uses bifs: string:list_to_float/1 and string:list_to_integer/1 -spec list_to_float(String) -> {Float, Rest} | {'error', Reason} when String :: string(), -- cgit v1.2.3