Giter Club home page Giter Club logo

minishell's Introduction

header

김지현 | Seoul

  • 42 Seoul Cadet | 2021.11 ~

🛠️ Skills

My Skills

My Skills

My Skills

📊 Stats

Anurag's GitHub stats

Solved.ac 프로필

📝 Posts

Velog Badge

minishell's People

Contributors

nheo9143 avatar pearpearb avatar reg0145 avatar tamagoyakii avatar wochae avatar

Stargazers

 avatar  avatar

Watchers

 avatar

minishell's Issues

[Feat] builtin 함수 작성

ISSUE

  • Type: feature
  • Detail: builtin 함수 작성

TODO

  • ft_echo 구현
  • ft_exit 구현
  • ft_cd 구현
  • ft_pwd 구현
  • ft_env 구현
  • ft_export 구현
  • ft_unset 구현

[Fix] 리다이렉트, 파이프 파싱 오류

ISSUE

  • Type:fix
  • Detail: 리다이렉트, 파이프 파싱 오류

TODO

  • 파이프 + 리다렉트 들어오면 값이 이상하게 들어오는 문제 처리
  • 맨 처음 리다렉트 인풋("<") 들어오면 처리 안되는 부분 해결 (segfault)

파이프 + 리다렉트 들어오면 값이 이상하게 들어옴
증상 : 파이프 이전에 리다이렉트 들어오면 세그폴트
파이프 뒤에 리다이렉트 들어오면 맨 처음 argv에만 들어가있음..ㅠㅠ

