[Date Prev][Date Next][Subject Prev][Subject Next][ Date Index][ Subject Index]

Re: Change Invisibles: migrating from Xy 3.55 to 4.017 (should be4.018



Reply to note from Leslie Bialler  Fri, 10 Mar
2000 14:26:50 -0500

-> "Note #8. Searching for a function call. ... If you want to
-> search for a function call that is not assigned to a key, or if
-> you want to put the search command within a program, you have
-> to use the following format:
->
-> se/fn |string mnstring|

The manual is wrong! You *can* search for a function by putting the
function itself in the SEarch command. Take this odd-looking
statement:

BX se "BX "Q2

It flags each instance of func BX, just as you'd hope and expect.
But this bombs:

BX se "Q2 "Q2

The Q2 in quotes is misinterpreted as the mate to the initial func
BX , and you get a "Separator is missing" error. The solution is to
use the alternate BX syntax, which is to enclose the command in
parens (), brackets [] or braces {}. So this...

BX {se "Q2 "}

....works as expected. It flags each instance of "Q2 ". David A.,
Harry B., and other philosophers will have noted that we're deep
into Use-Mention here. Since "()", "[]" and "{}" are the only valid
command delimiters, all of these necessarily bomb:

BX se "([{Q2 }])"Q2
BX {se "([{Q2 }])"}
BX [se "([{Q2 }])"]
BX (se "([{Q2 }])")

Indeed, the feedback loop created by "([{Q2 }])" and strings like it
means that it's impossible to construct a single SEarch statement
that will flag it. You simply can't do it.

Or can you? (Hint: Yes, you can.) Takers?

First one to solve it gets a free subscription to this list.

--------------
Carl Distefano
CLDistefano@xxxxxxxx
http://users.datarealm.com/xywwweb/