mirror of
git://git.sv.gnu.org/emacs.git
synced 2026-01-30 04:10:54 -08:00
Trivial changes to silence warnings.
(xscheme-previous-mode, xscheme-previous-process-state): Add defvars. (xscheme-last-input-end, xscheme-process-command-line, xscheme-process-name, xscheme-buffer-name, xscheme-expressions-ring-max, xscheme-expressions-ring, xscheme-expressions-ring-yank-pointer, xscheme-running-p, xscheme-control-g-synchronization-p, xscheme-control-g-disabled-p, xscheme-string-receiver, default-xscheme-runlight, xscheme-runlight, xscheme-runlight-string, xscheme-process-filter-state, xscheme-allow-output-p, xscheme-prompt, xscheme-mode-string): Move to beginning of file. (scheme-interaction-mode-commands-alist, scheme-interaction-mode-map, scheme-debugger-mode-map): Declare them before use. Note: the initialization code for the variables has not been moved because it uses functions that reference the variables. (xscheme-control-g-message-string, xscheme-process-filter-alist, xscheme-prompt-for-expression-map): Declare them before use. (scheme-debugger-mode-commands): "?\ " -> "?\s".
This commit is contained in:
parent
12d96c20e5
commit
f28d4b0fe4
2 changed files with 175 additions and 143 deletions
|
|
@ -1,4 +1,28 @@
|
|||
2005-08-23 Ed Swarthout <ed.swarthout@gmail.com> (tiny change)
|
||||
2005-08-23 Juanma Barranquero <lekktu@gmail.com>
|
||||
|
||||
* progmodes/xscheme.el: Trivial changes to silence warnings.
|
||||
(xscheme-previous-mode, xscheme-previous-process-state):
|
||||
Add defvars.
|
||||
(xscheme-last-input-end, xscheme-process-command-line)
|
||||
(xscheme-process-name, xscheme-buffer-name)
|
||||
(xscheme-expressions-ring-max, xscheme-expressions-ring)
|
||||
(xscheme-expressions-ring-yank-pointer, xscheme-running-p)
|
||||
(xscheme-control-g-synchronization-p)
|
||||
(xscheme-control-g-disabled-p, xscheme-string-receiver)
|
||||
(default-xscheme-runlight, xscheme-runlight)
|
||||
(xscheme-runlight-string, xscheme-process-filter-state)
|
||||
(xscheme-allow-output-p, xscheme-prompt, xscheme-mode-string):
|
||||
Move to beginning of file.
|
||||
(scheme-interaction-mode-commands-alist)
|
||||
(scheme-interaction-mode-map, scheme-debugger-mode-map): Declare
|
||||
them before use. Note: the initialization code for the variables
|
||||
has not been moved because it uses functions that reference the
|
||||
variables.
|
||||
(xscheme-control-g-message-string, xscheme-process-filter-alist)
|
||||
(xscheme-prompt-for-expression-map): Declare them before use.
|
||||
(scheme-debugger-mode-commands): "?\ " -> "?\s".
|
||||
|
||||
2005-08-23 Ed Swarthout <ed.swarthout@gmail.com> (tiny change)
|
||||
|
||||
* hexl.el (hexl-print-current-point-info): Fix simple spelling
|
||||
error.
|
||||
|
|
|
|||
|
|
@ -33,6 +33,85 @@
|
|||
;;; Code:
|
||||
|
||||
(require 'scheme)
|
||||
|
||||
;;;; Internal Variables
|
||||
|
||||
(defvar xscheme-previous-mode)
|
||||
(defvar xscheme-previous-process-state)
|
||||
(defvar xscheme-last-input-end)
|
||||
|
||||
(defvar xscheme-process-command-line nil
|
||||
"Command used to start the most recent Scheme process.")
|
||||
|
||||
(defvar xscheme-process-name "scheme"
|
||||
"Name of xscheme process that we're currently interacting with.")
|
||||
|
||||
(defvar xscheme-buffer-name "*scheme*"
|
||||
"Name of xscheme buffer that we're currently interacting with.")
|
||||
|
||||
(defvar xscheme-expressions-ring-max 30
|
||||
"*Maximum length of Scheme expressions ring.")
|
||||
|
||||
(defvar xscheme-expressions-ring nil
|
||||
"List of expressions recently transmitted to the Scheme process.")
|
||||
|
||||
(defvar xscheme-expressions-ring-yank-pointer nil
|
||||
"The tail of the Scheme expressions ring whose car is the last thing yanked.")
|
||||
|
||||
(defvar xscheme-running-p nil
|
||||
"This variable, if nil, indicates that the scheme process is
|
||||
waiting for input. Otherwise, it is busy evaluating something.")
|
||||
|
||||
(defconst xscheme-control-g-synchronization-p t
|
||||
"If non-nil, insert markers in the scheme input stream to indicate when
|
||||
control-g interrupts were signaled. Do not allow more control-g's to be
|
||||
signaled until the scheme process acknowledges receipt.")
|
||||
|
||||
(defvar xscheme-control-g-disabled-p nil
|
||||
"This variable, if non-nil, indicates that a control-g is being processed
|
||||
by the scheme process, so additional control-g's are to be ignored.")
|
||||
|
||||
(defvar xscheme-string-receiver nil
|
||||
"Procedure to send the string argument from the scheme process.")
|
||||
|
||||
(defconst default-xscheme-runlight
|
||||
'(": " xscheme-runlight-string)
|
||||
"Default global (shared) xscheme-runlight modeline format.")
|
||||
|
||||
(defvar xscheme-runlight "")
|
||||
(defvar xscheme-runlight-string nil)
|
||||
|
||||
(defvar xscheme-process-filter-state 'idle
|
||||
"State of scheme process escape reader state machine:
|
||||
idle waiting for an escape sequence
|
||||
reading-type received an altmode but nothing else
|
||||
reading-string reading prompt string")
|
||||
|
||||
(defvar xscheme-allow-output-p t
|
||||
"This variable, if nil, prevents output from the scheme process
|
||||
from being inserted into the process-buffer.")
|
||||
|
||||
(defvar xscheme-prompt ""
|
||||
"The current scheme prompt string.")
|
||||
|
||||
(defvar xscheme-string-accumulator ""
|
||||
"Accumulator for the string being received from the scheme process.")
|
||||
|
||||
(defvar xscheme-mode-string nil)
|
||||
(setq-default scheme-mode-line-process
|
||||
'("" xscheme-runlight))
|
||||
|
||||
(mapcar 'make-variable-buffer-local
|
||||
'(xscheme-expressions-ring
|
||||
xscheme-expressions-ring-yank-pointer
|
||||
xscheme-process-filter-state
|
||||
xscheme-running-p
|
||||
xscheme-control-g-disabled-p
|
||||
xscheme-allow-output-p
|
||||
xscheme-prompt
|
||||
xscheme-string-accumulator
|
||||
xscheme-mode-string
|
||||
scheme-mode-line-process))
|
||||
|
||||
(defgroup xscheme nil
|
||||
"Major mode for editing Scheme and interacting with MIT's C-Scheme."
|
||||
|
|
@ -355,6 +434,9 @@ with no args, if that value is non-nil.
|
|||
(if (eq (process-sentinel process) 'xscheme-process-sentinel)
|
||||
(set-process-sentinel process (cdr previous-state))))))))
|
||||
|
||||
(defvar scheme-interaction-mode-commands-alist nil)
|
||||
(defvar scheme-interaction-mode-map nil)
|
||||
|
||||
(defun scheme-interaction-mode-initialize ()
|
||||
(use-local-map scheme-interaction-mode-map)
|
||||
(setq major-mode 'scheme-interaction-mode)
|
||||
|
|
@ -368,7 +450,7 @@ with no args, if that value is non-nil.
|
|||
(car (cdr (car entries))))
|
||||
(setq entries (cdr entries)))))
|
||||
|
||||
(defvar scheme-interaction-mode-commands-alist nil)
|
||||
;; Initialize the command alist
|
||||
(setq scheme-interaction-mode-commands-alist
|
||||
(append scheme-interaction-mode-commands-alist
|
||||
'(("\C-c\C-m" xscheme-send-current-line)
|
||||
|
|
@ -378,7 +460,7 @@ with no args, if that value is non-nil.
|
|||
("\ep" xscheme-yank-pop)
|
||||
("\en" xscheme-yank-push))))
|
||||
|
||||
(defvar scheme-interaction-mode-map nil)
|
||||
;; Initialize the mode map
|
||||
(if (not scheme-interaction-mode-map)
|
||||
(progn
|
||||
(setq scheme-interaction-mode-map (make-keymap))
|
||||
|
|
@ -411,18 +493,20 @@ Commands:
|
|||
\\{scheme-debugger-mode-map}"
|
||||
(error "Invalid entry to scheme-debugger-mode"))
|
||||
|
||||
(defvar scheme-debugger-mode-map nil)
|
||||
|
||||
(defun scheme-debugger-mode-initialize ()
|
||||
(use-local-map scheme-debugger-mode-map)
|
||||
(setq major-mode 'scheme-debugger-mode)
|
||||
(setq mode-name "Scheme Debugger"))
|
||||
|
||||
(defun scheme-debugger-mode-commands (keymap)
|
||||
(let ((char ? ))
|
||||
(let ((char ?\s))
|
||||
(while (< char 127)
|
||||
(define-key keymap (char-to-string char) 'scheme-debugger-self-insert)
|
||||
(setq char (1+ char)))))
|
||||
|
||||
(defvar scheme-debugger-mode-map nil)
|
||||
;; Initialize the debugger mode map
|
||||
(if (not scheme-debugger-mode-map)
|
||||
(progn
|
||||
(setq scheme-debugger-mode-map (make-keymap))
|
||||
|
|
@ -675,6 +759,9 @@ Useful for working with debugging Scheme under adb."
|
|||
(interactive)
|
||||
(process-send-string xscheme-process-name "(proceed)\n"))
|
||||
|
||||
(defconst xscheme-control-g-message-string
|
||||
"Sending C-G interrupt to Scheme...")
|
||||
|
||||
(defun xscheme-send-control-g-interrupt ()
|
||||
"Cause the Scheme processor to halt and flush input.
|
||||
Control returns to the top level rep loop."
|
||||
|
|
@ -695,9 +782,6 @@ Control returns to the top level rep loop."
|
|||
(sleep-for 0.1)
|
||||
(xscheme-send-char 0)))))
|
||||
|
||||
(defconst xscheme-control-g-message-string
|
||||
"Sending C-G interrupt to Scheme...")
|
||||
|
||||
(defun xscheme-send-control-u-interrupt ()
|
||||
"Cause the Scheme process to halt, returning to previous rep loop."
|
||||
(interactive)
|
||||
|
|
@ -722,82 +806,6 @@ Control returns to the top level rep loop."
|
|||
(if (and mark-p xscheme-control-g-synchronization-p)
|
||||
(xscheme-send-char 0)))
|
||||
|
||||
;;;; Internal Variables
|
||||
|
||||
(defvar xscheme-process-command-line nil
|
||||
"Command used to start the most recent Scheme process.")
|
||||
|
||||
(defvar xscheme-process-name "scheme"
|
||||
"Name of xscheme process that we're currently interacting with.")
|
||||
|
||||
(defvar xscheme-buffer-name "*scheme*"
|
||||
"Name of xscheme buffer that we're currently interacting with.")
|
||||
|
||||
(defvar xscheme-expressions-ring-max 30
|
||||
"*Maximum length of Scheme expressions ring.")
|
||||
|
||||
(defvar xscheme-expressions-ring nil
|
||||
"List of expressions recently transmitted to the Scheme process.")
|
||||
|
||||
(defvar xscheme-expressions-ring-yank-pointer nil
|
||||
"The tail of the Scheme expressions ring whose car is the last thing yanked.")
|
||||
|
||||
(defvar xscheme-last-input-end)
|
||||
|
||||
(defvar xscheme-process-filter-state 'idle
|
||||
"State of scheme process escape reader state machine:
|
||||
idle waiting for an escape sequence
|
||||
reading-type received an altmode but nothing else
|
||||
reading-string reading prompt string")
|
||||
|
||||
(defvar xscheme-running-p nil
|
||||
"This variable, if nil, indicates that the scheme process is
|
||||
waiting for input. Otherwise, it is busy evaluating something.")
|
||||
|
||||
(defconst xscheme-control-g-synchronization-p t
|
||||
"If non-nil, insert markers in the scheme input stream to indicate when
|
||||
control-g interrupts were signaled. Do not allow more control-g's to be
|
||||
signaled until the scheme process acknowledges receipt.")
|
||||
|
||||
(defvar xscheme-control-g-disabled-p nil
|
||||
"This variable, if non-nil, indicates that a control-g is being processed
|
||||
by the scheme process, so additional control-g's are to be ignored.")
|
||||
|
||||
(defvar xscheme-allow-output-p t
|
||||
"This variable, if nil, prevents output from the scheme process
|
||||
from being inserted into the process-buffer.")
|
||||
|
||||
(defvar xscheme-prompt ""
|
||||
"The current scheme prompt string.")
|
||||
|
||||
(defvar xscheme-string-accumulator ""
|
||||
"Accumulator for the string being received from the scheme process.")
|
||||
|
||||
(defvar xscheme-string-receiver nil
|
||||
"Procedure to send the string argument from the scheme process.")
|
||||
|
||||
(defconst default-xscheme-runlight
|
||||
'(": " xscheme-runlight-string)
|
||||
"Default global (shared) xscheme-runlight modeline format.")
|
||||
|
||||
(defvar xscheme-runlight "")
|
||||
(defvar xscheme-runlight-string nil)
|
||||
(defvar xscheme-mode-string nil)
|
||||
(setq-default scheme-mode-line-process
|
||||
'("" xscheme-runlight))
|
||||
|
||||
(mapcar 'make-variable-buffer-local
|
||||
'(xscheme-expressions-ring
|
||||
xscheme-expressions-ring-yank-pointer
|
||||
xscheme-process-filter-state
|
||||
xscheme-running-p
|
||||
xscheme-control-g-disabled-p
|
||||
xscheme-allow-output-p
|
||||
xscheme-prompt
|
||||
xscheme-string-accumulator
|
||||
xscheme-mode-string
|
||||
scheme-mode-line-process))
|
||||
|
||||
;;;; Basic Process Control
|
||||
|
||||
(defun xscheme-start-process (command-line the-process the-buffer)
|
||||
|
|
@ -880,6 +888,61 @@ from being inserted into the process-buffer.")
|
|||
"True iff the current buffer is the Scheme process buffer."
|
||||
(eq (xscheme-process-buffer) (current-buffer)))
|
||||
|
||||
;;;; Process Filter Operations
|
||||
|
||||
(defvar xscheme-process-filter-alist
|
||||
'((?A xscheme-eval
|
||||
xscheme-process-filter:string-action-noexcursion)
|
||||
(?D xscheme-enter-debugger-mode
|
||||
xscheme-process-filter:string-action)
|
||||
(?E xscheme-eval
|
||||
xscheme-process-filter:string-action)
|
||||
(?P xscheme-set-prompt-variable
|
||||
xscheme-process-filter:string-action)
|
||||
(?R xscheme-enter-interaction-mode
|
||||
xscheme-process-filter:simple-action)
|
||||
(?b xscheme-start-gc
|
||||
xscheme-process-filter:simple-action)
|
||||
(?c xscheme-unsolicited-read-char
|
||||
xscheme-process-filter:simple-action)
|
||||
(?e xscheme-finish-gc
|
||||
xscheme-process-filter:simple-action)
|
||||
(?f xscheme-exit-input-wait
|
||||
xscheme-process-filter:simple-action)
|
||||
(?g xscheme-enable-control-g
|
||||
xscheme-process-filter:simple-action)
|
||||
(?i xscheme-prompt-for-expression
|
||||
xscheme-process-filter:string-action)
|
||||
(?m xscheme-message
|
||||
xscheme-process-filter:string-action)
|
||||
(?n xscheme-prompt-for-confirmation
|
||||
xscheme-process-filter:string-action)
|
||||
(?o xscheme-output-goto
|
||||
xscheme-process-filter:simple-action)
|
||||
(?p xscheme-set-prompt
|
||||
xscheme-process-filter:string-action)
|
||||
(?s xscheme-enter-input-wait
|
||||
xscheme-process-filter:simple-action)
|
||||
(?v xscheme-write-value
|
||||
xscheme-process-filter:string-action)
|
||||
(?w xscheme-cd
|
||||
xscheme-process-filter:string-action)
|
||||
(?z xscheme-display-process-buffer
|
||||
xscheme-process-filter:simple-action))
|
||||
"Table used to decide how to handle process filter commands.
|
||||
Value is a list of entries, each entry is a list of three items.
|
||||
|
||||
The first item is the character that the process filter dispatches on.
|
||||
The second item is the action to be taken, a function.
|
||||
The third item is the handler for the entry, a function.
|
||||
|
||||
When the process filter sees a command whose character matches a
|
||||
particular entry, it calls the handler with two arguments: the action
|
||||
and the string containing the rest of the process filter's input
|
||||
stream. It is the responsibility of the handler to invoke the action
|
||||
with the appropriate arguments, and to reenter the process filter with
|
||||
the remaining input.")
|
||||
|
||||
;;;; Process Filter
|
||||
|
||||
(defun xscheme-process-sentinel (proc reason)
|
||||
|
|
@ -1037,61 +1100,6 @@ from being inserted into the process-buffer.")
|
|||
(rplaca (nthcdr 3 xscheme-runlight) runlight)
|
||||
(force-mode-line-update t))
|
||||
|
||||
;;;; Process Filter Operations
|
||||
|
||||
(defvar xscheme-process-filter-alist
|
||||
'((?A xscheme-eval
|
||||
xscheme-process-filter:string-action-noexcursion)
|
||||
(?D xscheme-enter-debugger-mode
|
||||
xscheme-process-filter:string-action)
|
||||
(?E xscheme-eval
|
||||
xscheme-process-filter:string-action)
|
||||
(?P xscheme-set-prompt-variable
|
||||
xscheme-process-filter:string-action)
|
||||
(?R xscheme-enter-interaction-mode
|
||||
xscheme-process-filter:simple-action)
|
||||
(?b xscheme-start-gc
|
||||
xscheme-process-filter:simple-action)
|
||||
(?c xscheme-unsolicited-read-char
|
||||
xscheme-process-filter:simple-action)
|
||||
(?e xscheme-finish-gc
|
||||
xscheme-process-filter:simple-action)
|
||||
(?f xscheme-exit-input-wait
|
||||
xscheme-process-filter:simple-action)
|
||||
(?g xscheme-enable-control-g
|
||||
xscheme-process-filter:simple-action)
|
||||
(?i xscheme-prompt-for-expression
|
||||
xscheme-process-filter:string-action)
|
||||
(?m xscheme-message
|
||||
xscheme-process-filter:string-action)
|
||||
(?n xscheme-prompt-for-confirmation
|
||||
xscheme-process-filter:string-action)
|
||||
(?o xscheme-output-goto
|
||||
xscheme-process-filter:simple-action)
|
||||
(?p xscheme-set-prompt
|
||||
xscheme-process-filter:string-action)
|
||||
(?s xscheme-enter-input-wait
|
||||
xscheme-process-filter:simple-action)
|
||||
(?v xscheme-write-value
|
||||
xscheme-process-filter:string-action)
|
||||
(?w xscheme-cd
|
||||
xscheme-process-filter:string-action)
|
||||
(?z xscheme-display-process-buffer
|
||||
xscheme-process-filter:simple-action))
|
||||
"Table used to decide how to handle process filter commands.
|
||||
Value is a list of entries, each entry is a list of three items.
|
||||
|
||||
The first item is the character that the process filter dispatches on.
|
||||
The second item is the action to be taken, a function.
|
||||
The third item is the handler for the entry, a function.
|
||||
|
||||
When the process filter sees a command whose character matches a
|
||||
particular entry, it calls the handler with two arguments: the action
|
||||
and the string containing the rest of the process filter's input
|
||||
stream. It is the responsibility of the handler to invoke the action
|
||||
with the appropriate arguments, and to reenter the process filter with
|
||||
the remaining input.")
|
||||
|
||||
(defun xscheme-process-filter:simple-action (action)
|
||||
(setq xscheme-process-filter-state 'idle)
|
||||
(funcall action))
|
||||
|
|
@ -1196,10 +1204,6 @@ the remaining input.")
|
|||
(defun xscheme-prompt-for-confirmation (prompt-string)
|
||||
(xscheme-send-char (if (y-or-n-p prompt-string) ?y ?n)))
|
||||
|
||||
(defun xscheme-prompt-for-expression (prompt-string)
|
||||
(xscheme-send-string-2
|
||||
(read-from-minibuffer prompt-string nil xscheme-prompt-for-expression-map)))
|
||||
|
||||
(defvar xscheme-prompt-for-expression-map nil)
|
||||
(if (not xscheme-prompt-for-expression-map)
|
||||
(progn
|
||||
|
|
@ -1209,6 +1213,10 @@ the remaining input.")
|
|||
'xscheme-prompt-for-expression-exit
|
||||
xscheme-prompt-for-expression-map)))
|
||||
|
||||
(defun xscheme-prompt-for-expression (prompt-string)
|
||||
(xscheme-send-string-2
|
||||
(read-from-minibuffer prompt-string nil xscheme-prompt-for-expression-map)))
|
||||
|
||||
(defun xscheme-prompt-for-expression-exit ()
|
||||
(interactive)
|
||||
(if (eq (xscheme-region-expression-p (point-min) (point-max)) 'one)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue