502
+ − 1 ;;; hash-table.el --- hash-table utility functions
+ − 2
+ − 3 ;; Copyright (C) 2000 Ben Wing.
+ − 4
+ − 5 ;; Author: Ben Wing
+ − 6 ;; Maintainer: XEmacs Development Team
+ − 7 ;; Keywords: internal, dumped
+ − 8
+ − 9 ;; This file is part of XEmacs.
+ − 10
+ − 11 ;; XEmacs is free software; you can redistribute it and/or modify it
+ − 12 ;; under the terms of the GNU General Public License as published by
+ − 13 ;; the Free Software Foundation; either version 2, or (at your option)
+ − 14 ;; any later version.
+ − 15
+ − 16 ;; XEmacs is distributed in the hope that it will be useful, but
+ − 17 ;; WITHOUT ANY WARRANTY; without even the implied warranty of
+ − 18 ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ − 19 ;; General Public License for more details.
+ − 20
+ − 21 ;; You should have received a copy of the GNU General Public License
+ − 22 ;; along with XEmacs; see the file COPYING. If not, write to the
+ − 23 ;; Free Software Foundation, 59 Temple Place - Suite 330,
+ − 24 ;; Boston, MA 02111-1307, USA.
+ − 25
+ − 26 ;;; Synched up with: Not in FSF.
+ − 27
+ − 28 ;;; Authorship:
+ − 29
+ − 30 ;; Created July 2000 by Ben Wing.
+ − 31
+ − 32 ;;; Commentary:
+ − 33
+ − 34 ;; This file is dumped with XEmacs.
+ − 35
+ − 36 ;;; Code:
+ − 37
+ − 38 (defun hash-table-key-list (hash-table)
+ − 39 "Return a list of all keys in HASH-TABLE."
+ − 40 (let (lis)
+ − 41 (maphash #'(lambda (key val)
+ − 42 (push key lis))
+ − 43 hash-table)
+ − 44 (nreverse lis)))
+ − 45
+ − 46 (defun hash-table-value-list (hash-table)
+ − 47 "Return a list of all values in HASH-TABLE."
+ − 48 (let (lis)
+ − 49 (maphash #'(lambda (key val)
+ − 50 (push val lis))
+ − 51 hash-table)
+ − 52 (nreverse lis)))
+ − 53
+ − 54 (defun hash-table-key-value-alist (hash-table)
+ − 55 "Return an alist of (KEY . VALUE) for all keys and values in HASH-TABLE."
+ − 56 (let (lis)
+ − 57 (maphash #'(lambda (key val)
+ − 58 (push (cons key val) lis))
+ − 59 hash-table)
+ − 60 (nreverse lis)))
+ − 61
+ − 62 (defun hash-table-key-value-plist (hash-table)
+ − 63 "Return a plist for all keys and values in HASH-TABLE.
+ − 64 A plist is a simple list containing alternating keys and values."
+ − 65 (let (lis)
+ − 66 (maphash #'(lambda (key val)
+ − 67 (push key lis)
+ − 68 (push val lis))
+ − 69 hash-table)
+ − 70 (nreverse lis)))