Index: tests/.expect/manipulatorsInput.txt
===================================================================
--- tests/.expect/manipulatorsInput.txt	(revision d57e349b59b2caa4153e307659633985bc70b2c4)
+++ tests/.expect/manipulatorsInput.txt	(revision d57e349b59b2caa4153e307659633985bc70b2c4)
@@ -0,0 +1,94 @@
+1 yyyyyyyyyyyyyyyyyyyy
+2 abcxxx
+3 abcxxx
+4 aaaaaaaa
+5 aaaaaaaa
+6 aabbccbb
+7 dddwww
+8 dddwww
+9 dddwww
+10 aaaaaaaa
+11 wwwwwwww
+12 wwwwwwww
+13 wwwwwwww
+1 yyyyyyyyyyyyyyyyyyyy
+2 abcxxx
+3 abcxxx
+4 aaaaaaaa
+5 aaaaaaaa
+6 aabbccbb
+7 dddwww
+8 dddwww
+9 dddwww
+10 aaaaaaaa
+11 wwwwwwww
+12 wwwwwwww
+13 wwwwwwww
+a
+b
+b
+b
+-1
+15
+15
+15
+255
+15
+15
+15
+255
+15
+15
+15
+255
+15
+15
+15
+255
+15
+15
+15
+255
+15
+15
+15
+255
+15
+15
+15
+255
+15
+15
+15
+255
+15
+15
+15
+255
+15
+15
+15
+3.5
+345.6
+345.6
+345.6
+3.5
+345.6
+345.6
+345.6
+3.5
+345.6
+345.6
+345.6
+3.5+3.5i
+345.6+345.6i
+345.6+345.6i
+345.6+345.6i
+3.5+3.5i
+345.6+345.6i
+345.6+345.6i
+345.6+345.6i
+3.5+3.5i
+345.6+345.6i
+345.6+345.6i
+345.6+345.6i
Index: tests/.expect/manipulatorsOutput1.txt
===================================================================
--- tests/.expect/manipulatorsOutput1.txt	(revision d57e349b59b2caa4153e307659633985bc70b2c4)
+++ tests/.expect/manipulatorsOutput1.txt	(revision d57e349b59b2caa4153e307659633985bc70b2c4)
@@ -0,0 +1,50 @@
+signed char
+-12 -12   -12 -12   364 0364 f4 0xf4     0xf4 0x00000000f4    0X0F4 -012     -0000012
+-12 -12   -12 -12   364 0364 f4 0xf4     0xf4 0x00000000f4    0X0F4 -012     -0000012
+unsigned char
+12 12    12 12    14 014 c 0xc      0xc 0x000000000c    0X00C 012      00000012
+12 12    12 12    14 014 c 0xc      0xc 0x000000000c    0X00C 012      00000012
+signed short int
+-12 -12   -12 -12   177764 0177764 fff4 0xfff4   0xfff4 0x000000fff4   0XFFF4 -012     -0000012
+-12 -12   -12 -12   177764 0177764 fff4 0xfff4   0xfff4 0x000000fff4   0XFFF4 -012     -0000012
+unsigned short int
+12 12    12 12    14 014 c 0xc      0xc 0x000000000c    0X00C 012      00000012
+12 12    12 12    14 014 c 0xc      0xc 0x000000000c    0X00C 012      00000012
+signed int
+-12 -12   -12 -12   37777777764 037777777764 fffffff4 0xfffffff4 0xfffffff4 0x00fffffff4 0XFFFFFFF4 -012     -0000012
+-12 -12   -12 -12   37777777764 037777777764 fffffff4 0xfffffff4 0xfffffff4 0x00fffffff4 0XFFFFFFF4 -012     -0000012
+unsigned int
+12 12    12 12    14 014 c 0xc      0xc 0x000000000c    0X00C 012      00000012
+12 12    12 12    14 014 c 0xc      0xc 0x000000000c    0X00C 012      00000012
+signed long long int
+-12 -12   -12 -12   1777777777777777777764 01777777777777777777764 fffffffffffffff4 0xfffffffffffffff4 0xfffffffffffffff4 0xfffffffffffffff4 0XFFFFFFFFFFFFFFF4 -012     -0000012
+-12 -12   -12 -12   1777777777777777777764 01777777777777777777764 fffffffffffffff4 0xfffffffffffffff4 0xfffffffffffffff4 0xfffffffffffffff4 0XFFFFFFFFFFFFFFF4 -012     -0000012
+unsigned long long int
+12 12    12 12    14 014 c 0xc      0xc 0x000000000c    0X00C 012      00000012
+12 12    12 12    14 014 c 0xc      0xc 0x000000000c    0X00C 012      00000012
+
+binary integral
+0b0 0b1101 0B1101 1101 0b1101     0b1101 0b1101   0b001101 0b0000001101 0b001101
+
+float
+0         3  3.00000 3.537    3.537        4       4.      3.5      3.5 3        3.5      3.5      +3.5     +3.5     000003.5 3.54E+00 0x1.c5p+1 0X1.C5P+1 3.54e+00
+0. 3.000000 3.000000 3.537 3.537000        4        4      3.5      3.5 3.       3.5      3.5      +3.5     +3.5     000003.5 3.54E+00 0x1.c5p+1 0X1.C5P+1 3.54e+00
+double
+0  3.000000 3.537 3.537000       4.        4     3.54 3.54     +3.54    00003.54 3.54E+00 0x1.c5p+1 0X1.C5P+1 3.54e+00
+0. 3.000000 3.537 3.537000        4       4.     3.54 3.54     +3.54    00003.54 3.54E+00 0x1.c5p+1 0X1.C5P+1 3.54e+00
+long double
+0  3.000000 3.537 3.537000       4.        4     3.54 3.54     +3.54    00003.54 3.54E+00 0xe.26p-2 0XE.26P-2 3.54e+00
+0. 3.000000 3.53699999999999992 3.537000        4       4.     3.54 3.54     +3.54    00003.54 3.54E+00 0xe.26p-2 0XE.26P-2 3.54e+00
+
+char
+a  a     a a     141 0141 61 0x61     0x61     0X61 a               a
+a  a     a a     141 0141 61 0x61     0x61     0X61 a               a
+
+string
+abcd     abcd   abcd abcd    
+abcd     abcd   abcd abcd    
+
+binary string
+0b110000 0b1100001 0b1100010 0b1100011 0b1100100 0141 0142 0143 0144 0x61 0x62 0x63 0x64
+110000 1100001 1100010 1100011 1100100 141 142 143 144 61 62 63 64
+  110000  1100001  1100010  1100011  1100100  141  142  143  144  61  62  63  64
Index: tests/.expect/manipulatorsOutput2.txt
===================================================================
--- tests/.expect/manipulatorsOutput2.txt	(revision d57e349b59b2caa4153e307659633985bc70b2c4)
+++ tests/.expect/manipulatorsOutput2.txt	(revision d57e349b59b2caa4153e307659633985bc70b2c4)
@@ -0,0 +1,32 @@
+
+0b0 0b11011 0b11011 0b11011 0b11011
+0b11100101 0b1111111111100101 0b11111111111111111111111111100101 0b1111111111111111111111111111111111111111111111111111111111100101
+0 033 033 033 033
+0345 0177745 037777777745 01777777777777777777745
+0 0x1b 0x1b 0x1b 0x1b
+0xe5 0xffe5 0xffffffe5 0xffffffffffffffe5
+0x0p+0. 0x1.b8p+4 0x1.b8p+4 0xd.cp+1
+-0x1.b8p+4 -0x1.b8p+4 -0xd.cp+1
+0.000000e+00 2.750000e+01 -2.750000e+01
+0B11011 0X1B 2.75E-09 0X1.B8P+4
+11011 33 1b
+0. 0 27. 27 27.5
++27 -27 +27 -27 +27.5 -27.5
+  34  34 34
+  4.000000  4.000000 4.000000
+  ab  ab ab
+34567 34567 34567
+3456.000000 3456.000000 3456.000000
+abcde abcde abcde
+ 034     0034 0000000034
+3456     3456       3456
+     0000000034
+27.500     27.5      28. 27.50000000
+27.000 27.500     27.5      28. 27.50000000
+27   27.000000  27.500000  027  27.500    
+234.567 234.57  234.6   235.
+234567. 2.3457e+05 2.346e+05 2.35e+05
+234567. 234567. 234567. 234567.
+  abcd     abcd abcd
+  abcd abcdefgh    abc
+0027  027 0027.500
Index: tests/.in/manipulatorsInput.txt
===================================================================
--- tests/.in/manipulatorsInput.txt	(revision d57e349b59b2caa4153e307659633985bc70b2c4)
+++ tests/.in/manipulatorsInput.txt	(revision d57e349b59b2caa4153e307659633985bc70b2c4)
@@ -0,0 +1,25 @@
+abc
+abcxxx
+abcyyy
+aaaaaaaaxxxxxxxxaabbccbbdddwwwbbbbbbbbwwwwwwwwaaaaaaaawwwwwwww
+abc
+abcxxx
+abcyyy
+aaaaaaaaxxxxxxxxaabbccbbdddwwwbbbbbbbbwwwwwwwwaaaaaaaawwwwwwww
+abcd
+0xff 017 15-15
+0xff 017 15-15
+0xff 017 15-15
+0xff 017 15-15
+0xff 017 15-15
+0xff 017 15-15
+0xff 017 15-15
+0xff 017 15-15
+0xff 017 15-15
+0xff 017 15-15
+3.5 3.456E+2 -0x1.2p-3 0X1.23p3
+3.5 3.456E+2 -0x1.2p-3 0X1.23p3
+3.5 3.456E+2 -0x1.2p-3 0X1.23p3
+3.5 3.5 3.456E+23.456E+2 -0x1.2p-3 3.5 0X1.23p3     3.5
+3.5 3.5 3.456E+23.456E+2 -0x1.2p-3 3.5 0X1.23p3     3.5
+3.5 3.5 3.456E+23.456E+2 -0x1.2p-3 3.5 0X1.23p3     3.5
Index: tests/manipulatorsInput.cfa
===================================================================
--- tests/manipulatorsInput.cfa	(revision d57e349b59b2caa4153e307659633985bc70b2c4)
+++ tests/manipulatorsInput.cfa	(revision d57e349b59b2caa4153e307659633985bc70b2c4)
@@ -0,0 +1,159 @@
+// 
+// Cforall Version 1.0.0 Copyright (C) 2019 University of Waterloo
+// 
+// manipulatorsInput.cfa -- 
+// 
+// Author           : Peter A. Buhr
+// Created On       : Sat Jun  8 17:58:54 2019
+// Last Modified By : Peter A. Buhr
+// Last Modified On : Mon Jun 10 08:11:03 2019
+// Update Count     : 7
+// 
+
+#include <fstream.hfa>
+#include <stdio.h>					// scanf
+
+int main() {
+	{
+		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 );
+
+		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;
+
+		sin | incl( "abc", s );					sout | "6" | s;
+		sin | excl( "abc", s );					sout | "7" | s;
+		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;
+	}
+	{
+		char c;
+		sin | c;							sout | c;
+		sin | wdi( 3, c );					sout | c;
+		sin | ignore( c );					sout | c;
+		sin | ignore( wdi( 3, 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;
+
+		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;
+
+		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;
+
+		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;
+
+		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;
+
+		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;
+
+		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;
+
+		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;
+
+		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;
+
+		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;
+
+		float 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;
+
+		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;
+
+		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;
+
+		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;
+
+		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;
+	}
+} // main
+
+// Local Variables: //
+// tab-width: 4 //
+// compile-command: "cfa manipulatorsInput.cfa" //
+// End: //
Index: tests/manipulatorsOutput1.cfa
===================================================================
--- tests/manipulatorsOutput1.cfa	(revision d57e349b59b2caa4153e307659633985bc70b2c4)
+++ tests/manipulatorsOutput1.cfa	(revision d57e349b59b2caa4153e307659633985bc70b2c4)
@@ -0,0 +1,98 @@
+// 
+// Cforall Version 1.0.0 Copyright (C) 2019 University of Waterloo
+// 
+// manipulatorsOutput1.cfa -- 
+// 
+// Author           : Peter A. Buhr
+// Created On       : Sat Jun  8 18:04:11 2019
+// Last Modified By : Peter A. Buhr
+// Last Modified On : Mon Jun 10 12:37:28 2019
+// Update Count     : 8
+// 
+
+#include <fstream.hfa>
+
+int main() {
+	sout | "signed char";
+	signed char sc = -12;
+	printf( "%hhd %2hhd %5.2hhd %-5.2hhd %hho %#hho %hhx %#hhx %#8hhx %#8.10hhx %#8.3hhX %+-8.3hhd %08hhd\n", sc, sc, sc, sc, sc, sc, sc, sc, sc, sc, sc, sc, sc );
+	sout | sc | wd(2,sc) | wd(5,2,sc) | left(wd(5,2,sc)) | nobase(oct(sc)) | oct(sc) | nobase(hex(sc)) | hex(sc) | wd(8,hex(sc)) | wd(8,10,hex(sc)) | upcase(wd(8,3,hex(sc))) | left(sign(upcase(wd(8,3,sc)))) | pad0(wd(8,sc));
+
+	sout | "unsigned char";
+	unsigned char usc = 12;
+	printf( "%hhu %2hhu %5.2hhu %-5.2hhu %hho %#hho %hhx %#hhx %#8hhx %#8.10hhx %#8.3hhX %-8.3hhu %08hhu\n", usc, usc, usc, usc, usc, usc, usc, usc, usc, usc, usc, usc, usc );
+	sout | usc | wd(2,usc) | wd(5,2,usc) | left(wd(5,2,usc)) | nobase(oct(usc)) | oct(usc) | nobase(hex(usc)) | hex(usc) | wd(8,hex(usc)) | wd(8,10,hex(usc)) | upcase(wd(8,3,hex(usc))) | left(upcase(wd(8,3,usc))) | pad0(wd(8,usc));
+
+	sout | "signed short int";
+	signed short int si = -12;
+	printf( "%hd %2hd %5.2hd %-5.2hd %ho %#ho %hx %#hx %#8hx %#8.10hx %#8.3hX %+-8.3hd %08hd\n", si, si, si, si, si, si, si, si, si, si, si, si, si );
+	sout | si | wd(2,si) | wd(5,2,si) | left(wd(5,2,si)) | nobase(oct(si)) | oct(si) | nobase(hex(si)) | hex(si) | wd(8,hex(si)) | wd(8,10,hex(si)) | upcase(wd(8,3,hex(si))) | left(sign(upcase(wd(8,3,si)))) | pad0(wd(8,si));
+
+	sout | "unsigned short int";
+	unsigned short int usi = 12;
+	printf( "%hu %2hu %5.2hu %-5.2hu %ho %#ho %hx %#hx %#8hx %#8.10hx %#8.3hX %-8.3hu %08hu\n", usi, usi, usi, usi, usi, usi, usi, usi, usi, usi, usi, usi, usi );
+	sout | usi | wd(2,usi) | wd(5,2,usi) | left(wd(5,2,usi)) | nobase(oct(usi)) | oct(usi) | nobase(hex(usi)) | hex(usi) | wd(8,hex(usi)) | wd(8,10,hex(usi)) | upcase(wd(8,3,hex(usi))) | left(upcase(wd(8,3,usi))) | pad0(wd(8,usi));
+
+	sout | "signed int";
+	signed int i = -12;
+	printf( "%d %2d %5.2d %-5.2d %o %#o %x %#x %#8x %#8.10x %#8.3X %+-8.3d %08d\n", i, i, i, i, i, i, i, i, i, i, i, i, i );
+	sout | i | wd(2,i) | wd(5,2,i) | left(wd(5,2,i)) | nobase(oct(i)) | oct(i) | nobase(hex(i)) | hex(i) | wd(8,hex(i)) | wd(8,10,hex(i)) | upcase(wd(8,3,hex(i))) | left(sign(upcase(wd(8,3,i)))) | pad0(wd(8,i));
+
+	sout | "unsigned int";
+	unsigned int ui = 12;
+	printf( "%u %2u %5.2u %-5.2u %o %#o %x %#x %#8x %#8.10x %#8.3X %-8.3u %08u\n", ui, ui, ui, ui, ui, ui, ui, ui, ui, ui, ui, ui, ui );
+	sout | ui | wd(2,ui) | wd(5,2,ui) | left(wd(5,2,ui)) | nobase(oct(ui)) | oct(ui) | nobase(hex(ui)) | hex(ui) | wd(8,hex(ui)) | wd(8,10,hex(ui)) | upcase(wd(8,3,hex(ui))) | left(upcase(wd(8,3,ui))) | pad0(wd(8,ui));
+
+	sout | "signed long long int";
+	signed long long int lli = -12;
+	printf( "%lld %2lld %5.2lld %-5.2lld %llo %#llo %llx %#llx %#8llx %#8.10llx %#8.3llX %+-8.3lld %08lld\n", lli, lli, lli, lli, lli, lli, lli, lli, lli, lli, lli, lli, lli );
+	sout | lli | wd(2,lli) | wd(5,2,lli) | left(wd(5,2,lli)) | nobase(oct(lli)) | oct(lli) | nobase(hex(lli)) | hex(lli) | wd(8,hex(lli)) | wd(8,10,hex(lli)) | upcase(wd(8,3,hex(lli))) | left(sign(upcase(wd(8,3,lli)))) | pad0(wd(8,lli));
+
+	sout | "unsigned long long int";
+	unsigned long long int ulli = 12;
+	printf( "%llu %2llu %5.2llu %-5.2llu %llo %#llo %llx %#llx %#8llx %#8.10llx %#8.3llX %-8.3llu %08llu\n", ulli, ulli, ulli, ulli, ulli, ulli, ulli, ulli, ulli, ulli, ulli, ulli, ulli );
+	sout | ulli | wd(2,ulli) | wd(5,2,ulli) | left(wd(5,2,ulli)) | nobase(oct(ulli)) | oct(ulli) | nobase(hex(ulli)) | hex(ulli) | wd(8,hex(ulli)) | wd(8,10,hex(ulli)) | upcase(wd(8,3,hex(ulli))) | left(upcase(wd(8,3,ulli))) | pad0(wd(8,ulli));
+
+	sout | nl | "binary integral";
+	sout | bin(0) | bin(13) | upcase(bin(13)) | nobase(bin(13)) | left(wd(8,bin(13))) | wd(8,bin(13)) | pad0(left(wd(8,bin(13)))) | pad0(wd(8,bin(13))) | pad0(wd(8,10,bin(13))) | pad0(wd(8,6,bin(13)));
+
+
+	sout | nl | "float";
+	float f = 3.537;
+	printf( "%g  %8g %#8g %g %8g %8.0g %#8.0g %8.2g %#8.2g %-8.2g %-8.2g %-#8.2g %-+8.2g %-+#8.2g %08.2g %8.2E %8.2a %#8.2A %#8.2e\n",
+		    0.0,3.0F,3.0F, f,  f,    f,     f,    f,     f,  3.0F,      f,      f,      f,       f,     f,    f,    f,     f,     f );
+	sout | 0.0 | wd(8, 3.0F) | nodp(wd(8, 3.0F)) | f | wd(8, f) | ws(8,0, f) | nodp(ws(8,0, f)) | ws(8,2, f) | nodp(ws(8,2, f)) | left(ws(8,2, 3.0F)) | left(ws(8,2, f)) | left(nodp(ws(8,2, f))) | left(sign(ws(8,2, f))) | left(sign(nodp(ws(8,2, f)))) | pad0(ws(8,2, f)) | upcase(wd(8,2, sci(f))) | wd(8,2, hex(f)) | upcase(wd(8,2, hex(f))) | nodp(wd(8,2, sci(f)));
+
+	sout | "double";
+	double d = 3.537;
+	printf( "%g  %#8f %g %8f %#8.0f %8.0f %8.2f %-8.2f %-+#8.2f %08.2F %8.2E %8.2a %8.2A %8.2e\n",
+			0.0,  3.0, d,  d,     d,    d,    d,     d,       d,     d,    d,    d,    d,    d );
+	sout | 0.0 | wd(8, 3.0) | d | wd(8, d) | nodp(wd(8,0, d)) | wd(8,0, d) | wd(8,2, d) | left(wd(8,2, d)) | left(sign(wd(8,2, d))) | pad0(upcase(wd(8,2, d))) | upcase(wd(8,2, sci(d))) | wd(8,2, hex(d)) | upcase(wd(8,2, hex(d))) | wd(8,2, sci(d));
+
+	sout | "long double";
+	long double ld = 3.537;
+	printf( "%Lg  %#8Lf %Lg %8Lf %#8.0Lf %8.0Lf %8.2Lf %-8.2Lf %-+#8.2Lf %08.2LF %8.2LE %8.2La %8.2LA %8.2Le\n",
+			0.0L,  3.0L, ld,  ld,     ld,    ld,    ld,     ld,       ld,     ld,    ld,    ld,    ld,    ld );
+	sout | 0.0L | wd(8, 3.0L) | ld | wd(8, ld) | nodp(wd(8,0, ld)) | wd(8,0, ld) | wd(8,2, ld) | left(wd(8,2, ld)) | left(sign(wd(8,2, ld))) | pad0(upcase(wd(8,2, ld))) | upcase(wd(8,2, sci(ld))) | wd(8,2, hex(ld)) | upcase(wd(8,2, hex(ld))) | wd(8,2, sci(ld));
+
+
+	sout | nl | "char";
+	char c = 'a';
+	printf( "%c %2c %5c %-5c %hho %#hho %hhx %#hhx %#8hhx %#8hhX %-8c %8c\n", c, c, c, c, c, c, c, c, c, c, c, c );
+	sout | c | ' ' | wd(2,c) | wd(5,c) | left(wd(5,c)) | nobase(oct(c)) | oct(c) | nobase(hex(c)) | hex(c) | wd(8,hex(c)) | upcase(wd(8,hex(c))) | left(wd(8,c)) | wd(8,c);
+
+	sout | nl | "string";
+	const char * s = "abcd";
+	printf( "%s %8s %6.8s %-8s\n", s, s, s, s );
+	sout | s | wd(8,s) | wd(6,8,s) | left(wd(8,s));
+
+	sout | nl | "binary string";
+	sout | bin("0") | bin(s) | oct(s) | hex(s);
+	sout | nobase(bin("0")) | nobase(bin(s)) | nobase(oct(s)) | nobase(hex(s));
+	sout | nobase(wd(8,bin("0"))) | nobase(wd(8,bin(s))) | nobase(wd(4,oct(s))) | nobase(wd(3,hex(s)));
+}
+
+// Local Variables: //
+// tab-width: 4 //
+// compile-command: "cfa -Wall -Wextra amanipulatorsOutput1.cfa" //
+// End: //
Index: tests/manipulatorsOutput2.cfa
===================================================================
--- tests/manipulatorsOutput2.cfa	(revision d57e349b59b2caa4153e307659633985bc70b2c4)
+++ tests/manipulatorsOutput2.cfa	(revision d57e349b59b2caa4153e307659633985bc70b2c4)
@@ -0,0 +1,55 @@
+// 
+// Cforall Version 1.0.0 Copyright (C) 2019 University of Waterloo
+// 
+// manipulatorsOutput2.cfa -- 
+// 
+// Author           : Peter A. Buhr
+// Created On       : Sat Jun  8 18:04:11 2019
+// Last Modified By : Peter A. Buhr
+// Last Modified On : Mon Jun 10 12:37:57 2019
+// Update Count     : 8
+// 
+
+#include <fstream.hfa>
+
+int main() {
+	sout | nl;
+    sout | bin(0) | bin(27HH) | bin(27H) | bin(27) | bin(27L);
+    sout | bin(-27HH) | bin(-27H) | bin(-27) | bin(-27L);
+    sout | oct(0) | oct(27HH) | oct(27H) | oct(27) | oct(27L);
+    sout | oct(-27HH) | oct(-27H) | oct(-27) | oct(-27L);
+    sout | hex(0) | hex(27HH) | hex(27H) | hex(27) | hex(27L);
+    sout | hex(-27HH) | hex(-27H) | hex(-27) | hex(-27L);
+    sout | hex(0.0) | hex(27.5F) | hex(27.5) | hex(27.5L);
+    sout | hex(-27.5F) | hex(-27.5) | hex(-27.5L);
+	sout | sci(0.0) | sci(27.5) | sci(-27.5);
+	sout | upcase(bin(27)) | upcase(hex(27)) | upcase(27.5e-10) | upcase(hex(27.5));
+	sout | nobase(bin(27)) | nobase(oct(27)) | nobase(hex(27));
+    sout | 0. | nodp(0.) | 27.0 | nodp(27.0) | nodp(27.5);
+    sout | sign(27) | sign(-27) | sign(27.) | sign(-27.) | sign(27.5) | sign(-27.5);
+	sout | wd( 4, 34) | wd( 3, 34 ) | wd( 2, 34 );
+	sout | wd( 10, 4.) | wd( 9, 4. ) | wd( 8, 4. );
+	sout | wd( 4, "ab" ) | wd( 3, "ab" ) | wd( 2, "ab" );
+	sout | wd( 4, 34567 ) | wd( 3, 34567 ) | wd( 2, 34567 );
+	sout | wd( 4, 3456. ) | wd( 3, 3456. ) | wd( 2, 3456. );
+	sout | wd( 4, "abcde" ) | wd( 3, "abcde" ) | wd( 2,"abcde" );
+	sout | wd(4,3, 34) | wd(8,4, 34) | wd(10,10, 34);
+	sout | wd( 4,1, 3456 ) | wd( 8,2, 3456 ) | wd( 10,3, 3456 );
+	sout | wd( 4,0, 0 ) | wd( 3,10, 34 );
+	sout | wd(6,3, 27.5) | wd(8,1, 27.5) | wd(8,0, 27.5) | wd(3,8, 27.5);
+	sout | wd(6,3, 27.0) | wd(6,3, 27.5) | wd(8,1, 27.5) | wd(8,0, 27.5) | wd(3,8, 27.5);
+	sout | left(wd(4,27)) | left(wd(10,27.)) | left(wd(10,27.5)) | left(wd(4,3,27)) | left(wd(10,3,27.5));
+	sout | ws(6,6, 234.567) | ws(6,5, 234.567) | ws(6,4, 234.567) | ws(6,3, 234.567);
+	sout | ws(6,6, 234567.) | ws(6,5, 234567.) | ws(6,4, 234567.) | ws(6,3, 234567.);
+	sout | ws(3,6, 234567.) | ws(4,6, 234567.) | ws(5,6, 234567.) | ws(6,6, 234567.);
+	sout | wd(6, "abcd") | wd(8, "abcd") | wd(2, "abcd");
+	sout | wd(6,8, "abcd") | wd(6,8, "abcdefghijk") | wd(6,3, "abcd");
+    sout | pad0(wd(4,27)) | pad0(wd(4,3,27)) | pad0(wd(8,3,27.5));
+
+//	sexit | 3 | 4;
+}
+
+// Local Variables: //
+// tab-width: 4 //
+// compile-command: "cfa -Wall -Wextra amanipulatorsOutput2.cfa" //
+// End: //
