You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							105 lines
						
					
					
						
							2.0 KiB
						
					
					
				
			
		
		
		
			
			
			
				
					
				
				
					
				
			
		
		
	
	
							105 lines
						
					
					
						
							2.0 KiB
						
					
					
				| // I/O through <iostream> | |
|  | |
| #ifndef _CL_IO_H | |
| #define _CL_IO_H | |
|  | |
| #include "cln/types.h" | |
| #include "cln/modules.h" | |
|  | |
| // I/O through <iostream> | |
|  | |
| #ifdef floor | |
|   #undef floor | |
|   #include <iostream> | |
|   #define floor cln_floor | |
| #else | |
|   #include <iostream> | |
| #endif | |
|  | |
| namespace cln { | |
| 
 | |
| // compatibility: | |
| typedef std::istream& cl_istream; | |
| typedef std::ostream& cl_ostream; | |
| extern std::ostream* cl_debugout_stream; | |
| #define cl_debugout  (*cl_debugout_stream) | |
|  | |
| // Elementary operations on std::istream& | |
|  | |
| #define cl_EOF  (-1) | |
|  | |
| inline int freadchar (std::istream& stream) | |
| { | |
| 	char c; | |
| 	if (stream.get(c)) | |
| 		return c; | |
| 	else | |
| 		// EOF or error | |
| 		return cl_EOF; | |
| } | |
| 
 | |
| inline int funreadchar (std::istream& stream, int c) | |
| { | |
| 	if (c != cl_EOF) | |
| 		stream.putback((char)c); | |
| 	return c; | |
| } | |
| 
 | |
| // Elementary operations on std::ostream& | |
|  | |
| inline void fprintchar (std::ostream& stream, char c) | |
| { | |
| 	stream.put(c); | |
| } | |
| 
 | |
| inline void fprint (std::ostream& stream, const char * string) | |
| { | |
| 	stream << string; | |
| } | |
| 
 | |
| 
 | |
| extern void fprintdecimal (std::ostream& stream, unsigned long x); | |
| extern void fprintdecimal (std::ostream& stream, long x); | |
| 
 | |
| inline void fprintdecimal (std::ostream& stream, unsigned int x) | |
| { | |
| 	fprintdecimal(stream,(unsigned long)x); | |
| } | |
| inline void fprintdecimal (std::ostream& stream, int x) | |
| { | |
| 	fprintdecimal(stream,(long)x); | |
| } | |
| 
 | |
| extern void fprinthexadecimal (std::ostream& stream, unsigned long x); | |
| extern void fprinthexadecimal (std::ostream& stream, long x); | |
| 
 | |
| inline void fprinthexadecimal (std::ostream& stream, unsigned int x) | |
| { | |
| 	fprinthexadecimal(stream,(unsigned long)x); | |
| } | |
| inline void fprinthexadecimal (std::ostream& stream, int x) | |
| { | |
| 	fprinthexadecimal(stream,(long)x); | |
| } | |
| 
 | |
| 
 | |
| class cl_print_flags; | |
| class cl_print_number_flags; | |
| class cl_print_real_flags; | |
| class cl_print_rational_flags; | |
| class cl_print_float_flags; | |
| CL_REQUIRE(cl_prin_globals) | |
| 
 | |
| 
 | |
| // Define the customary << and >> operators. | |
|  | |
| #define CL_DEFINE_PRINT_OPERATOR(_class_)  \ | |
| inline std::ostream& operator<< (std::ostream& stream, const _class_& x)	\ | |
| {									\ | |
| 	fprint(stream,x);						\ | |
| 	return stream;							\ | |
| } | |
| 	 | |
| }  // namespace cln | |
|  | |
| #endif /* _CL_IO_H */
 |