From: Michael Albinus Date: Fri, 1 Jun 2012 13:23:26 +0000 (+0200) Subject: * net/tramp.el (tramp-check-for-regexp): Search from buffer end, X-Git-Tag: emacs-24.2.90~471^2~6^2~32 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=046e38ce2b6f4ae94251f480184b1a36243dd62d;p=emacs.git * net/tramp.el (tramp-check-for-regexp): Search from buffer end, in order to avoid "Stack overflow in regexp matcher". --- 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