From 3da9fb537a0711ee12f66421703e5529ea5fca6a Mon Sep 17 00:00:00 2001
From: Dan McGee <dan@archlinux.org>
Date: Tue, 13 Feb 2007 01:50:18 +0000
Subject: Fixed locale setting issues in the frontend, and fixed description of
 --cachedir.

---
 src/pacman/pacman.c | 16 +++++++++-------
 1 file changed, 9 insertions(+), 7 deletions(-)

(limited to 'src')

diff --git a/src/pacman/pacman.c b/src/pacman/pacman.c
index eebbdaaa..31cd75a8 100644
--- a/src/pacman/pacman.c
+++ b/src/pacman/pacman.c
@@ -155,7 +155,7 @@ static void usage(int op, char *myname)
 		printf(_("  -v, --verbose        be verbose\n"));
 		printf(_("  -r, --root <path>    set an alternate installation root\n"));
 		printf(_("  -b, --dbpath <path>  set an alternate database location\n"));
-		printf(_("      --cachedir <dir> set an alternate database location\n"));
+		printf(_("      --cachedir <dir> set an alternate package cache location\n"));
 	}
 }
 
@@ -435,13 +435,15 @@ int main(int argc, char *argv[])
 	signal(SIGSEGV, cleanup);
 
 	/* i18n init */
-	lang=getenv("LC_ALL");
-	if(lang==NULL || lang[0]=='\0')
-		lang=getenv("LC_MESSAGES");
-	if (lang==NULL || lang[0]=='\0')
-		lang=getenv("LANG");
+	lang = setlocale(LC_ALL, "");
+	/* if setlocale returns null, the locale was invalid- override it */
+	if (lang == NULL) {
+		lang = "C";
+		setlocale(LC_ALL, "C");
+		setenv("LC_ALL", lang, 1);
+		MSG(NL, _("warning: default locale is invalid; using default \"C\" locale"));
+	}
 
-	setlocale(LC_ALL, lang);
 	/* workaround for tr_TR */
 	if(lang && !strcmp(lang, "tr_TR"))
 		setlocale(LC_CTYPE, "C");
-- 
cgit v1.2.3-2-g168b