diff lisp/subr.el @ 44980:5eb4aa56b278

(remove-yank-excluded-properties): New helper function. (insert-for-yank, insert-buffer-substring-as-yank): Use it.
author Kim F. Storm <storm@cua.dk>
date Mon, 29 Apr 2002 21:06:51 +0000
parents 27acb2b2a2a9
children 829beb9a6a4b
line wrap: on
line diff
--- a/lisp/subr.el	Mon Apr 29 20:20:06 2002 +0000
+++ b/lisp/subr.el	Mon Apr 29 21:06:51 2002 +0000
@@ -1276,39 +1276,39 @@
 
 (defvar yank-excluded-properties)
 
+(defun remove-yank-excluded-properties (start end)
+  "Remove `yank-excluded-properties' between START and END positions.
+Replaces `category' properties with their defined properties."
+  (let ((inhibit-read-only t))
+    ;; Replace any `category' property with the properties it stands for.
+    (unless (memq yank-excluded-properties '(t nil))
+      (save-excursion
+	(goto-char start)
+	(while (< (point) end)
+	  (let ((cat (get-text-property (point) 'category))
+		run-end)
+	    (when cat
+	      (setq run-end
+		    (next-single-property-change (point) 'category nil end))
+	      (remove-list-of-text-properties (point) run-end '(category))
+	      (add-text-properties (point) run-end (symbol-plist cat))
+	      (goto-char (or run-end end)))
+	    (setq run-end
+		  (next-single-property-change (point) 'category nil end))
+	    (goto-char (or run-end end))))))
+    (if (eq yank-excluded-properties t)
+	(set-text-properties start end nil)
+      (remove-list-of-text-properties start end
+				      yank-excluded-properties))))
+
 (defun insert-for-yank (&rest strings)
   "Insert STRINGS at point, stripping some text properties.
 Strip text properties from the inserted text
 according to `yank-excluded-properties'.
 Otherwise just like (insert STRINGS...)."
   (let ((opoint (point)))
-
     (apply 'insert strings)
-
-    (let ((inhibit-read-only t)
-	  (end (point)))
-
-      ;; Replace any `category' property with the properties it stands for.
-      (unless (memq yank-excluded-properties '(t nil))
-	(save-excursion
-	  (goto-char opoint)
-	  (while (< (point) end)
-	    (let ((cat (get-text-property (point) 'category))
-		  run-end)
-	      (when cat
-		(setq run-end
-		      (next-single-property-change (point) 'category nil end))
-		(remove-list-of-text-properties (point) run-end '(category))
-		(add-text-properties (point) run-end (symbol-plist cat))
-		(goto-char (or run-end end)))
-	      (setq run-end
-		    (next-single-property-change (point) 'category nil end))
-	      (goto-char (or run-end end))))))
-
-      (if (eq yank-excluded-properties t)
-	  (set-text-properties opoint end nil)
-	(remove-list-of-text-properties opoint end
-					yank-excluded-properties)))))
+    (remove-yank-excluded-properties opoint (point))))
 
 (defun insert-buffer-substring-no-properties (buf &optional start end)
   "Insert before point a substring of buffer BUFFER, without text properties.
@@ -1328,11 +1328,7 @@
 inserted text according to `yank-excluded-properties'."
   (let ((opoint (point)))
     (insert-buffer-substring buf start end)
-    (let ((inhibit-read-only t))
-      (if (eq yank-excluded-properties t)
-	  (set-text-properties opoint (point) nil)
-	(remove-list-of-text-properties opoint (point)
-					yank-excluded-properties)))))
+    (remove-yank-excluded-properties opoint (point))))
 
 
 ;; Synchronous shell commands.