diff --git a/control.go b/control.go index 165a7dc..1c4edeb 100644 --- a/control.go +++ b/control.go @@ -11,6 +11,7 @@ const ( ControlBoolShortcut = "_bool_shortcut" ControlSearchPath = "_search_path" ControlParentContext = "_parent_context" + ControlStdout = "_stdout" ) // Other control variables @@ -23,11 +24,17 @@ const ( init_search_path = "~/.local/lib/go-pkg/expr:/usr/local/lib/go-pkg/expr:/usr/lib/go-pkg/expr" ) +func SetCtrl(ctx ExprContext, name string, value any) (current any) { + current, _ = ctx.GetVar(name) + ctx.UnsafeSetVar(name, value) + return +} + func initDefaultVars(ctx ExprContext) { if _, exists := ctx.GetVar(ControlPreset); exists { return } - ctx.SetVar(ControlPreset, true) - ctx.SetVar(ControlBoolShortcut, true) - ctx.SetVar(ControlSearchPath, init_search_path) + ctx.UnsafeSetVar(ControlPreset, true) + ctx.UnsafeSetVar(ControlBoolShortcut, true) + ctx.UnsafeSetVar(ControlSearchPath, init_search_path) }