proc_view: defense

This commit is contained in:
Alastair Poole 2020-09-12 14:31:01 +01:00
parent 8f3a80474a
commit 19f7d5cf0b
1 changed files with 21 additions and 22 deletions

View File

@ -326,12 +326,17 @@ _thread_info_set(Ui_Process *ui, Proc_Info *proc)
EINA_LIST_FREE(threads, t) EINA_LIST_FREE(threads, t)
{ {
Thread_Info *prev = elm_object_item_data_get(it); if (!it)
if (prev) _item_del(t, NULL);
_item_del(prev, NULL); else
elm_object_item_data_set(it, t); {
elm_genlist_item_update(it); Thread_Info *prev = elm_object_item_data_get(it);
it = elm_genlist_item_next_get(it); if (prev)
_item_del(prev, NULL);
elm_object_item_data_set(it, t);
elm_genlist_item_update(it);
it = elm_genlist_item_next_get(it);
}
} }
eina_lock_release(&_lock); eina_lock_release(&_lock);
} }
@ -929,7 +934,7 @@ _btn_info_clicked_cb(void *data, Evas_Object *obj EINA_UNUSED,
void *event_info EINA_UNUSED) void *event_info EINA_UNUSED)
{ {
Ui_Process *ui; Ui_Process *ui;
char *cmd, *t; Eina_List *lines = NULL;
ui = data; ui = data;
@ -938,16 +943,16 @@ _btn_info_clicked_cb(void *data, Evas_Object *obj EINA_UNUSED,
if (ui->info_init) return; if (ui->info_init) return;
cmd = t = strdup(ui->selected_cmd); if (ui->selected_cmd && ui->selected_cmd[0] && !strchr(ui->selected_cmd, ' '))
while (!isspace(*t)) t++; lines =_exe_response(eina_slstr_printf("man %s | col -b", ui->selected_cmd));
if (isspace(*t)) *t = '\0';
Eina_List *lines = if (!lines)
_exe_response(eina_slstr_printf("man %s | col -b", cmd)); {
elm_object_text_set(ui->entry_info,
free(cmd); eina_slstr_printf(_("No documentation found for %s."),
ui->selected_cmd));
if (lines) }
else
{ {
char *line; char *line;
int n = 1; int n = 1;
@ -966,12 +971,6 @@ _btn_info_clicked_cb(void *data, Evas_Object *obj EINA_UNUSED,
elm_object_text_set(ui->entry_info, eina_strbuf_string_get(buf)); elm_object_text_set(ui->entry_info, eina_strbuf_string_get(buf));
eina_strbuf_free(buf); eina_strbuf_free(buf);
} }
else
{
elm_object_text_set(ui->entry_info,
eina_slstr_printf(_("No documentation found for %s."),
ui->selected_cmd));
}
ui->info_init = EINA_TRUE; ui->info_init = EINA_TRUE;
} }