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
|
|