fixed #2
skip zero or 1 allocations and uninitialized conditional jump in hotkey_list_add() now the whole output of die() is coloured
This commit is contained in:
parent
689e6005ac
commit
6a3e033b68
11
hkd.c
11
hkd.c
@ -35,7 +35,7 @@
|
|||||||
#define green(str) (ANSI_COLOR_GREEN str ANSI_COLOR_RESET)
|
#define green(str) (ANSI_COLOR_GREEN str ANSI_COLOR_RESET)
|
||||||
#define red(str) (ANSI_COLOR_RED str ANSI_COLOR_RESET)
|
#define red(str) (ANSI_COLOR_RED str ANSI_COLOR_RESET)
|
||||||
#define test_bit(yalv, abs_b) ((((char *)abs_b)[yalv/8] & (1<<yalv%8)) > 0)
|
#define test_bit(yalv, abs_b) ((((char *)abs_b)[yalv/8] & (1<<yalv%8)) > 0)
|
||||||
#define die(str) {perror(red(str)); exit(errno);}
|
#define die(str) {perror(ANSI_COLOR_RED str); fputs(ANSI_COLOR_RESET, stderr); exit(errno);}
|
||||||
#define array_size(val) (val ? sizeof(val)/sizeof(val[0]) : 0)
|
#define array_size(val) (val ? sizeof(val)/sizeof(val[0]) : 0)
|
||||||
#define array_size_const(val) ((int)(sizeof(val)/sizeof(val[0])))
|
#define array_size_const(val) ((int)(sizeof(val)/sizeof(val[0])))
|
||||||
|
|
||||||
@ -457,7 +457,8 @@ void exec_command (char *command)
|
|||||||
case 0:
|
case 0:
|
||||||
/* This is the child process, execute the command */
|
/* This is the child process, execute the command */
|
||||||
execvp(result.we_wordv[0], result.we_wordv);
|
execvp(result.we_wordv[0], result.we_wordv);
|
||||||
die("Could not run command");
|
fprintf(stderr, red("%s : %s\n"), command, strerror(errno));
|
||||||
|
exit(errno);
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
while (waitpid(cpid, NULL, WNOHANG) == -1) {}
|
while (waitpid(cpid, NULL, WNOHANG) == -1) {}
|
||||||
@ -592,13 +593,17 @@ void hotkey_list_destroy (struct hotkey_list_e *head)
|
|||||||
void hotkey_list_add (struct hotkey_list_e *head, struct key_buffer *kb, char *cmd, int f)
|
void hotkey_list_add (struct hotkey_list_e *head, struct key_buffer *kb, char *cmd, int f)
|
||||||
{
|
{
|
||||||
struct hotkey_list_e *tmp;
|
struct hotkey_list_e *tmp;
|
||||||
|
int size;
|
||||||
|
if (!(size = strlen(cmd)))
|
||||||
|
return;
|
||||||
if (!(tmp = malloc(sizeof(struct hotkey_list_e))))
|
if (!(tmp = malloc(sizeof(struct hotkey_list_e))))
|
||||||
die("memory allocation failed in hotkey_list_add()");
|
die("memory allocation failed in hotkey_list_add()");
|
||||||
if (!(tmp->command = malloc(sizeof(cmd))))
|
if (!(tmp->command = malloc(size + 1)))
|
||||||
die("memory allocation failed in hotkey_list_add()");
|
die("memory allocation failed in hotkey_list_add()");
|
||||||
strcpy(tmp->command, cmd);
|
strcpy(tmp->command, cmd);
|
||||||
tmp->kb = *kb;
|
tmp->kb = *kb;
|
||||||
tmp->fuzzy = f;
|
tmp->fuzzy = f;
|
||||||
|
tmp->next = NULL;
|
||||||
|
|
||||||
if (head) {
|
if (head) {
|
||||||
for (; head->next; head = head->next);
|
for (; head->next; head = head->next);
|
||||||
|
Loading…
Reference in New Issue
Block a user