/* X Selection processing for Emacs.
- Copyright (C) 1993, 1994, 1995, 1996 Free Software Foundation.
+ Copyright (C) 1993, 1994, 1995, 1996, 1997 Free Software Foundation.
This file is part of GNU Emacs.
/* Indicate we have successfully processed this event. */
x_selection_current_request = 0;
- /* Use free, not XFree, because lisp_data_to_selection_data
+ /* Use xfree, not XFree, because lisp_data_to_selection_data
calls xmalloc itself. */
if (!nofree)
- free (data);
+ xfree (data);
}
unbind_to (count, Qnil);
prev->next = rest->next;
else
property_change_wait_list = rest->next;
- free (rest);
+ xfree (rest);
return;
}
prev = rest;
prev->next = rest->next;
else
property_change_wait_list = rest->next;
- free (rest);
+ xfree (rest);
return;
}
prev = rest;
\f
/* Subroutines of x_get_window_property_as_lisp_data */
-/* Use free, not XFree, to free the data obtained with this function. */
+/* Use xfree, 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 free, not XFree, to free the data obtained with this function. */
+/* Use xfree, 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 free, not XFree, because x_get_window_property
+ /* Use xfree, not XFree, because x_get_window_property
calls xmalloc itself. */
- if (tmp_data) free (tmp_data);
+ if (tmp_data) xfree (tmp_data);
break;
}
}
bcopy (tmp_data, (*data_ret) + offset, tmp_size_bytes);
offset += tmp_size_bytes;
- /* Use free, not XFree, because x_get_window_property
+ /* Use xfree, not XFree, because x_get_window_property
calls xmalloc itself. */
- free (tmp_data);
+ xfree (tmp_data);
}
}
\f
unsigned int min_size_bytes = * ((unsigned int *) data);
BLOCK_INPUT;
- /* Use free, not XFree, because x_get_window_property
+ /* Use xfree, not XFree, because x_get_window_property
calls xmalloc itself. */
- free ((char *) data);
+ xfree ((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 free, not XFree, because x_get_window_property
+ /* Use xfree, not XFree, because x_get_window_property
calls xmalloc itself. */
- free ((char *) data);
+ xfree ((char *) data);
return val;
}
\f
}
}
if (!require_encoding)
- str = make_string ((char *) data, size);
+ str = make_unibyte_string ((char *) data, size);
else
{
- int bufsize, dummy;
+ int bufsize;
unsigned char *buf;
struct coding_system coding;
setup_coding_system
(Fcheck_coding_system(Vclipboard_coding_system), &coding);
- coding.last_block = 1;
+ coding.mode |= CODING_MODE_LAST_BLOCK;
bufsize = decoding_buffer_size (&coding, size);
buf = (unsigned char *) xmalloc (bufsize);
- size = decode_coding (&coding, data, buf, size, bufsize, &dummy);
- str = make_string ((char *) buf, size);
- free (buf);
+ decode_coding (&coding, data, buf, size, bufsize);
+ str = make_multibyte_string ((char *) buf,
+ coding.produced_char, coding.produced);
+ xfree (buf);
}
return str;
}
}
-/* Use free, not XFree, to free the data obtained with this function. */
+/* Use xfree, not XFree, to free the data obtained with this function. */
static void
lisp_data_to_selection_data (display, obj,
int num;
*format_ret = 8;
- *size_ret = XSTRING (obj)->size;
+ *size_ret = XSTRING (obj)->size_byte;
*data_ret = XSTRING (obj)->data;
bzero (charsets, (MAX_CHARSET + 1) * sizeof (int));
num = ((*size_ret <= 1 /* Check the possibility of short cut. */
The format is compatible with what the target `STRING'
expects if OBJ contains only ASCII and Latin-1
characters. */
- int bufsize, dummy;
+ int bufsize;
unsigned char *buf;
struct coding_system coding;
setup_coding_system
(Fcheck_coding_system (Vclipboard_coding_system), &coding);
- coding.last_block = 1;
+ coding.mode |= CODING_MODE_LAST_BLOCK;
bufsize = encoding_buffer_size (&coding, *size_ret);
buf = (unsigned char *) xmalloc (bufsize);
- *size_ret = encode_coding (&coding, *data_ret, buf,
- *size_ret, bufsize, &dummy);
+ encode_coding (&coding, *data_ret, buf, *size_ret, bufsize);
+ *size_ret = coding.produced;
*data_ret = buf;
if (charsets[charset_latin_iso8859_1]
&& (num == 1 || (num == 2 && charsets[CHARSET_ASCII])))
{
Time timestamp;
Atom selection_atom;
- XSelectionClearEvent event;
+ struct selection_input_event event;
Display *display;
struct x_display_info *dpyinfo;
SELECTION_EVENT_DISPLAY (&event) = display;
SELECTION_EVENT_SELECTION (&event) = selection_atom;
SELECTION_EVENT_TIME (&event) = timestamp;
- x_handle_selection_clear (&event);
+ x_handle_selection_clear ((struct input_event *) &event);
return Qt;
}
Fcons (make_number (format), Qnil))));
ret = (bytes ? make_string ((char *) data, bytes) : Qnil);
- /* Use free, not XFree, because x_get_window_property
+ /* Use xfree, not XFree, because x_get_window_property
calls xmalloc itself. */
- free (data);
+ xfree (data);
return ret;
}
buffer_atom = symbol_to_x_atom (FRAME_X_DISPLAY_INFO (selected_frame),
display, buffer);
data = (unsigned char *) XSTRING (string)->data;
- bytes = XSTRING (string)->size;
+ bytes = XSTRING (string)->size_byte;
bytes_remaining = bytes;
if (! FRAME_X_DISPLAY_INFO (selected_frame)->cut_buffers_initialized)
DEFUN ("x-rotate-cut-buffers-internal", Fx_rotate_cut_buffers_internal,
Sx_rotate_cut_buffers_internal, 1, 1, 0,
- "Rotate the values of the cut buffers by the given number of steps;\n\
-positive means move values forward, negative means backward.")
+ "Rotate the values of the cut buffers by the given number of step.\n\
+Positive means shift the values forward, negative means backward.")
(n)
Lisp_Object n;
{
"Coding system for communicating with other X clients.\n\
When sending or receiving text via cut_buffer, selection, and clipboard,\n\
the text is encoded or decoded by this coding system.\n\
-A default value is `iso-latin-1'");
- Vclipboard_coding_system=intern ("iso-latin-1");
+A default value is `compound-text'");
+ Vclipboard_coding_system=intern ("compound-text");
staticpro(&Vclipboard_coding_system);
DEFVAR_INT ("x-selection-timeout", &x_selection_timeout,