Class Library for Numbers
Copyright (c) Bruno Haible 1988-2008
-Copyright (c) Richard Kreckel 2000-2009
-Copyright (c) Alexei Sheplyakov 2008
+Copyright (c) Richard Kreckel 2000-2012
+Copyright (c) Alexei Sheplyakov 2008-2010
GPL
Richard B. Kreckel, @code{<kreckel@@ginac.de>}.
Copyright (C) Bruno Haible 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008.
-Copyright (C) Richard B. Kreckel 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011.
+Copyright (C) Richard B. Kreckel 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012.
Copyright (C) Alexei Sheplyakov 2008, 2010.
Permission is granted to make and distribute verbatim copies of
static const char * copyright_notice[] = {
" \n"
"Copyright (c) Bruno Haible 1988-2008 \n"
- "Copyright (c) Richard Kreckel 2000-2009 \n"
- "Copyright (c) Alexei Sheplyakov 2008 \n"
+ "Copyright (c) Richard Kreckel 2000-2012 \n"
+ "Copyright (c) Alexei Sheplyakov 2008-2010 \n"
" \n"
"This program is free software; you can redistribute it and/or modify\n"
"it under the terms of the GNU General Public License as published by\n"
goto syntax1;
loop {
buffer.push(c);
- c = stream.get();
- if (stream.eof() || stream.fail())
- break;
- if (!number_char_p(c)) {
- stream.putback(c);
+ c = stream.peek(); // Avoid fail state on EOF.
+ if (stream.eof() || stream.fail() || !number_char_p(c))
break;
- }
+ c = stream.get();
}
done:
// Parse the number.
goto syntax1;
loop {
buffer.push(c);
- c = stream.get();
- if (stream.eof() || stream.fail())
- break;
- if (!number_char_p(c)) {
- stream.putback(c);
+ c = stream.peek(); // Avoid fail state on EOF.
+ if (stream.eof() || stream.fail() || !number_char_p(c))
break;
- }
+ c = stream.get();
}
// Parse the number.
return read_float(flags,
goto syntax1;
loop {
buffer.push(c);
- c = stream.get();
- if (stream.eof() || stream.fail())
- break;
- if (!number_char_p(c)) {
- stream.putback(c);
+ c = stream.peek(); // Avoid fail state on EOF.
+ if (stream.eof() || stream.fail() || !number_char_p(c))
break;
- }
+ c = stream.get();
}
// Parse the number.
return read_integer(flags,
goto syntax1;
loop {
buffer.push(c);
- c = stream.get();
- if (stream.eof() || stream.fail())
- break;
- if (!number_char_p(c)) {
- stream.putback(c);
+ c = stream.peek(); // Avoid fail state on EOF.
+ if (stream.eof() || stream.fail() || !number_char_p(c))
break;
- }
+ c = stream.get();
}
// Parse the number.
return read_rational(flags,
goto syntax1;
loop {
buffer.push(c);
- c = stream.get();
- if (stream.eof() || stream.fail())
- break;
- if (!number_char_p(c)) {
- stream.putback(c);
+ c = stream.peek(); // Avoid fail state on EOF.
+ if (stream.eof() || stream.fail() || !number_char_p(c))
break;
- }
+ c = stream.get();
}
// Parse the number.
return read_real(flags,