coar        98/12/01 19:45:54

  Modified:    .        STATUS
               htdocs/manual/mod mod_mime.html
               src      CHANGES
               src/modules/standard mod_mime.c
  Log:
        Put in Paul's DefaultLanguage code.  I don't recall seeing
        any negative comments, and it's pretty valuable for multilingual
        sites.
  
  Revision  Changes    Path
  1.546     +1 -8      apache-1.3/STATUS
  
  Index: STATUS
  ===================================================================
  RCS file: /home/cvs/apache-1.3/STATUS,v
  retrieving revision 1.545
  retrieving revision 1.546
  diff -u -r1.545 -r1.546
  --- STATUS    1998/12/01 15:39:04     1.545
  +++ STATUS    1998/12/02 03:45:50     1.546
  @@ -1,4 +1,4 @@
  - 1.3 STATUS:
  +  1.3 STATUS:
   
   Release:
   
  @@ -110,13 +110,6 @@
         change "httpd" to "apache" or to whatever for the particular
         installation.
         Status: Ralf +1
  -
  -    * Paul's [PATCH] adding a DefaultLanguage directive
  -      This patch implements a DefaultLanguage directive. It sets the
  -      language to apply to files with no explicit language set via
  -      AddLanguage.
  -     Message-ID: <[EMAIL PROTECTED]>
  -     Status: Paul +1, Ken +1
   
       * Michael van Elst's patch [PR#3160] to improve mod_rewrite's
         in-core cache handling by using a hash table.
  
  
  
  1.26      +49 -9     apache-1.3/htdocs/manual/mod/mod_mime.html
  
  Index: mod_mime.html
  ===================================================================
  RCS file: /home/cvs/apache-1.3/htdocs/manual/mod/mod_mime.html,v
  retrieving revision 1.25
  retrieving revision 1.26
  diff -u -r1.25 -r1.26
  --- mod_mime.html     1998/11/20 15:45:36     1.25
  +++ mod_mime.html     1998/12/02 03:45:51     1.26
  @@ -36,11 +36,11 @@
   file.  Respectively they set the content-encoding, handler,
   content-language and MIME-type (content-type) of documents.  The
   directive <A HREF="#typesconfig">TypesConfig</A> is used to specify a
  -file which also maps extensions onto mime types. The directives <A
  +file which also maps extensions onto MIME types. The directives <A
   HREF="#forcetype">ForceType</A> and <A
   HREF="#sethandler">SetHandler</A> are used to associated all the files
   in a given location (<EM>e.g.</EM>, a particular directory) onto a particular
  -mime type or handler.
  +MIME type or handler.
   
   <P>
   
  @@ -90,6 +90,7 @@
   <LI><A HREF="#addhandler">AddHandler</A>
   <LI><A HREF="#addlanguage">AddLanguage</A>
   <LI><A HREF="#addtype">AddType</A>
  +<LI><A HREF="#defaultlanguage">DefaultLanguage</A>
   <LI><A HREF="#forcetype">ForceType</A>
   <LI><A HREF="#sethandler">SetHandler</A>
   <LI><A HREF="#typesconfig">TypesConfig</A>
  @@ -121,7 +122,7 @@
   ><STRONG>Module:</STRONG></A> mod_mime<P>
   
   The AddEncoding directive maps the given filename extensions to the
  -specified encoding type. <EM>Mime-enc</EM> is the mime encoding to use
  +specified encoding type. <EM>MIME-enc</EM> is the MIME encoding to use
   for documents containing the <EM>extension</EM>. This mapping is added
   to any already in force, overriding any mappings that already exist
   for the same <EM>extension</EM>.
  @@ -227,7 +228,7 @@
   ><STRONG>Module:</STRONG></A> mod_mime<P>
   
   The AddLanguage directive maps the given filename extensions to the
  -specified content language. <EM>Mime-lang</EM> is the mime language of
  +specified content language. <EM>MIME-lang</EM> is the MIME language of
   filenames containing <EM>extension</EM>.  This mapping is added to any
   already in force, overriding any mappings that already exist for the
   same <EM>extension</EM>.
  @@ -275,18 +276,18 @@
   ><STRONG>Module:</STRONG></A> mod_mime<P>
   
   The AddType directive maps the given filename extensions onto the
  -specified content type. <EM>Mime-enc</EM> is the mime type to use for
  +specified content type. <EM>MIME-enc</EM> is the MIME type to use for
   filenames containing <EM>extension</EM>.  This mapping is added to any
   already in force, overriding any mappings that already exist for the
   same <EM>extension</EM>. This directive can be used to add mappings
  -not listed in the mime types file (see the <CODE><A
  +not listed in the MIME types file (see the <CODE><A
   HREF="#typesconfig">TypesConfig</A></CODE> directive).
   
   Example:
   <BLOCKQUOTE><CODE>
   AddType image/gif GIF
   </CODE></BLOCKQUOTE>
  -It is recommended that new mime types be added using the AddType directive
  +It is recommended that new MIME types be added using the AddType directive
   rather than changing the <A HREF="#typesconfig">TypesConfig</A> file.<P>
   Note that, unlike the NCSA httpd, this directive cannot be used to set the
   type of particular files.<P>
  @@ -298,6 +299,45 @@
   
   <HR>
   
  +<H2><A NAME="defaultlanguage">DefaultLanguage</A></H2>
  +<!--%plaintext &lt;?INDEX {\tt DefaultLanguage} directive&gt; -->
  +<A
  + HREF="directive-dict.html#Syntax"
  + REL="Help"
  +><STRONG>Syntax:</STRONG></A> DefaultLanguage <EM>MIME-lang</EM><BR>
  +<A
  + HREF="directive-dict.html#Context"
  + REL="Help"
  +><STRONG>Context:</STRONG></A> server config, virtual host, directory, 
.htaccess<BR>
  +<A
  + HREF="directive-dict.html#Override"
  + REL="Help"
  +><STRONG>Override:</STRONG></A> FileInfo<BR>
  +<A
  + HREF="directive-dict.html#Status"
  + REL="Help"
  +><STRONG>Status:</STRONG></A> Base<BR>
  +<A
  + HREF="directive-dict.html#Module"
  + REL="Help"
  +><STRONG>Module:</STRONG></A> mod_mime<P>
  +
  +The DefaultLanguage directive tells Apache that all files in the
  +directive's scope (<EM>e.g.</EM>, all files covered by the current
  +<CODE>&lt;Directory&gt;</CODE> container) that don't have an explicit 
