1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70
|
;;; config.el --- access configuration parameters
;; Copyright (C) 1997 Sun Microsystems, Inc.
;; Author: Martin Buchholz
;; Keywords: configure
;; This file is part of XEmacs.
;; XEmacs is free software; you can redistribute it and/or modify
;; it under the terms of the GNU General Public License as published by
;; the Free Software Foundation; either version 2, or (at your option)
;; any later version.
;; XEmacs is distributed in the hope that it will be useful,
;; but WITHOUT ANY WARRANTY; without even the implied warranty of
;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
;; GNU General Public License for more details.
;; You should have received a copy of the GNU General Public License
;; along with XEmacs; see the file COPYING. If not, write to the
;; Free Software Foundation, Inc., 59 Temple Place - Suite 330,
;; Boston, MA 02111-1307, USA.
;;; Synched up with: not in FSF.
;;; Commentary:
;;; Code:
(defvar config-value-file (expand-file-name "config.values" doc-directory)
"File containing configuration parameters and their values.")
(defvar config-value-hash-table nil
"Hash table to store configuration parameters and their values.")
;;;###autoload
(defun config-value-hash-table ()
"Return hash table of configuration parameters and their values."
(when (null config-value-hash-table)
(setq config-value-hash-table (make-hash-table :size 300))
(save-excursion
(let ((buf (get-buffer-create " *Config*")))
(set-buffer buf)
(erase-buffer)
(insert-file-contents config-value-file)
(goto-char (point-min))
(condition-case nil
(while t
(let* ((key (read buf))
(value (read buf))
(prev (gethash key config-value-hash-table)))
(cond ((null prev)
(puthash key value config-value-hash-table))
((atom prev)
(puthash key (list prev value) config-value-hash-table))
(t
(nconc prev (list value))))))
(end-of-file nil)))
(kill-buffer " *Config*")))
config-value-hash-table)
;;;###autoload
(defun config-value (config-symbol)
"Return the value of the configuration parameter CONFIG_SYMBOL."
(gethash config-symbol (config-value-hash-table)))
(provide 'config)
;;; config.el ends here
|