mkind.c.patch 644 4247 1356 1445 5735542601 6564 38a39 > int french_texacc = FALSE; /*WP*/ 222a224,228 > /* enable french TeX accentuation */ /*WP*/ > case 'f': > french_texacc = TRUE; > break; > 326,328c332,333 < if (german_sort && (idx_quote == '"')) < FATAL("Option -g invalid, quote character must be different from '%c'.\n", < '"'); --- > if ((german_sort || french_texacc) && (idx_quote == '"')) /*WP*/ > FATAL("Option -g and -f invalid, quote character must be different from '%c'.\n",'"'); 360,363c365,367 < if (german_sort && (idx_quote == '"')) < FATAL("Option -g ignored, quote character must be different from '%c'.\n", < '"'); < --- > if ((german_sort || french_texacc) && (idx_quote == '"')) /*WP*/ > FATAL("Option -g and -f ignored, quote character must be different from '%c'.\n",'"'); > french_texacc = FALSE; mkind.h.patch 644 4247 1356 742 5735542502 6550 494c494 < #define VERSION "portable version 2.12 [26-May-1993]" --- > #define VERSION "portable version 2.12wp [26-March-1995]" /*WP*/ 496a497 > #define VERSION "portable version 2.12 [26-May-1993]" 517c518 < "Usage: %s [-ilqrcg] [-s sty] [-o ind] [-t log] [-p num] [idx0 idx1 ...]\n" --- > "Usage: %s [-ilqrcgf] [-s sty] [-o ind] [-t log] [-p num] [idx0 idx1 ...]\n option -f is for french TeX accents\n\n" /*WP*/ 576a578 > extern int french_texacc; /*WP*/ scanid.c.patch 644 4247 1356 6500 5767777671 6746 61a62 > static void discard_accent ARGS((char *str,char *actf));/*WP*/ 312a314,320 > /*WP*/ > if (french_texacc && strchr(data->sf[i],'\\')) > { > make_string(&(data->af[i]),strlen(data->sf[i]) + 1); > discard_accent(data->sf[i], data->af[i]); > } > 353a362 > 428c437 < while ((str[i] != NUL) && ISDIGIT(str[i])) --- > while ((str[i] != NUL) && (ISDIGIT(str[i]))) 828a838,892 > return; > } > > > /*WP*/ > void > #if STDC > discard_accent(char *str,char *actf) > #else > discard_accent(str) > char *str; > #endif > { > int i=0, j=0; > int char_found = FALSE; > > strcpy(actf,str); > > while (str[i] != NUL) > { > switch (str[i]) { > case '\\': > i++; > if ((str[i] == '\'') || > (str[i] == '`') || > (str[i] == '"') || > (str[i] == '^')) { > i++; > switch (str[i]) { > case 'a': > case 'A': > case 'e': > case 'E': > case 'i': > case 'I': > case 'o': > case 'O': > case 'u': > case 'U': > char_found = TRUE; > /* puts blanks in place of accent */ > str[i-2]=str[i];str[i-1]=' ';str[i]=' '; > break; > default: > break; > } > } > break; > default: > i++; > break; > } > } > > while (sort_key[i] != NULL) > { > switch (sort_key[i]) > { > case 'à' : sort_key[i]='a' ; char_found = TRUE; break ; > case 'À' : sort_key[i]='A' ; char_found = TRUE; break ; > case 'â' : sort_key[i]='a' ; char_found = TRUE; break ; > case 'Â' : sort_key[i]='A' ; char_found = TRUE; break ; > case 'ä' : sort_key[i]='a' ; char_found = TRUE; break ; > case 'Ä' : sort_key[i]='A' ; char_found = TRUE; break ; > case 'é' : sort_key[i]='e' ; char_found = TRUE; break ; > case 'É' : sort_key[i]='E' ; char_found = TRUE; break ; > case 'è' : sort_key[i]='e' ; char_found = TRUE; break ; > case 'È' : sort_key[i]='E' ; char_found = TRUE; break ; > case 'ê' : sort_key[i]='e' ; char_found = TRUE; break ; > case 'Ê' : sort_key[i]='E' ; char_found = TRUE; break ; > case 'ë' : sort_key[i]='e' ; char_found = TRUE; break ; > case 'Ë' : sort_key[i]='E' ; char_found = TRUE; break ; > case 'î' : sort_key[i]='i' ; char_found = TRUE; break ; > case 'Î' : sort_key[i]='I' ; char_found = TRUE; break ; > case 'ï' : sort_key[i]='i' ; char_found = TRUE; break ; > case 'Ï' : sort_key[i]='I' ; char_found = TRUE; break ; > case 'ô' : sort_key[i]='o' ; char_found = TRUE; break ; > case 'Ô' : sort_key[i]='O' ; char_found = TRUE; break ; > case 'ö' : sort_key[i]='o' ; char_found = TRUE; break ; > case 'Ö' : sort_key[i]='O' ; char_found = TRUE; break ; > case 'û' : sort_key[i]='u' ; char_found = TRUE; break ; > case 'Û' : sort_key[i]='U' ; char_found = TRUE; break ; > case 'ü' : sort_key[i]='u' ; char_found = TRUE; break ; > case 'Ü' : sort_key[i]='U' ; char_found = TRUE; break ; > case 'ç' : sort_key[i]='c' ; char_found = TRUE; break ; > case 'Ç' : sort_key[i]='C' ; char_found = TRUE; break ; > case 'ù' : sort_key[i]='u' ; char_found = TRUE; break ; > case 'Ù' : sort_key[i]='U' ; char_found = TRUE; break ; > case '«' : sort_key[i]=' ' ; char_found = TRUE; break ; > case '»' : sort_key[i]=' ' ; char_found = TRUE; break ; > default : break ; > } > i++ ; > } > > if (!char_found) /* reset actf ? */ > actf[0] = NUL;