From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Emanuel Berg Newsgroups: gmane.emacs.help Subject: Re: How to convert an arbitrary string into a filename Date: Wed, 26 Apr 2023 23:29:56 +0200 Message-ID: <87fs8mwcvf.fsf@dataswamp.org> References: <87wn1z8fgo.fsf@mbork.pl> Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="37013"; mail-complaints-to="usenet@ciao.gmane.io" User-Agent: Gnus/5.13 (Gnus v5.13) To: help-gnu-emacs@gnu.org Cancel-Lock: sha1:swM+x3HqRHLsVvovLM8dgBtPUU4= Original-X-From: help-gnu-emacs-bounces+geh-help-gnu-emacs=m.gmane-mx.org@gnu.org Thu Apr 27 07:39:12 2023 Return-path: Envelope-to: geh-help-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 1pruLX-0009ST-3R for geh-help-gnu-emacs@m.gmane-mx.org; Thu, 27 Apr 2023 07:39:11 +0200 Original-Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1pruKk-0000JO-7y; Thu, 27 Apr 2023 01:38:22 -0400 Original-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 ) id 1prmiK-0007Zp-FX for help-gnu-emacs@gnu.org; Wed, 26 Apr 2023 17:30:12 -0400 Original-Received: from ciao.gmane.io ([116.202.254.214]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1prmiI-0003m3-1a for help-gnu-emacs@gnu.org; Wed, 26 Apr 2023 17:30:12 -0400 Original-Received: from list by ciao.gmane.io with local (Exim 4.92) (envelope-from ) id 1prmiD-0007Yf-Vu for help-gnu-emacs@gnu.org; Wed, 26 Apr 2023 23:30:05 +0200 X-Injected-Via-Gmane: http://gmane.org/ Mail-Followup-To: help-gnu-emacs@gnu.org Mail-Copies-To: never Received-SPF: pass client-ip=116.202.254.214; envelope-from=geh-help-gnu-emacs@m.gmane-mx.org; helo=ciao.gmane.io X-Spam_score_int: -16 X-Spam_score: -1.7 X-Spam_bar: - X-Spam_report: (-1.7 / 5.0 requ) BAYES_00=-1.9, HEADER_FROM_DIFFERENT_DOMAINS=0.25, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01 autolearn=no autolearn_force=no X-Spam_action: no action X-Mailman-Approved-At: Thu, 27 Apr 2023 01:38:20 -0400 X-BeenThere: help-gnu-emacs@gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Users list for the GNU Emacs text editor List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: help-gnu-emacs-bounces+geh-help-gnu-emacs=m.gmane-mx.org@gnu.org Original-Sender: help-gnu-emacs-bounces+geh-help-gnu-emacs=m.gmane-mx.org@gnu.org Xref: news.gmane.io gmane.emacs.help:143409 Archived-At: Marcin Borkowski wrote: > given an arbitrary string, say "Hello, world!!!", I want to > have a filename with all the runs of weird characters (that > is, non-alphanumeric ones) converted to dashes (say, > "Hello-world"). Is there a function for that in Emacs > already or should I write my own? There are functions to do this to strings, what comes to mind is `replace-regexp-in-string', but what difference do you mean there are between filenames and strings that look like filenames? To me it would be enough downcase all chars, convert chars with various decorations to their ASCII base equivalents (e.g. our Swedish å, ä, and ö to a, a, and o - not that one should use non-English for filenames so a bad example, but sometimes English has such chars as well), then use the dash char as the word delimiter, and after that probably just drop remaining non-alphanumerics. -- underground experts united https://dataswamp.org/~incal