From cd18e7e3f49c014b83ffa5f2e4391a58ded6a287 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Johan=20Bockg=C3=A5rd?= Date: Wed, 13 Jul 2011 03:48:43 +0200 Subject: [PATCH] Fix execution of x selection hooks. * xselect.c (Qx_lost_selection_functions) (Qx_sent_selection_functions): New vars. (syms_of_xselect): DEFSYM them. (x_handle_selection_request): Pass Qx_sent_selection_functions rather than Vx_sent_selection_functions to Frun_hook_with_args. (x_handle_selection_clear,x_clear_frame_selections): Pass Qx_lost_selection_functions rather than Vx_lost_selection_functions to Frun_hook_with_args. --- src/ChangeLog | 12 ++++++++++++ src/xselect.c | 11 +++++++---- 2 files changed, 19 insertions(+), 4 deletions(-) diff --git a/src/ChangeLog b/src/ChangeLog index e8824f3a15f..5bdc940a6f3 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,3 +1,15 @@ +2011-07-13 Johan Bockgård + + Fix execution of x selection hooks. + * xselect.c (Qx_lost_selection_functions) + (Qx_sent_selection_functions): New vars. + (syms_of_xselect): DEFSYM them. + (x_handle_selection_request): Pass Qx_sent_selection_functions + rather than Vx_sent_selection_functions to Frun_hook_with_args. + (x_handle_selection_clear,x_clear_frame_selections): + Pass Qx_lost_selection_functions rather than + Vx_lost_selection_functions to Frun_hook_with_args. + 2011-07-13 Paul Eggert * buffer.c (Fget_buffer_create): Initialized inhibit_shrinking. diff --git a/src/xselect.c b/src/xselect.c index 7f4e0b40f62..5e5bdb55eca 100644 --- a/src/xselect.c +++ b/src/xselect.c @@ -112,6 +112,7 @@ static Lisp_Object QUTF8_STRING; /* This is a type of selection. */ static Lisp_Object Qcompound_text_with_extensions; static Lisp_Object Qforeign_selection; +static Lisp_Object Qx_lost_selection_functions, Qx_sent_selection_functions; /* If this is a smaller number than the max-request-size of the display, emacs will use INCR selection transfer when the selection is larger @@ -855,7 +856,7 @@ x_handle_selection_request (struct input_event *event) && !EQ (Vx_sent_selection_functions, Qunbound)) { Lisp_Object args[4]; - args[0] = Vx_sent_selection_functions; + args[0] = Qx_sent_selection_functions; args[1] = selection_symbol; args[2] = target_symbol; args[3] = success ? Qt : Qnil; @@ -979,7 +980,7 @@ x_handle_selection_clear (struct input_event *event) /* Run the `x-lost-selection-functions' abnormal hook. */ { Lisp_Object args[2]; - args[0] = Vx_lost_selection_functions; + args[0] = Qx_lost_selection_functions; args[1] = selection_symbol; Frun_hook_with_args (2, args); } @@ -1020,7 +1021,7 @@ x_clear_frame_selections (FRAME_PTR f) { /* Run the `x-lost-selection-functions' abnormal hook. */ Lisp_Object args[2]; - args[0] = Vx_lost_selection_functions; + args[0] = Qx_lost_selection_functions; args[1] = Fcar (Fcar (t->Vselection_alist)); Frun_hook_with_args (2, args); @@ -1033,7 +1034,7 @@ x_clear_frame_selections (FRAME_PTR f) && EQ (frame, XCAR (XCDR (XCDR (XCDR (XCAR (XCDR (rest)))))))) { Lisp_Object args[2]; - args[0] = Vx_lost_selection_functions; + args[0] = Qx_lost_selection_functions; args[1] = XCAR (XCAR (XCDR (rest))); Frun_hook_with_args (2, args); XSETCDR (rest, XCDR (XCDR (rest))); @@ -2679,4 +2680,6 @@ A value of 0 means wait as long as necessary. This is initialized from the DEFSYM (QNULL, "NULL"); DEFSYM (Qcompound_text_with_extensions, "compound-text-with-extensions"); DEFSYM (Qforeign_selection, "foreign-selection"); + DEFSYM (Qx_lost_selection_functions, "x-lost-selection-functions"); + DEFSYM (Qx_sent_selection_functions, "x-sent-selection-functions"); } -- 2.39.2