Get a handler from a script

Mark Smith mark at
Sun Mar 19 08:35:43 EST 2006

This might be dealt with better with a 'try...catch' structure. I  
don't know much about the error numbers that Rev produces, but

catch tError
   put tError
end try

where I know handler cmdName is commented out consistently produces  
this error string:

This may or may not be useful in the context you described, but  
perhaps offers another way of testing for the existence or  
availability of a handler.


On 19 Mar 2006, at 13:18, David Burgun wrote:

> Hi,
> The problem is that if you are doing something like this:
> if the script of myObject contains "on HandlerName" then
>   send HandlerName to myObject
> end if
> This this will work if the Hander is NOT commented out, but will  
> fail with an error if the handler IS commented out. Also if you  
> have a comment in a Script that just happens to contain "on  
> HandlerName" then the "if" will succeed even though there is no  
> handler defined.
> I had a problem that took me ages to figure out. In a script I had  
> something like the following:
> --on Update make sure the field is not selected
> which meant that:
> if the script of myObject contains "on Update" then
> succeeded, but the send statement failed since there wasn't really  
> a handler called "update" defined. Checking for "end Update" *may*  
> have worked, as long as there was not a line that read something like:
> send Update to myObject
> Also checking for "end Update" slows the whole process down.
> What would be nice is the ability to check if a (real) handler  
> exists not just that the script contains text that looks like a  
> handler defintion. Something like this would be good:
> if exists(handler "Update" in script of myObject) then
> Which would make it 100% foolproof.
> All the Best
> Dave
> On 17 Mar 2006, at 12:19, Mark Smith wrote:
>> Commenting would only affect things if the wholeMatches is set to  
>> true - normally, lineOffset will get the right line even if it's  
>> commented out, no?
>> Mark
>> On 17 Mar 2006, at 12:06, David Burgun wrote:
>>> Hi,
>>> Of course none of the solutions so far work if the function is  
>>> commented out. To make the code 100% foolproof is a lot of work.  
>>> I was doing something similar and found that comments made life  
>>> really difficult.
>>> All the Best
>>> Dave
>>> On 17 Mar 2006, at 11:42, Robert Brenstein wrote:
>>>>> Perhaps using
>>>>> set the wholematches to true
>>>>> put lineOffset("on" && pHandlerName, pScript) into tStart
>>>>> if tStart is 0 then put lineOffset("function" && pHandlerName,  
>>>>> pScript) into
>>>>> tStart
>>>>> put (lineOffset("end" && pHandlerName, pScript) +1 into tEnd
>>>>> answer tStart & cr & tEnd
>>>>> Jim Ault
>>>>> Las Vegas
>>>> Unfortunately, wholematches can't be used, at least for the  
>>>> first lineoffset, because there are likely some parameters  
>>>> further in that line. The alternative to lineOffset is to use  
>>>> regex.
>>>> A truly generic function would need to know whether it searches  
>>>> for command or function, because it is possible to have one of  
>>>> each with the same name.
>>>> Robert
> _______________________________________________
> use-revolution mailing list
> use-revolution at
> Please visit this url to subscribe, unsubscribe and manage your  
> subscription preferences:

More information about the Use-livecode mailing list