Commit 746812d9 authored by Chong Yidong's avatar Chong Yidong

Avoid restrictions when copying window selection.

* src/keyboard.c (command_loop_1):
* src/insdel.c (prepare_to_modify_buffer): Don't call validate_region.
parent 1bcb9e65
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
......
......@@ -2055,13 +2055,12 @@ prepare_to_modify_buffer (EMACS_INT start, EMACS_INT end,
&& !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);
......
......@@ -1797,11 +1797,14 @@ command_loop_1 (void)
{
/* 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))
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment