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 <[EMAIL PROTECTED]>
  
  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);
  
  
  

Reply via email to