aboutsummaryrefslogtreecommitdiff
path: root/jim_tcl.txt
diff options
context:
space:
mode:
Diffstat (limited to 'jim_tcl.txt')
-rw-r--r--jim_tcl.txt40
1 files changed, 32 insertions, 8 deletions
diff --git a/jim_tcl.txt b/jim_tcl.txt
index 09bd9c4..389522a 100644
--- a/jim_tcl.txt
+++ b/jim_tcl.txt
@@ -3730,6 +3730,10 @@ The legal options (which may be abbreviated) are:
or if the string is composed entirely of ASCII characters.
See UTF-8 AND UNICODE.
++*string byterange* 'string first last'+::
+ Like `string range` except works on bytes rather than characters.
+ These commands are identical if UTF-8 support is not enabled.
+
+*string compare ?-nocase?* 'string1 string2'+::
Perform a character-by-character comparison of strings +'string1'+ and
+'string2'+ in the same way as the C 'strcmp' procedure. Return
@@ -3799,6 +3803,30 @@ The legal options (which may be abbreviated) are:
If UTF-8 support is enabled, this may be different than the number of bytes.
See UTF-8 AND UNICODE
++*string map ?-nocase?* 'mapping string'+::
+ Replaces substrings in +'string'+ based on the key-value pairs in
+ +'mapping'+, which is a list of +key value key value \...+ as in the form
+ returned by `array get`. Each instance of a key in the string will be
+ replaced with its corresponding value. If +-nocase+ is specified, then
+ matching is done without regard to case differences. Both key and value may
+ be multiple characters. Replacement is done in an ordered manner, so the
+ key appearing first in the list will be checked first, and so on. +'string'+ is
+ only iterated over once, so earlier key replacements will have no affect for
+ later key matches. For example,
+
+ string map {abc 1 ab 2 a 3 1 0} 1abcaababcabababc
+
+ ::
+ will return the string +01321221+.
+ ::
+ Note that if an earlier key is a prefix of a later one, it will completely mask the later
+ one. So if the previous example is reordered like this,
+
+ string map {1 0 ab 2 a 3 abc 1} 1abcaababcabababc
+
+ ::
+ it will return the string +02c322c222c+.
+
+*string match ?-nocase?* 'pattern string'+::
See if +'pattern'+ matches +'string'+; return 1 if it does, 0
if it doesn't. Matching is done in a fashion similar to that
@@ -3813,16 +3841,16 @@ The legal options (which may be abbreviated) are:
+?+;;
Matches any single character in +'string'+.
- +[+'chars'+]+;;
+ +['chars']+;;
Matches any character in the set given by +'chars'+.
- If a sequence of the form +'x'+-+'y'+ appears in +'chars'+,
+ If a sequence of the form +'x-y'+ appears in +'chars'+,
then any character between +'x'+ and +'y'+, inclusive,
will match.
+{backslash}x+;;
Matches the single character +'x'+. This provides a way of
- avoiding the special interpretation of the characters \`\*?[]\`
- in +''+pattern+''+.
+ avoiding the special interpretation of the characters +{backslash}*?[]+
+ in +'pattern'+.
::
Performs a case-insensitive comparison if +-nocase+ is specified.
@@ -3839,10 +3867,6 @@ The legal options (which may be abbreviated) are:
it is treated as if it were +end+. If +'first'+ is greater than
+'last'+ then an empty string is returned.
-+*string byterange* 'string first last'+::
- Like 'string range' except works on bytes rather than characters. These commands
- are identical if UTF-8 support is not enabled
-
+*string repeat* 'string count'+::
Returns a new string consisting of +'string'+ repeated +'count'+ times.