X-Loop: help-debbugs@HIDDEN Subject: bug#60929: 30.0.50; [FR] `file-name-extension' and backup suffixes Resent-From: Ihor Radchenko <yantar92@HIDDEN> Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> Resent-CC: bug-gnu-emacs@HIDDEN Resent-Date: Wed, 18 Jan 2023 10:50:01 +0000 Resent-Message-ID: <handler.60929.B.167403899121013 <at> debbugs.gnu.org> Resent-Sender: help-debbugs@HIDDEN X-GNU-PR-Message: report 60929 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: 60929 <at> debbugs.gnu.org X-Debbugs-Original-To: bug-gnu-emacs@HIDDEN Received: via spool by submit <at> debbugs.gnu.org id=B.167403899121013 (code B ref -1); Wed, 18 Jan 2023 10:50:01 +0000 Received: (at submit) by debbugs.gnu.org; 18 Jan 2023 10:49:51 +0000 Received: from localhost ([127.0.0.1]:39397 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1pI60t-0005Sr-0d for submit <at> debbugs.gnu.org; Wed, 18 Jan 2023 05:49:51 -0500 Received: from lists.gnu.org ([209.51.188.17]:51454) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <yantar92@HIDDEN>) id 1pI60o-0005Sf-Vl for submit <at> debbugs.gnu.org; Wed, 18 Jan 2023 05:49:49 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from <yantar92@HIDDEN>) id 1pI60o-0002pn-ML for bug-gnu-emacs@HIDDEN; Wed, 18 Jan 2023 05:49:46 -0500 Received: from mout01.posteo.de ([185.67.36.65]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from <yantar92@HIDDEN>) id 1pI60l-0002Ey-8O for bug-gnu-emacs@HIDDEN; Wed, 18 Jan 2023 05:49:46 -0500 Received: from submission (posteo.de [185.67.36.169]) by mout01.posteo.de (Postfix) with ESMTPS id 3D09F240323 for <bug-gnu-emacs@HIDDEN>; Wed, 18 Jan 2023 11:49:39 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=posteo.net; s=2017; t=1674038979; bh=3/Bg2V8mCuyttnQcBdiRxYKE83R/MuOPy0zJ0O2WhBk=; h=From:To:Subject:Date:From; b=aUF3csAEcEvHWaIq61Wh7Ju497F4Yc2u6W5YVwrurAebCm6EJO/EtoDxJCdiGcfFs PTuzwp7AhliaozLgN3S8eXDPVMDrGbzH3vCg+n5W7yqnjoDQMtOjx+hkIxigoxxk7+ 4UtVotNXHQq/EfwoRWwmHYqEzOv/zekY4rBITl9NkCmd9EootO9qi5BV3B+EWfc6NQ 8tDFI7tcNCnr89ydr3/trFJkVoylGs0+Jwqge1q2BEO9djEa5YK8BC2DCp1rDhmbrm F1JoVPu80wNXQZMxWCA2//GlaC2B/p29GzNgGL7zVL8AvWGmfjN5k1kGgnF5TzY5YK rPSBYntcl60Mw== Received: from customer (localhost [127.0.0.1]) by submission (posteo.de) with ESMTPSA id 4NxjFF1MRGz9rxX for <bug-gnu-emacs@HIDDEN>; Wed, 18 Jan 2023 11:49:36 +0100 (CET) From: Ihor Radchenko <yantar92@HIDDEN> Date: Wed, 18 Jan 2023 10:50:08 +0000 Message-ID: <87o7qw6rrz.fsf@localhost> MIME-Version: 1.0 Content-Type: text/plain Received-SPF: pass client-ip=185.67.36.65; envelope-from=yantar92@HIDDEN; helo=mout01.posteo.de X-Spam_score_int: -43 X-Spam_score: -4.4 X-Spam_bar: ---- X-Spam_report: (-4.4 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_MED=-2.3, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-Spam-Score: -1.3 (-) X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -2.3 (--) Hi, Would it be possible to make `file-name-sans-extension' strip extension upon removing backup suffixes (optionally)? Currently, Emacs' handling of backup extensions is a bit inconsistent: auto-mode-alist recognizes ("\\.~?[0-9]+\\.[0-9][-.0-9]*~?\\'" nil t) ("\\.\\(?:orig\\|in\\|[bB][aA][kK]\\)\\'" nil t) as backup extension and thus opens files like foo.org.bak with Org mode. Further, `file-name-extension' returns: The extension, in a file name, is the part that begins with the last ., excluding version numbers and backup suffixes, except that a leading . of the file name, if there is one, doesn't count. But it only works for the native Emacs "~" style of backups (on Linux, at least). If one tries (file-name-extension "foo.org.bak") ; => "bak", we do not see backup extension stripped, which is correct wrt the docstring, but problematic when we need to handle backup files on Windows. If one needs to strip backup extension/suffix for .bak and similar files, there is a need to re-use "\\.\\(?:orig\\|in\\|[bB][aA][kK]\\)\\'" regexp, which is not ideal because auto-mode-alist may include other backup suffixes in future. It would be useful if functions like `file-name-extension', `file-name-sans-extension', and similar could optionally strip backup suffixes that contain ".". Context: https://orgmode.org/list/25543.50706.554658.6937@HIDDEN In GNU Emacs 30.0.50 (build 1, x86_64-pc-linux-gnu, cairo version 1.17.6) of 2023-01-16 built on localhost Repository revision: bb679244152dddd9949ca065aa6617457f7a7144 Repository branch: master Windowing system distributor 'The X.Org Foundation', version 11.0.12101006 System Description: Gentoo Linux -- Ihor Radchenko // yantar92, Org mode contributor, Learn more about Org mode at <https://orgmode.org/>. Support Org development at <https://liberapay.com/org-mode>, or support my work at <https://liberapay.com/yantar92>
Content-Disposition: inline Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-Mailer: MIME-tools 5.505 (Entity 5.505) Content-Type: text/plain; charset=utf-8 X-Loop: help-debbugs@HIDDEN From: help-debbugs@HIDDEN (GNU bug Tracking System) To: Ihor Radchenko <yantar92@HIDDEN> Subject: bug#60929: Acknowledgement (30.0.50; [FR] `file-name-extension' and backup suffixes) Message-ID: <handler.60929.B.167403899121013.ack <at> debbugs.gnu.org> References: <87o7qw6rrz.fsf@localhost> X-Gnu-PR-Message: ack 60929 X-Gnu-PR-Package: emacs Reply-To: 60929 <at> debbugs.gnu.org Date: Wed, 18 Jan 2023 10:50:01 +0000 Thank you for filing a new bug report with debbugs.gnu.org. This is an automatically generated reply to let you know your message has been received. Your message is being forwarded to the package maintainers and other interested parties for their attention; they will reply in due course. Your message has been sent to the package maintainer(s): bug-gnu-emacs@HIDDEN If you wish to submit further information on this problem, please send it to 60929 <at> debbugs.gnu.org. Please do not send mail to help-debbugs@HIDDEN unless you wish to report a problem with the Bug-tracking system. --=20 60929: https://debbugs.gnu.org/cgi/bugreport.cgi?bug=3D60929 GNU Bug Tracking System Contact help-debbugs@HIDDEN with problems
X-Loop: help-debbugs@HIDDEN Subject: bug#60929: 30.0.50; [FR] `file-name-extension' and backup suffixes Resent-From: Ruijie Yu <ruijie@HIDDEN> Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> Resent-CC: bug-gnu-emacs@HIDDEN Resent-Date: Wed, 18 Jan 2023 11:15:01 +0000 Resent-Message-ID: <handler.60929.B60929.167404049132498 <at> debbugs.gnu.org> Resent-Sender: help-debbugs@HIDDEN X-GNU-PR-Message: followup 60929 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: Ihor Radchenko <yantar92@HIDDEN> Cc: 60929 <at> debbugs.gnu.org Received: via spool by 60929-submit <at> debbugs.gnu.org id=B60929.167404049132498 (code B ref 60929); Wed, 18 Jan 2023 11:15:01 +0000 Received: (at 60929) by debbugs.gnu.org; 18 Jan 2023 11:14:51 +0000 Received: from localhost ([127.0.0.1]:39463 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1pI6P4-0008S5-Vj for submit <at> debbugs.gnu.org; Wed, 18 Jan 2023 06:14:51 -0500 Received: from netyu.xyz ([152.44.41.246]:49304 helo=mail.netyu.xyz) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <ruijie@HIDDEN>) id 1pI6P2-0008Rw-KB for 60929 <at> debbugs.gnu.org; Wed, 18 Jan 2023 06:14:49 -0500 Received: from fw.net.yu.netyu.xyz (<unknown> [222.248.4.98]) by netyu.xyz (OpenSMTPD) with ESMTPSA id cb23116c (TLSv1.3:TLS_AES_256_GCM_SHA384:256:NO); Wed, 18 Jan 2023 11:14:47 +0000 (UTC) References: <87o7qw6rrz.fsf@localhost> User-agent: mu4e 1.8.13; emacs 29.0.60 From: Ruijie Yu <ruijie@HIDDEN> Date: Wed, 18 Jan 2023 19:08:36 +0800 In-reply-to: <87o7qw6rrz.fsf@localhost> Message-ID: <sdvilh4ccwy.fsf@HIDDEN> MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: 0.0 (/) X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: 0.0 (/) Ihor Radchenko <yantar92@HIDDEN> writes: > Hi, > > Would it be possible to make `file-name-sans-extension' strip extension > upon removing backup suffixes (optionally)? > > Currently, Emacs' handling of backup extensions is a bit inconsistent: > > auto-mode-alist recognizes > > ("\\.~?[0-9]+\\.[0-9][-.0-9]*~?\\'" nil t) > ("\\.\\(?:orig\\|in\\|[bB][aA][kK]\\)\\'" nil t) > > as backup extension and thus opens files like foo.org.bak with Org mode. > > [...] > > It would be useful if functions like `file-name-extension', > `file-name-sans-extension', and similar could optionally strip backup > suffixes that contain ".". > [...] Note that since the backup extensions can be stripped recursively in `auto-mode-alist' (that is, "test.c.bak.Bak.BAK.baK" is opened in c-mode because of the recursive extension stripping), if this FR is to be accepted, we would need to ensure that the above scenario is covered. Best, RY
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997 nCipher Corporation Ltd,
1994-97 Ian Jackson.