-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathdefs.h
More file actions
70 lines (60 loc) · 1.9 KB
/
defs.h
File metadata and controls
70 lines (60 loc) · 1.9 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
#ifndef DEFS
#define DEFS
/*** Includes ***/
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#include <unistd.h>
#include <signal.h>
#include <wait.h>
#include <sys/types.h>
#include <sys/wait.h>
/*** Integer Definitions ***/
#define FORMATSTRINGSIZE 30
#define BYTESIZE 8
#define CHARSIZE 1
#define BUFSIZE 1
#define MAXLINESIZE 1024
#define MAXARGS 64
#define ARGNAME 1
#define NAMEPLUSFLAG 2
#define CHARSINARG 2
#define HISTORYSIZE 100
#define NUMLOCATION 1
#define EXIT 5
#define EX 2
#define LOGOUT 7
#define CHDIR 6
#define CD 2
#define MYSHELL 2
#define HISTORY 7
/*** Flags ***/
#define SYM_LT 0x1
#define SYM_LT_APPEND 0x2
#define SYM_GT 0x4
#define SYM_GT_APPEND 0x8
#define SYM_PIPE 0x10
#define DEFAULT 0x0
#define QUIT 0x8
#define BUILTIN 0x4
#define BACKGROUND 0x2
#define HISTERROR 0x1
#define REDIRECTION 0x10
#define PIPE 0x20
/*** Flag Related Macros ***/
#define IS(X,Y) (X & Y)
#define BUILTIN_ON *stateptr |= BUILTIN;
#define HISTERROR_ON *stateptr |= HISTERROR;
#define TURN_BACKGROUND_ON *stateptr |= BACKGROUND;
#define TURN_REDIRECTION_ON *stateptr |= REDIRECTION;
#define TURN_PIPE_ON *stateptr |= PIPE;
#define BUILTIN_OFF *stateptr = *stateptr & ~(BUILTIN);
#define HISTERROR_OFF *stateptr = *stateptr & ~(HISTERROR);
#define TURN_BACKGROUND_OFF *stateptr = *stateptr & ~(BACKGROUND);
#define TURN_REDIRECTION_OFF *stateptr = *stateptr & ~(REDIRECTION);
#define TURN_PIPE_OFF *stateptr = *stateptr & ~(PIPE);
#define NO_HISTERROR !(HISTERROR & *stateptr)
#define IS_IN_BACKGROUND (BACKGROUND & *stateptr)
#define IS_REDIRECT (REDIRECTION & *stateptr)
#define IS_PIPED (PIPE & *stateptr)
#endif // DEFS