-
Notifications
You must be signed in to change notification settings - Fork 49
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
wip/gnome-desktop3: Patch for uselocale() - not provided on NetBSD
- Loading branch information
Showing
5 changed files
with
242 additions
and
1 deletion.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
120 changes: 120 additions & 0 deletions
120
gnome-desktop3/patches/patch-libgnome-desktop_gnome-languages.c
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,120 @@ | ||
$NetBSD$ | ||
|
||
Replace usage of uselocale() - not available on NetBSD | ||
|
||
--- libgnome-desktop/gnome-languages.c.orig 2020-04-29 01:53:29.072934200 +0000 | ||
+++ libgnome-desktop/gnome-languages.c | ||
@@ -303,16 +303,13 @@ language_name_get_codeset_details (const | ||
gboolean *is_utf8) | ||
{ | ||
locale_t locale; | ||
- locale_t old_locale; | ||
const char *codeset = NULL; | ||
|
||
locale = newlocale (LC_CTYPE_MASK, language_name, (locale_t) 0); | ||
if (locale == (locale_t) 0) | ||
return; | ||
|
||
- old_locale = uselocale (locale); | ||
- | ||
- codeset = nl_langinfo (CODESET); | ||
+ codeset = nl_langinfo_l (CODESET, locale); | ||
|
||
if (pcodeset != NULL) { | ||
*pcodeset = g_strdup (codeset); | ||
@@ -324,7 +321,6 @@ language_name_get_codeset_details (const | ||
*is_utf8 = strcmp (normalized_codeset, "UTF-8") == 0; | ||
} | ||
|
||
- uselocale (old_locale); | ||
freelocale (locale); | ||
} | ||
|
||
@@ -703,14 +699,11 @@ get_translated_language (const char *cod | ||
name = NULL; | ||
if (language != NULL) { | ||
const char *translated_name; | ||
- locale_t loc = 0; | ||
- locale_t old_locale = 0; | ||
+ g_autofree char *old_locale = NULL; | ||
|
||
if (locale != NULL) { | ||
- loc = newlocale (LC_MESSAGES_MASK, locale, (locale_t) 0); | ||
- if (loc == (locale_t) 0) | ||
- return NULL; | ||
- old_locale = uselocale (loc); | ||
+ old_locale = g_strdup (setlocale (LC_MESSAGES, NULL)); | ||
+ setlocale (LC_MESSAGES, locale); | ||
} | ||
|
||
if (is_fallback_language (code)) { | ||
@@ -723,8 +716,7 @@ get_translated_language (const char *cod | ||
} | ||
|
||
if (locale != NULL) { | ||
- uselocale (old_locale); | ||
- freelocale (loc); | ||
+ setlocale (LC_MESSAGES, locale); | ||
} | ||
} | ||
|
||
@@ -761,15 +753,12 @@ get_translated_territory (const char *co | ||
name = NULL; | ||
if (territory != NULL) { | ||
const char *translated_territory; | ||
- locale_t loc; | ||
- locale_t old_locale; | ||
+ g_autofree char *old_locale = NULL; | ||
g_autofree char *tmp = NULL; | ||
|
||
if (locale != NULL) { | ||
- loc = newlocale (LC_MESSAGES_MASK, locale, (locale_t) 0); | ||
- if (loc == (locale_t) 0) | ||
- return NULL; | ||
- old_locale = uselocale (loc); | ||
+ old_locale = g_strdup (setlocale (LC_MESSAGES, NULL)); | ||
+ setlocale (LC_MESSAGES, locale); | ||
} | ||
|
||
translated_territory = dgettext ("iso_3166", territory); | ||
@@ -777,8 +766,7 @@ get_translated_territory (const char *co | ||
name = capitalize_utf8_string (tmp); | ||
|
||
if (locale != NULL) { | ||
- uselocale (old_locale); | ||
- freelocale (loc); | ||
+ setlocale (LC_MESSAGES, old_locale); | ||
} | ||
} | ||
|
||
@@ -1355,17 +1343,13 @@ gnome_get_translated_modifier (const cha | ||
{ | ||
char *retval; | ||
GHashTable *modifiers_map; | ||
- locale_t loc; | ||
- locale_t old_locale; | ||
+ g_autofree char *old_locale = NULL; | ||
|
||
g_return_val_if_fail (modifier != NULL, NULL); | ||
|
||
if (translation != NULL) { | ||
- loc = newlocale (LC_MESSAGES_MASK, translation, (locale_t) 0); | ||
- if (loc == (locale_t) 0) { | ||
- return NULL; | ||
- } | ||
- old_locale = uselocale (loc); | ||
+ old_locale = g_strdup (setlocale (LC_MESSAGES, NULL)); | ||
+ setlocale (LC_MESSAGES, translation); | ||
} | ||
|
||
/* Modifiers as listed in glibc's SUPPORTED file: | ||
@@ -1405,8 +1389,7 @@ gnome_get_translated_modifier (const cha | ||
g_hash_table_destroy (modifiers_map); | ||
|
||
if (translation != NULL) { | ||
- uselocale (old_locale); | ||
- freelocale (loc); | ||
+ setlocale (LC_MESSAGES, old_locale); | ||
} | ||
|
||
return retval; |
37 changes: 37 additions & 0 deletions
37
gnome-desktop3/patches/patch-libgnome-desktop_gnome-wall-clock.c
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,37 @@ | ||
$NetBSD$ | ||
|
||
Replace usage of uselocale() - not available on NetBSD | ||
|
||
--- libgnome-desktop/gnome-wall-clock.c.orig 2020-04-29 01:53:29.076934000 +0000 | ||
+++ libgnome-desktop/gnome-wall-clock.c | ||
@@ -279,22 +279,19 @@ translate_time_format_string (const char | ||
const char *locale = g_getenv ("LC_TIME"); | ||
const char *res; | ||
char *sep; | ||
- locale_t old_loc; | ||
- locale_t loc = (locale_t)0; | ||
+ g_autofree char *old_locale = NULL; | ||
|
||
- if (locale) | ||
- loc = newlocale (LC_MESSAGES_MASK, locale, (locale_t)0); | ||
- | ||
- old_loc = uselocale (loc); | ||
+ if (locale) { | ||
+ old_locale = g_strdup (setlocale (LC_MESSAGES, NULL)); | ||
+ setlocale (LC_MESSAGES, locale); | ||
+ } | ||
|
||
sep = strchr (str, '\004'); | ||
res = g_dpgettext (GETTEXT_PACKAGE, str, sep ? sep - str + 1 : 0); | ||
|
||
- uselocale (old_loc); | ||
- | ||
- if (loc != (locale_t)0) | ||
- freelocale (loc); | ||
- | ||
+ if (locale) | ||
+ setlocale (LC_MESSAGES, old_locale); | ||
+ | ||
return res; | ||
} | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,54 @@ | ||
$NetBSD$ | ||
|
||
Disable tests that rely on uselocale() | ||
|
||
--- tests/wall-clock.c.orig 2020-04-29 01:53:29.099934300 +0000 | ||
+++ tests/wall-clock.c | ||
@@ -30,6 +30,7 @@ | ||
#define SPACE " " | ||
#define EN_SPACE " " | ||
|
||
+#if !defined(__NetBSD__) | ||
static void | ||
test_utf8_character (const char *utf8_char, | ||
const char *non_utf8_fallback) | ||
@@ -149,6 +150,7 @@ test_clock_format_setting (void) | ||
uselocale (save_locale); | ||
freelocale (locale); | ||
} | ||
+#endif | ||
|
||
static gboolean | ||
on_notify_clock_timeout (gpointer user_data) | ||
@@ -194,6 +196,7 @@ test_notify_clock (void) | ||
g_object_unref (settings); | ||
} | ||
|
||
+#if !defined(__NetBSD__) | ||
static void | ||
test_weekday_setting (void) | ||
{ | ||
@@ -245,6 +248,7 @@ test_weekday_setting (void) | ||
uselocale (save_locale); | ||
freelocale (locale); | ||
} | ||
+#endif | ||
|
||
int | ||
main (int argc, | ||
@@ -254,11 +258,15 @@ main (int argc, | ||
|
||
g_test_init (&argc, &argv, NULL); | ||
|
||
+#if !defined(__NetBSD__) | ||
g_test_add_func ("/wall-clock/colon-vs-ratio", test_colon_vs_ratio); | ||
g_test_add_func ("/wall-clock/space-vs-en-space", test_space_vs_en_space); | ||
g_test_add_func ("/wall-clock/24h-clock-format", test_clock_format_setting); | ||
+#endif | ||
g_test_add_func ("/wall-clock/notify-clock", test_notify_clock); | ||
+#if !defined(__NetBSD__) | ||
g_test_add_func ("/wall-clock/weekday-setting", test_weekday_setting); | ||
+#endif | ||
|
||
return g_test_run (); | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,27 @@ | ||
$NetBSD$ | ||
|
||
Disable tests that rely on uselocale() | ||
|
||
--- tests/wallclock-reftest.c.orig 2020-04-29 01:53:29.099934300 +0000 | ||
+++ tests/wallclock-reftest.c | ||
@@ -433,6 +433,7 @@ static void | ||
test_ui_file (GFile *file, | ||
gconstpointer user_data) | ||
{ | ||
+#if !defined(__NetBSD__) | ||
char *ui_file, *reference_file, *locale; | ||
cairo_surface_t *ui_image, *reference_image, *diff_image; | ||
GtkStyleProvider *provider; | ||
@@ -494,6 +495,7 @@ test_ui_file (GFile *file, | ||
} | ||
|
||
remove_extra_css (provider); | ||
+#endif | ||
} | ||
|
||
static int | ||
@@ -612,3 +614,4 @@ main (int argc, char **argv) | ||
|
||
return g_test_run (); | ||
} | ||
+ |