# HG changeset patch # User Richard M. Stallman # Date 785091021 0 # Node ID fa912a906a6fad23605b3ff5c630cbb52a06079a # Parent 26f63d276d89bbfe54dd51d8041ee1234d37d478 (timer-process-filter): Use save-match-data. diff -r 26f63d276d89 -r fa912a906a6f lisp/=timer.el --- a/lisp/=timer.el Thu Nov 17 16:48:10 1994 +0000 +++ b/lisp/=timer.el Thu Nov 17 16:50:21 1994 +0000 @@ -124,34 +124,35 @@ (setcar (cdr (cdr elt)) 'ignore)) (defun timer-process-filter (proc str) - (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)))) + (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))))) (defun timer-process-sentinel (proc str) (let ((stat (process-status proc)))