emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Emacs-diffs] trunk r115024: * lisp/progmodes/sh-script.el (sh-smie--sh-


From: Stefan Monnier
Subject: [Emacs-diffs] trunk r115024: * lisp/progmodes/sh-script.el (sh-smie--sh-keyword-in-p): Don't inf-loop
Date: Fri, 08 Nov 2013 04:33:39 +0000
User-agent: Bazaar (2.6b2)

------------------------------------------------------------
revno: 115024
revision-id: address@hidden
parent: address@hidden
fixes bug: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=15826
committer: Stefan Monnier <address@hidden>
branch nick: trunk
timestamp: Thu 2013-11-07 23:33:32 -0500
message:
  * lisp/progmodes/sh-script.el (sh-smie--sh-keyword-in-p): Don't inf-loop
  at bobp.
  (sh-smie--sh-keyword-in-p): Recognize keywords at bobp.
modified:
  lisp/ChangeLog                 changelog-20091113204419-o5vbwnq5f7feedwu-1432
  lisp/progmodes/sh-script.el    shscript.el-20091113204419-o5vbwnq5f7feedwu-727
=== modified file 'lisp/ChangeLog'
--- a/lisp/ChangeLog    2013-11-08 04:09:56 +0000
+++ b/lisp/ChangeLog    2013-11-08 04:33:32 +0000
@@ -1,3 +1,9 @@
+2013-11-08  Stefan Monnier  <address@hidden>
+
+       * progmodes/sh-script.el (sh-smie--sh-keyword-in-p): Don't inf-loop
+       at bobp (bug#15826).
+       (sh-smie--sh-keyword-in-p): Recognize keywords at bobp.
+
 2013-11-08  Darren Hoo  <address@hidden>
 
        * man.el (Man-start-calling): New macro, extracted from

=== modified file 'lisp/progmodes/sh-script.el'
--- a/lisp/progmodes/sh-script.el       2013-10-24 21:16:20 +0000
+++ b/lisp/progmodes/sh-script.el       2013-11-08 04:33:32 +0000
@@ -1730,7 +1730,7 @@
 like a keyword, then it is a keyword."
   (let ((prev (funcall smie-backward-token-function)))
     (if (zerop (length prev))
-        (looking-back "\\s(" (1- (point)))
+        (looking-back "\\`\\|\\s(" (1- (point)))
       (assoc prev smie-grammar))))
 
 (defun sh-smie--newline-semi-p (&optional tok)
@@ -1804,12 +1804,14 @@
       (setq prev (funcall smie-backward-token-function))
       (cond
        ((zerop (length prev))
-        (if newline
-            (progn (cl-assert words) (setq res 'word))
+       (cond
+        (newline (cl-assert words) (setq res 'word))
+        ((bobp) (setq res 'word))
+        (t
           (setq words t)
           (condition-case nil
               (forward-sexp -1)
-            (scan-error (setq res 'unknown)))))
+            (scan-error (setq res 'unknown))))))
        ((equal prev ";")
         (if words (setq newline t)
           (setq res 'keyword)))


reply via email to

[Prev in Thread] Current Thread [Next in Thread]