/* X Selection processing for Emacs.
- Copyright (C) 1993, 1994, 1995 Free Software Foundation.
+ Copyright (C) 1993, 1994, 1995, 1996 Free Software Foundation.
This file is part of GNU Emacs.
#include "frame.h" /* Need this to get the X window of selected_frame */
#include "blockinput.h"
-#define xfree free
-
#define CUT_BUFFER_SUPPORT
Lisp_Object QPRIMARY, QSECONDARY, QSTRING, QINTEGER, QCLIPBOARD, QTIMESTAMP,
#endif
/* The timestamp of the last input event Emacs received from the X server. */
-unsigned long last_event_timestamp;
+/* Defined in keyboard.c. */
+extern unsigned long last_event_timestamp;
/* This is an association list whose elements are of the form
( SELECTION-NAME SELECTION-VALUE SELECTION-TIMESTAMP FRAME)
/* Indicate we have successfully processed this event. */
x_selection_current_request = 0;
- /* Use xfree, not XFree, because lisp_data_to_selection_data
+ /* Use free, not XFree, because lisp_data_to_selection_data
calls xmalloc itself. */
if (!nofree)
- xfree (data);
+ free (data);
}
unbind_to (count, Qnil);
{
for (; CONSP (hooks); hooks = Fcdr (hooks))
call1 (Fcar (hooks), selection_symbol);
+#if 0 /* This can crash when deleting a frame
+ from x_connection_closed. Anyway, it seems unnecessary;
+ something else should cause a redisplay. */
redisplay_preserve_echo_area ();
+#endif
}
Vselection_alist = Fcdr (Vselection_alist);
{
for (; CONSP (hooks); hooks = Fcdr (hooks))
call1 (Fcar (hooks), selection_symbol);
+#if 0 /* See above */
redisplay_preserve_echo_area ();
+#endif
}
XCONS (rest)->cdr = Fcdr (XCONS (rest)->cdr);
break;
prev->next = rest->next;
else
property_change_wait_list = rest->next;
- xfree (rest);
+ free (rest);
return;
}
prev = rest;
prev->next = rest->next;
else
property_change_wait_list = rest->next;
- xfree (rest);
+ free (rest);
return;
}
prev = rest;
\f
/* Subroutines of x_get_window_property_as_lisp_data */
-/* Use xfree, not XFree, to free the data obtained with this function. */
+/* Use free, not XFree, to free the data obtained with this function. */
static void
x_get_window_property (display, window, property, data_ret, bytes_ret,
*bytes_ret = offset;
}
\f
-/* Use xfree, not XFree, to free the data obtained with this function. */
+/* Use free, not XFree, to free the data obtained with this function. */
static void
receive_incremental_selection (display, window, property, target_type,
if (! waiting_for_other_props_on_window (display, window))
XSelectInput (display, window, STANDARD_EVENT_SET);
unexpect_property_change (wait_object);
- /* Use xfree, not XFree, because x_get_window_property
+ /* Use free, not XFree, because x_get_window_property
calls xmalloc itself. */
- if (tmp_data) xfree (tmp_data);
+ if (tmp_data) free (tmp_data);
break;
}
}
bcopy (tmp_data, (*data_ret) + offset, tmp_size_bytes);
offset += tmp_size_bytes;
- /* Use xfree, not XFree, because x_get_window_property
+ /* Use free, not XFree, because x_get_window_property
calls xmalloc itself. */
- xfree (tmp_data);
+ free (tmp_data);
}
}
\f
unsigned int min_size_bytes = * ((unsigned int *) data);
BLOCK_INPUT;
- /* Use xfree, not XFree, because x_get_window_property
+ /* Use free, not XFree, because x_get_window_property
calls xmalloc itself. */
- xfree ((char *) data);
+ free ((char *) data);
UNBLOCK_INPUT;
receive_incremental_selection (display, window, property, target_type,
min_size_bytes, &data, &bytes,
val = selection_data_to_lisp_data (display, data, bytes,
actual_type, actual_format);
- /* Use xfree, not XFree, because x_get_window_property
+ /* Use free, not XFree, because x_get_window_property
calls xmalloc itself. */
- xfree ((char *) data);
+ free ((char *) data);
return val;
}
\f
}
-/* Use xfree, not XFree, to free the data obtained with this function. */
+/* Use free, not XFree, to free the data obtained with this function. */
static void
lisp_data_to_selection_data (display, obj,
Fcons (make_number (format), Qnil))));
ret = (bytes ? make_string ((char *) data, bytes) : Qnil);
- /* Use xfree, not XFree, because x_get_window_property
+ /* Use free, not XFree, because x_get_window_property
calls xmalloc itself. */
- xfree (data);
+ free (data);
return ret;
}