(defun tq-filter (tq string)
"Append STRING to the TQ's buffer; then process the new data."
- (set-buffer (tq-buffer tq))
- (goto-char (point-max))
- (insert string)
- (tq-process-buffer tq))
+ (let ((old-buffer (current-buffer)))
+ (unwind-protect
+ (save-match-data
+ (set-buffer (tq-buffer tq))
+ (goto-char (point-max))
+ (insert string)
+ (tq-process-buffer tq))
+ (set-buffer old-buffer))))
(defun tq-process-buffer (tq)
"Check TQ's buffer for the regexp at the head of the queue."