X-Git-Url: http://git.chise.org/gitweb/?a=blobdiff_plain;ds=sidebyside;f=lisp%2Falist.el;h=05d1267cf605522d3cdba46d98905c3dcc611692;hb=eeca41d3213b7a3b7efcf6508693e748c1590748;hp=6ee8b03ab83e838db3dfb38ca3fa175d7932e27d;hpb=6883ee56ec887c2c48abe5b06b5e66aa74031910;p=chise%2Fxemacs-chise.git.1 diff --git a/lisp/alist.el b/lisp/alist.el index 6ee8b03..05d1267 100644 --- a/lisp/alist.el +++ b/lisp/alist.el @@ -1,13 +1,11 @@ -;;; alist.el --- utility functions about assoc-list +;;; alist.el --- utility functions about association-list -;; Copyright (C) 1993,1994,1995,1996 Free Software Foundation, Inc. +;; Copyright (C) 1993,1994,1995,1996,1998 Free Software Foundation, Inc. ;; Author: MORIOKA Tomohiko -;; Version: -;; $Id: alist.el,v 1.1 1997/11/29 20:37:43 steve Exp $ ;; Keywords: alist -;; This file is part of SEMI (SEMI is Emacs MIME Interfaces). +;; This file is part of APEL (A Portable Emacs Library). ;; This program is free software; you can redistribute it and/or ;; modify it under the terms of the GNU General Public License as @@ -24,8 +22,20 @@ ;; Free Software Foundation, Inc., 59 Temple Place - Suite 330, ;; Boston, MA 02111-1307, USA. -;;; Code: - + +;;;###autoload +(defun vassoc (key valist) + "Search VALIST for a vector whose first element is equal to KEY. +See also `assoc'." + ;; by Stig@hackvan.com + (let (el) + (catch 'done + (while (setq el (pop valist)) + (and (equal key (aref el 0)) + (throw 'done el)))))) + + +;;;###autoload (defun put-alist (item value alist) "Modify ALIST to set VALUE to ITEM. If there is a pair whose car is ITEM, replace its cdr by VALUE. @@ -40,6 +50,7 @@ return new alist whose car is the new pair and cdr is ALIST. (cons (cons item value) alist) ))) +;;;###autoload (defun del-alist (item alist) "If there is a pair whose key is ITEM, delete it from ALIST. \[tomo's ELIS emulating function]" @@ -59,6 +70,7 @@ return new alist whose car is the new pair and cdr is ALIST. ) alist)))) +;;;###autoload (defun set-alist (symbol item value) "Modify a alist indicated by SYMBOL to set VALUE to ITEM." (or (boundp symbol) @@ -67,12 +79,14 @@ return new alist whose car is the new pair and cdr is ALIST. (set symbol (put-alist item value (symbol-value symbol))) ) +;;;###autoload (defun remove-alist (symbol item) "Remove ITEM from the alist indicated by SYMBOL." (and (boundp symbol) (set symbol (del-alist item (symbol-value symbol))) )) +;;;###autoload (defun modify-alist (modifier default) "Modify alist DEFAULT into alist MODIFIER." (mapcar (function @@ -82,6 +96,7 @@ return new alist whose car is the new pair and cdr is ALIST. modifier) default) +;;;###autoload (defun set-modified-alist (sym modifier) "Modify a value of a symbol SYM into alist MODIFIER. The symbol SYM should be alist. If it is not bound,