Function: eshell-index-value

eshell-index-value is a byte-compiled function defined in esh-var.el.gz.

Signature

(eshell-index-value VALUE INDEX)

Documentation

Reference VALUE using the given INDEX.

Source Code

;; Defined in /usr/src/emacs/lisp/eshell/esh-var.el.gz
(defun eshell-index-value (value index)
  "Reference VALUE using the given INDEX."
  (when (and (stringp index) (get-text-property 0 'number index))
    (setq index (string-to-number index)))
  (if (integerp index)
      (cond
       ((ring-p value)
        (if (> index (ring-length value))
            (error "Index exceeds length of ring")
          (ring-ref value index)))
       ((listp value)
        (if (> index (length value))
            (error "Index exceeds length of list")
          (nth index value)))
       ((vectorp value)
        (if (> index (length value))
            (error "Index exceeds length of vector")
          (aref value index)))
       (t
        (error "Invalid data type for indexing")))
    ;; INDEX is some non-integer value, so treat VALUE as an alist.
    (cdr (assoc index value))))