]> gitweb.factorcode.org Git - factor.git/commitdiff
system-info.macosx: Using 'gestalt' to support 'os-version' on macosx.
authorJohn Benediktsson <mrjbq7@gmail.com>
Sun, 11 Sep 2011 15:29:16 +0000 (08:29 -0700)
committerJohn Benediktsson <mrjbq7@gmail.com>
Sun, 11 Sep 2011 15:29:16 +0000 (08:29 -0700)
basis/system-info/macosx/authors.txt
basis/system-info/macosx/macosx.factor
extra/gestalt/authors.txt [deleted file]
extra/gestalt/gestalt.factor [deleted file]
extra/gestalt/platforms.txt [deleted file]

index 7c1b2f22790bfdca05f14a555a40b7eaa3ce2abd..f3291fce3ec88e32ba4bf4348fb9fd48275b2339 100755 (executable)
@@ -1 +1,2 @@
 Doug Coleman
+John Benediktsson
index faf69a881e124bc6be97f43db50eb60c20b0b717..62c6e9d156d307ca399a1dd04bbb72d0f006de6b 100644 (file)
@@ -1,11 +1,48 @@
-! Copyright (C) 2008 Doug Coleman.
+! Copyright (C) 2008 Doug Coleman, John Benediktsson.
 ! See http://factorcode.org/license.txt for BSD license.
+
 USING: alien alien.c-types alien.data alien.strings alien.syntax
-byte-arrays kernel namespaces sequences unix
-system io.encodings.utf8 system-info ;
+arrays assocs byte-arrays combinators core-foundation io.binary
+io.encodings.utf8 kernel math namespaces sequences system
+system-info unix ;
+
 IN: system-info.macosx
 
-M: macosx os-version f ;
+<PRIVATE
+
+TYPEDEF: SInt16 OSErr
+TYPEDEF: UInt32 OSType
+FUNCTION: OSErr Gestalt ( OSType selector, SInt32* response ) ;
+
+: gestalt ( selector -- response )
+    0 SInt32 <ref> [ 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 ;
+
+CONSTANT: system-code-names H{
+    { 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" }
+}
+
+: system-code-name ( -- str/f )
+    system-version HEX: FFF0 bitand system-code-names at ;
+
+PRIVATE>
+
+M: macosx os-version
+    system-version-major
+    system-version-minor
+    system-version-bugfix 3array ;
 
 ! See /usr/include/sys/sysctl.h for constants
 
diff --git a/extra/gestalt/authors.txt b/extra/gestalt/authors.txt
deleted file mode 100644 (file)
index e091bb8..0000000
+++ /dev/null
@@ -1 +0,0 @@
-John Benediktsson
diff --git a/extra/gestalt/gestalt.factor b/extra/gestalt/gestalt.factor
deleted file mode 100644 (file)
index d88ea9e..0000000
+++ /dev/null
@@ -1,53 +0,0 @@
-! 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
-
-<PRIVATE
-
-TYPEDEF: SInt16 OSErr
-
-TYPEDEF: UInt32 OSType
-
-FUNCTION: OSErr Gestalt ( OSType selector, SInt32* response ) ;
-
-PRIVATE>
-
-: gestalt ( selector -- response )
-    0 SInt32 <ref> [ 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
deleted file mode 100644 (file)
index 6e806f4..0000000
+++ /dev/null
@@ -1 +0,0 @@
-macosx