GNU bug report logs -
#2259
23.0.90; PATCH: getenv mistakenly passes a frame to getenv_internal, when it should instead pass a CONS
Previous Next
Reported by: Eric Hanchrow <eric.hanchrow <at> gmail.com>
Date: Tue, 10 Feb 2009 03:45:02 UTC
Severity: normal
Tags: patch
Done: Juanma Barranquero <lekktu <at> gmail.com>
Bug is archived. No further changes may be made.
Full log
View this message in rfc822 format
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 emacs-pretest-bug <at> gnu.org 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
This bug report was last modified 16 years and 164 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.