fielding    99/02/06 06:36:27

  Modified:    src      CHANGES
               src/modules/standard mod_negotiation.c
  Log:
  Fix ordering of language variants for the case where the traditional
  negotiation algorithm is being used with multiple language variants
  and no Accept-Language is given.
  
  PR: 3299, 3688
  Submitted by: James Treacy <[EMAIL PROTECTED]>
  Reviewed by:  Roy Fielding, Koen Holtman
  
  Revision  Changes    Path
  1.1237    +4 -0      apache-1.3/src/CHANGES
  
  Index: CHANGES
  ===================================================================
  RCS file: /home/cvs/apache-1.3/src/CHANGES,v
  retrieving revision 1.1236
  retrieving revision 1.1237
  diff -u -r1.1236 -r1.1237
  --- CHANGES   1999/02/06 11:58:43     1.1236
  +++ CHANGES   1999/02/06 14:36:25     1.1237
  @@ -1,5 +1,9 @@
   Changes with Apache 1.3.5
   
  +  *) Fix ordering of language variants for the case where the traditional
  +     negotiation algorithm is being used with multiple language variants
  +     and no Accept-Language. [James Treacy <[EMAIL PROTECTED]>] PR#3299, 3688
  +
     *) Do not round the TCN quality calculation to 5 decimal places,
        unlike RFC 2296, because the calculation might need 12 decimal places
        to get the right result.  [Roy Fielding]
  
  
  
  1.96      +4 -8      apache-1.3/src/modules/standard/mod_negotiation.c
  
  Index: mod_negotiation.c
  ===================================================================
  RCS file: /home/cvs/apache-1.3/src/modules/standard/mod_negotiation.c,v
  retrieving revision 1.95
  retrieving revision 1.96
  diff -u -r1.95 -r1.96
  --- mod_negotiation.c 1999/02/06 11:58:45     1.95
  +++ mod_negotiation.c 1999/02/06 14:36:27     1.96
  @@ -1884,17 +1884,13 @@
           return 1;
       }
   
  -    /* if language qualities were equal, try the LanguagePriority
  -     * stuff
  -     */
  -    /* XXX: TODO: there is a slight discrepancy between how this
  -     * behaves and how it described in the documentation
  -     */
  -    if (best->lang_index != -1 && variant->lang_index > best->lang_index) {
  +    /* if language qualities were equal, try the LanguagePriority stuff */
  +    if (best->lang_index != -1 &&
  +        (variant->lang_index == -1 || variant->lang_index > 
best->lang_index)) {
           return 0;
       }
       if (variant->lang_index != -1 &&
  -        (variant->lang_index < best->lang_index || best->lang_index == -1)) {
  +        (best->lang_index == -1 || variant->lang_index < best->lang_index)) {
           *p_bestq = q;
           return 1;
       }
  
  
  

Reply via email to