Mercurial > emacs
comparison lisp/replace.el @ 83550:17e0dd217877
Merged from emacs@sv.gnu.org.
Patches applied:
* emacs@sv.gnu.org/emacs--devo--0--patch-536
Update from CVS
* emacs@sv.gnu.org/emacs--devo--0--patch-537
Update from CVS
* emacs@sv.gnu.org/emacs--devo--0--patch-538
Update from CVS
* emacs@sv.gnu.org/emacs--devo--0--patch-539
Update from CVS
* emacs@sv.gnu.org/emacs--devo--0--patch-540
Merge from gnus--rel--5.10
* emacs@sv.gnu.org/emacs--devo--0--patch-541
Update from CVS
* emacs@sv.gnu.org/emacs--devo--0--patch-542
Update from CVS
* emacs@sv.gnu.org/emacs--devo--0--patch-543
Update from CVS
* emacs@sv.gnu.org/emacs--devo--0--patch-544
Update from CVS
* emacs@sv.gnu.org/emacs--devo--0--patch-545
Update from CVS
* emacs@sv.gnu.org/emacs--devo--0--patch-546
Update from erc--emacs--22
* emacs@sv.gnu.org/emacs--devo--0--patch-547
Update from CVS
* emacs@sv.gnu.org/emacs--devo--0--patch-548
Update from CVS
* emacs@sv.gnu.org/emacs--devo--0--patch-549
Update from CVS
* emacs@sv.gnu.org/emacs--devo--0--patch-550
Update from CVS
* emacs@sv.gnu.org/emacs--devo--0--patch-551
Update from CVS
* emacs@sv.gnu.org/emacs--devo--0--patch-552
Update from CVS
* emacs@sv.gnu.org/emacs--devo--0--patch-553
Merge from gnus--rel--5.10
* emacs@sv.gnu.org/emacs--devo--0--patch-554
Update from CVS
* emacs@sv.gnu.org/emacs--devo--0--patch-555
erc-iswitchb: Temporarily enable iswitchb mode
* emacs@sv.gnu.org/emacs--devo--0--patch-556
Update from CVS
* emacs@sv.gnu.org/emacs--devo--0--patch-557
Update from CVS
* emacs@sv.gnu.org/emacs--devo--0--patch-558
Merge from gnus--rel--5.10
* emacs@sv.gnu.org/emacs--devo--0--patch-559
Update from CVS
* emacs@sv.gnu.org/emacs--devo--0--patch-560
Merge from gnus--rel--5.10
* emacs@sv.gnu.org/emacs--devo--0--patch-561
Update from CVS
* emacs@sv.gnu.org/emacs--devo--0--patch-562
Update from CVS
* emacs@sv.gnu.org/emacs--devo--0--patch-563
Update from CVS
* emacs@sv.gnu.org/emacs--devo--0--patch-564
Update from CVS
* emacs@sv.gnu.org/emacs--devo--0--patch-565
Update from CVS
* emacs@sv.gnu.org/emacs--devo--0--patch-566
Update from CVS
* emacs@sv.gnu.org/emacs--devo--0--patch-567
Update from CVS
* emacs@sv.gnu.org/emacs--devo--0--patch-568
Update from CVS
* emacs@sv.gnu.org/emacs--devo--0--patch-569
Merge from gnus--rel--5.10
* emacs@sv.gnu.org/emacs--devo--0--patch-570
Update from CVS
* emacs@sv.gnu.org/emacs--devo--0--patch-571
Update from CVS
* emacs@sv.gnu.org/emacs--devo--0--patch-572
Update from CVS
* emacs@sv.gnu.org/emacs--devo--0--patch-573
Update from CVS
* emacs@sv.gnu.org/emacs--devo--0--patch-574
Update from CVS
* emacs@sv.gnu.org/emacs--devo--0--patch-575
Update from CVS
* emacs@sv.gnu.org/emacs--devo--0--patch-576
Merge from gnus--rel--5.10
* emacs@sv.gnu.org/emacs--devo--0--patch-577
Update from CVS
* emacs@sv.gnu.org/emacs--devo--0--patch-578
Update from CVS
* emacs@sv.gnu.org/emacs--devo--0--patch-579
Update from CVS
* emacs@sv.gnu.org/emacs--devo--0--patch-580
Update from CVS
* emacs@sv.gnu.org/emacs--devo--0--patch-581
Update from CVS
* emacs@sv.gnu.org/emacs--devo--0--patch-582
Merge from gnus--rel--5.10
* emacs@sv.gnu.org/emacs--devo--0--patch-583
Update from CVS
* emacs@sv.gnu.org/emacs--devo--0--patch-584
Fix admin/quick-install-emacs to work with recent versions of autoconf
* emacs@sv.gnu.org/gnus--rel--5.10--patch-171
Update from CVS
* emacs@sv.gnu.org/gnus--rel--5.10--patch-172
Merge from emacs--devo--0
* emacs@sv.gnu.org/gnus--rel--5.10--patch-173
Merge from emacs--devo--0
* emacs@sv.gnu.org/gnus--rel--5.10--patch-174
Update from CVS
* emacs@sv.gnu.org/gnus--rel--5.10--patch-175
Update from CVS: lisp/legacy-gnus-agent.el: Add Copyright notice.
* emacs@sv.gnu.org/gnus--rel--5.10--patch-176
Update from CVS
* emacs@sv.gnu.org/gnus--rel--5.10--patch-177
Merge from emacs--devo--0
* emacs@sv.gnu.org/gnus--rel--5.10--patch-178
Update from CVS
* emacs@sv.gnu.org/gnus--rel--5.10--patch-179
Update from CVS
* emacs@sv.gnu.org/gnus--rel--5.10--patch-180
Update from CVS
* emacs@sv.gnu.org/gnus--rel--5.10--patch-181
Update from CVS
* emacs@sv.gnu.org/gnus--rel--5.10--patch-182
Update from CVS
* emacs@sv.gnu.org/gnus--rel--5.10--patch-183
Update from CVS
* emacs@sv.gnu.org/gnus--rel--5.10--patch-184
Update from CVS
* emacs@sv.gnu.org/gnus--rel--5.10--patch-185
Merge from emacs--devo--0
git-archimport-id: lorentey@elte.hu--2004/emacs--multi-tty--0--patch-590
author | Karoly Lorentey <lorentey@elte.hu> |
---|---|
date | Mon, 01 Jan 2007 17:38:32 +0000 |
parents | 34b20acf743f |
children | 61dcb71f259c 6588c6259dfb |
comparison
equal
deleted
inserted
replaced
83549:8d80de0a1ac6 | 83550:17e0dd217877 |
---|---|
1339 (aset data 2 (if (consp next) next (aref data 3)))))) | 1339 (aset data 2 (if (consp next) next (aref data 3)))))) |
1340 (car (aref data 2))) | 1340 (car (aref data 2))) |
1341 | 1341 |
1342 (defun replace-match-data (integers reuse &optional new) | 1342 (defun replace-match-data (integers reuse &optional new) |
1343 "Like `match-data', but markers in REUSE get invalidated. | 1343 "Like `match-data', but markers in REUSE get invalidated. |
1344 If NEW is non-NIL, it is set and returned instead of fresh data, | 1344 If NEW is non-nil, it is set and returned instead of fresh data, |
1345 but coerced to the correct value of INTEGERS." | 1345 but coerced to the correct value of INTEGERS." |
1346 (or (and new | 1346 (or (and new |
1347 (progn | 1347 (progn |
1348 (set-match-data new) | 1348 (set-match-data new) |
1349 (and (eq new reuse) | 1349 (and (eq new reuse) |
1355 "Make a replacement with `replace-match', editing `\\?'. | 1355 "Make a replacement with `replace-match', editing `\\?'. |
1356 NEWTEXT, FIXEDCASE, LITERAL are just passed on. If NOEDIT is true, no | 1356 NEWTEXT, FIXEDCASE, LITERAL are just passed on. If NOEDIT is true, no |
1357 check for `\\?' is made to save time. MATCH-DATA is used for the | 1357 check for `\\?' is made to save time. MATCH-DATA is used for the |
1358 replacement. In case editing is done, it is changed to use markers. | 1358 replacement. In case editing is done, it is changed to use markers. |
1359 | 1359 |
1360 The return value is non-NIL if there has been no `\\?' or NOEDIT was | 1360 The return value is non-nil if there has been no `\\?' or NOEDIT was |
1361 passed in. If LITERAL is set, no checking is done, anyway." | 1361 passed in. If LITERAL is set, no checking is done, anyway." |
1362 (unless (or literal noedit) | 1362 (unless (or literal noedit) |
1363 (setq noedit t) | 1363 (setq noedit t) |
1364 (while (string-match "\\(\\`\\|[^\\]\\)\\(\\\\\\\\\\)*\\(\\\\\\?\\)" | 1364 (while (string-match "\\(\\`\\|[^\\]\\)\\(\\\\\\\\\\)*\\(\\\\\\?\\)" |
1365 newtext) | 1365 newtext) |
1484 (and limit (>= (point) limit)))))) | 1484 (and limit (>= (point) limit)))))) |
1485 (funcall search-function search-string limit t) | 1485 (funcall search-function search-string limit t) |
1486 ;; For speed, use only integers and | 1486 ;; For speed, use only integers and |
1487 ;; reuse the list used last time. | 1487 ;; reuse the list used last time. |
1488 (replace-match-data t real-match-data))))) | 1488 (replace-match-data t real-match-data))))) |
1489 | 1489 |
1490 ;; Record whether the match is nonempty, to avoid an infinite loop | 1490 ;; Record whether the match is nonempty, to avoid an infinite loop |
1491 ;; repeatedly matching the same empty string. | 1491 ;; repeatedly matching the same empty string. |
1492 (setq nonempty-match | 1492 (setq nonempty-match |
1493 (/= (nth 0 real-match-data) (nth 1 real-match-data))) | 1493 (/= (nth 0 real-match-data) (nth 1 real-match-data))) |
1494 | 1494 |