diff options
| author | iceyrazor <iceyrazor@mailfence.com> | 2026-02-27 20:24:10 -0600 |
|---|---|---|
| committer | iceyrazor <iceyrazor@mailfence.com> | 2026-02-27 20:24:10 -0600 |
| commit | b6a561f81c569ccc63423dc69eca4bc082ea60e9 (patch) | |
| tree | 3bb222fc93b3a53f7398450d820e80ca73fcf5c8 /src/lsh_main_func.c | |
| parent | 1eb83090ac4b5a31b352a843c85304df9af1f3e0 (diff) | |
better pop
fixed poping quotes that shouldnt be popdddd
Diffstat (limited to 'src/lsh_main_func.c')
| -rw-r--r-- | src/lsh_main_func.c | 35 |
1 files changed, 4 insertions, 31 deletions
diff --git a/src/lsh_main_func.c b/src/lsh_main_func.c index 8a3aade..aa16cbd 100644 --- a/src/lsh_main_func.c +++ b/src/lsh_main_func.c @@ -135,6 +135,8 @@ char * strtok_quotes(char *token){ parse_args_last_p[0]='\0'; parse_args_last_p=&parse_args_last_p[1]; return_char=&return_char[1]; + } else { + pop(return_char,ch_i); } ch_i++; } @@ -153,8 +155,10 @@ char * strtok_quotes(char *token){ } else if(parse_args_last_p[ch_i+1]==' '){ parse_args_last_p[ch_i]='\0'; parse_args_last_p = &parse_args_last_p[ch_i+2]; + pop(return_char,ch_i); return return_char; } + pop(return_char,ch_i); } } } else { @@ -171,36 +175,6 @@ char * strtok_quotes(char *token){ return return_char; } -char *pop_quotes(char *token){ - int ch_i=0; - char *right=(char*)malloce(sizeof(char)*strlen(token)+1); - char *ret_token=(char*)malloce(sizeof(char)*strlen(token)+1); - strcpy(ret_token,token); - - while(ch_i<strlen(ret_token)){ - if(ret_token[ch_i]=='\0'){ - free(right); - free(token); - return ret_token; - } - while(ret_token[ch_i]=='"' || ret_token[ch_i]=='\''){ - if(ret_token[ch_i-1]=='\\'){ - strcpy(right,&ret_token[ch_i]); - ret_token[ch_i-1]='\0'; - strcat(ret_token,right); - break; - } - strcpy(right,&ret_token[ch_i+1]); - ret_token[ch_i]='\0'; - strcat(ret_token,right); - } - ch_i++; - } - free(right); - free(token); - return ret_token; -} - #define LSH_TOK_BUFSIZE 64 char **lsh_split_line(char *line) { @@ -211,7 +185,6 @@ char **lsh_split_line(char *line) token = strtok_quotes(line); while (token != NULL) { token = handle_vars(token); - token = pop_quotes(token); tokens[position] = token; position++; |
