$NetBSD: patch-ae,v 1.1 2000/06/30 17:07:36 danw Exp $ --- intl/explodename.c.orig Fri Jun 23 03:21:26 2000 +++ intl/explodename.c Fri Jun 23 03:50:55 2000 @@ -43,6 +43,17 @@ /* @@ end of prolog @@ */ +char * +_nl_find_language (const char *name) +{ + while (name[0] != '\0' && name[0] != '_' && name[0] != '@' + && name[0] != '+' && name[0] != ',') + ++name; + + return (char *) name; +} + + int _nl_explode_name (name, language, modifier, territory, codeset, normalized_codeset, special, sponsor, revision) @@ -51,7 +62,7 @@ const char **modifier; const char **territory; const char **codeset; - const char **normalized_codeset; + char **normalized_codeset; const char **special; const char **sponsor; const char **revision; @@ -74,9 +85,7 @@ mask = 0; syntax = undecided; *language = cp = name; - while (cp[0] != '\0' && cp[0] != '_' && cp[0] != '@' - && cp[0] != '+' && cp[0] != ',') - ++cp; + cp = _nl_find_language (*language); if (*language == cp) /* This does not make sense: language has to be specified. Use @@ -111,7 +120,7 @@ *normalized_codeset = _nl_normalize_codeset (*codeset, cp - *codeset); if (strcmp (*codeset, *normalized_codeset) == 0) - free ((char *) *normalized_codeset); + free (*normalized_codeset); else mask |= XPG_NORM_CODESET; }