@@ -38,13 +38,13 @@ class MultiFile:
3838
3939 def __init__ (self , fp , seekable = 1 ):
4040 self .fp = fp
41- self .stack = [] # Grows down
41+ self .stack = []
4242 self .level = 0
4343 self .last = 0
4444 if seekable :
4545 self .seekable = 1
4646 self .start = self .fp .tell ()
47- self .posstack = [] # Grows down
47+ self .posstack = []
4848
4949 def tell (self ):
5050 if self .level > 0 :
@@ -88,8 +88,7 @@ def readline(self):
8888 marker = line .rstrip ()
8989 # No? OK, try to match a boundary.
9090 # Return the line (unstripped) if we don't.
91- for i in range (len (self .stack )):
92- sep = self .stack [i ]
91+ for i , sep in enumerate (reversed (self .stack )):
9392 if marker == self .section_divider (sep ):
9493 self .last = 0
9594 break
@@ -130,9 +129,9 @@ def next(self):
130129 def push (self , sep ):
131130 if self .level > 0 :
132131 raise Error , 'bad MultiFile.push() call'
133- self .stack .insert ( 0 , sep )
132+ self .stack .append ( sep )
134133 if self .seekable :
135- self .posstack .insert ( 0 , self .start )
134+ self .posstack .append ( self .start )
136135 self .start = self .fp .tell ()
137136
138137 def pop (self ):
@@ -143,9 +142,9 @@ def pop(self):
143142 else :
144143 abslastpos = self .lastpos + self .start
145144 self .level = max (0 , self .level - 1 )
146- del self .stack [ 0 ]
145+ self .stack . pop ()
147146 if self .seekable :
148- self .start = self .posstack .pop (0 )
147+ self .start = self .posstack .pop ()
149148 if self .level > 0 :
150149 self .lastpos = abslastpos - self .start
151150
0 commit comments