Skip to content

Commit 141455f

Browse files
author
Diego Ferrari
committed
[BIN] argv now has command as first argument
1 parent 8cbcb98 commit 141455f

4 files changed

Lines changed: 15 additions & 16 deletions

File tree

bin/read/read.c

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,14 +2,14 @@
22

33
int main(int argc, const char* argv[]){
44
file fd2 = { .id = 2 };
5-
if (argc < 1 || argc > 2){
5+
if (argc < 2 || argc > 3){
66
string err_msg = string_from_literal("Usage: read <path> [size]");
77
writef(&fd2, err_msg.data, err_msg.length);
88
free_sized(err_msg.data, err_msg.mem_length);
99
return 2;
1010
}
11-
const char* path = argv[0];
12-
size_t size = argc < 2 ? 0 : parse_int_u64(argv[1], UINT32_MAX);
11+
const char* path = argv[1];
12+
size_t size = argc < 2 ? 0 : parse_int_u64(argv[2], UINT32_MAX);
1313
file fd = {};
1414
openf(path, &fd);
1515
if (fd.size == 0){

kernel/bin/bin_mod.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -73,7 +73,7 @@ process_t* execute(const char* prog_name, int argc, const char* argv[]){
7373
for (int i = 0; i < argc; i++){
7474
size_t strsize = strlen(argv[i]);
7575
memcpy(nargvals + strptr, argv[i], strsize);
76-
*(char*)(nargvals + strptr + strsize) = 0;
76+
*(char*)(nargvals + strptr + strsize++) = 0;
7777
nargv[i] = vnargvals + strptr;
7878
strptr += strsize;
7979
}

kernel/bin/monitor_processes.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -147,7 +147,7 @@ void draw_process_view(){
147147

148148
int monitor_procs(int argc, char* argv[]){
149149
bool visual = false;
150-
if (argc){ //TODO: make this a proper parser once argv is fixed
150+
if (argc > 1){ //TODO: make this a proper parser once argv is fixed
151151
visual = true;
152152
request_draw_ctx(&ctx);
153153
}

utils/terminal/terminal.cpp

Lines changed: 10 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -262,18 +262,17 @@ void Terminal::run_command(){
262262
const char** argv = nullptr;
263263
string args_copy = {};
264264

265-
if (*args == '\0'){
265+
if (*args == '\0')
266266
cmd = string_from_literal(fullcmd);
267-
} else {
268-
size_t cmd_len = (size_t)(args - fullcmd);
269-
cmd = string_from_literal_length(fullcmd, cmd_len);
270-
271-
const char* argstart = args;
272-
while (*argstart == ' ' || *argstart == '\t') argstart++;
273-
274-
args_copy = string_from_literal(argstart);
275-
argv = parse_arguments(args_copy.data, &argc);
276-
}
267+
else
268+
cmd = string_from_literal_length(fullcmd, (size_t)(args - fullcmd));
269+
270+
const char* argstart = fullcmd;
271+
272+
while (*argstart && (*argstart == ' ' || *argstart == '\t')) argstart++;
273+
274+
args_copy = string_from_literal(argstart);
275+
argv = parse_arguments(args_copy.data, &argc);
277276

278277
if (!exec_cmd(cmd.data, argc, argv)){
279278
if (strcmp_case(cmd.data, "exit", true) == 0){

0 commit comments

Comments
 (0)