Changeset fd5d251 for libcfa/src


Ignore:
Timestamp:
Jan 20, 2025, 9:45:18 PM (7 weeks ago)
Author:
Peter A. Buhr <pabuhr@…>
Branches:
master
Children:
5dad25df, 5db17077
Parents:
df56e25
Message:

update eof of file checking

File:
1 edited

Legend:

Unmodified
Added
Removed
  • TabularUnified libcfa/src/iostream.cfa

    rdf56e25 rfd5d251  
    1010// Created On       : Wed May 27 17:56:53 2015
    1111// Last Modified By : Peter A. Buhr
    12 // Last Modified On : Sun Oct 13 10:53:09 2024
    13 // Update Count     : 2041
     12// Last Modified On : Mon Jan 20 18:45:43 2025
     13// Update Count     : 2063
    1414//
    1515
     
    795795                char temp;
    796796                for () {
    797                         int args = fmt( is, "%c", &temp );
     797                        int args = fmt( is, "%c", &temp );                      // can be called with EOF on
    798798                        if ( eof( is ) ) throwResume ExceptionInst( end_of_file );
    799799                        assert( args == 1 );                                            // if not EOF => a single character must be read
     
    805805
    806806        istype & ?|?( istype & is, signed char & sc ) {
    807                 if ( eof( is ) ) throwResume ExceptionInst( end_of_file );
    808807                int args = fmt( is, "%hhi", &sc );                              // can be multiple characters (100)
    809808                if ( ! eof( is ) && args != 1 ) throwResume ExceptionInst( missing_data );
     809                if ( eof( is ) && args != 1 ) throwResume ExceptionInst( end_of_file );
    810810                return is;
    811811        } // ?|?
    812812
    813813        istype & ?|?( istype & is, unsigned char & usc ) {
    814                 if ( eof( is ) ) throwResume ExceptionInst( end_of_file );
    815814                int args = fmt( is, "%hhi", &usc );                             // can be multiple characters (-100)
    816815                if ( ! eof( is ) && args != 1 ) throwResume ExceptionInst( missing_data );
     816                if ( eof( is ) && args != 1 ) throwResume ExceptionInst( end_of_file );
    817817                return is;
    818818        } // ?|?
    819819
    820820        istype & ?|?( istype & is, short int & si ) {
    821                 if ( eof( is ) ) throwResume ExceptionInst( end_of_file );
    822                 int args = fmt( is, "%hi", &si );
     821                int args = fmt( is, "%hi", &si );                               // can be called with EOF on
    823822                if ( ! eof( is ) && args != 1 ) throwResume ExceptionInst( missing_data );
     823                if ( eof( is ) && args != 1 ) throwResume ExceptionInst( end_of_file );
    824824                return is;
    825825        } // ?|?
    826826
    827827        istype & ?|?( istype & is, unsigned short int & usi ) {
    828                 if ( eof( is ) ) throwResume ExceptionInst( end_of_file );
    829                 int args = fmt( is, "%hi", &usi );
     828                int args = fmt( is, "%hi", &usi );                              // can be called with EOF on
    830829                if ( ! eof( is ) && args != 1 ) throwResume ExceptionInst( missing_data );
     830                if ( eof( is ) && args != 1 ) throwResume ExceptionInst( end_of_file );
    831831                return is;
    832832        } // ?|?
    833833
    834834        istype & ?|?( istype & is, int & i ) {
    835                 if ( eof( is ) ) throwResume ExceptionInst( end_of_file );
    836                 int args = fmt( is, "%i", &i );
     835                int args = fmt( is, "%i", &i );                                 // can be called with EOF on
    837836                if ( ! eof( is ) && args != 1 ) throwResume ExceptionInst( missing_data );
     837                if ( eof( is ) && args != 1 ) throwResume ExceptionInst( end_of_file );
    838838                return is;
    839839        } // ?|?
    840840
    841841        istype & ?|?( istype & is, unsigned int & ui ) {
    842                 if ( eof( is ) ) throwResume ExceptionInst( end_of_file );
    843                 int args = fmt( is, "%i", &ui );
     842                int args = fmt( is, "%i", &ui );                                // can be called with EOF on
    844843                if ( ! eof( is ) && args != 1 ) throwResume ExceptionInst( missing_data );
     844                if ( eof( is ) && args != 1 ) throwResume ExceptionInst( end_of_file );
    845845                return is;
    846846        } // ?|?
    847847
    848848        istype & ?|?( istype & is, long int & li ) {
    849                 if ( eof( is ) ) throwResume ExceptionInst( end_of_file );
    850                 int args = fmt( is, "%li", &li );
     849                int args = fmt( is, "%li", &li );                               // can be called with EOF on
    851850                if ( ! eof( is ) && args != 1 ) throwResume ExceptionInst( missing_data );
     851                if ( eof( is ) && args != 1 ) throwResume ExceptionInst( end_of_file );
    852852                return is;
    853853        } // ?|?
    854854
    855855        istype & ?|?( istype & is, unsigned long int & ulli ) {
    856                 if ( eof( is ) ) throwResume ExceptionInst( end_of_file );
    857                 int args = fmt( is, "%li", &ulli );
     856                int args = fmt( is, "%li", &ulli );                             // can be called with EOF on
    858857                if ( ! eof( is ) && args != 1 ) throwResume ExceptionInst( missing_data );
     858                if ( eof( is ) && args != 1 ) throwResume ExceptionInst( end_of_file );
    859859                return is;
    860860        } // ?|?
    861861
    862862        istype & ?|?( istype & is, long long int & lli ) {
    863                 if ( eof( is ) ) throwResume ExceptionInst( end_of_file );
    864                 int args = fmt( is, "%lli", &lli );
     863                int args = fmt( is, "%lli", &lli );                             // can be called with EOF on
    865864                if ( ! eof( is ) && args != 1 ) throwResume ExceptionInst( missing_data );
     865                if ( eof( is ) && args != 1 ) throwResume ExceptionInst( end_of_file );
    866866                return is;
    867867        } // ?|?
    868868
    869869        istype & ?|?( istype & is, unsigned long long int & ulli ) {
    870                 if ( eof( is ) ) throwResume ExceptionInst( end_of_file );
    871                 int args = fmt( is, "%lli", &ulli );
     870                int args = fmt( is, "%lli", &ulli );                    // can be called with EOF on
    872871                if ( ! eof( is ) && args != 1 ) throwResume ExceptionInst( missing_data );
     872                if ( eof( is ) && args != 1 ) throwResume ExceptionInst( end_of_file );
    873873                return is;
    874874        } // ?|?
     
    897897
    898898        istype & ?|?( istype & is, float & f ) {
    899                 if ( eof( is ) ) throwResume ExceptionInst( end_of_file );
    900                 int args = fmt( is, "%f", &f );
     899                int args = fmt( is, "%f", &f );                                 // can be called with EOF on
    901900                if ( ! eof( is ) && args != 1 ) throwResume ExceptionInst( missing_data );
     901                if ( eof( is ) && args != 1 ) throwResume ExceptionInst( end_of_file );
    902902                return is;
    903903        } // ?|?
    904904
    905905        istype & ?|?( istype & is, double & d ) {
    906                 if ( eof( is ) ) throwResume ExceptionInst( end_of_file );
    907                 int args = fmt( is, "%lf", &d );
     906                int args = fmt( is, "%lf", &d );                                // can be called with EOF on
    908907                if ( ! eof( is ) && args != 1 ) throwResume ExceptionInst( missing_data );
     908                if ( eof( is ) && args != 1 ) throwResume ExceptionInst( end_of_file );
    909909                return is;
    910910        } // ?|?
    911911
    912912        istype & ?|?( istype & is, long double & ld ) {
    913                 if ( eof( is ) ) throwResume ExceptionInst( end_of_file );
    914                 int args = fmt( is, "%Lf", &ld );
     913                int args = fmt( is, "%Lf", &ld );                               // can be called with EOF on
    915914                if ( ! eof( is ) && args != 1 ) throwResume ExceptionInst( missing_data );
     915                if ( eof( is ) && args != 1 ) throwResume ExceptionInst( end_of_file );
    916916                return is;
    917917        } // ?|?
    918918
    919919        istype & ?|?( istype & is, float _Complex & fc ) {
    920                 if ( eof( is ) ) throwResume ExceptionInst( end_of_file );
    921920                float re, im;
    922                 int args = fmt( is, "%f%fi", &re, &im );
     921                int args = fmt( is, "%f%fi", &re, &im );                // can be called with EOF on
    923922                if ( ! eof( is ) && args != 2 ) throwResume ExceptionInst( missing_data );
     923                if ( eof( is ) && args != 2 ) throwResume ExceptionInst( end_of_file );
    924924                fc = re + im * _Complex_I;
    925925                return is;
     
    927927
    928928        istype & ?|?( istype & is, double _Complex & dc ) {
    929                 if ( eof( is ) ) throwResume ExceptionInst( end_of_file );
    930929                double re, im;
    931                 int args = fmt( is, "%lf%lfi", &re, &im );
     930                int args = fmt( is, "%lf%lfi", &re, &im );              // can be called with EOF on
    932931                if ( ! eof( is ) && args != 2 ) throwResume ExceptionInst( missing_data );
     932                if ( eof( is ) && args != 2 ) throwResume ExceptionInst( end_of_file );
    933933                dc = re + im * _Complex_I;
    934934                return is;
     
    936936
    937937        istype & ?|?( istype & is, long double _Complex & ldc ) {
    938                 if ( eof( is ) ) throwResume ExceptionInst( end_of_file );
    939938                long double re, im;
    940                 int args = fmt( is, "%Lf%Lfi", &re, &im );
     939                int args = fmt( is, "%Lf%Lfi", &re, &im );              // can be called with EOF on
    941940                if ( ! eof( is ) && args != 2 ) throwResume ExceptionInst( missing_data );
     941                if ( eof( is ) && args != 2 ) throwResume ExceptionInst( end_of_file );
    942942                ldc = re + im * _Complex_I;
    943943                return is;
     
    945945
    946946        istype & ?|?( istype & is, const char fmt[] ) {         // match text
    947                 if ( eof( is ) ) throwResume ExceptionInst( end_of_file );
    948947                size_t len = strlen( fmt );
    949948                char fmtstr[len + 16];
     
    952951                len = -1;
    953952                // scanf cursor does not move if no match
    954                 fmt( is, fmtstr, &len );
    955                 if ( len == -1 ) throwResume ExceptionInst( missing_data );
     953                fmt( is, fmtstr, &len );                                                // can be called with EOF on
     954                if ( ! eof( is ) && len == -1 ) throwResume ExceptionInst( missing_data );
     955                if ( eof( is ) && len == -1 ) throwResume ExceptionInst( end_of_file );
    956956                return is;
    957957        } // ?|?
     
    999999                        char ch;
    10001000                        for ( f.wd ) {                                                          // skip N characters
    1001                                 int args = fmt( is, "%c", &ch );
     1001                                int args = fmt( is, "%c", &ch );                // can be called with EOF on
    10021002                                if ( ! eof( is ) && args != 1 ) throwResume ExceptionInst( missing_data );
    10031003                        } // for
Note: See TracChangeset for help on using the changeset viewer.