# HG changeset patch # User David Kastrup # Date 1088476672 0 # Node ID b04610e283ced94067329b67a905d7ae1beaa7b0 # Parent c9dc6eff7664ae17af7afe30b9d8c309a0717cae (Fset_match_data): Allow buffer before end of list which can happen if set-match-data is using a pre-consed list. diff -r c9dc6eff7664 -r b04610e283ce src/ChangeLog --- a/src/ChangeLog Mon Jun 28 23:15:42 2004 +0000 +++ b/src/ChangeLog Tue Jun 29 02:37:52 2004 +0000 @@ -1,3 +1,8 @@ +2004-06-29 David Kastrup + + * search.c (Fset_match_data): Allow buffer before end of list + which can happen if set-match-data is using a pre-consed list. + 2004-06-28 Steven Tamm * macterm.c (XTread_socket): Correctly set the frame position diff -r c9dc6eff7664 -r b04610e283ce src/search.c --- a/src/search.c Mon Jun 28 23:15:42 2004 +0000 +++ b/src/search.c Tue Jun 29 02:37:52 2004 +0000 @@ -2808,9 +2808,16 @@ search_regs.num_regs = length; } - for (i = 0; i < length; i++) + for (i = 0;; i++) { marker = Fcar (list); + if (BUFFERP(marker)) + { + XSETBUFFER(last_thing_searched, marker); + break; + } + if (i >= length) + break; if (NILP (marker)) { search_regs.start[i] = -1; @@ -2847,10 +2854,6 @@ search_regs.start[i] = -1; } - if (CONSP(list) && BUFFERP(XCAR(list))) { - XSETBUFFER(last_thing_searched, XCAR(list)); - } - return Qnil; }