Function: zone-pgm-rotate
zone-pgm-rotate is a byte-compiled function defined in zone.el.gz.
Signature
(zone-pgm-rotate &optional RANDOM-STYLE)
Source Code
;; Defined in /usr/src/emacs/lisp/play/zone.el.gz
(defun zone-pgm-rotate (&optional random-style)
(let* ((specs (apply
'vector
(let (res)
(mapc (lambda (ent)
(let* ((beg (car ent))
(end (cdr ent))
(amt (if random-style
(funcall random-style)
(- (random 7) 3))))
(when (< (- end (abs amt)) beg)
(setq amt (random (- end beg))))
(unless (= 0 amt)
(setq res
(cons
(vector amt beg (- end (abs amt)))
res)))))
(zone-line-specs))
res)))
(n (length specs))
amt aamt cut paste txt i ent)
(while (not (input-pending-p))
(setq i 0)
(while (< i n)
(setq ent (aref specs i))
(setq amt (aref ent 0) aamt (abs amt))
(if (> 0 amt)
(setq cut 1 paste 2)
(setq cut 2 paste 1))
(goto-char (aref ent cut))
(setq aamt (min aamt (- (point-max) (point))))
(setq txt (buffer-substring (point) (+ (point) aamt)))
(delete-char aamt)
(goto-char (aref ent paste))
(insert txt)
(setq i (1+ i)))
(sit-for 0.04))))