+2010-08-07 Chong Yidong <cyd@stupidchicken.com>
+
+ * keyboard.c (command_loop_1):
+ * insdel.c (prepare_to_modify_buffer): Don't call validate_region.
+
2010-08-07 Chong Yidong <cyd@stupidchicken.com>
* insdel.c (prepare_to_modify_buffer): Save active region text to
&& !NILP (Vtransient_mark_mode)
&& NILP (Vsaved_region_selection))
{
- Lisp_Object b = Fmarker_position (current_buffer->mark);
- Lisp_Object e = make_number (PT);
- if (NILP (Fequal (b, e)))
- {
- validate_region (&b, &e);
- Vsaved_region_selection = make_buffer_string (XINT (b), XINT (e), 0);
- }
+ int b = XINT (Fmarker_position (current_buffer->mark));
+ int e = XINT (make_number (PT));
+ if (b < e)
+ Vsaved_region_selection = make_buffer_string (b, e, 0);
+ else if (b > e)
+ Vsaved_region_selection = make_buffer_string (e, b, 0);
}
signal_before_change (start, end, preserve_ptr);
{
/* Set window selection. If `select-active-regions' is
`lazy', only do it for temporarily active regions. */
- Lisp_Object beg = Fmarker_position (current_buffer->mark);
- Lisp_Object end = make_number (PT);
- validate_region (&beg, &end);
- call2 (Qx_set_selection, QPRIMARY,
- make_buffer_string (XINT (beg), XINT (end), 0));
+ int beg = XINT (Fmarker_position (current_buffer->mark));
+ int end = XINT (make_number (PT));
+ if (beg < end)
+ call2 (Qx_set_selection, QPRIMARY,
+ make_buffer_string (beg, end, 0));
+ else if (beg > end)
+ call2 (Qx_set_selection, QPRIMARY,
+ make_buffer_string (end, beg, 0));
}
if (!NILP (Vdeactivate_mark))