bug#81591: 31.0.91; getenv fallback to selected frame is inaccurately documented
Eli Zaretskii <[email protected]>
| Newsgroups | gmane.emacs.bugs |
|---|---|
| Message-ID | <[email protected]> |
> From: "Aaron L. Zeng" <[email protected]> > Date: Sun, 09 Aug 2026 15:19:15 -0400 > > Hello, > > I noticed a discrepancy in the description of how `getenv' (with a nil > FRAME argument) behaves when a variable is not found in > process-environment but is found in the selected frame's environment > parameter. getenv's docstring says: > > If optional parameter FRAME is non-nil, then it should be a > frame. This function will look up VARIABLE in its ‘environment’ > parameter. > > Otherwise, this function searches ‘process-environment’ for > VARIABLE. If it is not found there, then it continues the search > in the environment list of the selected frame. > > So, when FRAME is nil, I would expect that any variables not present > in `process-environment' should be looked up in the selected frame's > environment. However, this does not happen for SSH_CONNECTION > (reading the source of getenv_internal, it seems to actually be a > special case for DISPLAY and no other variables). I noticed I had to > explicitly pass the selected frame to the `getenv' function. > > Looking at the history of getenv_internal, it seems quite deliberate > that DISPLAY is a special case and that no other variables were > intended to be looked up in the selected frame implicitly. If that's > the case, I would suggest the docstring should be updated to mention > it. Thanks, should be fixed now. I took the opportunity to update the ELisp manual as well, which was also outdated and missing details in this regard.