Function: array-move-one-row

array-move-one-row is a byte-compiled function defined in array.el.gz.

Signature

(array-move-one-row SIGN)

Documentation

Move one array row in direction SIGN (1 or -1).

Leave point at the beginning of the field and return the new array row. If requested to move beyond the array bounds, signal an error.

Source Code

;; Defined in /usr/src/emacs/lisp/array.el.gz
(defun array-move-one-row (sign)
  "Move one array row in direction SIGN (1 or -1).
Leave point at the beginning of the field and return the new array row.
If requested to move beyond the array bounds, signal an error."
  ;; Requires that array-buffer-line and array-buffer-column be current.
  (let ((goal-column (array-beginning-of-field))
	(array-row (or (array-current-row)
		       (error "Cursor is not in a valid array cell"))))
    (cond ((and (= array-row array-max-row) (= sign 1))
	   (error "End of array"))
	  ((and (= array-row 1) (= sign -1))
	   (error "Beginning of array"))
	  (t
	   (progn
	     (forward-line (* sign array-lines-per-row))
	     (move-to-column-untabify goal-column)
	     (+ array-row sign))))))