branch: externals/realgud commit 4a7f6efc82f1a8a3d065e2783b0aef413e37775a Author: denin <dvzuba...@yandex.ru> Commit: denin <dvzuba...@yandex.ru>
Fix infinite loop in realgud:backtrace-init match-end and match-begin is overriden in realgud:file-loc-from-line. It is better to store them in variables. --- realgud/common/buffer/backtrace.el | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/realgud/common/buffer/backtrace.el b/realgud/common/buffer/backtrace.el index 2b68bb0..448927a 100644 --- a/realgud/common/buffer/backtrace.el +++ b/realgud/common/buffer/backtrace.el @@ -407,6 +407,8 @@ filename, line number, whether the frame is selected as text properties." ;; FIXME: Remove hack that group 1 is always the frame indicator. (frame-indicator (substring stripped-string (match-beginning 1) (match-end 1))) + (whole-match-begin (match-beginning 0)) + (whole-match-end (match-end 0)) (frame-num-pos) ) @@ -462,12 +464,12 @@ filename, line number, whether the frame is selected as text properties." (when (and (stringp filename) (numberp line-num)) (let ((loc (realgud:file-loc-from-line filename line-num cmdbuf))) - (put-text-property (match-beginning 0) (match-end 0) + (put-text-property whole-match-begin whole-match-end 'loc loc string) )) - (put-text-property (match-beginning 0) (match-end 0) + (put-text-property whole-match-begin whole-match-end 'frame-num frame-num string) - (setq last-pos (match-end 0)) + (setq last-pos whole-match-end) (if (string-match frame-indicator-re frame-indicator) (setq selected-frame-num frame-num))