Changeset 86a8be5


Ignore:
Timestamp:
Jun 10, 2019, 9:36:03 PM (2 years ago)
Author:
Peter A. Buhr <pabuhr@…>
Branches:
arm-eh, jacob/cs343-translation, jenkins-sandbox, master, new-ast, new-ast-unique-expr
Children:
b326277
Parents:
558d13b
Message:

not wd with char type, and update test appropriately

Files:
5 edited

Legend:

Unmodified
Added
Removed
  • libcfa/src/iostream.cfa

    r558d13b r86a8be5  
    1010// Created On       : Wed May 27 17:56:53 2015
    1111// Last Modified By : Peter A. Buhr
    12 // Last Modified On : Sun Jun  9 20:54:05 2019
    13 // Update Count     : 804
     12// Last Modified On : Mon Jun 10 18:06:16 2019
     13// Update Count     : 809
    1414//
    1515
     
    797797} // ?|?
    798798
     799forall( dtype istype | istream( istype ) )
     800istype & ?|?( istype & is, _Istream_Char f ) {
     801        fmt( is, "%*c" );                                                                       // argument variable unused
     802        return is;
     803} // ?|?
     804
    799805#define InputFMTImpl( T, CODE ) \
    800806forall( dtype istype | istream( istype ) ) \
     
    802808        enum { size = 16 }; \
    803809        char fmtstr[size]; \
    804         if ( f.wd == -1 || strcmp( CODE, "c" ) == 0 ) { /* ignore width with "c" */     \
     810        if ( f.wd == -1 ) { \
    805811                snprintf( fmtstr, size, "%%%s%s", f.ignore ? "*" : "", CODE ); \
    806812        } else { \
     
    812818} // ?|?
    813819
    814 InputFMTImpl( char, "c" )
    815820InputFMTImpl( signed char, "hhi" )
    816821InputFMTImpl( unsigned char, "hhi" )
  • libcfa/src/iostream.hfa

    r558d13b r86a8be5  
    1010// Created On       : Wed May 27 17:56:53 2015
    1111// Last Modified By : Peter A. Buhr
    12 // Last Modified On : Sun Jun  9 22:46:17 2019
    13 // Update Count     : 315
     12// Last Modified On : Mon Jun 10 18:05:13 2019
     13// Update Count     : 320
    1414//
    1515
     
    347347static inline _Istream_Cstr excl( const char * scanset, _Istream_Cstr & fmt ) { fmt.scanset = scanset; fmt.flags.inex = true; return fmt; }
    348348static inline _Istream_Cstr cstr( char * s ) { return (_Istream_Cstr){ s, 0p, -1, { .all : 0 } }; }
    349 static inline _Istream_Cstr ignore( const char * s ) { return (_Istream_Cstr)@{ s, 0p, -1, { .flags.ignore : true } }; }
     349static inline _Istream_Cstr ignore( const char * s ) { return (_Istream_Cstr)@{ 0p, 0p, -1, { .flags.ignore : true } }; }
    350350static inline _Istream_Cstr ignore( _Istream_Cstr & fmt ) { fmt.flags.ignore = true; return fmt; }
    351351static inline _Istream_Cstr wd( unsigned int w, char * s ) { return (_Istream_Cstr)@{ s, 0p, w, { .all : 0 } }; }
    352352static inline _Istream_Cstr wd( unsigned int w, _Istream_Cstr & fmt ) { fmt.wd = w; return fmt; }
    353 forall( dtype istype | istream( istype ) ) istype & ?|?( istype &, _Istream_Cstr );
     353forall( dtype istype | istream( istype ) ) istype & ?|?( istype & is, _Istream_Cstr f );
     354
     355struct _Istream_Char {
     356        bool ignore;                                                                            // do not change input argument
     357}; // _Istream_Char
     358
     359static inline _Istream_Char ignore( const char c ) { return (_Istream_Char)@{ true }; }
     360static inline _Istream_Char ignore( _Istream_Char & fmt ) { fmt.ignore = true; return fmt; }
     361forall( dtype istype | istream( istype ) ) istype & ?|?( istype & is, _Istream_Char f );
    354362
    355363forall( otype T )
     
    368376} // ?|?
    369377
    370 InputFMTDecl( char )
    371378InputFMTDecl( signed char )
    372379InputFMTDecl( unsigned char )
  • tests/.expect/manipulatorsInput.txt

    r558d13b r86a8be5  
    262613 wwwwwwww
    2727a
    28 b
    29 b
    30 b
     28a
    3129-1
    323015
  • tests/.in/manipulatorsInput.txt

    r558d13b r86a8be5  
    77abcyyy
    88aaaaaaaaxxxxxxxxaabbccbbdddwwwbbbbbbbbwwwwwwwwaaaaaaaawwwwwwww
    9 abcd
     9ab
    10100xff 017 15-15
    11110xff 017 15-15
  • tests/manipulatorsInput.cfa

    r558d13b r86a8be5  
    77// Created On       : Sat Jun  8 17:58:54 2019
    88// Last Modified By : Peter A. Buhr
    9 // Last Modified On : Mon Jun 10 08:11:03 2019
    10 // Update Count     : 7
     9// Last Modified On : Mon Jun 10 18:38:35 2019
     10// Update Count     : 8
    1111//
    1212
     
    5252                char c;
    5353                sin | c;                                                        sout | c;
    54                 sin | wdi( 3, c );                                      sout | c;
    5554                sin | ignore( c );                                      sout | c;
    56                 sin | ignore( wdi( 3, c ) );            sout | c;
    5755
    5856                signed char sc;
Note: See TracChangeset for help on using the changeset viewer.