diff options
author | Craig Earls <enderw88@gmail.com> | 2013-07-02 15:37:33 -0700 |
---|---|---|
committer | Craig Earls <enderw88@gmail.com> | 2013-07-02 15:37:33 -0700 |
commit | 63ba45dbaab04722cd59bf610ae77b8334ca213d (patch) | |
tree | bd0b1b22729a38b99d24bc1b1bc490a42e3acf53 /lisp/ldg-texi.el | |
parent | 5b8817c8e8bb7524734d7f39ab6a170b856c6e90 (diff) | |
download | fork-ledger-63ba45dbaab04722cd59bf610ae77b8334ca213d.tar.gz fork-ledger-63ba45dbaab04722cd59bf610ae77b8334ca213d.tar.bz2 fork-ledger-63ba45dbaab04722cd59bf610ae77b8334ca213d.zip |
Finished changing name to ledger-*
All files and references changed ldg-* to ledger-*
Diffstat (limited to 'lisp/ldg-texi.el')
-rw-r--r-- | lisp/ldg-texi.el | 172 |
1 files changed, 0 insertions, 172 deletions
diff --git a/lisp/ldg-texi.el b/lisp/ldg-texi.el deleted file mode 100644 index 84ba34c2..00000000 --- a/lisp/ldg-texi.el +++ /dev/null @@ -1,172 +0,0 @@ -;;; ldg-texi.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. - -(defgroup ledger-texi nil -"Options for working on Ledger texi documentation" -:group 'ledger) - -(defcustom ledger-texi-sample-doc-path "~/ledger/doc/sample.dat" -"Location for sample data to be used in texi tests" -:type 'file -:group 'ledger-texi) - -(defcustom ledger-texi-normalization-args "--args-only --columns 80" -"texi normalization for producing ledger output" -:type 'string -:group 'ledger-texi) - -(defun ledger-update-test () - (interactive) - (goto-char (point-min)) - (let ((command (buffer-substring (point-min) (line-end-position))) - input) - (re-search-forward "^<<<\n") - (let ((beg (point)) end) - (re-search-forward "^>>>") - (setq end (match-beginning 0)) - (forward-line 1) - (let ((output-beg (point))) - (re-search-forward "^>>>") - (goto-char (match-beginning 0)) - (delete-region output-beg (point)) - (apply #'call-process-region - beg end (expand-file-name "~/Products/ledger/debug/ledger") - nil t nil - "-f" "-" "--args-only" "--columns=80" "--no-color" - (split-string command " ")))))) - -(defun ledger-texi-write-test (name command input output &optional category) - (let ((buf (current-buffer))) - (with-current-buffer (find-file-noselect - (expand-file-name (concat name ".test") category)) - (erase-buffer) - (let ((case-fold-search nil)) - (if (string-match "\\$LEDGER\\s-+" command) - (setq command (replace-match "" t t command))) - (if (string-match " -f \\$\\([-a-z]+\\)" command) - (setq command (replace-match "" t t command)))) - (insert command ?\n) - (insert "<<<" ?\n) - (insert input) - (insert ">>>1" ?\n) - (insert output) - (insert ">>>2" ?\n) - (insert "=== 0" ?\n) - (save-buffer) - (unless (eq buf (current-buffer)) - (kill-buffer (current-buffer)))))) - -(defun ledger-texi-update-test () - (interactive) - (let ((details (ledger-texi-test-details)) - (name (file-name-sans-extension - (file-name-nondirectory (buffer-file-name))))) - (ledger-texi-write-test - name (nth 0 details) - (nth 1 details) - (ledger-texi-invoke-command - (ledger-texi-expand-command - (nth 0 details) - (ledger-texi-write-test-data name (nth 1 details))))))) - -(defun ledger-texi-test-details () - (goto-char (point-min)) - (let ((command (buffer-substring (point) (line-end-position))) - input output) - (re-search-forward "^<<<") - (let ((input-beg (1+ (match-end 0)))) - (re-search-forward "^>>>1") - (let ((output-beg (1+ (match-end 0)))) - (setq input (buffer-substring input-beg (match-beginning 0))) - (re-search-forward "^>>>2") - (setq output (buffer-substring output-beg (match-beginning 0))) - (list command input output))))) - -(defun ledger-texi-expand-command (command data-file) - (if (string-match "\\$LEDGER" command) - (replace-match (format "%s -f \"%s\" %s" ledger-binary-path - data-file ledger-texi-normalization-args) t t command) - (concat (format "%s -f \"%s\" %s " ledger-binary-path - data-file ledger-texi-normalization-args) command))) - -(defun ledger-texi-invoke-command (command) - (with-temp-buffer (shell-command command t (current-buffer)) - (if (= (point-min) (point-max)) - (progn - (push-mark nil t) - (message "Command '%s' yielded no result at %d" command (point)) - (ding)) - (buffer-string)))) - -(defun ledger-texi-write-test-data (name input) - (let ((path (expand-file-name name temporary-file-directory))) - (with-current-buffer (find-file-noselect path) - (erase-buffer) - (insert input) - (save-buffer)) - path)) - -(defun ledger-texi-update-examples () - (interactive) - (save-excursion - (goto-char (point-min)) - (while (re-search-forward "^@c \\(\\(?:sm\\)?ex\\) \\(\\S-+\\): \\(.*\\)" nil t) - (let ((section (match-string 1)) - (example-name (match-string 2)) - (command (match-string 3)) expanded-command - (data-file ledger-texi-sample-doc-path) - input output) - (goto-char (match-end 0)) - (forward-line) - (when (looking-at "@\\(\\(?:small\\)?example\\)") - (let ((beg (point))) - (re-search-forward "^@end \\(\\(?:small\\)?example\\)") - (delete-region beg (1+ (point))))) - - (when (let ((case-fold-search nil)) - (string-match " -f \\$\\([-a-z]+\\)" command)) - (let ((label (match-string 1 command))) - (setq command (replace-match "" t t command)) - (save-excursion - (goto-char (point-min)) - (search-forward (format "@c data: %s" label)) - (re-search-forward "@\\(\\(?:small\\)?example\\)") - (forward-line) - (let ((beg (point))) - (re-search-forward "@end \\(\\(?:small\\)?example\\)") - (setq data-file (ledger-texi-write-test-data - (format "%s.dat" label) - (buffer-substring-no-properties - beg (match-beginning 0)))))))) - - (let ((section-name (if (string= section "smex") - "smallexample" - "example")) - (output (ledger-texi-invoke-command - (ledger-texi-expand-command command data-file)))) - (insert "@" section-name ?\n output - "@end " section-name ?\n)) - - ;; Update the regression test associated with this example - (ledger-texi-write-test example-name command input output - "../test/manual"))))) - -(provide 'ldg-texi) |