ollef@sics.se (Olle Furberg) (01/17/91)
I was trying to modify the behavoir of the find-commmand in one of my stacks. I wanted to intercept it, and check if it really did find anything. If the result was "not found" I would force it to continue the search in another stack, called "verb". After more than one hour of HT-hacking I've given up. This shouldn't be so hard to do, but I just can't see it, plz help me! Below I have three scripts. The first doesn't seems to do anything. The second does what I want to do, but it doesn't intercept the find-cmd. The third script is an example of a feature/bug of the HT-compiler (I guess?). I remember there was some discussion about this some weeks before, but I can't recall the result of the discussion. In some situations HC seems to execute "go"-statements in advance (before the preceding lines). ---This doesn't work at all on find what send find && what to hypercard if the result is not empty then if hilite of bg btn "Find verb" then go verb send find && what to hypercard end if end if end find -- This one works but I really want to intercept the "find"- -- command, not creat a new one. on LookFor what send find && what to hypercard ---(Yea, "find what" is enough) if the result is not empty then if hilite of bg btn "Find verb" then go verb send find && what to hypercard end if end if end LookFor -- In this script: if the button "Find verb" is hilited, this script -- seems to jump to stack "verb" before it executes the very test! In -- that situation it stops the execution (while being on the "verb" -- stack and complains "Can't find any btn 'Find verb'!" (That button -- is on the first stack, from where the script is executed.) -- If the btn is not hilited it doesn't go to the stack. -- If "find what" is replaced by "send find && what to hypercard", HC goes -- to stack "verb" without complaining. on find what send find && what to hypercard if the result is not empty then if hilite of bg btn "Find verb" then go verb find what -- this was a small blunder, I forgot "send..." end if end if end find