[Gd-chatter] r11158 - trunk/src/tools/refman

agent at gwydiondylan.org agent at gwydiondylan.org
Sun Jan 28 02:47:39 CET 2007


Author: agent
Date: Sun Jan 28 02:47:37 2007
New Revision: 11158

Modified:
   trunk/src/tools/refman/refman.dylan
Log:
Job: minor
Fixed a refman crash, and better OD refman compliance.



Modified: trunk/src/tools/refman/refman.dylan
==============================================================================
--- trunk/src/tools/refman/refman.dylan	(original)
+++ trunk/src/tools/refman/refman.dylan	Sun Jan 28 02:47:37 2007
@@ -160,7 +160,7 @@
       if (class-type.functional?) " functional" else "" end);
 
   // Get superclasses.
-  let superclasses-text = reduce1(concatenate,
+  let superclasses-text = reduce(concatenate, "",
       map(curry(format-to-string, "%s "), class-type.direct-superclasses))
       .cdata;
 
@@ -265,7 +265,7 @@
       // <name> and <type> apply to all keywords.
       <keyword-in>-text := concatenate(<keyword-in>-text, format-to-string(
           "\n            <keyword-in>"
-          "\n              <name>%s:</name>"
+          "\n              <name>%s</name>"
           "\n              <type>%s</type>"
           "\n              <description>",
           as(<string>, keyword.key-name).xml-esc,
@@ -362,7 +362,8 @@
 define function disamb-type-from-ctype
    (the-entry :: <definition>, ctype :: <ctype>)
 => (text :: <string>)
-  let location-string = "";
+  // I use format-to-string here to textify ctype.
+  let location-string = format-to-string("%s", ctype);
   if (instance?(ctype, <defined-cclass>))
 
     // Location of current definition.
@@ -375,27 +376,26 @@
     let type-library = type-module.module-home;
   
     // Disambiguate like OD does: don't specify library/module if the same.
-    // Also, use the DRM's "dylan:dylan" instead of "Dylan:Dylan-Viscera".
-    if (type-library ~= this-library)
-      location-string := concatenate(location-string,
-          if (type-library ~= $Dylan-Library)
-            as(<string>, type-library.library-name);
-          else
-            "dylan";
-          end, ":");
-    end if;
+    // Also, use the DRM's "dylan:dylan" instead of "Dylan-Viscera:Dylan".
     if (type-module ~= this-module)
-      location-string := concatenate(location-string,
+      location-string := concatenate(location-string, ":",
           if (type-module ~= $Dylan-Module)
             as(<string>, type-module.module-name);
           else
             "dylan";
-          end, ":");
+          end);
+    end if;
+    if (type-library ~= this-library)
+      location-string := concatenate(location-string, ":",
+          if (type-library ~= $Dylan-Library)
+            as(<string>, type-library.library-name);
+          else
+            "dylan";
+          end);
     end if;
   end if;
 
-  // I use format-to-string here instead of concatenate to textify ctype.
-  format-to-string("%s%s", location-string, ctype).cdata;
+  location-string.cdata;
 end;
 
 



More information about the chatter mailing list