More enhancements for documenting functions:
authorstevenknight <stevenknight@fdb21ef1-2011-0410-befe-b5e4ea1792b1>
Thu, 4 Mar 2010 02:16:32 +0000 (02:16 +0000)
committerstevenknight <stevenknight@fdb21ef1-2011-0410-befe-b5e4ea1792b1>
Thu, 4 Mar 2010 02:16:32 +0000 (02:16 +0000)
* Add the support for global="0" and env="0" to SConsDoc.py.
* Remove unnecessary .IP lines before '\""" delimiters before the
  next builder / tool / function entry.
* Add support for <variablelist> lists.

git-svn-id: http://scons.tigris.org/svn/scons/trunk@4690 fdb21ef1-2011-0410-befe-b5e4ea1792b1

bin/SConsDoc.py
bin/scons-proc.py

index 72d8c1cfb7f48fd797fa67ded573710662868200..cd78195aba575321a26d05b6cba0237e4a7984fc 100644 (file)
@@ -114,7 +114,7 @@ import re
 import sys
 import xml.sax.handler
 
-class Item:
+class Item(object):
     def __init__(self, name):
         self.name = name
         self.sort_name = name.lower()
@@ -134,7 +134,10 @@ class Builder(Item):
     pass
 
 class Function(Item):
-    pass
+    def __init__(self, name, global_signature, env_signature):
+        super(Function, self).__init__(name)
+        self.global_signature = global_signature
+        self.env_signature = env_signature
 
 class Tool(Item):
     def __init__(self, name):
@@ -164,7 +167,7 @@ class Arguments:
     def __str__(self):
         s = ''.join(self.body).strip()
         result = []
-        for m in re.findall('([a-zA-Z_]+|[^a-zA-Z_]+)', s):
+        for m in re.findall('([a-zA-Z/_]+|[^a-zA-Z/_]+)', s):
             if ' ' in m:
                 m = '"%s"' % m
             result.append(m)
@@ -296,7 +299,9 @@ class SConsDocHandler(xml.sax.handler.ContentHandler,
         try:
             function = self.functions[name]
         except KeyError:
-            function = Function(name)
+            function = Function(name,
+                                attrs.get('global', "1"),
+                                attrs.get('env', "1"))
             self.functions[name] = function
         self.begin_xxx(function)
     def end_scons_function(self):
index b6c59d653ed994cd5681e5160d5dc0f01ac5bf02..41ff09a53e15c3db5c9d22fabeb2f2357f214056 100644 (file)
@@ -209,7 +209,15 @@ class SCons_XML_to_man(SCons_XML):
         body = string.replace(body, '<para>\n', '')
         body = string.replace(body, '<para>', '\n')
         body = string.replace(body, '</para>\n', '')
-        body = re.sub('\.EE\n\n+(?!\.IP)', '.EE\n.IP\n', body)
+
+        body = string.replace(body, '<variablelist>\n', '.RS 10\n')
+        body = re.compile(r'<varlistentry>\n<term>([^<]*)</term>\n<listitem>\n').sub(r'.HP 6\n.B \1\n', body)
+        body = string.replace(body, '</listitem>\n', '')
+        body = string.replace(body, '</varlistentry>\n', '')
+        body = string.replace(body, '</variablelist>\n', '.RE\n')
+
+        body = re.sub(r'\.EE\n\n+(?!\.IP)', '.EE\n.IP\n', body)
+        body = string.replace(body, '\n.IP\n\'\\"', '\n\n\'\\"')
         body = re.sub('&(scons|SConstruct|SConscript|jar);', r'\\fB\1\\fP', body)
         body = string.replace(body, '&Dir;', r'\fBDir\fP')
         body = string.replace(body, '&target;', r'\fItarget\fP')