Morgan wrote:
As I understand it, an Autokey script is just a fairly direct translation of keystrokes of the sort made during an autokey recording (with the autokey parser effectively taking over from the keyboard). As such, there are virtually no flow control or suchlike constructs, only keystroke commands.
This is exactly right. The autokey feature was written in a few days time when the book Fractal Creations was being put together, in order to do demos. Since all Fractint keystroke I/O goes through one function, it occurred to me that if I could intercept those keystrokes, I could duplicate the interactive control of the program, feeding the keystrokes back through the same function. The GOTO was added later. One intense session of programming added a very useful feature in a short time.
It would be a Good Thing (at least, in my opinion), if the Autokey feature were to be extended to become more of a proper scripting language however. Then I wouldn't need to write Perl scripts to write Autokey scripts :)
The beauty, and the weakness, of the autokey setup is that it is literally tied to keystrokes. This means that you can get autokey to make fractint do (almost) anything that a person can make fractint do. But it also means that the scripts are nearly un-intelligible, and are also liable to be broken anytime the the programmers change the user interface. A "proper" scripting language would be more abstract, and would be procedural. This would be more independent of the interface. However, this would be a completely different animal from the existing scripting language, which basically reads the script file and feeds keystrokes into fractint's keystrock function as though a person had typed them. So I don't think this will happen unless someone wants to add a completely new feature (many years ago I did give it some thought.) An autokey include mechanism is probably doable, though I am not sure I see the point. Maybe Tony can convince me :-) Or maybe he has already made a case, I'll go back and read the messages. Tim