[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: .substring bug - indicies don't work as documented(?)
From: |
Werner LEMBERG |
Subject: |
Re: .substring bug - indicies don't work as documented(?) |
Date: |
Mon, 29 Oct 2001 22:17:02 +0100 (CET) |
> No objection to changing it from here, but I'm not sure what it would
> be changed to.
Here is the documentation of `substring' in Elisp.
- Function: substring string start &optional end
This function returns a new string which consists of those
characters from STRING in the range from (and including) the
character at the index START up to (but excluding) the character
at the index END. The first character is at index zero.
(substring "abcdefg" 0 3)
=> "abc"
Here the index for `a' is 0, the index for `b' is 1, and the index
for `c' is 2. Thus, three letters, `abc', are copied from the
string `"abcdefg"'. The index 3 marks the character position up
to which the substring is copied. The character whose index is 3
is actually the fourth character in the string.
A negative number counts from the end of the string, so that -1
signifies the index of the last character of the string. For
example:
(substring "abcdefg" -3 -1)
=> "ef"
In this example, the index for `e' is -3, the index for `f' is -2,
and the index for `g' is -1. Therefore, `e' and `f' are included,
and `g' is excluded.
When `nil' is used as an index, it stands for the length of the
string. Thus,
(substring "abcdefg" -3 nil)
=> "efg"
Omitting the argument END is equivalent to specifying `nil'. It
follows that `(substring STRING 0)' returns a copy of all of
STRING.
(substring "abcdefg" 0)
=> "abcdefg"
Werner
Re: .substring bug - indicies don't work as documented(?), Werner LEMBERG, 2001/10/27