X-Git-Url: http://git.chise.org/gitweb/?a=blobdiff_plain;f=src%2Fselect-x.c;h=aea4aa43c7aef79d4931ed01e863ca6d840d7a69;hb=26c9e2e09a7ccc89afc02482d72a35984833792a;hp=79d2c70454f0b971360f869217b500086b35bca0;hpb=dd8f4c0e5ff27909836e7478df6b17d816a0db28;p=chise%2Fxemacs-chise.git- diff --git a/src/select-x.c b/src/select-x.c index 79d2c70..aea4aa4 100644 --- a/src/select-x.c +++ b/src/select-x.c @@ -84,7 +84,7 @@ static void lisp_data_to_selection_data (struct device *, unsigned int *size_ret, int *format_ret); static Lisp_Object selection_data_to_lisp_data (struct device *, - unsigned char *data, + Extbyte *data, size_t size, Atom type, int format); @@ -139,9 +139,7 @@ symbol_to_x_atom (struct device *d, Lisp_Object sym, int only_if_exists) { const char *nameext; - TO_EXTERNAL_FORMAT (LISP_STRING, Fsymbol_name (sym), - C_STRING_ALLOCA, nameext, - Qctext); + LISP_STRING_TO_EXTERNAL (Fsymbol_name (sym), nameext, Qctext); return XInternAtom (display, nameext, only_if_exists ? True : False); } } @@ -228,7 +226,7 @@ x_own_selection (Lisp_Object selection_name, Lisp_Object selection_value, That assumed equivalence of time_t and Time, which is not necessarily the case (e.g. under OSF on the Alphas, where Time is a 64-bit quantity and time_t is a 32-bit quantity). - + Opaque pointers are the clean way to go here. */ selection_time = make_opaque (&thyme, sizeof (thyme)); @@ -286,8 +284,8 @@ hack_motif_clipboard_selection (Atom selection_atom, #endif XmString fmh; String encoding = "STRING"; - const Extbyte *data = XSTRING_DATA (selection_value); - Extcount bytes = XSTRING_LENGTH (selection_value); + const Bufbyte *data = XSTRING_DATA (selection_value); + Bytecount bytes = XSTRING_LENGTH (selection_value); #ifdef MULE { @@ -378,7 +376,7 @@ motif_clipboard_cb (Widget widget, int *data_id, int *private_id, int *reason) /* Whichever lazy git wrote this originally just called abort() when anything didn't go their way... */ - + /* Try some other text types */ if (NILP (selection)) selection = select_convert_out (QCLIPBOARD, QSTRING, Qnil); @@ -386,7 +384,7 @@ motif_clipboard_cb (Widget widget, int *data_id, int *private_id, int *reason) selection = select_convert_out (QCLIPBOARD, QTEXT, Qnil); if (NILP (selection)) selection = select_convert_out (QCLIPBOARD, QCOMPOUND_TEXT, Qnil); - + if (CONSP (selection) && SYMBOLP (XCAR (selection)) && (EQ (XCAR (selection), QSTRING) || EQ (XCAR (selection), QTEXT) @@ -400,8 +398,8 @@ motif_clipboard_cb (Widget widget, int *data_id, int *private_id, int *reason) if (!STRINGP (selection)) signal_error (Qselection_conversion_error, build_string ("couldn't convert selection to string")); - - + + XmClipboardCopyByName (dpy, window, *data_id, (char *) XSTRING_DATA (selection), XSTRING_LENGTH (selection) + 1, @@ -600,7 +598,7 @@ x_handle_selection_request (XSelectionRequestEvent *event) } local_selection_time = * (Time *) XOPAQUE_DATA (temp_obj); - + if (event->time != CurrentTime && local_selection_time > event->time) { @@ -632,14 +630,14 @@ x_handle_selection_request (XSelectionRequestEvent *event) Atom type; lisp_data_to_selection_data (d, converted_selection, &data, &type, &size, &format); - + x_reply_selection_request (event, format, data, size, type); successful_p = Qt; /* Tell x_selection_request_lisp_error() it's cool. */ event->type = 0; xfree (data); } - + unbind_to (count, Qnil); DONE_LABEL: @@ -682,7 +680,7 @@ x_handle_selection_clear (XSelectionClearEvent *event) /* We don't own the selection, so that's fine. */ if (NILP (local_selection_time_lisp)) return; - + local_selection_time = * (Time *) XOPAQUE_DATA (local_selection_time_lisp); /* This SelectionClear is for a selection that we no longer own, so we can @@ -692,7 +690,7 @@ x_handle_selection_clear (XSelectionClearEvent *event) if (changed_owner_time != CurrentTime && local_selection_time > changed_owner_time) return; - + handle_selection_clear (selection_symbol); } @@ -950,11 +948,11 @@ x_get_foreign_selection (Lisp_Object selection_symbol, Lisp_Object target_type) static void x_get_window_property (Display *display, Window window, Atom property, - unsigned char **data_ret, int *bytes_ret, + Extbyte **data_ret, int *bytes_ret, Atom *actual_type_ret, int *actual_format_ret, unsigned long *actual_size_ret, int delete_p) { - int total_size; + size_t total_size; unsigned long bytes_remaining; int offset = 0; unsigned char *tmp_data = 0; @@ -985,7 +983,7 @@ x_get_window_property (Display *display, Window window, Atom property, } total_size = bytes_remaining + 1; - *data_ret = (unsigned char *) xmalloc (total_size); + *data_ret = (Extbyte *) xmalloc (total_size); /* Now read, until we've gotten it all. */ while (bytes_remaining) @@ -1022,7 +1020,7 @@ receive_incremental_selection (Display *display, Window window, Atom property, /* this one is for error messages only */ Lisp_Object target_type, unsigned int min_size_bytes, - unsigned char **data_ret, int *size_bytes_ret, + Extbyte **data_ret, int *size_bytes_ret, Atom *type_ret, int *format_ret, unsigned long *size_ret) { @@ -1030,7 +1028,7 @@ receive_incremental_selection (Display *display, Window window, Atom property, int offset = 0; int prop_id; *size_bytes_ret = min_size_bytes; - *data_ret = (unsigned char *) xmalloc (*size_bytes_ret); + *data_ret = (Extbyte *) xmalloc (*size_bytes_ret); #if 0 stderr_out ("\nread INCR %d\n", min_size_bytes); #endif @@ -1046,7 +1044,7 @@ receive_incremental_selection (Display *display, Window window, Atom property, PropertyNewValue); while (1) { - unsigned char *tmp_data; + Extbyte *tmp_data; int tmp_size_bytes; wait_for_property_change (prop_id); /* expect it again immediately, because x_get_window_property may @@ -1078,7 +1076,7 @@ receive_incremental_selection (Display *display, Window window, Atom property, *size_bytes_ret, offset + tmp_size_bytes); #endif *size_bytes_ret = offset + tmp_size_bytes; - *data_ret = (unsigned char *) xrealloc (*data_ret, *size_bytes_ret); + *data_ret = (Extbyte *) xrealloc (*data_ret, *size_bytes_ret); } memcpy ((*data_ret) + offset, tmp_data, tmp_size_bytes); offset += tmp_size_bytes; @@ -1099,7 +1097,7 @@ x_get_window_property_as_lisp_data (Display *display, Atom actual_type; int actual_format; unsigned long actual_size; - unsigned char *data = NULL; + Extbyte *data = NULL; int bytes = 0; Lisp_Object val; struct device *d = get_device_from_display (display); @@ -1181,7 +1179,7 @@ x_get_window_property_as_lisp_data (Display *display, static Lisp_Object selection_data_to_lisp_data (struct device *d, - unsigned char *data, + Extbyte *data, size_t size, Atom type, int format) @@ -1546,7 +1544,7 @@ Return the value of the named CUTBUFFER (typically CUT_BUFFER0). Display *display = DEVICE_X_DISPLAY (d); Window window = RootWindow (display, 0); /* Cutbuffers are on frame 0 */ Atom cut_buffer_atom; - unsigned char *data; + Extbyte *data; int bytes; Atom type; int format; @@ -1588,9 +1586,9 @@ Set the value of the named CUTBUFFER (typically CUT_BUFFER0) to STRING. Display *display = DEVICE_X_DISPLAY (d); Window window = RootWindow (display, 0); /* Cutbuffers are on frame 0 */ Atom cut_buffer_atom; - const Extbyte *data = XSTRING_DATA (string); - Extcount bytes = XSTRING_LENGTH (string); - Extcount bytes_remaining; + const Bufbyte *data = XSTRING_DATA (string); + Bytecount bytes = XSTRING_LENGTH (string); + Bytecount bytes_remaining; int max_bytes = SELECTION_QUANTUM (display); #ifdef MULE const Bufbyte *ptr, *end;