summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDima Kogan <dkogan@secretsauce.net>2011-09-22 00:24:08 -0700
committerGlenn Morris <rgm@gnu.org>2011-09-22 00:24:08 -0700
commitbfeef8b6da2d8fad8cf2562bed35dbbc576a9d0c (patch)
treec2665625cd7c2334363340013219c3e3c9a1e29c
parent7e423bb823bf68b809364650b364f21f6fd835a0 (diff)
downloademacs-bfeef8b6da2d8fad8cf2562bed35dbbc576a9d0c.tar.gz
Small hideshow fix - ignore strings as well as comments (tiny change)
* lisp/progmodes/hideshow.el (hs-looking-at-block-start-p) (hs-find-block-beginning, hs-hide-level-recursive): Ignore strings as well as comments. Fixes: debbugs:9502
-rw-r--r--lisp/ChangeLog6
-rw-r--r--lisp/progmodes/hideshow.el8
2 files changed, 10 insertions, 4 deletions
diff --git a/lisp/ChangeLog b/lisp/ChangeLog
index 4a60247a4c7..f1cdee00c97 100644
--- a/lisp/ChangeLog
+++ b/lisp/ChangeLog
@@ -1,3 +1,9 @@
+2011-09-22 Dima Kogan <dkogan@secretsauce.net> (tiny change)
+
+ * progmodes/hideshow.el (hs-looking-at-block-start-p)
+ (hs-find-block-beginning, hs-hide-level-recursive):
+ Ignore strings as well as comments. (Bug#9502)
+
2011-09-22 Andrew Schein <andrew@andrewschein.com> (tiny change)
* progmodes/sql.el (sql-comint-postgres):
diff --git a/lisp/progmodes/hideshow.el b/lisp/progmodes/hideshow.el
index 49202ab6692..ca8be01d4a8 100644
--- a/lisp/progmodes/hideshow.el
+++ b/lisp/progmodes/hideshow.el
@@ -539,7 +539,7 @@ property of an overlay."
(defun hs-looking-at-block-start-p ()
"Return non-nil if the point is at the block start."
(and (looking-at hs-block-start-regexp)
- (save-match-data (not (nth 4 (syntax-ppss))))))
+ (save-match-data (not (nth 8 (syntax-ppss))))))
(defun hs-forward-sexp (match-data arg)
"Adjust point based on MATCH-DATA and call `hs-forward-sexp-func' w/ ARG.
@@ -693,8 +693,8 @@ Return point, or nil if original point was not in a block."
(point)
;; look backward for the start of a block that contains the cursor
(while (and (re-search-backward hs-block-start-regexp nil t)
- ;; go again if in a comment
- (or (save-match-data (nth 4 (syntax-ppss)))
+ ;; go again if in a comment or a string
+ (or (save-match-data (nth 8 (syntax-ppss)))
(not (setq done
(< here (save-excursion
(hs-forward-sexp (match-data t) 1)
@@ -718,7 +718,7 @@ Return point, or nil if original point was not in a block."
(and (< (point) maxp)
(re-search-forward hs-block-start-regexp maxp t)))
(when (save-match-data
- (not (nth 4 (syntax-ppss)))) ; not inside comments
+ (not (nth 8 (syntax-ppss)))) ; not inside comments or strings
(if (> arg 1)
(hs-hide-level-recursive (1- arg) minp maxp)
(goto-char (match-beginning hs-block-start-mdata-select))