Index: libcfa/src/fstream.cfa
===================================================================
--- libcfa/src/fstream.cfa	(revision 760235aaee95cc0278154ec0de9799f21d7c90f9)
+++ libcfa/src/fstream.cfa	(revision 5ea5b28f99a21543ee16545ccb212eddbb550eff)
@@ -10,6 +10,6 @@
 // Created On       : Wed May 27 17:56:53 2015
 // Last Modified By : Peter A. Buhr
-// Last Modified On : Wed Dec 12 08:34:28 2018
-// Update Count     : 298
+// Last Modified On : Sat Dec 22 17:01:54 2018
+// Update Count     : 302
 //
 
@@ -26,10 +26,10 @@
 #define IO_MSG "I/O error: "
 
-void ?{}( ofstream & os, void * file, bool sepDefault, bool sepOnOff, bool nlOnOff, bool nonlManip, const char * separator, const char * tupleSeparator ) {
+void ?{}( ofstream & os, void * file, bool sepDefault, bool sepOnOff, bool nlOnOff, bool prt, const char * separator, const char * tupleSeparator ) {
 	os.file = file;
 	os.sepDefault = sepDefault;
 	os.sepOnOff = sepOnOff;
 	os.nlOnOff = nlOnOff;
-	os.nonlManip = nonlManip;
+	os.prt = prt;
 	sepSet( os, separator );
 	sepSetCur( os, sepGet( os ) );
@@ -46,6 +46,6 @@
 void setNL( ofstream & os, bool state ) { os.sawNL = state; }
 bool getANL( ofstream & os ) { return os.nlOnOff; }
-bool getNonl( ofstream & os ) { return os.nonlManip; }
-void setNonl( ofstream & os, bool state ) { os.nonlManip = state; }
+bool getPrt( ofstream & os ) { return os.prt; }
+void setPrt( ofstream & os, bool state ) { os.prt = state; }
 
 // public
@@ -150,4 +150,5 @@
 	va_end( args );
 
+	setPrt( os, true );
 	sepReset( os );										// reset separator
 	return len;
Index: libcfa/src/fstream.hfa
===================================================================
--- libcfa/src/fstream.hfa	(revision 760235aaee95cc0278154ec0de9799f21d7c90f9)
+++ libcfa/src/fstream.hfa	(revision 5ea5b28f99a21543ee16545ccb212eddbb550eff)
@@ -10,6 +10,6 @@
 // Created On       : Wed May 27 17:56:53 2015
 // Last Modified By : Peter A. Buhr
-// Last Modified On : Wed Dec 12 07:52:41 2018
-// Update Count     : 143
+// Last Modified On : Sat Dec 22 17:55:37 2018
+// Update Count     : 148
 //
 
@@ -24,5 +24,5 @@
 	bool sepOnOff;
 	bool nlOnOff;
-	bool nonlManip;
+	bool prt;											// print text
 	bool sawNL;
 	const char * sepCur;
@@ -40,6 +40,6 @@
 void setNL( ofstream &, bool );
 bool getANL( ofstream & );
-bool getNonl( ofstream & );
-void setNonl( ofstream &, bool );
+bool getPrt( ofstream & );
+void setPrt( ofstream &, bool );
 
 // public
Index: libcfa/src/iostream.cfa
===================================================================
--- libcfa/src/iostream.cfa	(revision 760235aaee95cc0278154ec0de9799f21d7c90f9)
+++ libcfa/src/iostream.cfa	(revision 5ea5b28f99a21543ee16545ccb212eddbb550eff)
@@ -10,6 +10,6 @@
 // Created On       : Wed May 27 17:56:53 2015
 // Last Modified By : Peter A. Buhr
-// Last Modified On : Thu Dec 13 14:13:22 2018
-// Update Count     : 548
+// Last Modified On : Sat Dec 22 23:09:56 2018
+// Update Count     : 569
 //
 
@@ -34,4 +34,5 @@
 	void ?|?( ostype & os, bool b ) {
 		(ostype)(os | b); if ( getANL( os ) ) nl( os );
+		setPrt( os, false );							// turn off
 	} // ?|?
 
@@ -43,4 +44,5 @@
 	void ?|?( ostype & os, char c ) {
 		(ostype)(os | c); if ( getANL( os ) ) nl( os );
+		setPrt( os, false );							// turn off
 	} // ?|?
 
@@ -52,4 +54,5 @@
 	void ?|?( ostype & os, signed char sc ) {
 		(ostype)(os | sc); if ( getANL( os ) ) nl( os );
+		setPrt( os, false );							// turn off
 	} // ?|?
 
@@ -61,4 +64,5 @@
 	void ?|?( ostype & os, unsigned char usc ) {
 		(ostype)(os | usc); if ( getANL( os ) ) nl( os );
+		setPrt( os, false );							// turn off
 	} // ?|?
 
@@ -70,4 +74,5 @@
 	void & ?|?( ostype & os, short int si ) {
 		(ostype)(os | si); if ( getANL( os ) ) nl( os );
+		setPrt( os, false );							// turn off
 	} // ?|?
 
@@ -79,4 +84,5 @@
 	void & ?|?( ostype & os, unsigned short int usi ) {
 		(ostype)(os | usi); if ( getANL( os ) ) nl( os );
+		setPrt( os, false );							// turn off
 	} // ?|?
 
@@ -88,4 +94,5 @@
 	void & ?|?( ostype & os, int i ) {
 		(ostype)(os | i); if ( getANL( os ) ) nl( os );
+		setPrt( os, false );							// turn off
 	} // ?|?
 
@@ -97,4 +104,5 @@
 	void & ?|?( ostype & os, unsigned int ui ) {
 		(ostype)(os | ui); if ( getANL( os ) ) nl( os );
+		setPrt( os, false );							// turn off
 	} // ?|?
 
@@ -106,4 +114,5 @@
 	void & ?|?( ostype & os, long int li ) {
 		(ostype)(os | li); if ( getANL( os ) ) nl( os );
+		setPrt( os, false );							// turn off
 	} // ?|?
 
@@ -115,4 +124,5 @@
 	void & ?|?( ostype & os, unsigned long int uli ) {
 		(ostype)(os | uli); if ( getANL( os ) ) nl( os );
+		setPrt( os, false );							// turn off
 	} // ?|?
 
@@ -124,4 +134,5 @@
 	void & ?|?( ostype & os, long long int lli ) {
 		(ostype)(os | lli); if ( getANL( os ) ) nl( os );
+		setPrt( os, false );							// turn off
 	} // ?|?
 
@@ -133,4 +144,5 @@
 	void & ?|?( ostype & os, unsigned long long int ulli ) {
 		(ostype)(os | ulli); if ( getANL( os ) ) nl( os );
+		setPrt( os, false );							// turn off
 	} // ?|?
 
@@ -142,4 +154,5 @@
 	void & ?|?( ostype & os, float f ) {
 		(ostype)(os | f); if ( getANL( os ) ) nl( os );
+		setPrt( os, false );							// turn off
 	} // ?|?
 
@@ -151,4 +164,5 @@
 	void & ?|?( ostype & os, double d ) {
 		(ostype)(os | d); if ( getANL( os ) ) nl( os );
+		setPrt( os, false );							// turn off
 	} // ?|?
 
@@ -160,4 +174,5 @@
 	void & ?|?( ostype & os, long double ld ) {
 		(ostype)(os | ld); if ( getANL( os ) ) nl( os );
+		setPrt( os, false );							// turn off
 	} // ?|?
 
@@ -169,4 +184,5 @@
 	void & ?|?( ostype & os, float _Complex fc ) {
 		(ostype)(os | fc); if ( getANL( os ) ) nl( os );
+		setPrt( os, false );							// turn off
 	} // ?|?
 
@@ -178,4 +194,5 @@
 	void & ?|?( ostype & os, double _Complex dc ) {
 		(ostype)(os | dc); if ( getANL( os ) ) nl( os );
+		setPrt( os, false );							// turn off
 	} // ?|?
 
@@ -187,4 +204,5 @@
 	void & ?|?( ostype & os, long double _Complex ldc ) {
 		(ostype)(os | ldc); if ( getANL( os ) ) nl( os );
+		setPrt( os, false );							// turn off
 	} // ?|?
 
@@ -229,4 +247,5 @@
 	void ?|?( ostype & os, const char * str ) {
 		(ostype)(os | str); if ( getANL( os ) ) nl( os );
+		setPrt( os, false );							// turn off
 	} // ?|?
 
@@ -258,4 +277,5 @@
 	void ?|?( ostype & os, const void * p ) {
 		(ostype)(os | p); if ( getANL( os ) ) nl( os );
+		setPrt( os, false );							// turn off
 	} // ?|?
 
@@ -263,11 +283,10 @@
 	ostype & ?|?( ostype & os, ostype & (* manip)( ostype & ) ) {
 		(ostype)(manip( os ));
-		setNonl( os, false );							// ignore nonl in middle
 		return os;
 	} // ?|?
 	void ?|?( ostype & os, ostype & (* manip)( ostype & ) ) {
 		(ostype)(manip( os ));
-		if ( getANL( os ) && ! getNonl( os ) ) nl( os ); // ignore nl if nonl at end
-		setNonl( os, false );
+		if ( getANL( os ) && getPrt( os ) ) nl( os );	// ignore auto nl?
+		setPrt( os, false );							// turn off
 	} // ?|?
 
@@ -282,4 +301,5 @@
 	ostype & nl( ostype & os ) {
 		(ostype)(os | '\n');
+		setPrt( os, false );							// turn off
 		setNL( os, true );
 		flush( os );
@@ -288,5 +308,5 @@
 
 	ostype & nonl( ostype & os ) {
-		setNonl( os, true );							// indicate nonl manipulator
+		setPrt( os, false );							// turn off
 		return os;
 	} // nonl
@@ -339,4 +359,5 @@
 		sepSetCur( os, sepGet( os ) );					// switch to regular separator
 		if ( getANL( os ) ) nl( os );
+		setPrt( os, false );							// turn off
 	} // ?|?
 } // distribution
Index: libcfa/src/iostream.hfa
===================================================================
--- libcfa/src/iostream.hfa	(revision 760235aaee95cc0278154ec0de9799f21d7c90f9)
+++ libcfa/src/iostream.hfa	(revision 5ea5b28f99a21543ee16545ccb212eddbb550eff)
@@ -10,6 +10,6 @@
 // Created On       : Wed May 27 17:56:53 2015
 // Last Modified By : Peter A. Buhr
-// Last Modified On : Tue Dec 11 22:01:31 2018
-// Update Count     : 213
+// Last Modified On : Sat Dec 22 17:00:39 2018
+// Update Count     : 218
 //
 
@@ -28,6 +28,6 @@
 	void setNL( ostype &, bool );						// saw newline
 	bool getANL( ostype & );							// check auto newline
-	bool getNonl( ostype & );							// check nonnl manipulator
-	void setNonl( ostype &, bool );						// set nonnl manipulator
+	bool getPrt( ostype & );							// check ignore auto NL
+	void setPrt( ostype &, bool );						// set ignore auto NL
 	// public
 	void sepOn( ostype & );								// turn separator state on
@@ -63,46 +63,46 @@
 forall( dtype ostype | ostream( ostype ) ) {
 	ostype & ?|?( ostype &, bool );
-	void & ?|?( ostype &, bool );
+	void ?|?( ostype &, bool );
 
 	ostype & ?|?( ostype &, char );
-	void & ?|?( ostype &, char );
+	void ?|?( ostype &, char );
 	ostype & ?|?( ostype &, signed char );
-	void & ?|?( ostype &, signed char );
+	void ?|?( ostype &, signed char );
 	ostype & ?|?( ostype &, unsigned char );
-	void & ?|?( ostype &, unsigned char );
+	void ?|?( ostype &, unsigned char );
 
 	ostype & ?|?( ostype &, short int );
-	void & ?|?( ostype &, short int );
+	void ?|?( ostype &, short int );
 	ostype & ?|?( ostype &, unsigned short int );
-	void & ?|?( ostype &, unsigned short int );
+	void ?|?( ostype &, unsigned short int );
 	ostype & ?|?( ostype &, int );
-	void & ?|?( ostype &, int );
+	void ?|?( ostype &, int );
 	ostype & ?|?( ostype &, unsigned int );
-	void & ?|?( ostype &, unsigned int );
+	void ?|?( ostype &, unsigned int );
 	ostype & ?|?( ostype &, long int );
-	void & ?|?( ostype &, long int );
+	void ?|?( ostype &, long int );
 	ostype & ?|?( ostype &, long long int );
-	void & ?|?( ostype &, long long int );
+	void ?|?( ostype &, long long int );
 	ostype & ?|?( ostype &, unsigned long int );
-	void & ?|?( ostype &, unsigned long int );
+	void ?|?( ostype &, unsigned long int );
 	ostype & ?|?( ostype &, unsigned long long int );
-	void & ?|?( ostype &, unsigned long long int );
+	void ?|?( ostype &, unsigned long long int );
 
 	ostype & ?|?( ostype &, float ); // FIX ME: should not be required
-	void & ?|?( ostype &, float ); // FIX ME: should not be required
+	void ?|?( ostype &, float ); // FIX ME: should not be required
 	ostype & ?|?( ostype &, double );
-	void & ?|?( ostype &, double );
+	void ?|?( ostype &, double );
 	ostype & ?|?( ostype &, long double );
-	void & ?|?( ostype &, long double );
+	void ?|?( ostype &, long double );
 
 	ostype & ?|?( ostype &, float _Complex );
-	void & ?|?( ostype &, float _Complex );
+	void ?|?( ostype &, float _Complex );
 	ostype & ?|?( ostype &, double _Complex );
-	void & ?|?( ostype &, double _Complex );
+	void ?|?( ostype &, double _Complex );
 	ostype & ?|?( ostype &, long double _Complex );
-	void & ?|?( ostype &, long double _Complex );
+	void ?|?( ostype &, long double _Complex );
 
 	ostype & ?|?( ostype &, const char * );
-	void & ?|?( ostype &, const char * );
+	void ?|?( ostype &, const char * );
 	// ostype & ?|?( ostype &, const char16_t * );
 #if ! ( __ARM_ARCH_ISA_ARM == 1 && __ARM_32BIT_STATE == 1 ) // char32_t == wchar_t => ambiguous
@@ -111,5 +111,5 @@
 	// ostype & ?|?( ostype &, const wchar_t * );
 	ostype & ?|?( ostype &, const void * );
-	void & ?|?( ostype &, const void * );
+	void ?|?( ostype &, const void * );
 
 	// manipulators
Index: libcfa/src/stdlib.hfa
===================================================================
--- libcfa/src/stdlib.hfa	(revision 760235aaee95cc0278154ec0de9799f21d7c90f9)
+++ libcfa/src/stdlib.hfa	(revision 5ea5b28f99a21543ee16545ccb212eddbb550eff)
@@ -10,6 +10,6 @@
 // Created On       : Thu Jan 28 17:12:35 2016
 // Last Modified By : Peter A. Buhr
-// Last Modified On : Fri Jul 27 07:21:36 2018
-// Update Count     : 345
+// Last Modified On : Mon Dec 17 15:37:45 2018
+// Update Count     : 346
 //
 
@@ -178,5 +178,5 @@
 
 static inline {
-	int ato( const char * sptr ) {return (int)strtol( sptr, 0, 10 ); }
+	int ato( const char * sptr ) { return (int)strtol( sptr, 0, 10 ); }
 	unsigned int ato( const char * sptr ) { return (unsigned int)strtoul( sptr, 0, 10 ); }
 	long int ato( const char * sptr ) { return strtol( sptr, 0, 10 ); }
Index: tests/concurrent/examples/quickSort.c
===================================================================
--- tests/concurrent/examples/quickSort.c	(revision 760235aaee95cc0278154ec0de9799f21d7c90f9)
+++ tests/concurrent/examples/quickSort.c	(revision 5ea5b28f99a21543ee16545ccb212eddbb550eff)
@@ -9,6 +9,6 @@
 // Created On       : Wed Dec  6 12:15:52 2017
 // Last Modified By : Peter A. Buhr
-// Last Modified On : Tue Dec  4 18:00:27 2018
-// Update Count     : 167
+// Last Modified On : Sat Dec 22 08:44:27 2018
+// Update Count     : 168
 //
 
@@ -151,5 +151,5 @@
 				if ( counter < size - 1 && (counter + 1) % ValuesPerLine != 0 ) sortedfile | ' ';
 			} // for
-			sortedfile | nl;
+			sortedfile | nl | nl;
 
 			delete( values );
Index: tests/coroutine/fmtLines.c
===================================================================
--- tests/coroutine/fmtLines.c	(revision 760235aaee95cc0278154ec0de9799f21d7c90f9)
+++ tests/coroutine/fmtLines.c	(revision 5ea5b28f99a21543ee16545ccb212eddbb550eff)
@@ -10,6 +10,6 @@
 // Created On       : Sun Sep 17 21:56:15 2017
 // Last Modified By : Peter A. Buhr
-// Last Modified On : Wed Dec 12 22:45:36 2018
-// Update Count     : 48
+// Last Modified On : Sat Dec 22 18:27:00 2018
+// Update Count     : 57
 //
 
@@ -24,9 +24,9 @@
 void main( Format & fmt ) with( fmt ) {
 	for () {											// for as many characters
-		for ( g; 5 ) {									// groups of 5 blocks
-			for ( b; 4 ) {								// blocks of 4 characters
+		for ( g = 0; g < 5; g += 1 ) {					// groups of 5 blocks
+			for ( b = 0; b < 4; b += 1 ) {				// blocks of 4 characters
 				for () {								// for newline characters
 					suspend();
-					if ( ch != '\n' ) break;			// ignore newline
+				  if ( ch != '\n' ) break;				// ignore newline
 				} // for
 				sout | ch;								// print character
Index: tests/fallthrough.cfa
===================================================================
--- tests/fallthrough.cfa	(revision 760235aaee95cc0278154ec0de9799f21d7c90f9)
+++ tests/fallthrough.cfa	(revision 5ea5b28f99a21543ee16545ccb212eddbb550eff)
@@ -10,6 +10,6 @@
 // Created On       : Wed Mar 14 10:06:25 2018
 // Last Modified By : Peter A. Buhr
-// Last Modified On : Tue Dec  4 21:36:14 2018
-// Update Count     : 17
+// Last Modified On : Thu Dec 20 22:02:38 2018
+// Update Count     : 20
 //
 
@@ -18,37 +18,37 @@
 void test(int choice) {
 	choose ( choice ) {
-		case 1:
-			sout | "case 1";
-			fallthru;
-		case 2:
-			sout | "case 2";
-			fallthru;
-			sout | "did not fallthru";
-			if ( 7 ) fallthru common2;
-			fallthru common1;
-		case 3:
-			sout | "case 3";
-			fallthru default;
-			fallthru common1;
-		common1:
-			sout | "common1";
+	  case 1:
+		sout | "case 1";
+		fallthru;
+	  case 2:
+		sout | "case 2";
+		fallthru;
+		sout | "did not fallthru";
+		if ( 7 ) fallthru common2;
+		fallthru common1;
+	  case 3:
+		sout | "case 3";
+		fallthru default;
+		fallthru common1;
+	  common1:
+		sout | "common1";
 		// break
-		case 4:
-			sout | "case 4";
-			fallthru common2;
-		case 5:
-			sout | "case 5";
-			fallthru common2;
-			fallthru default;
-		case 6:
-			sout | "case 6";
-			fallthru common2;
-		common2:
-			sout | "common2";
+	  case 4:
+		sout | "case 4";
+		fallthru common2;
+	  case 5:
+		sout | "case 5";
+		fallthru common2;
+		fallthru default;
+	  case 6:
+		sout | "case 6";
+		fallthru common2;
+	  common2:
+		sout | "common2";
 		// break
-		default:
-			sout | "default";
-			fallthru;
-	}
+	  default:
+		sout | "default";
+		fallthru;
+	} // choose
 
 	sout | nl;
@@ -93,23 +93,23 @@
 	fallthru default;
 	choose ( 3 ) {
-		case 2:
-			for () {
-				choose ( 2 ) {
-					case 1:
-						// ERROR: default is later, but in a different switch
-						fallthru default;
-						// ERROR: common3 is later, but not at the same level as a case clause
-						fallthru common3;
-				}
-				common3: ;
+	  case 2:
+		for () {
+			choose ( 2 ) {
+			  case 1:
+				// ERROR: default is later, but in a different switch
+				fallthru default;
+				// ERROR: common3 is later, but not at the same level as a case clause
+				fallthru common3;
 			}
-		default:
-		case 1:
-		common4:
-			// ERROR: attempt to jump up with fallthrough
-			if ( 7 ) fallthru common4;
-			// ERROR: attempt to jump up with fallthrough
-			fallthru default;
-	}
+		  common3: ;
+		} // for
+	  default:
+	  case 1:
+	  common4:
+		// ERROR: attempt to jump up with fallthrough
+		if ( 7 ) fallthru common4;
+		// ERROR: attempt to jump up with fallthrough
+		fallthru default;
+	} // choose
 #endif
 }
Index: tests/fstream_test.cfa
===================================================================
--- tests/fstream_test.cfa	(revision 760235aaee95cc0278154ec0de9799f21d7c90f9)
+++ tests/fstream_test.cfa	(revision 5ea5b28f99a21543ee16545ccb212eddbb550eff)
@@ -10,6 +10,6 @@
 // Created On       : Wed May 27 17:56:53 2015
 // Last Modified By : Peter A. Buhr
-// Last Modified On : Tue Dec  4 21:36:34 2018
-// Update Count     : 67
+// Last Modified On : Sat Dec 22 09:47:44 2018
+// Update Count     : 68
 //
 
@@ -24,5 +24,5 @@
 		 | (nombre > 0 ? "positif" : nombre == 0 ? "zéro" : "négatif");
 
-	sout | "Entrez trois nombres, s'il vous plaît: ";
+	sout | "Entrez trois nombres, s'il vous plaît:";
 	int i, j, k;
 	sin  | i | j | k;
Index: tests/gmp.cfa
===================================================================
--- tests/gmp.cfa	(revision 760235aaee95cc0278154ec0de9799f21d7c90f9)
+++ tests/gmp.cfa	(revision 5ea5b28f99a21543ee16545ccb212eddbb550eff)
@@ -10,6 +10,6 @@
 // Created On       : Tue Apr 19 08:55:51 2016
 // Last Modified By : Peter A. Buhr
-// Last Modified On : Tue Dec  4 21:37:29 2018
-// Update Count     : 558
+// Last Modified On : Thu Dec 20 22:41:47 2018
+// Update Count     : 559
 //
 
@@ -76,10 +76,10 @@
 	sout | "x:" | x | "y:" | y;
 
-	sout;
+	sout | nl;
 
 	sin | x | y | z;
 	sout | x | y | z;
 
-	sout;
+	sout | nl;
 
 	sout | "Fibonacci Numbers";
@@ -94,5 +94,5 @@
 	} // for
 
-	sout;
+	sout | nl;
 
 	sout | "Factorial Numbers";
Index: tests/io1.cfa
===================================================================
--- tests/io1.cfa	(revision 760235aaee95cc0278154ec0de9799f21d7c90f9)
+++ tests/io1.cfa	(revision 5ea5b28f99a21543ee16545ccb212eddbb550eff)
@@ -10,6 +10,6 @@
 // Created On       : Wed Mar  2 16:56:02 2016
 // Last Modified By : Peter A. Buhr
-// Last Modified On : Wed Dec 12 18:23:44 2018
-// Update Count     : 110
+// Last Modified On : Fri Dec 21 16:02:55 2018
+// Update Count     : 114
 //
 
@@ -22,42 +22,47 @@
 	sout | '1' | '2' | '3';
 	sout | 1 | "" | 2 | "" | 3;
-	sout;
+	sout | nl;
 
-	sout | "opening delimiters";
-	sout | "x (" | 1 | nonl;
-	sout | "x [" | 2 | nonl;
-	sout | "x {" | 3 | nonl;
-	sout | "x =" | 4 | nonl;
-	sout | "x $" | 5 | nonl;
-	sout | "x £" | 6 | nonl;
-	sout | "x ¥" | 7 | nonl;
-	sout | "x ¡" | 8 | nonl;
-	sout | "x ¿" | 9 | nonl;
+	sout | nlOff;
+	sout | "opening delimiters" | nl;
+	sout | "x (" | 1;
+	sout | "x [" | 2;
+	sout | "x {" | 3;
+	sout | "x =" | 4;
+	sout | "x $" | 5;
+	sout | "x £" | 6;
+	sout | "x ¥" | 7;
+	sout | "x ¡" | 8;
+	sout | "x ¿" | 9;
 	sout | "x «" | 10;
+	sout | nl | nl;
 
-	sout | "closing delimiters";
-	sout | 1 | ", x" | nonl;
-	sout | 2 | ". x" | nonl;
-	sout | 3 | "; x" | nonl;
-	sout | 4 | "! x" | nonl;
-	sout | 5 | "? x" | nonl;
-	sout | 6 | "% x" | nonl;
-	sout | 7 | "¢ x" | nonl;
-	sout | 8 | "» x" | nonl;
-	sout | 9 | ") x" | nonl;
-	sout | 10 | "] x" | nonl;
+	sout | "closing delimiters" | nl;
+	sout | 1 | ", x";
+	sout | 2 | ". x";
+	sout | 3 | "; x";
+	sout | 4 | "! x";
+	sout | 5 | "? x";
+	sout | 6 | "% x";
+	sout | 7 | "¢ x";
+	sout | 8 | "» x";
+	sout | 9 | ") x";
+	sout | 10 | "] x";
 	sout | 11 | "} x";
+	sout | nl | nl;
 
-	sout | "opening/closing delimiters";
-	sout | "x`" | 1 | "`x'" | 2 | nonl;
-	sout | "'x\"" | 3 | "\"x:" | 4 | nonl;
-	sout | ":x " | 5 | " x\t" | 6 | nonl;
-	sout | "\tx\f" | 7 | "\fx\v" | 8 | nonl;
-	sout | "\vx\n" | 9 | "\nx\r" | 10 | nonl;
+	sout | "opening/closing delimiters" | nl;
+	sout | "x`" | 1 | "`x'" | 2;
+	sout | "'x\"" | 3 | "\"x:" | 4;
+	sout | ":x " | 5 | " x\t" | 6;
+	sout | "\tx\f" | 7 | "\fx\v" | 8;
+	sout | "\vx\n" | 9 | "\nx\r" | 10;
 	sout | "\rx";
+	sout | nl | nl;
 
+	sout | nlOn;
 	sout | "override opening/closing delimiters";
 	sout | "x ( " | 1 | " ) x" | 2 | " , x" | 3 | " :x: " | 4;
-	sout;
+	sout | nl;
 }
 
Index: tests/io2.cfa
===================================================================
--- tests/io2.cfa	(revision 760235aaee95cc0278154ec0de9799f21d7c90f9)
+++ tests/io2.cfa	(revision 5ea5b28f99a21543ee16545ccb212eddbb550eff)
@@ -10,6 +10,6 @@
 // Created On       : Wed Mar  2 16:56:02 2016
 // Last Modified By : Peter A. Buhr
-// Last Modified On : Wed Dec 12 16:19:15 2018
-// Update Count     : 110
+// Last Modified On : Fri Dec 21 08:20:14 2018
+// Update Count     : 112
 //
 
@@ -96,6 +96,6 @@
 	sout | sepOn | 1 | 2 | 3 | sepOn;					// no separator at start/end of line
 	sout | 1 | sepOff | 2 | 3;							// locally turn off implicit separator
-	sout | sepOn | sepOn | 1 | 2 | 3 | sepOn | sepOff | sepOn | '\n'; // no separator at start/end of line
-	sout | 1 | 2 | 3 | "\n\n" | sepOn;					// no separator at start of next line
+	sout | sepOn | sepOn | 1 | 2 | 3 | sepOn | sepOff | sepOn | '\n' | nonl; // no separator at start/end of line
+	sout | 1 | 2 | 3 | "\n\n" | sepOn | nonl;					// no separator at start of next line
 	sout | 1 | 2 | 3;
 	sout | nl;
@@ -133,4 +133,4 @@
 // Local Variables: //
 // tab-width: 4 //
-// compile-command: "cfa io2.cfa" //
+// compile-command: "cfa -DIN_DIR=".in/" io2.cfa" //
 // End: //
Index: tests/loopctrl.cfa
===================================================================
--- tests/loopctrl.cfa	(revision 760235aaee95cc0278154ec0de9799f21d7c90f9)
+++ tests/loopctrl.cfa	(revision 5ea5b28f99a21543ee16545ccb212eddbb550eff)
@@ -10,6 +10,6 @@
 // Created On       : Wed Aug  8 18:32:59 2018
 // Last Modified By : Peter A. Buhr
-// Last Modified On : Wed Dec 12 08:14:44 2018
-// Update Count     : 76
+// Last Modified On : Sat Dec 22 09:41:15 2018
+// Update Count     : 77
 // 
 
@@ -38,5 +38,5 @@
 	while () { sout | "empty"; break; }					sout | nl;
 	do { sout | "empty"; break; } while ();				sout | nl;
-	for () { sout | "empty"; break; }					sout | nl;
+	for () { sout | "empty"; break; }					sout | nl | nl;
 
 	for ( 0 ) { sout | "A"; }							sout | "zero" | nl;
Index: tests/pybin/tools.py
===================================================================
--- tests/pybin/tools.py	(revision 760235aaee95cc0278154ec0de9799f21d7c90f9)
+++ tests/pybin/tools.py	(revision 5ea5b28f99a21543ee16545ccb212eddbb550eff)
@@ -79,6 +79,7 @@
 def diff( lhs, rhs ):
 	# diff the output of the files
-	diff_cmd = ("diff --ignore-all-space --text "
-				"--ignore-blank-lines "
+	diff_cmd = ("diff --text "
+#				"--ignore-all-space "
+#				"--ignore-blank-lines "
 				"--old-group-format='\t\tmissing lines :\n"
 				"%%<' \\\n"
Index: tests/raii/dtor-early-exit.c
===================================================================
--- tests/raii/dtor-early-exit.c	(revision 760235aaee95cc0278154ec0de9799f21d7c90f9)
+++ tests/raii/dtor-early-exit.c	(revision 5ea5b28f99a21543ee16545ccb212eddbb550eff)
@@ -10,6 +10,6 @@
 // Created On       : Wed Aug 17 08:26:25 2016
 // Last Modified By : Peter A. Buhr
-// Last Modified On : Tue Dec 11 22:05:24 2018
-// Update Count     : 9
+// Last Modified On : Fri Dec 21 08:45:19 2018
+// Update Count     : 10
 //
 
@@ -71,5 +71,5 @@
 		}
 	}
-	sout;
+	sout | nl;
 	for (int i = 0; i < 10; i++) {
 		switch(10) {
Index: tests/searchsort.cfa
===================================================================
--- tests/searchsort.cfa	(revision 760235aaee95cc0278154ec0de9799f21d7c90f9)
+++ tests/searchsort.cfa	(revision 5ea5b28f99a21543ee16545ccb212eddbb550eff)
@@ -10,6 +10,6 @@
 // Created On       : Thu Feb  4 18:17:50 2016
 // Last Modified By : Peter A. Buhr
-// Last Modified On : Wed Dec  5 08:18:42 2018
-// Update Count     : 106
+// Last Modified On : Thu Dec 20 22:49:46 2018
+// Update Count     : 108
 //
 
@@ -30,5 +30,5 @@
 		sout | iarr[i] | ", ";
 	} // for
-	sout | nl;
+	sout | nl | nl;
 
 	// ascending sort/search by changing < to >
@@ -54,5 +54,5 @@
 		sout | size - i | ':' | iarr[posn] | ", ";
 	} // for
-	sout | nl;
+	sout | nl | nl;
 
 	// descending sort/search by changing < to >
@@ -84,5 +84,5 @@
 		} // for
 	}
-	sout | nl;
+	sout | nl | nl;
 
 	double darr[size];
@@ -106,5 +106,5 @@
 		sout | size - i + 0.5 | ':' | darr[posn] | ", ";
 	} // for
-	sout | nl;
+	sout | nl | nl;
 
 	struct S { int i, j; } sarr[size];
@@ -133,5 +133,5 @@
 		sout | temp | ':' | sarr[posn] | ", ";
 	} // for
-	sout | nl;
+	sout | nl | nl;
 	{
 		int getKey( const S & s ) { return s.j; }
@@ -149,5 +149,5 @@
 			sout | size - i + 1 | ':' | sarr[posn] | ", ";
 		} // for
-		sout | nl;
+		sout | nl | nl;
 	}
 } // main
