Function: bubbles--shift
bubbles--shift is a byte-compiled function defined in bubbles.el.gz.
Signature
(bubbles--shift FROM ROW COL)
Documentation
Move bubbles FROM one side to position ROW COL.
Return t if new char is non-empty.
Source Code
;; Defined in /usr/src/emacs/lisp/play/bubbles.el.gz
(defun bubbles--shift (from row col)
"Move bubbles FROM one side to position ROW COL.
Return t if new char is non-empty."
(save-excursion
(when (bubbles--goto row col)
(let ((char-new (bubbles--empty-char))
(removed nil)
(trow row)
(tcol col)
(index -1))
(cond ((eq from 'top)
(setq trow (1- row)))
((eq from 'left)
(setq tcol (1- col)))
((eq from 'right)
(setq tcol (1+ col))))
(save-excursion
(when (bubbles--goto trow tcol)
(setq char-new (char-after (point)))
(setq removed (get-text-property (point) 'removed))
(setq index (get-text-property (point) 'index))
(bubbles--shift from trow tcol)))
(insert char-new)
(delete-char 1)
(add-text-properties (1- (point)) (point) (list 'index index
'removed removed))
(not (eq char-new (bubbles--empty-char)))))))