support for space in apps_groups.conf using a backslash as escape
Costa Tsaousis (ktsaou) committed
Feb 28, 2016 at 13:48 UTC
68b1cb1bd3f792d7271d6a6c2b62f7c325e43773
1 file changed
+21
-1
src/apps_plugin.c
+21
-1
@@ -437,17 +437,37 @@ int read_process_groups(const char *name)
437
438
struct target *w = NULL;
439
long count = 0;
440
+ int blen = 0;
441
+ char buffer[4097] = "";
442
+ buffer[4096] = '\0';
443
444
// the process names
445
while((p = strsep(&s, " "))) {
446
p = trim(p);
447
if(!p || !*p) continue;
448
446
- struct target *n = get_target(p, w);
449
+ strncpy(&buffer[blen], p, 4096 - blen);
450
+ blen = strlen(buffer);
451
+
452
+ while(buffer[blen - 1] == '\\') {
453
+ buffer[blen - 1] = ' ';
454
+
455
+ if((p = strsep(&s, " ")))
456
+ p = trim(p);
457
+
458
+ if(!p || !*p) p = " ";
459
+ strncpy(&buffer[blen], p, 4096 - blen);
460
+ blen = strlen(buffer);
461
+ }
462
+
463
+ struct target *n = get_target(buffer, w);
464
n->hidden = whidden;
465
n->debug = wdebug;
466
if(!w) w = n;
467
468
+ buffer[0] = '\0';
469
+ blen = 0;
470
+
471
count++;
472
}
473