fix(interpreter): load prog name as argv[0]
This commit is contained in:
@@ -1,5 +1,6 @@
|
|||||||
use clap::Parser;
|
use clap::Parser;
|
||||||
use core::fmt;
|
use core::fmt;
|
||||||
|
use std::path::Path;
|
||||||
|
|
||||||
use crate::{
|
use crate::{
|
||||||
Args,
|
Args,
|
||||||
@@ -50,9 +51,12 @@ impl Computer {
|
|||||||
}
|
}
|
||||||
|
|
||||||
fn init_stack(&mut self) -> Result<(), InterpreterError> {
|
fn init_stack(&mut self) -> Result<(), InterpreterError> {
|
||||||
let args = Args::parse();
|
let mut args = Args::parse();
|
||||||
let argv = args.argv;
|
let path = &args.path.unwrap();
|
||||||
let argc = argv.len() + 1;
|
let filename = Path::new(path).file_name().unwrap().to_str().unwrap();
|
||||||
|
let mut argv = Vec::from([filename.to_string()]);
|
||||||
|
argv.append(&mut args.argv);
|
||||||
|
let argc = argv.len();
|
||||||
let mut argv_ptrs = Vec::new();
|
let mut argv_ptrs = Vec::new();
|
||||||
|
|
||||||
let envs = Vec::from(["PATH=/usr:/usr/bin".to_string()]);
|
let envs = Vec::from(["PATH=/usr:/usr/bin".to_string()]);
|
||||||
|
|||||||
Reference in New Issue
Block a user