[Python-checkins] CVS: python/dist/src/Lib netrc.py,1.13,1.14

A.M. Kuchling akuchling@users.sourceforge.net
Thu, 21 Mar 2002 18:46:43 -0800


Update of /cvsroot/python/python/dist/src/Lib
In directory usw-pr-cvs1:/tmp/cvs-serv13290

Modified Files:
	netrc.py 
Log Message:
[Bug #532115]  netrc module was broken
   * 'macdef' (macro definition) wasn't parsed correctly
   * account value not reset for a subsequent 'default' line
   * typo: 'whitepace' -> 'whitespace'

Bugfix candidate.


Index: netrc.py
===================================================================
RCS file: /cvsroot/python/python/dist/src/Lib/netrc.py,v
retrieving revision 1.13
retrieving revision 1.14
diff -C2 -d -r1.13 -r1.14
*** netrc.py	18 Mar 2002 02:13:48 -0000	1.13
--- netrc.py	22 Mar 2002 02:46:41 -0000	1.14
***************
*** 45,56 ****
                  entryname = lexer.get_token()
                  self.macros[entryname] = []
!                 lexer.whitepace = ' \t'
                  while 1:
                      line = lexer.instream.readline()
!                     if not line or line == '\012' and tt == '\012':
!                         lexer.whitepace = ' \t\r\n'
                          break
-                     tt = line
                      self.macros[entryname].append(line)
              else:
                  raise NetrcParseError(
--- 45,56 ----
                  entryname = lexer.get_token()
                  self.macros[entryname] = []
!                 lexer.whitespace = ' \t'
                  while 1:
                      line = lexer.instream.readline()
!                     if not line or line == '\012':
!                         lexer.whitespace = ' \t\r\n'
                          break
                      self.macros[entryname].append(line)
+                 continue
              else:
                  raise NetrcParseError(
***************
*** 58,70 ****
  
              # We're looking at start of an entry for a named machine or default.
!             if toplevel == 'machine':
!                 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:
                          self.hosts[entryname] = (login, account, password)
                          lexer.push_token(tt)
--- 58,68 ----
  
              # We're looking at start of an entry for a named machine or default.
!             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 login and password:
                          self.hosts[entryname] = (login, account, password)
                          lexer.push_token(tt)