expect :
	argv : [cmd : ~~],
			[in : NULL],
			[out : NULL],
			[hdoc : NULL]
			[next : 
				argv : [cmd : ~~],
						[in : “test.txt”],
						[out : NULL],
						[hdoc : NULL]
						[next : NULL]

current :
	argv : [cmd : ~~],
			[in : “test.txt”],
			[out : NULL],
			[hdoc : NULL]
			[next : 
				argv : [cmd : ~~],
						[in : NULL],
						[out : NULL],
						[hdoc : NULL]
						[next : NULL]

[Fix] 따옴표 + 환경변수 처리

ISSUE

  • Type: fix
  • Detail: 따옴표 + 환경변수 처리

TODO

  • $ 뒤에 스페이스나 널만 아니면 무시하도록 하는게 좋아보여요??

image

- [ ] 따옴표 열리면 환경변수 어떻게 처리할지 이야기? 큰따옴표만 열린 경우, 작은 따옴표만 열리 경우...등등

[Fix] pipe leaks 해결

ISSUE

  • Type: fix
  • Detail: [Fix] pipe leaks 해결

TODO

  • echo 123 | echo 123 처리 시, 1개의 릭이 발생하는 부분 해결하기

[Feat/execute] signal 구현하기

ISSUE

  • Type: feature
  • Detail: 함수 구현하기

TODO

signal

  • 히어독(자식) 시그널 처리 구현 : ^C -> exit 1
  • 자식 시그널 처리 구현 : exit + 128
  • 메인 시그널 처리 구현 : ^C -> last_exit 1 + 새 프롬포트 출력, ^\ -> 아무것도 안하기

[Feat] minishell.h 헤더 파일 정리

ISSUE

  • Type: feature
  • Detail: 공용으로 사용하는 구조체 만들기

TODO

  • 헤더 추가하기
  • 파싱부 구조체 만들기
  • 실행부 구조체 만들기

[Fix] 파일 이름만 입력시에도 실행되는 문제

ISSUE

  • Type: fix
  • Detail: 파일 이름만 입력시에도 실행되는 문제

TODO

  • 파일 이름만 입력시에도 실행되는 문제(minishell./minishell 이 같이 취급됨)

image

  • ./ 명령어도 실행되는 문제(./lsls 가 같이 취급됨)

image

image

=> /를 기준으로 찾아봐줘야 함

[Feat] 제 2 장 환경변수 함수

ISSUE

  • Type: feature
  • Detail: 환경변수 이중배열 만들기, map,

TODO

  • 자배용 환경변수[][] {key : value}
  • 환경변수 map 추가 {key=value}
  • 환경변수 리스트에서 key에 str를 찾아 반환하는 함수

[Feat/parse] split_line 생성

ISSUE

  • Type: feature
  • Detail: fix actions from client redux

TODO

  • 변환 -> 입력(line)을 덩어리(dummys)로
  • 변환 -> 덩어리(dummys)를 chunks(큰 덩어리)로

[Fix] leak 처리

ISSUE

  • Type: fix
  • Detail: fix actions from client redux

TODO

  • split_line leaks 해결

[Refactor] utils 폴더 및 헤더 정리

ISSUE

  • Type: feature
  • Detail: utils 폴더 정리

TODO

  • parse 폴더에 있는 utils_*.c 파일들을 utils 폴더로 옮기기
  • 헤더 정리
  • 합칠 수 있는 파일들 정리하기
  • 헤더 정리하기

[Feat/parse] token 및 argv 생성

ISSUE

  • Type: feature
  • Detail: token 및 argv 생성

TODO

  • token 생성하기
  • argv 생성하기
    • argv의 hdoc->value"/tmp/value" 형식으로 바꿔주기
  • 할당된 메모리 처리하기
  • unclosed pipe, redirection 처리하기 (syntax error)

[Fix] split_line 업데이트

ISSUE

  • Type: feature, fix
  • Detail: fix actions from client redux

TODO

  • dummy관련 split_dummy.c 소스 추가
  • split 소스 업데이트
  • 추가 및 변경된 enum 값
CHAR		0x0001
QUOTE		0x0002
S_QUOTE		0x0004
D_QUOTE		0x0008
REDIR		0x0010
R_REDIR		0x0020
L_REDIR		0x0040
PIPE		0x0100
SPACE		0x0200
BREAK		0x1000
CLOSE		0x2000
ADD_NULL	0x4000
  • 추가된 구조체
typedef	struct s_dummy
{
	int		size;
	int		type;
	char	*addr;
}	t_dummy;

[Fix] 함수 리턴값 정리하기

ISSUE

  • Type: fix
  • Detail: 함수들 리턴값 (TRUE, FALSE, SUCCESS, FAIL) 정리하기

TODO

  • 함수들 리턴값 (TRUE, FALSE, SUCCESS, FAIL) 정리하기

[Refactor] 마지막 정리

ISSUE

  • Type: `refactor
  • Detail: 마지막 정리

TODO

  • 구현부 norm
  • 파싱부 norm
  • main.c norm
  • 헤더 norm
  • Libft norm

[Fix] 빌드에러 수정

ISSUE

  • Type: fix
  • Detail: fix actions from client redux

TODO

  • make시 빌드되지않는 부분 수정

[Feat] 화이트 스페이스 처리 추가

ISSUE

  • Type: feature
  • Detail: fix actions from client redux

TODO

  • ' ' space (SPC)
  • \t horizontal tab (TAB)
  • \n newline (LF)
  • \v vertical tab (VT)
  • \f feed (FF)
  • \r carriage return (CR)

[Fix] split용 enum 추가

ISSUE

  • Type: fix
  • Detail: fix actions from client redux

TODO

  • 추가 및 변경된 enum 값
CHAR		0x0001
QUOTE		0x0002
S_QUOTE		0x0004
D_QUOTE		0x0008
REDIR		0x0010
R_REDIR		0x0020
L_REDIR		0x0040
PIPE		0x0100
SPACE		0x0200
BREAK		0x1000
CLOSE		0x2000
ADD_NULL	0x4000
  • 추가된 구조체
typedef	struct s_dummy
{
	int		size;
	int		type;
	char	*addr;
}	t_dummy;

[Feat/parse] 제 1 장 초기화

ISSUE

  • Type: feature
  • Detail: 시그널처리와 환경변수 전처리

TODO

  • 시그널 처리
  • 환경변수 전처리
  • 구조체 초기화

[Feat/execute] exit, echo, error 구현

ISSUE

  • Type: feature
  • Detail: fix actions from client redux

TODO

  • ft_open 실패시 -1 리턴 처리
  • ft_error, ft_error_exit 구현
  • 전역변수 g_info 추가
  • echo 명령어 구현
  • exit 명령어 구현

[Feat] syntax error 처리하기

ISSUE

  • Type: feature
  • Detail: syntax error 처리하기

TODO

  • syntax error가 발생하는 경우들
    • 명령어가 pipe로 시작하는 경우
    • 마지막 문자가 pipe인 경우
    • pipe를 기준으로 명령어를 나누었을 때, 명령어의 마지막 문자가 redirection인 경우
  • syntax error 반환값 설정 및 적용

[Feat/execute] error 구현하기

ISSUE

  • Type: feature
  • Detail: 함수 구현하기

TODO

error

  • fork 실패시 핸들링해주는 부분 구현
  • init, heredoc 실패시 free하고 종료해주는 함수 구현

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.