https://gcc.gnu.org/bugzilla/show_bug.cgi?id=109879
Bug ID: 109879 Summary: ReadCard and ReadInt from WholeIO have problems with leading space Product: gcc Version: 14.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: modula2 Assignee: gaius at gcc dot gnu.org Reporter: gaius at gcc dot gnu.org Target Milestone: --- As reported on the gn2 mailing list, leading spaces are not skipped when performing ReadInt or ReadCard. module port_test10a_gm2; from ChanConsts IMPORT OpenResults, old, read, write; from IOChan IMPORT ChanId; from StdChans IMPORT StdOutChan; import StreamFile; from TextIO IMPORT SkipLine, WriteLn, WriteString; from WholeIO IMPORT ReadCard, ReadInt, WriteCard, WriteInt; procedure ReadNumbersTest(); const arr_len= 128; type arr_type= ARRAY[0..arr_len-1] of char; var cid_file: ChanId; cid_out: ChanId; file_name: arr_type; res: OpenResults; c1: cardinal; ival: integer; cval: cardinal; begin (* procedure ReadNumbersTest *) cid_out:=StdOutChan(); file_name:='test_data'; (* create file and write (integer) numbers to it *) WriteString(cid_out, 'write (integer) numbers to file...'); WriteLn(cid_out); StreamFile.Open(cid_file, file_name, write+old, res); if res=opened THEN WriteString(cid_file, ' 123'); WriteLn(cid_file); WriteString(cid_file, '234'); WriteLn(cid_file); StreamFile.Close(cid_file); end; (* if res=opened *) (* (re-)open file and read numbers with ReadCard *) WriteString(cid_out, 'read numbers with ReadCard...'); WriteLn(cid_out); StreamFile.Open(cid_file, file_name, read, res); if res=opened THEN for c1:=1 TO 2 DO ReadCard(cid_file, cval); WriteCard(cid_out, cval, 1); WriteLn(cid_out); SkipLine(cid_file); end; (* for c1 *) StreamFile.Close(cid_file); end; (* if res=opened *) WriteLn(cid_out); (* (re-)open file and read numbers with ReadInt *) WriteString(cid_out, 'read numbers with ReadInt...'); WriteLn(cid_out); StreamFile.Open(cid_file, file_name, read, res); if res=opened THEN for c1:=1 TO 2 DO ReadInt(cid_file, ival); WriteInt(cid_out, ival, 1); WriteLn(cid_out); SkipLine(cid_file); end; (* for c1 *) StreamFile.Close(cid_file); end; (* if res=opened *) WriteLn(cid_out); end ReadNumbersTest; begin (* module port_test10a_gm2 *) ReadNumbersTest(); end port_test10a_gm2.