netstar pushed a commit to branch master. http://git.enlightenment.org/apps/evisum.git/commit/?id=92e72dfec1e232684498ad9a9350806031fa0b7b
commit 92e72dfec1e232684498ad9a9350806031fa0b7b Author: Alastair Poole <[email protected]> Date: Fri May 15 14:27:34 2020 +0100 proc: remove duplicate code --- src/bin/system/process.c | 131 ++++++++++++++++++----------------------------- 1 file changed, 50 insertions(+), 81 deletions(-) diff --git a/src/bin/system/process.c b/src/bin/system/process.c index 24172dd..154c68f 100644 --- a/src/bin/system/process.c +++ b/src/bin/system/process.c @@ -820,6 +820,55 @@ _process_list_freebsd_fallback_get(void) return list; } +static void +_cmd_get(Proc_Info *p, struct kinfo_proc *kp) +{ + kvm_t * kern; + char **args; + char name[1024]; + Eina_Bool have_command = EINA_FALSE; + + kern = kvm_open(NULL, "/dev/null", NULL, O_RDONLY, "kvm_open"); + if (kern != NULL) + { + if ((args = kvm_getargv(kern, kp, sizeof(name)-1))) + { + if (args[0]) + { + char *base = strdup(args[0]); + if (base) + { + char *spc = strchr(base, ' '); + if (spc) *spc = '\0'; + + if (ecore_file_exists(base)) + { + snprintf(name, sizeof(name), "%s", basename(base)); + have_command = EINA_TRUE; + } + free(base); + } + } + Eina_Strbuf *buf = eina_strbuf_new(); + for (int i = 0; args[i] != NULL; i++) + { + eina_strbuf_append(buf, args[i]); + if (args[i + 1]) + eina_strbuf_append(buf, " "); + } + p->arguments = eina_strbuf_string_steal(buf); + eina_strbuf_free(buf); + } + kvm_close(kern); + } + + if (!have_command) + snprintf(name, sizeof(name), "%s", kp->ki_comm); + + p->command = strdup(name); +} + + static Eina_List * _process_list_freebsd_get(void) { @@ -864,39 +913,7 @@ _process_list_freebsd_get(void) if (p->cpu_id == -1) p->cpu_id = kp->ki_lastcpu; - if ((args = kvm_getargv(kern, kp, sizeof(name)-1))) - { - if (args[0]) - { - char *base = strdup(args[0]); - if (base) - { - char *spc = strchr(base, ' '); - if (spc) *spc = '\0'; - - if (ecore_file_exists(base)) - { - snprintf(name, sizeof(name), "%s", basename(base)); - have_command = EINA_TRUE; - } - free(base); - } - } - Eina_Strbuf *buf = eina_strbuf_new(); - for (int i = 0; args[i] != NULL; i++) - { - eina_strbuf_append(buf, args[i]); - if (args[i + 1]) - eina_strbuf_append(buf, " "); - } - p->arguments = eina_strbuf_string_steal(buf); - eina_strbuf_free(buf); - } - - if (!have_command) - snprintf(name, sizeof(name), "%s", kp->ki_comm); - - p->command = strdup(name); + _cmd_get(p, kp); usage = &kp->ki_rusage; p->cpu_time = (usage->ru_utime.tv_sec * 1000000) + @@ -919,54 +936,6 @@ _process_list_freebsd_get(void) return list; } -static void -_cmd_get(Proc_Info *p, struct kinfo_proc *kp) -{ - kvm_t * kern; - char **args; - char name[1024]; - Eina_Bool have_command = EINA_FALSE; - - kern = kvm_open(NULL, "/dev/null", NULL, O_RDONLY, "kvm_open"); - if (kern != NULL) - { - if ((args = kvm_getargv(kern, kp, sizeof(name)-1))) - { - if (args[0]) - { - char *base = strdup(args[0]); - if (base) - { - char *spc = strchr(base, ' '); - if (spc) *spc = '\0'; - - if (ecore_file_exists(base)) - { - snprintf(name, sizeof(name), "%s", basename(base)); - have_command = EINA_TRUE; - } - free(base); - } - } - Eina_Strbuf *buf = eina_strbuf_new(); - for (int i = 0; args[i] != NULL; i++) - { - eina_strbuf_append(buf, args[i]); - if (args[i + 1]) - eina_strbuf_append(buf, " "); - } - p->arguments = eina_strbuf_string_steal(buf); - eina_strbuf_free(buf); - } - kvm_close(kern); - } - - if (!have_command) - snprintf(name, sizeof(name), "%s", kp->ki_comm); - - p->command = strdup(name); -} - static Proc_Info * _proc_info_by_pid_fallback(int pid) { --
