Blame SOURCES/0416-grub-core-gettext-gettext.c-Try-lang.gmo-as-well.patch

f96e0b
From 51441aa016f8bd439752656d43504704b94f701c Mon Sep 17 00:00:00 2001
f96e0b
From: Vladimir 'phcoder' Serbinenko <phcoder@gmail.com>
f96e0b
Date: Sat, 4 May 2013 13:40:52 +0200
f96e0b
Subject: [PATCH 416/482] 	* grub-core/gettext/gettext.c: Try $lang.gmo
f96e0b
 as well.
f96e0b
f96e0b
---
f96e0b
 ChangeLog                   |  4 ++++
f96e0b
 grub-core/gettext/gettext.c | 19 +++++++++++++++----
f96e0b
 2 files changed, 19 insertions(+), 4 deletions(-)
f96e0b
f96e0b
diff --git a/ChangeLog b/ChangeLog
f96e0b
index 7a7d11c..e0576e5 100644
f96e0b
--- a/ChangeLog
f96e0b
+++ b/ChangeLog
f96e0b
@@ -1,5 +1,9 @@
f96e0b
 2013-05-04  Vladimir Serbinenko  <phcoder@gmail.com>
f96e0b
 
f96e0b
+	* grub-core/gettext/gettext.c: Try $lang.gmo as well.
f96e0b
+
f96e0b
+2013-05-04  Vladimir Serbinenko  <phcoder@gmail.com>
f96e0b
+
f96e0b
 	Fix test -a and -o precedence.
f96e0b
 	Reported by: adrian15.
f96e0b
 
f96e0b
diff --git a/grub-core/gettext/gettext.c b/grub-core/gettext/gettext.c
f96e0b
index 569f985..259251d 100644
f96e0b
--- a/grub-core/gettext/gettext.c
f96e0b
+++ b/grub-core/gettext/gettext.c
f96e0b
@@ -355,19 +355,30 @@ grub_mofile_open_lang (struct grub_gettext_context *ctx,
f96e0b
     return grub_errno;
f96e0b
 
f96e0b
   err = grub_mofile_open (ctx, mo_file);
f96e0b
+  grub_free (mo_file);
f96e0b
 
f96e0b
   /* Will try adding .gz as well.  */
f96e0b
   if (err)
f96e0b
     {
f96e0b
-      char *mo_file_old;
f96e0b
       grub_errno = GRUB_ERR_NONE;
f96e0b
-      mo_file_old = mo_file;
f96e0b
-      mo_file = grub_xasprintf ("%s.gz", mo_file);
f96e0b
-      grub_free (mo_file_old);
f96e0b
+      mo_file = grub_xasprintf ("%s%s/%s.mo.gz", part1, part2, locale);
f96e0b
       if (!mo_file)
f96e0b
 	return grub_errno;
f96e0b
       err = grub_mofile_open (ctx, mo_file);
f96e0b
+      grub_free (mo_file);
f96e0b
     }
f96e0b
+
f96e0b
+  /* Will try adding .gmo as well.  */
f96e0b
+  if (err)
f96e0b
+    {
f96e0b
+      grub_errno = GRUB_ERR_NONE;
f96e0b
+      mo_file = grub_xasprintf ("%s%s/%s.gmo", part1, part2, locale);
f96e0b
+      if (!mo_file)
f96e0b
+	return grub_errno;
f96e0b
+      err = grub_mofile_open (ctx, mo_file);
f96e0b
+      grub_free (mo_file);
f96e0b
+    }
f96e0b
+
f96e0b
   return err;
f96e0b
 }
f96e0b
 
f96e0b
-- 
f96e0b
1.8.2.1
f96e0b