jim         99/05/21 17:16:51

  Modified:    src/ap   ap_snprintf.c
  Log:
  Really handle the short 'h' flag now
  
  Revision  Changes    Path
  1.29      +27 -4     apache-1.3/src/ap/ap_snprintf.c
  
  Index: ap_snprintf.c
  ===================================================================
  RCS file: /export/home/cvs/apache-1.3/src/ap/ap_snprintf.c,v
  retrieving revision 1.28
  retrieving revision 1.29
  diff -u -r1.28 -r1.29
  --- ap_snprintf.c     1999/05/21 22:41:43     1.28
  +++ ap_snprintf.c     1999/05/22 00:16:50     1.29
  @@ -585,6 +585,7 @@
       /*
        * Flag variables
        */
  +    boolean_e is_short;
       boolean_e is_long;
       boolean_e is_quad;
       boolean_e alternate_form;
  @@ -687,18 +688,25 @@
            if (*fmt == 'q') {
                is_quad = YES;
                is_long = NO;
  +             is_short = NO;
                fmt++;
            }
            else if (*fmt == 'l') {
  +             is_quad = NO;
                is_long = YES;
  +             is_short = NO;
  +             fmt++;
  +         }
  +         else if (*fmt == 'h') {
                is_quad = NO;
  +             is_long = NO;
  +             is_short = YES;
                fmt++;
            }
            else {
  -             if (*fmt == 'h')  /* "short" backward compatibility */
  -                 ++fmt;
  -             is_long = NO;
                is_quad = NO;
  +             is_long = NO;
  +             is_short = NO;
            }
   
            /*
  @@ -718,6 +726,8 @@
                    i_num = va_arg(ap, u_widest_int);
                else if (is_long)
                    i_num = (widest_int) va_arg(ap, u_wide_int);
  +             else if (is_short)
  +                 i_num = (widest_int) (unsigned short) va_arg(ap, unsigned 
int);
                else
                    i_num = (widest_int) va_arg(ap, unsigned int);
                s = conv_10(i_num, 1, &is_negative,
  @@ -731,6 +741,8 @@
                    i_num = va_arg(ap, widest_int);
                else if (is_long)
                    i_num = (widest_int) va_arg(ap, wide_int);
  +             else if (is_short)
  +                 i_num = (widest_int) (short) va_arg(ap, int);
                else
                    i_num = (widest_int) va_arg(ap, int);
                s = conv_10(i_num, 0, &is_negative,
  @@ -751,6 +763,8 @@
                    ui_num = va_arg(ap, u_widest_int);
                else if (is_long)
                    ui_num = (u_widest_int) va_arg(ap, u_wide_int);
  +             else if (is_short)
  +                 ui_num = (u_widest_int) (unsigned short) va_arg(ap, 
unsigned int);
                else
                    ui_num = (u_widest_int) va_arg(ap, unsigned int);
                s = conv_p2(ui_num, 3, *fmt,
  @@ -769,6 +783,8 @@
                    ui_num = va_arg(ap, u_widest_int);
                else if (is_long)
                    ui_num = (u_widest_int) va_arg(ap, u_wide_int);
  +             else if (is_short)
  +                 ui_num = (u_widest_int) (unsigned short) va_arg(ap, 
unsigned int);
                else
                    ui_num = (u_widest_int) va_arg(ap, unsigned int);
                s = conv_p2(ui_num, 4, *fmt,
  @@ -862,7 +878,14 @@
   
   
            case 'n':
  -             *(va_arg(ap, int *)) = cc;
  +             if (is_quad)
  +                 *(va_arg(ap, widest_int *)) = cc;
  +             else if (is_long)
  +                 *(va_arg(ap, long *)) = cc;
  +             else if (is_short)
  +                 *(va_arg(ap, short *)) = cc;
  +             else
  +                 *(va_arg(ap, int *)) = cc;
                break;
   
                /*
  
  
  

Reply via email to