bug#2259: 23.0.90; PATCH: getenv mistakenly passes a frame to getenv_internal, when it should instead pass a CONS
Eric Hanchrow <[email protected]>
| Newsgroups | gmane.emacs.bugs,gmane.emacs.pretest.bugs |
|---|---|
| Message-ID | <[email protected]> |
Please write in English if possible, because the Emacs maintainers usually do not have translators to read other languages for them. Your bug report will be posted to the [email protected] mailing list. Please describe exactly what actions triggered the bug and the precise symptoms of the bug: I noticed that (getenv "SSH_TTY" (selected-frame)) returned nil even though (assoc 'environment (frame-parameters (selected-frame))) returned an environment that indeed defined that variable. I poked around and saw that getenv was passing a frame to getenv_internal, but getenv_internal only consults that second argument if it's a CONS. This patch seems to fix the problem. diff --git a/lisp/env.el b/lisp/env.el index 8d8bebe..ad88ba8 100644 --- a/lisp/env.el +++ b/lisp/env.el @@ -198,7 +198,7 @@ in the environment list of the selected frame." (encode-coding-string variable locale-coding-system) variable) - frame))) + (and frame (assoc 'environment (frame-parameters frame)))))) (if (and enable-multibyte-characters value) (setq value (decode-coding-string value locale-coding-system))) (when (interactive-p) If Emacs crashed, and you have the Emacs process in the gdb debugger, please include the output from the following gdb commands: `bt full' and `xbacktrace'. If you would like to further debug the crash, please read the file /usr/local/src/emacs/etc/DEBUG for instructions. In GNU Emacs 23.0.90.1 (i686-pc-linux-gnu, GTK+ Version 2.14.4) of 2009-02-05 on debian Important settings: value of $LC_ALL: nil value of $LC_COLLATE: nil value of $LC_CTYPE: nil value of $LC_MESSAGES: nil value of $LC_MONETARY: nil value of $LC_NUMERIC: nil value of $LC_TIME: nil value of $LANG: nil value of $XMODIFIERS: nil locale-coding-system: utf-8-unix default-enable-multibyte-characters: t Major mode: Emacs-Lisp Minor modes in effect: auto-fill-function: do-auto-fill recentf-mode: t erc-ring-mode: t erc-pcomplete-mode: t erc-netsplit-mode: t eldoc-mode: t erc-button-mode: t erc-fill-mode: t erc-stamp-mode: t erc-autojoin-mode: t erc-track-mode: t erc-track-minor-mode: t erc-match-mode: t erc-services-mode: t erc-networks-mode: t erc-irccontrols-mode: t erc-noncommands-mode: t erc-readonly-mode: t desktop-save-mode: t display-time-mode: t global-auto-revert-mode: t diff-auto-refine-mode: t shell-dirtrack-mode: t tooltip-mode: t mouse-wheel-mode: t file-name-shadow-mode: t global-font-lock-mode: t font-lock-mode: t global-auto-composition-mode: t auto-composition-mode: t auto-encryption-mode: t auto-compression-mode: t line-number-mode: t transient-mark-mode: t Recent input: F RET C-x n d C-x b RET ESC C-n ESC C-p ESC C-n ESC C-p ESC C-n ESC C-f C-x b RET C-u C-n C-u C-n C-u C-n C-p C-p C-e ESC b C-s C-w C-s C-s C-a C-x b RET C-x b RET ESC C-n ESC C-n C-n C-x n w ESC C-d C-s C-w C-w C-s C-s C-s C-s C-s C-s C-a C-x n d C-x n w C-x 2 C-u C-@ ESC - C-l C-l C-x 0 C-x n d C-e ESC b C-s C-w C-s C-s C-s C-s C-s C-s C-s C-a C-x b RET C-x n w C-x v g l ESC 0 C-l C-x k RET C-x o C-x b i n i RET C-x b s c r RET C-p C-p ESC C-@ ESC w C-x o ESC m C-y ESC C-k TAB ESC b ESC C-u ESC C-k f r a m e C-x o ESC > ESC ( f r a m ESC / SPC n i l C-e C-j ESC C-p C-k C-p ESC C-d C-h f RET C-x b RET C-l ESC m ESC 1 ESC ( a n d SPC f r a m e SPC C-x C-s ESC C-x C-x b C-s RET ESC C-u ESC C-n C-x C-e C-x e DEL C-x b e m a RET C-g C-r s n o g ESC > r u d TAB s e e n SPC s n o g TAB g ESC / RET n u t s . RET C-x b RET C-x o C-x b C-s RET ESC x b y t e - r TAB RET RET RET y C-x v = C-x o ESC x r e p o r t - e m a c s - b u g RET Recent messages: Checking /usr/local/src/emacs/lisp/obsolete... Checking /usr/local/src/emacs/lisp/org... Checking /usr/local/src/emacs/lisp/play... Checking /usr/local/src/emacs/lisp/progmodes... Checking /usr/local/src/emacs/lisp/term... Checking /usr/local/src/emacs/lisp/textmodes... Checking /usr/local/src/emacs/lisp/url... Done (Total of 1 file compiled) Finding changes in /usr/local/src/emacs/lisp/env.el...done Scanning for dabbrevs...100% -- If there were a little guy running around inside the computer executing our programs, he would probably have as long and plaintive a tale to tell about his job as a federal government employee. -- Paul Graham