Finder's trash object

Although system attribute sys[v, 1, 2] is not marked as deprecated the underlying C function (Gestalt) is indeed deprecated and even is partial displaying wrong results.

For example the result of this code

tell (system attribute "sysv") to set systemVersionString to (("1" & it mod 4096 div 256) as text) & "." & it mod 256 div 16 & "." & it mod 16

is “10.9.5” on a 10.10.5 system.

In this case, you can use something like:

considering numeric strings
	set is1011 to AppleScript's version > "2.4"
end considering

No-one is more reluctant than me :wink: However, in this case (a) we already have our hands dirty with the Finder, and (b) version is one of the handful of application properties that are actually returned by AppleScript itself, with no involvement from the app, and therefore you you are not really talking to the Finder. You can actually get the version without the app even running.

So in this case you can do it with a clear conscience :slight_smile:

Thanks Shane.

As the problem of system identification appears in scripts, it seems logical to use the AppleScript’s version.

It seems that I wasn’t really awake. I didn’t thought to the syntax
AppleScript’s version
or
version of AppleScript.

I’m not sure that it is useful to use “considering numeric strings” but maybe my memory about old values may be wrong.

Yvan KOENIG running El Capitan 10.11.1 in French (VALLAURIS, France) mardi 17 novembre 2015 14:24:55

If my memory is right, this problem isn’t a new one.
Happily, Apple’s engineers gave us a working scheme with:

system attribute "sysv"
log result (*4241*)
{system attribute "sys1", system attribute "sys2", system attribute "sys3"}
log result (*10, 11, 1*)

I really doubt that the attributes sys1, sys2 and sys3 are derived from the sysv one.

Yvan KOENIG running El Capitan 10.11.1 in French (VALLAURIS, France) mardi 17 novembre 2015 14:39:51

it’s not necessary in this case, but it can be if there’s a version x.y.z.

Actually, it’s probably the other way around. But the system attribute command itself should be avoided because of the deprecation.

On the other hand info for is deprecated since Leopard or even Tiger and is still working very well.

I guess if we stopped using everything that involved deprecated APIs, there wouldn’t be a lot of AppleScript left…
:frowning:

Thanks Shane.
In fact, it would be useful if a subset of the string become greater than 9.
For the main value I guess that I will never see AppleScript version 10.1 but maybe we will see version 2.10.

Yvan KOENIG running El Capitan 10.11.1 in French (VALLAURIS, France) mercredi 18 novembre 2015 11:04:08

Not much of the OS either :wink: