[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Xen-changelog] Pass the root directory to Doxyfilter and thence pythfilter.py so that the latter can get the namespace/packages correct.



# HG changeset patch
# User ewan@xxxxxxxxxxxxx
# Node ID e939d5c5e646fe27e4c94563dc90a7f89a144556
# Parent  bcbd2d2c10680b16fd9597f2759773dc2cb29cdb
Pass the root directory to Doxyfilter and thence pythfilter.py so that the 
latter can get the namespace/packages correct.

diff -r bcbd2d2c1068 -r e939d5c5e646 docs/Doxyfile
--- a/docs/Doxyfile     Tue Sep 13 13:41:05 2005
+++ b/docs/Doxyfile     Tue Sep 13 13:42:21 2005
@@ -519,7 +519,7 @@
 # to standard output.  If FILTER_PATTERNS is specified, this tag will be 
 # ignored.
 
-INPUT_FILTER           = "sh ./Doxyfilter"
+INPUT_FILTER           = "sh ./Doxyfilter ../tools/python"
 
 # The FILTER_PATTERNS tag can be used to specify filters on a per file pattern 
 # basis.  Doxygen will compare the file name with each pattern and apply the 
diff -r bcbd2d2c1068 -r e939d5c5e646 docs/pythfilter.py
--- a/docs/pythfilter.py        Tue Sep 13 13:41:05 2005
+++ b/docs/pythfilter.py        Tue Sep 13 13:42:21 2005
@@ -469,12 +469,25 @@
         sys.stdout.write(s)
 
 def filter(filename):
-    global name, module_has_docstring
+    global name, module_has_docstring, source_root
 
     path,name = os.path.split(filename)
     root,ext  = os.path.splitext(name)
 
-    output("namespace "+root+" {\n",(0,0))
+    if source_root and path.find(source_root) == 0:
+        path = path[len(source_root):]
+
+        if path[0] == os.sep:
+            path = path[1:]
+
+        ns = path.split(os.sep)
+    else:
+        ns = []
+
+    ns.append(root)
+
+    for n in ns:
+        output("namespace " + n + " {\n",(0,0))
 
     # set module name for tok_eater to use if there's a module doc string
     name = root
@@ -486,7 +499,9 @@
     print_comment((0,0))
 
     output("\n",(0,0))
-    output("}  // end of namespace\n",(0,0))
+    
+    for n in ns:
+        output("}  // end of namespace\n",(0,0))
 
     if not module_has_docstring:
         # Put in default namespace documentation
@@ -611,9 +626,10 @@
 ######################################################################
 
 filter_file = False
+source_root = None
 
 try:
-    opts, args = getopt.getopt(sys.argv[1:], "hf", ["help"])
+    opts, args = getopt.getopt(sys.argv[1:], "hfr:", ["help"])
 except getopt.GetoptError,e:
     print e
     sys.exit(1)
@@ -622,10 +638,13 @@
     if o=="-f":
         filter_file = True
 
+    if o=="-r":
+        source_root = os.path.abspath(a)
+
 if filter_file:
     # Filter the specified file and print the result to stdout
     filename = string.join(args)
-    filterFile(filename)
+    filterFile(os.path.abspath(filename))
 else:
 
     if len(args)!=2:

_______________________________________________
Xen-changelog mailing list
Xen-changelog@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-changelog


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.