mirror of
				https://github.com/sammy-ette/Hilbish
				synced 2025-08-10 02:52:03 +00:00 
			
		
		
		
	fix: provide correct command when navigating history
previously, the order while navigating history with the arrow keys would be incorrect meaning the command you expect if you go u then go back down would not be there
This commit is contained in:
		
							parent
							
								
									06102ebdae
								
							
						
					
					
						commit
						9e4ef0483b
					
				| @ -123,23 +123,20 @@ func (rl *Instance) walkHistory(i int) { | ||||
| 
 | ||||
| 	// When we are exiting the current line buffer to move around | ||||
| 	// the history, we make buffer the current line | ||||
| 	if rl.histPos == 0 && (rl.histPos+i) == 1 { | ||||
| 	if rl.histOffset == 0 && rl.histOffset + i == 1 { | ||||
| 		rl.lineBuf = string(rl.line) | ||||
| 	} | ||||
| 
 | ||||
| 	switch rl.histPos + i { | ||||
| 	case 0, history.Len() + 1: | ||||
| 		rl.histPos = 0 | ||||
| 	rl.histOffset += i | ||||
| 	if rl.histOffset == 0 { | ||||
| 		rl.line = []rune(rl.lineBuf) | ||||
| 		rl.pos = len(rl.lineBuf) | ||||
| 		return | ||||
| 	case -1: | ||||
| 		rl.histPos = 0 | ||||
| 		rl.lineBuf = string(rl.line) | ||||
| 	default: | ||||
| 	} else if rl.histOffset <= -1 { | ||||
| 		rl.histOffset = 0 | ||||
| 	} else { | ||||
| 		dedup = true | ||||
| 		old = string(rl.line) | ||||
| 		new, err = history.GetLine(history.Len() - rl.histPos - 1) | ||||
| 		new, err = history.GetLine(history.Len() - rl.histOffset) | ||||
| 		if err != nil { | ||||
| 			rl.resetHelpers() | ||||
| 			print("\r\n" + err.Error() + "\r\n") | ||||
| @ -148,7 +145,6 @@ func (rl *Instance) walkHistory(i int) { | ||||
| 		} | ||||
| 
 | ||||
| 		rl.clearLine() | ||||
| 		rl.histPos += i | ||||
| 		rl.line = []rune(new) | ||||
| 		rl.pos = len(rl.line) | ||||
| 		if rl.pos > 0 { | ||||
|  | ||||
| @ -134,6 +134,7 @@ type Instance struct { | ||||
| 	// history operating params | ||||
| 	lineBuf    string | ||||
| 	histPos    int | ||||
| 	histOffset int | ||||
| 	histNavIdx int // Used for quick history navigation. | ||||
| 
 | ||||
| 	// | ||||
|  | ||||
| @ -49,7 +49,7 @@ func (rl *Instance) Readline() (string, error) { | ||||
| 
 | ||||
| 	// History Init | ||||
| 	// We need this set to the last command, so that we can access it quickly | ||||
| 	rl.histPos = 0 | ||||
| 	rl.histOffset = 0 | ||||
| 	rl.viUndoHistory = []undoItem{{line: "", pos: 0}} | ||||
| 
 | ||||
| 	// Multisplit | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user