$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;
 	    }
