From b6a561f81c569ccc63423dc69eca4bc082ea60e9 Mon Sep 17 00:00:00 2001 From: iceyrazor Date: Fri, 27 Feb 2026 20:24:10 -0600 Subject: better pop fixed poping quotes that shouldnt be popdddd --- src/helper_functions.c | 16 ++++++++++++++++ src/lsh_main_func.c | 35 ++++------------------------------- 2 files changed, 20 insertions(+), 31 deletions(-) diff --git a/src/helper_functions.c b/src/helper_functions.c index c1931fd..162cf45 100644 --- a/src/helper_functions.c +++ b/src/helper_functions.c @@ -16,6 +16,22 @@ void *malloce(size_t size){ return mal; } +char *pop(char *token, int ch_i){ + if(token[ch_i]=='\0'){ + return token; + } + + char *right=(char*)malloce(sizeof(char)*strlen(token)+1); + + strcpy(right,&token[ch_i+1]); + token[ch_i]='\0'; + strcat(token,right); + + free(right); + return token; +} + + // You must free the result if result is non-NULL. char *str_replace(char *orig, char *rep, char *with) { char *result; // the return string 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