From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: "Ryan C. Thompson" Newsgroups: gmane.emacs.bugs Subject: bug#47127: 27.1; ido file completion sorting should respect ido-case-fold, maybe? Date: Fri, 24 Jun 2022 09:58:17 -0400 Message-ID: <0f37c4f6-4b6b-6829-91bb-46c13f9ef1e8@thompsonclan.org> References: <878rpmp6dw.fsf@gnus.org> Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="39673"; mail-complaints-to="usenet@ciao.gmane.io" User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101 Thunderbird/91.10.0 Cc: 47127@debbugs.gnu.org To: Lars Ingebrigtsen Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Fri Jun 24 16:44:40 2022 Return-path: Envelope-to: geb-bug-gnu-emacs@m.gmane-mx.org Original-Received: from lists.gnu.org ([209.51.188.17]) by ciao.gmane.io with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1o4kY4-000A9z-BT for geb-bug-gnu-emacs@m.gmane-mx.org; Fri, 24 Jun 2022 16:44:40 +0200 Original-Received: from localhost ([::1]:33204 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1o4kY3-0001CH-Dq for geb-bug-gnu-emacs@m.gmane-mx.org; Fri, 24 Jun 2022 10:44:39 -0400 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:41728) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1o4jpu-0002N2-B5 for bug-gnu-emacs@gnu.org; Fri, 24 Jun 2022 09:59:02 -0400 Original-Received: from debbugs.gnu.org ([209.51.188.43]:49192) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1o4jpu-0007hS-1r for bug-gnu-emacs@gnu.org; Fri, 24 Jun 2022 09:59:02 -0400 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1o4jpt-0000S2-Sf for bug-gnu-emacs@gnu.org; Fri, 24 Jun 2022 09:59:01 -0400 X-Loop: help-debbugs@gnu.org Resent-From: "Ryan C. Thompson" Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Fri, 24 Jun 2022 13:59:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 47127 X-GNU-PR-Package: emacs Original-Received: via spool by 47127-submit@debbugs.gnu.org id=B47127.16560791191698 (code B ref 47127); Fri, 24 Jun 2022 13:59:01 +0000 Original-Received: (at 47127) by debbugs.gnu.org; 24 Jun 2022 13:58:39 +0000 Original-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 Original-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 Original-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) Original-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) Content-Language: en-US In-Reply-To: <878rpmp6dw.fsf@gnus.org> X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-BeenThere: bug-gnu-emacs@gnu.org List-Id: "Bug reports for GNU Emacs, the Swiss army knife of text editors" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Original-Sender: "bug-gnu-emacs" Xref: news.gmane.io gmane.emacs.bugs:235190 Archived-At: 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.)