octave-maintainers
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: 3.0.4 RC3 (mingw 3.4.5)-2


From: Benjamin Lindner
Subject: Re: 3.0.4 RC3 (mingw 3.4.5)-2
Date: Wed, 18 Mar 2009 20:06:28 +0100
User-agent: Thunderbird 2.0.0.18 (Windows/20081105)

I applied this patch with some style changes.  I also had to remove
this part of the patch:

| diff -r 97991a9e7a18 -r 1315d5c25fa9 src/ls-oct-ascii.cc
| --- a/src/ls-oct-ascii.cc    Tue Mar 03 19:28:03 2009 +0100
| +++ b/src/ls-oct-ascii.cc    Tue Mar 03 10:09:56 2009 +0100
| @@ -118,14 +119,15 @@
|          }
|  |            retval = value.str ();
| +          skip_until_newline (is, false);
|            break;
|          }
|        else if (next_only)

Otherwise I saw 6 new failures when running make check.  Why was this
line added?  Is it needed for systems that have CRLF?  If so, why?

Without this line, I still get a failure in ov-fcn-handle.cc
And I guess the errors Tatsuro reported also base on this.

This line is required because the code

          if (c != '\n' && c != '\r')
        {
          value << c;
          while (is.get (c) && c != '\n' && c != '\r')
            value << c;
        }

          retval = value.str ();
          break;

leaves a stray '\n' in the input stream if line endings are CRLF, since the while () loop breaks at the first '\r' and the following '\n' is not removed.

OK, I'll think of a workaround

benjamin


Let's see, lap #1.
Could you check with the attached changeset?
This should now be a more consistent behaviour for LF and CRLF files (I hope at least)

benjamin
# HG changeset patch
# User Benjamin Lindner <address@hidden>
# Date 1237386194 -3600
# Node ID f3f7455b4e899dca75cc96600bf81db91cf7a1cc
# Parent  5ffdac7a97eeebb307b67d597078f88136d72426
fix leaving stray '\r' in stream when reading from CRLF data file

diff -r 5ffdac7a97ee -r f3f7455b4e89 src/ChangeLog
--- a/src/ChangeLog     Wed Mar 18 15:23:14 2009 +0100
+++ b/src/ChangeLog     Wed Mar 18 15:23:14 2009 +0100
@@ -1,3 +1,9 @@
+2009-03-18  Benjamin Lindner <address@hidden>
+
+       * ls-oct-ascii.cc (extract_keyword): fix leaving stray '\r' in stream
+       when reading from CRLF data file by replacing loop with call to
+       read_until_newline()
+
 2009-03-18  Benjamin Lindner <address@hidden>
 
        * ov-base-int.cc (load_ascii): Attempt to read data from file only 
diff -r 5ffdac7a97ee -r f3f7455b4e89 src/ls-oct-ascii.cc
--- a/src/ls-oct-ascii.cc       Wed Mar 18 15:23:14 2009 +0100
+++ b/src/ls-oct-ascii.cc       Wed Mar 18 15:23:14 2009 +0100
@@ -110,14 +110,8 @@
              while (is.get (c) && (c == ' ' || c == '\t' || c == ':'))
                ; // Skip whitespace and the colon.
 
-             if (c != '\n' && c != '\r')
-               {
-                 value << c;
-                 while (is.get (c) && c != '\n' && c != '\r')
-                   value << c;
-               }
-
-             retval = value.str ();
+             is.putback(c);
+             retval = read_until_newline (is, false);
              break;
            }
          else if (next_only)

reply via email to

[Prev in Thread] Current Thread [Next in Thread]