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

Michael Hudson mwh@users.sourceforge.net
Mon, 25 Mar 2002 05:22:17 -0800


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

Modified Files:
      Tag: release22-maint
	netrc.py 
Log Message:
backport akuchling's checkin of
    revision 1.14 of netrc.py

[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.12
retrieving revision 1.12.22.1
diff -C2 -d -r1.12 -r1.12.22.1
*** netrc.py	15 Apr 2001 12:51:42 -0000	1.12
--- netrc.py	25 Mar 2002 13:22:14 -0000	1.12.22.1
***************
*** 42,53 ****
                  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(
--- 42,53 ----
                  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(
***************
*** 55,67 ****
  
              # 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)
--- 55,65 ----
  
              # 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)