diff options
author | Carsten Haitzler <raster@rasterman.com> | 2012-08-08 16:26:03 +0000 |
---|---|---|
committer | Carsten Haitzler <raster@rasterman.com> | 2012-08-08 16:26:03 +0000 |
commit | 3bcdd78bca37a770d388b6c4777b147331ac003a (patch) | |
tree | be00beaf54982b73f5ed12438fb545f25086801c /legacy/efreet | |
parent | cfe74312560ebf03d7cb7fe56faa52e81fd1dac0 (diff) |
fix efreet desktop exec to not duplicate the command n times in the
list when adding n params to a single cmd.
SVN revision: 75019
Diffstat (limited to 'legacy/efreet')
-rw-r--r-- | legacy/efreet/src/lib/efreet_desktop_command.c | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/legacy/efreet/src/lib/efreet_desktop_command.c b/legacy/efreet/src/lib/efreet_desktop_command.c index 8a615b6ce4..bf97f8fdfa 100644 --- a/legacy/efreet/src/lib/efreet_desktop_command.c +++ b/legacy/efreet/src/lib/efreet_desktop_command.c | |||
@@ -351,12 +351,14 @@ efreet_desktop_command_build(Efreet_Desktop_Command *command) | |||
351 | int size = PATH_MAX; | 351 | int size = PATH_MAX; |
352 | int file_added = 0; | 352 | int file_added = 0; |
353 | Efreet_Desktop_Command_File *file = eina_list_data_get(l); | 353 | Efreet_Desktop_Command_File *file = eina_list_data_get(l); |
354 | int single; | ||
354 | 355 | ||
355 | exec = malloc(size); | 356 | exec = malloc(size); |
356 | if (!exec) goto error; | 357 | if (!exec) goto error; |
357 | p = command->desktop->exec; | 358 | p = command->desktop->exec; |
358 | len = 0; | 359 | len = 0; |
359 | 360 | ||
361 | single = 0; | ||
360 | while (*p) | 362 | while (*p) |
361 | { | 363 | { |
362 | if (len >= size - 1) | 364 | if (len >= size - 1) |
@@ -385,6 +387,7 @@ efreet_desktop_command_build(Efreet_Desktop_Command *command) | |||
385 | &len, file, *p); | 387 | &len, file, *p); |
386 | if (!exec) goto error; | 388 | if (!exec) goto error; |
387 | file_added = 1; | 389 | file_added = 1; |
390 | single = 1; | ||
388 | } | 391 | } |
389 | break; | 392 | break; |
390 | case 'F': | 393 | case 'F': |
@@ -395,6 +398,7 @@ efreet_desktop_command_build(Efreet_Desktop_Command *command) | |||
395 | { | 398 | { |
396 | exec = efreet_desktop_command_append_multiple(exec, &size, | 399 | exec = efreet_desktop_command_append_multiple(exec, &size, |
397 | &len, command, *p); | 400 | &len, command, *p); |
401 | fprintf(stderr, "EXE: '%s'\n", exec); | ||
398 | if (!exec) goto error; | 402 | if (!exec) goto error; |
399 | file_added = 1; | 403 | file_added = 1; |
400 | } | 404 | } |
@@ -465,8 +469,11 @@ efreet_desktop_command_build(Efreet_Desktop_Command *command) | |||
465 | #endif | 469 | #endif |
466 | exec[len++] = '\0'; | 470 | exec[len++] = '\0'; |
467 | 471 | ||
468 | execs = eina_list_append(execs, exec); | 472 | if ((single) || (!execs)) |
469 | exec = NULL; | 473 | { |
474 | execs = eina_list_append(execs, exec); | ||
475 | exec = NULL; | ||
476 | } | ||
470 | 477 | ||
471 | /* If no file was added, then the Exec field doesn't contain any file | 478 | /* If no file was added, then the Exec field doesn't contain any file |
472 | * fields (fFuUdDnN). We only want to run the app once in this case. */ | 479 | * fields (fFuUdDnN). We only want to run the app once in this case. */ |