Index: libcfa/src/iostream.cfa
===================================================================
--- libcfa/src/iostream.cfa	(revision 6896548fa6cba77903ac279c4d77b434bb762886)
+++ libcfa/src/iostream.cfa	(revision 6a1dfdab0b3a899390e731091068f02d8d631676)
@@ -10,6 +10,6 @@
 // Created On       : Wed May 27 17:56:53 2015
 // Last Modified By : Peter A. Buhr
-// Last Modified On : Wed Jun 12 15:00:31 2019
-// Update Count     : 819
+// Last Modified On : Thu Jun 13 17:21:10 2019
+// Update Count     : 812
 //
 
@@ -740,8 +740,8 @@
 	} // ?|?
 
-	istype & ?|?( istype & is, const char * fmt ) {
-		fmt( is, fmt, "" );
-		return is;
-	} // ?|?
+	// istype & ?|?( istype & is, const char * fmt ) {
+	// 	fmt( is, fmt, "" );
+	// 	return is;
+	// } // ?|?
 
 	istype & ?|?( istype & is, char * s ) {
@@ -777,7 +777,7 @@
 	// skip xxx
 	if ( ! f.s ) {
-		//printf( "skip %s %d\n", f.scanset, f.wd );
-		if ( f.wd != -1 ) for ( f.wd ) fmt( is, "%*c" ); // no input arguments
-		else fmt( is, f.scanset, "" );
+		// printf( "skip %s %d\n", f.scanset, f.wd );
+		if ( f.wd == -1 ) fmt( is, f.scanset, "" ); // no input arguments
+		else for ( f.wd ) fmt( is, "%*c" );
 		return is;
 	} // if
Index: libcfa/src/iostream.hfa
===================================================================
--- libcfa/src/iostream.hfa	(revision 6896548fa6cba77903ac279c4d77b434bb762886)
+++ libcfa/src/iostream.hfa	(revision 6a1dfdab0b3a899390e731091068f02d8d631676)
@@ -10,6 +10,6 @@
 // Created On       : Wed May 27 17:56:53 2015
 // Last Modified By : Peter A. Buhr
-// Last Modified On : Wed Jun 12 13:35:42 2019
-// Update Count     : 331
+// Last Modified On : Thu Jun 13 17:20:21 2019
+// Update Count     : 325
 //
 
@@ -316,5 +316,5 @@
 	istype & ?|?( istype &, long double _Complex & );
 
-	istype & ?|?( istype &, const char * );
+//	istype & ?|?( istype &, const char * );
 	istype & ?|?( istype &, char * );
 
@@ -350,6 +350,6 @@
 	_Istream_Cstr ignore( const char * s ) { return (_Istream_Cstr)@{ s, 0p, -1, { .flags.ignore : true } }; }
 	_Istream_Cstr & ignore( _Istream_Cstr & fmt ) { fmt.flags.ignore = true; return fmt; }
-	_Istream_Cstr wd( unsigned int w, char * s ) { return (_Istream_Cstr)@{ s, 0p, w, { .all : 0 } }; }
-	_Istream_Cstr & wd( unsigned int w, _Istream_Cstr & fmt ) { fmt.wd = w; return fmt; }
+	_Istream_Cstr wdi( unsigned int w, char * s ) { return (_Istream_Cstr)@{ s, 0p, w, { .all : 0 } }; }
+	_Istream_Cstr & wdi( unsigned int w, _Istream_Cstr & fmt ) { fmt.wd = w; return fmt; }
 } // distribution
 forall( dtype istype | istream( istype ) ) istype & ?|?( istype & is, _Istream_Cstr f );
@@ -377,5 +377,5 @@
 	_Istream_Manip(T) & ignore( _Istream_Manip(T) & fmt ) { fmt.ignore = true; return fmt; } \
 	_Istream_Manip(T) wdi( unsigned int w, T & val ) { return (_Istream_Manip(T))@{ val, w, false }; } \
