iFix backspace with cursors - holymoly - A tor enabled gopher client written in CHICKEN scheme Err vernunftzentrum.de 70 hgit clone git://vernunftzentrum.de/holymoly.git URL:git://vernunftzentrum.de/holymoly.git vernunftzentrum.de 70 1Log /ckeen/repos/holymoly/log.gph vernunftzentrum.de 70 1Files /ckeen/repos/holymoly/files.gph vernunftzentrum.de 70 1Refs /ckeen/repos/holymoly/refs.gph vernunftzentrum.de 70 1README /ckeen/repos/holymoly/file/README.gph vernunftzentrum.de 70 1LICENSE /ckeen/repos/holymoly/file/LICENSE.gph vernunftzentrum.de 70 i--- Err vernunftzentrum.de 70 1commit 5f6abb19963fae3735af7db225352db2a2239f05 /ckeen/repos/holymoly/commit/5f6abb19963fae3735af7db225352db2a2239f05.gph vernunftzentrum.de 70 1parent 60a070c2f512570c3a5e7e61d6584f3aa0a36d2d /ckeen/repos/holymoly/commit/60a070c2f512570c3a5e7e61d6584f3aa0a36d2d.gph vernunftzentrum.de 70 hAuthor: Christian Kellermann URL:mailto:ckeen@pestilenz.org vernunftzentrum.de 70 iDate: Mon, 10 Sep 2018 12:17:40 +0200 Err vernunftzentrum.de 70 i Err vernunftzentrum.de 70 iFix backspace with cursors Err vernunftzentrum.de 70 i Err vernunftzentrum.de 70 iI am not pleased at all with the current cursor handling, I need to fix Err vernunftzentrum.de 70 ithis. Err vernunftzentrum.de 70 i Err vernunftzentrum.de 70 iDiffstat: Err vernunftzentrum.de 70 i holymoly.scm | 27 +++++++++------------------ Err vernunftzentrum.de 70 i Err vernunftzentrum.de 70 i1 file changed, 9 insertions(+), 18 deletions(-) Err vernunftzentrum.de 70 i--- Err vernunftzentrum.de 70 1diff --git a/holymoly.scm b/holymoly.scm /ckeen/repos/holymoly/file/holymoly.scm.gph vernunftzentrum.de 70 i@@ -104,30 +104,21 @@ Err vernunftzentrum.de 70 i (use-cursor (next-cursor! cursor) pos) Err vernunftzentrum.de 70 i (else (if (= pos nlines) pos (set! pos (add1 pos)))))) Err vernunftzentrum.de 70 i ((#x106) (when use-cursor (set! cursor (list->cursor selectables))) (set! pos 0)) ; HOME Err vernunftzentrum.de 70 i- ((#x168) (when use-cursor #; Err vernunftzentrum.de 70 i-(set! cursor (sub1 (length dlines)))) (set! pos (max pos (- nlines pos rows)))) ; end Err vernunftzentrum.de 70 i+ ((#x168) (set! pos (max pos (- nlines pos rows)))) ; end Err vernunftzentrum.de 70 i ((260) (k 'back)) Err vernunftzentrum.de 70 i ((32) Err vernunftzentrum.de 70 i (set! pos (if (> (+ pos rows) nlines) pos (+ pos (sub1 rows)))) Err vernunftzentrum.de 70 i (when use-cursor Err vernunftzentrum.de 70 i- (let adjust-cursor! () Err vernunftzentrum.de 70 i- (cond ((> pos (current-cursor cursor)) Err vernunftzentrum.de 70 i- (next-cursor! cursor) Err vernunftzentrum.de 70 i- (adjust-cursor!)) Err vernunftzentrum.de 70 i- ((< (+ pos (length dlines)) (current-cursor cursor)) Err vernunftzentrum.de 70 i- (prev-cursor! cursor) Err vernunftzentrum.de 70 i- (adjust-cursor!))))) Err vernunftzentrum.de 70 i+ (let adjust-cursor! () Err vernunftzentrum.de 70 i+ (cond ((> pos (current-cursor cursor)) Err vernunftzentrum.de 70 i+ (next-cursor! cursor) Err vernunftzentrum.de 70 i+ (adjust-cursor!)) Err vernunftzentrum.de 70 i+ ((< (+ pos (length dlines)) (current-cursor cursor)) Err vernunftzentrum.de 70 i+ (prev-cursor! cursor) Err vernunftzentrum.de 70 i+ (adjust-cursor!))))) Err vernunftzentrum.de 70 i pos) ; space Err vernunftzentrum.de 70 i ((10 261) (when use-cursor (k (list-ref lines (current-cursor cursor)))) pos) Err vernunftzentrum.de 70 i- ((#x107) (set! pos (if (< (- pos rows) 0) 0 (- pos (sub1 rows)))) Err vernunftzentrum.de 70 i- (when use-cursor Err vernunftzentrum.de 70 i- (let adjust-cursor! () Err vernunftzentrum.de 70 i- (cond ((> pos (current-cursor cursor)) Err vernunftzentrum.de 70 i- (next-cursor! cursor) Err vernunftzentrum.de 70 i- (adjust-cursor!)) Err vernunftzentrum.de 70 i- ((< (+ pos (length dlines)) (current-cursor cursor)) Err vernunftzentrum.de 70 i- (prev-cursor! cursor) Err vernunftzentrum.de 70 i- (adjust-cursor!)))))) ; backspace Err vernunftzentrum.de 70 i+ ((263) (set! pos (if (< (- pos rows) 0) 0 (- pos (sub1 rows))))) ; backspace Err vernunftzentrum.de 70 i ((113) (k 'quit)) ; q Err vernunftzentrum.de 70 i ((#x47 #x67) (k (uristring->entry (get-user-input "New uri:" (entry->string (current-page))))) pos) ; G Err vernunftzentrum.de 70 i (else pos))))))))) Err vernunftzentrum.de 70 .