changeset 57344:95ee82562c2a

fix to for xml-substitute-special to produce a single string instead of several if a substitution is made.
author Mark A. Hershberger <mah@everybody.org>
date Wed, 06 Oct 2004 00:58:29 +0000
parents 7af1127797dc
children f024640dc5e4
files lisp/xml.el
diffstat 1 files changed, 12 insertions(+), 8 deletions(-) [+]
line wrap: on
line diff
--- a/lisp/xml.el	Wed Oct 06 00:48:08 2004 +0000
+++ b/lisp/xml.el	Wed Oct 06 00:58:29 2004 +0000
@@ -727,13 +727,13 @@
 				(match-string 1 this-part)))))))
 
 	(cond ((null children)
-	       (if (stringp expansion)
+	       (if (and (eq (length expansion) 1)
+			(stringp (cadr expansion)))
 		   (setq children (concat prev-part expansion))
-		 (if (stringp (car (last expansion)))
-		     (progn 
-			    (setq children
-				  (list (concat prev-part (car expansion))
-					(cdr expansion))))
+		 (if (stringp (car expansion))
+		     (setq children
+			   (list (concat prev-part (car expansion))
+				 (append (cdr expansion))))
 		   (setq children (append expansion prev-part)))))
 	      ((stringp children)
 	       (if (stringp expansion)
@@ -756,11 +756,15 @@
     (cond ((stringp children)
 	   (concat children (substring string point)))
 	  ((stringp (car (last children)))
-	   (concat (car children) (substring string point)))
+	   (concat (car (last children)) (substring string point)))
 	  ((null children)
 	   string)
 	  (t
-	   (nreverse children)))))
+	   (concat (mapconcat 'identity
+			      (nreverse children)
+			      "")
+		   (substring string point))))))
+
 ;;*******************************************************************
 ;;**
 ;;**  Printing a tree.