Index: src/libcfa/iostream
===================================================================
--- src/libcfa/iostream	(revision 2e9aed42d469b0fedc4f55d73dca46a3152f1743)
+++ src/libcfa/iostream	(revision ffd0ac2027c522815692b36504bb81a6e8384b48)
@@ -10,6 +10,6 @@
 // Created On       : Wed May 27 17:56:53 2015
 // Last Modified By : Peter A. Buhr
-// Last Modified On : Thu Dec 21 13:55:41 2017
-// Update Count     : 145
+// Last Modified On : Thu Jan 25 13:08:39 2018
+// Update Count     : 149
 //
 
@@ -124,4 +124,6 @@
 }; // readable
 
+forall( dtype istype | istream( istype ) ) istype & ?|?( istype &, _Bool & );
+
 forall( dtype istype | istream( istype ) ) istype & ?|?( istype &, char & );
 forall( dtype istype | istream( istype ) ) istype & ?|?( istype &, signed char & );
@@ -145,4 +147,8 @@
 forall( dtype istype | istream( istype ) ) istype & ?|?( istype &, long double _Complex & );
 
+// manipulators
+forall( dtype istype | istream( istype ) ) istype & ?|?( istype &, istype & (*)( istype & ) );
+forall( dtype istype | istream( istype ) ) istype & endl( istype & is );
+
 struct _Istream_cstrUC { char * s; };
 _Istream_cstrUC cstr( char * );
Index: src/libcfa/iostream.c
===================================================================
--- src/libcfa/iostream.c	(revision 2e9aed42d469b0fedc4f55d73dca46a3152f1743)
+++ src/libcfa/iostream.c	(revision ffd0ac2027c522815692b36504bb81a6e8384b48)
@@ -10,6 +10,6 @@
 // Created On       : Wed May 27 17:56:53 2015
 // Last Modified By : Peter A. Buhr
-// Last Modified On : Thu Dec 21 13:55:09 2017
-// Update Count     : 427
+// Last Modified On : Thu Jan 25 13:09:28 2018
+// Update Count     : 467
 //
 
@@ -19,5 +19,7 @@
 #include <stdio.h>
 #include <stdbool.h>									// true/false
-#include <string.h>										// strlen
+//#include <string.h>										// strlen, strcmp
+extern int strcmp (const char *__s1, const char *__s2) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
+extern size_t strlen (const char *__s) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1)));
 #include <float.h>										// DBL_DIG, LDBL_DIG
 #include <complex.h>									// creal, cimag
@@ -301,4 +303,17 @@
 
 forall( dtype istype | istream( istype ) )
+istype & ?|?( istype & is, _Bool & b ) {
+	char val[6];
+	fmt( is, "%5s", val );
+	if ( strcmp( val, "true" ) == 0 ) b = true;
+	else if ( strcmp( val, "false" ) == 0 ) b = false;
+	else {
+		fprintf( stderr, "invalid _Bool constant\n" );
+		abort();
+	} // if
+	return is;
+} // ?|?
+
+forall( dtype istype | istream( istype ) )
 istype & ?|?( istype & is, char & c ) {
 	fmt( is, "%c", &c );								// must pass pointer through varg to fmt
@@ -410,4 +425,15 @@
 } // ?|?
 
+forall( dtype istype | istream( istype ) )
+istype & ?|?( istype & is, istype & (* manip)( istype & ) ) {
+	return manip( is );
+} // ?|?
+
+forall( dtype istype | istream( istype ) )
+istype & endl( istype & is ) {
+	fmt( is, "%*[ \t\f\n\r\v]" );						// ignore whitespace
+	return is;
+} // endl
+
 _Istream_cstrUC cstr( char * str ) { return (_Istream_cstrUC){ str }; }
 forall( dtype istype | istream( istype ) )
Index: src/libcfa/stdlib.c
===================================================================
--- src/libcfa/stdlib.c	(revision 2e9aed42d469b0fedc4f55d73dca46a3152f1743)
+++ src/libcfa/stdlib.c	(revision ffd0ac2027c522815692b36504bb81a6e8384b48)
@@ -5,11 +5,11 @@
 // file "LICENCE" distributed with Cforall.
 //
-// algorithm.c --
+// stdlib.c --
 //
 // Author           : Peter A. Buhr
 // Created On       : Thu Jan 28 17:10:29 2016
 // Last Modified By : Peter A. Buhr
-// Last Modified On : Tue Jan  2 12:20:32 2018
-// Update Count     : 441
+// Last Modified On : Wed Jan  3 08:29:29 2018
+// Update Count     : 444
 //
 
@@ -24,4 +24,6 @@
 #include <complex.h>									// _Complex_I
 #include <assert.h>
+
+//---------------------------------------
 
 // resize, non-array types
@@ -257,5 +259,5 @@
 //---------------------------------------
 
-extern "C" { void srandom( unsigned int seed ) { srand48( seed ); } } // override C version
+extern "C" { void srandom( unsigned int seed ) { srand48( (long int)seed ); } } // override C version
 char random( void ) { return (unsigned long int)random(); }
 char random( char u ) { return random( (unsigned long int)u ); }