-	_Istream_Manip(T) & wd( unsigned int w, _Istream_Manip(T) & fmt ) { fmt.wd = w; return fmt; } \
+	_Istream_Manip(T) & wdi( unsigned int w, _Istream_Manip(T) & fmt ) { fmt.wd = w; return fmt; } \
 } /* distribution */ \
 forall( dtype istype | istream( istype ) ) { \
Index: tests/.in/manipulatorsInput.txt
===================================================================
--- tests/.in/manipulatorsInput.txt	(revision 6896548fa6cba77903ac279c4d77b434bb762886)
+++ tests/.in/manipulatorsInput.txt	(revision 6a1dfdab0b3a899390e731091068f02d8d631676)
@@ -5,5 +5,4 @@
 abcyyy
 aaaaaaaaxxxxxxxxaabbccbbdddwwwbbbbbbbbwwwwwwwwaaaaaaaawwwwwwww
-abc 
 abc 
 xx
Index: tests/io2.cfa
===================================================================
--- tests/io2.cfa	(revision 6896548fa6cba77903ac279c4d77b434bb762886)
+++ tests/io2.cfa	(revision 6a1dfdab0b3a899390e731091068f02d8d631676)
@@ -10,6 +10,6 @@
 // Created On       : Wed Mar  2 16:56:02 2016
 // Last Modified By : Peter A. Buhr
-// Last Modified On : Sun Jun  9 08:07:42 2019
-// Update Count     : 117
+// Last Modified On : Thu Jun 13 16:43:14 2019
+// Update Count     : 120
 //
 
@@ -49,5 +49,5 @@
 	in	 | f | d | ld;									// floating point
 	in	 | fc | dc | ldc;								// floating-point complex
-	in	 | cstr( s1 ) | wd( size, cstr( s2 ) );			// C string, length unchecked and checked
+	in	 | s1 | wdi( size, s2 );						// C string, length unchecked and checked
 	sout | nl;
 
Index: tests/manipulatorsInput.cfa
===================================================================
--- tests/manipulatorsInput.cfa	(revision 6896548fa6cba77903ac279c4d77b434bb762886)
+++ tests/manipulatorsInput.cfa	(revision 6a1dfdab0b3a899390e731091068f02d8d631676)
@@ -7,6 +7,6 @@
 // Created On       : Sat Jun  8 17:58:54 2019
 // Last Modified By : Peter A. Buhr
-// Last Modified On : Mon Jun 10 18:38:35 2019
-// Update Count     : 8
+// Last Modified On : Thu Jun 13 17:41:43 2019
+// Update Count     : 37
 // 
 
@@ -17,26 +17,28 @@
 	{
 		char s[] = "yyyyyyyyyyyyyyyyyyyy";
-		scanf( "abc" );			printf( "1 %s\n", s );
-		scanf( "%s", s );					printf( "2 %s\n", s );
-		scanf( "%*s" );						printf( "3 %s\n", s );
-		scanf( "%8s", s );					printf( "4 %s\n", s );
-		scanf( "%*8s" );					printf( "5 %s\n", s );
+		const char sk[] = "abc";
+		scanf( "abc " ); scanf( sk ); for ( 5 ) scanf( "%*c" );	printf( "1 %s\n", s );
+		scanf( "%s", s );						printf( "2 %s\n", s );
+		scanf( "%*s" );							printf( "3 %s\n", s );
+		scanf( "%8s", s );						printf( "4 %s\n", s );
+		scanf( "%*8s" );						printf( "5 %s\n", s );
 
-		scanf( "%[abc]", s );				printf( "6 %s\n", s );
-		scanf( "%[^abc]", s );				printf( "7 %s\n", s );
-		scanf( "%*[abc]" );					printf( "8 %s\n", s );
-		scanf( "%*[^abc]" );				printf( "9 %s\n", s );
-		scanf( "%8[abc]", s );				printf( "10 %s\n", s );
-		scanf( "%8[^abc]", s );				printf( "11 %s\n", s );
-		scanf( "%*8[abc]" );				printf( "12 %s\n", s );
-		scanf( "%*8[^abc]" );				printf( "13 %s\n", s );
+		scanf( "%[abc]", s );					printf( "6 %s\n", s );
+		scanf( "%[^abc]", s );					printf( "7 %s\n", s );
+		scanf( "%*[abc]" );						printf( "8 %s\n", s );
+		scanf( "%*[^abc]" );					printf( "9 %s\n", s );
+		scanf( "%8[abc]", s );					printf( "10 %s\n", s );
+		scanf( "%8[^abc]", s );					printf( "11 %s\n", s );
+		scanf( "%*8[abc]" );					printf( "12 %s\n", s );
+		scanf( "%*8[^abc]" );					printf( "13 %s\n", s );
 	}
 	{
 		char s[] = "yyyyyyyyyyyyyyyyyyyy";
-		sin | skip( "abc" );					sout | "1" | s;
-		sin | cstr( s );						sout | "2" | s;
-		sin | ignore( cstr( s ) );				sout | "3" | s;
-		sin | wd( 8, cstr( s ) );				sout | "4" | s;
-		sin | ignore( wd( 8, cstr( s ) ) );		sout | "5" | s;
+		char sk[] = "abc";
+		sin /*| "abc "*/ | skip( sk ) | skip( 5 );	sout | "1" | s;
+		sin | s;								sout | "2" | s;
+		sin | ignore( s );						sout | "3" | s;
+ 		sin | wdi( 8, s );						sout | "4" | s;
+		sin | ignore( wdi( 8, s ) );			sout | "5" | s;
 
 		sin | incl( "abc", s );					sout | "6" | s;
@@ -44,109 +46,109 @@
 		sin | ignore( incl( "abc", s ) );		sout | "8" | s;
 		sin | ignore( excl( "abc", s ) );		sout | "9" | s;
-		sin | wd( 8, incl( "abc", s ) );		sout | "10" | s;
-		sin | wd( 8, excl( "abc", s ) );		sout | "11" | s;
-		sin | ignore( wd( 8, incl( "abc", s ) ) );	sout | "12" | s;
-		sin | ignore( wd( 8, excl( "abc", s ) ) );	sout | "13" | s;
+		sin | wdi( 8, incl( "abc", s ) );		sout | "10" | s;
+		sin | wdi( 8, excl( "abc", s ) );		sout | "11" | s;
+		sin | ignore( wdi( 8, incl( "abc", s ) ) );	sout | "12" | s;
+		sin | ignore( wdi( 8, excl( "abc", s ) ) );	sout | "13" | s;
 	}
 	{
 		char c;
-		sin | c;							sout | c;
-		sin | ignore( c );					sout | c;
+		sin | c;								sout | c;
+		sin | ignore( c );						sout | c;
 
 		signed char sc;
-		sin | sc;							sout | sc;
-		sin | wdi( 3, sc );					sout | sc;
-		sin | ignore( sc );					sout | sc;
-		sin | ignore( wdi( 3, sc ) );		sout | sc;
+		sin | sc;								sout | sc;
+		sin | wdi( 3, sc );						sout | sc;
+		sin | ignore( sc );						sout | sc;
+		sin | ignore( wdi( 3, sc ) );			sout | sc;
 
 		unsigned char usc;
-		sin | usc;							sout | usc;
-		sin | wdi( 3, usc );				sout | usc;
-		sin | ignore( usc );				sout | usc;
-		sin | ignore( wdi( 3, usc ) );		sout | usc;
+		sin | usc;								sout | usc;
+		sin | wdi( 3, usc );					sout | usc;
+		sin | ignore( usc );					sout | usc;
+		sin | ignore( wdi( 3, usc ) );			sout | usc;
 
 		signed short int ssi;
-		sin | ssi;							sout | ssi;
-		sin | wdi( 3, ssi );				sout | ssi;
-		sin | ignore( ssi );				sout | ssi;
-		sin | ignore( wdi( 3, ssi ) );		sout | ssi;
+		sin | ssi;								sout | ssi;
+		sin | wdi( 3, ssi );					sout | ssi;
+		sin | ignore( ssi );					sout | ssi;
+		sin | ignore( wdi( 3, ssi ) );			sout | ssi;
 
 		unsigned short int usi;
-		sin | usi;							sout | usi;
-		sin | wdi( 3, usi );				sout | usi;
-		sin | ignore( usi );				sout | usi;
-		sin | ignore( wdi( 3, usi ) );		sout | usi;
+		sin | usi;								sout | usi;
+		sin | wdi( 3, usi );					sout | usi;
+		sin | ignore( usi );					sout | usi;
+		sin | ignore( wdi( 3, usi ) );			sout | usi;
 
 		signed int si;
-		sin | si;							sout | si;
-		sin | wdi( 3, si );					sout | si;
-		sin | ignore( si );					sout | si;
-		sin | ignore( wdi( 3, si ) );		sout | si;
+		sin | si;								sout | si;
+		sin | wdi( 3, si );						sout | si;
+		sin | ignore( si );						sout | si;
+		sin | ignore( wdi( 3, si ) );			sout | si;
 
 		unsigned int ui;
-		sin | ui;							sout | ui;
-		sin | wdi( 3, ui );					sout | ui;
-		sin | ignore( ui );					sout | ui;
-		sin | ignore( wdi( 3, ui ) );		sout | ui;
+		sin | ui;								sout | ui;
+		sin | wdi( 3, ui );						sout | ui;
+		sin | ignore( ui );						sout | ui;
+		sin | ignore( wdi( 3, ui ) );			sout | ui;
 
 		signed long int sli;
-		sin | sli;							sout | sli;
-		sin | wdi( 3, sli );				sout | sli;
-		sin | ignore( sli );				sout | sli;
-		sin | ignore( wdi( 3, sli ) );		sout | sli;
+		sin | sli;								sout | sli;
+		sin | wdi( 3, sli );					sout | sli;
+		sin | ignore( sli );					sout | sli;
+		sin | ignore( wdi( 3, sli ) );			sout | sli;
 
 		unsigned long int uli;
-		sin | uli;							sout | uli;
-		sin | wdi( 3, uli );				sout | uli;
-		sin | ignore( uli );				sout | uli;
-		sin | ignore( wdi( 3, uli ) );		sout | uli;
+		sin | uli;								sout | uli;
+		sin | wdi( 3, uli );					sout | uli;
+		sin | ignore( uli );					sout | uli;
+		sin | ignore( wdi( 3, uli ) );			sout | uli;
 
 		signed long long int slli;
-		sin | slli;							sout | slli;
-		sin | wdi( 3, slli );				sout | slli;
-		sin | ignore( slli );				sout | slli;
-		sin | ignore( wdi( 3, slli ) );		sout | slli;
+		sin | slli;								sout | slli;
+		sin | wdi( 3, slli );					sout | slli;
+		sin | ignore( slli );					sout | slli;
+		sin | ignore( wdi( 3, slli ) );			sout | slli;
 
 		unsigned long long int ulli;
-		sin | ulli;							sout | ulli;
-		sin | wdi( 3, ulli );				sout | ulli;
-		sin | ignore( ulli );				sout | ulli;
-		sin | ignore( wdi( 3, ulli ) );		sout | ulli;
+		sin | ulli;								sout | ulli;
+		sin | wdi( 3, ulli );					sout | ulli;
+		sin | ignore( ulli );					sout | ulli;
+		sin | ignore( wdi( 3, ulli ) );			sout | ulli;
 
 		float f;
-		sin | f;							sout | f;
-		sin | wdi( 8, f );					sout | f;
-		sin | ignore( f );					sout | f;
-		sin | ignore( wdi( 8, f ) );		sout | f;
+		sin | f;								sout | f;
+		sin | wdi( 8, f );						sout | f;
+		sin | ignore( f );						sout | f;
+		sin | ignore( wdi( 8, f ) );			sout | f;
 
 		double d;
-		sin | d;							sout | d;
-		sin | wdi( 8, d );					sout | d;
-		sin | ignore( d );					sout | d;
-		sin | ignore( wdi( 8, d ) );		sout | d;
+		sin | d;								sout | d;
+		sin | wdi( 8, d );						sout | d;
+		sin | ignore( d );						sout | d;
+		sin | ignore( wdi( 8, d ) );			sout | d;
 
 		long double ld;
-		sin | ld;							sout | ld;
-		sin | wdi( 8, ld );					sout | ld;
-		sin | ignore( ld );					sout | ld;
-		sin | ignore( wdi( 8, ld ) );		sout | ld;
+		sin | ld;								sout | ld;
+		sin | wdi( 8, ld );						sout | ld;
+		sin | ignore( ld );						sout | ld;
+		sin | ignore( wdi( 8, ld ) );			sout | ld;
 
 		float _Complex fc;
-		sin | fc;							sout | fc;
-		sin | wdi( 8, fc );					sout | fc;
-		sin | ignore( fc );					sout | fc;
-		sin | ignore( wdi( 8, fc ) );		sout | fc;
+		sin | fc;								sout | fc;
+		sin | wdi( 8, fc );						sout | fc;
+		sin | ignore( fc );						sout | fc;
+		sin | ignore( wdi( 8, fc ) );			sout | fc;
 
 		double _Complex dc;
-		sin | dc;							sout | dc;
-		sin | wdi( 8, dc );					sout | dc;
-		sin | ignore( dc );					sout | dc;
-		sin | ignore( wdi( 8, dc ) );		sout | dc;
+		sin | dc;								sout | dc;
+		sin | wdi( 8, dc );						sout | dc;
+		sin | ignore( dc );						sout | dc;
+		sin | ignore( wdi( 8, dc ) );			sout | dc;
 
 		long double _Complex ldc;
-		sin | ldc;							sout | ldc;
-		sin | wdi( 8, ldc );				sout | ldc;
-		sin | ignore( ldc );				sout | ldc;
-		sin | ignore( wdi( 8, ldc ) );		sout | ldc;
+		sin | ldc;								sout | ldc;
+		sin | wdi( 8, ldc );					sout | ldc;
+		sin | ignore( ldc );					sout | ldc;
+		sin | ignore( wdi( 8, ldc ) );			sout | ldc;
 	}
 } // main
@@ -154,4 +156,4 @@
 // Local Variables: //
 // tab-width: 4 //
-// compile-command: "cfa manipulatorsInput.cfa" //
+// compile-command: "cfa -Wall -Wextra manipulatorsInput.cfa" //
 // End: //
