Changes with Apache 2.0.26-dev
+ *) Eliminate the depreciated r->content_language, in favor of the array
+ r->content_languages introduced many years ago. Module authors must
+ substantially overhaul their modules, so this needs to be upgraded
+ if the module still relied on backwards-brokeness. [William Rowe]
+
*) Allow configure help strings to work with autoconf 2.50+ and 2.13.
[Justin Erenkrantz]
* 20010726 (2.0.22-dev) more big API changes
* 20010808 (2.0.23-dev) dir d_is_absolute bit introduced, bucket changes, etc
* 20010825 (2.0.25-dev) removed d_is_absolute, introduced map_to_storage hook
+ * 20011002 (2.0.26-dev) removed 1.3-depreciated request_rec.content_language
*/
#define MODULE_MAGIC_COOKIE 0x41503230UL /* "AP20" */
#ifndef MODULE_MAGIC_NUMBER_MAJOR
-#define MODULE_MAGIC_NUMBER_MAJOR 20010825
+#define MODULE_MAGIC_NUMBER_MAJOR 20011002
#endif
#define MODULE_MAGIC_NUMBER_MINOR 0 /* 0...n */
#define MODULE_MAGIC_NUMBER MODULE_MAGIC_NUMBER_MAJOR /* backward compat */
/** Notes from one module to another */
apr_table_t *notes;
- /* content_type, handler, content_encoding, content_language, and all
- * content_languages MUST be lowercased strings. They may be pointers
- * to static strings; they should not be modified in place.
+ /* content_type, handler, content_encoding, and all content_languages
+ * MUST be lowercased strings. They may be pointers to static strings;
+ * they should not be modified in place.
*/
/** The content-type for the current request */
const char *content_type; /* Break these out --- we dispatch on 'em */
/** How to encode the data */
const char *content_encoding;
- /** for back-compat. only -- do not use */
- const char *content_language;
/** array of (char*) representing the content languages */
apr_array_header_t *content_languages;
apr_table_mergen(r->headers_out, "Content-Language", languages[i]);
}
}
- else if (r->content_language) {
- apr_table_setn(r->headers_out, "Content-Language",
- r->content_language);
- }
/*
* Control cachability for non-cachable responses if not already set by
}
}
- r->content_language = NULL;
r->content_languages = NULL;
r->content_encoding = NULL;
r->clength = 0;
r->content_type = rr->content_type;
r->content_encoding = rr->content_encoding;
r->content_languages = rr->content_languages;
- r->content_language = rr->content_language;
r->finfo = rr->finfo;
r->per_dir_config = rr->per_dir_config;
/* copy output headers from subrequest, but leave negotiation headers */
found = 1;
}
if (exinfo->language_type) {
- r->content_language = exinfo->language_type; /* back compat. */
if (!r->content_languages)
r->content_languages = apr_array_make(r->pool, 2,
sizeof(char *));
- *((const char **) apr_array_push(r->content_languages)) =
- exinfo->language_type;
+ *((const char **) apr_array_push(r->content_languages))
+ = exinfo->language_type;
found = 1;
}
if (exinfo->encoding_type) {
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 = apr_array_make(r->pool, 2, sizeof(char *));
new = (const char **) apr_array_push(r->content_languages);
if (sub->content_encoding)
r->content_encoding =
apr_pstrdup(r->pool, sub->content_encoding);
- if (sub->content_language)
- r->content_language =
- apr_pstrdup(r->pool, sub->content_language);
+ if (sub->content_languages) {
+ int n;
+ r->content_languages = apr_array_copy(r->pool,
+ sub->content_languages);
+ for (n = 0; n < r->content_languages->nelts; ++n) {
+ char **lang = ((char **)r->content_languages->elts) + n;
+ *lang = apr_pstrdup(r->pool, *lang);
+ }
+ }
result = 1;
}