Variables: The 0th frame is the global one, the next few ommits make it so
This commit is contained in:
parent
2a732eb569
commit
8c48eb9057
14
src/fsh.nim
14
src/fsh.nim
|
@ -311,16 +311,16 @@ proc runBuiltin(builtin: string, args: openArray[string]): (string, int) =
|
|||
of "cd":
|
||||
try:
|
||||
if args.len == 0:
|
||||
shellVariables[shellVariables.high]["LASTPWD"] = getCurrentDir()
|
||||
shellVariables[0]["LASTPWD"] = getCurrentDir()
|
||||
setCurrentDir(getHomeDir())
|
||||
return ("", 0)
|
||||
else:
|
||||
if args[0] == "-":
|
||||
let LASTPWD = getCurrentDir()
|
||||
setCurrentDir(shellVariables[shellVariables.high]["LASTPWD"])
|
||||
shellVariables[shellVariables.high]["LASTPWD"] = LASTPWD
|
||||
setCurrentDir(shellVariables[0]["LASTPWD"])
|
||||
shellVariables[0]["LASTPWD"] = LASTPWD
|
||||
return ("", 0)
|
||||
shellVariables[shellVariables.high]["LASTPWD"] = getCurrentDir()
|
||||
shellVariables[0]["LASTPWD"] = getCurrentDir()
|
||||
setCurrentDir(args[0])
|
||||
return ("", 0)
|
||||
except OsError as e:
|
||||
|
@ -375,12 +375,12 @@ when isMainModule:
|
|||
setControlCHook(ctrlc)
|
||||
let stdinstrm = stdin.newFileStream
|
||||
# Set the default prompt
|
||||
shellVariables[shellVariables.high]["PROMPT"] = "$PWD \\$"
|
||||
stdout.write(shellVariables[shellVariables.high]["PROMPT"].newStringStream.substitute)
|
||||
shellVariables[0]["PROMPT"] = "$PWD \\$"
|
||||
stdout.write(shellVariables[0]["PROMPT"].newStringStream.substitute)
|
||||
while not stdinstrm.atEnd():
|
||||
try:
|
||||
discard stdinstrm.readCommand.execute
|
||||
stdout.write(shellVariables[shellVariables.high]["PROMPT"].newStringStream.substitute)
|
||||
stdout.write(shellVariables[0]["PROMPT"].newStringStream.substitute)
|
||||
except ShellError, ShellCommandError, ShellVariableError:
|
||||
let e = getCurrentException()
|
||||
stderr.write(e.msg, "\n")
|
||||
|
|
Loading…
Reference in New Issue