--- search.c 01 Jul 2004 00:48:54 +0200 1.183 +++ search.c 14 Jul 2004 23:58:13 +0200 @@ -2731,7 +2731,7 @@ if (BUFFERP (last_thing_searched) && !NILP (integers)) { - data[len] = last_thing_searched; + XSETBUFFER(data[len], last_thing_searched); len++; } @@ -2813,7 +2813,7 @@ marker = Fcar (list); if (BUFFERP (marker)) { - last_thing_searched = marker; + XSETBUFFER(last_thing_searched, marker); break; } if (i >= length) @@ -2873,7 +2873,10 @@ saved_search_regs.num_regs = search_regs.num_regs; saved_search_regs.start = search_regs.start; saved_search_regs.end = search_regs.end; - saved_last_thing_searched = last_thing_searched; + if (BUFFERP(last_thing_searched)) + XSETBUFFER (saved_last_thing_searched, last_thing_searched); + else + saved_last_thing_searched = last_thing_searched; last_thing_searched = Qnil; search_regs.num_regs = 0; search_regs.start = 0; @@ -2897,7 +2900,10 @@ search_regs.num_regs = saved_search_regs.num_regs; search_regs.start = saved_search_regs.start; search_regs.end = saved_search_regs.end; - last_thing_searched = saved_last_thing_searched; + if (BUFFERP (saved_last_thing_searched)) + XSETBUFFER(last_thing_searched,saved_last_thing_searched); + else + last_thing_searched = saved_last_thing_searched; saved_last_thing_searched = Qnil; search_regs_saved = 0; }