+ /* Try " coding:" */
+ if (NILP(coding_system)) {
+ for (p = local_vars_beg, scan_end = suffix - LENGTH(" coding:?");
+ p <= scan_end; p++) {
+ Extbyte save;
+ int n;
+
+ if (memcmp(" coding:", p, LENGTH(" coding:")) != 0) {
+ continue;
+ }
+ if (p != local_vars_beg && strchr(" \t;", *p) == NULL ) {
+ continue;
+ }
+ p += LENGTH(" coding:");
+ while (*p == ' ' || *p == '\t') {
+ p++;
+ }
+
+ /* Get coding system name */
+ save = *suffix;
+ *suffix = '\0';
+ /* Characters valid in a MIME charset
+ name (rfc 1521), and in a Lisp
+ symbol name. */
+ n = strspn((char *)p, mime_name_valid_chars);
+ *suffix = save;
+ if (n > 0) {
+ save = p[n];
+ p[n] = '\0';
+ coding_system = Ffind_coding_system(
+ intern((char *)p));
+ p[n] = save;
+ }
+ break;
+ }
+ }