comparison lisp/comint.el @ 92765:8a7561cc8360

Fix up indentation and comment style. Remove `function'.
author Stefan Monnier <monnier@iro.umontreal.ca>
date Wed, 12 Mar 2008 17:56:57 +0000
parents 83962f810455
children 13f0e673b94b
comparison
equal deleted inserted replaced
92764:79b4e32b9b79 92765:8a7561cc8360
420 :group 'comint) 420 :group 'comint)
421 421
422 ;; Autoload is necessary for Custom to recognize old alias. 422 ;; Autoload is necessary for Custom to recognize old alias.
423 ;;;###autoload 423 ;;;###autoload
424 (define-obsolete-variable-alias 'comint-use-prompt-regexp-instead-of-fields 424 (define-obsolete-variable-alias 'comint-use-prompt-regexp-instead-of-fields
425 'comint-use-prompt-regexp "22.1") 425 'comint-use-prompt-regexp "22.1")
426 426
427 (defcustom comint-mode-hook nil 427 (defcustom comint-mode-hook nil
428 "Hook run upon entry to `comint-mode'. 428 "Hook run upon entry to `comint-mode'.
429 This is run before the process is cranked up." 429 This is run before the process is cranked up."
430 :type 'hook 430 :type 'hook
654 ;; what the original problem was. If there are problems with point 654 ;; what the original problem was. If there are problems with point
655 ;; not going to the end, consider re-enabling this. 655 ;; not going to the end, consider re-enabling this.
656 ;; http://lists.gnu.org/archive/html/emacs-devel/2007-08/msg00827.html 656 ;; http://lists.gnu.org/archive/html/emacs-devel/2007-08/msg00827.html
657 ;; 657 ;;
658 ;; This makes it really work to keep point at the bottom. 658 ;; This makes it really work to keep point at the bottom.
659 ;;; (make-local-variable 'scroll-conservatively) 659 ;; (make-local-variable 'scroll-conservatively)
660 ;;; (setq scroll-conservatively 10000) 660 ;; (setq scroll-conservatively 10000)
661 (add-hook 'pre-command-hook 'comint-preinput-scroll-to-bottom t t) 661 (add-hook 'pre-command-hook 'comint-preinput-scroll-to-bottom t t)
662 (make-local-variable 'comint-ptyp) 662 (make-local-variable 'comint-ptyp)
663 (make-local-variable 'comint-process-echoes) 663 (make-local-variable 'comint-process-echoes)
664 (make-local-variable 'comint-file-name-chars) 664 (make-local-variable 'comint-file-name-chars)
665 (make-local-variable 'comint-file-name-quote-list) 665 (make-local-variable 'comint-file-name-quote-list)
757 (goto-char (point-max)) 757 (goto-char (point-max))
758 (insert-file-contents startfile) 758 (insert-file-contents startfile)
759 (setq startfile (buffer-substring (point) (point-max))) 759 (setq startfile (buffer-substring (point) (point-max)))
760 (delete-region (point) (point-max)) 760 (delete-region (point) (point-max))
761 (comint-send-string proc startfile))) 761 (comint-send-string proc startfile)))
762 (run-hooks 'comint-exec-hook) 762 (run-hooks 'comint-exec-hook)
763 buffer))) 763 buffer)))
764 764
765 ;; This auxiliary function cranks up the process for comint-exec in 765 ;; This auxiliary function cranks up the process for comint-exec in
766 ;; the appropriate environment. 766 ;; the appropriate environment.
767 767
768 (defun comint-exec-1 (name buffer command switches) 768 (defun comint-exec-1 (name buffer command switches)
960 (defvar comint-dynamic-list-input-ring-window-conf) 960 (defvar comint-dynamic-list-input-ring-window-conf)
961 961
962 (defun comint-dynamic-list-input-ring-select () 962 (defun comint-dynamic-list-input-ring-select ()
963 "Choose the input history entry that point is in or next to." 963 "Choose the input history entry that point is in or next to."
964 (interactive) 964 (interactive)
965 (let (beg end completion (buffer completion-reference-buffer) 965 (let ((buffer completion-reference-buffer)
966 (base-size completion-base-size)) 966 (base-size completion-base-size)
967 beg end completion)
967 (if (and (not (eobp)) (get-text-property (point) 'mouse-face)) 968 (if (and (not (eobp)) (get-text-property (point) 'mouse-face))
968 (setq end (point) beg (1+ (point)))) 969 (setq end (point) beg (1+ (point))))
969 (if (and (not (bobp)) (get-text-property (1- (point)) 'mouse-face)) 970 (if (and (not (bobp)) (get-text-property (1- (point)) 'mouse-face))
970 (setq end (1- (point)) beg (point))) 971 (setq end (1- (point)) beg (point)))
971 (if (null beg) 972 (if (null beg)
1512 Similarly for Soar, Scheme, etc." 1513 Similarly for Soar, Scheme, etc."
1513 (interactive) 1514 (interactive)
1514 ;; Note that the input string does not include its terminal newline. 1515 ;; Note that the input string does not include its terminal newline.
1515 (let ((proc (get-buffer-process (current-buffer)))) 1516 (let ((proc (get-buffer-process (current-buffer))))
1516 (if (not proc) (error "Current buffer has no process") 1517 (if (not proc) (error "Current buffer has no process")
1517 (widen) 1518 (widen)
1518 (let* ((pmark (process-mark proc)) 1519 (let* ((pmark (process-mark proc))
1519 (intxt (if (>= (point) (marker-position pmark)) 1520 (intxt (if (>= (point) (marker-position pmark))
1520 (progn (if comint-eol-on-send (end-of-line)) 1521 (progn (if comint-eol-on-send (end-of-line))
1521 (buffer-substring pmark (point))) 1522 (buffer-substring pmark (point)))
1522 (let ((copy (funcall comint-get-old-input))) 1523 (let ((copy (funcall comint-get-old-input)))
1523 (goto-char pmark) 1524 (goto-char pmark)
1524 (insert copy) 1525 (insert copy)
1525 copy))) 1526 copy)))
1526 (input (if (not (eq comint-input-autoexpand 'input)) 1527 (input (if (not (eq comint-input-autoexpand 'input))
1527 ;; Just whatever's already there 1528 ;; Just whatever's already there
1528 intxt 1529 intxt
1529 ;; Expand and leave it visible in buffer 1530 ;; Expand and leave it visible in buffer
1530 (comint-replace-by-expanded-history t pmark) 1531 (comint-replace-by-expanded-history t pmark)
1531 (buffer-substring pmark (point)))) 1532 (buffer-substring pmark (point))))
1532 (history (if (not (eq comint-input-autoexpand 'history)) 1533 (history (if (not (eq comint-input-autoexpand 'history))
1533 input 1534 input
1534 ;; This is messy 'cos ultimately the original 1535 ;; This is messy 'cos ultimately the original
1535 ;; functions used do insertion, rather than return 1536 ;; functions used do insertion, rather than return
1536 ;; strings. We have to expand, then insert back. 1537 ;; strings. We have to expand, then insert back.
1537 (comint-replace-by-expanded-history t pmark) 1538 (comint-replace-by-expanded-history t pmark)
1538 (let ((copy (buffer-substring pmark (point))) 1539 (let ((copy (buffer-substring pmark (point)))
1539 (start (point))) 1540 (start (point)))
1540 (insert input) 1541 (insert input)
1541 (delete-region pmark start) 1542 (delete-region pmark start)
1542 copy)))) 1543 copy))))
1543 1544
1544 (unless no-newline 1545 (unless no-newline
1545 (insert ?\n)) 1546 (insert ?\n))
1546 1547
1547 (comint-add-to-input-history history) 1548 (comint-add-to-input-history history)
1548 1549
1549 (run-hook-with-args 'comint-input-filter-functions 1550 (run-hook-with-args 'comint-input-filter-functions
1550 (if no-newline input 1551 (if no-newline input
1551 (concat input "\n"))) 1552 (concat input "\n")))
1552 1553
1553 (let ((beg (marker-position pmark)) 1554 (let ((beg (marker-position pmark))
1554 (end (if no-newline (point) (1- (point)))) 1555 (end (if no-newline (point) (1- (point))))
1555 (inhibit-modification-hooks t)) 1556 (inhibit-modification-hooks t))
1556 (when (> end beg) 1557 (when (> end beg)
1557 (add-text-properties beg end 1558 (add-text-properties beg end
1558 '(front-sticky t 1559 '(front-sticky t
1559 font-lock-face comint-highlight-input)) 1560 font-lock-face comint-highlight-input))
1560 (unless comint-use-prompt-regexp 1561 (unless comint-use-prompt-regexp
1561 ;; Give old user input a field property of `input', to 1562 ;; Give old user input a field property of `input', to
1562 ;; distinguish it from both process output and unsent 1563 ;; distinguish it from both process output and unsent
1563 ;; input. The terminating newline is put into a special 1564 ;; input. The terminating newline is put into a special
1564 ;; `boundary' field to make cursor movement between input 1565 ;; `boundary' field to make cursor movement between input
1565 ;; and output fields smoother. 1566 ;; and output fields smoother.
1566 (add-text-properties 1567 (add-text-properties
1567 beg end 1568 beg end
1568 '(mouse-face highlight 1569 '(mouse-face highlight
1569 help-echo "mouse-2: insert after prompt as new input" 1570 help-echo "mouse-2: insert after prompt as new input"
1570 field input)))) 1571 field input))))
1571 (unless (or no-newline comint-use-prompt-regexp) 1572 (unless (or no-newline comint-use-prompt-regexp)
1572 ;; Cover the terminating newline 1573 ;; Cover the terminating newline
1573 (add-text-properties end (1+ end) 1574 (add-text-properties end (1+ end)
1574 '(rear-nonsticky t 1575 '(rear-nonsticky t
1575 field boundary 1576 field boundary
1576 inhibit-line-move-field-capture t)))) 1577 inhibit-line-move-field-capture t))))
1577 1578
1578 (comint-snapshot-last-prompt) 1579 (comint-snapshot-last-prompt)
1579 1580
1580 (setq comint-save-input-ring-index comint-input-ring-index) 1581 (setq comint-save-input-ring-index comint-input-ring-index)
1581 (setq comint-input-ring-index nil) 1582 (setq comint-input-ring-index nil)
1582 ;; Update the markers before we send the input 1583 ;; Update the markers before we send the input
1583 ;; in case we get output amidst sending the input. 1584 ;; in case we get output amidst sending the input.
1584 (set-marker comint-last-input-start pmark) 1585 (set-marker comint-last-input-start pmark)
1585 (set-marker comint-last-input-end (point)) 1586 (set-marker comint-last-input-end (point))
1586 (set-marker (process-mark proc) (point)) 1587 (set-marker (process-mark proc) (point))
1587 ;; clear the "accumulation" marker 1588 ;; clear the "accumulation" marker
1588 (set-marker comint-accum-marker nil) 1589 (set-marker comint-accum-marker nil)
1589 (let ((comint-input-sender-no-newline no-newline)) 1590 (let ((comint-input-sender-no-newline no-newline))
1590 (funcall comint-input-sender proc input)) 1591 (funcall comint-input-sender proc input))
1591 1592
1592 ;; Optionally delete echoed input (after checking it). 1593 ;; Optionally delete echoed input (after checking it).
1593 (when (and comint-process-echoes (not artificial)) 1594 (when (and comint-process-echoes (not artificial))
1594 (let ((echo-len (- comint-last-input-end 1595 (let ((echo-len (- comint-last-input-end
1595 comint-last-input-start))) 1596 comint-last-input-start)))
1596 ;; Wait for all input to be echoed: 1597 ;; Wait for all input to be echoed:
1597 (while (and (accept-process-output proc) 1598 (while (and (accept-process-output proc)
1598 (> (+ comint-last-input-end echo-len) 1599 (> (+ comint-last-input-end echo-len)
1599 (point-max)) 1600 (point-max))
1600 (zerop 1601 (zerop
1601 (compare-buffer-substrings 1602 (compare-buffer-substrings
1602 nil comint-last-input-start 1603 nil comint-last-input-start
1603 (- (point-max) echo-len) 1604 (- (point-max) echo-len)
1604 ;; Above difference is equivalent to 1605 ;; Above difference is equivalent to
1605 ;; (+ comint-last-input-start 1606 ;; (+ comint-last-input-start
1606 ;; (- (point-max) comint-last-input-end)) 1607 ;; (- (point-max) comint-last-input-end))
1607 nil comint-last-input-end (point-max))))) 1608 nil comint-last-input-end (point-max)))))
1608 (if (and 1609 (if (and
1609 (<= (+ comint-last-input-end echo-len) 1610 (<= (+ comint-last-input-end echo-len)
1610 (point-max)) 1611 (point-max))
1611 (zerop 1612 (zerop
1612 (compare-buffer-substrings 1613 (compare-buffer-substrings
1613 nil comint-last-input-start comint-last-input-end 1614 nil comint-last-input-start comint-last-input-end
1614 nil comint-last-input-end 1615 nil comint-last-input-end
1615 (+ comint-last-input-end echo-len)))) 1616 (+ comint-last-input-end echo-len))))
1616 ;; Certain parts of the text to be deleted may have 1617 ;; Certain parts of the text to be deleted may have
1617 ;; been mistaken for prompts. We have to prevent 1618 ;; been mistaken for prompts. We have to prevent
1618 ;; problems when `comint-prompt-read-only' is non-nil. 1619 ;; problems when `comint-prompt-read-only' is non-nil.
1619 (let ((inhibit-read-only t)) 1620 (let ((inhibit-read-only t))
1620 (delete-region comint-last-input-end 1621 (delete-region comint-last-input-end
1621 (+ comint-last-input-end echo-len)) 1622 (+ comint-last-input-end echo-len))
1622 (when comint-prompt-read-only 1623 (when comint-prompt-read-only
1623 (save-excursion 1624 (save-excursion
1624 (goto-char comint-last-input-end) 1625 (goto-char comint-last-input-end)
1625 (comint-update-fence))))))) 1626 (comint-update-fence)))))))
1626 1627
1627 ;; This used to call comint-output-filter-functions, 1628 ;; This used to call comint-output-filter-functions,
1628 ;; but that scrolled the buffer in undesirable ways. 1629 ;; but that scrolled the buffer in undesirable ways.
1629 (run-hook-with-args 'comint-output-filter-functions ""))))) 1630 (run-hook-with-args 'comint-output-filter-functions "")))))
1630 1631
1631 (defvar comint-preoutput-filter-functions nil 1632 (defvar comint-preoutput-filter-functions nil
1632 "List of functions to call before inserting Comint output into the buffer. 1633 "List of functions to call before inserting Comint output into the buffer.
1633 Each function gets one argument, a string containing the text received 1634 Each function gets one argument, a string containing the text received
1634 from the subprocess. It should return the string to insert, perhaps 1635 from the subprocess. It should return the string to insert, perhaps
1867 (scroll comint-scroll-to-bottom-on-input)) 1868 (scroll comint-scroll-to-bottom-on-input))
1868 (if (and process (< (point) (process-mark process))) 1869 (if (and process (< (point) (process-mark process)))
1869 (if (eq scroll 'this) 1870 (if (eq scroll 'this)
1870 (goto-char (point-max)) 1871 (goto-char (point-max))
1871 (walk-windows 1872 (walk-windows
1872 (function (lambda (window) 1873 (lambda (window)
1873 (if (and (eq (window-buffer window) current) 1874 (if (and (eq (window-buffer window) current)
1874 (or (eq scroll t) (eq scroll 'all))) 1875 (or (eq scroll t) (eq scroll 'all)))
1875 (progn 1876 (progn
1876 (select-window window) 1877 (select-window window)
1877 (goto-char (point-max)) 1878 (goto-char (point-max))
1878 (select-window selected))))) 1879 (select-window selected))))
1879 nil t)))))) 1880 nil t))))))
1880 1881
1881 (defun comint-postoutput-scroll-to-bottom (string) 1882 (defun comint-postoutput-scroll-to-bottom (string)
1882 "Go to the end of buffer in some or all windows showing it. 1883 "Go to the end of buffer in some or all windows showing it.
1883 Does not scroll if the current line is the last line in the buffer. 1884 Does not scroll if the current line is the last line in the buffer.
1890 (process (get-buffer-process current)) 1891 (process (get-buffer-process current))
1891 (scroll comint-move-point-for-output)) 1892 (scroll comint-move-point-for-output))
1892 (unwind-protect 1893 (unwind-protect
1893 (if process 1894 (if process
1894 (walk-windows 1895 (walk-windows
1895 (function (lambda (window) 1896 (lambda (window)
1896 (if (eq (window-buffer window) current) 1897 (when (eq (window-buffer window) current)
1897 (progn 1898 (select-window window)
1898 (select-window window) 1899 (if (and (< (point) (process-mark process))
1899 (if (and (< (point) (process-mark process)) 1900 (or (eq scroll t) (eq scroll 'all)
1900 (or (eq scroll t) (eq scroll 'all) 1901 ;; Maybe user wants point to jump to end.
1901 ;; Maybe user wants point to jump to end. 1902 (and (eq scroll 'this) (eq selected window))
1902 (and (eq scroll 'this) (eq selected window)) 1903 (and (eq scroll 'others) (not (eq selected window)))
1903 (and (eq scroll 'others) (not (eq selected window))) 1904 ;; If point was at the end, keep it at end.
1904 ;; If point was at the end, keep it at end. 1905 (and (marker-position comint-last-output-start)
1905 (and (marker-position comint-last-output-start) 1906 (>= (point) comint-last-output-start))))
1906 (>= (point) comint-last-output-start)))) 1907 (goto-char (process-mark process)))
1907 (goto-char (process-mark process))) 1908 ;; Optionally scroll so that the text
1908 ;; Optionally scroll so that the text 1909 ;; ends at the bottom of the window.
1909 ;; ends at the bottom of the window. 1910 (if (and comint-scroll-show-maximum-output
1910 (if (and comint-scroll-show-maximum-output 1911 (= (point) (point-max)))
1911 (= (point) (point-max))) 1912 (save-excursion
1912 (save-excursion 1913 (goto-char (point-max))
1913 (goto-char (point-max)) 1914 (recenter (- -1 scroll-margin))))
1914 (recenter (- -1 scroll-margin)))) 1915 (select-window selected)))
1915 (select-window selected)))))
1916 nil t)) 1916 nil t))
1917 (set-buffer current)))) 1917 (set-buffer current))))
1918 1918
1919 (defun comint-truncate-buffer (&optional string) 1919 (defun comint-truncate-buffer (&optional string)
1920 "Truncate the buffer to `comint-buffer-maximum-size'. 1920 "Truncate the buffer to `comint-buffer-maximum-size'.
2116 (buffer-substring pmark (point)))) 2116 (buffer-substring pmark (point))))
2117 (delete-region pmark (point)))) 2117 (delete-region pmark (point))))
2118 ;; Output message and put back prompt 2118 ;; Output message and put back prompt
2119 (comint-output-filter proc replacement))) 2119 (comint-output-filter proc replacement)))
2120 (define-obsolete-function-alias 'comint-kill-output 2120 (define-obsolete-function-alias 'comint-kill-output
2121 'comint-delete-output "21.1") 2121 'comint-delete-output "21.1")
2122 2122
2123 (defun comint-write-output (filename &optional append mustbenew) 2123 (defun comint-write-output (filename &optional append mustbenew)
2124 "Write output from interpreter since last input to FILENAME. 2124 "Write output from interpreter since last input to FILENAME.
2125 Any prompt at the end of the output is not written. 2125 Any prompt at the end of the output is not written.
2126 2126
2180 This command also kills the pending input 2180 This command also kills the pending input
2181 between the process mark and point." 2181 between the process mark and point."
2182 (interactive) 2182 (interactive)
2183 (comint-skip-input) 2183 (comint-skip-input)
2184 (interrupt-process nil comint-ptyp) 2184 (interrupt-process nil comint-ptyp)
2185 ;; (process-send-string nil "\n") 2185 ;; (process-send-string nil "\n")
2186 ) 2186 )
2187 2187
2188 (defun comint-kill-subjob () 2188 (defun comint-kill-subjob ()
2189 "Send kill signal to the current subjob. 2189 "Send kill signal to the current subjob.
2190 This command also kills the pending input 2190 This command also kills the pending input
2191 between the process mark and point." 2191 between the process mark and point."
2591 (condition-case () 2591 (condition-case ()
2592 (file-exists-p stringfile) 2592 (file-exists-p stringfile)
2593 (error nil)) 2593 (error nil))
2594 (not (file-directory-p stringfile)))) 2594 (not (file-directory-p stringfile))))
2595 (defdir (if sfile-p (file-name-directory stringfile) 2595 (defdir (if sfile-p (file-name-directory stringfile)
2596 (car def))) 2596 (car def)))
2597 (deffile (if sfile-p (file-name-nondirectory stringfile) 2597 (deffile (if sfile-p (file-name-nondirectory stringfile)
2598 (cdr def))) 2598 (cdr def)))
2599 (ans (read-file-name (if deffile (format "%s(default %s) " 2599 (ans (read-file-name (if deffile (format "%s(default %s) "
2600 prompt deffile) 2600 prompt deffile)
2601 prompt) 2601 prompt)
2602 defdir 2602 defdir
2603 (concat defdir deffile) 2603 (concat defdir deffile)
2604 mustmatch-p))) 2604 mustmatch-p)))
2605 (list (expand-file-name (substitute-in-file-name ans))))) 2605 (list (expand-file-name (substitute-in-file-name ans)))))
2606 2606
2791 Magic characters are those in `comint-file-name-quote-list'." 2791 Magic characters are those in `comint-file-name-quote-list'."
2792 (if (null comint-file-name-quote-list) 2792 (if (null comint-file-name-quote-list)
2793 filename 2793 filename
2794 (let ((regexp 2794 (let ((regexp
2795 (format "[%s]" 2795 (format "[%s]"
2796 (mapconcat 'char-to-string comint-file-name-quote-list "")))) 2796 (mapconcat 'char-to-string comint-file-name-quote-list ""))))
2797 (save-match-data 2797 (save-match-data
2798 (let ((i 0)) 2798 (let ((i 0))
2799 (while (string-match regexp filename i) 2799 (while (string-match regexp filename i)
2800 (setq filename (replace-match "\\\\\\&" nil nil filename)) 2800 (setq filename (replace-match "\\\\\\&" nil nil filename))
2801 (setq i (1+ (match-end 0))))) 2801 (setq i (1+ (match-end 0)))))
3308 INPUT-STRING is the input from the Comint process. 3308 INPUT-STRING is the input from the Comint process.
3309 3309
3310 This function does not need to be invoked by the end user." 3310 This function does not need to be invoked by the end user."
3311 (let ((output-buffer-list 3311 (let ((output-buffer-list
3312 (if (listp comint-redirect-output-buffer) 3312 (if (listp comint-redirect-output-buffer)
3313 comint-redirect-output-buffer 3313 comint-redirect-output-buffer
3314 (list comint-redirect-output-buffer))) 3314 (list comint-redirect-output-buffer)))
3315 (filtered-input-string input-string)) 3315 (filtered-input-string input-string))
3316 3316
3317 ;; If there are any filter functions, give them a chance to modify the string 3317 ;; If there are any filter functions, give them a chance to modify the string
3318 (let ((functions comint-redirect-filter-functions)) 3318 (let ((functions comint-redirect-filter-functions))
3399 (save-excursion 3399 (save-excursion
3400 (goto-char (point-max)) 3400 (goto-char (point-max))
3401 (or (re-search-backward comint-prompt-regexp nil t) 3401 (or (re-search-backward comint-prompt-regexp nil t)
3402 (error "No prompt found or `comint-prompt-regexp' not set properly")))) 3402 (error "No prompt found or `comint-prompt-regexp' not set properly"))))
3403 3403
3404 ;;;;;;;;;;;;;;;;;;;;;
3405 ;; Set up for redirection 3404 ;; Set up for redirection
3406 ;;;;;;;;;;;;;;;;;;;;;
3407 (comint-redirect-setup 3405 (comint-redirect-setup
3408 ;; Output Buffer
3409 output-buffer 3406 output-buffer
3410 ;; Comint Buffer 3407 (current-buffer) ; Comint Buffer
3411 (current-buffer) 3408 comint-prompt-regexp ; Finished Regexp
3412 ;; Finished Regexp 3409 echo) ; Echo input
3413 comint-prompt-regexp 3410
3414 ;; Echo input
3415 echo)
3416
3417 ;;;;;;;;;;;;;;;;;;;;;
3418 ;; Set the filter 3411 ;; Set the filter
3419 ;;;;;;;;;;;;;;;;;;;;; 3412 (setq comint-redirect-original-filter-function ; Save the old filter
3420 ;; Save the old filter
3421 (setq comint-redirect-original-filter-function
3422 (process-filter proc)) 3413 (process-filter proc))
3423 (set-process-filter proc 'comint-redirect-filter) 3414 (set-process-filter proc 'comint-redirect-filter)
3424 3415
3425 ;;;;;;;;;;;;;;;;;;;;;
3426 ;; Send the command 3416 ;; Send the command
3427 ;;;;;;;;;;;;;;;;;;;;; 3417 (process-send-string (current-buffer) (concat command "\n"))
3428 (process-send-string 3418
3429 (current-buffer)
3430 (concat command "\n"))
3431
3432 ;;;;;;;;;;;;;;;;;;;;;
3433 ;; Show the output 3419 ;; Show the output
3434 ;;;;;;;;;;;;;;;;;;;;;
3435 (or no-display 3420 (or no-display
3436 (display-buffer 3421 (display-buffer
3437 (get-buffer-create 3422 (get-buffer-create
3438 (if (listp output-buffer) 3423 (if (listp output-buffer)
3439 (car output-buffer) 3424 (car output-buffer)
3476 (match-beginning regexp-group) 3461 (match-beginning regexp-group)
3477 (match-end regexp-group)) 3462 (match-end regexp-group))
3478 results))) 3463 results)))
3479 results))) 3464 results)))
3480 3465
3481 (mapc (lambda (x) 3466 (dolist (x '("^Not at command line$"
3482 (add-to-list 'debug-ignored-errors x)) 3467 "^Empty input ring$"
3483 '("^Not at command line$" 3468 "^No history$"
3484 "^Empty input ring$" 3469 "^Not found$" ; Too common?
3485 "^No history$" 3470 "^Current buffer has no process$"))
3486 "^Not found$" ; Too common? 3471 (add-to-list 'debug-ignored-errors x))
3487 "^Current buffer has no process$"))
3488 3472
3489 3473
3490 ;; Converting process modes to use comint mode 3474 ;; Converting process modes to use comint mode
3491 ;; =========================================================================== 3475 ;; ===========================================================================
3492 ;; The code in the Emacs 19 distribution has all been modified to use comint 3476 ;; The code in the Emacs 19 distribution has all been modified to use comint