Function: comint-delim-arg

comint-delim-arg is a byte-compiled function defined in comint.el.gz.

Signature

(comint-delim-arg ARG)

Documentation

Return a list of arguments from ARG.

Break it up at the delimiters in comint-delimiter-argument-list. Returned list is backwards.

Characters with non-nil values of the text property literal are assumed to have literal values (e.g., backslash-escaped characters), and are not considered to be delimiters.

Source Code

;; Defined in /usr/src/emacs/lisp/comint.el.gz
(defun comint-delim-arg (arg)
  "Return a list of arguments from ARG.
Break it up at the delimiters in `comint-delimiter-argument-list'.
Returned list is backwards.

Characters with non-nil values of the text property `literal' are
assumed to have literal values (e.g., backslash-escaped
characters), and are not considered to be delimiters."
  (if (null comint-delimiter-argument-list)
      (list arg)
    (let ((args nil)
	  (pos 0)
	  (len (length arg)))
      (while (< pos len)
	(let ((char (aref arg pos))
	      (start pos))
	  (if (and (memq char comint-delimiter-argument-list)
		   ;; Ignore backslash-escaped characters.
		   (not (get-text-property pos 'literal arg)))
	      (while (and (< pos len) (eq (aref arg pos) char))
		(setq pos (1+ pos)))
	    (while (and (< pos len)
			(not (and (memq (aref arg pos)
					comint-delimiter-argument-list)
				  (not (get-text-property
					pos 'literal arg)))))
	      (setq pos (1+ pos))))
	  (setq args (cons (substring arg start pos) args))))
      args)))