From 1bab3cefc133e06aaf4a48efb1623d1b458ab212 Mon Sep 17 00:00:00 2001 From: Tassilo Horn Date: Mon, 26 Oct 2015 08:01:18 +0100 Subject: [PATCH] Fix infinite loop in sh-script's SMIE code * lisp/progmodes/sh-script.el (sh-smie-sh-forward-token): Fix infinite loop (bug#21747). --- lisp/progmodes/sh-script.el | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/lisp/progmodes/sh-script.el b/lisp/progmodes/sh-script.el index fbb4a90db40..baed27bb138 100644 --- a/lisp/progmodes/sh-script.el +++ b/lisp/progmodes/sh-script.el @@ -1920,10 +1920,11 @@ Does not preserve point." ;; Pretend the here-document is a "newline representing a ;; semi-colon", since the here-doc otherwise covers the newline(s). ";") - (let ((semi (sh-smie--newline-semi-p))) - (forward-line 1) - (if (or semi (eobp)) ";" - (sh-smie-sh-forward-token)))) + (unless (eobp) + (let ((semi (sh-smie--newline-semi-p))) + (forward-line 1) + (if (or semi (eobp)) ";" + (sh-smie-sh-forward-token))))) (forward-comment (point-max)) (cond ((looking-at "\\\\\n") (forward-line 1) (sh-smie-sh-forward-token)) -- 2.39.5