dgaudet     97/09/25 19:59:11

  Modified:    src      CHANGES
               src/modules/standard mod_autoindex.c
  Log:
  1)  Entity Names (like ü) are parsed and counted as having a width
      of "one character". Until now, their length was taken in column
      counting, resulting in too early truncated description columns.
  
  2)  The last character of a description text which had the maximum
      allowed length (27?) was overwritten with the "truncated" character
      ('>'). This didn't make the string any shorter, but made it
      unreadable :-(   Now the string is truncated only if it really
      exceeds the maximum length.
  
  Submitted by: Martin Kraemer
  Reviewed by:  Dean Gaudet, Jim Jagielski, Roy Fielding
  
  Revision  Changes    Path
  1.446     +5 -0      apachen/src/CHANGES
  
  Index: CHANGES
  ===================================================================
  RCS file: /export/home/cvs/apachen/src/CHANGES,v
  retrieving revision 1.445
  retrieving revision 1.446
  diff -u -r1.445 -r1.446
  --- CHANGES   1997/09/26 02:56:39     1.445
  +++ CHANGES   1997/09/26 02:59:07     1.446
  @@ -1,5 +1,10 @@
   Changes with Apache 1.3b1
   
  +  *) mod_autoindex improperly counted &escapes; as more than one
  +     character in the description.  It also improperly truncated
  +     descriptions that were exactly the maximum length.
  +     [Martin Kraemer]
  +
     *) RedirectMatch was not properly escaping the result (PR#1155).  Also
        "RedirectMatch /advertiser/(.*) $1" is now permitted.
        [Dean Gaudet]
  
  
  
  1.49      +11 -1     apachen/src/modules/standard/mod_autoindex.c
  
  Index: mod_autoindex.c
  ===================================================================
  RCS file: /export/home/cvs/apachen/src/modules/standard/mod_autoindex.c,v
  retrieving revision 1.48
  retrieving revision 1.49
  diff -u -r1.48 -r1.49
  --- mod_autoindex.c   1997/09/18 08:12:22     1.48
  +++ mod_autoindex.c   1997/09/26 02:59:10     1.49
  @@ -716,10 +716,20 @@
                ++x;
            }
        }
  +     else if (desc[x] == '&') {
  +         /* entities like ä count as one character */
  +         --maxsize;
  +         for ( ; desc[x] != ';'; ++x) {
  +             if (desc[x] == '\0') {
  +                     maxsize = 0;
  +                     break;
  +             }
  +         }
  +        }
        else
            --maxsize;
       }
  -    if (!maxsize) {
  +    if (!maxsize && desc[x] != '\0') {
        desc[x - 1] = '>';      /* Grump. */
        desc[x] = '\0';         /* Double Grump! */
       }
  
  
  

Reply via email to