-
[42서울] 2월 16일(화) 레포트42seoul 2021. 2. 16. 19:10
학습 날짜 : 2021-02-16(화)
학습시간 : 9:30 ~ 18:00(자가)
학습 범위 및 주제 : minishell(3Circle)
동료 학습 방법 : Discord에서 미팅하면서 같이 공부
학습 목표 : cd 구현
상세 학습 내용:
- [x] cd ../srcs - [x] cd ~ - [x] cd - [x] cd .. - [x] cd ../
내일 아침에 해야할 것:
- [ ] cd ~/Documents - [ ] cd - - [ ] old pwd 처리
구현되어 있는 코드(수정 전)
#include "minishell.h" static char *get_path(char *dest, char *pwd, t_list *env_list) { char *path; char *tmp; path = NULL; if ((ft_strncmp(dest, "..", ft_strlen(dest)) == 0)) path = ft_strdup(".."); else if ((ft_strncmp(dest, "~", ft_strlen(dest)) == 0)) { tmp = ft_strdup(get_list_data(env_list, "HOME")); path = ft_strdup(&tmp[5]); free(tmp); } else path = ft_strdup(dest); return (path); } static int renew_old_pwd(char **old_one, char *new_one) { free(*old_one); *old_one = ft_strdup(new_one); return 0; } static int go_path(char *dest, t_list *env_list, char **old_pwd) { char *path; char *pwd; int ret; char s[100]; ret = 0; path = NULL; if (ft_strncmp(dest, "-", ft_strlen(dest)) == 0) printf("%s\n", "before"); else { if (!(pwd = get_list_data(env_list, "PWD"))) ret = 1; if (ret == 0 && !(path = get_path(dest, pwd, env_list))) ret = 1; if (ret == 0 && (renew_old_pwd(old_pwd, pwd))) ret = 1; } printf("path: %s\n", path); if (ret == 0 && path) { //if (ret == 0 && (modify_list_data(&env_list, "PWD", path))) // ret = 1; printf("%s\n", getcwd(s, 100)); chdir(path); printf("%s\n", getcwd(s, 100)); } return (ret); } int handle_cmd_cd(t_list *arg_list, t_list *env_list, char **old_pwd) { int ret; t_list *arg; ret = 0; arg = arg_list; while (arg->next) { arg = arg->next; go_path(arg->data, env_list, old_pwd); } if (arg == arg_list) go_path("~", env_list, old_pwd); return ret; }
학습 내용에 대한 개인적인 총평 :
어제 추웠는지 컨디션이 별로라서 많이 공부는 못했다. 오늘은 6시 정도까지 공부하다가 저녁먹고 운동감. 앞으로 학교 갈 수 있게 되면 공동으로 하는 프로젝트는 더 편할 것 같다.
실제 코딩한 시간 : 5시간
다음 학습 계획 :
-cub3d 보너스 제외하고 이번주~다음주 사이에 다 끝내기
-minishell은 지금처럼 열심히 하기2월에 할 일
*cub3d
*minishell
*오픈소스 기여'42seoul' 카테고리의 다른 글
[minishell] Shell이란? 그리고 Shell이 하는 일 (0) 2021.03.01 [cub3d] 과제 시작하기 (0) 2021.02.19 [cub3D] Makefile (0) 2021.01.05 [cub3D] 벡터 (0) 2020.12.28 [cub3d] 과제 파악하기 (0) 2020.12.25