Function: picture-insert

picture-insert is a byte-compiled function defined in picture.el.gz.

Signature

(picture-insert CH ARG)

Source Code

;; Defined in /usr/src/emacs/lisp/textmodes/picture.el.gz
;; Picture insertion and deletion.

(defun picture-insert (ch arg)
  (let* ((width (char-width ch))
	 ;; We must be sure that the succeeding insertion won't delete
	 ;; the just inserted character.
	 (picture-horizontal-step
	  (if (and (= picture-vertical-step 0)
		   (> width 1)
		   (< (abs picture-horizontal-step) 2))
	      (* picture-horizontal-step 2)
	    picture-horizontal-step)))
    (while (> arg 0)
      (setq arg (1- arg))
      (if (/= picture-desired-column (current-column))
	  (move-to-column picture-desired-column t))
      (let ((col (+ picture-desired-column width)))
	(or (eolp)
	    (let ((pos (point)))
	      (move-to-column col t)
	      (let ((old-width (string-width (buffer-substring pos (point)))))
		(delete-region pos (point))
		(when (> old-width width)
		  (insert-char ?  (- old-width width))
		  (goto-char pos))))))
      (insert ch)
      (forward-char -1)
      (picture-move))))