netstar pushed a commit to branch master.

http://git.enlightenment.org/apps/evisum.git/commit/?id=3b82d992ac34e7be7bdbb8ac39c064f2416b2948

commit 3b82d992ac34e7be7bdbb8ac39c064f2416b2948
Author: Alastair Poole <[email protected]>
Date:   Fri May 8 22:14:01 2020 +0100

    proc: fix freebsd proc argument.
---
 src/bin/process.c | 34 ++++++++++++++++++++++------------
 1 file changed, 22 insertions(+), 12 deletions(-)

diff --git a/src/bin/process.c b/src/bin/process.c
index 0d12298..f6987c1 100644
--- a/src/bin/process.c
+++ b/src/bin/process.c
@@ -809,13 +809,18 @@ _process_list_freebsd_get(void)
           {
              if (args[0])
                {
-                  char *base = basename(args[0]);
-                  if (base && base != args[0])
+                  char *base = strdup(args[0]);
+                  if (base)
                     {
-                       snprintf(name, sizeof(name), "%s", base);
-                       char *spc = strchr(name, ' ');
-                       if (!spc)
-                         have_command = EINA_TRUE;
+                       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();
@@ -867,13 +872,18 @@ _cmd_get(Proc_Info *p, struct kinfo_proc *kp)
           {
              if (args[0])
                {
-                  char *base = basename(args[0]);
-                  if (base && base != args[0])
+                  char *base = strdup(args[0]);
+                  if (base)
                     {
-                       snprintf(name, sizeof(name), "%s", base);
-                       char *spc = strchr(name, ' ');
-                       if (!spc)
-                         have_command = EINA_TRUE;
+                       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();

-- 


Reply via email to