This is the mail archive of the gdb-cvs@sourceware.org mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[binutils-gdb] gdb: Fix skip of `\r` before `\n` in source output


https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=62ea19c1000856c2633a952c52269fca4143931a

commit 62ea19c1000856c2633a952c52269fca4143931a
Author: Andrew Burgess <andrew.burgess@embecosm.com>
Date:   Sun Jan 6 23:31:45 2019 +0000

    gdb: Fix skip of `\r` before `\n` in source output
    
    In this commit:
    
      commit 62f29fda90cf1d5a1899f57ef78452471c707fd6
      Date:   Tue Oct 9 22:21:05 2018 -0600
    
          Highlight source code using GNU Source Highlight
    
    A bug was introduced such that when displaying source code from a file
    with lines `\r\n` GDB would print `^M` at the end of each line.
    
    This caused a regression on the test gdb.fortran/nested-funcs.exp,
    which happens to have `\r\n` line endings.
    
    gdb/ChangeLog:
    
    	* source.c (print_source_lines_base): Fix skip of '\r' if next
    	character is '\n'.

Diff:
---
 gdb/ChangeLog | 5 +++++
 gdb/source.c  | 7 +------
 2 files changed, 6 insertions(+), 6 deletions(-)

diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index 8230afc..3ea7576 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,3 +1,8 @@
+2019-01-08  Andrew Burgess  <andrew.burgess@embecosm.com>
+
+	* source.c (print_source_lines_base): Fix skip of '\r' if next
+	character is '\n'.
+
 2019-01-06  Tom Tromey  <tom@tromey.com>
 
 	* c-exp.y (struct c_parse_state) <macro_original_text,
diff --git a/gdb/source.c b/gdb/source.c
index ad6c646..e77789c 100644
--- a/gdb/source.c
+++ b/gdb/source.c
@@ -1379,12 +1379,7 @@ print_source_lines_base (struct symtab *s, int line, int stopline,
 	  else if (c == '\r')
 	    {
 	      /* Skip a \r character, but only before a \n.  */
-	      if (iter[1] == '\n')
-		{
-		  ++iter;
-		  c = '\n';
-		}
-	      else
+	      if (*iter != '\n')
 		printf_filtered ("^%c", c + 0100);
 	    }
 	  else


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]