diff options
author | Dave Davenport <qball@gmpclient.org> | 2016-03-05 11:08:32 +0100 |
---|---|---|
committer | Dave Davenport <qball@gmpclient.org> | 2016-03-05 11:08:32 +0100 |
commit | 72dfe2ad4c37d98b789019bb0f2b2bd3fc9e8971 (patch) | |
tree | e05391a8b7d6e5293b4f5f9801b061282a1fff99 /source/keyb.c | |
parent | 881ca572df59e2b39e4a123af68e46068b35a424 (diff) |
Propagate error down, show dialog.
Fix positioning dialog.
Diffstat (limited to 'source/keyb.c')
-rw-r--r-- | source/keyb.c | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/source/keyb.c b/source/keyb.c index db4fc515..9916a276 100644 --- a/source/keyb.c +++ b/source/keyb.c @@ -100,7 +100,7 @@ void setup_abe ( void ) } } -void parse_keys_abe ( void ) +gboolean parse_keys_abe ( void ) { for ( int iter = 0; iter < NUM_ABE; iter++ ) { char *keystr = g_strdup ( abe[iter].keystr ); @@ -114,12 +114,16 @@ void parse_keys_abe ( void ) for ( char *entry = strtok_r ( keystr, ",", &sp ); entry != NULL; entry = strtok_r ( NULL, ",", &sp ) ) { abe[iter].kb = g_realloc ( abe[iter].kb, ( abe[iter].num_bindings + 1 ) * sizeof ( KeyBinding ) ); KeyBinding *kb = &( abe[iter].kb[abe[iter].num_bindings] ); - x11_parse_key ( entry, &( kb->modmask ), &( kb->keysym ) ); + if ( !x11_parse_key ( entry, &( kb->modmask ), &( kb->keysym ) ) ) { + g_free ( keystr ); + return FALSE; + } abe[iter].num_bindings++; } g_free ( keystr ); } + return TRUE; } void cleanup_abe ( void ) |