# HG changeset patch # User Glenn Morris # Date 1204514660 0 # Node ID f3c93a3ef0d5d4e1097dccd4e7676840a57253a0 # Parent e4b8b0c65ebc3284154f86e3f466e644e58f832f (viper-frame-value): Prefer buffer-local value, if set, over frame value. diff -r e4b8b0c65ebc -r f3c93a3ef0d5 lisp/emulation/viper-util.el --- a/lisp/emulation/viper-util.el Mon Mar 03 02:26:40 2008 +0000 +++ b/lisp/emulation/viper-util.el Mon Mar 03 03:24:20 2008 +0000 @@ -130,11 +130,14 @@ ,variable ;; Frame-local variables are obsolete from Emacs 22.2 onwards, ;; so we do it by hand instead. - ;; Distinguish between no frame parameter and a frame parameter - ;; with a value of nil. - (let ((fp (assoc ',variable (frame-parameters)))) - (if fp (cdr fp) - ,variable)))) + ;; Buffer-local values take precedence over frame-local ones. + (if (local-variable-p ',variable) + ,variable + ;; Distinguish between no frame parameter and a frame parameter + ;; with a value of nil. + (let ((fp (assoc ',variable (frame-parameters)))) + (if fp (cdr fp) + ,variable))))) ;; OS/2 (cond ((eq (viper-device-type) 'pm)