]> arthur.barton.de Git - netdata.git/commitdiff
support for space in apps_groups.conf using a backslash as escape
authorCosta Tsaousis (ktsaou) <costa@tsaousis.gr>
Sun, 28 Feb 2016 11:48:15 +0000 (13:48 +0200)
committerCosta Tsaousis (ktsaou) <costa@tsaousis.gr>
Sun, 28 Feb 2016 11:48:15 +0000 (13:48 +0200)
src/apps_plugin.c

index 39adaba2f0515b3794a2010eb491934700c74760..153687196b09de73a1ed5ec7bffb63052e3c842c 100755 (executable)
@@ -437,17 +437,37 @@ int read_process_groups(const char *name)
 
                struct target *w = NULL;
                long count = 0;
+               int blen = 0;
+               char buffer[4097] = "";
+               buffer[4096] = '\0';
 
                // the process names
                while((p = strsep(&s, " "))) {
                        p = trim(p);
                        if(!p || !*p) continue;
 
-                       struct target *n = get_target(p, w);
+                       strncpy(&buffer[blen], p, 4096 - blen);
+                       blen = strlen(buffer);
+
+                       while(buffer[blen - 1] == '\\') {
+                               buffer[blen - 1] = ' ';
+
+                               if((p = strsep(&s, " ")))
+                                       p = trim(p);
+
+                               if(!p || !*p) p = " ";
+                               strncpy(&buffer[blen], p, 4096 - blen);
+                               blen = strlen(buffer);
+                       }
+
+                       struct target *n = get_target(buffer, w);
                        n->hidden = whidden;
                        n->debug = wdebug;
                        if(!w) w = n;
 
+                       buffer[0] = '\0';
+                       blen = 0;
+
                        count++;
                }