]> gitweb.factorcode.org Git - factor.git/commitdiff
gopher: fix bug where empty lines weren't printed properly in menus.
authorJohn Benediktsson <mrjbq7@gmail.com>
Sun, 21 Dec 2014 17:42:54 +0000 (09:42 -0800)
committerJohn Benediktsson <mrjbq7@gmail.com>
Sun, 21 Dec 2014 17:42:54 +0000 (09:42 -0800)
extra/gopher/gopher.factor

index 38f10a72f055014e00308e18854e64217d86fd6e..e28522cfc25241bb7a028c6e0154bd70d967feb2 100644 (file)
@@ -67,9 +67,7 @@ TUPLE: gopher-link type name selector host port ;
 M: gopher-link summary >url present ;
 
 : <gopher-link> ( item -- gopher-link )
-    [ "" ] [
-        unclip swap "\t" split first4 gopher-link boa
-    ] if-empty ;
+    unclip swap "\t" split first4 gopher-link boa ;
 
 M: gopher-link >url
     dup type>> CHAR: h = [
@@ -93,19 +91,24 @@ M: gopher-link >url
 : gopher-text ( object -- lines )
     utf8 decode string-lines { "." } split1 drop ;
 
-: gopher-gif ( object -- image )
-    "gif" (image-class) load-image* ;
+: gopher-text. ( object -- )
+    gopher-text [ print ] each ;
 
-: gopher-menu ( object -- links )
-    gopher-text [ <gopher-link> ] map ;
+: gopher-gif. ( object -- )
+    "gif" (image-class) load-image* image. ;
+
+: gopher-menu. ( object -- )
+    gopher-text [
+        [ nl ] [ <gopher-link> gopher-link. ] if-empty
+    ] each ;
 
 PRIVATE>
 
 : gopher. ( url -- )
     gopher swap {
-        { A_TEXT [ gopher-text [ print ] each ] }
-        { A_MENU [ gopher-menu [ gopher-link. ] each ] }
-        { A_INDEX [ gopher-menu [ gopher-link. ] each ] }
-        { A_GIF [ gopher-gif image. ] }
+        { A_TEXT [ gopher-text. ] }
+        { A_MENU [ gopher-menu. ] }
+        { A_INDEX [ gopher-menu. ] }
+        { A_GIF [ gopher-gif. ] }
         [ drop . ]
     } case ;