Function: comint--complete-file-name-data

comint--complete-file-name-data is a byte-compiled function defined in comint.el.gz.

Signature

(comint--complete-file-name-data)

Documentation

Return the completion data for file name at point.

Source Code

;; Defined in /usr/src/emacs/lisp/comint.el.gz
(defun comint--complete-file-name-data ()
  "Return the completion data for file name at point."
  (let* ((filesuffix (cond ((not comint-completion-addsuffix) "")
			   ((stringp comint-completion-addsuffix)
                            comint-completion-addsuffix)
			   ((not (consp comint-completion-addsuffix)) " ")
			   (t (cdr comint-completion-addsuffix))))
	 (filename (comint--match-partial-filename))
	 (filename-beg (if filename (match-beginning 0) (point)))
	 (filename-end (if filename (match-end 0) (point)))
         (table
          (completion-table-with-quoting
           #'comint-completion-file-name-table
           comint-unquote-function
           comint-requote-function)))
    (nconc
     (list
      filename-beg filename-end
      (lambda (string pred action)
        (let ((completion-ignore-case read-file-name-completion-ignore-case)
              (completion-ignored-extensions comint-completion-fignore))
          (complete-with-action action table string pred))))
     (unless (zerop (length filesuffix))
       (list :exit-function
             (lambda (_s status)
               (when (eq status 'finished)
                 (if (looking-at (regexp-quote filesuffix))
                     (goto-char (match-end 0))
                   (insert filesuffix)))))))))