Mattias Engdegård
558b6dbca7
Fix replace-regexp-in-string substring match data translation
...
For certain patterns, re-matching the same regexp on the matched
substring does not produce correctly translated match data
(bug#15107 and bug#44861).
Using a new builtin function also improves performance since the
number of calls to string-match is halved.
Reported by Kevin Ryde and Shigeru Fukaya.
* lisp/subr.el (replace-regexp-in-string): Translate the match data
using match-data--translate instead of trusting a call to string-match
on the matched string to do the job.
* test/lisp/subr-tests.el (subr-replace-regexp-in-string):
Add test cases.
* src/search.c (Fmatch_data__translate): New internal function.
(syms_of_search): Register it as a subroutine.
2020-11-26 14:20:13 +01:00
..
2020-08-09 15:13:05 -05:00
2020-10-13 11:29:01 +02:00
2020-10-30 12:10:53 +01:00
2020-11-19 20:43:51 +01:00
2020-05-01 13:05:26 +02:00
2020-11-24 18:39:58 +01:00
2020-05-01 13:05:26 +02:00
2020-10-24 02:36:55 +02:00
2020-08-05 10:27:40 +02:00
2020-08-29 22:41:51 +02:00
2020-10-24 13:35:49 +02:00
2020-10-23 16:29:46 +02:00
2020-11-03 21:20:17 -08:00
2020-11-12 03:20:39 +01:00
2020-07-31 04:19:03 +02:00
2020-10-06 03:48:00 +02:00
2020-10-17 15:55:42 +02:00
2020-10-23 21:07:26 +02:00
2020-11-25 12:24:08 +01:00
2020-09-21 18:47:55 +02:00
2020-10-01 15:34:46 +02:00
2020-09-10 19:32:53 +02:00
2020-09-02 12:53:02 +02:00
2020-11-14 15:55:08 +01:00
2020-11-17 00:20:26 +01:00
2020-08-08 01:40:38 +02:00
2020-10-09 12:23:02 +02:00
2020-01-01 00:59:52 +00:00
2020-11-14 17:04:23 +01:00
2020-10-22 18:51:00 +02:00
2020-10-16 11:28:09 +02:00
2020-10-28 03:41:55 +01:00
2020-10-23 21:07:26 +02:00
2020-01-01 00:59:52 +00:00
2020-09-23 20:03:19 +02:00
2020-09-23 20:03:19 +02:00
2020-11-14 16:24:38 +01:00
2020-04-18 18:43:23 +02:00
2020-09-26 12:03:07 +02:00
2020-01-22 07:37:01 +01:00
2020-01-01 00:59:52 +00:00
2020-06-21 13:42:14 +01:00
2020-10-28 03:41:55 +01:00
2020-06-18 13:11:17 +01:00
2020-10-20 03:21:31 +02:00
2020-01-01 00:59:52 +00:00
2020-10-16 09:32:48 +02:00
2020-08-27 02:53:25 +02:00
2020-01-01 00:59:52 +00:00
2020-10-09 06:57:07 +02:00
2020-09-23 20:03:19 +02:00
2020-11-20 19:28:03 -03:00
2020-11-25 12:18:23 +01:00
2020-05-01 13:05:26 +02:00
2020-01-01 00:59:52 +00:00
2020-07-08 17:35:54 -07:00
2020-09-21 14:26:42 +02:00
2020-11-02 17:56:06 +01:00
2020-01-01 00:59:52 +00:00
2020-04-30 10:46:54 +01:00
2020-10-02 09:38:24 -07:00
2020-04-19 08:04:57 +02:00
2020-10-24 02:36:55 +02:00
2020-10-24 13:35:49 +02:00
2020-10-19 11:56:49 +02:00
2020-10-28 03:41:55 +01:00
2020-10-23 16:29:46 +02:00
2020-11-23 19:54:09 +01:00
2020-01-01 00:59:52 +00:00
2020-06-18 12:46:21 +01:00
2020-11-12 03:27:26 +01:00
2020-05-09 20:01:37 +02:00
2020-11-17 02:21:17 +01:00
2020-10-21 13:06:38 +02:00
2020-08-27 02:53:25 +02:00
2020-01-01 00:59:52 +00:00
2020-01-24 23:04:34 +01:00
2020-01-01 00:59:52 +00:00
2020-01-01 00:59:52 +00:00
2020-01-01 00:59:52 +00:00
2020-06-21 12:50:34 +01:00
2020-05-01 13:05:26 +02:00
2020-08-27 02:53:25 +02:00
2020-05-01 13:05:26 +02:00
2020-08-27 02:53:25 +02:00
2020-09-21 14:26:42 +02:00
2020-01-01 00:59:52 +00:00
2020-01-01 00:59:52 +00:00
2020-01-01 00:59:52 +00:00
2020-10-24 20:23:27 +02:00
2020-01-01 00:59:52 +00:00
2020-10-23 21:07:26 +02:00
2020-04-26 00:30:37 +02:00
2020-01-01 00:59:52 +00:00
2020-09-08 18:31:15 +02:00
2020-01-01 00:59:52 +00:00
2020-01-01 00:59:52 +00:00
2020-05-16 22:25:07 -07:00
2020-10-16 11:28:09 +02:00
2020-01-01 00:59:52 +00:00
2020-01-01 00:59:52 +00:00
2020-05-31 12:31:27 +02:00
2020-01-01 00:59:52 +00:00
2020-10-16 16:49:47 +03:00
2020-01-01 00:59:52 +00:00
2020-01-01 00:59:52 +00:00
2020-10-28 03:41:55 +01:00
2020-01-20 15:52:27 +01:00
2020-10-10 07:50:20 -07:00
2020-08-27 02:53:25 +02:00
2020-01-01 00:59:52 +00:00
2020-05-14 19:29:14 +02:00
2020-11-26 14:20:13 +01:00
2020-01-01 00:59:52 +00:00
2020-05-14 18:43:15 +02:00
2020-02-21 11:15:00 +02:00
2020-01-01 00:59:52 +00:00
2020-05-01 13:05:26 +02:00
2020-01-01 00:59:52 +00:00
2020-01-01 01:08:16 +00:00
2020-10-26 21:23:55 +01:00
2020-01-01 00:59:52 +00:00
2020-04-28 23:35:52 +02:00
2020-10-01 23:34:01 +02:00
2020-01-01 00:59:52 +00:00
2020-11-24 08:31:18 -03:00
2020-10-23 21:07:26 +02:00
2020-09-26 11:48:09 +02:00
2020-10-31 09:57:00 +02:00