Function: isearch-ring-adjust1

isearch-ring-adjust1 is a byte-compiled function defined in isearch.el.gz.

Signature

(isearch-ring-adjust1 ADVANCE)

Source Code

;; Defined in /usr/src/emacs/lisp/isearch.el.gz
;; Search Ring

(defun isearch-ring-adjust1 (advance)
  ;; Helper for isearch-ring-adjust
  (let* ((ring (if isearch-regexp regexp-search-ring search-ring))
	 (length (length ring))
	 (yank-pointer-name (if isearch-regexp
				'regexp-search-ring-yank-pointer
			      'search-ring-yank-pointer))
	 (yank-pointer (eval yank-pointer-name)))
    (if (zerop length)
	()
      (set yank-pointer-name
	   (setq yank-pointer
		 (mod (+ (or yank-pointer (if advance 0 -1))
			 (if advance -1 1))
		      length)))
      (setq isearch-string (nth yank-pointer ring)
	    isearch-message (mapconcat 'isearch-text-char-description
				       isearch-string ""))
      (isearch-update-from-string-properties isearch-string))))