diff options
author | Richard M. Stallman <rms@gnu.org> | 1994-11-22 04:38:30 +0000 |
---|---|---|
committer | Richard M. Stallman <rms@gnu.org> | 1994-11-22 04:38:30 +0000 |
commit | 1f66361e086553204783f7088a8cf2d4e095e256 (patch) | |
tree | 7cc88cfb7d7dc2c63ce1dec62c808911c1a224dc /lisp/timer.el | |
parent | 1d56cc39c16d8cd7fd40a151c195b9f366ade48c (diff) | |
download | emacs-1f66361e086553204783f7088a8cf2d4e095e256.tar.gz |
(timer-process-filter): No need for save-match-data.
Diffstat (limited to 'lisp/timer.el')
-rw-r--r-- | lisp/timer.el | 57 |
1 files changed, 28 insertions, 29 deletions
diff --git a/lisp/timer.el b/lisp/timer.el index b23b3a9184d..192df175753 100644 --- a/lisp/timer.el +++ b/lisp/timer.el @@ -124,35 +124,34 @@ will happen at the specified time." (setcar (cdr (cdr elt)) 'ignore)) (defun timer-process-filter (proc str) - (save-match-data - (setq timer-out (concat timer-out str)) - (let (do token error) - (while (string-match "\n" timer-out) - (setq token (substring timer-out 0 (match-beginning 0)) - do (assoc token timer-alist) - timer-out (substring timer-out (match-end 0))) - (cond - (do - (apply (nth 2 do) (nth 3 do)) ; do it - (if (natnump (nth 1 do)) ; reschedule it - (send-string proc (concat (nth 1 do) " sec@" (car do) "\n")) - (setq timer-alist (delq do timer-alist)))) - ((string-match "timer: \\([^:]+\\): \\([^@]*\\)@\\(.*\\)$" token) - (setq error (substring token (match-beginning 1) (match-end 1)) - do (substring token (match-beginning 2) (match-end 2)) - token (assoc (substring token (match-beginning 3) (match-end 3)) - timer-alist) - timer-alist (delq token timer-alist)) - (or timer-alist - timer-dont-exit - (process-send-eof proc)) - ;; Update error message for this particular instance - (put 'timer-filter-error - 'error-message - (format "%s for %s; couldn't set at \"%s\"" - error (nth 2 token) do)) - (signal 'timer-filter-error (list proc str))))) - (or timer-alist timer-dont-exit (process-send-eof proc))))) + (setq timer-out (concat timer-out str)) + (let (do token error) + (while (string-match "\n" timer-out) + (setq token (substring timer-out 0 (match-beginning 0)) + do (assoc token timer-alist) + timer-out (substring timer-out (match-end 0))) + (cond + (do + (apply (nth 2 do) (nth 3 do)) ; do it + (if (natnump (nth 1 do)) ; reschedule it + (send-string proc (concat (nth 1 do) " sec@" (car do) "\n")) + (setq timer-alist (delq do timer-alist)))) + ((string-match "timer: \\([^:]+\\): \\([^@]*\\)@\\(.*\\)$" token) + (setq error (substring token (match-beginning 1) (match-end 1)) + do (substring token (match-beginning 2) (match-end 2)) + token (assoc (substring token (match-beginning 3) (match-end 3)) + timer-alist) + timer-alist (delq token timer-alist)) + (or timer-alist + timer-dont-exit + (process-send-eof proc)) + ;; Update error message for this particular instance + (put 'timer-filter-error + 'error-message + (format "%s for %s; couldn't set at \"%s\"" + error (nth 2 token) do)) + (signal 'timer-filter-error (list proc str))))) + (or timer-alist timer-dont-exit (process-send-eof proc)))) (defun timer-process-sentinel (proc str) (let ((stat (process-status proc))) |