[gcc r16-9330] algol68: Open source files in binary mode

"Jose E. Marchesi via Gcc-cvs" <[email protected]>
Newsgroups gmane.comp.gcc.cvs
Message-ID <[email protected]>
https://gcc.gnu.org/g:40c10d2794c1153de9136d376fd7521464ccc547

commit r16-9330-g40c10d2794c1153de9136d376fd7521464ccc547
Author: Peter Damianov <[email protected]>
Date:   Sun May 24 14:59:46 2026 -0400

    algol68: Open source files in binary mode
    
    When building a source file with CRLF newlines on Windows, the CRLFs were
    getting converted to LFs, so a86_file_read was returning "short" byte counts
    and tripping an assert. Make sure files get opened in binary mode to avoid this.
    
    gcc/algol68/ChangeLog:
    
            * a68-lang.cc (a68_handle_option): Open file in binary mode.
            * a68-parser-scanner.cc (read_source_file): Open file in binary mode.
            (include_files): Likewise.
    
    (cherry picked from commit 9742769e0d72a98988bf151d6674ab597be43493)

Diff:
---
 gcc/algol68/a68-lang.cc           | 2 +-
 gcc/algol68/a68-parser-scanner.cc | 4 ++--
 2 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/gcc/algol68/a68-lang.cc b/gcc/algol68/a68-lang.cc
index df9ef0abf119..0fa38c210e4a 100644
--- a/gcc/algol68/a68-lang.cc
+++ b/gcc/algol68/a68-lang.cc
@@ -538,7 +538,7 @@ a68_handle_option (size_t scode,
     case OPT_fmodules_map_file:
     case OPT_fmodules_map_file_:
       {
-	FILE *file = fopen (arg, "r");
+	FILE *file = fopen (arg, "rb");
 	if (file == NULL)
 	  fatal_error (UNKNOWN_LOCATION,
 		       "cannot open modules map file %<%s%>", arg);
diff --git a/gcc/algol68/a68-parser-scanner.cc b/gcc/algol68/a68-parser-scanner.cc
index 097accd5322d..4dcbc263a970 100644
--- a/gcc/algol68/a68-parser-scanner.cc
+++ b/gcc/algol68/a68-parser-scanner.cc
@@ -334,7 +334,7 @@ read_source_file (const char *filename)
   bool ret = true;
 
   /* First open the given file.  */
-  if (!(FILE_SOURCE_FD (&A68_JOB) = fopen (filename, "r")))
+  if (!(FILE_SOURCE_FD (&A68_JOB) = fopen (filename, "rb")))
     fatal_error (UNKNOWN_LOCATION, "could not open source file %s",
 		 filename);
   FILE_SOURCE_NAME (&A68_JOB) = ggc_strdup (filename);
@@ -1076,7 +1076,7 @@ include_files (LINE_T *top)
 	      t = NO_LINE;
 
 	      /* Access the file.  */
-	      fp = fopen (fn, "r");
+	      fp = fopen (fn, "rb");
 	      SCAN_ERROR (fp == NULL, start_l, start_c,
 			  "error opening included file");
 	      ssize = a68_file_size (fileno (fp));
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.