]> granicus.if.org Git - python/commitdiff
[Bug #532115] netrc module was broken
authorAndrew M. Kuchling <amk@amk.ca>
Fri, 22 Mar 2002 02:46:41 +0000 (02:46 +0000)
committerAndrew M. Kuchling <amk@amk.ca>
Fri, 22 Mar 2002 02:46:41 +0000 (02:46 +0000)
   * 'macdef' (macro definition) wasn't parsed correctly
   * account value not reset for a subsequent 'default' line
   * typo: 'whitepace' -> 'whitespace'

Bugfix candidate.

Lib/netrc.py

index b78d4d83e5bd7c386409de9cfcdf6c8bbec1b426..b6907d9579e2d876b7f900e233a02e58446b40d7 100644 (file)
@@ -44,28 +44,26 @@ class netrc:
             elif tt == 'macdef':                # Just skip to end of macdefs
                 entryname = lexer.get_token()
                 self.macros[entryname] = []
-                lexer.whitepace = ' \t'
+                lexer.whitespace = ' \t'
                 while 1:
                     line = lexer.instream.readline()
-                    if not line or line == '\012' and tt == '\012':
-                        lexer.whitepace = ' \t\r\n'
+                    if not line or line == '\012':
+                        lexer.whitespace = ' \t\r\n'
                         break
-                    tt = line
                     self.macros[entryname].append(line)
+                continue
             else:
                 raise NetrcParseError(
                     "bad toplevel token %r" % tt, file, lexer.lineno)
 
             # We're looking at start of an entry for a named machine or default.
-            if toplevel == 'machine':
-                login = account = password = None
-                self.hosts[entryname] = {}
+            login = account = password = None
+            self.hosts[entryname] = {}
             while 1:
                 tt = lexer.get_token()
-                if tt=='' or tt == 'machine' or tt == 'default' or tt == 'macdef':
-                    if toplevel == 'macdef':
-                        break
-                    elif login and password:
+                if (tt=='' or tt == 'machine' or
+                    tt == 'default' or tt =='macdef'):
+                    if login and password:
                         self.hosts[entryname] = (login, account, password)
                         lexer.push_token(tt)
                         break