diff options
author | Arun Isaac | 2020-12-31 13:10:54 +0530 |
---|---|---|
committer | Arun Isaac | 2020-12-31 15:07:20 +0530 |
commit | 70968110a28f40ca9f7bdb121b075c396040fda3 (patch) | |
tree | b5c3d821db480ede8cb6b1a5cdfb83c4a41469f6 | |
parent | 94861be30ad125f7af7357f0b4195706b7a4c5f0 (diff) | |
download | ksh-reports-70968110a28f40ca9f7bdb121b075c396040fda3.tar.gz ksh-reports-70968110a28f40ca9f7bdb121b075c396040fda3.tar.lz ksh-reports-70968110a28f40ca9f7bdb121b075c396040fda3.zip |
Deprecate setfun.
* ksh-forms-improved.el (setfun): Delete function.
(single-line-org-entry, multi-line-org-entry): Rewrite without setfun.
(make-org-entry-function): Rename to
ksh-forms-org-entry-function. Do not return a lambda
function. Actually, do the work of that function.
-rw-r--r-- | ksh-forms-improved.el | 29 |
1 files changed, 13 insertions, 16 deletions
diff --git a/ksh-forms-improved.el b/ksh-forms-improved.el index 3e9e333..cfa72b9 100644 --- a/ksh-forms-improved.el +++ b/ksh-forms-improved.el @@ -20,11 +20,6 @@ (defalias 'print-buffer 'print-report) ;; Utilities -(defmacro setfun (function-name function) - "Set functions like using define in scheme" - `(defun ,function-name (&rest args) - (apply ,function args))) - (defun set-values (record values) "Set record RECORD to values in alist VALUES" (mapc (lambda (field-value) @@ -42,23 +37,25 @@ (setq forms-new-record-filter 'new-record-filter) ;; Entry creation functions for org export -(defun make-org-entry-function (format-string) - (lambda (label-field) - (let* ((label (car label-field)) - (field-no (cdr label-field)) - (value (get-field field-no))) - (if value - (princ (format format-string label - (replace-regexp-in-string "\n" "\n\n" value))) - (user-error "Field \"%s\" should not be blank" label))))) +(defun ksh-forms-org-entry-function (format-string label-field) + (pcase label-field + (`(,label . ,field-no) + (let ((value (get-field field-no))) + (if value + (princ (format format-string label + (replace-regexp-in-string "\n" "\n\n" value))) + (user-error "Field \"%s\" should not be blank" label)))))) (defun get-field (field) "Parse form and return field FIELD from form" (cond ((integerp field) (nth (1- field) (forms--parse-form))) ((stringp field) field))) -(setfun single-line-org-entry (make-org-entry-function "*%s:* %s\n\n")) -(setfun multi-line-org-entry (make-org-entry-function "\n* %s\n%s\n\n")) +(defun single-line-org-entry (label-field) + (ksh-forms-org-entry-function "*%s:* %s\n\n" label-field)) + +(defun multi-line-org-entry (label-field) + (ksh-forms-org-entry-function "\n* %s\n%s\n\n" label-field)) (defun text-if-non-blank (text) (if (and text (not (string-blank-p text))) |