language
  +extension (such as <SAMP>.fr</SAMP> or <SAMP>.de</SAMP>) should be
  +considered to be the specified <EM>MIME-lang</EM> language
  +by default, rather than English.  This allows entire directories
  +to be marked as containing Dutch content, for instance, without
  +having to rename each file.
  +
  +<P>
  +
  +<STRONG>See also</STRONG>: <A HREF="#multipleext">Files with
  +multiple extensions</A>
  +
  +<HR>
  +
   <H2><A NAME="forcetype">ForceType</A></H2>
   
   <A
  @@ -389,7 +429,7 @@
   <A
    HREF="directive-dict.html#Default"
    REL="Help"
  -><STRONG>Default:</STRONG></A> <CODE>TypesConfig conf/mime.types</CODE><BR>
  +><STRONG>Default:</STRONG></A> <CODE>TypesConfig conf/MIME.types</CODE><BR>
   <A
    HREF="directive-dict.html#Context"
    REL="Help"
  @@ -403,7 +443,7 @@
    REL="Help"
   ><STRONG>Module:</STRONG></A> mod_mime<P>
   
  -The TypesConfig directive sets the location of the mime types configuration
  +The TypesConfig directive sets the location of the MIME types configuration
   file. <EM>Filename</EM> is relative to the
   <A HREF="core.html#serverroot">ServerRoot</A>. This file sets the default 
