summaryrefslogtreecommitdiff
path: root/draw.c
diff options
context:
space:
mode:
Diffstat (limited to 'draw.c')
-rw-r--r--draw.c13
1 files changed, 11 insertions, 2 deletions
diff --git a/draw.c b/draw.c
index f3ee0b2..2e24a03 100644
--- a/draw.c
+++ b/draw.c
@@ -361,16 +361,25 @@ char *get_launch(){
char *path = get_epath(e[e_hover]);
int mode = get_compmode();
char *full_command = malloc(sizeof(char) * BUF_LEN);
+ bool quote_flag_p = (program[0] == '"' ? false : true);
bool quote_flag_f = (flags[0] == '"' ? false : true);
bool quote_flag_e = (path[0] == '"' ? false : true);
+ full_command[0] = '\0';
+
//if the entry is an executable file (doesn't have a launcher)
- if(!(strcmp(program, "./"))) return path;
+ if(!(strcmp(program, "./"))){
+ if(quote_flag_e) strcat(full_command, "\"");
+ strcat(full_command, path);
+ if(quote_flag_e) strcat(full_command, "\"");
+ return full_command;
+ }
else{
if(mode != 0) path = compat_convert(path, mode);
- full_command[0] = '\0';
+ if(quote_flag_p) strcat(full_command, "\"");
strcat(full_command, program);
+ if(quote_flag_p) strcat(full_command, "\"");
if(flags[0] !='\0'){
strcat(full_command, " ");
if(quote_flag_f) strcat(full_command, "\"");