diff lisp/subr.el @ 78530:1532be3afc8a

(combine-and-quote-strings): Renamed from strings->string. (split-string-and-unquote): Renamed from string->strings.
author Richard M. Stallman <rms@gnu.org>
date Sun, 12 Aug 2007 17:59:40 +0000
parents 9355f9b7bbff
children fc54bf727c30 e5a68f18fcb9
line wrap: on
line diff
--- a/lisp/subr.el	Sun Aug 12 17:57:34 2007 +0000
+++ b/lisp/subr.el	Sun Aug 12 17:59:40 2007 +0000
@@ -2760,11 +2760,10 @@
 		    list)))
     (nreverse list)))
 
-;; (string->strings (strings->string X)) == X
-(defun strings->string (strings &optional separator)
+(defun combine-and-quote-strings (strings &optional separator)
   "Concatenate the STRINGS, adding the SEPARATOR (default \" \").
 This tries to quote the strings to avoid ambiguity such that
-  (string->strings (strings->string strs)) == strs
+  (split-string-and-unquote (combine-and-quote-strings strs)) == strs
 Only some SEPARATORs will work properly."
   (let ((sep (or separator " ")))
     (mapconcat
@@ -2774,20 +2773,20 @@
 	 str))
      strings sep)))
 
-;; (string->strings (strings->string X)) == X
-(defun string->strings (string &optional separator)
+(defun split-string-and-unquote (string &optional separator)
   "Split the STRING into a list of strings.
-It understands elisp style quoting within STRING such that
-  (string->strings (strings->string strs)) == strs
+It understands Emacs Lisp quoting within STRING, such that
+  (split-string-and-unquote (combine-and-quote-strings strs)) == strs
 The SEPARATOR regexp defaults to \"\\s-+\"."
   (let ((sep (or separator "\\s-+"))
 	(i (string-match "[\"]" string)))
-    (if (null i) (split-string string sep t)	; no quoting:  easy
+    (if (null i)
+	(split-string string sep t)	; no quoting:  easy
       (append (unless (eq i 0) (split-string (substring string 0 i) sep t))
 	      (let ((rfs (read-from-string string i)))
 		(cons (car rfs)
-		      (string->strings (substring string (cdr rfs))
-					   sep)))))))
+		      (split-string-and-unquote (substring string (cdr rfs))
+						sep)))))))
 
 
 ;;;; Replacement in strings.