[OS X TeX] Re: Alpha, DoScript and non unix like paths

Jon Guyer jguyer at his.com
Thu Jan 6 10:08:56 EST 2005


On Jan 6, 2005, at 8:21 AM, Claus Gerhardt wrote:

> The 'quoted form of' is indeed an Applescript standard conversion. In 
> case of the DoScript command one should always use the following 
> syntax
>
> set fileNamedoublequoted to "\"" & fileName & "\""
> tell application "AlphaX"
> 	set theAnswer to DoScript "win::getInfo " & fileNamedoublequoted & " 
> " & "dirty"
> end tell
>
> This will work for any path, regardless if it complies with the unix 
> convention or not.

Actually, it won't. If the fileName has ", $, [, ] in it, you're going 
to have varying degrees of problems from Alpha, ranging from syntax 
errors to executing erroneous or even malicious code, depending on the 
name of the file.

set fileNameCurlied to "{" & fileName & "}"

would be somewhat safer, although then you have to worry about if 
you've got { or } in fileName. In the end, Tcl's quoting rules are 
fundamentally different from AppleScript's, which are fundamentally 
different from the shell's, which are fundamentally different from 
Python's, which are fundamentally different...

I think your only solutions are to either come up with the AppleScript 
equivalent of Alpha's

proc quote::Insert str {
     regsub -all {[][\\$"\{\}]} $str {\\&} str
     string map [list "\r" "\\r" "\n" "\\n" "\t" "\\t"] $str
}

or for us to give you a proper AppleScript interface.

The first choice assumes that AppleScript has access to the same string 
mangling facilities that Alpha does, which, short of a regular 
expression OSAX (which do exist, I know), I don't think it does. 
Languages like Tcl and Perl are fundamentally better at string handling 
than AppleScript is.

The second choice involves some things that Alpha already has [*], and 
some careful thought about what the crucial set and syntax of 
AppleScript commands should be. Alpha has thousands of Tcl commands, 
and there's no point in trying to replicate them all for 
AppleScripters, but I think we're going to be better off providing a 
proper AppleScript interface to at least basic information about 
windows, window state, as well as providing mechanisms for selecting 
and replacing text. I've already shown you how we can do some of this.

Last night, I started to write an accessor for window properties ("get 
dirty state of frontmost window" and such), but ran into a limitation 
in my ascr/gdte handler that wasn't trivial to fix. It can and will be 
fixed, but it was going to take more time than I had at the moment.

I'm curious, though. A number of the commands that you've requested 
have involved the topmost window. What happens when the topmost window 
isn't a TeX file, or isn't even associated with a file? In your ideal 
world, what would you really like to know from Alpha? Let's design a 
good interface now and save ourselves trouble in the long run.


[*] I've spent a great deal of time thinking about AppleScripting 
Alpha, actually, and have built a great deal of AppleScripting power 
into Alpha (also available to any other Tcl application), but nobody's 
ever expressed any interest in it, so I've found other things to occupy 
my time.

--------------------- Info ---------------------
Mac-TeX Website: http://www.esm.psu.edu/mac-tex/
           & FAQ: http://latex.yauh.de/faq/
TeX FAQ: http://www.tex.ac.uk/faq
List Post: <mailto:MacOSX-TeX at email.esm.psu.edu>





More information about the MacOSX-TeX mailing list