diff lisp/subr.el @ 44668:52222efc9d4d

(insert-for-yank): New function.
author Richard M. Stallman <rms@gnu.org>
date Fri, 19 Apr 2002 00:06:54 +0000
parents b64869712ee0
children f5b7b7055a64
line wrap: on
line diff
--- a/lisp/subr.el	Fri Apr 19 00:05:22 2002 +0000
+++ b/lisp/subr.el	Fri Apr 19 00:06:54 2002 +0000
@@ -1023,6 +1023,8 @@
       (message nil)
       (or pass default ""))))
 
+;;; Atomic change groups.
+
 (defmacro atomic-change-group (&rest body)
   "Perform BODY as an atomic change group.
 This means that if BODY exits abnormally,
@@ -1269,6 +1271,25 @@
 
 (defalias 'user-original-login-name 'user-login-name)
 
+(defvar 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))
+      (if (eq yank-excluded-properties t)
+	  (set-text-properties opoint (point) nil)
+	(remove-list-of-text-properties opoint (point)
+					yank-excluded-properties)))))
+
+;; Synchronous shell commands.
+
 (defun start-process-shell-command (name buffer &rest args)
   "Start a program in a subprocess.  Return the process object for it.
 Args are NAME BUFFER COMMAND &rest COMMAND-ARGS.
@@ -1473,6 +1494,8 @@
 	   (set-buffer ,old-buffer)
 	   (set-syntax-table ,old-table))))))
 
+;;; Matching and substitution
+
 (defvar save-match-data-internal)
 
 ;; We use save-match-data-internal as the local variable because
@@ -1875,7 +1898,7 @@
 		(nconc found (list (cons toggle keymap)) rest))
 	    (setq minor-mode-map-alist (cons (cons toggle keymap)
 					     minor-mode-map-alist))))))))
-
+
 ;; Clones ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 
 (defun text-clone-maintain (ol1 after beg end &optional len)
@@ -1970,7 +1993,7 @@
     ;;(overlay-put ol2 'face 'underline)
     (overlay-put ol2 'evaporate t)
     (overlay-put ol2 'text-clones dups)))
-
+
 (defun play-sound (sound)
   "SOUND is a list of the form `(sound KEYWORD VALUE...)'.
 The following keywords are recognized: