ESH

Executive Shell
git clone http://git.omkov.net/ESH
Log | Tree | Refs | README | Download

ESH/src/bltn.c (33 lines, 844 B) -rw-r--r-- file download

59a2eec Jakob Wakeling 2023-12-28 14:17:38
0
// Copyright (C) 2023, Jakob Wakeling
59a2eec Jakob Wakeling 2023-12-28 14:17:38
1
// All rights reserved.
59a2eec Jakob Wakeling 2023-12-28 14:17:38
2
59a2eec Jakob Wakeling 2023-12-28 14:17:38
3
#include "bltn.h"
59a2eec Jakob Wakeling 2023-12-28 14:17:38
4
#include "util/util.h"
59a2eec Jakob Wakeling 2023-12-28 14:17:38
5
59a2eec Jakob Wakeling 2023-12-28 14:17:38
6
#include <stdio.h>
59a2eec Jakob Wakeling 2023-12-28 14:17:38
7
59a2eec Jakob Wakeling 2023-12-28 14:17:38
8
extern const char *const version; /* main.c */
59a2eec Jakob Wakeling 2023-12-28 14:17:38
9
extern bool _loop; /* main.c */
59a2eec Jakob Wakeling 2023-12-28 14:17:38
10
extern s32 _ret; /* exec.c */
59a2eec Jakob Wakeling 2023-12-28 14:17:38
11
59a2eec Jakob Wakeling 2023-12-28 14:17:38
12
static int bltn_exit(int, char *[]) { _loop = false; return 0; }
59a2eec Jakob Wakeling 2023-12-28 14:17:38
13
static int bltn_false(int, char *[]) { return 1; }
59a2eec Jakob Wakeling 2023-12-28 14:17:38
14
static int bltn_help(int, char *[]) { fputs(version, stdout); return 0; }
59a2eec Jakob Wakeling 2023-12-28 14:17:38
15
static int bltn_true(int, char *[]) { return 0; }
59a2eec Jakob Wakeling 2023-12-28 14:17:38
16
59a2eec Jakob Wakeling 2023-12-28 14:17:38
17
extern int bltn_cd(int, char *[]);
4a1246f Jakob Wakeling 2023-12-28 14:53:40
18
extern int bltn_eval(int, char *[]);
59a2eec Jakob Wakeling 2023-12-28 14:17:38
19
59a2eec Jakob Wakeling 2023-12-28 14:17:38
20
static int getret(int, char *[]) { printf("%d\n", _ret); return 0; }
59a2eec Jakob Wakeling 2023-12-28 14:17:38
21
59a2eec Jakob Wakeling 2023-12-28 14:17:38
22
bltn bltns[] = {
59a2eec Jakob Wakeling 2023-12-28 14:17:38
23
	{ "cd",    &bltn_cd    },
4a1246f Jakob Wakeling 2023-12-28 14:53:40
24
	{ "eval",  &bltn_eval  },
59a2eec Jakob Wakeling 2023-12-28 14:17:38
25
	{ "exit",  &bltn_exit  },
59a2eec Jakob Wakeling 2023-12-28 14:17:38
26
	{ "false", &bltn_false },
59a2eec Jakob Wakeling 2023-12-28 14:17:38
27
	{ "help",  &bltn_help  },
59a2eec Jakob Wakeling 2023-12-28 14:17:38
28
	{ "true",  &bltn_true  },
59a2eec Jakob Wakeling 2023-12-28 14:17:38
29
	{ "ret",   &getret     },
59a2eec Jakob Wakeling 2023-12-28 14:17:38
30
	{ NULL, NULL }
59a2eec Jakob Wakeling 2023-12-28 14:17:38
31
};
32