From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Marcin Borkowski Newsgroups: gmane.emacs.help Subject: Re: How to check whether a character (or one-character string) is a letter? Date: Sun, 05 Oct 2014 02:08:38 +0200 Message-ID: <874mvjml89.fsf@wmi.amu.edu.pl> References: <87iok0y8wr.fsf@wmi.amu.edu.pl> NNTP-Posting-Host: plane.gmane.org Mime-Version: 1.0 Content-Type: text/plain X-Trace: ger.gmane.org 1412467770 32134 80.91.229.3 (5 Oct 2014 00:09:30 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Sun, 5 Oct 2014 00:09:30 +0000 (UTC) To: "help-gnu-emacs\@gnu.org" Original-X-From: help-gnu-emacs-bounces+geh-help-gnu-emacs=m.gmane.org@gnu.org Sun Oct 05 02:09:24 2014 Return-path: Envelope-to: geh-help-gnu-emacs@m.gmane.org Original-Received: from lists.gnu.org ([208.118.235.17]) by plane.gmane.org with esmtp (Exim 4.69) (envelope-from ) id 1XaZO6-0007q0-BH for geh-help-gnu-emacs@m.gmane.org; Sun, 05 Oct 2014 02:09:22 +0200 Original-Received: from localhost ([::1]:45653 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1XaZO5-0003Ep-QK for geh-help-gnu-emacs@m.gmane.org; Sat, 04 Oct 2014 20:09:21 -0400 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:50008) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1XaZNp-0003Ei-K3 for help-gnu-emacs@gnu.org; Sat, 04 Oct 2014 20:09:11 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1XaZNj-0000aQ-S9 for help-gnu-emacs@gnu.org; Sat, 04 Oct 2014 20:09:05 -0400 Original-Received: from msg.wmi.amu.edu.pl ([2001:808:114:2::50]:58040) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1XaZNj-0000aG-LI for help-gnu-emacs@gnu.org; Sat, 04 Oct 2014 20:08:59 -0400 Original-Received: from localhost (localhost [127.0.0.1]) by msg.wmi.amu.edu.pl (Postfix) with ESMTP id D8E4650777 for ; Sun, 5 Oct 2014 02:08:57 +0200 (CEST) Original-Received: from msg.wmi.amu.edu.pl ([127.0.0.1]) by localhost (msg.wmi.amu.edu.pl [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id ebyALy24fGAu for ; Sun, 5 Oct 2014 02:08:57 +0200 (CEST) Original-Received: from localhost (111-128.echostar.pl [213.156.111.128]) by msg.wmi.amu.edu.pl (Postfix) with ESMTPSA id 95D5150742 for ; Sun, 5 Oct 2014 02:08:57 +0200 (CEST) In-reply-to: X-detected-operating-system: by eggs.gnu.org: Error: Malformed IPv6 address (bad octet value). X-Received-From: 2001:808:114:2::50 X-BeenThere: help-gnu-emacs@gnu.org X-Mailman-Version: 2.1.14 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.org@gnu.org Original-Sender: help-gnu-emacs-bounces+geh-help-gnu-emacs=m.gmane.org@gnu.org Xref: news.gmane.org gmane.emacs.help:100274 Archived-At: On 2014-10-04, at 06:08, Yuri Khan wrote: > On Sat, Oct 4, 2014 at 7:29 AM, Marcin Borkowski wrote: > >> The reason I'm asking is that I'm writing a function which converts an >> arbitrary string to a valid (and nice) filename (e.g., only letters and >> hyphens) - so basically I want to walk a string character by character >> and convert any space to a hyphen and omit any other non-letter. Am I >> reinventing the wheel? > > What are your assumptions about input string arbitrariness, your > requirements about output filename niceness, and your requirements > about the properties of the mapping? > > Because these may be in conflict. > > For example, if you assume any arbitrary strings, want only > [-0-9A-Za-z_] characters, and want reasonably different strings to map > into different filenames, then you will end up having to preserve > non-nice characters as ugly character encodings (in the spirit of > urlencode, XML character references, or Punycode). Otherwise, whole > words or sentences in Russian, Japanese or Greek will map into an > empty filename. Good point. However, I intend to keep a list of filenames, and in case some of them is already taken, append a number to it. (This is an extremely primitive hashing function, but it will suffice for my needs.) Regards, -- Marcin Borkowski http://octd.wmi.amu.edu.pl/en/Marcin_Borkowski Adam Mickiewicz University