From 89a595703351646212b406c6ff7c57b9bb821eb0 Mon Sep 17 00:00:00 2001
From: Doug Coleman <erg@secrets.local>
Date: Thu, 13 Nov 2008 19:32:34 -0600
Subject: [PATCH] add file-type>ch and ch>file-type

---
 basis/io/unix/files/files.factor | 24 ++++++++++++++++++++++++
 1 file changed, 24 insertions(+)

diff --git a/basis/io/unix/files/files.factor b/basis/io/unix/files/files.factor
index 9ebfdaaa5a..3f254e7713 100644
--- a/basis/io/unix/files/files.factor
+++ b/basis/io/unix/files/files.factor
@@ -172,6 +172,30 @@ M: unix (directory-entries) ( path -- seq )
 
 PRIVATE>
 
+: ch>file-type ( ch -- type )
+    {
+        { CHAR: b [ +block-device+ ] }
+        { CHAR: c [ +character-device+ ] }   
+        { CHAR: d [ +directory+ ] }
+        { CHAR: l [ +symbolic-link+ ] }
+        { CHAR: s [ +socket+ ] }
+        { CHAR: p [ +fifo+ ] }
+        { CHAR: - [ +regular-file+ ] }
+        [ drop +unknown+ ]
+    } case ;
+
+: file-type>ch ( type -- string )
+    {
+        { +block-device+ [ CHAR: b ] }
+        { +character-device+ [ CHAR: c ] }
+        { +directory+ [ CHAR: d ] }
+        { +symbolic-link+ [ CHAR: l ] }
+        { +socket+ [ CHAR: s ] }
+        { +fifo+ [ CHAR: p ] }
+        { +regular-file+ [ CHAR: - ] }
+        [ drop CHAR: - ]
+    } case ;
+
 : UID           OCT: 0004000 ; inline
 : GID           OCT: 0002000 ; inline
 : STICKY        OCT: 0001000 ; inline