summaryrefslogtreecommitdiff
path: root/scripts/qdebug-odebug.py
Side-by-side diff
Diffstat (limited to 'scripts/qdebug-odebug.py') (more/less context) (ignore whitespace changes)
-rwxr-xr-xscripts/qdebug-odebug.py15
1 files changed, 9 insertions, 6 deletions
diff --git a/scripts/qdebug-odebug.py b/scripts/qdebug-odebug.py
index cc1b7ca..636c1b2 100755
--- a/scripts/qdebug-odebug.py
+++ b/scripts/qdebug-odebug.py
@@ -8,49 +8,52 @@ manual work may be needed after applying the script.
"""
import sys, sre
qDebugExpression = sre.compile( '(.*)(qDebug)\(\s*(.*)\s*\);(.*)' )
qWarningExpression = sre.compile( '(.*)(qWarning)\(\s*(.*)\s*\);(.*)' )
qErrorExpression = sre.compile( '(.*)(qError)\(\s*(.*)\s*\);(.*)' )
qFatalExpression = sre.compile( '(.*)(qFatal)\(\s*(.*)\s*\);(.*)' )
+printfExpression = sre.compile( '(.*)(printf)\(\s*(.*)\s*\);(.*)' )
debugTable = { "qDebug" : "odebug",
"qWarning" : "owarn",
"qError" : "oerr",
- "qFatal" : "ofatal" }
+ "qFatal" : "ofatal",
+ "printf" : "odebug" }
-allExpressions = ( qDebugExpression, qWarningExpression, qErrorExpression, qFatalExpression )
+allExpressions = ( qDebugExpression, qWarningExpression, qErrorExpression, qFatalExpression, printfExpression )
####################################################################################################
def convert( fname ):
print >>sys.stderr, "<NOTE>: Dealing with %s..." % fname
for line in file( fname ):
match = False
for expr in allExpressions:
m = expr.match( line )
if m is None:
continue
else:
match = True
head, debug, content, tail = m.groups()
print >>sys.stderr, "<NOTE>: Groups = ", m.groups()
- sys.stdout.write( head.strip() )
+ sys.stdout.write( head ) # don't strip() here, because we want to keep indentation
sys.stdout.write( debugTable[debug.strip()] )
sys.stdout.write( " << " )
sys.stdout.write( transform( content ).strip() )
sys.stdout.write( " << oendl; " )
- sys.stdout.write( tail + "\n" )
+ sys.stdout.write( tail )
+ if not tail.endswith( "\n" ): sys.stdout.write( "\n" )
continue
# nothing applies
if not match:
- sys.stdout.write( line + "\n" )
+ sys.stdout.write( line )
####################################################################################################
def transform( s ):
print >>sys.stderr, "<NOTE>: Transforming '%s'..." % s
# check if there is one or more comma's outside of strings
groups = []
@@ -92,17 +95,17 @@ def transform( s ):
else: # % in formatstring
indirective = True
i += 1
while i < len( formatstring ) and formatstring[i] not in "%dDiouxXfegEscpn":
i += 1
if formatstring[i] == "%":
result += "%"
else:
- result += '" << %s << "' % substitutions[0]
+ result += '" << %s << "' % substitutions[0].replace( "(const char*)", "" ).replace( ".latin1()", "" )
del substitutions[0]
indirective = False
i += 1
print >>sys.stderr, "<NOTE>: Result seems to be '%s'" % result
return result.replace( "%%", "%" )
####################################################################################################