list of
   mappings from filename extensions to content types; changing this file is not
  
  
  
  1.1154    +7 -0      apache-1.3/src/CHANGES
  
  Index: CHANGES
  ===================================================================
  RCS file: /home/cvs/apache-1.3/src/CHANGES,v
  retrieving revision 1.1153
  retrieving revision 1.1154
  diff -u -r1.1153 -r1.1154
  --- CHANGES   1998/12/01 23:59:53     1.1153
  +++ CHANGES   1998/12/02 03:45:52     1.1154
  @@ -1,4 +1,11 @@
   Changes with Apache 1.3.4
  +
  +  *) Add a DefaultLanguage directive so that files missing a language
  +     extension (e.g., .fr, .de) can be labelled as being some other
  +     language than English by default.  DefaultLanguage can appear in
  +     <Directory> and <Files> containers as well as .htaccess files.
  +     [Paul Sutton]
  +
     *) Fix TARGET configuration when configuring and installing using
        APACI configure. TARGET now defines the basename of the configuration
        file, startup script, manual page, etc. log_error_core() now reports
  
  
  
  1.47      +24 -3     apache-1.3/src/modules/standard/mod_mime.c
  
  Index: mod_mime.c
  ===================================================================
  RCS file: /home/cvs/apache-1.3/src/modules/standard/mod_mime.c,v
  retrieving revision 1.46
  retrieving revision 1.47
  diff -u -r1.46 -r1.47
  --- mod_mime.c        1998/12/02 00:00:17     1.46
  +++ mod_mime.c        1998/12/02 03:45:53     1.47
  @@ -81,6 +81,7 @@
   
       char *type;                 /* Type forced with ForceType  */
       char *handler;              /* Handler forced with SetHandler */
  +    char *default_language;     /* Language if no AddLanguage ext found */
   } mime_dir_config;
   
   module MODULE_VAR_EXPORT mime_module;
  @@ -98,6 +99,7 @@
   
       new->type = NULL;
       new->handler = NULL;
  +    new->default_language = NULL;
   
       return new;
   }
  @@ -107,13 +109,13 @@
       mime_dir_config *base = (mime_dir_config *) basev;
       mime_dir_config *add = (mime_dir_config *) addv;
       mime_dir_config *new =
  -     (mime_dir_config *) ap_palloc(p, sizeof(mime_dir_config));
  +        (mime_dir_config *) ap_palloc(p, sizeof(mime_dir_config));
       int i;
       handlers_info *hand;
   
       hand = (handlers_info *) add->handlers_remove->elts;
       for (i = 0; i < add->handlers_remove->nelts; i++) {
  -     ap_table_unset(base->handlers, hand[i].name);
  +        ap_table_unset(base->handlers, hand[i].name);
       }
   
       new->forced_types = ap_overlay_tables(p, add->forced_types,
  @@ -127,6 +129,8 @@
   
       new->type = add->type ? add->type : base->type;
       new->handler = add->handler ? add->handler : base->handler;
  +    new->default_language = add->default_language ?
  +        add->default_language : base->default_language;
   
       return new;
   }
  @@ -182,7 +186,7 @@
       handlers_info *hand;
   
       if (*ext == '.') {
  -     ++ext;
  +        ++ext;
       }
       hand = (handlers_info *) ap_push_array(mcfg->handlers_remove);
       hand->name = ap_pstrdup(cmd->pool, ext);
  @@ -219,6 +223,9 @@
        "a handler name"},
       {"TypesConfig", set_types_config, NULL, RSRC_CONF, TAKE1,
        "the MIME types config file"},
  +    {"DefaultLanguage", ap_set_string_slot,
  +     (void*)XtOffsetOf(mime_dir_config, default_language), OR_FILEINFO, 
TAKE1,
  +     "language to use for documents with no other language file extension" },
       {NULL}
   };
   
  @@ -347,6 +354,20 @@
               r->handler = orighandler;
           }
   
  +    }
  +
  +    /* Set default language, if none was specified by the extensions
  +     * and we have a DefaultLanguage setting in force
  +     */
  +
  +    if (!r->content_languages && conf->default_language) {
  +        const char **new;
  +
  +        r->content_language = conf->default_language; /* back compat. only */
  +        if (!r->content_languages)
  +            r->content_languages = ap_make_array(r->pool, 2, sizeof(char *));
  +        new = (const char **) ap_push_array(r->content_languages);
  +        *new = conf->default_language;
       }
   
       /* Check for overrides with ForceType/SetHandler */
  
  
  

Reply via email to