Function: pr-eval-setting-alist

pr-eval-setting-alist is a byte-compiled function defined in printing.el.gz.

Signature

(pr-eval-setting-alist KEY &optional GLOBAL OLD)

Source Code

;; Defined in /usr/src/emacs/lisp/printing.el.gz
(defun pr-eval-setting-alist (key &optional global old)
  (let ((setting (cdr (assq key pr-setting-database))))
    (and setting
	 (let ((inherits (nth 0 setting))
	       (local    (nth 1 setting))
	       (kill     (nth 2 setting))
	       local-list)
	   (and local global
		(progn
		  (ding)
		  (message "There are local buffer settings for `%S'." key)
		  (setq global nil)))
	   (and inherits
		(if (memq inherits old)
		    (error "Circular inheritance for `%S'" inherits)
		  (setq local-list
			(pr-eval-setting-alist inherits global
					       (cons inherits old)))))
	   (mapc
	    (cond ((not local)		; global settings
                   (lambda (option)
                     (let ((var-sym (car option)))
                       (or (eq var-sym 'inherits-from:)
                           (set var-sym (eval (cdr option)))))))
		  (kill			; local settings with killing
                   (lambda (option)
                     (let ((var-sym (car option)))
                       (unless (eq var-sym 'inherits-from:)
                         (setq local-list (cons var-sym local-list))
                         (set (make-local-variable var-sym)
                              (eval (cdr option)))))))
		  (t			; local settings without killing
                   (lambda (option)
                     (let ((var-sym (car option)))
                       (or (eq var-sym 'inherits-from:)
                           (set (make-local-variable var-sym)
                                (eval (cdr option))))))))
	    (nthcdr 3 setting))
	   local-list))))