vconsole: updates of keyboard/font loading functions

Change return convention to -errno/==0 and use isempty() instead
of just pointer tests.
This commit is contained in:
Michal Soltys 2016-07-27 00:57:01 +02:00
parent 03044059bf
commit c9d2b3d0f0

View file

@ -119,12 +119,12 @@ static int toggle_utf8_sysfs(bool utf8) {
static int keyboard_load_and_wait(const char *vc, const char *map, const char *map_toggle, bool utf8) {
const char *args[8];
int i = 0, r;
int i = 0;
pid_t pid;
/* An empty map means kernel map */
if (isempty(map))
return 1;
return 0;
args[i++] = KBD_LOADKEYS;
args[i++] = "-q";
@ -149,34 +149,31 @@ static int keyboard_load_and_wait(const char *vc, const char *map, const char *m
_exit(EXIT_FAILURE);
}
r = wait_for_terminate_and_warn(KBD_LOADKEYS, pid, true);
if (r < 0)
return r;
return r == 0;
return wait_for_terminate_and_warn(KBD_LOADKEYS, pid, true);
}
static int font_load_and_wait(const char *vc, const char *font, const char *map, const char *unimap) {
const char *args[9];
int i = 0, r;
int i = 0;
pid_t pid;
/* An empty font means kernel font */
if (isempty(font))
return 1;
/* Any part can be set independently */
if (isempty(font) && isempty(map) && isempty(unimap))
return 0;
args[i++] = KBD_SETFONT;
args[i++] = "-C";
args[i++] = vc;
args[i++] = font;
if (map) {
if (!isempty(map)) {
args[i++] = "-m";
args[i++] = map;
}
if (unimap) {
if (!isempty(unimap)) {
args[i++] = "-u";
args[i++] = unimap;
}
if (!isempty(font))
args[i++] = font;
args[i++] = NULL;
pid = fork();
@ -191,11 +188,7 @@ static int font_load_and_wait(const char *vc, const char *font, const char *map,
_exit(EXIT_FAILURE);
}
r = wait_for_terminate_and_warn(KBD_SETFONT, pid, true);
if (r < 0)
return r;
return r == 0;
return wait_for_terminate_and_warn(KBD_SETFONT, pid, true);
}
/*
@ -333,8 +326,8 @@ int main(int argc, char **argv) {
toggle_utf8_sysfs(utf8);
toggle_utf8(fd, utf8);
font_ok = font_load_and_wait(vc, vc_font, vc_font_map, vc_font_unimap) > 0;
keyboard_ok = keyboard_load_and_wait(vc, vc_keymap, vc_keymap_toggle, utf8) > 0;
font_ok = font_load_and_wait(vc, vc_font, vc_font_map, vc_font_unimap) == 0;
keyboard_ok = keyboard_load_and_wait(vc, vc_keymap, vc_keymap_toggle, utf8) == 0;
/* Only copy the font when we executed setfont successfully */
if (font_copy && font_ok)