| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899 | 
							- ##############################################################################
 
- # Name:       misc/scripts/update_doc_libs.py
 
- # Purpose:    Automatically insert \Library{} headers in the doc files
 
- # Created:    2007-07-28
 
- # Copyright:  (c) 2007 Francesco Montorsi
 
- # Licence:    wxWindows licence
 
- ##############################################################################
 
- from update_doc_utils import scanTexFiles
 
- INCLUDE_PATH="../../include"
 
- def myCallback(classname, texFileName, content, i):
 
-     tofix.add(texFileName)     # consider this .tex broken
 
-     # now search the include file for this class
 
-     include = ""
 
-     for j in range(i,len(content)):
 
-         line = content[j]
 
-         if "wx/" in line and ".h" in line:
 
-             include = line[line.find("wx/"):line.find(".h")+2]
 
-             break
 
-     if include == "":
 
-         print " no include file declared for class %s" % classname
 
-         return True # go on with next \class
 
-     include = include.replace("\\_", "_")
 
-     print " the include file for %s is %s" % (classname, include)
 
-     # does this .tex already contains the \wxheading{Library} section nearby the include file?
 
-     for k in range(j,min(len(content), j+3)):
 
-         line = content[k]
 
-         if "\wxheading{Library}" in line:
 
-             print " this \class section already has its \wxheading{Library} section... skipping"
 
-             tofix.remove(texFileName) # was a valid .tex (at least for current class)
 
-             return True   # go on with next \class
 
-     # now try to understand which lib contains this class
 
-     include = INCLUDE_PATH + "/" + include
 
-     header = open(include, "r")
 
-     if not header:
 
-         print " could not open %s" % include
 
-         return True # go on with next \class
 
-     decl = ""
 
-     content2 = header.readlines()
 
-     # if they exist append port-specific headers contents
 
-     for c in ["wx/gtk/", "wx/msw/", "wx/mac/", "wx/generic/"]:
 
-         try:
 
-             temp = include.replace("wx/", c)
 
-             print " trying to open %s..." % temp
 
-             header = open(temp, "r")
 
-             headercontents = header.readlines()
 
-             content2 = content2 + headercontents
 
-             print " added %d lines from %s" % (len(headercontents), temp)
 
-         except:
 
-             pass
 
-     # now search for the export-declaration associated with this class
 
-     for line in content2:
 
-         if "class " in line and classname in line:
 
-             if line.find("class") < line.find(classname):  # could be a comment
 
-                 if "_" in line:
 
-                     decl = line[line.find("_")+1:]
 
-                     decl = decl[:decl.find(" ")]
 
-                     decl = decl.replace("FWD_", "")
 
-                     decl = decl[0:1].upper() + decl[1:].lower()
 
-                     break
 
-                 elif " WXDLLEXPORT " in line:
 
-                     decl = "Core"
 
-                     break
 
-     if decl == "":
 
-         print " no declaration associated with %s" % classname
 
-         return True # go on with next \class
 
-     print " the declaration associated with %s is %s" % (classname, decl)
 
-     tofix.remove(texFileName) # was a valid .tex (at least for current class)
 
-     # now modify the .tex file
 
-     content.insert(j+2, "\wxheading{Library}\n\n\helpref{wx%s}{librarieslist}\n\n" % decl)
 
-     # write it
 
-     file = open(texFileName, "w")
 
-     file.write(''.join(content))
 
-     file.flush()
 
-     print " updated %s" % texFileName
 
-     fixed = fixed+1
 
-     return True
 
- fixed = 0
 
- tofix = set()
 
- count = scanTexFiles(myCallback)
 
- print "\nProcessed %d files, automatically fixed %d files." % (count, fixed)
 
- print "There are %d files to fix manually:\n%s" % (len(tofix), '\n'.join(tofix))
 
 
  |