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

This commit is contained in:
Craig Earls 2013-02-26 15:37:15 -07:00
commit a40d9f721f
9 changed files with 113 additions and 25 deletions

View file

@ -117,16 +117,18 @@ it's usually fairly obvious where things have gone astray.
- Q: Something else fails, or Ledger crashes on startup
A: This, I am most interested in hearing about. Please e-mail me a copy of
config.log and your build log to <johnw@newartisans.com>. Also, if
Ledger is crashing, try running it under gdb like so:
A: This, I am most interested in hearing about. Please file a bug
at the Ledger Bugzilla, http://bugs.ledger-cli.org/. The more
details you can provide, the better. Also, if Ledger is crashing,
try running it under gdb like so:
$ gdb ledger
(gdb) run <ARGS TO LEDGER>
... runs till crash ...
(gdb) bt
Send me that backtrace output, and the output from "ledger --version".
Put that backtrace output, and the output from "ledger
--version" in the bug report.
----------------------------------------------------------------------

View file

@ -10,7 +10,7 @@ few alternatives.
I know, you just want to build and play. If you have all the dependencies
installed (see below), then simply do this:
git clone git://github.com/jwiegley/ledger.git
git clone git://github.com/ledger/ledger.git
cd ledger && ./acprep update # Update to the latest, configure, make
Now try your first ledger command:
@ -153,8 +153,7 @@ Now that you're up and running, here are a few resources to keep in mind:
- [Home page](http://ledger-cli.org)
- [IRC channel](irc://irc.freenode.net/ledger)
- [Mailing List / Forum](http://groups.google.com/group/ledger-cli)
- [GitHub project page](http://github.com/jwiegley/ledger)
- [Buildbot status](http://www.newartisans.com:9090)
- [GitHub project page](http://github.com/ledger/ledger)
- [Ohloh code analysis](http://www.ohloh.net/projects/ledger)
If you have ideas you'd like to share, the best way is either to e-mail me a

View file

@ -55,7 +55,7 @@ foreach(file ${info_files})
endif(BUILD_WEB_DOCS)
if(NOT TEXI2PDF)
mesage(WARNING "Could not find texi2pdf. PDF version of documentation will not be built.")
message(WARNING "Could not find texi2pdf. PDF version of documentation will not be built.")
else()
add_custom_command(OUTPUT ${file_base}.pdf
COMMAND texi2pdf -b -q -o ${file_base}.pdf ${CMAKE_CURRENT_SOURCE_DIR}/${file}

View file

@ -304,6 +304,16 @@ If you would rather start with your own journal right away please see @ref{Keepi
* Using the Windows command line::
@end menu
Please note that as a command line program, Ledger is controlled from
your shell. There are several different command shells that all behave
slightly differently with repsect to some special characters. In
particular, the BaSH shell will interpret $ signs differently than
ledger and they must be escaped to reach the actual program. Another
example is zsh, which will interpret ^ differently than ledger expects.
In all cases that follow you should take that into account when entering
the commandline arguments given. There are too many variations between
shells to give concrete examples for each.
@node Balance Report, Register Report, Run Some Reports, Run Some Reports
@subsection Balance Report
@cindex balance report

View file

@ -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)
@ -95,7 +94,9 @@ which must be translated both directions."
(while (string-match "\\." val)
(setq val (replace-match "," nil nil val)))) ;; gets rid of periods
(t
(error "ledger-commodity-string-number-decimalize: direction not properly specified %S" direction))))
(error "ledger-commodity-string-number-decimalize: direction not properly specified %S" direction)))
(while (string-match "," val)
(setq val (replace-match "" nil nil val))))
val))

69
lisp/ldg-init.el Normal file
View file

@ -0,0 +1,69 @@
;;; ldg-init.el --- Helper code for use with the "ledger" command-line tool
;; Copyright (C) 2003-2013 John Wiegley (johnw AT gnu DOT org)
;; This file is not part of GNU Emacs.
;; This is free software; you can redistribute it and/or modify it under
;; the terms of the GNU General Public License as published by the Free
;; Software Foundation; either version 2, or (at your option) any later
;; version.
;;
;; This is distributed in the hope that it will be useful, but WITHOUT
;; ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
;; FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
;; for more details.
;;
;; You should have received a copy of the GNU General Public License
;; along with GNU Emacs; see the file COPYING. If not, write to the
;; Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
;; MA 02111-1307, USA.
;;; Commentary:
;; Determine the ledger environment
(defcustom ledger-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 )
(let ((matchb (match-beginning 0)) ;; save the match data, string-match stomp on it
(matche (match-end 0)))
(end-of-line)
(setq ledger-environment-alist
(append ledger-environment-alist
(list (cons (let ((flag (buffer-substring (+ 2 matchb) matche)))
(if (string-match "[ \t\n\r]+\\'" flag)
(replace-match "" t t flag)
flag))
(let ((value (buffer-substring matche (point) )))
(if (> (length value) 0)
value
t))))))))
ledger-environment-alist))
(defun ledger-init-load-init-file ()
(interactive)
(let ((init-base-name (file-name-nondirectory ledger-init-file-name)))
(if (get-buffer init-base-name) ;; init file already loaded, parse it and leave it
(ledger-init-parse-initialization init-base-name)
(if (and ;; init file not loaded, load, parse and kill
ledger-init-file-name
(file-exists-p ledger-init-file-name)
(file-readable-p ledger-init-file-name))
(progn
(find-file-noselect ledger-init-file-name)
(ledger-init-parse-initialization init-base-name)
(kill-buffer init-base-name))))))
(provide 'ldg-init)
;;; ldg-init.el ends here

View file

@ -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)
@ -126,6 +128,8 @@
(define-key map [toggle-post] '(menu-item "Toggle Current Posting" ledger-toggle-current))
(define-key map [toggle-xact] '(menu-item "Toggle Current Transaction" ledger-toggle-current-entry))
(define-key map [sep4] '(menu-item "--"))
(define-key map [edit-amount] '(menu-item "Reconcile Account" ledger-reconcile))
(define-key map [sep6] '(menu-item "--"))
(define-key map [edit-amount] '(menu-item "Calc on Amount" ledger-post-edit-amount))
(define-key map [sep] '(menu-item "--"))
(define-key map [delete-xact] '(menu-item "Delete Entry" ledger-delete-current-transaction))

View file

@ -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:

View file

@ -319,16 +319,18 @@ Optional EDIT the command."
(let ((file (match-string 1))
(line (string-to-number (match-string 2))))
(delete-region (match-beginning 0) (match-end 0))
(set-text-properties (line-beginning-position) (line-end-position)
(list 'ledger-source (cons file (save-window-excursion
(save-excursion
(find-file file)
(widen)
(ledger-goto-line line)
(point-marker))))))
(add-text-properties (line-beginning-position) (line-end-position)
(if file
(progn
(set-text-properties (line-beginning-position) (line-end-position)
(list 'ledger-source (cons file (save-window-excursion
(save-excursion
(find-file file)
(widen)
(ledger-goto-line line)
(point-marker))))))
(add-text-properties (line-beginning-position) (line-end-position)
(list 'face 'ledger-font-report-clickable-face))
(end-of-line))))
(end-of-line))))))
(goto-char data-pos)))