{
int i, ret;
char *ut;
- char *sender_info = NULL, *sender_list = NULL;
+ char *sender_info = NULL;
if (argc != 1)
return -E_COMMAND_SYNTAX;
char *info = senders[i].info();
sender_info = para_strcat(sender_info, info);
free(info);
- sender_list = para_strcat(sender_list, senders[i].name);
- sender_list = para_strcat(sender_list, " ");
}
ut = uptime_str();
ret = rc4_send_va_buffer(rc4c, "up: %s\nplayed: %u\n"
"connections (active/accepted/total): %u/%u/%u\n"
"current loglevel: %s\n"
"supported audio formats: %s\n"
- "supported senders: %s\n"
"%s",
ut, mmd->num_played,
(int)getppid(),
mmd->num_connects,
conf.loglevel_arg,
supported_audio_formats(),
- sender_list,
sender_info
);
mutex_unlock(mmd_mutex);
free(ut);
- free(sender_list);
free(sender_info);
return ret;
}
/* first check user's key bindings */
for (i = 0; i < conf.key_map_given; ++i) {
- char tmp[MAXLINE], *handler, *arg;
+ char *tmp, *handler, *arg;
- strcpy(tmp, conf.key_map_arg[i]);
- if (!split_key_map(tmp, &handler, &arg))
+ tmp = para_strdup(conf.key_map_arg[i]);
+ if (!split_key_map(tmp, &handler, &arg)) {
+ free(tmp);
return;
- if (!strcmp(tmp, km_keyname(c))) {
- if (*handler == 'd') {
- display_cmd(arg);
- return;
- }
- if (*handler == 'x') {
- external_cmd(arg);
- return;
- }
- if (*handler == 'p') {
- client_cmd_cmdline(arg);
- return;
- }
- if (*handler == 'i') {
- int num = find_cmd_byname(arg);
- if (num >= 0)
- command_list[num].handler();
- return;
- }
}
+ if (strcmp(tmp, km_keyname(c))) {
+ free(tmp);
+ continue;
+ }
+ if (*handler == 'd')
+ display_cmd(arg);
+ else if (*handler == 'x')
+ external_cmd(arg);
+ else if (*handler == 'p')
+ client_cmd_cmdline(arg);
+ else if (*handler == 'i') {
+ int num = find_cmd_byname(arg);
+ if (num >= 0)
+ command_list[num].handler();
+ }
+ free(tmp);
}
/* not found, check internal key bindings */
for (i = 0; command_list[i].handler; i++) {