summaryrefslogtreecommitdiff
path: root/lisp/forms-d2.el
diff options
context:
space:
mode:
authorDave Love <fx@gnu.org>1999-10-05 11:10:25 +0000
committerDave Love <fx@gnu.org>1999-10-05 11:10:25 +0000
commit0015ac80db6f2756d73660e317bdcc9f6b8481d8 (patch)
tree412ea3f125be4cfe1e138a3b617facab936e1ed6 /lisp/forms-d2.el
parent3dd3599dd2ca05d9603a33049e893b433dcc63a0 (diff)
downloademacs-0015ac80db6f2756d73660e317bdcc9f6b8481d8.tar.gz
#
Diffstat (limited to 'lisp/forms-d2.el')
-rw-r--r--lisp/forms-d2.el80
1 files changed, 80 insertions, 0 deletions
diff --git a/lisp/forms-d2.el b/lisp/forms-d2.el
new file mode 100644
index 00000000000..22331292e14
--- /dev/null
+++ b/lisp/forms-d2.el
@@ -0,0 +1,80 @@
+;;; forms-d2.el --- demo forms-mode
+
+;; Author: Johan Vromans <jvromans@squirrel.nl>
+;; Created: 1989
+
+;; This sample forms exploit most of the features of forms mode.
+
+;; Set the name of the data file.
+(setq forms-file "forms-d2.dat")
+
+;; Use 'forms-enumerate' to set field names and number thereof.
+(setq forms-number-of-fields
+ (forms-enumerate
+ '(arch-newsgroup ; 1
+ arch-volume ; 2
+ arch-issue ; and ...
+ arch-article ; ... so
+ arch-shortname ; ... ... on
+ arch-parts
+ arch-from
+ arch-longname
+ arch-keywords
+ arch-date
+ arch-remarks)))
+
+;; The following functions are used by this form for layout purposes.
+;;
+(defun arch-tocol (target &optional fill)
+ "Produces a string to skip to column TARGET. Prepends newline if needed.
+The optional FILL should be a character, used to fill to the column."
+ (if (null fill)
+ (setq fill ? ))
+ (if (< target (current-column))
+ (concat "\n" (make-string target fill))
+ (make-string (- target (current-column)) fill)))
+;;
+(defun arch-rj (target field &optional fill)
+ "Produces a string to skip to column TARGET minus the width of field FIELD.
+Prepends newline if needed. The optional FILL should be a character,
+used to fill to the column."
+ (arch-tocol (- target (length (nth field forms-fields))) fill))
+
+;; Record filters.
+;;
+(defun arch-new-record-filter (the-record)
+ "Form a new record with some defaults."
+ (aset the-record arch-from (user-full-name))
+ (aset the-record arch-date (current-time-string))
+ the-record ; return it
+)
+(setq forms-new-record-filter 'arch-new-record-filter)
+
+;; The format list.
+(setq forms-format-list
+ (list
+ "====== Public Domain Software Archive ======\n\n"
+ arch-shortname
+ " - " arch-longname
+ "\n\n"
+ "Article: " arch-newsgroup
+ "/" arch-article
+ " "
+ '(arch-tocol 40)
+ "Issue: " arch-issue
+ " "
+ '(arch-rj 73 10)
+ "Date: " arch-date
+ "\n\n"
+ "Submitted by: " arch-from
+ "\n"
+ '(arch-tocol 79 ?-)
+ "\n"
+ "Keywords: " arch-keywords
+ "\n\n"
+ "Parts: " arch-parts
+ "\n\n====== Remarks ======\n\n"
+ arch-remarks
+ ))
+
+;; That's all, folks!