netstar pushed a commit to branch master.

http://git.enlightenment.org/apps/evisum.git/commit/?id=619d93b60bd5c335361a4a32fa625c789e9f9bee

commit 619d93b60bd5c335361a4a32fa625c789e9f9bee
Author: Alastair Poole <nets...@gmail.com>
Date:   Mon Feb 8 20:43:51 2021 +0000

    process: as per the manual
    
    Process name can be ((((sjhkedsjkldks)))) !!
---
 src/bin/system/process.c | 20 ++++++++++++--------
 1 file changed, 12 insertions(+), 8 deletions(-)

diff --git a/src/bin/system/process.c b/src/bin/system/process.c
index 184a92c..2aa56a8 100644
--- a/src/bin/system/process.c
+++ b/src/bin/system/process.c
@@ -254,7 +254,8 @@ _stat(const char *path, Stat *st)
 {
    FILE *f;
    char line[4096];
-   int dummy, res = 0;
+   char name[1024];
+   int dummy, len = 0;
    static long tck = 0;
    static int64_t boot_time = 0;
 
@@ -267,14 +268,10 @@ _stat(const char *path, Stat *st)
 
    if (fgets(line, sizeof(line), f))
      {
-        char *end, *start = strchr(line, '(') + 1;
-        end = strchr(line, ')');
 
-        strncpy(st->name, start, end - start);
-        st->name[end - start] = '\0';
-        res = sscanf(end + 2, "%c %d %d %d %d %d %u %u %u %u %u %d %d %d"
+        len = sscanf(line, "%d %s %c %d %d %d %d %d %u %u %u %u %u %d %d %d"
               " %d %d %d %u %u %lld %lu %u %u %u %u %u %u %u %d %d %d %d %u"
-              " %d %d %d %d %d %d %d %d %d",
+              " %d %d %d %d %d %d %d %d %d", &dummy, name,
               &st->state, &st->ppid, &dummy, &dummy, &dummy, &dummy, 
&st->flags,
               &dummy, &dummy, &dummy, &dummy, &st->utime, &st->stime, 
&st->cutime,
               &st->cstime, &st->pri, &st->nice, &st->numthreads, &dummy, 
&st->start_time,
@@ -284,7 +281,14 @@ _stat(const char *path, Stat *st)
      }
    fclose(f);
 
-   if (res != 42) return 0;
+   if (len != 44) return 0;
+
+   len = strlen(name);
+   if (len)
+     {
+        name[len-1] = '\0';
+        snprintf(st->name, sizeof(st->name), "%s", &name[1]);
+     }
 
    if (!tck) tck = sysconf(_SC_CLK_TCK);
 

-- 


Reply via email to