diff src/doprnt.c @ 5252:378a34562cbe

Fix style, documentation for rounding functions and multiple values. src/ChangeLog addition: 2010-08-30 Aidan Kehoe <kehoea@parhasard.net> * floatfns.c (ceiling_one_mundane_arg, floor_one_mundane_arg) (round_one_mundane_arg, truncate_one_mundane_arg): INTEGERP is always available, no need to wrap calls to it with #ifdef HAVE_BIGNUM. (Fceiling, Ffloor, Fround, Ftruncate, Ffceiling, Fffloor) (Ffround, Fftruncate): Correct some code formatting here. * doprnt.c (emacs_doprnt_1): Remove some needless #ifdef WITH_NUMBER_TYPES, now number.h is always #included. man/ChangeLog addition: 2010-08-30 Aidan Kehoe <kehoea@parhasard.net> * lispref/eval.texi (Evaluation, Multiple values): Document our implementation of multiple values; point the reader to the CLTL or the Hyperspec for details of exactly when values are discarded. * lispref/numbers.texi (Numeric Conversions): Document the optional DIVISOR arguments to the rounding functions, and document that they all return multiple values. (Rounding Operations): Ditto. * cl.texi (Multiple Values): Document that we've moved the multiple values implementation to core code, and cross-reference to the Lispref. (Numerical Functions): The various rounding functions are now identical to the built-in rounding functions, with the exception that they return lists, not multiple values; document this.
author Aidan Kehoe <kehoea@parhasard.net>
date Mon, 30 Aug 2010 15:23:42 +0100
parents 16112448d484
children 308d34e9f07d
line wrap: on
line diff
--- a/src/doprnt.c	Mon Aug 30 15:21:04 2010 +0100
+++ b/src/doprnt.c	Mon Aug 30 15:23:42 2010 +0100
@@ -591,11 +591,7 @@
 	      Lisp_Object obj = largs[spec->argnum - 1];
 	      if (CHARP (obj))
 		obj = make_int (XCHAR (obj));
-#ifdef WITH_NUMBER_TYPES
 	      if (!NUMBERP (obj))
-#else
-	      if (!INT_OR_FLOATP (obj))
-#endif
 		{
 		  /* WARNING!  This MUST be big enough for the sprintf below */
 		  CIbyte msg[48];
@@ -606,9 +602,10 @@
 		}
 	      else if (strchr (double_converters, ch))
 		{
-#ifdef WITH_NUMBER_TYPES
-		  if (INTP (obj) || FLOATP (obj))
-		    arg.d = XFLOATINT (obj);
+		  if (INTP (obj))
+		    arg.d = XINT (obj);
+		  else if (FLOATP (obj))
+		    arg.d = XFLOAT_DATA (obj);
 #ifdef HAVE_BIGNUM
 		  else if (BIGNUMP (obj))
 		    arg.d = bignum_to_double (XBIGNUM_DATA (obj));
@@ -631,9 +628,6 @@
 			}
 		    }
 #endif
-#else /* !WITH_NUMBER_TYPES */
-		  arg.d = XFLOATINT (obj);
-#endif /* WITH_NUMBER_TYPES */
 		}
 	      else
 		{