From unknown Thu Aug 21 12:10:33 2025 Content-Disposition: inline Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-Mailer: MIME-tools 5.509 (Entity 5.509) Content-Type: text/plain; charset=utf-8 From: bug#47127 <47127@debbugs.gnu.org> To: bug#47127 <47127@debbugs.gnu.org> Subject: Status: 27.1; ido file completion sorting should respect ido-case-fold, maybe? Reply-To: bug#47127 <47127@debbugs.gnu.org> Date: Thu, 21 Aug 2025 19:10:33 +0000 retitle 47127 27.1; ido file completion sorting should respect ido-case-fol= d, maybe? reassign 47127 emacs submitter 47127 "Ryan C. Thompson" severity 47127 normal thanks From debbugs-submit-bounces@debbugs.gnu.org Sat Mar 13 16:57:20 2021 Received: (at submit) by debbugs.gnu.org; 13 Mar 2021 21:57:20 +0000 Received: from localhost ([127.0.0.1]:60860 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1lLCG5-00012b-VD for submit@debbugs.gnu.org; Sat, 13 Mar 2021 16:57:20 -0500 Received: from lists.gnu.org ([209.51.188.17]:52810) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1lLCG2-00012Q-R1 for submit@debbugs.gnu.org; Sat, 13 Mar 2021 16:57:16 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:45612) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1lLCG2-0008I7-Do for bug-gnu-emacs@gnu.org; Sat, 13 Mar 2021 16:57:14 -0500 Received: from mail-qk1-x733.google.com ([2607:f8b0:4864:20::733]:41713) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1lLCFx-0007lU-Mq for bug-gnu-emacs@gnu.org; Sat, 13 Mar 2021 16:57:14 -0500 Received: by mail-qk1-x733.google.com with SMTP id x10so28145842qkm.8 for ; Sat, 13 Mar 2021 13:57:08 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=thompsonclan-org.20150623.gappssmtp.com; s=20150623; h=to:subject:from:message-id:date:user-agent:mime-version :content-transfer-encoding:content-language; bh=1H9tzG6fFGjwWz5JGzJ+Fh+3Y2BbYDWA1ZHuLO3o4yY=; b=IFfQg5GyyCGNjFKe+mwmCVE5Rv3CCY1NyvaJcljVATDmfJpk/XNE/dKEg/oVcor9aP rnrh+TUvAJZOdbstokTZnwZnhhRcohmY+fNpgoe62XtUi4Jrm2RHloFVqKt2kR6yp5bU NoYSd32sp/8px9WDx+6DWV9EeT0FrW7HsU9L23tQh6UPVUOL6ns31r3MI+uyfoGiHjah irgTRSULegGjHL7Ravj291F3FvwRyAaYmMzDUvXsrdbRZ6Rb382mE9jmEoO6F7Oyl2Zn 3FANxTPreKfRFGbyw3/vibVIRJJVaBl/quZpDiiNGMyl2GXkI4ZHA/plLwNErH7eFtCo xP5Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:to:subject:from:message-id:date:user-agent :mime-version:content-transfer-encoding:content-language; bh=1H9tzG6fFGjwWz5JGzJ+Fh+3Y2BbYDWA1ZHuLO3o4yY=; b=GpxluxV/xD8JqZW0VwaIKl0v5hF/DzpWYeOPCxS5JLAFxrLDN7n1gMt1RZUEvKH2Xl x2AjwlXaHAleHiKQ9QdXlutRIOS01z/YtIEXvo5VrG4bK5IPL/H+iX2XqIAWQNiPNUUV aWWJhU26eaqllATeScQGrm0DDpAMDyzCbhMqM4X19pzDqt9KKcHTSRWqwf1zuHcbAYoH l4XumS9DrmJdPVqXhoy+MO8KqwoJ3X9PuW+fa9+jrSdwAXTs4xzUuYjCO+8uvuFSb+YF UmjleGd9LwqFjt+kEvFBPYPmgE0cwOZrwb+gqFaw8tS8WCPONP/lwlpxpBudb1TBkjz2 Aw7w== X-Gm-Message-State: AOAM5311MBBAd4ABqcPToNLTluth1cE/nQrTMZWoDGKJfb7kVm/uuxEp m6v6ysTRoqZPI2lCVbDuGy4+jbdv/4zTAOnw X-Google-Smtp-Source: ABdhPJxB0OHRSeaL5nk0/PPKefu/U0C09xDrDICt5bSMKWgtYD+l3bdiR39YfTju8gwmV57gJ+yVcQ== X-Received: by 2002:a37:a30f:: with SMTP id m15mr18658232qke.433.1615672626783; Sat, 13 Mar 2021 13:57:06 -0800 (PST) Received: from urania.local (c-76-116-193-120.hsd1.nj.comcast.net. [76.116.193.120]) by smtp.gmail.com with ESMTPSA id f186sm7621082qkj.106.2021.03.13.13.57.05 for (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Sat, 13 Mar 2021 13:57:06 -0800 (PST) To: bug-gnu-emacs@gnu.org Subject: 27.1; ido file completion sorting should respect ido-case-fold, maybe? From: "Ryan C. Thompson" Message-ID: Date: Sat, 13 Mar 2021 16:57:03 -0500 User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:78.0) Gecko/20100101 Thunderbird/78.8.0 MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 8bit Content-Language: en-US Received-SPF: none client-ip=2607:f8b0:4864:20::733; envelope-from=rct@thompsonclan.org; helo=mail-qk1-x733.google.com X-Spam_score_int: -18 X-Spam_score: -1.9 X-Spam_bar: - X-Spam_report: (-1.9 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_NONE=0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: submit X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.3 (---) When ido-case-fold is non-nil, ido allows "abc.txt" to match "AbC.TxT", for example. However, ido-case-fold does not affect the sort order of the lexically sorted completions. For example, if the directory contains 4 files named "a", "B", "c", and "D", then ido will always sort them lexically as "B", "D", "a", "c", regardless of the value of ido-case-fold. I would argue that if ido considers "a" and "A" equivalent for the purposes of completion, then it should also consider them equivalent for the purposes of sorting, unless 2 file names differ *only* in case, in which case it should fall back to case-sensitive sorting. ;; Returns nil, as expected (let ((ido-case-fold nil))   (ido-file-lessp "a" "B")) ;; Should return t, but currently returns nil (let ((ido-case-fold t))   (ido-file-lessp "a" "B")) ;; Should still return t because case is the only difference (let ((ido-case-fold t))   (ido-file-lessp "A" "a")) At least, this is what makes sense to me. If people agree, I'd be happy to code this up as a patch and send it. For what it's worth, the following advice implements the above behavior: (define-advice ido-file-lessp (:around (orig-fun &rest args) respect-ido-case-fold)   "Make sure that Ido file sorting respects `ido-case-fold'."   (if ido-case-fold       (let ((args-lower (mapcar #'downcase args)))         ;; Compare case-insensitively, unless the file names differ         ;; only in case.         (if (apply #'string= args-lower)             (apply orig-fun args)           (apply orig-fun args-lower)))     (apply orig-fun args))) (define-advice ido-file-extension-lessp (:around (orig-fun &rest args) respect-ido-case-fold)   "Make sure that Ido file sorting respects `ido-case-fold'."   (if ido-case-fold       (let ((args-lower (mapcar #'downcase args)))         ;; Compare case-insensitively, unless the file names differ         ;; only in case.         (if (apply #'string= args-lower)             (apply orig-fun args)           (apply orig-fun args-lower)))     (apply orig-fun args))) In GNU Emacs 27.1 (build 1, x86_64-apple-darwin19.6.0, NS appkit-1894.60 Version 10.15.7 (Build 19H114)) of 2021-02-05 built on urania.local Windowing system distributor 'Apple', version 10.3.1894 System Description: Mac OS X 10.15.7 Recent messages: Error during redisplay: (jit-lock-function 96817) signaled (user-error "Cannot move further down") Saving file /Users/ryan/.emacs.d/config.org... Wrote /Users/ryan/.emacs.d/persistence/undo-tree/.!Users!ryan!.emacs.d!config.org.~undo-tree~ Wrote /Users/ryan/.emacs.d/config.org Mark saved where search started Mark set Quit [2 times] QuitError during redisplay: (eval (list (sml-modeline-create))) signaled (args-out-of-range 7245 7604) Type C-x 1 to delete the help window. Quit Quit Configured using: 'configure --disable-dependency-tracking --disable-silent-rules --enable-locallisppath=/usr/local/share/emacs/site-lisp --infodir=/usr/local/Cellar/emacs-plus@27/27.1/share/info/emacs --prefix=/usr/local/Cellar/emacs-plus@27/27.1 --with-xml2 --with-gnutls --without-dbus --with-imagemagick --with-modules --with-rsvg --with-ns --disable-ns-self-contained' Configured features: RSVG IMAGEMAGICK GLIB NOTIFY KQUEUE ACL GNUTLS LIBXML2 TOOLKIT_SCROLL_BARS XIM NS MODULES THREADS JSON PDUMPER LCMS2 GMP Important settings: value of $LANG: en_US.UTF-8 locale-coding-system: utf-8-unix Major mode: Org Minor modes in effect: global-magit-file-mode: t magit-file-mode: t magit-auto-revert-mode: t global-git-commit-mode: t async-bytecomp-package-mode: t recentf-mode: t auto-revert-mode: t winner-mode: t which-key-mode: t which-function-mode: t savehist-mode: t save-place-mode: t minibuffer-depth-indicate-mode: t midnight-mode: t global-hl-line-mode: t desktop-save-mode: t delete-selection-mode: t ws-butler-global-mode: t ws-butler-mode: t volatile-highlights-mode: t global-undo-tree-mode: t undo-tree-mode: t sml-modeline-mode: t selectrum-prescient-mode: t prescient-persist-mode: t global-pointback-mode: t pointback-mode: t org-superstar-mode: t mode-line-bell-mode: t mac-pseudo-daemon-mode: t imagex-auto-adjust-mode: t ido-yes-or-no-mode: t ido-ubiquitous-mode: t minibuffer-electric-default-mode: t ido-everywhere: t ido-complete-space-or-hyphen-mode: t highlight-stages-global-mode: t highlight-stages-mode: t global-git-gutter-mode: t git-gutter-mode: t shell-dirtrack-mode: t editorconfig-mode: t beacon-mode: t bar-cursor-mode: t autopair-global-mode: t autopair-mode: t show-paren-mode: t auto-dim-other-buffers-mode: t global-auto-complete-mode: t global-anzu-mode: t anzu-mode: t amx-mode: t override-global-mode: t straight-use-package-mode: t straight-package-neutering-mode: t tooltip-mode: t global-eldoc-mode: t eldoc-mode: t electric-indent-mode: t mouse-wheel-mode: t menu-bar-mode: t file-name-shadow-mode: t global-font-lock-mode: t font-lock-mode: t blink-cursor-mode: t auto-composition-mode: t auto-encryption-mode: t auto-compression-mode: t line-number-mode: t transient-mark-mode: t Load-path shadows: /Users/ryan/.emacs.d/straight/build/flycheck-elsa/Elsafile hides /Users/ryan/.emacs.d/straight/build/elsa/Elsafile /Users/ryan/.emacs.d/straight/build/org/ob-stan hides /Users/ryan/.emacs.d/straight/build/org-plus-contrib/ob-stan /Users/ryan/.emacs.d/straight/build/org/ob-comint hides /Users/ryan/.emacs.d/straight/build/org-plus-contrib/ob-comint /Users/ryan/.emacs.d/straight/build/org/ob-exp hides /Users/ryan/.emacs.d/straight/build/org-plus-contrib/ob-exp /Users/ryan/.emacs.d/straight/build/org/org-ctags hides /Users/ryan/.emacs.d/straight/build/org-plus-contrib/org-ctags /Users/ryan/.emacs.d/straight/build/org/ob-emacs-lisp hides /Users/ryan/.emacs.d/straight/build/org-plus-contrib/ob-emacs-lisp /Users/ryan/.emacs.d/straight/build/org/ox-texinfo hides /Users/ryan/.emacs.d/straight/build/org-plus-contrib/ox-texinfo /Users/ryan/.emacs.d/straight/build/org/ol-irc hides /Users/ryan/.emacs.d/straight/build/org-plus-contrib/ol-irc /Users/ryan/.emacs.d/straight/build/org/ob hides /Users/ryan/.emacs.d/straight/build/org-plus-contrib/ob /Users/ryan/.emacs.d/straight/build/org/org-refile hides /Users/ryan/.emacs.d/straight/build/org-plus-contrib/org-refile /Users/ryan/.emacs.d/straight/build/org/org-num hides /Users/ryan/.emacs.d/straight/build/org-plus-contrib/org-num /Users/ryan/.emacs.d/straight/build/org/ol-mhe hides /Users/ryan/.emacs.d/straight/build/org-plus-contrib/ol-mhe /Users/ryan/.emacs.d/straight/build/org/ob-shell hides /Users/ryan/.emacs.d/straight/build/org-plus-contrib/ob-shell /Users/ryan/.emacs.d/straight/build/org/org-attach hides /Users/ryan/.emacs.d/straight/build/org-plus-contrib/org-attach /Users/ryan/.emacs.d/straight/build/org/ob-C hides /Users/ryan/.emacs.d/straight/build/org-plus-contrib/ob-C /Users/ryan/.emacs.d/straight/build/org/org-macs hides /Users/ryan/.emacs.d/straight/build/org-plus-contrib/org-macs /Users/ryan/.emacs.d/straight/build/org/org-entities hides /Users/ryan/.emacs.d/straight/build/org-plus-contrib/org-entities /Users/ryan/.emacs.d/straight/build/org/ob-dot hides /Users/ryan/.emacs.d/straight/build/org-plus-contrib/ob-dot /Users/ryan/.emacs.d/straight/build/org/ob-sql hides /Users/ryan/.emacs.d/straight/build/org-plus-contrib/ob-sql /Users/ryan/.emacs.d/straight/build/org/ol-eww hides /Users/ryan/.emacs.d/straight/build/org-plus-contrib/ol-eww /Users/ryan/.emacs.d/straight/build/org/org-datetree hides /Users/ryan/.emacs.d/straight/build/org-plus-contrib/org-datetree /Users/ryan/.emacs.d/straight/build/org/org-macro hides /Users/ryan/.emacs.d/straight/build/org-plus-contrib/org-macro /Users/ryan/.emacs.d/straight/build/org/ob-eval hides /Users/ryan/.emacs.d/straight/build/org-plus-contrib/ob-eval /Users/ryan/.emacs.d/straight/build/org/ob-haskell hides /Users/ryan/.emacs.d/straight/build/org-plus-contrib/ob-haskell /Users/ryan/.emacs.d/straight/build/org/ob-asymptote hides /Users/ryan/.emacs.d/straight/build/org-plus-contrib/ob-asymptote /Users/ryan/.emacs.d/straight/build/org/ob-abc hides /Users/ryan/.emacs.d/straight/build/org-plus-contrib/ob-abc /Users/ryan/.emacs.d/straight/build/org/ox-org hides /Users/ryan/.emacs.d/straight/build/org-plus-contrib/ox-org /Users/ryan/.emacs.d/straight/build/org/ol-rmail hides /Users/ryan/.emacs.d/straight/build/org-plus-contrib/ol-rmail /Users/ryan/.emacs.d/straight/build/org/ob-awk hides /Users/ryan/.emacs.d/straight/build/org-plus-contrib/ob-awk /Users/ryan/.emacs.d/straight/build/org/ob-groovy hides /Users/ryan/.emacs.d/straight/build/org-plus-contrib/ob-groovy /Users/ryan/.emacs.d/straight/build/org/ob-shen hides /Users/ryan/.emacs.d/straight/build/org-plus-contrib/ob-shen /Users/ryan/.emacs.d/straight/build/org/ox-icalendar hides /Users/ryan/.emacs.d/straight/build/org-plus-contrib/ox-icalendar /Users/ryan/.emacs.d/straight/build/org/ob-octave hides /Users/ryan/.emacs.d/straight/build/org-plus-contrib/ob-octave /Users/ryan/.emacs.d/straight/build/org/ob-scheme hides /Users/ryan/.emacs.d/straight/build/org-plus-contrib/ob-scheme /Users/ryan/.emacs.d/straight/build/org/org-mobile hides /Users/ryan/.emacs.d/straight/build/org-plus-contrib/org-mobile /Users/ryan/.emacs.d/straight/build/org/ob-processing hides /Users/ryan/.emacs.d/straight/build/org-plus-contrib/ob-processing /Users/ryan/.emacs.d/straight/build/org/ob-ledger hides /Users/ryan/.emacs.d/straight/build/org-plus-contrib/ob-ledger /Users/ryan/.emacs.d/straight/build/org/ob-picolisp hides /Users/ryan/.emacs.d/straight/build/org-plus-contrib/ob-picolisp /Users/ryan/.emacs.d/straight/build/org/org-colview hides /Users/ryan/.emacs.d/straight/build/org-plus-contrib/org-colview /Users/ryan/.emacs.d/straight/build/org/ob-R hides /Users/ryan/.emacs.d/straight/build/org-plus-contrib/ob-R /Users/ryan/.emacs.d/straight/build/org/org-table hides /Users/ryan/.emacs.d/straight/build/org-plus-contrib/org-table /Users/ryan/.emacs.d/straight/build/org/ox-html hides /Users/ryan/.emacs.d/straight/build/org-plus-contrib/ox-html /Users/ryan/.emacs.d/straight/build/org/ob-fortran hides /Users/ryan/.emacs.d/straight/build/org-plus-contrib/ob-fortran /Users/ryan/.emacs.d/straight/build/org/ol hides /Users/ryan/.emacs.d/straight/build/org-plus-contrib/ol /Users/ryan/.emacs.d/straight/build/org/ob-plantuml hides /Users/ryan/.emacs.d/straight/build/org-plus-contrib/ob-plantuml /Users/ryan/.emacs.d/straight/build/org/ol-docview hides /Users/ryan/.emacs.d/straight/build/org-plus-contrib/ol-docview /Users/ryan/.emacs.d/straight/build/org/ob-perl hides /Users/ryan/.emacs.d/straight/build/org-plus-contrib/ob-perl /Users/ryan/.emacs.d/straight/build/org/ob-sqlite hides /Users/ryan/.emacs.d/straight/build/org-plus-contrib/ob-sqlite /Users/ryan/.emacs.d/straight/build/org/ob-sed hides /Users/ryan/.emacs.d/straight/build/org-plus-contrib/ob-sed /Users/ryan/.emacs.d/straight/build/org/ob-ditaa hides /Users/ryan/.emacs.d/straight/build/org-plus-contrib/ob-ditaa /Users/ryan/.emacs.d/straight/build/org/ob-ruby hides /Users/ryan/.emacs.d/straight/build/org-plus-contrib/ob-ruby /Users/ryan/.emacs.d/straight/build/org/org-habit hides /Users/ryan/.emacs.d/straight/build/org-plus-contrib/org-habit /Users/ryan/.emacs.d/straight/build/org/ol-gnus hides /Users/ryan/.emacs.d/straight/build/org-plus-contrib/ol-gnus /Users/ryan/.emacs.d/straight/build/org/ob-screen hides /Users/ryan/.emacs.d/straight/build/org-plus-contrib/ob-screen /Users/ryan/.emacs.d/straight/build/org/org-mouse hides /Users/ryan/.emacs.d/straight/build/org-plus-contrib/org-mouse /Users/ryan/.emacs.d/straight/build/org/ob-css hides /Users/ryan/.emacs.d/straight/build/org-plus-contrib/ob-css /Users/ryan/.emacs.d/straight/build/org/org-inlinetask hides /Users/ryan/.emacs.d/straight/build/org-plus-contrib/org-inlinetask /Users/ryan/.emacs.d/straight/build/org/ob-lisp hides /Users/ryan/.emacs.d/straight/build/org-plus-contrib/ob-lisp /Users/ryan/.emacs.d/straight/build/org/ol-eshell hides /Users/ryan/.emacs.d/straight/build/org-plus-contrib/ol-eshell /Users/ryan/.emacs.d/straight/build/org/org-pcomplete hides /Users/ryan/.emacs.d/straight/build/org-plus-contrib/org-pcomplete /Users/ryan/.emacs.d/straight/build/org/org-lint hides /Users/ryan/.emacs.d/straight/build/org-plus-contrib/org-lint /Users/ryan/.emacs.d/straight/build/org/org-id hides /Users/ryan/.emacs.d/straight/build/org-plus-contrib/org-id /Users/ryan/.emacs.d/straight/build/org/ob-vala hides /Users/ryan/.emacs.d/straight/build/org-plus-contrib/ob-vala /Users/ryan/.emacs.d/straight/build/org/org-capture hides /Users/ryan/.emacs.d/straight/build/org-plus-contrib/org-capture /Users/ryan/.emacs.d/straight/build/org/ob-sass hides /Users/ryan/.emacs.d/straight/build/org-plus-contrib/ob-sass /Users/ryan/.emacs.d/straight/build/org/ob-tangle hides /Users/ryan/.emacs.d/straight/build/org-plus-contrib/ob-tangle /Users/ryan/.emacs.d/straight/build/org/ob-calc hides /Users/ryan/.emacs.d/straight/build/org-plus-contrib/ob-calc /Users/ryan/.emacs.d/straight/build/org/ob-java hides /Users/ryan/.emacs.d/straight/build/org-plus-contrib/ob-java /Users/ryan/.emacs.d/straight/build/org/org-compat hides /Users/ryan/.emacs.d/straight/build/org-plus-contrib/org-compat /Users/ryan/.emacs.d/straight/build/org/org-attach-git hides /Users/ryan/.emacs.d/straight/build/org-plus-contrib/org-attach-git /Users/ryan/.emacs.d/straight/build/org/ox-beamer hides /Users/ryan/.emacs.d/straight/build/org-plus-contrib/ox-beamer /Users/ryan/.emacs.d/straight/build/org/ob-coq hides /Users/ryan/.emacs.d/straight/build/org-plus-contrib/ob-coq /Users/ryan/.emacs.d/straight/build/org/org-protocol hides /Users/ryan/.emacs.d/straight/build/org-plus-contrib/org-protocol /Users/ryan/.emacs.d/straight/build/org/org-element hides /Users/ryan/.emacs.d/straight/build/org-plus-contrib/org-element /Users/ryan/.emacs.d/straight/build/org/ob-lob hides /Users/ryan/.emacs.d/straight/build/org-plus-contrib/ob-lob /Users/ryan/.emacs.d/straight/build/org/ob-mscgen hides /Users/ryan/.emacs.d/straight/build/org-plus-contrib/ob-mscgen /Users/ryan/.emacs.d/straight/build/org/org-tempo hides /Users/ryan/.emacs.d/straight/build/org-plus-contrib/org-tempo /Users/ryan/.emacs.d/straight/build/org/ob-python hides /Users/ryan/.emacs.d/straight/build/org-plus-contrib/ob-python /Users/ryan/.emacs.d/straight/build/org/ob-latex hides /Users/ryan/.emacs.d/straight/build/org-plus-contrib/ob-latex /Users/ryan/.emacs.d/straight/build/org/ol-w3m hides /Users/ryan/.emacs.d/straight/build/org-plus-contrib/ol-w3m /Users/ryan/.emacs.d/straight/build/org/org-agenda hides /Users/ryan/.emacs.d/straight/build/org-plus-contrib/org-agenda /Users/ryan/.emacs.d/straight/build/org/ob-ocaml hides /Users/ryan/.emacs.d/straight/build/org-plus-contrib/ob-ocaml /Users/ryan/.emacs.d/straight/build/org/ob-ref hides /Users/ryan/.emacs.d/straight/build/org-plus-contrib/ob-ref /Users/ryan/.emacs.d/straight/build/org/ob-lilypond hides /Users/ryan/.emacs.d/straight/build/org-plus-contrib/ob-lilypond /Users/ryan/.emacs.d/straight/build/org/ob-table hides /Users/ryan/.emacs.d/straight/build/org-plus-contrib/ob-table /Users/ryan/.emacs.d/straight/build/org/ob-clojure hides /Users/ryan/.emacs.d/straight/build/org-plus-contrib/ob-clojure /Users/ryan/.emacs.d/straight/build/org/org-indent hides /Users/ryan/.emacs.d/straight/build/org-plus-contrib/org-indent /Users/ryan/.emacs.d/straight/build/org/org-plot hides /Users/ryan/.emacs.d/straight/build/org-plus-contrib/org-plot /Users/ryan/.emacs.d/straight/build/org/ox-latex hides /Users/ryan/.emacs.d/straight/build/org-plus-contrib/ox-latex /Users/ryan/.emacs.d/straight/build/org/org-src hides /Users/ryan/.emacs.d/straight/build/org-plus-contrib/org-src /Users/ryan/.emacs.d/straight/build/org/org-duration hides /Users/ryan/.emacs.d/straight/build/org-plus-contrib/org-duration /Users/ryan/.emacs.d/straight/build/org/ob-makefile hides /Users/ryan/.emacs.d/straight/build/org-plus-contrib/ob-makefile /Users/ryan/.emacs.d/straight/build/org/ol-info hides /Users/ryan/.emacs.d/straight/build/org-plus-contrib/ol-info /Users/ryan/.emacs.d/straight/build/org/ob-ebnf hides /Users/ryan/.emacs.d/straight/build/org-plus-contrib/ob-ebnf /Users/ryan/.emacs.d/straight/build/org/org-clock hides /Users/ryan/.emacs.d/straight/build/org-plus-contrib/org-clock /Users/ryan/.emacs.d/straight/build/org/ob-forth hides /Users/ryan/.emacs.d/straight/build/org-plus-contrib/ob-forth /Users/ryan/.emacs.d/straight/build/org/ox-odt hides /Users/ryan/.emacs.d/straight/build/org-plus-contrib/ox-odt /Users/ryan/.emacs.d/straight/build/org/ox-publish hides /Users/ryan/.emacs.d/straight/build/org-plus-contrib/ox-publish /Users/ryan/.emacs.d/straight/build/org/org-archive hides /Users/ryan/.emacs.d/straight/build/org-plus-contrib/org-archive /Users/ryan/.emacs.d/straight/build/org/ob-org hides /Users/ryan/.emacs.d/straight/build/org-plus-contrib/ob-org /Users/ryan/.emacs.d/straight/build/org/ob-lua hides /Users/ryan/.emacs.d/straight/build/org-plus-contrib/ob-lua /Users/ryan/.emacs.d/straight/build/org/org-keys hides /Users/ryan/.emacs.d/straight/build/org-plus-contrib/org-keys /Users/ryan/.emacs.d/straight/build/org/ob-eshell hides /Users/ryan/.emacs.d/straight/build/org-plus-contrib/ob-eshell /Users/ryan/.emacs.d/straight/build/org/org-faces hides /Users/ryan/.emacs.d/straight/build/org-plus-contrib/org-faces /Users/ryan/.emacs.d/straight/build/org/ox-man hides /Users/ryan/.emacs.d/straight/build/org-plus-contrib/ox-man /Users/ryan/.emacs.d/straight/build/org/org-list hides /Users/ryan/.emacs.d/straight/build/org-plus-contrib/org-list /Users/ryan/.emacs.d/straight/build/org/ox-md hides /Users/ryan/.emacs.d/straight/build/org-plus-contrib/ox-md /Users/ryan/.emacs.d/straight/build/org/org-goto hides /Users/ryan/.emacs.d/straight/build/org-plus-contrib/org-goto /Users/ryan/.emacs.d/straight/build/org/ol-bbdb hides /Users/ryan/.emacs.d/straight/build/org-plus-contrib/ol-bbdb /Users/ryan/.emacs.d/straight/build/org/org-loaddefs hides /Users/ryan/.emacs.d/straight/build/org-plus-contrib/org-loaddefs /Users/ryan/.emacs.d/straight/build/org/org hides /Users/ryan/.emacs.d/straight/build/org-plus-contrib/org /Users/ryan/.emacs.d/straight/build/org/ol-bibtex hides /Users/ryan/.emacs.d/straight/build/org-plus-contrib/ol-bibtex /Users/ryan/.emacs.d/straight/build/org/ob-J hides /Users/ryan/.emacs.d/straight/build/org-plus-contrib/ob-J /Users/ryan/.emacs.d/straight/build/org/ox-ascii hides /Users/ryan/.emacs.d/straight/build/org-plus-contrib/ox-ascii /Users/ryan/.emacs.d/straight/build/org/ob-matlab hides /Users/ryan/.emacs.d/straight/build/org-plus-contrib/ob-matlab /Users/ryan/.emacs.d/straight/build/org/ox hides /Users/ryan/.emacs.d/straight/build/org-plus-contrib/ox /Users/ryan/.emacs.d/straight/build/org/org-timer hides /Users/ryan/.emacs.d/straight/build/org-plus-contrib/org-timer /Users/ryan/.emacs.d/straight/build/org/ob-core hides /Users/ryan/.emacs.d/straight/build/org-plus-contrib/ob-core /Users/ryan/.emacs.d/straight/build/org/org-feed hides /Users/ryan/.emacs.d/straight/build/org-plus-contrib/org-feed /Users/ryan/.emacs.d/straight/build/org/ob-io hides /Users/ryan/.emacs.d/straight/build/org-plus-contrib/ob-io /Users/ryan/.emacs.d/straight/build/org/ob-gnuplot hides /Users/ryan/.emacs.d/straight/build/org-plus-contrib/ob-gnuplot /Users/ryan/.emacs.d/straight/build/org/ob-js hides /Users/ryan/.emacs.d/straight/build/org-plus-contrib/ob-js /Users/ryan/.emacs.d/straight/build/org/org-footnote hides /Users/ryan/.emacs.d/straight/build/org-plus-contrib/org-footnote /Users/ryan/.emacs.d/straight/build/org/ob-maxima hides /Users/ryan/.emacs.d/straight/build/org-plus-contrib/ob-maxima /Users/ryan/.emacs.d/straight/build/org/ob-hledger hides /Users/ryan/.emacs.d/straight/build/org-plus-contrib/ob-hledger /Users/ryan/.emacs.d/straight/build/org/org-install hides /Users/ryan/.emacs.d/straight/build/org-plus-contrib/org-install /Users/ryan/.emacs.d/straight/build/org/org-crypt hides /Users/ryan/.emacs.d/straight/build/org-plus-contrib/org-crypt /Users/ryan/.emacs.d/straight/build/async/dired-async hides /Users/ryan/.emacs.d/elpa/async-20200113.1745/dired-async /Users/ryan/.emacs.d/straight/build/async/smtpmail-async hides /Users/ryan/.emacs.d/elpa/async-20200113.1745/smtpmail-async /Users/ryan/.emacs.d/straight/build/async/async hides /Users/ryan/.emacs.d/elpa/async-20200113.1745/async /Users/ryan/.emacs.d/straight/build/async/async-bytecomp hides /Users/ryan/.emacs.d/elpa/async-20200113.1745/async-bytecomp /Users/ryan/.emacs.d/straight/build/async/async-autoloads hides /Users/ryan/.emacs.d/elpa/async-20200113.1745/async-autoloads /Users/ryan/.emacs.d/straight/build/async/async-pkg hides /Users/ryan/.emacs.d/elpa/async-20200113.1745/async-pkg /Users/ryan/.emacs.d/straight/build/popup/popup hides /Users/ryan/.emacs.d/elpa/popup-20160709.1429/popup /Users/ryan/.emacs.d/straight/build/popup/popup-autoloads hides /Users/ryan/.emacs.d/elpa/popup-20160709.1429/popup-autoloads /Users/ryan/.emacs.d/straight/build/org/ob-stan hides /usr/local/Cellar/emacs-plus@27/27.1/share/emacs/27.1/lisp/org/ob-stan /Users/ryan/.emacs.d/straight/build/org/ob-exp hides /usr/local/Cellar/emacs-plus@27/27.1/share/emacs/27.1/lisp/org/ob-exp /Users/ryan/.emacs.d/straight/build/org/ob-J hides /usr/local/Cellar/emacs-plus@27/27.1/share/emacs/27.1/lisp/org/ob-J /Users/ryan/.emacs.d/straight/build/org/ob-emacs-lisp hides /usr/local/Cellar/emacs-plus@27/27.1/share/emacs/27.1/lisp/org/ob-emacs-lisp /Users/ryan/.emacs.d/straight/build/org/ob-css hides /usr/local/Cellar/emacs-plus@27/27.1/share/emacs/27.1/lisp/org/ob-css /Users/ryan/.emacs.d/straight/build/org/ob-lob hides /usr/local/Cellar/emacs-plus@27/27.1/share/emacs/27.1/lisp/org/ob-lob /Users/ryan/.emacs.d/straight/build/org/ol-irc hides /usr/local/Cellar/emacs-plus@27/27.1/share/emacs/27.1/lisp/org/ol-irc /Users/ryan/.emacs.d/straight/build/org/ob-forth hides /usr/local/Cellar/emacs-plus@27/27.1/share/emacs/27.1/lisp/org/ob-forth /Users/ryan/.emacs.d/straight/build/org/org-macs hides /usr/local/Cellar/emacs-plus@27/27.1/share/emacs/27.1/lisp/org/org-macs /Users/ryan/.emacs.d/straight/build/org/ob hides /usr/local/Cellar/emacs-plus@27/27.1/share/emacs/27.1/lisp/org/ob /Users/ryan/.emacs.d/straight/build/org/ob-scheme hides /usr/local/Cellar/emacs-plus@27/27.1/share/emacs/27.1/lisp/org/ob-scheme /Users/ryan/.emacs.d/straight/build/org/ox hides /usr/local/Cellar/emacs-plus@27/27.1/share/emacs/27.1/lisp/org/ox /Users/ryan/.emacs.d/straight/build/org/ob-abc hides /usr/local/Cellar/emacs-plus@27/27.1/share/emacs/27.1/lisp/org/ob-abc /Users/ryan/.emacs.d/straight/build/org/ob-C hides /usr/local/Cellar/emacs-plus@27/27.1/share/emacs/27.1/lisp/org/ob-C /Users/ryan/.emacs.d/straight/build/org/org-capture hides /usr/local/Cellar/emacs-plus@27/27.1/share/emacs/27.1/lisp/org/org-capture /Users/ryan/.emacs.d/straight/build/org/ob-ref hides /usr/local/Cellar/emacs-plus@27/27.1/share/emacs/27.1/lisp/org/ob-ref /Users/ryan/.emacs.d/straight/build/org/ob-clojure hides /usr/local/Cellar/emacs-plus@27/27.1/share/emacs/27.1/lisp/org/ob-clojure /Users/ryan/.emacs.d/straight/build/org/org-mouse hides /usr/local/Cellar/emacs-plus@27/27.1/share/emacs/27.1/lisp/org/org-mouse /Users/ryan/.emacs.d/straight/build/org/ob-ledger hides /usr/local/Cellar/emacs-plus@27/27.1/share/emacs/27.1/lisp/org/ob-ledger /Users/ryan/.emacs.d/straight/build/org/org-ctags hides /usr/local/Cellar/emacs-plus@27/27.1/share/emacs/27.1/lisp/org/org-ctags /Users/ryan/.emacs.d/straight/build/org/org-entities hides /usr/local/Cellar/emacs-plus@27/27.1/share/emacs/27.1/lisp/org/org-entities /Users/ryan/.emacs.d/straight/build/org/org-archive hides /usr/local/Cellar/emacs-plus@27/27.1/share/emacs/27.1/lisp/org/org-archive /Users/ryan/.emacs.d/straight/build/org/ob-screen hides /usr/local/Cellar/emacs-plus@27/27.1/share/emacs/27.1/lisp/org/ob-screen /Users/ryan/.emacs.d/straight/build/org/ol-bibtex hides /usr/local/Cellar/emacs-plus@27/27.1/share/emacs/27.1/lisp/org/ol-bibtex /Users/ryan/.emacs.d/straight/build/org/ob-haskell hides /usr/local/Cellar/emacs-plus@27/27.1/share/emacs/27.1/lisp/org/ob-haskell /Users/ryan/.emacs.d/straight/build/org/ob-asymptote hides /usr/local/Cellar/emacs-plus@27/27.1/share/emacs/27.1/lisp/org/ob-asymptote /Users/ryan/.emacs.d/straight/build/org/org-table hides /usr/local/Cellar/emacs-plus@27/27.1/share/emacs/27.1/lisp/org/org-table /Users/ryan/.emacs.d/straight/build/org/ol-eww hides /usr/local/Cellar/emacs-plus@27/27.1/share/emacs/27.1/lisp/org/ol-eww /Users/ryan/.emacs.d/straight/build/org/ox-org hides /usr/local/Cellar/emacs-plus@27/27.1/share/emacs/27.1/lisp/org/ox-org /Users/ryan/.emacs.d/straight/build/org/org-num hides /usr/local/Cellar/emacs-plus@27/27.1/share/emacs/27.1/lisp/org/org-num /Users/ryan/.emacs.d/straight/build/org/org-plot hides /usr/local/Cellar/emacs-plus@27/27.1/share/emacs/27.1/lisp/org/org-plot /Users/ryan/.emacs.d/straight/build/org/ol-rmail hides /usr/local/Cellar/emacs-plus@27/27.1/share/emacs/27.1/lisp/org/ol-rmail /Users/ryan/.emacs.d/straight/build/org/ob-awk hides /usr/local/Cellar/emacs-plus@27/27.1/share/emacs/27.1/lisp/org/ob-awk /Users/ryan/.emacs.d/straight/build/org/ob-groovy hides /usr/local/Cellar/emacs-plus@27/27.1/share/emacs/27.1/lisp/org/ob-groovy /Users/ryan/.emacs.d/straight/build/org/ob-octave hides /usr/local/Cellar/emacs-plus@27/27.1/share/emacs/27.1/lisp/org/ob-octave /Users/ryan/.emacs.d/straight/build/org/org-faces hides /usr/local/Cellar/emacs-plus@27/27.1/share/emacs/27.1/lisp/org/org-faces /Users/ryan/.emacs.d/straight/build/org/org-colview hides /usr/local/Cellar/emacs-plus@27/27.1/share/emacs/27.1/lisp/org/org-colview /Users/ryan/.emacs.d/straight/build/org/ob-R hides /usr/local/Cellar/emacs-plus@27/27.1/share/emacs/27.1/lisp/org/ob-R /Users/ryan/.emacs.d/straight/build/org/org-timer hides /usr/local/Cellar/emacs-plus@27/27.1/share/emacs/27.1/lisp/org/org-timer /Users/ryan/.emacs.d/straight/build/org/ob-ebnf hides /usr/local/Cellar/emacs-plus@27/27.1/share/emacs/27.1/lisp/org/ob-ebnf /Users/ryan/.emacs.d/straight/build/org/org-mobile hides /usr/local/Cellar/emacs-plus@27/27.1/share/emacs/27.1/lisp/org/org-mobile /Users/ryan/.emacs.d/straight/build/org/ob-fortran hides /usr/local/Cellar/emacs-plus@27/27.1/share/emacs/27.1/lisp/org/ob-fortran /Users/ryan/.emacs.d/straight/build/org/ob-shell hides /usr/local/Cellar/emacs-plus@27/27.1/share/emacs/27.1/lisp/org/ob-shell /Users/ryan/.emacs.d/straight/build/org/ob-perl hides /usr/local/Cellar/emacs-plus@27/27.1/share/emacs/27.1/lisp/org/ob-perl /Users/ryan/.emacs.d/straight/build/org/ob-sqlite hides /usr/local/Cellar/emacs-plus@27/27.1/share/emacs/27.1/lisp/org/ob-sqlite /Users/ryan/.emacs.d/straight/build/org/ob-sed hides /usr/local/Cellar/emacs-plus@27/27.1/share/emacs/27.1/lisp/org/ob-sed /Users/ryan/.emacs.d/straight/build/org/org-list hides /usr/local/Cellar/emacs-plus@27/27.1/share/emacs/27.1/lisp/org/org-list /Users/ryan/.emacs.d/straight/build/org/ob-ruby hides /usr/local/Cellar/emacs-plus@27/27.1/share/emacs/27.1/lisp/org/ob-ruby /Users/ryan/.emacs.d/straight/build/org/ob-eval hides /usr/local/Cellar/emacs-plus@27/27.1/share/emacs/27.1/lisp/org/ob-eval /Users/ryan/.emacs.d/straight/build/org/org-habit hides /usr/local/Cellar/emacs-plus@27/27.1/share/emacs/27.1/lisp/org/org-habit /Users/ryan/.emacs.d/straight/build/org/org-clock hides /usr/local/Cellar/emacs-plus@27/27.1/share/emacs/27.1/lisp/org/org-clock /Users/ryan/.emacs.d/straight/build/org/org-goto hides /usr/local/Cellar/emacs-plus@27/27.1/share/emacs/27.1/lisp/org/org-goto /Users/ryan/.emacs.d/straight/build/org/ox-html hides /usr/local/Cellar/emacs-plus@27/27.1/share/emacs/27.1/lisp/org/ox-html /Users/ryan/.emacs.d/straight/build/org/org-src hides /usr/local/Cellar/emacs-plus@27/27.1/share/emacs/27.1/lisp/org/org-src /Users/ryan/.emacs.d/straight/build/org/ob-lisp hides /usr/local/Cellar/emacs-plus@27/27.1/share/emacs/27.1/lisp/org/ob-lisp /Users/ryan/.emacs.d/straight/build/org/ol-eshell hides /usr/local/Cellar/emacs-plus@27/27.1/share/emacs/27.1/lisp/org/ol-eshell /Users/ryan/.emacs.d/straight/build/org/ob-ditaa hides /usr/local/Cellar/emacs-plus@27/27.1/share/emacs/27.1/lisp/org/ob-ditaa /Users/ryan/.emacs.d/straight/build/org/org-pcomplete hides /usr/local/Cellar/emacs-plus@27/27.1/share/emacs/27.1/lisp/org/org-pcomplete /Users/ryan/.emacs.d/straight/build/org/org-lint hides /usr/local/Cellar/emacs-plus@27/27.1/share/emacs/27.1/lisp/org/org-lint /Users/ryan/.emacs.d/straight/build/org/ox-latex hides /usr/local/Cellar/emacs-plus@27/27.1/share/emacs/27.1/lisp/org/ox-latex /Users/ryan/.emacs.d/straight/build/org/ob-sass hides /usr/local/Cellar/emacs-plus@27/27.1/share/emacs/27.1/lisp/org/ob-sass /Users/ryan/.emacs.d/straight/build/org/ob-io hides /usr/local/Cellar/emacs-plus@27/27.1/share/emacs/27.1/lisp/org/ob-io /Users/ryan/.emacs.d/straight/build/org/ob-tangle hides /usr/local/Cellar/emacs-plus@27/27.1/share/emacs/27.1/lisp/org/ob-tangle /Users/ryan/.emacs.d/straight/build/org/ob-calc hides /usr/local/Cellar/emacs-plus@27/27.1/share/emacs/27.1/lisp/org/ob-calc /Users/ryan/.emacs.d/straight/build/org/ob-java hides /usr/local/Cellar/emacs-plus@27/27.1/share/emacs/27.1/lisp/org/ob-java /Users/ryan/.emacs.d/straight/build/org/ox-icalendar hides /usr/local/Cellar/emacs-plus@27/27.1/share/emacs/27.1/lisp/org/ox-icalendar /Users/ryan/.emacs.d/straight/build/org/ol-mhe hides /usr/local/Cellar/emacs-plus@27/27.1/share/emacs/27.1/lisp/org/ol-mhe /Users/ryan/.emacs.d/straight/build/org/org-attach-git hides /usr/local/Cellar/emacs-plus@27/27.1/share/emacs/27.1/lisp/org/org-attach-git /Users/ryan/.emacs.d/straight/build/org/ox-md hides /usr/local/Cellar/emacs-plus@27/27.1/share/emacs/27.1/lisp/org/ox-md /Users/ryan/.emacs.d/straight/build/org/ox-beamer hides /usr/local/Cellar/emacs-plus@27/27.1/share/emacs/27.1/lisp/org/ox-beamer /Users/ryan/.emacs.d/straight/build/org/org-element hides /usr/local/Cellar/emacs-plus@27/27.1/share/emacs/27.1/lisp/org/org-element /Users/ryan/.emacs.d/straight/build/org/org-protocol hides /usr/local/Cellar/emacs-plus@27/27.1/share/emacs/27.1/lisp/org/org-protocol /Users/ryan/.emacs.d/straight/build/org/ob-mscgen hides /usr/local/Cellar/emacs-plus@27/27.1/share/emacs/27.1/lisp/org/ob-mscgen /Users/ryan/.emacs.d/straight/build/org/ob-gnuplot hides /usr/local/Cellar/emacs-plus@27/27.1/share/emacs/27.1/lisp/org/ob-gnuplot /Users/ryan/.emacs.d/straight/build/org/org-tempo hides /usr/local/Cellar/emacs-plus@27/27.1/share/emacs/27.1/lisp/org/org-tempo /Users/ryan/.emacs.d/straight/build/org/ob-latex hides /usr/local/Cellar/emacs-plus@27/27.1/share/emacs/27.1/lisp/org/ob-latex /Users/ryan/.emacs.d/straight/build/org/ol-w3m hides /usr/local/Cellar/emacs-plus@27/27.1/share/emacs/27.1/lisp/org/ol-w3m /Users/ryan/.emacs.d/straight/build/org/org-id hides /usr/local/Cellar/emacs-plus@27/27.1/share/emacs/27.1/lisp/org/org-id /Users/ryan/.emacs.d/straight/build/org/ob-vala hides /usr/local/Cellar/emacs-plus@27/27.1/share/emacs/27.1/lisp/org/ob-vala /Users/ryan/.emacs.d/straight/build/org/ox-man hides /usr/local/Cellar/emacs-plus@27/27.1/share/emacs/27.1/lisp/org/ox-man /Users/ryan/.emacs.d/straight/build/org/org-feed hides /usr/local/Cellar/emacs-plus@27/27.1/share/emacs/27.1/lisp/org/org-feed /Users/ryan/.emacs.d/straight/build/org/ob-lua hides /usr/local/Cellar/emacs-plus@27/27.1/share/emacs/27.1/lisp/org/ob-lua /Users/ryan/.emacs.d/straight/build/org/ob-table hides /usr/local/Cellar/emacs-plus@27/27.1/share/emacs/27.1/lisp/org/ob-table /Users/ryan/.emacs.d/straight/build/org/ob-ocaml hides /usr/local/Cellar/emacs-plus@27/27.1/share/emacs/27.1/lisp/org/ob-ocaml /Users/ryan/.emacs.d/straight/build/org/ob-coq hides /usr/local/Cellar/emacs-plus@27/27.1/share/emacs/27.1/lisp/org/ob-coq /Users/ryan/.emacs.d/straight/build/org/ol-gnus hides /usr/local/Cellar/emacs-plus@27/27.1/share/emacs/27.1/lisp/org/ol-gnus /Users/ryan/.emacs.d/straight/build/org/ob-picolisp hides /usr/local/Cellar/emacs-plus@27/27.1/share/emacs/27.1/lisp/org/ob-picolisp /Users/ryan/.emacs.d/straight/build/org/org-indent hides /usr/local/Cellar/emacs-plus@27/27.1/share/emacs/27.1/lisp/org/org-indent /Users/ryan/.emacs.d/straight/build/org/ob-lilypond hides /usr/local/Cellar/emacs-plus@27/27.1/share/emacs/27.1/lisp/org/ob-lilypond /Users/ryan/.emacs.d/straight/build/org/ob-matlab hides /usr/local/Cellar/emacs-plus@27/27.1/share/emacs/27.1/lisp/org/ob-matlab /Users/ryan/.emacs.d/straight/build/org/org-datetree hides /usr/local/Cellar/emacs-plus@27/27.1/share/emacs/27.1/lisp/org/org-datetree /Users/ryan/.emacs.d/straight/build/org/ol-docview hides /usr/local/Cellar/emacs-plus@27/27.1/share/emacs/27.1/lisp/org/ol-docview /Users/ryan/.emacs.d/straight/build/org/ob-python hides /usr/local/Cellar/emacs-plus@27/27.1/share/emacs/27.1/lisp/org/ob-python /Users/ryan/.emacs.d/straight/build/org/ob-makefile hides /usr/local/Cellar/emacs-plus@27/27.1/share/emacs/27.1/lisp/org/ob-makefile /Users/ryan/.emacs.d/straight/build/org/org-duration hides /usr/local/Cellar/emacs-plus@27/27.1/share/emacs/27.1/lisp/org/org-duration /Users/ryan/.emacs.d/straight/build/org/org-agenda hides /usr/local/Cellar/emacs-plus@27/27.1/share/emacs/27.1/lisp/org/org-agenda /Users/ryan/.emacs.d/straight/build/org/ob-dot hides /usr/local/Cellar/emacs-plus@27/27.1/share/emacs/27.1/lisp/org/ob-dot /Users/ryan/.emacs.d/straight/build/org/ob-js hides /usr/local/Cellar/emacs-plus@27/27.1/share/emacs/27.1/lisp/org/ob-js /Users/ryan/.emacs.d/straight/build/org/ox-publish hides /usr/local/Cellar/emacs-plus@27/27.1/share/emacs/27.1/lisp/org/ox-publish /Users/ryan/.emacs.d/straight/build/org/org-inlinetask hides /usr/local/Cellar/emacs-plus@27/27.1/share/emacs/27.1/lisp/org/org-inlinetask /Users/ryan/.emacs.d/straight/build/org/ob-org hides /usr/local/Cellar/emacs-plus@27/27.1/share/emacs/27.1/lisp/org/ob-org /Users/ryan/.emacs.d/straight/build/org/org-keys hides /usr/local/Cellar/emacs-plus@27/27.1/share/emacs/27.1/lisp/org/org-keys /Users/ryan/.emacs.d/straight/build/org/ob-core hides /usr/local/Cellar/emacs-plus@27/27.1/share/emacs/27.1/lisp/org/ob-core /Users/ryan/.emacs.d/straight/build/org/org-compat hides /usr/local/Cellar/emacs-plus@27/27.1/share/emacs/27.1/lisp/org/org-compat /Users/ryan/.emacs.d/straight/build/org/ol hides /usr/local/Cellar/emacs-plus@27/27.1/share/emacs/27.1/lisp/org/ol /Users/ryan/.emacs.d/straight/build/org/ox-odt hides /usr/local/Cellar/emacs-plus@27/27.1/share/emacs/27.1/lisp/org/ox-odt /Users/ryan/.emacs.d/straight/build/org/ol-info hides /usr/local/Cellar/emacs-plus@27/27.1/share/emacs/27.1/lisp/org/ol-info /Users/ryan/.emacs.d/straight/build/org/ob-plantuml hides /usr/local/Cellar/emacs-plus@27/27.1/share/emacs/27.1/lisp/org/ob-plantuml /Users/ryan/.emacs.d/straight/build/org/ob-eshell hides /usr/local/Cellar/emacs-plus@27/27.1/share/emacs/27.1/lisp/org/ob-eshell /Users/ryan/.emacs.d/straight/build/org/ox-ascii hides /usr/local/Cellar/emacs-plus@27/27.1/share/emacs/27.1/lisp/org/ox-ascii /Users/ryan/.emacs.d/straight/build/org/org-loaddefs hides /usr/local/Cellar/emacs-plus@27/27.1/share/emacs/27.1/lisp/org/org-loaddefs /Users/ryan/.emacs.d/straight/build/org/ob-hledger hides /usr/local/Cellar/emacs-plus@27/27.1/share/emacs/27.1/lisp/org/ob-hledger /Users/ryan/.emacs.d/straight/build/org/ob-maxima hides /usr/local/Cellar/emacs-plus@27/27.1/share/emacs/27.1/lisp/org/ob-maxima /Users/ryan/.emacs.d/straight/build/org/org hides /usr/local/Cellar/emacs-plus@27/27.1/share/emacs/27.1/lisp/org/org /Users/ryan/.emacs.d/straight/build/org/ol-bbdb hides /usr/local/Cellar/emacs-plus@27/27.1/share/emacs/27.1/lisp/org/ol-bbdb /Users/ryan/.emacs.d/straight/build/org/org-macro hides /usr/local/Cellar/emacs-plus@27/27.1/share/emacs/27.1/lisp/org/org-macro /Users/ryan/.emacs.d/straight/build/org/ob-sql hides /usr/local/Cellar/emacs-plus@27/27.1/share/emacs/27.1/lisp/org/ob-sql /Users/ryan/.emacs.d/straight/build/org/org-attach hides /usr/local/Cellar/emacs-plus@27/27.1/share/emacs/27.1/lisp/org/org-attach /Users/ryan/.emacs.d/straight/build/org/ob-processing hides /usr/local/Cellar/emacs-plus@27/27.1/share/emacs/27.1/lisp/org/ob-processing /Users/ryan/.emacs.d/straight/build/org/ox-texinfo hides /usr/local/Cellar/emacs-plus@27/27.1/share/emacs/27.1/lisp/org/ox-texinfo /Users/ryan/.emacs.d/straight/build/org/org-crypt hides /usr/local/Cellar/emacs-plus@27/27.1/share/emacs/27.1/lisp/org/org-crypt /Users/ryan/.emacs.d/straight/build/org/org-footnote hides /usr/local/Cellar/emacs-plus@27/27.1/share/emacs/27.1/lisp/org/org-footnote /Users/ryan/.emacs.d/straight/build/org/org-install hides /usr/local/Cellar/emacs-plus@27/27.1/share/emacs/27.1/lisp/org/org-install /Users/ryan/.emacs.d/straight/build/org/ob-comint hides /usr/local/Cellar/emacs-plus@27/27.1/share/emacs/27.1/lisp/org/ob-comint /Users/ryan/.emacs.d/straight/build/org/ob-shen hides /usr/local/Cellar/emacs-plus@27/27.1/share/emacs/27.1/lisp/org/ob-shen /Users/ryan/.emacs.d/straight/build/let-alist/let-alist hides /usr/local/Cellar/emacs-plus@27/27.1/share/emacs/27.1/lisp/emacs-lisp/let-alist Features: (shadow sort mail-extr pulse bug-reference magit-filenotify magit-filenotify-autoloads magit-bookmark magit-submodule magit-obsolete magit-popup 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 magit-wip magit-log magit-diff smerge-mode magit-core magit-autorevert magit-margin magit-transient git-commit log-edit pcvs-util ess-s-lang ess-help ess-mode ess-inf ess-tracebug magit-process magit-mode transient magit-git magit-section magit-utils with-editor async-bytecomp server tramp-adb tramp-archive tramp-cache tramp-cmds tramp-ftp tramp-gvfs dbus expand cc-langs ido-sort-mtime ido-sort-mtime-autoloads autoload dabbrev eieio-opt speedbar sb-image ezimage dframe nroff-mode rng-xsd xsd-regexp rng-cmpct rng-nxml rng-valid nxml-mode nxml-outln nxml-rap sgml-mode reveal two-column iso-transl misearch multi-isearch dired-aux crux bs url-about url-dav url-dired recentf tree-widget markdown-mode edit-indirect autorevert filenotify gnutls network-stream url-http url-gw nsm url-cache url-auth ffap adjust-parens flymake-proc flymake vc-git diff-mode cl-print completion help-fns radix-tree org-eldoc ol-eww eww mm-url url-queue ol-rmail ol-mhe ol-irc ol-info ol-gnus nnir gnus-sum url url-proxy url-privacy url-expand url-methods url-history mailcap shr url-cookie url-domsuf url-util svg xml dom gnus-group gnus-undo gnus-start gnus-cloud nnimap nnmail mail-source utf7 netrc nnoo gnus-spec gnus-int gnus-range gnus-win ol-docview doc-view jka-compr image-mode exif ol-bibtex bibtex ol-bbdb ol-w3m editorconfig-core editorconfig-core-handle editorconfig-fnmatch epa-file emacsbug message rmc puny rfc822 mml mml-sec epa epg epg-config mm-decode mm-bodies mm-encode mail-parse rfc2231 mailabbrev gmm-utils mailheader sendmail face-remap winner which-key which-func savehist saveplace mb-depth midnight icomplete hl-line desktop frameset delsel flycheck-elsa flycheck-elsa-autoloads flycheck flycheck-autoloads pkg-info-autoloads ws-butler ws-butler-autoloads with-simulated-input with-simulated-input-autoloads which-key-autoloads volatile-highlights volatile-highlights-autoloads undo-tree diff undo-tree-autoloads tempbuf tempbuf-autoloads system-specific-settings system-specific-settings-autoloads snakemake-mode python tramp-sh snakemake-mode-autoloads magit-popup-autoloads smooth-scrolling smooth-scrolling-autoloads sml-modeline sml-modeline-autoloads slime compile etags fileloop xref project arc-mode archive-mode hyperspec slime-autoloads macrostep-autoloads shrink-whitespace-autoloads selectrum-prescient prescient selectrum-prescient-autoloads prescient-autoloads selectrum crm selectrum-autoloads reveal-in-osx-finder dired dired-loaddefs reveal-in-osx-finder-autoloads rainbow-delimiters rainbow-delimiters-autoloads pretty-symbols pretty-symbols-autoloads poly-R-autoloads poly-noweb-autoloads poly-markdown-autoloads polymode derived poly-lock polymode-base polymode-weave polymode-export polymode-compat polymode-methods polymode-core polymode-classes eieio-custom eieio-base color polymode-autoloads pointback assoc pointback-autoloads paradox paradox-menu paradox-commit-list hydra lv paradox-execute paradox-github paradox-core spinner paradox-autoloads hydra-autoloads lv-autoloads spinner-autoloads package-lint let-alist finder package-lint-autoloads let-alist-autoloads org-superstar org-superstar-autoloads org-autoloads ox-extra ox-odt rng-loc rng-uri rng-parse rng-match rng-dt rng-util rng-pttrn nxml-parse nxml-ns nxml-enc xmltok nxml-util ox-latex ox-icalendar ox-html table ox-ascii ox-publish ox org-element avl-tree generator gnus nnheader gnus-util rmail rmail-loaddefs rfc2047 rfc2045 ietf-drums mail-utils mm-util mail-prsvr occur-context-resize occur-context-resize-autoloads noflet cl-indent noflet-autoloads mode-line-bell mode-line-bell-autoloads edit-indirect-autoloads markdown-mode-autoloads magit-autoloads git-commit-autoloads with-editor-autoloads transient-autoloads mac-pseudo-daemon mac-pseudo-daemon-autoloads lexbind-mode lexbind-mode-autoloads json-mode json-reformat json-snatcher js imenu cc-mode cc-fonts cc-guess cc-menus cc-cmds cc-styles cc-align cc-engine cc-vars cc-defs json-mode-autoloads json-snatcher-autoloads json-reformat-autoloads iqa bookmark text-property-search iqa-autoloads image+ image-file image+-autoloads ido-yes-or-no ido-yes-or-no-autoloads ido-completing-read+ memoize minibuf-eldef ido ido-completing-read+-autoloads memoize-autoloads ido-complete-space-or-hyphen ido-complete-space-or-hyphen-autoloads htmlize cl htmlize-autoloads highlight-stages highlight-stages-autoloads highlight-defined highlight-defined-autoloads header2 header2-autoloads git-wip-mode vc vc-dispatcher git-wip-mode-autoloads git-gutter-fringe fringe-helper git-gutter-fringe-autoloads fringe-helper-autoloads git-gutter git-gutter-autoloads filelock filelock-autoloads esup-autoloads cus-edit cus-start cus-load wid-edit ess ess-utils ess-custom tramp tramp-loaddefs trampver tramp-integration files-x tramp-compat shell parse-time iso8601 ls-lisp ess-autoloads elsa elsa-typed-subr elsa-typed-thingatpt elsa-typed-syntax elsa-extension-builtin elsa-ruleset elsa-rules-list elsa-analyser elsa-typed-builtin elsa-english elsa-check elsa-state elsa-scope elsa-reader elsa-type-helpers elsa-error pcase elsa-variable trinary elsa-types elsa-autoloads trinary-autoloads editorconfig editorconfig-autoloads readme-debian readme-debian-autoloads debian-copyright debian-copyright-autoloads debian-control-mode debian-control-mode-autoloads debian-changelog-mode add-log debian-changelog-mode-autoloads diminish diminish-autoloads decide decide-autoloads cwl-mode yaml-mode cwl-mode-autoloads yaml-mode-autoloads crux-autoloads crontab-mode sh-script smie executable crontab-mode-autoloads creole-mode-autoloads cl-lib-highlight cl-lib-highlight-autoloads cask-mode cask-mode-autoloads cask cask-bootstrap ansi package-recipe-mode package-build-badges package-build package-recipe eieio-compat lisp-mnt shut-up epl git commander cask-autoloads ansi-autoloads package-build-autoloads shut-up-autoloads epl-autoloads caddyfile-mode-autoloads loop-autoloads buttercup warnings ert pp ewoc debug backtrace buttercup-compat buttercup-autoloads beacon beacon-autoloads bar-cursor bar-cursor-autoloads autopair paren autopair-autoloads auto-dim-other-buffers auto-dim-other-buffers-autoloads auto-complete edmacro kmacro popup auto-complete-autoloads popup-autoloads finder-inf async async-autoloads apt-sources-list apt-sources-list-autoloads apache-mode-autoloads anzu thingatpt anzu-autoloads amx amx-autoloads adjust-parens-autoloads exec-path-from-shell exec-path-from-shell-autoloads f s f-autoloads s-autoloads req-package view req-package-cycles req-package-args req-package-hooks ht log4e rx dash use-package use-package-ensure use-package-delight use-package-diminish use-package-bind-key bind-key use-package-core req-package-autoloads ht-autoloads log4e-autoloads dash-autoloads use-package-autoloads bind-key-autoloads org ob ob-tangle ob-ref ob-lob ob-table ob-exp org-macro org-footnote org-src ob-comint org-pcomplete pcomplete comint ansi-color ring org-list org-faces org-entities time-date noutline outline easy-mmode ob-emacs-lisp ob-core ob-eval org-table ol org-keys org-compat advice org-macs org-loaddefs format-spec find-func cal-menu calendar cal-loaddefs org-plus-contrib-autoloads org-version straight-autoloads info cl-extra help-mode straight package easymenu browse-url url-handlers url-parse auth-source cl-seq eieio eieio-core cl-macs eieio-loaddefs password-cache json subr-x map url-vars seq byte-opt gv bytecomp byte-compile cconv cl-loaddefs cl-lib tooltip eldoc electric uniquify ediff-hook vc-hooks lisp-float-type mwheel term/ns-win ns-win ucs-normalize mule-util term/common-win tool-bar dnd fontset image regexp-opt fringe tabulated-list replace newcomment text-mode elisp-mode lisp-mode prog-mode register page tab-bar menu-bar rfn-eshadow isearch timer select scroll-bar mouse jit-lock font-lock syntax facemenu font-core term/tty-colors frame minibuffer cl-generic 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 charscript charprop case-table epa-hook jka-cmpr-hook help simple abbrev obarray cl-preloaded nadvice loaddefs button faces cus-face macroexp files text-properties overlay sha1 md5 base64 format env code-pages mule custom widget hashtable-print-readable backquote threads kqueue cocoa ns lcms2 multi-tty make-network-process emacs) Memory information: ((conses 16 3612399 319243) (symbols 48 69740 1) (strings 32 341577 11978) (string-bytes 1 8923442) (vectors 16 116902) (vector-slots 8 2255067 275170) (floats 8 730 1708) (intervals 56 38854 602) (buffers 1000 122)) From debbugs-submit-bounces@debbugs.gnu.org Fri Jun 24 08:56:26 2022 Received: (at 47127) by debbugs.gnu.org; 24 Jun 2022 12:56:26 +0000 Received: from localhost ([127.0.0.1]:41339 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1o4irJ-0002Mp-U7 for submit@debbugs.gnu.org; Fri, 24 Jun 2022 08:56:26 -0400 Received: from quimby.gnus.org ([95.216.78.240]:49880) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1o4irG-0002MV-2e for 47127@debbugs.gnu.org; Fri, 24 Jun 2022 08:56:24 -0400 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnus.org; s=20200322; h=Content-Transfer-Encoding:Content-Type:MIME-Version:Message-ID :In-Reply-To:Date:References:Subject:Cc:To:From:Sender:Reply-To:Content-ID: Content-Description:Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc :Resent-Message-ID:List-Id:List-Help:List-Unsubscribe:List-Subscribe: List-Post:List-Owner:List-Archive; bh=kr45DsKwV5/7dCrDrc7Ua8ab2+wuZ9ndSYe2EiM8TFM=; b=BF8TsLzP5XcuKszHtaHNXHDPtV 7ijLGaOdIKjmOMfrHR5g2BUfVU5AbtU0f/1ZRZJDx/jH4A+aChdBvbJJ9Fz9efwXUTrpj52kQhhjF +vJMuffDOyRdLjGk/P2wbcr0rrJL6xz+nayVLRKEl1LKc4wjmGP+28SexKWTWeeH+OrE=; Received: from [84.212.220.105] (helo=xo) by quimby.gnus.org with esmtpsa (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1o4ir6-0001o8-9Y; Fri, 24 Jun 2022 14:56:15 +0200 From: Lars Ingebrigtsen To: "Ryan C. Thompson" Subject: Re: bug#47127: 27.1; ido file completion sorting should respect ido-case-fold, maybe? References: X-Now-Playing: A Certain Ratio's _From Brussels With Love (2)_: "And Then Again (Live in BXL)" Date: Fri, 24 Jun 2022 14:56:11 +0200 In-Reply-To: (Ryan C. Thompson's message of "Sat, 13 Mar 2021 16:57:03 -0500") Message-ID: <878rpmp6dw.fsf@gnus.org> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/29.0.50 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-Spam-Report: Spam detection software, running on the system "quimby.gnus.org", has NOT identified this incoming email as spam. The original message has been attached to this so you can view it or label similar future email. If you have any questions, see @@CONTACT_ADDRESS@@ for details. Content preview: "Ryan C. Thompson" writes: > ;; Returns nil, as expected > (let ((ido-case-fold nil)) >   (ido-file-lessp "a" "B")) > > ;; Should return t, but currently returns nil > (let ((ido-case-fold t)) >   (ido-file-lessp "a" "B")) > [...] Content analysis details: (-2.9 points, 5.0 required) pts rule name description ---- ---------------------- -------------------------------------------------- -1.0 ALL_TRUSTED Passed through trusted hosts only via SMTP -1.9 BAYES_00 BODY: Bayes spam probability is 0 to 1% [score: 0.0000] X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 47127 Cc: 47127@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.3 (---) "Ryan C. Thompson" writes: > ;; Returns nil, as expected > (let ((ido-case-fold nil)) > =C2=A0 (ido-file-lessp "a" "B")) > > ;; Should return t, but currently returns nil > (let ((ido-case-fold t)) > =C2=A0 (ido-file-lessp "a" "B")) > > ;; Should still return t because case is the only difference > (let ((ido-case-fold t)) > =C2=A0 (ido-file-lessp "A" "a")) > > At least, this is what makes sense to me. I think this function should respect ido-case-fold, but special-casing equal strings here seems pretty unnatural to me -- if you want to ignore case, you want to ignore case. So I've now made this change in Emacs 29. --=20 (domestic pets only, the antidote for overdose, milk.) bloggy blog: http://lars.ingebrigtsen.no From debbugs-submit-bounces@debbugs.gnu.org Fri Jun 24 08:56:31 2022 Received: (at control) by debbugs.gnu.org; 24 Jun 2022 12:56:31 +0000 Received: from localhost ([127.0.0.1]:41342 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1o4irP-0002N8-6P for submit@debbugs.gnu.org; Fri, 24 Jun 2022 08:56:31 -0400 Received: from quimby.gnus.org ([95.216.78.240]:49894) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1o4irN-0002Mi-Hq for control@debbugs.gnu.org; Fri, 24 Jun 2022 08:56:29 -0400 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnus.org; s=20200322; h=Subject:From:To:Message-Id:Date:Sender:Reply-To:Cc: MIME-Version:Content-Type:Content-Transfer-Encoding:Content-ID: Content-Description:Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc :Resent-Message-ID:In-Reply-To:References:List-Id:List-Help:List-Unsubscribe: List-Subscribe:List-Post:List-Owner:List-Archive; bh=eDuIxC1JEvn74b453Zsc/RcSJYaRXqjf8wkYExLRdGs=; b=eQTr0yOucBXz92C6cnsnqK7lIs eaioouqQGa1WUTXRDDr1PHcfpS09ip9jZCHqcmA4/iYJzOZs6k47QQ/qq32A+Rizy8RI6xeS0s8mN nkYAjacqs9mRtX0fllYSxCLUG3qaFk7OD4ic8C9lvPWCJQKd31AAvvOE4Z77cuEeyZmI=; Received: from [84.212.220.105] (helo=xo) by quimby.gnus.org with esmtpsa (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1o4irF-0001oJ-Gx for control@debbugs.gnu.org; Fri, 24 Jun 2022 14:56:23 +0200 Date: Fri, 24 Jun 2022 14:56:19 +0200 Message-Id: <877d56p6do.fsf@gnus.org> To: control@debbugs.gnu.org From: Lars Ingebrigtsen Subject: control message for bug #47127 X-Spam-Report: Spam detection software, running on the system "quimby.gnus.org", has NOT identified this incoming email as spam. The original message has been attached to this so you can view it or label similar future email. If you have any questions, see @@CONTACT_ADDRESS@@ for details. Content preview: close 47127 29.1 quit Content analysis details: (-2.9 points, 5.0 required) pts rule name description ---- ---------------------- -------------------------------------------------- -1.0 ALL_TRUSTED Passed through trusted hosts only via SMTP -1.9 BAYES_00 BODY: Bayes spam probability is 0 to 1% [score: 0.0000] X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: control X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.3 (---) close 47127 29.1 quit From debbugs-submit-bounces@debbugs.gnu.org Fri Jun 24 09:58:39 2022 Received: (at 47127) by debbugs.gnu.org; 24 Jun 2022 13:58:39 +0000 Received: from localhost ([127.0.0.1]:43089 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1o4jpW-0000RJ-9l for submit@debbugs.gnu.org; Fri, 24 Jun 2022 09:58:39 -0400 Received: from mail-qv1-f43.google.com ([209.85.219.43]:40631) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1o4jpK-0000Qq-8K for 47127@debbugs.gnu.org; Fri, 24 Jun 2022 09:58:37 -0400 Received: by mail-qv1-f43.google.com with SMTP id cu16so4648515qvb.7 for <47127@debbugs.gnu.org>; Fri, 24 Jun 2022 06:58:26 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=thompsonclan-org.20210112.gappssmtp.com; s=20210112; h=message-id:date:mime-version:user-agent:subject:content-language:to :cc:references:from:in-reply-to:content-transfer-encoding; bh=OP3ULeE+xMnpbmMq9MU30hhlyXIu4JGVKdWk/9+6EZ0=; b=CHtZNqrFhDum89yd35DndNKIiGUIU+QoqPgOJ0C1gIrtpfmpQQOLbhepQnnmZcuHsT PEfuPTzVXaSNF63MPq00oEuXmmY+5+uTSeIU7ecIsJ9cX15wdWKzOOPYwn6dBpQTCFjd 12K4li1r2/fhbZ55utGZCFiVeDhiPli74mDK3Y5n3JaX2ytxv/COgQEDDGXPLnHWNoFW f8lkjhPr2joM4DugbetY1rAtLyh5g15uty8aIIGvCNeWu8/NflkYiTaal/C01QCh4Le7 cIVMV9F+7QRCzjIX45aL11DvsigBngDpCwJTkanRgDwHgoMRomCY/6Y3Ac6gLwetnKKE tDPQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:message-id:date:mime-version:user-agent:subject :content-language:to:cc:references:from:in-reply-to :content-transfer-encoding; bh=OP3ULeE+xMnpbmMq9MU30hhlyXIu4JGVKdWk/9+6EZ0=; b=jd1wGc9grgMPFHK3Xav/gGN4QqxeoHaDosM68poYrTj9D2cG28A3Uc7U1SOWuv5zvs 2lqu9aPl41JUaOvkaR4HTUDFsHDyAacXgSkNlBj+xynS4qSNfkQm/L2+Ouv+6iQZF0m0 ovIBOp6rhl6q3qWCjxXHf/sbXDpPbG7GTll6qjteiLSAzfcsEdPnIqyBj44DJtn2/nUD a1VEoiGDXwDRYP/wt1ttDXKv5DmHLTp/scZLjEoj/YYk5LrhMQSPTwHuLz5IOmDBHa6M 8j5j2AsScXXQVZdcnNpDSq9prEU6uV2tvcNsmpxtD0T8zIo2CLSAjkqXz8rTbo3eOUR8 uYBQ== X-Gm-Message-State: AJIora+FqA0ChCvcTDZsZFoeTEi3RD052XbOEyz2QWm+znvkwPr1zCNN s1Nx37EIo7Z3EdZhCsHF2zFLKHjBTRT6ZlNB X-Google-Smtp-Source: AGRyM1ttGkiuCQfS67t16bTkBYUipPs8uIbCUGyIOgZUh4t0Cb+ro4RtmbKzJXXTjjnEpcI/vAQqiw== X-Received: by 2002:a05:6214:c8c:b0:464:5e9b:15c7 with SMTP id r12-20020a0562140c8c00b004645e9b15c7mr37094419qvr.105.1656079100490; Fri, 24 Jun 2022 06:58:20 -0700 (PDT) Received: from [192.168.4.252] (c-76-116-193-120.hsd1.nj.comcast.net. [76.116.193.120]) by smtp.gmail.com with ESMTPSA id g19-20020a37e213000000b006a6bd7028d5sm1920919qki.18.2022.06.24.06.58.19 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Fri, 24 Jun 2022 06:58:19 -0700 (PDT) Message-ID: <0f37c4f6-4b6b-6829-91bb-46c13f9ef1e8@thompsonclan.org> Date: Fri, 24 Jun 2022 09:58:17 -0400 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101 Thunderbird/91.10.0 Subject: Re: bug#47127: 27.1; ido file completion sorting should respect ido-case-fold, maybe? Content-Language: en-US To: Lars Ingebrigtsen References: <878rpmp6dw.fsf@gnus.org> From: "Ryan C. Thompson" In-Reply-To: <878rpmp6dw.fsf@gnus.org> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 47127 Cc: 47127@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) On 6/24/22 8:56 AM, Lars Ingebrigtsen wrote: > "Ryan C. Thompson" writes: > >> ;; Returns nil, as expected >> (let ((ido-case-fold nil)) >>   (ido-file-lessp "a" "B")) >> >> ;; Should return t, but currently returns nil >> (let ((ido-case-fold t)) >>   (ido-file-lessp "a" "B")) >> >> ;; Should still return t because case is the only difference >> (let ((ido-case-fold t)) >>   (ido-file-lessp "A" "a")) >> >> At least, this is what makes sense to me. > I think this function should respect ido-case-fold, but special-casing > equal strings here seems pretty unnatural to me -- if you want to ignore > case, you want to ignore case. > > So I've now made this change in Emacs 29. I don't understand why it's a problem to special-case strings that are equal after case folding. If I understand correctly, when case folding is enabled, then the sort order of such strings is arbitrary. If so, why not choose a consistent way to break the tie? For instance, if I know that "A.txt" will always sort before "a.txt" and both are present in the folder, if the order is consistent then I can always type "a.txt C-s RET" to select "a.txt", because I know it will be the 2nd matching choice. The result is a sort order that is correct when ignoring case while also being completely predictable even for strings differing only in case. Regardless, I don't feel strongly about this, and I can always apply advice similar to the above for my own use, so if you're not convinced by the above argument, feel free to leave it as is. (Also, perhaps it already works this way incidentally, if the list of files is returned in lexical order and the sorting is stable.) From unknown Thu Aug 21 12:10:33 2025 Received: (at fakecontrol) by fakecontrolmessage; To: internal_control@debbugs.gnu.org From: Debbugs Internal Request Subject: Internal Control Message-Id: bug archived. Date: Sat, 23 Jul 2022 11:24:05 +0000 User-Agent: Fakemail v42.6.9 # This is a fake control message. # # The action: # bug archived. thanks # This fakemail brought to you by your local debbugs # administrator