From e1b56ea4293c091ecd143d82e949b698cc734dcf Mon Sep 17 00:00:00 2001 From: nobu Date: Tue, 30 Jul 2002 08:23:31 +0000 Subject: [PATCH] * misc/ruby-mode.el (ruby-accurate-end-of-block): incomplete block caused infinite loop. * misc/ruby-mode.el (ruby-parse-partial): returns nil unless delimiters found. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@2669 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- ChangeLog | 8 ++++++++ misc/ruby-mode.el | 9 +++++---- 2 files changed, 13 insertions(+), 4 deletions(-) diff --git a/ChangeLog b/ChangeLog index 4aa94f7dfc..372d71013a 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,11 @@ +Tue Jul 30 17:21:13 2002 Nobuyoshi Nakada + + * misc/ruby-mode.el (ruby-accurate-end-of-block): incomplete block + caused infinite loop. + + * misc/ruby-mode.el (ruby-parse-partial): returns nil unless + delimiters found. + Tue Jul 30 15:24:07 2002 WATANABE Hirofumi * ext/tcltklib/stubs.c (ruby_tcltk_stubs): win32_getenv returns diff --git a/misc/ruby-mode.el b/misc/ruby-mode.el index 2faec59307..7bc5ec0725 100644 --- a/misc/ruby-mode.el +++ b/misc/ruby-mode.el @@ -171,9 +171,10 @@ Also ignores spaces after parenthesis when 'space.") (defun ruby-imenu-create-index () (nreverse (ruby-imenu-create-index-in-block nil (point-min) nil))) -(defun ruby-accurate-end-of-block () +(defun ruby-accurate-end-of-block (&optional end) (let (state) - (while (>= (nth 2 (setq state (apply 'ruby-parse-partial end state))) 0)))) + (while (and (setq state (apply 'ruby-parse-partial end state)) + (>= (nth 2 state) 0))))) (defun ruby-mode-variables () (set-syntax-table ruby-mode-syntax-table) @@ -482,8 +483,8 @@ The variable ruby-indent-level controls the amount of indentation. (t (error (format "bad string %s" (buffer-substring (point) pnt) - )))))) - (list in-string nest depth pcol)) + ))))) + (list in-string nest depth pcol))) (defun ruby-parse-region (start end) (let (state)