From unknown Mon Jun 23 06:03:24 2025 X-Loop: help-debbugs@gnu.org Subject: bug#5954: 23.1; ps-run-mode should derive from comint-mode Resent-From: Markus Triska Original-Sender: debbugs-submit-bounces@debbugs.gnu.org Resent-To: owner@debbugs.gnu.org Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Thu, 15 Apr 2010 19:44:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: report 5954 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: 5954@debbugs.gnu.org X-Debbugs-Original-To: bug-gnu-emacs@gnu.org Received: via spool by submit@debbugs.gnu.org id=B.127136063728489 (code B ref -1); Thu, 15 Apr 2010 19:44:01 +0000 Received: (at submit) by debbugs.gnu.org; 15 Apr 2010 19:43:57 +0000 Received: from localhost ([127.0.0.1] helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1O2Uyi-0007PS-3K for submit@debbugs.gnu.org; Thu, 15 Apr 2010 15:43:57 -0400 Received: from mx10.gnu.org ([199.232.76.166]) by debbugs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1O2Uye-0007PF-PR for submit@debbugs.gnu.org; Thu, 15 Apr 2010 15:43:54 -0400 Received: from lists.gnu.org ([199.232.76.165]:33211) by monty-python.gnu.org with esmtps (TLS-1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.60) (envelope-from ) id 1O2Uya-0004gF-Hm for submit@debbugs.gnu.org; Thu, 15 Apr 2010 15:43:48 -0400 Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1O2Uya-0007Uh-6K for bug-gnu-emacs@gnu.org; Thu, 15 Apr 2010 15:43:48 -0400 Received: from [140.186.70.92] (port=59886 helo=eggs.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1O2UyW-0007UQ-Ml for bug-gnu-emacs@gnu.org; Thu, 15 Apr 2010 15:43:47 -0400 X-Spam-Checker-Version: SpamAssassin 3.3.0 (2010-01-18) on eggs.gnu.org X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00,FREEMAIL_FROM, RCVD_IN_DNSWL_NONE, T_TO_NO_BRKTS_FREEMAIL autolearn=unavailable version=3.3.0 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.69) (envelope-from ) id 1O2UyJ-0005sU-7A for bug-gnu-emacs@gnu.org; Thu, 15 Apr 2010 15:43:44 -0400 Received: from mail.gmx.net ([213.165.64.20]:58295) by eggs.gnu.org with smtp (Exim 4.69) (envelope-from ) id 1O2UyH-0005r0-Om for bug-gnu-emacs@gnu.org; Thu, 15 Apr 2010 15:43:30 -0400 Received: (qmail invoked by alias); 15 Apr 2010 19:36:27 -0000 Received: from chello062178240212.3.14.tuwien.teleweb.at (EHLO mt-imac.local) [62.178.240.212] by mail.gmx.net (mp026) with SMTP; 15 Apr 2010 21:36:27 +0200 X-Authenticated: #4064391 X-Provags-ID: V01U2FsdGVkX1+yxvxgFvKySkd69IIcPhz0eOdGWADsIUQcsYltog rjbYIxuZ3g0ulE Received: by mt-imac.local (Postfix, from userid 501) id 495E9564204; Thu, 15 Apr 2010 21:36:25 +0200 (CEST) From: Markus Triska Date: Thu, 15 Apr 2010 21:36:25 +0200 Message-ID: MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-Y-GMX-Trusted: 0 X-FuHaFi: 0.46999999999999997 X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-detected-operating-system: by monty-python.gnu.org: GNU/Linux 2.6, seldom 2.4 (older, 4) X-Spam-Score: -3.8 (---) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.11 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: debbugs-submit-bounces@debbugs.gnu.org Errors-To: debbugs-submit-bounces@debbugs.gnu.org X-Spam-Score: -5.0 (-----) ps-run-mode should be derived from comint-mode instead of fundamental mode to get input history etc. The following patch implements this: 2010-04-15 Markus Triska * progmodes/ps-mode.el: Require commint. (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. diff --git a/ps-mode.el b/ps-mode.el index 93a5592..e4469b0 100644 --- a/ps-mode.el +++ b/ps-mode.el @@ -39,6 +39,7 @@ (defconst ps-mode-version "1.1h, 16 Jun 2005") (defconst ps-mode-maintainer-address "Peter Kleiweg ") +(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" In GNU Emacs 23.1.1 (i386-apple-darwin9.8.0, GTK+ Version 2.14.7) of 2009-09-05 on mt-imac.local From debbugs-submit-bounces@debbugs.gnu.org Sun Apr 18 14:34:14 2010 Received: (at control) by debbugs.gnu.org; 18 Apr 2010 18:34:15 +0000 Received: from localhost ([127.0.0.1] helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1O3ZJu-0006da-Mg for submit@debbugs.gnu.org; Sun, 18 Apr 2010 14:34:14 -0400 Received: from fencepost.gnu.org ([140.186.70.10]) by debbugs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1O3ZJs-0006dV-Bb for control@debbugs.gnu.org; Sun, 18 Apr 2010 14:34:12 -0400 Received: from rgm by fencepost.gnu.org with local (Exim 4.69) (envelope-from ) id 1O3ZJn-0005pq-Sd; Sun, 18 Apr 2010 14:34:07 -0400 MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Message-ID: <19403.20639.772379.589421@fencepost.gnu.org> Date: Sun, 18 Apr 2010 14:34:07 -0400 From: Glenn Morris To: control Subject: control X-Attribution: GM X-Mailer: VM (www.wonderworks.com/vm), GNU Emacs (www.gnu.org/software/emacs) X-Hue: green X-Ran: '&<$vH;hK*^2}37c)|Gaq*]9[sK4Kzr~H@{.,|,pX"kM\x(Lt@laf`sX8Qo;H}/!6uoz6H X-Debbugs-No-Ack: yes X-Spam-Score: -5.1 (-----) X-Debbugs-Envelope-To: control X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.11 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: debbugs-submit-bounces@debbugs.gnu.org Errors-To: debbugs-submit-bounces@debbugs.gnu.org X-Spam-Score: -5.1 (-----) close 5960 tags 5954 patch severity 5954 wishlist From unknown Mon Jun 23 06:03:24 2025 X-Loop: help-debbugs@gnu.org Subject: bug#5954: 23.1; ps-run-mode should derive from comint-mode Resent-From: Stefan Monnier Original-Sender: debbugs-submit-bounces@debbugs.gnu.org Resent-To: owner@debbugs.gnu.org Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Fri, 23 Jul 2010 22:58:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 5954 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: patch To: Markus Triska Cc: 5954@debbugs.gnu.org Received: via spool by 5954-submit@debbugs.gnu.org id=B5954.127992584831409 (code B ref 5954); Fri, 23 Jul 2010 22:58:02 +0000 Received: (at 5954) by debbugs.gnu.org; 23 Jul 2010 22:57:28 +0000 Received: from localhost ([127.0.0.1] helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1OcRBH-0008AY-EB for submit@debbugs.gnu.org; Fri, 23 Jul 2010 18:57:27 -0400 Received: from pruche.dit.umontreal.ca ([132.204.246.22]) by debbugs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1OcRBE-0008AS-W4 for 5954@debbugs.gnu.org; Fri, 23 Jul 2010 18:57:25 -0400 Received: from ceviche.home (vpn-132-204-232-95.acd.umontreal.ca [132.204.232.95]) by pruche.dit.umontreal.ca (8.14.1/8.14.1) with ESMTP id o6NMvKiW014839; Fri, 23 Jul 2010 18:57:21 -0400 Received: by ceviche.home (Postfix, from userid 20848) id 5496C660D2; Sat, 24 Jul 2010 00:57:19 +0200 (CEST) From: Stefan Monnier Message-ID: References: Date: Sat, 24 Jul 2010 00:57:19 +0200 In-Reply-To: (Markus Triska's message of "Thu, 15 Apr 2010 21:36:25 +0200") User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/24.0.50 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-NAI-Spam-Score: 0 X-NAI-Spam-Rules: 1 Rules triggered RV3585=0 X-Spam-Score: -2.0 (--) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.11 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: debbugs-submit-bounces@debbugs.gnu.org Errors-To: debbugs-submit-bounces@debbugs.gnu.org X-Spam-Score: -2.0 (--) > ps-run-mode should be derived from comint-mode instead of fundamental > mode to get input history etc. The following patch implements this: Thank you, installed, Stefan "prompt is my middle name" From debbugs-submit-bounces@debbugs.gnu.org Sun Mar 06 01:49:37 2011 Received: (at control) by debbugs.gnu.org; 6 Mar 2011 06:49:37 +0000 Received: from localhost ([127.0.0.1] helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1Pw7mb-00058k-FY for submit@debbugs.gnu.org; Sun, 06 Mar 2011 01:49:37 -0500 Received: from fencepost.gnu.org ([140.186.70.10]) by debbugs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1Pw7mZ-00058X-E7 for control@debbugs.gnu.org; Sun, 06 Mar 2011 01:49:35 -0500 Received: from rgm by fencepost.gnu.org with local (Exim 4.71) (envelope-from ) id 1Pw7mU-0005cz-60 for control@debbugs.gnu.org; Sun, 06 Mar 2011 01:49:30 -0500 Date: Sun, 06 Mar 2011 01:49:30 -0500 Message-Id: Subject: control message for bug 5954 To: X-Mailer: mail (GNU Mailutils 2.1) From: Glenn Morris X-Spam-Score: -6.3 (------) X-Debbugs-Envelope-To: control X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.11 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: debbugs-submit-bounces@debbugs.gnu.org Errors-To: debbugs-submit-bounces@debbugs.gnu.org X-Spam-Score: -6.3 (------) close 5954 24.1