rpms/cln/devel cln-upstream_gcc44_fix.patch, NONE, 1.1 cln.spec, 1.27, 1.28

Deji Akingunola deji at fedoraproject.org
Wed Feb 4 19:50:15 UTC 2009


Author: deji

Update of /cvs/pkgs/rpms/cln/devel
In directory cvs1.fedora.phx.redhat.com:/tmp/cvs-serv22722

Modified Files:
	cln.spec 
Added Files:
	cln-upstream_gcc44_fix.patch 
Log Message:
* Wed Feb 04 2009 Deji Akingunola <dakingun at gmail.com> - 1.2.2-3
- Add upstream patch to build with gcc-4.4


cln-upstream_gcc44_fix.patch:

--- NEW FILE cln-upstream_gcc44_fix.patch ---
diff --git a/doc/cln.texi b/doc/cln.texi
index 546d788..8434cb1 100644
--- a/doc/cln.texi
+++ b/doc/cln.texi
@@ -2661,30 +2661,7 @@ In Common Lisp notation: @code{#C(@var{realpart} @var{imagpart})}.
 @node Input functions
 @section Input functions
 
-Including @code{<cln/io.h>} defines a number of simple input functions
-that read from @code{std::istream&}:
-
- at table @code
- at item int freadchar (std::istream& stream)
-Reads a character from @code{stream}. Returns @code{cl_EOF} (not a @samp{char}!)
-if the end of stream was encountered or an error occurred.
-
- at item int funreadchar (std::istream& stream, int c)
-Puts back @code{c} onto @code{stream}. @code{c} must be the result of the
-last @code{freadchar} operation on @code{stream}.
- at end table
-
-Each of the classes @code{cl_N}, @code{cl_R}, @code{cl_RA}, @code{cl_I},
- at code{cl_F}, @code{cl_SF}, @code{cl_FF}, @code{cl_DF}, @code{cl_LF}
-defines, in @code{<cln/@var{type}_io.h>}, the following input function:
-
- at table @code
- at item std::istream& operator>> (std::istream& stream, @var{type}& result)
-Reads a number from @code{stream} and stores it in the @code{result}.
- at end table
-
-The most flexible input functions, defined in @code{<cln/@var{type}_io.h>},
-are the following:
+Including @code{<cln/io.h>} defines flexible input functions:
 
 @table @code
 @item cl_N read_complex (std::istream& stream, const cl_read_flags& flags)
diff --git a/examples/perfnum.cc b/examples/perfnum.cc
index 50d8a0d..08d7b7b 100644
--- a/examples/perfnum.cc
+++ b/examples/perfnum.cc
@@ -8,8 +8,9 @@ using namespace cln;
 
 int main ()
 {
-	// previous ones were 1257787, 1398269, 2976221, 3021377, 6972593, 13466917, 20996011, 24036583, 25964951, 30402457
-	int p = 32582657;
+	// previous ones were 1257787, 1398269, 2976221, 3021377, 6972593,
+	// 13466917, 20996011, 24036583, 25964951, 30402457, 32582657, 37156667
+	int p = 43112609;
 	cl_I x = (((cl_I)1 << p) - 1) << (p-1);
 	cout << x << endl;
 }
diff --git a/include/cln/io.h b/include/cln/io.h
index 435490e..43a5f10 100644
--- a/include/cln/io.h
+++ b/include/cln/io.h
@@ -24,27 +24,6 @@ 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)
diff --git a/src/base/string/input/cl_st_get1.cc b/src/base/string/input/cl_st_get1.cc
index 917ecc4..b0e445a 100644
--- a/src/base/string/input/cl_st_get1.cc
+++ b/src/base/string/input/cl_st_get1.cc
@@ -17,11 +17,11 @@ namespace cln {
 const cl_string cl_fget (std::istream& stream, char delim)
 {
 	var cl_spushstring buffer;
-	// Handling of eofp is tricky: EOF is reached when (!stream.good()) || (stream.get()==EOF).
+	// Handling of eofp is tricky: EOF is reached when (!stream.good()) || (stream.eof()).
 	while (stream.good()) {
 		var int c = stream.get();
-		if (c==EOF)
-			break;	// std::ios::eofbit already set
+		if (stream.eof())
+			break;
 		if (c==delim) {
 			stream.unget();
 			break;
diff --git a/src/base/string/input/cl_st_get2.cc b/src/base/string/input/cl_st_get2.cc
index d89f3e4..52b0afc 100644
--- a/src/base/string/input/cl_st_get2.cc
+++ b/src/base/string/input/cl_st_get2.cc
@@ -17,11 +17,11 @@ namespace cln {
 const cl_string cl_fget (std::istream& stream, int n, char delim)
 {
 	var cl_spushstring buffer;
-	// Handling of eofp is tricky: EOF is reached when (!stream.good()) || (stream.get()==EOF).
+	// Handling of eofp is tricky: EOF is reached when (!stream.good()) || (stream.eof()).
 	while (stream.good()) {
 		var int c = stream.get();
-		if (c==EOF)
-			break;	// ios::eofbit already set
+		if (stream.eof())
+			break;
 		if (c==delim) {
 			stream.unget();
 			break;
diff --git a/src/base/string/input/cl_st_getline1.cc b/src/base/string/input/cl_st_getline1.cc
index 5f9ac88..da0f0d0 100644
--- a/src/base/string/input/cl_st_getline1.cc
+++ b/src/base/string/input/cl_st_getline1.cc
@@ -17,11 +17,11 @@ namespace cln {
 const cl_string cl_fgetline (std::istream& stream, char delim)
 {
 	var cl_spushstring buffer;
-	// Handling of eofp is tricky: EOF is reached when (!stream.good()) || (stream.get()==EOF).
+	// Handling of eofp is tricky: EOF is reached when (!stream.good()) || (stream.eof()).
 	while (stream.good()) {
 		var int c = stream.get();
-		if (c==EOF)
-			break;	// std::ios::eofbit already set
+		if (stream.eof())
+			break;
 		if (c==delim)
 			break;
 		buffer.push(c);
diff --git a/src/base/string/input/cl_st_getline2.cc b/src/base/string/input/cl_st_getline2.cc
index d2316e0..5f56169 100644
--- a/src/base/string/input/cl_st_getline2.cc
+++ b/src/base/string/input/cl_st_getline2.cc
@@ -17,11 +17,11 @@ namespace cln {
 const cl_string cl_fgetline (std::istream& stream, int n, char delim)
 {
 	var cl_spushstring buffer;
-	// Handling of eofp is tricky: EOF is reached when (!stream.good()) || (stream.get()==EOF).
+	// Handling of eofp is tricky: EOF is reached when (!stream.good()) || (stream.eof()).
 	while (stream.good()) {
 		var int c = stream.get();
-		if (c==EOF)
-			break;	// std::ios::eofbit already set
+		if (stream.eof())
+			break;
 		if (c==delim)
 			break;
 		if (--n <= 0) {
diff --git a/src/base/string/input/cl_st_gettoken.cc b/src/base/string/input/cl_st_gettoken.cc
index 30e7817..9361ee7 100644
--- a/src/base/string/input/cl_st_gettoken.cc
+++ b/src/base/string/input/cl_st_gettoken.cc
@@ -19,12 +19,12 @@ std::istream& operator>> (std::istream& stream, cl_string& str)
 {
 	var cl_spushstring buffer;
 	var int n = stream.width();
-	// Handling of eofp is tricky: EOF is reached when (!stream.good()) || (stream.get()==EOF).
+	// Handling of eofp is tricky: EOF is reached when (!stream.good()) || (stream.eof()).
 	int c;
 	// Skip whitespace.
 	while (stream.good()) {
 		c = stream.get();
-		if (c==EOF)
+		if (stream.eof())
 			break;
 		if (!isspace(c)) {
 			if (--n == 0) {
@@ -40,7 +40,7 @@ std::istream& operator>> (std::istream& stream, cl_string& str)
 	// Read non-whitespace.
 	while (stream.good()) {
 		c = stream.get();
-		if (c==EOF)
+		if (stream.eof())
 			break;
 		if (isspace(c)) {
 			stream.unget();
diff --git a/src/complex/input/cl_N_read_stream.cc b/src/complex/input/cl_N_read_stream.cc
index fa1f594..139af04 100644
--- a/src/complex/input/cl_N_read_stream.cc
+++ b/src/complex/input/cl_N_read_stream.cc
@@ -46,8 +46,8 @@ const cl_N read_complex (std::istream& stream, const cl_read_flags& flags)
 	var int c;
 	// Skip whitespace at the beginning.
 	loop {
-		c = freadchar(stream);
-		if (c == cl_EOF) goto eof;
+		c = stream.get();
+		if (stream.eof() || stream.fail()) goto eof;
 		if ((c == ' ') || (c == '\t') || (c == '\n'))
 			continue;
 		else
@@ -62,8 +62,8 @@ const cl_N read_complex (std::istream& stream, const cl_read_flags& flags)
 		buffer.push(c);
 		// Read some digits, then a letter, then a list or token.
 		loop {
-			c = freadchar(stream);
-			if (c == cl_EOF) goto eof;
+			c = stream.get();
+			if (stream.eof() || stream.fail()) goto eof;
 			buffer.push(c);
 			if ((c >= '0') && (c <= '9'))
 				continue;
@@ -72,8 +72,8 @@ const cl_N read_complex (std::istream& stream, const cl_read_flags& flags)
 		}
 		if (!(((c >= 'A') && (c <= 'Z')) || ((c >= 'a') && (c <= 'z'))))
 			goto syntax1;
-		c = freadchar(stream);
-		if (c == cl_EOF) goto eof;
+		c = stream.get();
+		if (stream.eof() || stream.fail()) goto eof;
 		if (c == '(') {
 			var uintL paren_level = 0;
 			loop {
@@ -81,8 +81,8 @@ const cl_N read_complex (std::istream& stream, const cl_read_flags& flags)
 				if (c == '(') paren_level++;
 				else if (c == ')') paren_level--;
 				if (paren_level == 0) goto done;
-				c = freadchar(stream);
-				if ((c == cl_EOF) || (c == '\n')) goto syntax;
+				c = stream.get();
+				if (stream.eof() || stream.fail() || c == '\n') goto syntax;
 			}
 		}
 	}
@@ -91,11 +91,11 @@ const cl_N read_complex (std::istream& stream, const cl_read_flags& flags)
 		goto syntax1;
 	loop {
 		buffer.push(c);
-		c = freadchar(stream);
-		if (c == cl_EOF)
+		c = stream.get();
+		if (stream.eof() || stream.fail())
 			break;
 		if (!number_char_p(c)) {
-			funreadchar(stream,c);
+			stream.putback(c);
 			break;
 		}
 	}
diff --git a/src/float/input/cl_F_read_stream.cc b/src/float/input/cl_F_read_stream.cc
index cd49e97..baafc3b 100644
--- a/src/float/input/cl_F_read_stream.cc
+++ b/src/float/input/cl_F_read_stream.cc
@@ -48,8 +48,8 @@ const cl_F read_float (std::istream& stream, const cl_read_flags& flags)
 	var int c;
 	// Skip whitespace at the beginning.
 	loop {
-		c = freadchar(stream);
-		if (c == cl_EOF) goto eof;
+		c = stream.get();
+		if (stream.eof() || stream.fail()) goto eof;
 		if ((c == ' ') || (c == '\t') || (c == '\n'))
 			continue;
 		else
@@ -64,8 +64,8 @@ const cl_F read_float (std::istream& stream, const cl_read_flags& flags)
 		buffer.push(c);
 		// Read some digits, then a letter, then a token.
 		loop {
-			c = freadchar(stream);
-			if (c == cl_EOF) goto eof;
+			c = stream.get();
+			if (stream.eof() || stream.fail()) goto eof;
 			buffer.push(c);
 			if ((c >= '0') && (c <= '9'))
 				continue;
@@ -74,19 +74,19 @@ const cl_F read_float (std::istream& stream, const cl_read_flags& flags)
 		}
 		if (!(((c >= 'A') && (c <= 'Z')) || ((c >= 'a') && (c <= 'z'))))
 			goto syntax1;
-		c = freadchar(stream);
-		if (c == cl_EOF) goto eof;
+		c = stream.get();
+		if (stream.eof() || stream.fail()) goto eof;
 	}
 	// Read a number token.
 	if (!number_char_p(c))
 		goto syntax1;
 	loop {
 		buffer.push(c);
-		c = freadchar(stream);
-		if (c == cl_EOF)
+		c = stream.get();
+		if (stream.eof() || stream.fail())
 			break;
 		if (!number_char_p(c)) {
-			funreadchar(stream,c);
+			stream.putback(c);
 			break;
 		}
 	}
diff --git a/src/integer/input/cl_I_read_stream.cc b/src/integer/input/cl_I_read_stream.cc
index 2f4e3db..227d845 100644
--- a/src/integer/input/cl_I_read_stream.cc
+++ b/src/integer/input/cl_I_read_stream.cc
@@ -48,8 +48,8 @@ const cl_I read_integer (std::istream& stream, const cl_read_flags& flags)
 	var int c;
 	// Skip whitespace at the beginning.
 	loop {
-		c = freadchar(stream);
-		if (c == cl_EOF) goto eof;
+		c = stream.get();
+		if (stream.eof() || stream.fail()) goto eof;
 		if ((c == ' ') || (c == '\t') || (c == '\n'))
 			continue;
 		else
@@ -64,8 +64,8 @@ const cl_I read_integer (std::istream& stream, const cl_read_flags& flags)
 		buffer.push(c);
 		// Read some digits, then a letter, then a token.
 		loop {
-			c = freadchar(stream);
-			if (c == cl_EOF) goto eof;
+			c = stream.get();
+			if (stream.eof() || stream.fail()) goto eof;
 			buffer.push(c);
 			if ((c >= '0') && (c <= '9'))
 				continue;
@@ -74,19 +74,19 @@ const cl_I read_integer (std::istream& stream, const cl_read_flags& flags)
 		}
 		if (!(((c >= 'A') && (c <= 'Z')) || ((c >= 'a') && (c <= 'z'))))
 			goto syntax1;
-		c = freadchar(stream);
-		if (c == cl_EOF) goto eof;
+		c = stream.get();
+		if (stream.eof() || stream.fail()) goto eof;
 	}
 	// Read a number token.
 	if (!number_char_p(c))
 		goto syntax1;
 	loop {
 		buffer.push(c);
-		c = freadchar(stream);
-		if (c == cl_EOF)
+		c = stream.get();
+		if (stream.eof() || stream.fail())
 			break;
 		if (!number_char_p(c)) {
-			funreadchar(stream,c);
+			stream.putback(c);
 			break;
 		}
 	}
diff --git a/src/rational/input/cl_RA_read_stream.cc b/src/rational/input/cl_RA_read_stream.cc
index d283095..bba1d03 100644
--- a/src/rational/input/cl_RA_read_stream.cc
+++ b/src/rational/input/cl_RA_read_stream.cc
@@ -49,8 +49,8 @@ const cl_RA read_rational (std::istream& stream, const cl_read_flags& flags)
 	var int c;
 	// Skip whitespace at the beginning.
 	loop {
-		c = freadchar(stream);
-		if (c == cl_EOF) goto eof;
+		c = stream.get();
+		if (stream.eof() || stream.fail()) goto eof;
 		if ((c == ' ') || (c == '\t') || (c == '\n'))
 			continue;
 		else
@@ -65,8 +65,8 @@ const cl_RA read_rational (std::istream& stream, const cl_read_flags& flags)
 		buffer.push(c);
 		// Read some digits, then a letter, then a token.
 		loop {
-			c = freadchar(stream);
-			if (c == cl_EOF) goto eof;
+			c = stream.get();
+			if (stream.eof() || stream.fail()) goto eof;
 			buffer.push(c);
 			if ((c >= '0') && (c <= '9'))
 				continue;
@@ -75,19 +75,19 @@ const cl_RA read_rational (std::istream& stream, const cl_read_flags& flags)
 		}
 		if (!(((c >= 'A') && (c <= 'Z')) || ((c >= 'a') && (c <= 'z'))))
 			goto syntax1;
-		c = freadchar(stream);
-		if (c == cl_EOF) goto eof;
+		c = stream.get();
+		if (stream.eof() || stream.fail()) goto eof;
 	}
 	// Read a number token.
 	if (!number_char_p(c))
 		goto syntax1;
 	loop {
 		buffer.push(c);
-		c = freadchar(stream);
-		if (c == cl_EOF)
+		c = stream.get();
+		if (stream.eof() || stream.fail())
 			break;
 		if (!number_char_p(c)) {
-			funreadchar(stream,c);
+			stream.putback(c);
 			break;
 		}
 	}
diff --git a/src/real/input/cl_R_read_stream.cc b/src/real/input/cl_R_read_stream.cc
index 873bad7..56b01d3 100644
--- a/src/real/input/cl_R_read_stream.cc
+++ b/src/real/input/cl_R_read_stream.cc
@@ -48,8 +48,8 @@ const cl_R read_real (std::istream& stream, const cl_read_flags& flags)
 	var int c;
 	// Skip whitespace at the beginning.
 	loop {
-		c = freadchar(stream);
-		if (c == cl_EOF) goto eof;
+		c = stream.get();
+		if (stream.eof() || stream.fail()) goto eof;
 		if ((c == ' ') || (c == '\t') || (c == '\n'))
 			continue;
 		else
@@ -64,8 +64,8 @@ const cl_R read_real (std::istream& stream, const cl_read_flags& flags)
 		buffer.push(c);
 		// Read some digits, then a letter, then a token.
 		loop {
-			c = freadchar(stream);
-			if (c == cl_EOF) goto eof;
+			c = stream.get();
+			if (stream.eof() || stream.fail()) goto eof;
 			buffer.push(c);
 			if ((c >= '0') && (c <= '9'))
 				continue;
@@ -74,19 +74,19 @@ const cl_R read_real (std::istream& stream, const cl_read_flags& flags)
 		}
 		if (!(((c >= 'A') && (c <= 'Z')) || ((c >= 'a') && (c <= 'z'))))
 			goto syntax1;
-		c = freadchar(stream);
-		if (c == cl_EOF) goto eof;
+		c = stream.get();
+		if (stream.eof() || stream.fail()) goto eof;
 	}
 	// Read a number token.
 	if (!number_char_p(c))
 		goto syntax1;
 	loop {
 		buffer.push(c);
-		c = freadchar(stream);
-		if (c == cl_EOF)
+		c = stream.get();
+		if (stream.eof() || stream.fail())
 			break;
 		if (!number_char_p(c)) {
-			funreadchar(stream,c);
+			stream.putback(c);
 			break;
 		}
 	}


Index: cln.spec
===================================================================
RCS file: /cvs/pkgs/rpms/cln/devel/cln.spec,v
retrieving revision 1.27
retrieving revision 1.28
diff -u -r1.27 -r1.28
--- cln.spec	16 Jan 2009 09:47:10 -0000	1.27
+++ cln.spec	4 Feb 2009 19:49:44 -0000	1.28
@@ -1,12 +1,13 @@
 Name:           cln
 Version:        1.2.2
-Release:        2%{?dist}
+Release:        3%{?dist}
 Summary:        Class Library for Numbers
 
 Group:          System Environment/Libraries
 License:        GPLv2+
 URL:            http://www.ginac.de/CLN/
 Source0:        http://www.ginac.de/CLN/%{name}-%{version}.tar.bz2
+Patch0:		cln-upstream_gcc44_fix.patch
 BuildRoot:      %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
 
 Requires(post): /sbin/install-info
@@ -33,6 +34,7 @@
 
 %prep
 %setup -q
+%patch0 -p1 -b .gcc44
 
 %build
 %configure --disable-static
@@ -75,6 +77,9 @@
 %exclude %{_libdir}/*.la
 
 %changelog
+* Wed Feb 04 2009 Deji Akingunola <dakingun at gmail.com> - 1.2.2-3
+- Add upstream patch to build with gcc-4.4
+
 * Fri Jan 16 2009 Rakesh Pandit <rakesh at fedoraproject.org> 1.2.2-2
 - Bump to solve dependency for ginac-devel
 




More information about the fedora-extras-commits mailing list