tangled
alpha
login
or
join now
pyrox.dev
/
nixpkgs
lol
0
fork
atom
overview
issues
pulls
pipelines
klavaro: patch to fix invalid free
Will Dietz
3 years ago
09c7cf2f
65eed885
+73
2 changed files
expand all
collapse all
unified
split
pkgs
games
klavaro
default.nix
trans_lang_get_similar.patch
+2
pkgs/games/klavaro/default.nix
···
26
substituteInPlace src/tutor.c --replace '"espeak ' '"${espeak}/bin/espeak '
27
'';
28
0
0
29
postInstall = ''
30
wrapProgram $out/bin/klavaro \
31
--prefix LD_LIBRARY_PATH : $out/lib
···
26
substituteInPlace src/tutor.c --replace '"espeak ' '"${espeak}/bin/espeak '
27
'';
28
29
+
patches = [ ./trans_lang_get_similar.patch ];
30
+
31
postInstall = ''
32
wrapProgram $out/bin/klavaro \
33
--prefix LD_LIBRARY_PATH : $out/lib
+71
pkgs/games/klavaro/trans_lang_get_similar.patch
···
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
···
1
+
--- a/src/translation.c (revision 137)
2
+
+++ b/src/translation.c (working copy)
3
+
@@ -257,23 +257,23 @@
4
+
* Private auxiliar function
5
+
*/
6
+
static gboolean
7
+
-trans_lang_get_similar (gchar * test)
8
+
+trans_lang_get_similar (gchar ** test)
9
+
{
10
+
gint i;
11
+
gchar aux_code_2[3];
12
+
13
+
/* Prefer C over en_GB for English variants other than en_GB. (Debian patch 02) */
14
+
- if (g_str_has_prefix (test, "en"))
15
+
+ if (g_str_has_prefix (*test, "en"))
16
+
{
17
+
- g_free (test);
18
+
- test = g_strdup ("C");
19
+
+ g_free (*test);
20
+
+ *test = g_strdup ("C");
21
+
return (TRUE);
22
+
}
23
+
24
+
- if (g_str_equal (test, "C"))
25
+
+ if (g_str_equal (*test, "C"))
26
+
return TRUE;
27
+
28
+
- strncpy (aux_code_2, test, 2);
29
+
+ strncpy (aux_code_2, *test, 2);
30
+
aux_code_2[2] = '\0';
31
+
32
+
for (i = 0; i < lang_num; i++)
33
+
@@ -280,15 +280,15 @@
34
+
{
35
+
if (strstr (lang[i].code, aux_code_2))
36
+
{
37
+
- g_free (test);
38
+
- test = g_strdup (lang[i].code);
39
+
+ g_free (*test);
40
+
+ *test = g_strdup (lang[i].code);
41
+
break;
42
+
}
43
+
}
44
+
- if (i == lang_num && g_str_has_prefix (test, "en"))
45
+
+ if (i == lang_num && g_str_has_prefix (*test, "en"))
46
+
{
47
+
- g_free (test);
48
+
- test = g_strdup ("C");
49
+
+ g_free (*test);
50
+
+ *test = g_strdup ("C");
51
+
return (TRUE);
52
+
}
53
+
return (i == lang_num ? FALSE : TRUE);
54
+
@@ -356,7 +356,7 @@
55
+
lang_ok = (i == 0 ? TRUE : FALSE);
56
+
break;
57
+
}
58
+
- lang_ok = trans_lang_get_similar (tmp_code);
59
+
+ lang_ok = trans_lang_get_similar (&tmp_code);
60
+
if (lang_ok == TRUE)
61
+
break;
62
+
g_free (tmp_code);
63
+
@@ -368,7 +368,7 @@
64
+
tmp_code = g_win32_getlocale ();
65
+
lang_ok = trans_lang_is_available (tmp_code);
66
+
if (lang_ok == FALSE)
67
+
- lang_ok = trans_lang_get_similar (tmp_code);
68
+
+ lang_ok = trans_lang_get_similar (&tmp_code);
69
+
#endif
70
+
}
71
+
if (tmp_code == NULL)