Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • libcfa/src/iostream.hfa

    re7a8f65 r0a2e0e21  
    1010// Created On       : Wed May 27 17:56:53 2015
    1111// Last Modified By : Peter A. Buhr
    12 // Last Modified On : Wed Aug  9 16:47:05 2023
    13 // Update Count     : 500
     12// Last Modified On : Wed Jul 19 14:25:52 2023
     13// Update Count     : 463
    1414//
    1515
     
    130130        ostype & ?|?( ostype &, const char [] );
    131131        OSTYPE_VOID( const char [] );
    132         // ostype & ?|?( ostype &, const char16_t [] );
     132        // ostype & ?|?( ostype &, const char16_t * );
    133133        #if ! ( __ARM_ARCH_ISA_ARM == 1 && __ARM_32BIT_STATE == 1 ) // char32_t == wchar_t => ambiguous
    134         // ostype & ?|?( ostype &, const char32_t [] );
     134        // ostype & ?|?( ostype &, const char32_t * );
    135135        #endif // ! ( __ARM_ARCH_ISA_ARM == 1 && __ARM_32BIT_STATE == 1 )
    136         // ostype & ?|?( ostype &, const wchar_t [] );
     136        // ostype & ?|?( ostype &, const wchar_t * );
    137137        ostype & ?|?( ostype &, const void * );
    138138        OSTYPE_VOID( const void * );
     
    390390
    391391//      istype & ?|?( istype &, const char [] );
    392 //      istype & ?|?( istype &, char [] );
    393 //      ISTYPE_VOID( char [] );
     392        istype & ?|?( istype &, char [] );
     393        ISTYPE_VOID( char * );
    394394
    395395        // manipulators
     
    405405struct _Istream_Cstr {
    406406        char * s;
    407         union {
    408                 const char * scanset;
    409                 char delimit;
    410         };
     407        const char * scanset;
    411408        int wd;                                                                                         // width
    412409        union {
     
    415412                        unsigned char ignore:1;                                         // do not change input argument
    416413                        unsigned char inex:1;                                           // include/exclude characters in scanset
    417                         unsigned char delimit:1;                                        // delimit character
    418414                } flags;
    419415        };
     
    421417
    422418static inline {
    423         _Istream_Cstr skip( const char scanset[] ) { return (_Istream_Cstr){ 0p, {scanset}, -1, {.all : 0} }; }
    424         _Istream_Cstr skip( unsigned int wd ) { return (_Istream_Cstr){ 0p, {0p}, wd, {.all : 0} }; }
    425         _Istream_Cstr & getline( _Istream_Cstr & fmt ) { fmt.delimit = '\n'; fmt.flags.delimit = true; return fmt; }
    426         _Istream_Cstr & getline( const char delimit, _Istream_Cstr & fmt ) { fmt.delimit = delimit; fmt.flags.delimit = true; return fmt; }
    427 //      _Istream_Cstr incl( const char scanset[], char s[] ) { return (_Istream_Cstr){ s, {scanset}, -1, { .flags.inex : false } }; }
    428 //      _Istream_Cstr incl( const char scanset[], unsigned int wd, char s[] ) { return (_Istream_Cstr){ s, {scanset}, wd, {.flags.inex : false} }; }
     419        _Istream_Cstr skip( const char scanset[] ) { return (_Istream_Cstr){ 0p, scanset, -1, { .all : 0 } }; }
     420        _Istream_Cstr skip( unsigned int n ) { return (_Istream_Cstr){ 0p, 0p, n, { .all : 0 } }; }
     421        _Istream_Cstr incl( const char scanset[], char * s ) { return (_Istream_Cstr){ s, scanset, -1, { .flags.inex : false } }; }
    429422        _Istream_Cstr & incl( const char scanset[], _Istream_Cstr & fmt ) { fmt.scanset = scanset; fmt.flags.inex = false; return fmt; }
    430 //      _Istream_Cstr excl( const char scanset[], char s[] ) { return (_Istream_Cstr){ s, {scanset}, -1, { .flags.inex : true } }; }
    431 //      _Istream_Cstr excl( const char scanset[], unsigned int wd, char s[] ) { return (_Istream_Cstr){ s, {scanset}, wd, {.flags.inex : true} }; }
     423        _Istream_Cstr excl( const char scanset[], char * s ) { return (_Istream_Cstr){ s, scanset, -1, { .flags.inex : true } }; }
    432424        _Istream_Cstr & excl( const char scanset[], _Istream_Cstr & fmt ) { fmt.scanset = scanset; fmt.flags.inex = true; return fmt; }
    433         _Istream_Cstr ignore( char s[] ) { return (_Istream_Cstr)@{ s, {0p}, -1, {.flags.ignore : true} }; }
     425        _Istream_Cstr ignore( char s[] ) { return (_Istream_Cstr)@{ s, 0p, -1, { .flags.ignore : true } }; }
    434426        _Istream_Cstr & ignore( _Istream_Cstr & fmt ) { fmt.flags.ignore = true; return fmt; }
    435         _Istream_Cstr wdi( unsigned int wd, char s[] ) { return (_Istream_Cstr)@{ s, {0p}, wd, {.all : 0} }; }
    436 //      _Istream_Cstr & wdi( unsigned int wd, _Istream_Cstr & fmt ) { fmt.wd = wd; return fmt; }
     427        _Istream_Cstr wdi( unsigned int w, char s[] ) { return (_Istream_Cstr)@{ s, 0p, w, { .all : 0 } }; }
     428        _Istream_Cstr & wdi( unsigned int w, _Istream_Cstr & fmt ) { fmt.wd = w; return fmt; }
    437429} // distribution
    438430forall( istype & | basic_istream( istype ) ) {
     
    465457        _Istream_Manip(T) ignore( const T & val ) { return (_Istream_Manip(T))@{ (T &)val, -1, true }; } \
    466458        _Istream_Manip(T) & ignore( _Istream_Manip(T) & fmt ) { fmt.ignore = true; return fmt; } \
    467         _Istream_Manip(T) wdi( unsigned int wd, T & val ) { return (_Istream_Manip(T))@{ val, wd, false }; } \
    468         _Istream_Manip(T) & wdi( unsigned int wd, _Istream_Manip(T) & fmt ) { fmt.wd = wd; return fmt; } \
     459        _Istream_Manip(T) wdi( unsigned int w, T & val ) { return (_Istream_Manip(T))@{ val, w, false }; } \
     460        _Istream_Manip(T) & wdi( unsigned int w, _Istream_Manip(T) & fmt ) { fmt.wd = w; return fmt; } \
    469461} /* distribution */ \
    470462forall( istype & | basic_istream( istype ) ) { \
Note: See TracChangeset for help on using the changeset viewer.