3f66f6a5b3
This keyword is not expanded by Git which means it's not replaced with the correct revision value in the releases made using git-based scripts and it's confusing to have lines with unexpanded "$Id$" in the released files. As expanding them with Git is not that simple (it could be done with git archive and export-subst attribute) and there are not many benefits in having them in the first place, just remove all these lines. If nothing else, this will make an eventual transition to Git simpler. Closes #14487. git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@74602 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
100 lines
3.6 KiB
Python
Executable File
100 lines
3.6 KiB
Python
Executable File
##############################################################################
|
|
# 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))
|