[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Wed, 26 Jun 2002 09:04:07 +0200
In the info file, .substring is documented by:
- Request: .substring str n1 [n2]
Replace the string in register STR with the substring defined by
the indices N1 and N2. The first character in the string has
index one. If N2 is omitted, it is taken to be equal to the
string's length. If the index value N1 or N2 is negative or zero,
it is counted from the end of the string, going backwards: The
last character has index 0, the character before the last
character has index -1, etc.
I remember that .substring was intended to become more compatible to
whatever. It seems that this did not happen so far. It still has the
first character as of index 1 and the last one as of index 0. I do
not know about any other language with such a behavior.
C and Python use index 0 and -1 as the first and last index resp.,
and a range is determined by the `before' idiom. This is not comfortable
to everyday thinking, but is quite handy once you got used to it - and
it is the standard for a host of languages.
The documentation of the first argument for .substring sounds a bit
strange to me. When using .substring the name of a string is passed,
not a register. Maybe some register shows up internally, but you cannot
pass some of your registers to this request.
- [Groff] .substring,
Bernd Warken <=