From f528a3ca4c24dbe1a23aa24b48c6996b9d761fdf Mon Sep 17 00:00:00 2001 From: John Benediktsson Date: Fri, 19 Aug 2011 16:49:22 -0700 Subject: [PATCH] gestalt vocab for mac. --- extra/gestalt/authors.txt | 1 + extra/gestalt/gestalt.factor | 53 ++++++++++++++++++++++++++++++++++++ extra/gestalt/platforms.txt | 1 + 3 files changed, 55 insertions(+) create mode 100644 extra/gestalt/authors.txt create mode 100644 extra/gestalt/gestalt.factor create mode 100644 extra/gestalt/platforms.txt diff --git a/extra/gestalt/authors.txt b/extra/gestalt/authors.txt new file mode 100644 index 0000000000..e091bb8164 --- /dev/null +++ b/extra/gestalt/authors.txt @@ -0,0 +1 @@ +John Benediktsson diff --git a/extra/gestalt/gestalt.factor b/extra/gestalt/gestalt.factor new file mode 100644 index 0000000000..d88ea9e0f4 --- /dev/null +++ b/extra/gestalt/gestalt.factor @@ -0,0 +1,53 @@ +! Copyright (C) 2011 John Benediktsson +! See http://factorcode.org/license.txt for BSD license + +USING: alien.data alien.syntax combinators core-foundation +formatting io.binary kernel math ; + +IN: gestalt + + + +: gestalt ( selector -- response ) + 0 SInt32 [ Gestalt ] keep + swap [ throw ] unless-zero le> ; + +: system-version ( -- n ) + "sysv" be> gestalt ; + +: system-version-major ( -- n ) + "sys1" be> gestalt ; + +: system-version-minor ( -- n ) + "sys2" be> gestalt ; + +: system-version-bugfix ( -- n ) + "sys3" be> gestalt ; + +: system-version-string ( -- str ) + system-version-major + system-version-minor + system-version-bugfix + "%s.%s.%s" sprintf ; + +: system-code-name ( -- str ) + system-version HEX: FFF0 bitand { + { HEX: 1070 [ "Lion" ] } + { HEX: 1060 [ "Snow Leopard" ] } + { HEX: 1050 [ "Leopard" ] } + { HEX: 1040 [ "Tiger" ] } + { HEX: 1030 [ "Panther" ] } + { HEX: 1020 [ "Jaguar" ] } + { HEX: 1010 [ "Puma" ] } + { HEX: 1000 [ "Cheetah" ] } + [ drop "Unknown" ] + } case ; + diff --git a/extra/gestalt/platforms.txt b/extra/gestalt/platforms.txt new file mode 100644 index 0000000000..6e806f449e --- /dev/null +++ b/extra/gestalt/platforms.txt @@ -0,0 +1 @@ +macosx