1 |
;;; ps-mode.el --- PostScript mode for GNU Emacs |
;;; ps-mode.el --- PostScript mode for GNU Emacs |
2 |
|
|
3 |
;; Copyright (C) 1999 Free Software Foundation, Inc. |
;; Copyright (C) 1999, 2001 Free Software Foundation, Inc. |
4 |
|
|
5 |
;; Author: Peter Kleiweg <kleiweg@let.rug.nl> |
;; Author: Peter Kleiweg <kleiweg@let.rug.nl> |
6 |
;; Maintainer: Peter Kleiweg <kleiweg@let.rug.nl> |
;; Maintainer: Peter Kleiweg <kleiweg@let.rug.nl> |
7 |
;; Created: 20 Aug 1997 |
;; Created: 20 Aug 1997 |
8 |
;; Version: 1.1e, 11 Nov 1999 |
;; Version: 1.1f, 25 Oct 2001 |
9 |
;; Keywords: PostScript, languages |
;; Keywords: PostScript, languages |
10 |
|
|
11 |
;; This file is part of GNU Emacs. |
;; This file is part of GNU Emacs. |
30 |
|
|
31 |
;;; Code: |
;;; Code: |
32 |
|
|
33 |
(defconst ps-mode-version "1.1e, 11 Nov 1999") |
(defconst ps-mode-version "1.1f, 25 Oct 2001") |
34 |
(defconst ps-mode-maintainer-address "Peter Kleiweg <kleiweg@let.rug.nl>") |
(defconst ps-mode-maintainer-address "Peter Kleiweg <kleiweg@let.rug.nl>") |
35 |
|
|
36 |
(require 'easymenu) |
(require 'easymenu) |
104 |
(const :tag "dsheet" (1584 2448)) |
(const :tag "dsheet" (1584 2448)) |
105 |
(const :tag "esheet" (2448 3168)))) |
(const :tag "esheet" (2448 3168)))) |
106 |
|
|
107 |
(defcustom ps-mode-print-function |
(defcustom ps-mode-print-function |
108 |
'(lambda () |
(lambda () |
109 |
(let ((lpr-switches nil) |
(let ((lpr-switches nil) |
110 |
(lpr-command (if (memq system-type '(usg-unix-v dgux hpux irix)) |
(lpr-command (if (memq system-type '(usg-unix-v dgux hpux irix)) |
111 |
"lp" "lpr"))) |
"lp" "lpr"))) |
129 |
(0 font-lock-keyword-face nil nil)) |
(0 font-lock-keyword-face nil nil)) |
130 |
("^\\(Error\\|Can't\\).*" |
("^\\(Error\\|Can't\\).*" |
131 |
(0 font-lock-warning-face nil nil)) |
(0 font-lock-warning-face nil nil)) |
132 |
("^\\(Current file position is\\) \\([0-9]+\\)" |
("^\\(Current file position is\\) \\([0-9]+\\)" |
133 |
(1 font-lock-comment-face nil nil) |
(1 font-lock-comment-face nil nil) |
134 |
(2 font-lock-warning-face nil nil)))) |
(2 font-lock-warning-face nil nil)))) |
135 |
"*Medium level highlighting of messages from the PostScript interpreter. |
"*Medium level highlighting of messages from the PostScript interpreter. |
162 |
|
|
163 |
Example: \"executive\" |
Example: \"executive\" |
164 |
|
|
165 |
You won't need to set this option for Ghostscript. |
You won't need to set this option for Ghostscript." |
|
" |
|
166 |
:group 'PostScript-interaction |
:group 'PostScript-interaction |
167 |
:type '(choice (const nil) string)) |
:type '(choice (const nil) string)) |
168 |
|
|
179 |
1. \"$TEMP\" |
1. \"$TEMP\" |
180 |
2. \"$TMP\" |
2. \"$TMP\" |
181 |
3. \"$HOME/tmp\" |
3. \"$HOME/tmp\" |
182 |
4. \"/tmp\" |
4. \"/tmp\"" |
|
" |
|
183 |
:group 'PostScript-interaction |
:group 'PostScript-interaction |
184 |
:type '(choice (const nil) directory)) |
:type '(choice (const nil) directory)) |
185 |
|
|
202 |
"gsave" "grestore" "grestoreall" |
"gsave" "grestore" "grestoreall" |
203 |
"showpage"))) |
"showpage"))) |
204 |
(concat "\\<" (regexp-opt ops t) "\\>")) |
(concat "\\<" (regexp-opt ops t) "\\>")) |
205 |
"Regexp of PostScript operators that will be fontified") |
"Regexp of PostScript operators that will be fontified.") |
206 |
|
|
207 |
;; Level 1 font-lock: |
;; Level 1 font-lock: |
208 |
;; - Special comments (reference face) |
;; - Special comments (reference face) |
212 |
;; Multiline strings are not supported. Strings with nested brackets are. |
;; Multiline strings are not supported. Strings with nested brackets are. |
213 |
(defconst ps-mode-font-lock-keywords-1 |
(defconst ps-mode-font-lock-keywords-1 |
214 |
'(("\\`%!PS.*" . font-lock-reference-face) |
'(("\\`%!PS.*" . font-lock-reference-face) |
215 |
("^%%BoundingBox:[ \t]+-?[0-9]+[ \t]+-?[0-9]+[ \t]+-?[0-9]+[ \t]+-?[0-9]+[ \t]*$" |
("^%%BoundingBox:[ \t]+-?[0-9]+[ \t]+-?[0-9]+[ \t]+-?[0-9]+[ \t]+-?[0-9]+[ \t]*$" |
216 |
. font-lock-reference-face) |
. font-lock-reference-face) |
217 |
(ps-mode-match-string-or-comment |
(ps-mode-match-string-or-comment |
218 |
(1 font-lock-comment-face nil t) |
(1 font-lock-comment-face nil t) |
256 |
ps-mode-font-lock-keywords-1 |
ps-mode-font-lock-keywords-1 |
257 |
(list |
(list |
258 |
'("//\\w+" . font-lock-type-face) |
'("//\\w+" . font-lock-type-face) |
259 |
'("^\\(/\\w+\\)\\>[[ \t]*\\(%.*\\)?\r?$" |
'("^\\(/\\w+\\)\\>[[ \t]*\\(%.*\\)?\r?$" |
260 |
. (1 font-lock-function-name-face)) |
. (1 font-lock-function-name-face)) |
261 |
'("^\\(/\\w+\\)\\>\\([ \t]*{\\|[ \t]*<<\\|.*\\<def\\>\\|[ \t]+[0-9]+[ \t]+dict\\>\\)" |
'("^\\(/\\w+\\)\\>\\([ \t]*{\\|[ \t]*<<\\|.*\\<def\\>\\|[ \t]+[0-9]+[ \t]+dict\\>\\)" |
262 |
. (1 font-lock-function-name-face)) |
. (1 font-lock-function-name-face)) |
359 |
["8-bit to Octal Buffer" ps-mode-octal-buffer t] |
["8-bit to Octal Buffer" ps-mode-octal-buffer t] |
360 |
["8-bit to Octal Region" ps-mode-octal-region (mark t)] |
["8-bit to Octal Region" ps-mode-octal-region (mark t)] |
361 |
"---" |
"---" |
362 |
("Auto Indent" |
["Auto Indent" (setq ps-mode-auto-indent (not ps-mode-auto-indent)) |
363 |
["On" (setq ps-mode-auto-indent t) (not ps-mode-auto-indent)] |
:style toggle :selected ps-mode-auto-indent] |
|
["Off" (setq ps-mode-auto-indent nil) ps-mode-auto-indent]) |
|
364 |
"---" |
"---" |
365 |
["Start PostScript" |
["Start PostScript" |
366 |
ps-run-start |
ps-run-start |
439 |
|
|
440 |
(unless ps-mode-syntax-table |
(unless ps-mode-syntax-table |
441 |
(setq ps-mode-syntax-table (make-syntax-table)) |
(setq ps-mode-syntax-table (make-syntax-table)) |
442 |
|
|
443 |
(modify-syntax-entry ?\% "< " ps-mode-syntax-table) |
(modify-syntax-entry ?\% "< " ps-mode-syntax-table) |
444 |
(modify-syntax-entry ?\n "> " ps-mode-syntax-table) |
(modify-syntax-entry ?\n "> " ps-mode-syntax-table) |
445 |
(modify-syntax-entry ?\r "> " ps-mode-syntax-table) |
(modify-syntax-entry ?\r "> " ps-mode-syntax-table) |
446 |
(modify-syntax-entry ?\f "> " ps-mode-syntax-table) |
(modify-syntax-entry ?\f "> " ps-mode-syntax-table) |
447 |
(modify-syntax-entry ?\< "(>" ps-mode-syntax-table) |
(modify-syntax-entry ?\< "(>" ps-mode-syntax-table) |
448 |
(modify-syntax-entry ?\> ")<" ps-mode-syntax-table) |
(modify-syntax-entry ?\> ")<" ps-mode-syntax-table) |
449 |
|
|
450 |
(modify-syntax-entry ?\! "w " ps-mode-syntax-table) |
(modify-syntax-entry ?\! "w " ps-mode-syntax-table) |
451 |
(modify-syntax-entry ?\" "w " ps-mode-syntax-table) |
(modify-syntax-entry ?\" "w " ps-mode-syntax-table) |
452 |
(modify-syntax-entry ?\# "w " ps-mode-syntax-table) |
(modify-syntax-entry ?\# "w " ps-mode-syntax-table) |
469 |
(modify-syntax-entry ?\` "w " ps-mode-syntax-table) |
(modify-syntax-entry ?\` "w " ps-mode-syntax-table) |
470 |
(modify-syntax-entry ?\| "w " ps-mode-syntax-table) |
(modify-syntax-entry ?\| "w " ps-mode-syntax-table) |
471 |
(modify-syntax-entry ?\~ "w " ps-mode-syntax-table) |
(modify-syntax-entry ?\~ "w " ps-mode-syntax-table) |
472 |
|
|
473 |
(let ((i 128)) |
(let ((i 128)) |
474 |
(while (< i 256) |
(while (< i 256) |
475 |
(modify-syntax-entry i "w " ps-mode-syntax-table) |
(modify-syntax-entry i "w " ps-mode-syntax-table) |
478 |
|
|
479 |
;; PostScript mode. |
;; PostScript mode. |
480 |
|
|
481 |
;;;###autoload |
;;;###autoload (autoload (quote ps-mode) "ps-mode" "Major mode for editing PostScript with GNU Emacs.\n" t) |
482 |
(defun ps-mode () |
|
483 |
|
(define-derived-mode ps-mode fundamental-mode "PostScript" |
484 |
"Major mode for editing PostScript with GNU Emacs. |
"Major mode for editing PostScript with GNU Emacs. |
485 |
|
|
486 |
Entry to this mode calls `ps-mode-hook'. |
Entry to this mode calls `ps-mode-hook'. |
488 |
The following variables hold user options, and can |
The following variables hold user options, and can |
489 |
be set through the `customize' command: |
be set through the `customize' command: |
490 |
|
|
491 |
ps-mode-auto-indent |
`ps-mode-auto-indent' |
492 |
ps-mode-tab |
`ps-mode-tab' |
493 |
ps-mode-paper-size |
`ps-mode-paper-size' |
494 |
ps-mode-print-function |
`ps-mode-print-function' |
495 |
ps-run-prompt |
`ps-run-prompt' |
496 |
ps-run-font-lock-keywords-2 |
`ps-run-font-lock-keywords-2' |
497 |
ps-run-x |
`ps-run-x' |
498 |
ps-run-dumb |
`ps-run-dumb' |
499 |
ps-run-init |
`ps-run-init' |
500 |
ps-run-error-line-numbers |
`ps-run-error-line-numbers' |
501 |
ps-run-tmp-dir |
`ps-run-tmp-dir' |
502 |
|
|
503 |
Type \\[describe-variable] for documentation on these options. |
Type \\[describe-variable] for documentation on these options. |
504 |
|
|
517 |
with a file position. Clicking mouse-2 on this number will bring |
with a file position. Clicking mouse-2 on this number will bring |
518 |
point to the corresponding spot in the PostScript window, if input |
point to the corresponding spot in the PostScript window, if input |
519 |
to the interpreter was sent from that window. |
to the interpreter was sent from that window. |
520 |
Typing \\<ps-run-mode-map>\\[ps-run-goto-error] when the cursor is at the number has the same effect. |
Typing \\<ps-run-mode-map>\\[ps-run-goto-error] when the cursor is at the number has the same effect." |
521 |
" |
(set (make-local-variable 'font-lock-defaults) |
522 |
(interactive) |
'((ps-mode-font-lock-keywords |
523 |
(kill-all-local-variables) |
ps-mode-font-lock-keywords-1 |
524 |
(make-local-variable 'font-lock-defaults) |
ps-mode-font-lock-keywords-2 |
525 |
(setq font-lock-defaults '((ps-mode-font-lock-keywords |
ps-mode-font-lock-keywords-3) |
526 |
ps-mode-font-lock-keywords-1 |
t))) |
|
ps-mode-font-lock-keywords-2 |
|
|
ps-mode-font-lock-keywords-3) |
|
|
t) |
|
|
major-mode 'ps-mode |
|
|
mode-name "PostScript") |
|
|
(use-local-map ps-mode-map) |
|
|
(set-syntax-table ps-mode-syntax-table) |
|
|
(set (make-local-variable 'comment-start) "%") |
|
|
(set (make-local-variable 'comment-start-skip) |
|
|
"\\(\\(^\\|[^\\]\\)\\(\\\\\\\\\\)*\\)\\(%+ *\\)") |
|
|
(run-hooks 'ps-mode-hook)) |
|
527 |
|
|
528 |
(defun ps-mode-show-version () |
(defun ps-mode-show-version () |
529 |
"Show current version of PostScript mode" |
"Show current version of PostScript mode." |
530 |
(interactive) |
(interactive) |
531 |
(message " *** PostScript Mode (ps-mode) Version %s *** " ps-mode-version)) |
(message " *** PostScript Mode (ps-mode) Version %s *** " ps-mode-version)) |
532 |
|
|
533 |
(defun ps-mode-submit-bug-report () |
(defun ps-mode-submit-bug-report () |
534 |
"Submit via mail a bug report on PostScript mode" |
"Submit via mail a bug report on PostScript mode." |
535 |
(interactive) |
(interactive) |
536 |
(when (y-or-n-p "Submit bug report on PostScript mode? ") |
(when (y-or-n-p "Submit bug report on PostScript mode? ") |
537 |
(let ((reporter-prompt-for-summary-p nil) |
(let ((reporter-prompt-for-summary-p nil) |
538 |
(reporter-dont-compact-list '(ps-mode-print-function |
(reporter-dont-compact-list '(ps-mode-print-function |
539 |
ps-run-font-lock-keywords-2))) |
ps-run-font-lock-keywords-2))) |
591 |
(if (not (re-search-forward "[%(]" limit t)) |
(if (not (re-search-forward "[%(]" limit t)) |
592 |
;; Nothing found: return failure. |
;; Nothing found: return failure. |
593 |
nil |
nil |
594 |
(let (end) |
(let ((end (match-end 0))) |
595 |
(goto-char (match-beginning 0)) |
(goto-char (match-beginning 0)) |
|
(setq end (match-end 0)) |
|
596 |
(cond ((looking-at "\\(%.*\\)\\|\\((\\([^()\\\n]\\|\\\\.\\)*)\\)") |
(cond ((looking-at "\\(%.*\\)\\|\\((\\([^()\\\n]\\|\\\\.\\)*)\\)") |
597 |
;; It's a comment or string without nested, unescaped brackets. |
;; It's a comment or string without nested, unescaped brackets. |
598 |
(goto-char (match-end 0)) |
(goto-char (match-end 0)) |
601 |
;; It's a string with nested brackets. |
;; It's a string with nested brackets. |
602 |
(point)) |
(point)) |
603 |
(t |
(t |
604 |
;; Try next match. |
;; Try next match. |
605 |
(goto-char end) |
(goto-char end) |
606 |
(ps-mode-match-string-or-comment limit)))))) |
(ps-mode-match-string-or-comment limit)))))) |
607 |
|
|
650 |
(indent-to (ps-mode-target-column)))) |
(indent-to (ps-mode-target-column)))) |
651 |
|
|
652 |
(defun ps-mode-tabkey () |
(defun ps-mode-tabkey () |
653 |
"Indent/reindent current line, or insert tab" |
"Indent/reindent current line, or insert tab." |
654 |
(interactive) |
(interactive) |
655 |
(let ((column (current-column)) |
(let ((column (current-column)) |
656 |
target) |
target) |
661 |
(setq target (ps-mode-target-column)) |
(setq target (ps-mode-target-column)) |
662 |
(while (<= target column) |
(while (<= target column) |
663 |
(setq target (+ target ps-mode-tab))) |
(setq target (+ target ps-mode-tab))) |
664 |
(delete-horizontal-space) |
(indent-line-to target)))) |
|
(indent-to target)))) |
|
665 |
|
|
666 |
(defun ps-mode-backward-delete-char () |
(defun ps-mode-backward-delete-char () |
667 |
"Delete backward indentation, or delete backward character" |
"Delete backward indentation, or delete backward character." |
668 |
(interactive) |
(interactive) |
669 |
(let ((column (current-column)) |
(let ((column (current-column)) |
670 |
target) |
target) |
679 |
(setq target (- target ps-mode-tab))) |
(setq target (- target ps-mode-tab))) |
680 |
(if (< target 0) |
(if (< target 0) |
681 |
(setq target 0)) |
(setq target 0)) |
682 |
(delete-horizontal-space) |
(indent-line-to target)))) |
|
(indent-to target)))) |
|
683 |
|
|
684 |
(defun ps-mode-r-brace () |
(defun ps-mode-r-brace () |
685 |
"Insert `}' and perform balance." |
"Insert `}' and perform balance." |
704 |
(if ps-mode-auto-indent |
(if ps-mode-auto-indent |
705 |
(save-excursion |
(save-excursion |
706 |
(when (re-search-backward (concat "^[ \t]*" (regexp-quote right) "\\=") nil t) |
(when (re-search-backward (concat "^[ \t]*" (regexp-quote right) "\\=") nil t) |
707 |
(delete-horizontal-space) |
(indent-line-to (ps-mode-target-column))))) |
|
(indent-to (ps-mode-target-column))))) |
|
708 |
(blink-matching-open)) |
(blink-matching-open)) |
709 |
|
|
710 |
(defun ps-mode-other-newline () |
(defun ps-mode-other-newline () |
711 |
"Perform newline in `*ps run*' buffer" |
"Perform newline in `*ps run*' buffer." |
712 |
(interactive) |
(interactive) |
713 |
(let ((buf (current-buffer))) |
(let ((buf (current-buffer))) |
714 |
(set-buffer "*ps run*") |
(set-buffer "*ps run*") |
719 |
;; Print PostScript. |
;; Print PostScript. |
720 |
|
|
721 |
(defun ps-mode-print-buffer () |
(defun ps-mode-print-buffer () |
722 |
"Print buffer as PostScript" |
"Print buffer as PostScript." |
723 |
(interactive) |
(interactive) |
724 |
(eval (list ps-mode-print-function))) |
(funcall ps-mode-print-function)) |
725 |
|
|
726 |
(defun ps-mode-print-region (begin end) |
(defun ps-mode-print-region (begin end) |
727 |
"Print region as PostScript, adding minimal header and footer lines: |
"Print region as PostScript, adding minimal header and footer lines: |
728 |
|
|
729 |
%!PS |
%!PS |
730 |
<region> |
<region> |
731 |
showpage |
showpage" |
|
" |
|
732 |
(interactive "r") |
(interactive "r") |
733 |
(let ((oldbuf (current-buffer)) |
(let ((buf (current-buffer))) |
734 |
(tmpbuf (get-buffer-create "*ps print*"))) |
(with-temp-buffer |
735 |
(copy-to-buffer tmpbuf begin end) |
(insert "%!PS\n") |
736 |
(set-buffer tmpbuf) |
(insert-buffer-substring buf begin end) |
737 |
(goto-char 1) |
(insert "\nshowpage\n") |
738 |
(insert "%!PS\n") |
(funcall ps-mode-print-function)))) |
|
(goto-char (point-max)) |
|
|
(insert "\nshowpage\n") |
|
|
(eval (list ps-mode-print-function)) |
|
|
(set-buffer oldbuf) |
|
|
(kill-buffer tmpbuf))) |
|
739 |
|
|
740 |
|
|
741 |
;; Comment Out / Uncomment. |
;; Comment Out / Uncomment. |
847 |
"Insert array /ISOLatin1Extended. |
"Insert array /ISOLatin1Extended. |
848 |
|
|
849 |
This encoding vector contains all the entries from ISOLatin1Encoding |
This encoding vector contains all the entries from ISOLatin1Encoding |
850 |
plus the usually uncoded characters inserted on positions 1 through 28. |
plus the usually uncoded characters inserted on positions 1 through 28." |
|
" |
|
851 |
(interactive) |
(interactive) |
852 |
(insert " |
(insert " |
853 |
% ISOLatin1Encoding, extended with remaining uncoded glyphs |
% ISOLatin1Encoding, extended with remaining uncoded glyphs |
970 |
|
|
971 |
;; Interactive PostScript interpreter. |
;; Interactive PostScript interpreter. |
972 |
|
|
973 |
(defun ps-run-mode () |
(define-derived-mode ps-run-mode fundamental-mode "Interactive PS" |
974 |
"Major mode in interactive PostScript window. |
"Major mode in interactive PostScript window. |
975 |
This mode is invoked from ps-mode and should not be called directly. |
This mode is invoked from `ps-mode' and should not be called directly. |
976 |
|
|
977 |
\\{ps-run-mode-map} |
\\{ps-run-mode-map}" |
978 |
" |
(set (make-local-variable 'font-lock-defaults) |
979 |
(kill-all-local-variables) |
'((ps-run-font-lock-keywords |
980 |
(make-local-variable 'font-lock-defaults) |
ps-run-font-lock-keywords-1 |
981 |
(setq font-lock-defaults '((ps-run-font-lock-keywords |
ps-run-font-lock-keywords-2) |
982 |
ps-run-font-lock-keywords-1 |
t)) |
983 |
ps-run-font-lock-keywords-2) |
(setq mode-line-process '(":%s"))) |
|
t) |
|
|
major-mode 'ps-run-mode |
|
|
mode-name "Interactive PS" |
|
|
mode-line-process '(":%s")) |
|
|
(use-local-map ps-run-mode-map) |
|
|
(run-hooks 'ps-run-mode-hook)) |
|
984 |
|
|
985 |
(defun ps-run-running () |
(defun ps-run-running () |
986 |
"Error if not in ps-mode or not running PostScript." |
"Error if not in `ps-mode' or not running PostScript." |
987 |
(unless (equal major-mode 'ps-mode) |
(unless (equal major-mode 'ps-mode) |
988 |
(error "This function can only be called from PostScript mode")) |
(error "This function can only be called from PostScript mode")) |
989 |
(unless (equal (process-status "ps-run") 'run) |
(unless (equal (process-status "ps-run") 'run) |
992 |
(defun ps-run-start () |
(defun ps-run-start () |
993 |
"Start interactive PostScript." |
"Start interactive PostScript." |
994 |
(interactive) |
(interactive) |
995 |
(let ((command (if (and window-system ps-run-x) ps-run-x ps-run-dumb)) |
(let ((command (or (and window-system ps-run-x) ps-run-dumb)) |
996 |
(init-file nil) |
(init-file nil) |
997 |
(process-connection-type nil) |
(process-connection-type nil) |
998 |
(oldwin (selected-window)) |
(oldwin (selected-window))) |
|
i) |
|
999 |
(unless command |
(unless command |
1000 |
(error "No command specified to run interactive PostScript")) |
(error "No command specified to run interactive PostScript")) |
1001 |
(unless (and ps-run-mark (markerp ps-run-mark)) |
(unless (and ps-run-mark (markerp ps-run-mark)) |
1009 |
(when (process-status "ps-run") |
(when (process-status "ps-run") |
1010 |
(delete-process "ps-run")) |
(delete-process "ps-run")) |
1011 |
(erase-buffer) |
(erase-buffer) |
1012 |
(setq i (append command init-file)) |
(setq command (append command init-file)) |
1013 |
(while i |
(insert (mapconcat 'identity command " ") "\n") |
1014 |
(insert (car i) (if (cdr i) " " "\n")) |
(apply 'start-process "ps-run" "*ps run*" command) |
|
(setq i (cdr i))) |
|
|
(eval (append '(start-process "ps-run" "*ps run*") command init-file)) |
|
1015 |
(select-window oldwin))) |
(select-window oldwin))) |
1016 |
|
|
1017 |
(defun ps-run-quit () |
(defun ps-run-quit () |
1049 |
(ps-run-send-string (format "(%s) run" f) t))) |
(ps-run-send-string (format "(%s) run" f) t))) |
1050 |
|
|
1051 |
(defun ps-run-boundingbox () |
(defun ps-run-boundingbox () |
1052 |
"View BoundingBox" |
"View BoundingBox." |
1053 |
(interactive) |
(interactive) |
1054 |
(ps-run-running) |
(ps-run-running) |
1055 |
(let (x1 y1 x2 y2 f |
(let (x1 y1 x2 y2 f |
1139 |
(delete-file i))))) |
(delete-file i))))) |
1140 |
|
|
1141 |
(defun ps-run-mouse-goto-error (event) |
(defun ps-run-mouse-goto-error (event) |
1142 |
"Set point at mouse click, then call ps-run-goto-error." |
"Set point at mouse click, then call `ps-run-goto-error'." |
1143 |
(interactive "e") |
(interactive "e") |
1144 |
(mouse-set-point event) |
(mouse-set-point event) |
1145 |
(ps-run-goto-error)) |
(ps-run-goto-error)) |
1158 |
|
|
1159 |
(defun ps-run-goto-error () |
(defun ps-run-goto-error () |
1160 |
"Jump to buffer position read as integer at point. |
"Jump to buffer position read as integer at point. |
1161 |
Use line numbers if ps-run-error-line-numbers is not nil" |
Use line numbers if `ps-run-error-line-numbers' is not nil" |
1162 |
(interactive) |
(interactive) |
1163 |
(let ((p (point))) |
(let ((p (point))) |
1164 |
(unless (looking-at "[0-9]") |
(unless (looking-at "[0-9]") |