Mercurial > hg > xemacs-beta
comparison lisp/hyperbole/hvar.el @ 0:376386a54a3c r19-14
Import from CVS: tag r19-14
author | cvs |
---|---|
date | Mon, 13 Aug 2007 08:45:50 +0200 |
parents | |
children |
comparison
equal
deleted
inserted
replaced
-1:000000000000 | 0:376386a54a3c |
---|---|
1 ;;!emacs | |
2 ;; | |
3 ;; FILE: hvar.el | |
4 ;; SUMMARY: Variable manipulation routines for Hyperbole. | |
5 ;; USAGE: GNU Emacs Lisp Library | |
6 ;; KEYWORDS: extensions, hypermedia | |
7 ;; | |
8 ;; AUTHOR: Bob Weiner | |
9 ;; ORG: Brown U. | |
10 ;; | |
11 ;; ORIG-DATE: 1-Oct-91 at 14:00:24 | |
12 ;; LAST-MOD: 14-Apr-95 at 16:13:46 by Bob Weiner | |
13 ;; | |
14 ;; This file is part of Hyperbole. | |
15 ;; Available for use and distribution under the same terms as GNU Emacs. | |
16 ;; | |
17 ;; Copyright (C) 1991-1995, Free Software Foundation, Inc. | |
18 ;; Developed with support from Motorola Inc. | |
19 ;; | |
20 ;; DESCRIPTION: | |
21 ;; DESCRIP-END. | |
22 | |
23 ;;; ************************************************************************ | |
24 ;;; Other required Elisp libraries | |
25 ;;; ************************************************************************ | |
26 | |
27 (require 'set) | |
28 | |
29 ;;; ************************************************************************ | |
30 ;;; Public functions | |
31 ;;; ************************************************************************ | |
32 | |
33 ;;;###autoload | |
34 (defun var:append (var-symbol-name list-to-add) | |
35 "Appends to value held by VAR-SYMBOL-NAME, LIST-TO-ADD. Returns new value. | |
36 If VAR-SYMBOL-NAME is unbound, it is set to LIST-TO-ADD. | |
37 Often used to append to 'hook' variables." | |
38 (let ((val)) | |
39 (if (and (boundp var-symbol-name) | |
40 (setq val (symbol-value var-symbol-name)) | |
41 (or (if (symbolp val) (setq val (cons val nil))) | |
42 (listp val))) | |
43 ;; Don't add if list elts are already there. | |
44 (if (memq nil (mapcar (function | |
45 (lambda (elt) (set:member elt val))) | |
46 list-to-add)) | |
47 (set-variable var-symbol-name | |
48 (if (eq (car val) 'lambda) | |
49 (apply 'list val list-to-add) | |
50 (append val list-to-add))) | |
51 val) | |
52 (set-variable var-symbol-name list-to-add)))) | |
53 | |
54 (provide 'hvar) | |
55 |