offset broken?

prothero at earthednet.org prothero at earthednet.org
Sat Feb 22 12:49:21 EST 2014


Folks:
I think there is something weird about "offset". This occurred on version 6.5 and now on 6.6.

First off, the documents say:

"the charsToSkip is a non-negative integer. If you don't specify how many charsToSkip, the offset function does not skip any items and starts at the beginning of the stringToSearch."

Note the use of the word "items".  Skipping characters vs skipping "items" is a different matter. In the revdocs that are online, the definition of "characters" to skip is correct.

But, that's not the end of the story. Offset does not appear to be working correctly anyway.

If I run the script:

   put "abcdefgabcccablmnopoq" into theChars
   put offset("c",theChars)

I get: 3, which is correct

If I do:
   put "abcdefgabcccablmnopoq" into theChars
   put offset("c",theChars,3)

I get 7.  ??? What the heck? It looks like it returns (the number of characters to the search char) - (# to skip).

But, if I do:
   put "abcdefgabcccablmnopoq" into theChars
   put offset("c",theChars,7)

I get: 3

So, something is very wrong with the offset command. I worked around this in a parsing script by always not skipping any characters, then after I found the first instance, deleting the characters I wanted to skip before the next offset invocation.

Seems like a bug to me. What do you think? Or is it only my system? Or is the use of the offset function some convoluted logic that's different from most other implementations of an offset function? What do I know? I'm new to Livecode.

Best,
Bill


William Prothero
http://es.earthednet.org





More information about the use-livecode mailing list