X-Git-Url: http://git.chise.org/gitweb/?a=blobdiff_plain;f=alist.el;h=d8d8d18cfe994b2b752cfea8855cb2b687b54dab;hb=cc97e1054659c154d67b72fa9a19b0a511253377;hp=4b656de6b5dbc9728010629f669bb259330a7c38;hpb=76aca593063c3370f8b1d1361e1bf2cedb5e9f6d;p=elisp%2Fapel.git diff --git a/alist.el b/alist.el index 4b656de..d8d8d18 100644 --- a/alist.el +++ b/alist.el @@ -19,8 +19,8 @@ ;; You should have received a copy of the GNU General Public License ;; along with GNU Emacs; see the file COPYING. If not, write to the -;; Free Software Foundation, Inc., 59 Temple Place - Suite 330, -;; Boston, MA 02111-1307, USA. +;; Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, +;; Boston, MA 02110-1301, USA. ;;; Code: @@ -40,19 +40,10 @@ return a new alist whose car is the new pair and cdr is ALIST." (defun del-alist (key alist) "Delete an element whose car equals KEY from ALIST. Return the modified ALIST." - (if (equal key (car (car alist))) - (cdr alist) - (let ((pr alist) - (r (cdr alist))) - (catch 'tag - (while (not (null r)) - (if (equal key (car (car r))) - (progn - (rplacd pr (cdr r)) - (throw 'tag alist))) - (setq pr r) - (setq r (cdr r))) - alist)))) + (let ((pair (assoc key alist))) + (if pair + (delq pair alist) + alist))) ;;;###autoload (defun set-alist (symbol key value)