aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorErik Martin-Dorel2019-05-04 01:28:57 +0200
committerJim Fehrle2019-05-16 20:33:54 -0700
commitd8b501a5caf50ede62631e3fa30aa89f53db045f (patch)
tree23310567f605007c028ccde44c05865b739e2ada
parente5cc6cf40887970e79c578ecbae00d79c288ccac (diff)
proof-syntax.el: Fix an out-of-range bug in function `proof-format'
This bug seems to date from the generalization performed in commit: 080babbb0f361885e9b502ee56dec14351104a37
-rw-r--r--generic/proof-syntax.el20
1 files changed, 11 insertions, 9 deletions
diff --git a/generic/proof-syntax.el b/generic/proof-syntax.el
index cdc38775..6fbe8eb0 100644
--- a/generic/proof-syntax.el
+++ b/generic/proof-syntax.el
@@ -244,15 +244,17 @@ may be a string or sexp evaluated to get a string."
(while alist
(let ((idx 0))
(while (string-match (car (car alist)) string idx)
- (setq string
- (concat (substring string 0 (match-beginning 0))
- (cond
- ((stringp (cdr (car alist)))
- (cdr (car alist)))
- (t
- (eval (cdr (car alist)))))
- (substring string (match-end 0))))
- (setq idx (+ (match-beginning 0) (length (cdr (car alist)))))))
+ (let ((replacement
+ (cond
+ ((stringp (cdr (car alist)))
+ (cdr (car alist)))
+ (t
+ (eval (cdr (car alist)))))))
+ (setq string
+ (concat (substring string 0 (match-beginning 0))
+ replacement
+ (substring string (match-end 0))))
+ (setq idx (+ (match-beginning 0) (length replacement))))))
(setq alist (cdr alist)))
string)