12345678910111213141516171819202122232425262728293031323334353637 |
- --- procps-3.2.8/ps/output.c 2010-05-18 06:00:18.000000000 +0200
- +++ procps-3.2.8.lennart/ps/output.c 2010-05-18 05:59:46.000000000 +0200
- @@ -1109,7 +1109,7 @@
- static int pr_cgroup(char *restrict const outbuf, const proc_t *restrict const pp){
- char filename[48];
- FILE *fd;
- - int counter = 0;
- + int counter = 0, last_begin = 0, slash = 0;
- int c;
- int is_cgroup = 0;
-
- @@ -1121,15 +1121,22 @@
- if (is_cgroup == 0) {
- if (c == ':') {
- is_cgroup = 1;
- + slash = 0;
- if (counter>0)
- outbuf[counter++]=';';
- }
- }else
- - if ((c == '\n') || (c == '\0'))
- - is_cgroup = 0;
- + if ((c == '\n') || (c == '\0')){
- + if (slash) /* if the last char was a / this process is in the root cgroup which we should suppress */
- + counter = last_begin;
- else
- + last_begin = counter;
- + is_cgroup = 0;
- + } else {
- + slash = c == '/';
- outbuf[counter++]=c;
- }
- + }
- outbuf[counter]='\0';
- close(fd);
- if (counter>0)
|