Mercurial > hg > xemacs-beta
diff lisp/utils/forms-d2.el @ 0:376386a54a3c r19-14
Import from CVS: tag r19-14
author | cvs |
---|---|
date | Mon, 13 Aug 2007 08:45:50 +0200 |
parents | |
children | ac2d302a0011 |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/lisp/utils/forms-d2.el Mon Aug 13 08:45:50 2007 +0200 @@ -0,0 +1,80 @@ +;;; forms-d2.el --- demo forms-mode +;; Keywords: extensions + +;;; Synched up with: FSF 19.30. + +;; 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. +;; This example uses the (defun ...) method of defining. +;; +(defun forms-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 +) + +;; 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!