Integers are now handled correctly by printTree.
[confparser-old] / confparser.py
index 4938c52..1ddcd9d 100644 (file)
@@ -73,7 +73,7 @@ def parseConf( p , meta = None ) :
                        if t[ 0 ] in [ '{' , ';' ] :
                                break
                        if t[ 0 ] == 'integer' :
-                               values.append( int( t[ 0 ] ) )
+                               values.append( int( t[ 1 ] ) )
                        else :
                                values.append( parseString( t[ 1 ] ) )
                #
@@ -166,7 +166,7 @@ def readConfiguration( filename , validator = None ) :
                #
                r = readCachedConfiguration( filename )
                cached = False
-               if r :
+               if r is not None :
                        conf , isValid = r
                        cached = True
                else :
@@ -183,10 +183,12 @@ def readConfiguration( filename , validator = None ) :
                        if validator is not None :
                                basicvalidator.validate( conf , validator )
                                isValid = True
+                               cached = False
                #
                # 4. Keep cached result
                #
-               writeCachedConfiguration( filename , conf , isValid )
+               if not cached :
+                       writeCachedConfiguration( filename , conf , isValid )
        except IOError , e :
                if e[ 0 ] == errno.ENOENT :
                        conf = None
@@ -203,7 +205,7 @@ def printTreeInner( t , prt = sys.stdout.write , prefix = '' ) :
        prt( prefix )
        prt( t[ 0 ] )
        for kw in t[ 1 ] :
-               prt( ' ' + kw )
+               prt( ' ' + str( kw ) )
        if t[ 2 ] :
                prt( ' {' )
        else :