Fall back to the default latin composition table. - sam - An updated version of the sam text editor.
(HTM) git clone git://vernunftzentrum.de/sam.git
(DIR) Log
(DIR) Files
(DIR) Refs
(DIR) LICENSE
---
(DIR) commit 613a36b923aee53922ad62bbf78a0023c229af75
(DIR) parent c39a4076c24b965ae6d99a9cca2a01a014e109eb
(HTM) Author: Rob King <jking@deadpixi.com>
Date: Thu, 11 Aug 2016 23:23:12 -0500
Fall back to the default latin composition table.
Diffstat:
libXg/latin1.c | 30 +++++++++++++++---------------
1 file changed, 15 insertions(+), 15 deletions(-)
---
(DIR) diff --git a/libXg/latin1.c b/libXg/latin1.c
@@ -226,6 +226,7 @@ struct latin latintab[] = {
0, 0,
};
+
struct latin *mappings = NULL;
void
@@ -237,6 +238,10 @@ freelatin(void)
void
initlatin(void)
{
+ mappings = calloc(MAPPING_MAX + 1, sizeof(struct latin));
+ if (mappings)
+ atexit(freelatin);
+
FILE *keyboard = NULL;
if (getenv("HOME")){
char path[1024] = {0};
@@ -244,17 +249,8 @@ initlatin(void)
keyboard = fopen(path, "r");
}
- if (!keyboard){
- mappings = latintab;
- return;
- }
-
- mappings = calloc(MAPPING_MAX + 1, sizeof(struct latin));
- if (!mappings){
- mappings = latintab;
- fclose(keyboard);
- return;
- }
+ if (!keyboard)
+ return;
int j = 0;
while (j < MAPPING_MAX){
@@ -269,7 +265,6 @@ initlatin(void)
}
fclose(keyboard);
- atexit(freelatin);
}
long
@@ -277,9 +272,14 @@ latin1(unsigned char *k)
{
struct latin *l;
- for(l=mappings; l->l; l++)
- if(k[0]==l->c[0] && k[1]==l->c[1])
- return l->l;
+ for (l = mappings; l->l; l++)
+ if (k[0] == l->c[0] && k[1] == l->c[1])
+ return l->l;
+
+ for (l = latintab; l->l; l++)
+ if (k[0] == l->c[0] && k[1] == l->c[1])
+ return l->l;
+
return -1;
}