Brian.

So the inclusion of “[“ would have matched nothing in the original string 
""aaa[bbb””? That is, even though the bracketed string was not “closed” with 
“]”, did it try to find a string that began with “b”, failed, and therefore 
returned the original string untouched?

Craig

> On Jan 24, 2024, at 4:37 PM, Brian Milby via use-livecode 
> <use-livecode@lists.runrev.com> wrote:
> 
> I just want to clarify that this isn’t the regex version of filter but the 
> wildcard pattern version.  It is much less complicated than regex.  Square 
> brackets are used to group characters to be matched so you can use [abc]* to 
> match any item that starts with a, b, or c.  The dictionary entry for this is 
> pretty good.
> 
> Brian Milby
> br...@milby7.com <mailto:br...@milby7.com>
> 
>> On Jan 24, 2024, at 3:35 PM, Craig Newman via use-livecode 
>> <use-livecode@lists.runrev.com <mailto:use-livecode@lists.runrev.com>> wrote:
>> 
>> Brian.
>> 
>> The original post tried to filter a string by filtering (without) that 
>> actual string, and was interested in why that did not yield empty. 
>> Intuitively, the result of such a filter operation ought always to be empty. 
>> The presence of the char “[“ is the “culprit”. That is as far as I took it.
>> 
>> Anyway, you state that the char “[“ is a regex special character, which 
>> explains a lot. The other two, “?” and “*” filter without issue, though, and 
>> I guess one has to be a regex user to see why.
>> 
>> I am not.
>> 
>> Craig
>> 
>>> On Jan 24, 2024, at 2:53 PM, Brian Milby via use-livecode 
>>> <use-livecode@lists.runrev.com <mailto:use-livecode@lists.runrev.com>> 
>>> wrote:
>>> 
>>> Your test misses the actual issue:
>>> 
>>> on mouseup
>>> local tStr
>>> local tFilter
>>> put "a*b" into tFilter
>>> put "anything bold" into tStr
>>> filter tStr with tFilter
>>> put tStr
>>> end mouseup
>>> 
>>> Will yield "anything bold"
>>> 
>>> while using the following 2 lines:
>>> put "a?b" into tFilter
>>> put "a*b" into tStr
>>> will yield "a*b"
>>> 
>>> Finally, using the following 2 lines:
>>> put "a[?]b" into tFilter
>>> put "a?b" into tStr
>>> will  yield "a?b"
>>> 
>>> The point is that you can end up with issues if you are counting on "*" and
>>> "?" to filter literally.  They don't - they are wildcards and can match
>>> anything (multiple char or single char respectively).  The "[" is also
>>> special.
>>> 
>>> To ensure that your filters work properly if you do not want to use any
>>> wildcards (i.e. match * and ? literally) would require you to change *, ?,
>>> and [ to [*], [?], and [[].
>>> 
>>>> On Wed, Jan 24, 2024 at 1:19 PM Craig Newman via use-livecode <
>>>> use-livecode@lists.runrev.com <mailto:use-livecode@lists.runrev.com>> 
>>>> wrote:
>>>> 
>>>> OK, instead of working I did this:
>>>> 
>>>> on mouseUp
>>>> 
>>>> repeat with y = 1 to 255
>>>> 
>>>> put "XX" & numToChar(y) & "XX"  into temp
>>>> 
>>>> filter temp without temp
>>>> 
>>>> if temp <> "" then put y & return after accum
>>>> 
>>>> end repeat
>>>> 
>>>> answer accum
>>>> 
>>>> end mouseUp
>>>> 
>>>> There are two characters that prevent the filter command from doing its
>>>> job: ASCII 91 (“[“) and ASCII 10, the return char.
>>>> 
>>>> 
>>>> 
>>>> Craig
>>>> 
>>>> 
>>>>> On Jan 24, 2024, at 12:51 PM, Craig Newman via use-livecode <
>>>> use-livecode@lists.runrev.com <mailto:use-livecode@lists.runrev.com>> 
>>>> wrote:
>>>>> 
>>>>> Brian.
>>>>> 
>>>>> Nope. Those two chars pass through the filter, er, filtered.
>>>>> 
>>>>> Again, I did not test the entire character set.
>>>>> 
>>>>> Craig
>>>>> 
>>>>>> On Jan 24, 2024, at 11:05 AM, Brian Milby via use-livecode <
>>>> use-livecode@lists.runrev.com> wrote:
>>>>>> 
>>>>>> The only other two that would cause issues are ? and * which are single
>>>> and multiple char wildcards respectively.
>>>>>> 
>>>>>> Brian Milby
>>>>>> br...@milby7.com
>>>>>> 
>>>>>>> On Jan 24, 2024, at 10:21 AM, Craig Newman via use-livecode <
>>>> use-livecode@lists.runrev.com> wrote:
>>>>>>> 
>>>>>>> I did not test the ASCII set exhaustively, but the culprit is the
>>>> char “[“ (ASCII 91). Any other char (including “]”) in the string works
>>>> correctly, that is, nothing is left after the filter command executes.
>>>>>>> 
>>>>>>> I do not know enough to say whether that particular char  does
>>>> something to the filter command, which may use regex somehow in its inner
>>>> workings.
>>>>>>> 
>>>>>>> Craig
>>>>>>> 
>>>>>>> Craig
>>>>>>> 
>>>>>>>> On Jan 23, 2024, at 9:45 PM, Brian Milby via use-livecode <
>>>> use-livecode@lists.runrev.com> wrote:
>>>>>>>> 
>>>>>>>> Not sure this is really a bug.  The default is to match a
>>>> wildcardPattern.  If you want to match [ then you must use [[] in the
>>>> pattern.
>>>>>>>> 
>>>>>>>> Brian Milby
>>>>>>>> br...@milby7.com
>>>>>>>> 
>>>>>>>>>> On Jan 23, 2024, at 9:02 PM, Neville Smythe via use-livecode <
>>>> use-livecode@lists.runrev.com> wrote:
>>>>>>>>> 
>>>>>>>>> Try this in the msg box:
>>>>>>>>> 
>>>>>>>>> put "aaa[bbb" into tStr; put line 1 of tStr into tLine; filter tStr
>>>> without tLine; put tStr
>>>>>>>>> I get (using MacOS, LC 9.6.11)
>>>>>>>>> 
>>>>>>>>> aaa[bbb
>>>>>>>>> 
>>>>>>>>> That is to say, the line is not filtered out.
>>>>>>>>> 
>>>>>>>>> And:
>>>>>>>>> 
>>>>>>>>> put "aaa[bbb" into tStr; filter tStr with tStr; put tStr
>>>>>>>>> 
>>>>>>>>> produces an empty string instead of the original string.
>>>>>>>>> 
>>>>>>>>> The bug occurs if the line contains the character “[“ anywhere; any
>>>> lines containing that character are ignored by both filter with and filter
>>>> without.
>>>>>>>>> 
>>>>>>>>> This is really serious, because I rely on the filter command a lot,
>>>> as I would think do many other developers!
>>>>>>>>> 
>>>>>>>>> Don’t know if it occurs with other characters, but I have never seen
>>>> it before. I discovered it when filtering lines with regular expressions.
>>>> Other special regexp characters I have tested do not trigger the bug.
>>>>>>>>> 
>>>>>>>>> Neville Smythe
>>>>>>>>> 
>>>>>>>>> 
>>>>>>>>> 
>>>>>>>>> _______________________________________________
>>>>>>>>> use-livecode mailing list
>>>>>>>>> use-livecode@lists.runrev.com
>>>>>>>>> Please visit this url to subscribe, unsubscribe and manage your
>>>> subscription preferences:
>>>>>>>>> http://lists.runrev.com/mailman/listinfo/use-livecode
>>>>>>>> 
>>>>>>>> _______________________________________________
>>>>>>>> use-livecode mailing list
>>>>>>>> use-livecode@lists.runrev.com
>>>>>>>> Please visit this url to subscribe, unsubscribe and manage your
>>>> subscription preferences:
>>>>>>>> http://lists.runrev.com/mailman/listinfo/use-livecode
>>>>>>> 
>>>>>>> 
>>>>>>> _______________________________________________
>>>>>>> use-livecode mailing list
>>>>>>> use-livecode@lists.runrev.com
>>>>>>> Please visit this url to subscribe, unsubscribe and manage your
>>>> subscription preferences:
>>>>>>> http://lists.runrev.com/mailman/listinfo/use-livecode
>>>>>> 
>>>>>> _______________________________________________
>>>>>> use-livecode mailing list
>>>>>> use-livecode@lists.runrev.com
>>>>>> Please visit this url to subscribe, unsubscribe and manage your
>>>> subscription preferences:
>>>>>> http://lists.runrev.com/mailman/listinfo/use-livecode
>>>>> 
>>>>> 
>>>>> _______________________________________________
>>>>> use-livecode mailing list
>>>>> use-livecode@lists.runrev.com
>>>>> Please visit this url to subscribe, unsubscribe and manage your
>>>> subscription preferences:
>>>>> http://lists.runrev.com/mailman/listinfo/use-livecode
>>>> 
>>>> _______________________________________________
>>>> use-livecode mailing list
>>>> use-livecode@lists.runrev.com
>>>> Please visit this url to subscribe, unsubscribe and manage your
>>>> subscription preferences:
>>>> http://lists.runrev.com/mailman/listinfo/use-livecode
>>>> 
>>> _______________________________________________
>>> use-livecode mailing list
>>> use-livecode@lists.runrev.com
>>> Please visit this url to subscribe, unsubscribe and manage your 
>>> subscription preferences:
>>> http://lists.runrev.com/mailman/listinfo/use-livecode
>> 
>> 
>> _______________________________________________
>> use-livecode mailing list
>> use-livecode@lists.runrev.com
>> Please visit this url to subscribe, unsubscribe and manage your subscription 
>> preferences:
>> http://lists.runrev.com/mailman/listinfo/use-livecode
> 
> _______________________________________________
> use-livecode mailing list
> use-livecode@lists.runrev.com <mailto:use-livecode@lists.runrev.com>
> Please visit this url to subscribe, unsubscribe and manage your subscription 
> preferences:
> http://lists.runrev.com/mailman/listinfo/use-livecode

_______________________________________________
use-livecode mailing list
use-livecode@lists.runrev.com
Please visit this url to subscribe, unsubscribe and manage your subscription 
preferences:
http://lists.runrev.com/mailman/listinfo/use-livecode

Reply via email to