summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--lisp/ldg-commodities.el3
-rw-r--r--lisp/ldg-init.el29
-rw-r--r--lisp/ldg-mode.el2
-rw-r--r--lisp/ldg-new.el11
4 files changed, 27 insertions, 18 deletions
diff --git a/lisp/ldg-commodities.el b/lisp/ldg-commodities.el
index 14cc168f..7f15ab81 100644
--- a/lisp/ldg-commodities.el
+++ b/lisp/ldg-commodities.el
@@ -36,7 +36,6 @@
This only has effect interfacing to calc mode in edit amount"
:type 'boolean
:group 'ledger)
-
(defun ledger-split-commodity-string (str)
"Split a commoditized amount into two parts"
(let (val
@@ -85,7 +84,7 @@ DIRECTION can be :to-user or :from-user. All math calculations
are done with decimal-period, some users may prefer decimal-comma
which must be translated both directions."
(let ((val number-string))
- (if ledger-use-decimal-comma
+ (if (assoc "decimal-comma" ledger-environment-alist)
(cond ((eq direction :from-user)
;; change string to decimal-period
(while (string-match "," val)
diff --git a/lisp/ldg-init.el b/lisp/ldg-init.el
index 646d91b2..ef69de3d 100644
--- a/lisp/ldg-init.el
+++ b/lisp/ldg-init.el
@@ -22,14 +22,17 @@
;;; Commentary:
;; Determine the ledger environment
-(defvar init-file-name "~/.ledgerrc")
+(defcustom init-file-name "~/.ledgerrc"
+ "Location of the ledger initialization file. nil if you don't have one"
+ :group 'ledger)
+
(defvar ledger-environment-alist nil)
(defun ledger-init-parse-initialization (file)
- (with-current-buffer file
- (setq ledger-environment-alist nil)
- (goto-char (point-min))
- (while (re-search-forward "^--.+?\\($\\|[ ]\\)" nil t )
+ (with-current-buffer file
+ (setq ledger-environment-alist nil)
+ (goto-char (point-min))
+ (while (re-search-forward "^--.+?\\($\\|[ ]\\)" nil t )
(let ((matchb (match-beginning 0)) ;; save the match data, string-match stomp on it
(matche (match-end 0)))
(end-of-line)
@@ -43,17 +46,21 @@
(if (> (length value) 0)
value
t))))))))
- ledger-environment-alist))
+ ledger-environment-alist))
(defun ledger-init-load-init-file ()
(interactive)
(save-excursion
- (if (and (file-exists-p init-file-name)
+ (if (get-buffer (file-name-nondirectory init-file-name))
+ (ledger-init-parse-initialization (file-name-nondirectory init-file-name))
+ (if (and
+ init-file-name
+ (file-exists-p init-file-name)
(file-readable-p init-file-name))
- (progn
- (find-file init-file-name)
- (ledger-init-parse-initialization (file-name-nondirectory init-file-name))
- (kill-buffer (file-name-nondirectory init-file-name))))))
+ (let
+ (find-file-noselect init-file-name)
+ (ledger-init-parse-initialization (file-name-nondirectory init-file-name))
+ (kill-buffer (file-name-nondirectory init-file-name)))))))
diff --git a/lisp/ldg-mode.el b/lisp/ldg-mode.el
index 01a1b615..96ce576b 100644
--- a/lisp/ldg-mode.el
+++ b/lisp/ldg-mode.el
@@ -76,6 +76,8 @@
(add-hook 'before-revert-hook 'ledger-remove-overlays nil t)
(make-variable-buffer-local 'highlight-overlay)
+ (ledger-init-load-init-file)
+
(let ((map (current-local-map)))
(define-key map [(control ?c) (control ?a)] 'ledger-add-transaction)
(define-key map [(control ?c) (control ?b)] 'ledger-post-edit-amount)
diff --git a/lisp/ldg-new.el b/lisp/ldg-new.el
index d3a4bd02..7a2961f7 100644
--- a/lisp/ldg-new.el
+++ b/lisp/ldg-new.el
@@ -32,22 +32,23 @@
;;; Commentary:
;; Load up the ledger mode
+(require 'esh-arg)
+(require 'ldg-commodities)
(require 'ldg-complete)
(require 'ldg-exec)
+(require 'ldg-fonts)
+(require 'ldg-init)
(require 'ldg-mode)
+(require 'ldg-occur)
(require 'ldg-post)
(require 'ldg-reconcile)
(require 'ldg-register)
(require 'ldg-report)
+(require 'ldg-sort)
(require 'ldg-state)
(require 'ldg-test)
(require 'ldg-texi)
(require 'ldg-xact)
-(require 'ldg-sort)
-(require 'ldg-fonts)
-(require 'ldg-occur)
-(require 'ldg-commodities)
-(require 'esh-arg)
;;; Code: