Mercurial > hg > xemacs-beta
comparison src/glyphs-x.c @ 4981:4aebb0131297
Cleanups/renaming of EXTERNAL_TO_C_STRING and friends
-------------------- ChangeLog entries follow: --------------------
modules/ChangeLog addition:
2010-02-05 Ben Wing <ben@xemacs.org>
* postgresql/postgresql.c:
* postgresql/postgresql.c (CHECK_LIVE_CONNECTION):
* postgresql/postgresql.c (Fpq_connectdb):
* postgresql/postgresql.c (Fpq_connect_start):
* postgresql/postgresql.c (Fpq_lo_import):
* postgresql/postgresql.c (Fpq_lo_export):
* ldap/eldap.c (Fldap_open):
* ldap/eldap.c (Fldap_search_basic):
* ldap/eldap.c (Fldap_add):
* ldap/eldap.c (Fldap_modify):
* ldap/eldap.c (Fldap_delete):
* canna/canna_api.c (Fcanna_initialize):
* canna/canna_api.c (Fcanna_store_yomi):
* canna/canna_api.c (Fcanna_parse):
* canna/canna_api.c (Fcanna_henkan_begin):
EXTERNAL_TO_C_STRING returns its argument instead of storing it
in a parameter, and is renamed to EXTERNAL_TO_ITEXT. Similar
things happen to related macros. See entry in src/ChangeLog.
More Mule-izing of postgresql.c. Extract out common code
between `pq-connectdb' and `pq-connect-start'. Fix places
that signal an error string using a formatted string to instead
follow the standard and have a fixed reason followed by the
particular error message stored as one of the frobs.
src/ChangeLog addition:
2010-02-05 Ben Wing <ben@xemacs.org>
* console-msw.c (write_string_to_mswindows_debugging_output):
* console-msw.c (Fmswindows_message_box):
* console-x.c (x_perhaps_init_unseen_key_defaults):
* console.c:
* database.c (dbm_get):
* database.c (dbm_put):
* database.c (dbm_remove):
* database.c (berkdb_get):
* database.c (berkdb_put):
* database.c (berkdb_remove):
* database.c (Fopen_database):
* device-gtk.c (gtk_init_device):
* device-msw.c (msprinter_init_device_internal):
* device-msw.c (msprinter_default_printer):
* device-msw.c (msprinter_init_device):
* device-msw.c (sync_printer_with_devmode):
* device-msw.c (Fmsprinter_select_settings):
* device-x.c (sanity_check_geometry_resource):
* device-x.c (Dynarr_add_validified_lisp_string):
* device-x.c (x_init_device):
* device-x.c (Fx_put_resource):
* device-x.c (Fx_valid_keysym_name_p):
* device-x.c (Fx_set_font_path):
* dialog-msw.c (push_lisp_string_as_unicode):
* dialog-msw.c (handle_directory_dialog_box):
* dialog-msw.c (handle_file_dialog_box):
* dialog-x.c (dbox_descriptor_to_widget_value):
* editfns.c (Fformat_time_string):
* editfns.c (Fencode_time):
* editfns.c (Fset_time_zone_rule):
* emacs.c (make_argc_argv):
* emacs.c (Fdump_emacs):
* emodules.c (emodules_load):
* eval.c:
* eval.c (maybe_signal_error_1):
* event-msw.c (Fdde_alloc_advise_item):
* event-msw.c (mswindows_dde_callback):
* event-msw.c (mswindows_wnd_proc):
* fileio.c (report_error_with_errno):
* fileio.c (Fsysnetunam):
* fileio.c (Fdo_auto_save):
* font-mgr.c (extract_fcapi_string):
* font-mgr.c (Ffc_config_app_font_add_file):
* font-mgr.c (Ffc_config_app_font_add_dir):
* font-mgr.c (Ffc_config_filename):
* frame-gtk.c (gtk_set_frame_text_value):
* frame-gtk.c (gtk_create_widgets):
* frame-msw.c (mswindows_init_frame_1):
* frame-msw.c (mswindows_set_title_from_ibyte):
* frame-msw.c (msprinter_init_frame_3):
* frame-x.c (x_set_frame_text_value):
* frame-x.c (x_set_frame_properties):
* frame-x.c (start_drag_internal_1):
* frame-x.c (x_cde_transfer_callback):
* frame-x.c (x_create_widgets):
* glyphs-eimage.c (my_jpeg_output_message):
* glyphs-eimage.c (jpeg_instantiate):
* glyphs-eimage.c (gif_instantiate):
* glyphs-eimage.c (png_instantiate):
* glyphs-eimage.c (tiff_instantiate):
* glyphs-gtk.c (xbm_instantiate_1):
* glyphs-gtk.c (gtk_xbm_instantiate):
* glyphs-gtk.c (gtk_xpm_instantiate):
* glyphs-gtk.c (gtk_xface_instantiate):
* glyphs-gtk.c (cursor_font_instantiate):
* glyphs-gtk.c (gtk_redisplay_widget):
* glyphs-gtk.c (gtk_widget_instantiate_1):
* glyphs-gtk.c (gtk_add_tab_item):
* glyphs-msw.c (mswindows_xpm_instantiate):
* glyphs-msw.c (bmp_instantiate):
* glyphs-msw.c (mswindows_resource_instantiate):
* glyphs-msw.c (xbm_instantiate_1):
* glyphs-msw.c (mswindows_xbm_instantiate):
* glyphs-msw.c (mswindows_xface_instantiate):
* glyphs-msw.c (mswindows_redisplay_widget):
* glyphs-msw.c (mswindows_widget_instantiate):
* glyphs-msw.c (add_tree_item):
* glyphs-msw.c (add_tab_item):
* glyphs-msw.c (mswindows_combo_box_instantiate):
* glyphs-msw.c (mswindows_widget_query_string_geometry):
* glyphs-x.c (x_locate_pixmap_file):
* glyphs-x.c (xbm_instantiate_1):
* glyphs-x.c (x_xbm_instantiate):
* glyphs-x.c (extract_xpm_color_names):
* glyphs-x.c (x_xpm_instantiate):
* glyphs-x.c (x_xface_instantiate):
* glyphs-x.c (autodetect_instantiate):
* glyphs-x.c (safe_XLoadFont):
* glyphs-x.c (cursor_font_instantiate):
* glyphs-x.c (x_redisplay_widget):
* glyphs-x.c (Fchange_subwindow_property):
* glyphs-x.c (x_widget_instantiate):
* glyphs-x.c (x_tab_control_redisplay):
* glyphs.c (pixmap_to_lisp_data):
* gui-x.c (menu_separator_style_and_to_external):
* gui-x.c (add_accel_and_to_external):
* gui-x.c (button_item_to_widget_value):
* hpplay.c (player_error_internal):
* hpplay.c (play_sound_file):
* hpplay.c (play_sound_data):
* intl.c (Fset_current_locale):
* lisp.h:
* menubar-gtk.c (gtk_xemacs_set_accel_keys):
* menubar-msw.c (populate_menu_add_item):
* menubar-msw.c (populate_or_checksum_helper):
* menubar-x.c (menu_item_descriptor_to_widget_value_1):
* nt.c (init_user_info):
* nt.c (get_long_basename):
* nt.c (nt_get_resource):
* nt.c (init_mswindows_environment):
* nt.c (get_cached_volume_information):
* nt.c (mswindows_readdir):
* nt.c (read_unc_volume):
* nt.c (mswindows_stat):
* nt.c (mswindows_getdcwd):
* nt.c (mswindows_executable_type):
* nt.c (Fmswindows_short_file_name):
* ntplay.c (nt_play_sound_file):
* objects-gtk.c:
* objects-gtk.c (gtk_valid_color_name_p):
* objects-gtk.c (gtk_initialize_font_instance):
* objects-gtk.c (gtk_font_list):
* objects-msw.c (font_enum_callback_2):
* objects-msw.c (parse_font_spec):
* objects-x.c (x_parse_nearest_color):
* objects-x.c (x_valid_color_name_p):
* objects-x.c (x_initialize_font_instance):
* objects-x.c (x_font_instance_truename):
* objects-x.c (x_font_list):
* objects-xlike-inc.c (XFUN):
* objects-xlike-inc.c (xft_find_charset_font):
* process-nt.c (mswindows_report_winsock_error):
* process-nt.c (nt_create_process):
* process-nt.c (get_internet_address):
* process-nt.c (nt_open_network_stream):
* process-unix.c:
* process-unix.c (allocate_pty):
* process-unix.c (get_internet_address):
* process-unix.c (unix_canonicalize_host_name):
* process-unix.c (unix_open_network_stream):
* realpath.c:
* select-common.h (lisp_data_to_selection_data):
* select-gtk.c (symbol_to_gtk_atom):
* select-gtk.c (atom_to_symbol):
* select-msw.c (symbol_to_ms_cf):
* select-msw.c (mswindows_register_selection_data_type):
* select-x.c (symbol_to_x_atom):
* select-x.c (x_atom_to_symbol):
* select-x.c (hack_motif_clipboard_selection):
* select-x.c (Fx_store_cutbuffer_internal):
* sound.c (Fplay_sound_file):
* sound.c (Fplay_sound):
* sound.h (sound_perror):
* sysdep.c:
* sysdep.c (qxe_allocating_getcwd):
* sysdep.c (qxe_execve):
* sysdep.c (copy_in_passwd):
* sysdep.c (qxe_getpwnam):
* sysdep.c (qxe_ctime):
* sysdll.c (dll_open):
* sysdll.c (dll_function):
* sysdll.c (dll_variable):
* sysdll.c (search_linked_libs):
* sysdll.c (dll_error):
* sysfile.h:
* sysfile.h (PATHNAME_CONVERT_OUT_TSTR):
* sysfile.h (PATHNAME_CONVERT_OUT_UTF_8):
* sysfile.h (PATHNAME_CONVERT_OUT):
* sysfile.h (LISP_PATHNAME_CONVERT_OUT):
* syswindows.h (ITEXT_TO_TSTR):
* syswindows.h (LOCAL_FILE_FORMAT_TO_TSTR):
* syswindows.h (TSTR_TO_LOCAL_FILE_FORMAT):
* syswindows.h (LOCAL_FILE_FORMAT_TO_INTERNAL_MSWIN):
* syswindows.h (LISP_LOCAL_FILE_FORMAT_MAYBE_URL_TO_TSTR):
* text.h:
* text.h (eicpy_ext_len):
* text.h (enum new_dfc_src_type):
* text.h (EXTERNAL_TO_ITEXT):
* text.h (GET_STRERROR):
* tooltalk.c (check_status):
* tooltalk.c (Fadd_tooltalk_message_arg):
* tooltalk.c (Fadd_tooltalk_pattern_attribute):
* tooltalk.c (Fadd_tooltalk_pattern_arg):
* win32.c (tstr_to_local_file_format):
* win32.c (mswindows_lisp_error_1):
* win32.c (mswindows_report_process_error):
* win32.c (Fmswindows_shell_execute):
* win32.c (mswindows_read_link_1):
Changes involving external/internal format conversion,
mostly code cleanup and renaming.
1. Eliminate the previous macros like LISP_STRING_TO_EXTERNAL
that stored its result in a parameter. The new version of
LISP_STRING_TO_EXTERNAL returns its result through the
return value, same as the previous NEW_LISP_STRING_TO_EXTERNAL.
Use the new-style macros throughout the code.
2. Rename C_STRING_TO_EXTERNAL and friends to ITEXT_TO_EXTERNAL,
in keeping with overall naming rationalization involving
Itext and related types.
Macros involved in previous two:
EXTERNAL_TO_C_STRING -> EXTERNAL_TO_ITEXT
EXTERNAL_TO_C_STRING_MALLOC -> EXTERNAL_TO_ITEXT_MALLOC
SIZED_EXTERNAL_TO_C_STRING -> SIZED_EXTERNAL_TO_ITEXT
SIZED_EXTERNAL_TO_C_STRING_MALLOC -> SIZED_EXTERNAL_TO_ITEXT_MALLOC
C_STRING_TO_EXTERNAL -> ITEXT_TO_EXTERNAL
C_STRING_TO_EXTERNAL_MALLOC -> ITEXT_TO_EXTERNAL_MALLOC
LISP_STRING_TO_EXTERNAL
LISP_STRING_TO_EXTERNAL_MALLOC
LISP_STRING_TO_TSTR
C_STRING_TO_TSTR -> ITEXT_TO_TSTR
TSTR_TO_C_STRING -> TSTR_TO_ITEXT
The following four still return their values through parameters,
since they have more than one value to return:
C_STRING_TO_SIZED_EXTERNAL -> ITEXT_TO_SIZED_EXTERNAL
LISP_STRING_TO_SIZED_EXTERNAL
C_STRING_TO_SIZED_EXTERNAL_MALLOC -> ITEXT_TO_SIZED_EXTERNAL_MALLOC
LISP_STRING_TO_SIZED_EXTERNAL_MALLOC
Sometimes additional casts had to be inserted, since the old
macros played strange games and completely defeated the type system
of the store params.
3. Rewrite many places where direct calls to TO_EXTERNAL_FORMAT
occurred with calls to one of the convenience macros listed above,
or to make_extstring().
4. Eliminate SIZED_C_STRING macros (they were hardly used, anyway)
and use a direct call to TO_EXTERNAL_FORMAT or TO_INTERNAL_FORMAT.
4. Use LISP_PATHNAME_CONVERT_OUT in many places instead of something
like LISP_STRING_TO_EXTERNAL(..., Qfile_name).
5. Eliminate some temporary variables that are no longer necessary
now that we return a value rather than storing it into a variable.
6. Some Mule-izing in database.c.
7. Error functions:
-- A bit of code cleanup in maybe_signal_error_1.
-- Eliminate report_file_type_error; it's just an alias for
signal_error_2 with params in a different order.
-- Fix some places in the hostname-handling code that directly
inserted externally-retrieved error strings into the
supposed ASCII "reason" param instead of doing the right thing
and sticking text descriptive of what was going on in "reason"
and putting the external message in a frob.
8. Use Ascbyte instead of CIbyte in process-unix.c and maybe one
or two other places.
9. Some code cleanup in copy_in_passwd() in sysdep.c.
10. Fix a real bug due to accidental variable shadowing in
tstr_to_local_file_format() in win32.c.
author | Ben Wing <ben@xemacs.org> |
---|---|
date | Fri, 05 Feb 2010 11:02:24 -0600 |
parents | cbe181529c34 |
children | 3c3c1d139863 |
comparison
equal
deleted
inserted
replaced
4972:c448f4c38d65 | 4981:4aebb0131297 |
---|---|
592 if (path) | 592 if (path) |
593 { | 593 { |
594 Extbyte *pathext; | 594 Extbyte *pathext; |
595 SubstitutionRec subs[1]; | 595 SubstitutionRec subs[1]; |
596 subs[0].match = 'B'; | 596 subs[0].match = 'B'; |
597 LISP_STRING_TO_EXTERNAL (name, subs[0].substitution, Qfile_name); | 597 LISP_PATHNAME_CONVERT_OUT (name, subs[0].substitution); |
598 C_STRING_TO_EXTERNAL (path, pathext, Qfile_name); | 598 pathext = ITEXT_TO_EXTERNAL (path, Qfile_name); |
599 /* #### Motif uses a big hairy default if $XBMLANGPATH isn't set. | 599 /* #### Motif uses a big hairy default if $XBMLANGPATH isn't set. |
600 We don't. If you want it used, set it. */ | 600 We don't. If you want it used, set it. */ |
601 if (pathext && | 601 if (pathext && |
602 (pathext = XtResolvePathname (display, "bitmaps", 0, 0, pathext, | 602 (pathext = XtResolvePathname (display, "bitmaps", 0, 0, pathext, |
603 subs, XtNumber (subs), 0))) | 603 subs, XtNumber (subs), 0))) |
618 "bitmapFilePath", "BitmapFilePath", &type, &value) | 618 "bitmapFilePath", "BitmapFilePath", &type, &value) |
619 && !strcmp (type, "String")) | 619 && !strcmp (type, "String")) |
620 { | 620 { |
621 Ibyte *path; | 621 Ibyte *path; |
622 | 622 |
623 EXTERNAL_TO_C_STRING (value.addr, path, Qfile_name); | 623 path = EXTERNAL_TO_ITEXT (value.addr, Qfile_name); |
624 Vx_bitmap_file_path = split_env_path (0, path); | 624 Vx_bitmap_file_path = split_env_path (0, path); |
625 } | 625 } |
626 Vx_bitmap_file_path = nconc2 (Vx_bitmap_file_path, | 626 Vx_bitmap_file_path = nconc2 (Vx_bitmap_file_path, |
627 (split_external_path (BITMAPDIR))); | 627 (split_external_path (BITMAPDIR))); |
628 } | 628 } |
1226 | 1226 |
1227 if (!NILP (mask_data)) | 1227 if (!NILP (mask_data)) |
1228 { | 1228 { |
1229 CBinbyte *ext_data; | 1229 CBinbyte *ext_data; |
1230 | 1230 |
1231 LISP_STRING_TO_EXTERNAL (XCAR (XCDR (XCDR (mask_data))), ext_data, | 1231 ext_data = LISP_STRING_TO_EXTERNAL (XCAR (XCDR (XCDR (mask_data))), |
1232 Qbinary); | 1232 Qbinary); |
1233 mask = pixmap_from_xbm_inline (IMAGE_INSTANCE_DEVICE (ii), | 1233 mask = pixmap_from_xbm_inline (IMAGE_INSTANCE_DEVICE (ii), |
1234 XINT (XCAR (mask_data)), | 1234 XINT (XCAR (mask_data)), |
1235 XINT (XCAR (XCDR (mask_data))), | 1235 XINT (XCAR (XCDR (mask_data))), |
1236 ext_data); | 1236 ext_data); |
1237 } | 1237 } |
1251 Lisp_Object data = find_keyword_in_vector (instantiator, Q_data); | 1251 Lisp_Object data = find_keyword_in_vector (instantiator, Q_data); |
1252 CBinbyte *ext_data; | 1252 CBinbyte *ext_data; |
1253 | 1253 |
1254 assert (!NILP (data)); | 1254 assert (!NILP (data)); |
1255 | 1255 |
1256 LISP_STRING_TO_EXTERNAL (XCAR (XCDR (XCDR (data))), ext_data, Qbinary); | 1256 ext_data = LISP_STRING_TO_EXTERNAL (XCAR (XCDR (XCDR (data))), Qbinary); |
1257 | 1257 |
1258 xbm_instantiate_1 (image_instance, instantiator, pointer_fg, | 1258 xbm_instantiate_1 (image_instance, instantiator, pointer_fg, |
1259 pointer_bg, dest_mask, XINT (XCAR (data)), | 1259 pointer_bg, dest_mask, XINT (XCAR (data)), |
1260 XINT (XCAR (XCDR (data))), ext_data); | 1260 XINT (XCAR (XCDR (data))), ext_data); |
1261 } | 1261 } |
1336 /* Duplicate the pixel value so that we still have a lock on it if | 1336 /* Duplicate the pixel value so that we still have a lock on it if |
1337 the pixel we were passed is later freed. */ | 1337 the pixel we were passed is later freed. */ |
1338 if (! XAllocColor (dpy, cmap, &color)) | 1338 if (! XAllocColor (dpy, cmap, &color)) |
1339 ABORT (); /* it must be allocable since we're just duplicating it */ | 1339 ABORT (); /* it must be allocable since we're just duplicating it */ |
1340 | 1340 |
1341 TO_EXTERNAL_FORMAT (LISP_STRING, XCAR (cons), C_STRING_MALLOC, | 1341 |
1342 symbols[i].name, Qctext); | 1342 symbols[i].name = LISP_STRING_TO_EXTERNAL_MALLOC (XCAR (cons), Qctext); |
1343 symbols[i].pixel = color.pixel; | 1343 symbols[i].pixel = color.pixel; |
1344 symbols[i].value = 0; | 1344 symbols[i].value = 0; |
1345 free_cons (cons); | 1345 free_cons (cons); |
1346 cons = results; | 1346 cons = results; |
1347 results = XCDR (results); | 1347 results = XCDR (results); |
1458 color_symbol_alist); | 1458 color_symbol_alist); |
1459 | 1459 |
1460 { | 1460 { |
1461 Extbyte *dataext; | 1461 Extbyte *dataext; |
1462 | 1462 |
1463 LISP_STRING_TO_EXTERNAL (data, dataext, Qctext); | 1463 dataext = LISP_STRING_TO_EXTERNAL (data, Qctext); |
1464 | 1464 |
1465 result = | 1465 result = |
1466 XpmCreatePixmapFromBuffer (dpy, | 1466 XpmCreatePixmapFromBuffer (dpy, |
1467 XtWindow | 1467 XtWindow |
1468 (DEVICE_XT_APP_SHELL (XDEVICE(device))), | 1468 (DEVICE_XT_APP_SHELL (XDEVICE(device))), |
1610 const CIbyte * volatile emsg = 0; | 1610 const CIbyte * volatile emsg = 0; |
1611 const Binbyte * volatile dstring; | 1611 const Binbyte * volatile dstring; |
1612 | 1612 |
1613 assert (!NILP (data)); | 1613 assert (!NILP (data)); |
1614 | 1614 |
1615 TO_EXTERNAL_FORMAT (LISP_STRING, data, | 1615 dstring = (const Binbyte *) LISP_STRING_TO_EXTERNAL (data, Qbinary); |
1616 C_STRING_ALLOCA, dstring, | |
1617 Qbinary); | |
1618 | 1616 |
1619 if ((p = (Binbyte *) strchr ((char *) dstring, ':'))) | 1617 if ((p = (Binbyte *) strchr ((char *) dstring, ':'))) |
1620 { | 1618 { |
1621 dstring = p + 1; | 1619 dstring = p + 1; |
1622 } | 1620 } |
1785 | 1783 |
1786 alist = tagged_vector_to_alist (instantiator); | 1784 alist = tagged_vector_to_alist (instantiator); |
1787 if (dest_mask & IMAGE_POINTER_MASK) | 1785 if (dest_mask & IMAGE_POINTER_MASK) |
1788 { | 1786 { |
1789 const char *name_ext; | 1787 const char *name_ext; |
1790 LISP_STRING_TO_EXTERNAL (data, name_ext, Qfile_name); | 1788 LISP_PATHNAME_CONVERT_OUT (data, name_ext); |
1791 if (XmuCursorNameToIndex (name_ext) != -1) | 1789 if (XmuCursorNameToIndex (name_ext) != -1) |
1792 { | 1790 { |
1793 result = alist_to_tagged_vector (Qcursor_font, alist); | 1791 result = alist_to_tagged_vector (Qcursor_font, alist); |
1794 is_cursor_font = 1; | 1792 is_cursor_font = 1; |
1795 } | 1793 } |
1849 static Font | 1847 static Font |
1850 safe_XLoadFont (Display *dpy, Ibyte *name) | 1848 safe_XLoadFont (Display *dpy, Ibyte *name) |
1851 { | 1849 { |
1852 Font font; | 1850 Font font; |
1853 int (*old_handler) (Display *, XErrorEvent *); | 1851 int (*old_handler) (Display *, XErrorEvent *); |
1854 Extbyte *nameext; | |
1855 | 1852 |
1856 XLoadFont_got_error = 0; | 1853 XLoadFont_got_error = 0; |
1857 XSync (dpy, 0); | 1854 XSync (dpy, 0); |
1858 old_handler = XSetErrorHandler (XLoadFont_error_handler); | 1855 old_handler = XSetErrorHandler (XLoadFont_error_handler); |
1859 C_STRING_TO_EXTERNAL (name, nameext, Qfile_name); | 1856 font = XLoadFont (dpy, ITEXT_TO_EXTERNAL (name, Qfile_name)); |
1860 font = XLoadFont (dpy, nameext); | |
1861 XSync (dpy, 0); | 1857 XSync (dpy, 0); |
1862 XSetErrorHandler (old_handler); | 1858 XSetErrorHandler (old_handler); |
1863 if (XLoadFont_got_error) return 0; | 1859 if (XLoadFont_got_error) return 0; |
1864 return font; | 1860 return font; |
1865 } | 1861 } |
1988 dpy = DEVICE_X_DISPLAY (XDEVICE (device)); | 1984 dpy = DEVICE_X_DISPLAY (XDEVICE (device)); |
1989 | 1985 |
1990 if (!(dest_mask & IMAGE_POINTER_MASK)) | 1986 if (!(dest_mask & IMAGE_POINTER_MASK)) |
1991 incompatible_image_types (instantiator, dest_mask, IMAGE_POINTER_MASK); | 1987 incompatible_image_types (instantiator, dest_mask, IMAGE_POINTER_MASK); |
1992 | 1988 |
1993 LISP_STRING_TO_EXTERNAL (data, name_ext, Qfile_name); | 1989 LISP_PATHNAME_CONVERT_OUT (data, name_ext); |
1994 if ((i = XmuCursorNameToIndex (name_ext)) == -1) | 1990 if ((i = XmuCursorNameToIndex (name_ext)) == -1) |
1995 invalid_argument ("Unrecognized cursor-font name", data); | 1991 invalid_argument ("Unrecognized cursor-font name", data); |
1996 | 1992 |
1997 x_initialize_pixmap_image_instance (ii, 1, IMAGE_POINTER); | 1993 x_initialize_pixmap_image_instance (ii, 1, IMAGE_POINTER); |
1998 IMAGE_INSTANCE_X_CURSOR (ii) = XCreateFontCursor (dpy, i); | 1994 IMAGE_INSTANCE_X_CURSOR (ii) = XCreateFontCursor (dpy, i); |
2199 /* Possibly update the text. */ | 2195 /* Possibly update the text. */ |
2200 if (IMAGE_INSTANCE_TEXT_CHANGED (p)) | 2196 if (IMAGE_INSTANCE_TEXT_CHANGED (p)) |
2201 { | 2197 { |
2202 Extbyte* str; | 2198 Extbyte* str; |
2203 Lisp_Object val = IMAGE_INSTANCE_WIDGET_TEXT (p); | 2199 Lisp_Object val = IMAGE_INSTANCE_WIDGET_TEXT (p); |
2204 LISP_STRING_TO_EXTERNAL (val, str, Qlwlib_encoding); | 2200 str = LISP_STRING_TO_EXTERNAL (val, Qlwlib_encoding); |
2205 wv->value = str; | 2201 wv->value = str; |
2206 } | 2202 } |
2207 | 2203 |
2208 /* Possibly update the size. */ | 2204 /* Possibly update the size. */ |
2209 if (IMAGE_INSTANCE_SIZE_CHANGED (p) | 2205 if (IMAGE_INSTANCE_SIZE_CHANGED (p) |
2331 sw = XSUBWINDOW (subwindow); | 2327 sw = XSUBWINDOW (subwindow); |
2332 dpy = DisplayOfScreen (LISP_DEVICE_TO_X_SCREEN | 2328 dpy = DisplayOfScreen (LISP_DEVICE_TO_X_SCREEN |
2333 (FRAME_DEVICE (XFRAME (sw->frame)))); | 2329 (FRAME_DEVICE (XFRAME (sw->frame)))); |
2334 | 2330 |
2335 LISP_TO_EXTERNAL (property, propext, Qctext); | 2331 LISP_TO_EXTERNAL (property, propext, Qctext); |
2336 TO_EXTERNAL_FORMAT (LISP_STRING, data, | 2332 LISP_STRING_TO_SIZED_EXTERNAL (data, dataext, datalen, Qctext); |
2337 ALLOCA, (dataext, datalen), Qctext); | |
2338 property_atom = XInternAtom (dpy, propext, False); | 2333 property_atom = XInternAtom (dpy, propext, False); |
2339 XChangeProperty (dpy, sw->subwindow, property_atom, XA_STRING, 8, | 2334 XChangeProperty (dpy, sw->subwindow, property_atom, XA_STRING, 8, |
2340 PropModeReplace, dataext, datalen); | 2335 PropModeReplace, dataext, datalen); |
2341 return property; | 2336 return property; |
2342 } | 2337 } |
2467 instantiation for a widget. But we can go ahead and do it without | 2462 instantiation for a widget. But we can go ahead and do it without |
2468 checking because there is always a generic instantiator. */ | 2463 checking because there is always a generic instantiator. */ |
2469 IMAGE_INSTANCE_TYPE (ii) = IMAGE_WIDGET; | 2464 IMAGE_INSTANCE_TYPE (ii) = IMAGE_WIDGET; |
2470 | 2465 |
2471 if (!NILP (IMAGE_INSTANCE_WIDGET_TEXT (ii))) | 2466 if (!NILP (IMAGE_INSTANCE_WIDGET_TEXT (ii))) |
2472 LISP_STRING_TO_EXTERNAL (IMAGE_INSTANCE_WIDGET_TEXT (ii), nm, | 2467 nm = LISP_STRING_TO_EXTERNAL (IMAGE_INSTANCE_WIDGET_TEXT (ii), |
2473 Qlwlib_encoding); | 2468 Qlwlib_encoding); |
2474 | 2469 |
2475 ii->data = xnew_and_zero (struct x_subwindow_data); | 2470 ii->data = xnew_and_zero (struct x_subwindow_data); |
2476 | 2471 |
2477 /* Create a clip window to contain the subwidget. Incredibly the | 2472 /* Create a clip window to contain the subwidget. Incredibly the |
2478 XEmacs manager seems to be the most appropriate widget for | 2473 XEmacs manager seems to be the most appropriate widget for |
2774 (XCDR (IMAGE_INSTANCE_WIDGET_ITEMS (ii))); | 2769 (XCDR (IMAGE_INSTANCE_WIDGET_ITEMS (ii))); |
2775 char* name; | 2770 char* name; |
2776 unsigned int num_children, i; | 2771 unsigned int num_children, i; |
2777 Widget* children; | 2772 Widget* children; |
2778 | 2773 |
2779 LISP_STRING_TO_EXTERNAL (XGUI_ITEM (XCAR (rest))->name, | 2774 name = |
2780 name, Qlwlib_encoding); | 2775 LISP_STRING_TO_EXTERNAL (XGUI_ITEM (XCAR (rest))->name, |
2776 Qlwlib_encoding); | |
2781 /* The name may contain a `.' which confuses | 2777 /* The name may contain a `.' which confuses |
2782 XtNameToWidget, so we do it ourselves. */ | 2778 XtNameToWidget, so we do it ourselves. */ |
2783 children = | 2779 children = |
2784 XtCompositeChildren (IMAGE_INSTANCE_X_WIDGET_ID (ii), | 2780 XtCompositeChildren (IMAGE_INSTANCE_X_WIDGET_ID (ii), |
2785 &num_children); | 2781 &num_children); |