static void
save_search_regs (void)
{
- if (!search_regs_saved)
+ if (saved_search_regs.num_regs == 0)
{
- saved_search_regs.num_regs = search_regs.num_regs;
- saved_search_regs.start = search_regs.start;
- saved_search_regs.end = search_regs.end;
+ saved_search_regs = search_regs;
saved_last_thing_searched = last_thing_searched;
last_thing_searched = Qnil;
search_regs.num_regs = 0;
search_regs.start = 0;
search_regs.end = 0;
-
- search_regs_saved = 1;
}
}
void
restore_search_regs (void)
{
- if (search_regs_saved)
+ if (saved_search_regs.num_regs != 0)
{
if (search_regs.num_regs > 0)
{
xfree (search_regs.start);
xfree (search_regs.end);
}
- search_regs.num_regs = saved_search_regs.num_regs;
- search_regs.start = saved_search_regs.start;
- search_regs.end = saved_search_regs.end;
+ search_regs = saved_search_regs;
last_thing_searched = saved_last_thing_searched;
saved_last_thing_searched = Qnil;
- search_regs_saved = 0;
+ saved_search_regs.num_regs = 0;
}
}
struct re_registers m_search_regs;
#define search_regs (current_thread->m_search_regs)
- /* If non-zero the match data have been saved in saved_search_regs
- during the execution of a sentinel or filter. */
- bool m_search_regs_saved;
-#define search_regs_saved (current_thread->m_search_regs_saved)
-
struct re_registers m_saved_search_regs;
#define saved_search_regs (current_thread->m_saved_search_regs)