summaryrefslogtreecommitdiff
path: root/lisp
diff options
context:
space:
mode:
Diffstat (limited to 'lisp')
-rw-r--r--lisp/ledger-mode.el2
-rw-r--r--lisp/ledger-navigate.el11
2 files changed, 8 insertions, 5 deletions
diff --git a/lisp/ledger-mode.el b/lisp/ledger-mode.el
index 9376e2e0..1eab0f3b 100644
--- a/lisp/ledger-mode.el
+++ b/lisp/ledger-mode.el
@@ -262,7 +262,7 @@ With a prefix argument, remove the effective date. "
(define-key map [(control ?c) (control ?o) (control ?r)] 'ledger-report)
(define-key map [(control ?c) (control ?o) (control ?s)] 'ledger-report-save)
- (define-key map [(meta ?p)] 'ledger-navigate-prev-xact)
+ (define-key map [(meta ?p)] 'ledger-navigate-prev-xact-or-directive)
(define-key map [(meta ?n)] 'ledger-navigate-next-xact-or-directive)
map)
"Keymap for `ledger-mode'.")
diff --git a/lisp/ledger-navigate.el b/lisp/ledger-navigate.el
index 5da5cf8d..d954222f 100644
--- a/lisp/ledger-navigate.el
+++ b/lisp/ledger-navigate.el
@@ -54,11 +54,14 @@ beginning with whitespace"
(ledger-navigate-start-xact-or-directive-p)))
(forward-line))))
-(defun ledger-navigate-prev-xact ()
+(defun ledger-navigate-prev-xact-or-directive ()
"Move point to beginning of previous xact."
(interactive)
- (ledger-navigate-beginning-of-xact)
- (re-search-backward ledger-xact-start-regex nil t))
+ (let ((context (car (ledger-context-at-point))))
+ (when (equal context 'acct-transaction)
+ (ledger-navigate-beginning-of-xact))
+ (beginning-of-line)
+ (re-search-backward "^[[:graph:]]" nil t)))
(defun ledger-navigate-beginning-of-xact ()
"Move point to the beginning of the current xact"
@@ -75,7 +78,7 @@ beginning with whitespace"
"Move point to end of xact."
(interactive)
(ledger-navigate-next-xact-or-directive)
- (backward-char)
+ (re-search-backward "^[ \t]")
(end-of-line)
(point))