[Python-checkins] CVS: distutils/distutils text_file.py,1.12,1.13
Greg Ward
python-dev@python.org
Sat, 16 Sep 2000 11:33:39 -0700
Update of /cvsroot/python/distutils/distutils
In directory slayer.i.sourceforge.net:/tmp/cvs-serv13280
Modified Files:
text_file.py
Log Message:
Changed so lines that are all comment (or just whitespace + comment)
are completely skipped, rather than being treated as blank lines
(and then subject to the 'skip_blanks' flag). This allows us
to process old-style Setup files, which rely on
hello \\
# boo!
there
coming out as "hello there".
Index: text_file.py
===================================================================
RCS file: /cvsroot/python/distutils/distutils/text_file.py,v
retrieving revision 1.12
retrieving revision 1.13
diff -C2 -r1.12 -r1.13
*** text_file.py 2000/09/16 18:09:22 1.12
--- text_file.py 2000/09/16 18:33:36 1.13
***************
*** 202,207 ****
if pos == -1: # no "#" -- no comments
pass
! elif pos == 0 or line[pos-1] != "\\": # it's a comment
!
# Have to preserve the trailing newline, because it's
# the job of a later step (rstrip_ws) to remove it --
--- 202,209 ----
if pos == -1: # no "#" -- no comments
pass
!
! # It's definitely a comment -- either "#" is the first
! # character, or it's elsewhere and unescaped.
! elif pos == 0 or line[pos-1] != "\\":
# Have to preserve the trailing newline, because it's
# the job of a later step (rstrip_ws) to remove it --
***************
*** 213,216 ****
--- 215,228 ----
line = line[0:pos] + eol
+ # If all that's left is whitespace, then skip line
+ # *now*, before we try to join it to 'buildup_line' --
+ # that way constructs like
+ # hello \\
+ # # comment that should be ignored
+ # there
+ # result in "hello there".
+ if string.strip(line) == "":
+ continue
+
else: # it's an escaped "#"
line = string.replace (line, "\\#", "#")
***************
*** 233,237 ****
self.current_line[1] = self.current_line[1] + 1
else:
! self.current_line = [self.current_line, self.current_line+1]
# just an ordinary line, read it as usual
else:
--- 245,250 ----
self.current_line[1] = self.current_line[1] + 1
else:
! self.current_line = [self.current_line,
! self.current_line+1]
# just an ordinary line, read it as usual
else:
***************
*** 272,276 ****
return line
! # end readline
--- 285,289 ----
return line
! # readline ()
***************
*** 299,317 ****
line 3 \\
continues on next line
"""
-
-
# result 1: no fancy options
result1 = map (lambda x: x + "\n", string.split (test_data, "\n")[0:-1])
# result 2: just strip comments
! result2 = ["\n", "\n", "line 3 \\\n", " continues on next line\n"]
# result 3: just strip blank lines
! result3 = ["# test file\n", "line 3 \\\n", " continues on next line\n"]
# result 4: default, strip comments, blank lines, and trailing whitespace
! result4 = ["line 3 \\", " continues on next line"]
# result 5: strip comments and blanks, plus join lines (but don't
--- 312,335 ----
line 3 \\
+ # intervening comment
continues on next line
"""
# result 1: no fancy options
result1 = map (lambda x: x + "\n", string.split (test_data, "\n")[0:-1])
# result 2: just strip comments
! result2 = ["\n",
! "line 3 \\\n",
! " continues on next line\n"]
# result 3: just strip blank lines
! result3 = ["# test file\n",
! "line 3 \\\n",
! "# intervening comment\n",
! " continues on next line\n"]
# result 4: default, strip comments, blank lines, and trailing whitespace
! result4 = ["line 3 \\",
! " continues on next line"]
# result 5: strip comments and blanks, plus join lines (but don't