From 046e38ce2b6f4ae94251f480184b1a36243dd62d Mon Sep 17 00:00:00 2001 From: Michael Albinus Date: Fri, 1 Jun 2012 15:23:26 +0200 Subject: [PATCH] * net/tramp.el (tramp-check-for-regexp): Search from buffer end, in order to avoid "Stack overflow in regexp matcher". --- lisp/ChangeLog | 5 +++++ lisp/net/tramp.el | 13 ++++++++----- 2 files changed, 13 insertions(+), 5 deletions(-) diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 372fc63fc8b..cb7aaf44ead 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,8 @@ +2012-06-01 Michael Albinus + + * net/tramp.el (tramp-check-for-regexp): Search from buffer end, + in order to avoid "Stack overflow in regexp matcher". + 2012-05-31 Glenn Morris * image.el: For clarity, call imagemagick-register-types at diff --git a/lisp/net/tramp.el b/lisp/net/tramp.el index beb97c6eb32..be5bfdb79da 100644 --- a/lisp/net/tramp.el +++ b/lisp/net/tramp.el @@ -3315,8 +3315,14 @@ Erase echoed commands if exists." 'buffer-substring-no-properties 1 (min (1+ tramp-echo-mark-marker-length) (point-max)))))) ;; No echo to be handled, now we can look for the regexp. - (goto-char (point-min)) - (re-search-forward regexp nil t)))) + ;; Sometimes, the buffer is much to huge, and we run into a + ;; "Stack overflow in regexp matcher". For example, directory + ;; listings with some thousand files. Therefore, we look from + ;; the end for the last line. We ignore also superlong lines, + ;; like created with "//DIRED//". + (goto-char (point-max)) + (unless (> (- (point) (point-at-bol)) 128) + (re-search-backward regexp (point-at-bol) t))))) (defun tramp-wait-for-regexp (proc timeout regexp) "Wait for a REGEXP to appear from process PROC within TIMEOUT seconds. @@ -3857,9 +3863,6 @@ Only works for Bourne-like shells." ;; * Run emerge on two remote files. Bug is described here: ;; . ;; (Bug#6850) -;; * It would be very useful if it were possible to load or save a -;; buffer using Tramp in a non-blocking way so that use of Emacs on -;; other buffers could continue. (Bug#9617) ;;; tramp.el ends here -- 2.39.2