Merge branch 'next' into ledger-mode-automatic-transactions

This commit is contained in:
Craig Earls 2013-03-27 20:02:59 -07:00
commit 12b2d1b628
3 changed files with 28 additions and 24 deletions

View file

@ -249,7 +249,7 @@ correct chronological place in the buffer."
(insert (insert
(with-temp-buffer (with-temp-buffer
(setq exit-code (setq exit-code
(apply #'ledger-exec-ledger ledger-buf ledger-buf "xact" (apply #'ledger-exec-ledger ledger-buf (current-buffer) "xact"
(mapcar 'eval args))) (mapcar 'eval args)))
(goto-char (point-min)) (goto-char (point-min))
(if (looking-at "Error: ") (if (looking-at "Error: ")

View file

@ -136,23 +136,18 @@ point at beginning of the commodity."
(match-end 3)) (point)))) (match-end 3)) (point))))
(defvar ledger-post-account-regex (defvar ledger-post-account-regex
(concat "\\(^[ \t]+\\)" "\\(^[ \t]+\\)\\(.+?\\)\\( \\|\n\\)")
"\\([\\[(*!;a-zA-Z0-9]\\)"))
(defsubst ledger-next-account (&optional end) (defun ledger-next-account (&optional end)
"Move point to the beginning of the next account, or status marker (!*), as long as it is not past END. "Move point to the beginning of the next account, or status marker (!*), as long as it is not past END.
Return the column of the beginning of the account and leave point Return the column of the beginning of the account and leave point
at beginning of account" at beginning of account"
(if (> end (point)) (if (> end (point))
(when (re-search-forward ledger-post-account-regex end t) (when (re-search-forward ledger-post-account-regex (1+ end) t)
;; the 1+ is to make sure we can catch the newline
(goto-char (match-beginning 2)) (goto-char (match-beginning 2))
(current-column)))) (current-column))))
(defsubst ledger-post-adjust (adjust-by)
(if (> adjust-by 0)
(insert (make-string adjust-by ? ))
(delete-char adjust-by)))
(defun ledger-post-align-postings (&optional beg end) (defun ledger-post-align-postings (&optional beg end)
"Align all accounts and amounts within region, if there is no "Align all accounts and amounts within region, if there is no
region align the posting on the current line." region align the posting on the current line."
@ -185,15 +180,24 @@ region align the posting on the current line."
lines-left) lines-left)
(< (point) end-region)) (< (point) end-region))
(when acc-col (when acc-col
(if (/= (setq acc-adjust (- ledger-post-account-alignment-column acc-col)) 0) (when (/= (setq acc-adjust (- ledger-post-account-alignment-column acc-col)) 0)
(ledger-post-adjust acc-adjust)) (if (> acc-adjust 0)
(insert (make-string acc-adjust ? ))
(delete-char acc-adjust)))
(when (setq amt-offset (ledger-next-amount (line-end-position))) (when (setq amt-offset (ledger-next-amount (line-end-position)))
(let* ((amt-adjust (- ledger-post-amount-alignment-column (let* ((amt-adjust (- ledger-post-amount-alignment-column
amt-offset amt-offset
(current-column)))) (current-column))))
(if (/= amt-adjust 0) (if (/= amt-adjust 0)
(ledger-post-adjust amt-adjust))))) (if (> amt-adjust 0)
(insert (make-string amt-adjust ? ))
(let ((curpoint (point)))
(beginning-of-line)
(ledger-next-account (line-end-position))
(when (> (+ curpoint amt-adjust)
(match-end 2))
(goto-char curpoint)
(delete-char amt-adjust))))))))
(forward-line) (forward-line)
(setq lines-left (not (eobp)))) (setq lines-left (not (eobp))))
(setq inhibit-modification-hooks nil)))) (setq inhibit-modification-hooks nil))))

View file

@ -21,7 +21,7 @@
;;; Commentary: ;;; Commentary:
;; Utilites for running ledger synchronously. ;; Utilities for running ledger synchronously.
;;; Code: ;;; Code: