* lisp/progmodes/ps-mode.el: Use comint.
(ps-run-mode-map): Adapt for comint-mode; omit "\r", [return].. (ps-mode-other-newline): Simplify. (ps-run-mode): Derive from comint-mode instead of fundamental-mode, yielding input history etc. (ps-run-start, ps-run-quit, ps-run-clear, ps-run-region) (ps-run-send-string): Adapt for comint-mode. (ps-run-newline): Remove now unneeded function. Fixes: debbugs:5954
This commit is contained in:
parent
33ac04147b
commit
9cf2db99c6
2 changed files with 32 additions and 35 deletions
|
@ -1,3 +1,14 @@
|
|||
2010-07-23 Markus Triska <markus.triska@gmx.at>
|
||||
|
||||
* progmodes/ps-mode.el: Use comint (bug#5954).
|
||||
(ps-run-mode-map): Adapt for comint-mode; omit "\r", [return]..
|
||||
(ps-mode-other-newline): Simplify.
|
||||
(ps-run-mode): Derive from comint-mode instead of
|
||||
fundamental-mode, yielding input history etc.
|
||||
(ps-run-start, ps-run-quit, ps-run-clear, ps-run-region)
|
||||
(ps-run-send-string): Adapt for comint-mode.
|
||||
(ps-run-newline): Remove now unneeded function.
|
||||
|
||||
2010-07-23 Michael Albinus <michael.albinus@gmx.de>
|
||||
|
||||
* net/tramp.el (tramp-methods): Move hostname to the end in all
|
||||
|
|
|
@ -39,6 +39,7 @@
|
|||
(defconst ps-mode-version "1.1h, 16 Jun 2005")
|
||||
(defconst ps-mode-maintainer-address "Peter Kleiweg <p.c.j.kleiweg@rug.nl>")
|
||||
|
||||
(require 'comint)
|
||||
(require 'easymenu)
|
||||
|
||||
;; Define core `PostScript' group.
|
||||
|
@ -431,12 +432,11 @@ If nil, use `temporary-file-directory'."
|
|||
|
||||
(unless ps-run-mode-map
|
||||
(setq ps-run-mode-map (make-sparse-keymap))
|
||||
(set-keymap-parent ps-run-mode-map comint-mode-map)
|
||||
(define-key ps-run-mode-map "\C-c\C-q" 'ps-run-quit)
|
||||
(define-key ps-run-mode-map "\C-c\C-k" 'ps-run-kill)
|
||||
(define-key ps-run-mode-map "\C-c\C-e" 'ps-run-goto-error)
|
||||
(define-key ps-run-mode-map [mouse-2] 'ps-run-mouse-goto-error)
|
||||
(define-key ps-run-mode-map "\r" 'ps-run-newline)
|
||||
(define-key ps-run-mode-map [return] 'ps-run-newline))
|
||||
(define-key ps-run-mode-map [mouse-2] 'ps-run-mouse-goto-error))
|
||||
|
||||
|
||||
;; Syntax table.
|
||||
|
@ -718,12 +718,9 @@ defines the beginning of a group. These tokens are: { [ <<"
|
|||
(blink-matching-open))
|
||||
|
||||
(defun ps-mode-other-newline ()
|
||||
"Perform newline in `*ps run*' buffer."
|
||||
"Perform newline in `*ps-run*' buffer."
|
||||
(interactive)
|
||||
(let ((buf (current-buffer)))
|
||||
(set-buffer "*ps run*")
|
||||
(ps-run-newline)
|
||||
(set-buffer buf)))
|
||||
(ps-run-send-string ""))
|
||||
|
||||
|
||||
;; Print PostScript.
|
||||
|
@ -980,7 +977,7 @@ plus the usually uncoded characters inserted on positions 1 through 28."
|
|||
|
||||
;; Interactive PostScript interpreter.
|
||||
|
||||
(define-derived-mode ps-run-mode fundamental-mode "Interactive PS"
|
||||
(define-derived-mode ps-run-mode comint-mode "Interactive PS"
|
||||
"Major mode in interactive PostScript window.
|
||||
This mode is invoked from `ps-mode' and should not be called directly.
|
||||
|
||||
|
@ -1014,20 +1011,23 @@ This mode is invoked from `ps-mode' and should not be called directly.
|
|||
(setq init-file (ps-run-make-tmp-filename))
|
||||
(write-region (concat ps-run-init "\n") 0 init-file)
|
||||
(setq init-file (list init-file)))
|
||||
(pop-to-buffer "*ps run*")
|
||||
(pop-to-buffer "*ps-run*")
|
||||
(ps-run-mode)
|
||||
(when (process-status "ps-run")
|
||||
(delete-process "ps-run"))
|
||||
(erase-buffer)
|
||||
(setq command (append command init-file))
|
||||
(insert (mapconcat 'identity command " ") "\n")
|
||||
(apply 'start-process "ps-run" "*ps run*" command)
|
||||
(apply 'make-comint "ps-run" (car command) nil (cdr command))
|
||||
(with-current-buffer "*ps-run*"
|
||||
(use-local-map ps-run-mode-map)
|
||||
(setq comint-prompt-regexp ps-run-prompt))
|
||||
(select-window oldwin)))
|
||||
|
||||
(defun ps-run-quit ()
|
||||
"Quit interactive PostScript."
|
||||
(interactive)
|
||||
(ps-run-send-string "quit" t)
|
||||
(ps-run-send-string "quit")
|
||||
(ps-run-cleanup))
|
||||
|
||||
(defun ps-run-kill ()
|
||||
|
@ -1039,9 +1039,9 @@ This mode is invoked from `ps-mode' and should not be called directly.
|
|||
(defun ps-run-clear ()
|
||||
"Clear/reset PostScript graphics."
|
||||
(interactive)
|
||||
(ps-run-send-string "showpage" t)
|
||||
(ps-run-send-string "showpage")
|
||||
(sit-for 1)
|
||||
(ps-run-send-string "" t))
|
||||
(ps-run-send-string ""))
|
||||
|
||||
(defun ps-run-buffer ()
|
||||
"Send buffer to PostScript interpreter."
|
||||
|
@ -1056,7 +1056,7 @@ This mode is invoked from `ps-mode' and should not be called directly.
|
|||
(let ((f (ps-run-make-tmp-filename)))
|
||||
(set-marker ps-run-mark begin)
|
||||
(write-region begin end f)
|
||||
(ps-run-send-string (format "(%s) run" f) t)))
|
||||
(ps-run-send-string (format "(%s) run" f))))
|
||||
|
||||
(defun ps-run-boundingbox ()
|
||||
"View BoundingBox."
|
||||
|
@ -1104,17 +1104,15 @@ grestore
|
|||
" x1 y1 x2 y1 x2 y2 x1 y2)
|
||||
0
|
||||
f)
|
||||
(ps-run-send-string (format "(%s) run" f) t)
|
||||
(ps-run-send-string (format "(%s) run" f))
|
||||
(set-buffer buf)))
|
||||
|
||||
(defun ps-run-send-string (string &optional echo)
|
||||
(defun ps-run-send-string (string)
|
||||
(let ((oldwin (selected-window)))
|
||||
(pop-to-buffer "*ps run*")
|
||||
(goto-char (point-max))
|
||||
(when echo
|
||||
(insert string "\n"))
|
||||
(set-marker (process-mark (get-process "ps-run")) (point))
|
||||
(process-send-string "ps-run" (concat string "\n"))
|
||||
(pop-to-buffer "*ps-run*")
|
||||
(comint-goto-process-mark)
|
||||
(insert string)
|
||||
(comint-send-input)
|
||||
(select-window oldwin)))
|
||||
|
||||
(defun ps-run-make-tmp-filename ()
|
||||
|
@ -1140,18 +1138,6 @@ grestore
|
|||
(mouse-set-point event)
|
||||
(ps-run-goto-error))
|
||||
|
||||
(defun ps-run-newline ()
|
||||
"Process newline in PostScript interpreter window."
|
||||
(interactive)
|
||||
(end-of-line)
|
||||
(insert "\n")
|
||||
(forward-line -1)
|
||||
(when (looking-at ps-run-prompt)
|
||||
(goto-char (match-end 0)))
|
||||
(looking-at ".*")
|
||||
(goto-char (1+ (match-end 0)))
|
||||
(ps-run-send-string (buffer-substring (match-beginning 0) (match-end 0))))
|
||||
|
||||
(defun ps-run-goto-error ()
|
||||
"Jump to buffer position read as integer at point.
|
||||
Use line numbers if `ps-run-error-line-numbers' is not nil"
|
||||
|
|
Loading…
Add table
Reference in a new issue