-rwxr-xr-x | scripts/qdebug-odebug.py | 21 |
1 files changed, 13 insertions, 8 deletions
diff --git a/scripts/qdebug-odebug.py b/scripts/qdebug-odebug.py index 636c1b2..7a417e1 100755 --- a/scripts/qdebug-odebug.py +++ b/scripts/qdebug-odebug.py @@ -6,25 +6,25 @@ This script helps to convert from the Qt debugging framework to the Opie debuggi Though it will take care of the most common usages, it may not recognize uncommon ones, hence 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*\);(.*)' ) +qDebugExpression = sre.compile( '(?P<head>.*)(?P<statement>qDebug)\(\s*(?P<content>.*)\s*\);(?P<tail>.*)' ) +qWarningExpression = sre.compile( '(?P<head>.*)(?P<statement>qWarning)\(\s*(?P<content>.*)\s*\);(?P<tail>.*)' ) +qErrorExpression = sre.compile( '(?P<head>.*)(?P<statement>qError)\(\s*(?P<content>.*)\s*\);(?P<tail>.*)' ) +qFatalExpression = sre.compile( '(?P<head>.*)(?P<statement>qFatal)\(\s*(?P<content>.*)\s*\);(?P<tail>.*)' ) +#printfExpression = sre.compile( '(?P<head>.*)(?![s\.])(?P<statement>printf)\(\s*(?P<content>.*)\s*\);(?P<tail>.*)' ) debugTable = { "qDebug" : "odebug", "qWarning" : "owarn", "qError" : "oerr", "qFatal" : "ofatal", "printf" : "odebug" } -allExpressions = ( qDebugExpression, qWarningExpression, qErrorExpression, qFatalExpression, printfExpression ) +allExpressions = ( qDebugExpression, qWarningExpression, qErrorExpression, qFatalExpression ) #, printfExpression ) #################################################################################################### def convert( fname ): print >>sys.stderr, "<NOTE>: Dealing with %s..." % fname @@ -33,13 +33,18 @@ def convert( fname ): for expr in allExpressions: m = expr.match( line ) if m is None: continue else: match = True - head, debug, content, tail = m.groups() + + head = m.groupdict()["head"] + debug = m.groupdict()["statement"] + content = m.groupdict()["content"] + tail = m.groupdict()["tail"] + print >>sys.stderr, "<NOTE>: Groups = ", m.groups() 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; " ) @@ -92,13 +97,13 @@ def transform( s ): result += formatstring[i] i += 1 continue else: # % in formatstring indirective = True i += 1 - while i < len( formatstring ) and formatstring[i] not in "%dDiouxXfegEscpn": + while i < len( formatstring ) and formatstring[i] not in "%dDiouxXfFegEscpn": i += 1 if formatstring[i] == "%": result += "%" else: result += '" << %s << "' % substitutions[0].replace( "(const char*)", "" ).replace( ".latin1()", "" ) del substitutions[0] |