Index: tests/swap.cfa
===================================================================
--- tests/swap.cfa	(revision 760235aaee95cc0278154ec0de9799f21d7c90f9)
+++ tests/swap.cfa	(revision 5ea5b28f99a21543ee16545ccb212eddbb550eff)
@@ -10,6 +10,6 @@
 // Created On       : Wed May 27 17:56:53 2015
 // Last Modified By : Peter A. Buhr
-// Last Modified On : Tue Dec 11 10:17:40 2018
-// Update Count     : 74
+// Last Modified On : Sat Dec 22 16:01:33 2018
+// Update Count     : 75
 //
 
@@ -85,4 +85,5 @@
 	struct S { int i, j; } s1 = { 1, 2 }, s2 = { 2, 1 };
 	ofstream & ?|?( ofstream & os, S s ) { return os | s.i | s.j; }
+	void ?|?( ofstream & os, S s ) { (ofstream)(os | s.i | s.j); if ( getANL( os ) ) nl( os ); }
 	sout | "struct S\t\t" | s1 | "," | s2 | "\t\tswap " | nonl;
 	swap( s1, s2 );
Index: tests/time.cfa
===================================================================
--- tests/time.cfa	(revision 760235aaee95cc0278154ec0de9799f21d7c90f9)
+++ tests/time.cfa	(revision 5ea5b28f99a21543ee16545ccb212eddbb550eff)
@@ -10,6 +10,6 @@
 // Created On       : Tue Mar 27 17:24:56 2018
 // Last Modified By : Peter A. Buhr
-// Last Modified On : Tue Dec 11 21:44:03 2018
-// Update Count     : 22
+// Last Modified On : Thu Dec 20 23:09:21 2018
+// Update Count     : 23
 //
 
@@ -30,4 +30,5 @@
 	sout | d1 == 7`s | d1 == d2 | d1 == 0;
 	sout | div( 7`s, 2`s );
+	sout | nl;
 
 	Time t = { 1970, 1, 2, 0, 0, 0, 10_000_000 };
@@ -46,4 +47,5 @@
 	Time t2 = { 2001, 7, 4, 0, 0, 1, 0 }, t3 = (timeval){ 994_219_201 };
 	sout | t2 | t2.tv | nl | t3 | t3.tv;
+	sout | nl;
 
 	// Clock Newfoundland = { -3.5`h }, PST = { -8`h };	// distance from GMT (UTC)
@@ -53,5 +55,5 @@
 	// 	 | "local nsec" | getTimeNsec()
 	// 	 | "PST" | PST();								// getTime short form
-	// sout;
+	// sout | nl;
 
 	// http://en.cppreference.com/w/cpp/chrono/duration/operator_arith4
