1 new commit in cc-mode:
https://bitbucket.org/xemacs/cc-mode/commits/a63d84d98ded/
Changeset: a63d84d98ded
User: acm
Date: 2017-10-30 17:15:44+00:00
Summary: Fix "Args out of range" error in c-determine-limit.
* cc-engine.el (c-determine-limit-get-base): If the candidate position for
BASE is below point-min, scan forward to the end of the current literal.
(c-determine-limit): Add an extra arm to the final cond form, testing for BASE
being at point-min.
Affected #: 1 file
diff -r d578a1da16151441048b84552790befc5db43f00 -r
a63d84d98dedcefec044dfec5e286b57ad4f79ce cc-engine.el
--- a/cc-engine.el
+++ b/cc-engine.el
@@ -5199,16 +5199,25 @@
;; Get a "safe place" approximately TRY-SIZE characters before START.
;; This defsubst doesn't preserve point.
(let* ((pos (max (- start try-size) (point-min)))
- (s (c-state-semi-pp-to-literal pos)))
- (or (car (cddr s)) pos)))
+ (s (c-state-semi-pp-to-literal pos))
+ (cand (or (car (cddr s)) pos)))
+ (if (>= cand (point-min))
+ cand
+ (parse-partial-sexp pos start nil nil (car s) 'syntax-table)
+ (point))))
(defun c-determine-limit (how-far-back &optional start try-size)
- ;; Return a buffer position HOW-FAR-BACK non-literal characters from START
- ;; (default point). This is done by going back further in the buffer then
- ;; searching forward for literals. The position found won't be in a
- ;; literal. We start searching for the sought position TRY-SIZE (default
- ;; twice HOW-FAR-BACK) bytes back from START. This function must be fast.
- ;; :-)
+ ;; Return a buffer position HOW-FAR-BACK non-literal characters from
+ ;; START (default point). The starting position, either point or
+ ;; START may not be in a comment or string.
+ ;;
+ ;; The position found will not be before POINT-MIN and won't be in a
+ ;; literal.
+ ;;
+ ;; We start searching for the sought position TRY-SIZE (default
+ ;; twice HOW-FAR-BACK) bytes back from START.
+ ;;
+ ;; This function must be fast. :-)
(save-excursion
(let* ((start (or start (point)))
(try-size (or try-size (* 2 how-far-back)))
@@ -5264,6 +5273,8 @@
(+ (car elt) (- count how-far-back)))
((eq base (point-min))
(point-min))
+ ((> base (- start try-size)) ; Can only happen if we hit point-min.
+ (car elt))
(t
(c-determine-limit (- how-far-back count) base try-size))))))
Repository URL:
https://bitbucket.org/xemacs/cc-mode/
--
This is a commit notification from
bitbucket.org. You are receiving
this because you have the service enabled, addressing the recipient of
this email.