From 79ac135cee306cbcfa4b73f1b7c0b404712fee7b Mon Sep 17 00:00:00 2001 From: Charlie Stanton Date: Thu, 20 Apr 2023 14:48:50 +0100 Subject: Replaces the inflexible delete all with separate DeleteValue and DeletePath commands --- main/command.go | 10 +++++++--- main/parse.go | 4 +++- 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/main/command.go b/main/command.go index 5e77dd0..9554f9d 100644 --- a/main/command.go +++ b/main/command.go @@ -43,12 +43,16 @@ func (cmd AppendNextCommand) exec(state *ProgramState) { state.path = nextItem.Path.ToWalkValues() } -type DeleteAllCommand struct {} -func (cmd DeleteAllCommand) exec(state *ProgramState) { - state.path = nil +type DeleteValueCommand struct {} +func (cmd DeleteValueCommand) exec(state *ProgramState) { state.value = nil } +type DeletePathCommand struct {} +func (cmd DeletePathCommand) exec(state *ProgramState) { + state.path = nil +} + func runSubex(state subex.SubexState, in []walk.WalkValue) (out []walk.WalkValue, error bool) { valueStream := make(chan walk.WalkValue) go func(in []walk.WalkValue, out chan<- walk.WalkValue) { diff --git a/main/parse.go b/main/parse.go index ab22d93..198b746 100644 --- a/main/parse.go +++ b/main/parse.go @@ -63,7 +63,9 @@ func (p *parser) parseBasicCommand(commandChar rune) Command { case 'p': return PrintValueCommand{} case 'd': - return DeleteAllCommand{} + return DeleteValueCommand{} + case 'D': + return DeletePathCommand{} case 'n': return NextCommand{} case 'N': -- cgit v1.2.3