-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathmain.h
More file actions
130 lines (111 loc) · 3.17 KB
/
Copy pathmain.h
File metadata and controls
130 lines (111 loc) · 3.17 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
#ifndef MAIN_H
#define MAIN_H
#include <unistd.h>
#include <stdio.h>
#include <signal.h>
#include <errno.h>
#include <string.h>
#include <sys/types.h>
#include <sys/wait.h>
#include <sys/stat.h>
#include <dirent.h>
#include <stdlib.h>
#include <stdbool.h>
#define ENOREC 100
#define MAX_ENV 100
extern char **environ;
/**
*struct data - struct contains shell data
*@av: argument vector
*@input: command line written by user
*@args: tokens of command line
*@status: last shell status
*@cmd: command
*@_environ: environment variable
*@space: checks space
*@exitstring: checks exit string
*@oldpwd: old working dirctory
*/
typedef struct data
{
char **av;
char *input;
char *cmd;
char **args;
int status;
char **_environ;
int space;
int exitstring;
char *oldpwd;
} shell_data;
/*data_setup.c*/
void sigintHandler(int signal);
void errorHandler(shell_data *data);
void setData(shell_data *data, char **av);
void commandExe(shell_data *data);
/*path_resolution.c*/
void commandChecker(shell_data *data);
int isExecutable(shell_data *data);
void buildinFunction(shell_data *data);
int inputFix(shell_data *data);
int checkSlash(shell_data *data, char *lepath);
/*error_handling.c*/
void getCmdArgs(shell_data *data, char *path);
char *isPath(void);
char *errorMaker(shell_data *data, char *str, char *str2);
void printError(shell_data *data, char *str1, char *str2, int status);
/*shell.c*/
void loopPrompt(shell_data *data);
/*int displayPrompt(void);*/
/*input_processing.c*/
void escapeChars(shell_data *data);
void removeExtraSpace(shell_data *data);
int isOnlyNull(shell_data *data);
void fixDataInput(shell_data *data);
int countTokens(char *str, char *delimiter);
/*command_handlers.c*/
void isBuildin(shell_data *data);
void cdCommand(shell_data *data);
void exitCommand(shell_data *data);
void printEnv(shell_data *data);
/*shell_cd.c*/
char *getWorkingDirectory(void);
int cdHome(shell_data *data);
int cdDirRelative(shell_data *data);
int cdDirAbsolute(shell_data *data);
int cdOldPwd(shell_data *data);
/*cleanup_utils.c*/
void free_data(shell_data *data);
void freeInputArgsData(shell_data *data, int num1, int num2, int num3);
/*custom_getline.c*/
ssize_t _getline(char **lineptr, size_t *n, FILE *stream);
void *_realloc(void *ptr, size_t size);
int _getc(FILE *stream);
size_t malloc_usable_size(const void *ptr);
char *_getenv(char *var);
/*custom_setenv.c*/
void setenvCommand(shell_data *data);
int _setenv(shell_data *data);
int _cdSetenv(shell_data *data, char *var, char *value);
/*custom_unsetenv.c*/
void unsetenvCommand(shell_data *data);
int _unsetenv(shell_data *data);
/*string_utils.c*/
int _strlen(const char *s);
char *_strcpy(char *dest, char *src);
char *_strdup(char *str);
void printString(char *str);
int _putchar(char c);
/*character_utils.c*/
int _isdigit(int c);
int isNumber(char *str);
char *_strncpy(char *dest, const char *src, size_t n);
char *_strtok(char *str, char *del);
char *_strpbrk(char *s, char *accept);
/*string_operations.c*/
char *_strcat(char *dest, char *src);
int _strcmp(char *s1, char *s2);
char *_memcpy(char *dest, char *src, unsigned int n);
char *_strchr(char *s, char c);
int _strncmp(const char *str1, const char *str2, size_t num);
#endif