Package: emacs;
Reported by: Dave Abrahams <dave <at> boostpro.com>
Date: Thu, 30 Nov 2023 02:31:02 UTC
Severity: normal
Tags: wontfix
Found in version 29.1
Done: Stefan Kangas <stefankangas <at> gmail.com>
Bug is archived. No further changes may be made.
View this message in rfc822 format
From: help-debbugs <at> gnu.org (GNU bug Tracking System) To: Dave Abrahams <dave <at> boostpro.com> Subject: bug#67540: closed (Re: bug#67540: 29.1; Emacs on Windows incorrectly capitalizes some environment variables) Date: Tue, 04 Mar 2025 10:16:02 +0000
[Message part 1 (text/plain, inline)]
Your bug report #67540: 29.1; Emacs on Windows incorrectly capitalizes some environment variables which was filed against the emacs package, has been closed. The explanation is attached below, along with your original report. If you require more details, please reply to 67540 <at> debbugs.gnu.org. -- 67540: https://debbugs.gnu.org/cgi/bugreport.cgi?bug=67540 GNU Bug Tracking System Contact help-debbugs <at> gnu.org with problems
[Message part 2 (message/rfc822, inline)]
From: Stefan Kangas <stefankangas <at> gmail.com> To: Eli Zaretskii <eliz <at> gnu.org> Cc: Dave Abrahams <dave <at> boostpro.com>, jporterbugs <at> gmail.com, 67540-done <at> debbugs.gnu.org Subject: Re: bug#67540: 29.1; Emacs on Windows incorrectly capitalizes some environment variables Date: Tue, 4 Mar 2025 02:15:26 -0800Eli Zaretskii <eliz <at> gnu.org> writes: >> From: Dave Abrahams <dave <at> boostpro.com> >> Date: Fri, 1 Dec 2023 12:34:40 -0800 >> Cc: jporterbugs <at> gmail.com, 67540 <at> debbugs.gnu.org >> >> You’re saying that these are ported UNIX programs that are only designed to >> work from inside of Emma, which has changed the spelling of the environment >> variable names? > > No, they are not for Emacs only. But they expect to see PATH, and > they compare case-sensitively with "PATH". If you want to cater to > swift, which doesn't recognize "PATH", but does recognize "Path", why > not assume that there are other programs which do the opposite, and > which will be broken by the change you propose? > > IOW, I don't see why we should change code that worked for decades > because a single application implements a case-sensitive search of > environment variables on MS-Windows, in direct contradiction of > platform conventions, and contrary to the behavior of every other > program I've ever used on Windows? This is tagged wontfix, and I think the reasoning for that presented here makes sense. I'm therefore closing this bug report now.
[Message part 3 (message/rfc822, inline)]
From: Dave Abrahams <dave <at> boostpro.com> To: bug-gnu-emacs <at> gnu.org Subject: 29.1; Emacs on Windows incorrectly capitalizes some environment variables Date: Wed, 29 Nov 2023 18:29:26 -0800emacs -Q M-! set Now issue the "set" command from a CMD shell. Notice that the "Path" environment variable has been renamed to "PATH" in Emacs. This renaming interferes with some tools operating correctly e.g. the swift compiler (see https://swift.org). I notice that the "ComSpec" variable is getting the same treatment I am able to work around the problem as follows: (defun unsetenv (var-name) (let ((current-prefix-arg '(4))) (funcall-interactively 'setenv var-name nil))) (when (eq system-type 'windows-nt) (dolist (v '("Path" "ComSpec")) (let ((x (getenv v))) (unsetenv (upcase v)) (setenv v x)))) In GNU Emacs 29.1 (build 2, x86_64-w64-mingw32) of 2023-08-02 built on AVALON Windowing system distributor 'Microsoft Corp.', version 10.0.22621 System Description: Microsoft Windows 10 Pro (v10.0.2009.22621.2715) Configured using: 'configure --with-modules --without-dbus --with-native-compilation=aot --without-compress-install --with-tree-sitter CFLAGS=-O2' Configured features: ACL GIF GMP GNUTLS HARFBUZZ JPEG JSON LCMS2 LIBXML2 MODULES NATIVE_COMP NOTIFY W32NOTIFY PDUMPER PNG RSVG SOUND SQLITE3 THREADS TIFF TOOLKIT_SCROLL_BARS TREE_SITTER WEBP XPM ZLIB (NATIVE_COMP present but libgccjit not available) Important settings: value of $LANG: ENU locale-coding-system: cp1252 Major mode: Dired by name Minor modes in effect: magit-wip-initial-backup-mode: t magit-wip-before-change-mode: t magit-wip-after-apply-mode: t magit-wip-after-save-mode: t global-git-commit-mode: t shell-dirtrack-mode: t server-mode: t ws-butler-global-mode: t ws-butler-mode: t global-auto-revert-mode: t savehist-mode: t delete-selection-mode: t override-global-mode: t straight-use-package-mode: t straight-package-neutering-mode: t straight-symlink-emulation-mode: t tooltip-mode: t global-eldoc-mode: t show-paren-mode: t electric-indent-mode: t mouse-wheel-mode: t file-name-shadow-mode: t global-font-lock-mode: t font-lock-mode: t buffer-read-only: t line-number-mode: t indent-tabs-mode: t transient-mark-mode: t auto-composition-mode: t auto-encryption-mode: t auto-compression-mode: t Load-path shadows: c:/Users/dave/.emacs.d.default/straight/build/transient/transient hides c:/Program Files/Emacs/emacs-29.1/share/emacs/29.1/lisp/transient c:/Users/dave/.emacs.d.default/straight/build/use-package/use-package hides c:/Program Files/Emacs/emacs-29.1/share/emacs/29.1/lisp/use-package/use-package c:/Users/dave/.emacs.d.default/straight/build/use-package/use-package-lint hides c:/Program Files/Emacs/emacs-29.1/share/emacs/29.1/lisp/use-package/use-package-lint c:/Users/dave/.emacs.d.default/straight/build/use-package/use-package-jump hides c:/Program Files/Emacs/emacs-29.1/share/emacs/29.1/lisp/use-package/use-package-jump c:/Users/dave/.emacs.d.default/straight/build/use-package/use-package-ensure hides c:/Program Files/Emacs/emacs-29.1/share/emacs/29.1/lisp/use-package/use-package-ensure c:/Users/dave/.emacs.d.default/straight/build/use-package/use-package-diminish hides c:/Program Files/Emacs/emacs-29.1/share/emacs/29.1/lisp/use-package/use-package-diminish c:/Users/dave/.emacs.d.default/straight/build/use-package/use-package-delight hides c:/Program Files/Emacs/emacs-29.1/share/emacs/29.1/lisp/use-package/use-package-delight c:/Users/dave/.emacs.d.default/straight/build/use-package/use-package-core hides c:/Program Files/Emacs/emacs-29.1/share/emacs/29.1/lisp/use-package/use-package-core c:/Users/dave/.emacs.d.default/straight/build/use-package/use-package-bind-key hides c:/Program Files/Emacs/emacs-29.1/share/emacs/29.1/lisp/use-package/use-package-bind-key c:/Users/dave/.emacs.d.default/straight/build/bind-key/bind-key hides c:/Program Files/Emacs/emacs-29.1/share/emacs/29.1/lisp/use-package/bind-key c:/Users/dave/.emacs.d.default/straight/build/seq/seq hides c:/Program Files/Emacs/emacs-29.1/share/emacs/29.1/lisp/emacs-lisp/seq c:/Users/dave/.emacs.d.default/straight/build/let-alist/let-alist hides c:/Program Files/Emacs/emacs-29.1/share/emacs/29.1/lisp/emacs-lisp/let-alist Features: (shadow sort mail-extr emacsbug cl-print debug backtrace shortdoc help-fns radix-tree magit-extras magit-submodule magit-blame magit-stash magit-reflog magit-bisect magit-push magit-pull magit-fetch magit-clone magit-remote magit-commit magit-sequence magit-notes magit-worktree magit-tag magit-merge magit-branch magit-reset magit-files magit-refs magit-status magit magit-repos magit-apply sh-script smie treesit executable swift-mode swift-mode-imenu swift-mode-repl swift-mode-font-lock swift-mode-standard-types swift-mode-fill swift-mode-beginning-of-defun swift-mode-indent swift-mode-lexer find-file-in-repository dired-aux ffap misearch multi-isearch vc-git vc-dispatcher jka-compr pcase dwa-init editorconfig-generate-autoloads editorconfig-autoloads noccur noccur-autoloads focus focus-autoloads darkroom face-remap darkroom-autoloads org-modern org-modern-autoloads poly-org org ob ob-tangle ob-ref ob-lob ob-table ob-exp org-macro org-src ob-comint org-pcomplete org-list org-footnote org-faces org-entities noutline outline ob-emacs-lisp ob-core ob-eval org-cycle org-table ol org-fold org-fold-core org-keys oc org-loaddefs cal-menu calendar cal-loaddefs org-version org-compat org-macs polymode poly-lock polymode-base polymode-weave polymode-export polymode-compat advice polymode-methods polymode-core polymode-classes eieio-custom wid-edit eieio-base color poly-org-autoloads poly-markdown-autoloads markdown-mode-autoloads polymode-autoloads find-file-in-repository-autoloads magit-imerge-autoloads magit-wip magit-log which-func magit-diff smerge-mode diff git-commit log-edit message sendmail yank-media puny dired dired-loaddefs rfc822 mml mml-sec epa derived epg rfc6068 epg-config gnus-util time-date mm-decode mm-bodies mm-encode mail-parse rfc2231 rfc2047 rfc2045 mm-util ietf-drums mail-prsvr mailabbrev mail-utils gmm-utils mailheader pcvs-util add-log magit-core magit-autorevert magit-margin magit-transient magit-process with-editor comp comp-cstr warnings icons shell pcomplete server magit-mode transient magit-git magit-base magit-section format-spec cursor-sensor crm compat magit-autoloads magit-section-autoloads git-commit-autoloads with-editor-autoloads transient-autoloads compat-autoloads dwa-progmodes yaml-mode yaml-mode-autoloads tide tide-lv thingatpt imenu flycheck find-func s dash etags fileloop generator xref tide-autoloads flycheck-autoloads let-alist-autoloads pkg-info-autoloads epl-autoloads s-autoloads dash-autoloads typescript-mode rx cc-mode cc-fonts cc-guess cc-menus cc-cmds cc-styles cc-align cc-engine cc-vars cc-defs typescript-mode-autoloads swift-mode-autoloads seq-autoloads dwa-global-config compile text-property-search comint ansi-osc ansi-color ring skeleton modus-operandi-tinted-theme modus-themes modus-themes-autoloads use-package-bind-key ws-butler ws-butler-autoloads use-package-diminish diminish diminish-autoloads ediff ediff-merg ediff-mult ediff-wind ediff-diff ediff-help ediff-init ediff-util diff-mode descr-text package browse-url url url-proxy url-privacy url-expand url-methods url-history url-cookie generate-lisp-file url-domsuf url-util mailcap url-handlers url-parse auth-source eieio eieio-core password-cache json map url-vars finder-inf ido autorevert filenotify savehist delsel cus-load use-package-core dwa-global-keybindings edmacro kmacro bind-key easy-mmode dwa-folding dwa-compile project byte-opt dwa-buffers dwa-navigation use-package-autoloads bind-key-autoloads files-x straight-autoloads cl-seq cl-extra help-mode straight subr-x cl-macs cl-loaddefs cl-lib bytecomp byte-compile chemacs gv rmc iso-transl tooltip cconv eldoc paren electric uniquify ediff-hook vc-hooks lisp-float-type elisp-mode mwheel dos-w32 ls-lisp disp-table term/w32-win w32-win w32-vars term/common-win tool-bar dnd fontset image regexp-opt fringe tabulated-list replace newcomment text-mode lisp-mode prog-mode register page tab-bar menu-bar rfn-eshadow isearch easymenu timer select scroll-bar mouse jit-lock font-lock syntax font-core term/tty-colors frame minibuffer nadvice seq simple cl-generic indonesian philippine cham georgian utf-8-lang misc-lang vietnamese tibetan thai tai-viet lao korean japanese eucjp-ms cp51932 hebrew greek romanian slovak czech european ethiopic indian cyrillic chinese composite emoji-zwj charscript charprop case-table epa-hook jka-cmpr-hook help abbrev obarray oclosure cl-preloaded button loaddefs theme-loaddefs faces cus-face macroexp files window text-properties overlay sha1 md5 base64 format env code-pages mule custom widget keymap hashtable-print-readable backquote threads w32notify w32 lcms2 multi-tty make-network-process native-compile emacs) Memory information: ((conses 16 557582 44793) (symbols 48 31897 0) (strings 32 115342 4566) (string-bytes 1 3994014) (vectors 16 67230) (vector-slots 8 1455375 78880) (floats 8 356 751) (intervals 56 18883 2260) (buffers 984 33))
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.