You are viewing a plain text version of this content. The canonical link for it is here.
Posted to cvs@httpd.apache.org by Marc Slemko <ma...@hyperreal.com> on 1997/02/08 02:33:58 UTC

cvs commit: apache/src CHANGES util_snprintf.c

marc        97/02/07 17:33:58

  Modified:    src       CHANGES util_snprintf.c
  Log:
  Fix ap_snprintf() printing of unsigned ints on Alpha chips.  (64-bit
  processor, but uses 32-bit ints)
  
  Reviewed by: Marc Slemko, Dean Gaudet, Jim Jagielski
  Submitted by: Dean Gaudet and Rodent of Unusual Size <co...@decus.org>
  
  Revision  Changes    Path
  1.149     +4 -0      apache/src/CHANGES
  
  Index: CHANGES
  ===================================================================
  RCS file: /export/home/cvs/apache/src/CHANGES,v
  retrieving revision 1.148
  retrieving revision 1.149
  diff -C3 -r1.148 -r1.149
  *** CHANGES	1997/02/08 00:44:03	1.148
  --- CHANGES	1997/02/08 01:33:56	1.149
  ***************
  *** 1,5 ****
  --- 1,9 ----
    Changes with Apache 1.2b7
    
  +   *) Fix handling of unsigned ints in ap_snprintf() on some chips such
  +      as the DEC Alpha which is 64-bit but uses 32-bit ints. 
  +      [Dean Gaudet, Ken the Rodent]
  + 
      *) Return a 302 response code to the client when sending a redirect
         due to a missing trailing '/' on a directory instead of a 301; now
         it is cacheable. [Markus Gyger]
  
  
  
  1.5       +17 -4     apache/src/util_snprintf.c
  
  Index: util_snprintf.c
  ===================================================================
  RCS file: /export/home/cvs/apache/src/util_snprintf.c,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -C3 -r1.4 -r1.5
  *** util_snprintf.c	1997/01/20 23:55:11	1.4
  --- util_snprintf.c	1997/02/08 01:33:56	1.5
  ***************
  *** 671,683 ****
    	     *   It is reset to ' ' by non-numeric formats
    	     */
    	    switch (*fmt) {
  - 	    case 'd':
  - 	    case 'i':
    	    case 'u':
    		if (is_long)
  ! 		    i_num = va_arg(ap, wide_int);
    		else
  ! 		    i_num = (wide_int) va_arg(ap, int);
    		s = conv_10(i_num, (*fmt) == 'u', &is_negative,
    			    &num_buf[NUM_BUF_SIZE], &s_len);
    		FIX_PRECISION(adjust_precision, precision, s, s_len);
  --- 671,696 ----
    	     *   It is reset to ' ' by non-numeric formats
    	     */
    	    switch (*fmt) {
    	    case 'u':
    		if (is_long)
  ! 		    i_num = va_arg(ap, u_wide_int);
    		else
  ! 		    i_num = (wide_int) va_arg(ap, unsigned int);
  ! 		/*
  ! 		 * The rest also applies to other integer formats, so fall
  ! 		 * into that case.
  ! 		 */
  ! 	    case 'd':
  ! 	    case 'i':
  ! 		/*
  ! 		 * Get the arg if we haven't already.
  ! 		 */
  ! 		if ((*fmt) != 'u') {
  ! 		    if (is_long)
  ! 			i_num = va_arg(ap, wide_int);
  ! 		    else
  ! 			i_num = (wide_int) va_arg(ap, int);
  ! 		};
    		s = conv_10(i_num, (*fmt) == 'u', &is_negative,
    			    &num_buf[NUM_BUF_SIZE], &s_len);
    		FIX_PRECISION(adjust_precision, precision, s, s_len);