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.