From mboxrd@z Thu Jan 1 00:00:00 1970 Path: main.gmane.org!not-for-mail From: Richard Stallman Newsgroups: gmane.emacs.xemacs.design,gmane.emacs.devel Subject: Re: Rationale for split-string? Date: Tue, 22 Apr 2003 21:00:43 -0400 Sender: xemacs-design-admin@xemacs.org Message-ID: References: <87brz57at2.fsf@tleepslib.sk.tsukuba.ac.jp> <200304171744.h3HHiJCx009215@rum.cs.yale.edu> <87adem27ey.fsf@tleepslib.sk.tsukuba.ac.jp> <87ist8yv4n.fsf@tleepslib.sk.tsukuba.ac.jp> Reply-To: rms@gnu.org NNTP-Posting-Host: main.gmane.org X-Trace: main.gmane.org 1051059833 10412 80.91.224.249 (23 Apr 2003 01:03:53 GMT) X-Complaints-To: usenet@main.gmane.org NNTP-Posting-Date: Wed, 23 Apr 2003 01:03:53 +0000 (UTC) Cc: emacs-devel@gnu.org, xemacs-design@xemacs.org Original-X-From: xemacs-design-admin@xemacs.org Wed Apr 23 03:03:51 2003 Return-path: Original-Received: from gwyn.tux.org ([199.184.165.135]) by main.gmane.org with esmtp (Exim 3.35 #1 (Debian)) id 1988eb-0002Qq-00 for ; Wed, 23 Apr 2003 03:02:29 +0200 Original-Received: from gwyn.tux.org (localhost.localdomain [127.0.0.1]) by gwyn.tux.org (8.11.6p2/8.9.1) with ESMTP id h3N12GM27386; Tue, 22 Apr 2003 21:02:16 -0400 Original-Received: (from turnbull@localhost) by gwyn.tux.org (8.11.6p2/8.9.1) id h3N114T27120 for xemacs-design-mailman@xemacs.org; Tue, 22 Apr 2003 21:01:04 -0400 Original-Received: (from mail@localhost) by gwyn.tux.org (8.11.6p2/8.9.1) id h3N10qx27010 for turnbull@tux.org; Tue, 22 Apr 2003 21:00:52 -0400 Original-Received: from fencepost.gnu.org (fencepost.gnu.org [199.232.76.164]) by gwyn.tux.org (8.11.6p2/8.9.1) with ESMTP id h3N10iM26898; Tue, 22 Apr 2003 21:00:45 -0400 Original-Received: from rms by fencepost.gnu.org with local (Exim 4.10) id 1988ct-0003m8-00; Tue, 22 Apr 2003 21:00:43 -0400 Original-To: "Stephen J. Turnbull" In-reply-to: <87ist8yv4n.fsf@tleepslib.sk.tsukuba.ac.jp> (stephen@xemacs.org) X-XEmacs-List: design Errors-To: xemacs-design-admin@xemacs.org X-BeenThere: xemacs-design@xemacs.org X-Mailman-Version: 2.0.13 Precedence: bulk List-Help: List-Post: List-Subscribe: , List-Id: Discussion of design and features for XEmacs. List-Unsubscribe: , Xref: main.gmane.org gmane.emacs.xemacs.design:2109 gmane.emacs.devel:13374 X-Report-Spam: http://spam.gmane.org/gmane.emacs.devel:13374 So I suppose you want a simpler version of Luc Teirlinck's suggestion. How about: ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; ;; one function, three arguments (defun split-string (string &optional separators omit-nulls) "Splits STRING into substrings bounded by matches for SEPARATORS. The beginning and end of STRING, and each match for SEPARATORS, are splitting points. The substrings between the splitting points are collected in a list, which is returned. (The substrings matching SEPARATORS are removed.) If SEPARATORS is nil, it defaults to \"[ \f\t\n\r\v]+\". If OMIT-NULLs is t, zero-length substrings are omitted from the list (so that for the default value of SEPARATORS leading and trailing whitespace are trimmed). If nil, all zero-length substrings are retained, which correctly parses CSV format, for example." That seems like the right thing, except I think that if SEPARATORS is nil, OMIT-NULLS should default to t.