comparison src/faces.c @ 4952:19a72041c5ed

Mule-izing, various fixes related to char * arguments -------------------- ChangeLog entries follow: -------------------- modules/ChangeLog addition: 2010-01-26 Ben Wing <ben@xemacs.org> * postgresql/postgresql.c: * postgresql/postgresql.c (CHECK_LIVE_CONNECTION): * postgresql/postgresql.c (print_pgresult): * postgresql/postgresql.c (Fpq_conn_defaults): * postgresql/postgresql.c (Fpq_connectdb): * postgresql/postgresql.c (Fpq_connect_start): * postgresql/postgresql.c (Fpq_result_status): * postgresql/postgresql.c (Fpq_res_status): Mule-ize large parts of it. 2010-01-26 Ben Wing <ben@xemacs.org> * ldap/eldap.c (print_ldap): * ldap/eldap.c (allocate_ldap): Use write_ascstring(). src/ChangeLog addition: 2010-01-26 Ben Wing <ben@xemacs.org> * alloc.c: * alloc.c (build_ascstring): * alloc.c (build_msg_cistring): * alloc.c (staticpro_1): * alloc.c (staticpro_name): * alloc.c (staticpro_nodump_1): * alloc.c (staticpro_nodump_name): * alloc.c (unstaticpro_nodump_1): * alloc.c (mcpro_1): * alloc.c (mcpro_name): * alloc.c (object_memory_usage_stats): * alloc.c (common_init_alloc_early): * alloc.c (init_alloc_once_early): * buffer.c (print_buffer): * buffer.c (vars_of_buffer): * buffer.c (common_init_complex_vars_of_buffer): * buffer.c (init_initial_directory): * bytecode.c (invalid_byte_code): * bytecode.c (print_compiled_function): * bytecode.c (mark_compiled_function): * chartab.c (print_table_entry): * chartab.c (print_char_table): * config.h.in: * console-gtk.c: * console-gtk.c (gtk_device_to_console_connection): * console-gtk.c (gtk_semi_canonicalize_console_connection): * console-gtk.c (gtk_canonicalize_console_connection): * console-gtk.c (gtk_semi_canonicalize_device_connection): * console-gtk.c (gtk_canonicalize_device_connection): * console-stream.c (stream_init_frame_1): * console-stream.c (vars_of_console_stream): * console-stream.c (init_console_stream): * console-x.c (x_semi_canonicalize_console_connection): * console-x.c (x_semi_canonicalize_device_connection): * console-x.c (x_canonicalize_device_connection): * console-x.h: * data.c (eq_with_ebola_notice): * data.c (Fsubr_interactive): * data.c (Fnumber_to_string): * data.c (digit_to_number): * device-gtk.c (gtk_init_device): * device-msw.c (print_devmode): * device-x.c (x_event_name): * dialog-msw.c (handle_directory_dialog_box): * dialog-msw.c (handle_file_dialog_box): * dialog-msw.c (vars_of_dialog_mswindows): * doc.c (weird_doc): * doc.c (Fsnarf_documentation): * doc.c (vars_of_doc): * dumper.c (pdump): * dynarr.c: * dynarr.c (Dynarr_realloc): * editfns.c (Fuser_real_login_name): * editfns.c (get_home_directory): * elhash.c (print_hash_table_data): * elhash.c (print_hash_table): * emacs.c (main_1): * emacs.c (vars_of_emacs): * emodules.c: * emodules.c (_emodules_list): * emodules.c (Fload_module): * emodules.c (Funload_module): * emodules.c (Flist_modules): * emodules.c (find_make_module): * emodules.c (attempt_module_delete): * emodules.c (emodules_load): * emodules.c (emodules_doc_subr): * emodules.c (emodules_doc_sym): * emodules.c (syms_of_module): * emodules.c (vars_of_module): * emodules.h: * eval.c (print_subr): * eval.c (signal_call_debugger): * eval.c (build_error_data): * eval.c (signal_error): * eval.c (maybe_signal_error): * eval.c (signal_continuable_error): * eval.c (maybe_signal_continuable_error): * eval.c (signal_error_2): * eval.c (maybe_signal_error_2): * eval.c (signal_continuable_error_2): * eval.c (maybe_signal_continuable_error_2): * eval.c (signal_ferror): * eval.c (maybe_signal_ferror): * eval.c (signal_continuable_ferror): * eval.c (maybe_signal_continuable_ferror): * eval.c (signal_ferror_with_frob): * eval.c (maybe_signal_ferror_with_frob): * eval.c (signal_continuable_ferror_with_frob): * eval.c (maybe_signal_continuable_ferror_with_frob): * eval.c (syntax_error): * eval.c (syntax_error_2): * eval.c (maybe_syntax_error): * eval.c (sferror): * eval.c (sferror_2): * eval.c (maybe_sferror): * eval.c (invalid_argument): * eval.c (invalid_argument_2): * eval.c (maybe_invalid_argument): * eval.c (invalid_constant): * eval.c (invalid_constant_2): * eval.c (maybe_invalid_constant): * eval.c (invalid_operation): * eval.c (invalid_operation_2): * eval.c (maybe_invalid_operation): * eval.c (invalid_change): * eval.c (invalid_change_2): * eval.c (maybe_invalid_change): * eval.c (invalid_state): * eval.c (invalid_state_2): * eval.c (maybe_invalid_state): * eval.c (wtaerror): * eval.c (stack_overflow): * eval.c (out_of_memory): * eval.c (print_multiple_value): * eval.c (issue_call_trapping_problems_warning): * eval.c (backtrace_specials): * eval.c (backtrace_unevalled_args): * eval.c (Fbacktrace): * eval.c (warn_when_safe): * event-Xt.c (modwarn): * event-Xt.c (modbarf): * event-Xt.c (check_modifier): * event-Xt.c (store_modifier): * event-Xt.c (emacs_Xt_format_magic_event): * event-Xt.c (describe_event): * event-gtk.c (dragndrop_data_received): * event-gtk.c (store_modifier): * event-gtk.c (gtk_reset_modifier_mapping): * event-msw.c (dde_eval_string): * event-msw.c (Fdde_alloc_advise_item): * event-msw.c (mswindows_dde_callback): * event-msw.c (FROB): * event-msw.c (emacs_mswindows_format_magic_event): * event-stream.c (external_debugging_print_event): * event-stream.c (execute_help_form): * event-stream.c (vars_of_event_stream): * events.c (print_event_1): * events.c (print_event): * events.c (event_equal): * extents.c (print_extent_1): * extents.c (print_extent): * extents.c (vars_of_extents): * faces.c (print_face): * faces.c (complex_vars_of_faces): * file-coding.c: * file-coding.c (print_coding_system): * file-coding.c (print_coding_system_in_print_method): * file-coding.c (default_query_method): * file-coding.c (find_coding_system): * file-coding.c (make_coding_system_1): * file-coding.c (chain_print): * file-coding.c (undecided_print): * file-coding.c (gzip_print): * file-coding.c (vars_of_file_coding): * file-coding.c (complex_vars_of_file_coding): * fileio.c: * fileio.c (report_file_type_error): * fileio.c (report_error_with_errno): * fileio.c (report_file_error): * fileio.c (barf_or_query_if_file_exists): * fileio.c (vars_of_fileio): * floatfns.c (matherr): * fns.c (print_bit_vector): * fns.c (Fmapconcat): * fns.c (add_suffix_to_symbol): * fns.c (add_prefix_to_symbol): * frame-gtk.c: * frame-gtk.c (Fgtk_window_id): * frame-x.c (def): * frame-x.c (x_cde_transfer_callback): * frame.c: * frame.c (Fmake_frame): * gc.c (show_gc_cursor_and_message): * gc.c (vars_of_gc): * glyphs-eimage.c (png_instantiate): * glyphs-eimage.c (tiff_instantiate): * glyphs-gtk.c (gtk_print_image_instance): * glyphs-msw.c (mswindows_print_image_instance): * glyphs-x.c (x_print_image_instance): * glyphs-x.c (update_widget_face): * glyphs.c (make_string_from_file): * glyphs.c (print_image_instance): * glyphs.c (signal_image_error): * glyphs.c (signal_image_error_2): * glyphs.c (signal_double_image_error): * glyphs.c (signal_double_image_error_2): * glyphs.c (xbm_mask_file_munging): * glyphs.c (pixmap_to_lisp_data): * glyphs.h: * gui.c (gui_item_display_flush_left): * hpplay.c (player_error_internal): * hpplay.c (myHandler): * intl-win32.c: * intl-win32.c (langcode_to_lang): * intl-win32.c (sublangcode_to_lang): * intl-win32.c (Fmswindows_get_locale_info): * intl-win32.c (lcid_to_locale_mule_or_no): * intl-win32.c (mswindows_multibyte_to_unicode_print): * intl-win32.c (complex_vars_of_intl_win32): * keymap.c: * keymap.c (print_keymap): * keymap.c (ensure_meta_prefix_char_keymapp): * keymap.c (Fkey_description): * keymap.c (Ftext_char_description): * lisp.h: * lisp.h (struct): * lisp.h (DECLARE_INLINE_HEADER): * lread.c (Fload_internal): * lread.c (locate_file): * lread.c (read_escape): * lread.c (read_raw_string): * lread.c (read1): * lread.c (read_list): * lread.c (read_compiled_function): * lread.c (init_lread): * lrecord.h: * marker.c (print_marker): * marker.c (marker_equal): * menubar-msw.c (displayable_menu_item): * menubar-x.c (command_builder_operate_menu_accelerator): * menubar.c (vars_of_menubar): * minibuf.c (reinit_complex_vars_of_minibuf): * minibuf.c (complex_vars_of_minibuf): * mule-charset.c (Fmake_charset): * mule-charset.c (complex_vars_of_mule_charset): * mule-coding.c (iso2022_print): * mule-coding.c (fixed_width_query): * number.c (bignum_print): * number.c (ratio_print): * number.c (bigfloat_print): * number.c (bigfloat_finalize): * objects-msw.c: * objects-msw.c (mswindows_color_to_string): * objects-msw.c (mswindows_color_list): * objects-tty.c: * objects-tty.c (tty_font_list): * objects-tty.c (tty_find_charset_font): * objects-xlike-inc.c (xft_find_charset_font): * objects-xlike-inc.c (endif): * print.c: * print.c (write_istring): * print.c (write_ascstring): * print.c (Fterpri): * print.c (Fprint): * print.c (print_error_message): * print.c (print_vector_internal): * print.c (print_cons): * print.c (print_string): * print.c (printing_unreadable_object): * print.c (print_internal): * print.c (print_float): * print.c (print_symbol): * process-nt.c (mswindows_report_winsock_error): * process-nt.c (nt_canonicalize_host_name): * process-unix.c (unix_canonicalize_host_name): * process.c (print_process): * process.c (report_process_error): * process.c (report_network_error): * process.c (make_process_internal): * process.c (Fstart_process_internal): * process.c (status_message): * process.c (putenv_internal): * process.c (vars_of_process): * process.h: * profile.c (vars_of_profile): * rangetab.c (print_range_table): * realpath.c (vars_of_realpath): * redisplay.c (vars_of_redisplay): * search.c (wordify): * search.c (Freplace_match): * sheap.c (sheap_adjust_h): * sound.c (report_sound_error): * sound.c (Fplay_sound_file): * specifier.c (print_specifier): * symbols.c (Fsubr_name): * symbols.c (do_symval_forwarding): * symbols.c (set_default_buffer_slot_variable): * symbols.c (set_default_console_slot_variable): * symbols.c (store_symval_forwarding): * symbols.c (default_value): * symbols.c (defsymbol_massage_name_1): * symbols.c (defsymbol_massage_name_nodump): * symbols.c (defsymbol_massage_name): * symbols.c (defsymbol_massage_multiword_predicate_nodump): * symbols.c (defsymbol_massage_multiword_predicate): * symbols.c (defsymbol_nodump): * symbols.c (defsymbol): * symbols.c (defkeyword): * symbols.c (defkeyword_massage_name): * symbols.c (check_module_subr): * symbols.c (deferror_1): * symbols.c (deferror): * symbols.c (deferror_massage_name): * symbols.c (deferror_massage_name_and_message): * symbols.c (defvar_magic): * symeval.h: * symeval.h (DEFVAR_SYMVAL_FWD): * sysdep.c: * sysdep.c (init_system_name): * sysdll.c: * sysdll.c (MAYBE_PREPEND_UNDERSCORE): * sysdll.c (dll_function): * sysdll.c (dll_variable): * sysdll.c (dll_error): * sysdll.c (dll_open): * sysdll.c (dll_close): * sysdll.c (image_for_address): * sysdll.c (my_find_image): * sysdll.c (search_linked_libs): * sysdll.h: * sysfile.h: * sysfile.h (DEFAULT_DIRECTORY_FALLBACK): * syswindows.h: * tests.c (DFC_CHECK_LENGTH): * tests.c (DFC_CHECK_CONTENT): * tests.c (Ftest_hash_tables): * text.c (vars_of_text): * text.h: * tooltalk.c (tt_opnum_string): * tooltalk.c (tt_message_arg_ival_string): * tooltalk.c (Ftooltalk_default_procid): * tooltalk.c (Ftooltalk_default_session): * tooltalk.c (init_tooltalk): * tooltalk.c (vars_of_tooltalk): * ui-gtk.c (Fdll_load): * ui-gtk.c (type_to_marshaller_type): * ui-gtk.c (Fgtk_import_function_internal): * ui-gtk.c (emacs_gtk_object_printer): * ui-gtk.c (emacs_gtk_boxed_printer): * unicode.c (unicode_to_ichar): * unicode.c (unicode_print): * unicode.c (unicode_query): * unicode.c (vars_of_unicode): * unicode.c (complex_vars_of_unicode): * win32.c: * win32.c (mswindows_report_process_error): * window.c (print_window): * xemacs.def.in.in: BASIC IDEA: Further fixing up uses of char * and CIbyte * to reflect their actual semantics; Mule-izing some code; redoing of the not-yet-working code to handle message translation. Clean up code to handle message-translation (not yet working). Create separate versions of build_msg_string() for working with Ibyte *, CIbyte *, and Ascbyte * arguments. Assert that Ascbyte * arguments are pure-ASCII. Make build_msg_string() be the same as build_msg_ascstring(). Create same three versions of GETTEXT() and DEFER_GETTEXT(). Also create build_defer_string() and variants for the equivalent of DEFER_GETTEXT() when building a string. Remove old CGETTEXT(). Clean up code where GETTEXT(), DEFER_GETTEXT(), build_msg_string(), etc. was being called and introduce some new calls to build_msg_string(), etc. Remove GETTEXT() from calls to weird_doc() -- we assume that the message snarfer knows about weird_doc(). Remove uses of DEFER_GETTEXT() from error messages in sysdep.c and instead use special comments /* @@@begin-snarf@@@ */ and /* @@@end-snarf@@@ */ that the message snarfer presumably knows about. Create build_ascstring() and use it in many instances in place of build_string(). The purpose of having Ascbyte * variants is to make the code more self-documenting in terms of what sort of semantics is expected for char * strings. In fact in the process of looking for uses of build_string(), much improperly Mule-ized was discovered. Mule-ize a lot of code as described in previous paragraph, e.g. in sysdep.c. Make the error functions take Ascbyte * strings and fix up a couple of places where non-pure-ASCII strings were being passed in (file-coding.c, mule-coding.c, unicode.c). (It's debatable whether we really need to make the error functions work this way. It helps catch places where code is written in a way that message translation won't work, but we may well never implement message translation.) Make staticpro() and friends take Ascbyte * strings instead of raw char * strings. Create a const_Ascbyte_ptr dynarr type to describe what's held by staticpro_names[] and friends, create pdump descriptions for const_Ascbyte_ptr dynarrs, and use them in place of specially-crafted staticpro descriptions. Mule-ize certain other functions (e.g. x_event_name) by correcting raw use of char * to Ascbyte *, Rawbyte * or another such type, and raw use of char[] buffers to another type (usually Ascbyte[]). Change many uses of write_c_string() to write_msg_string(), write_ascstring(), etc. Mule-ize emodules.c, emodules.h, sysdll.h. Fix some un-Mule-ized code in intl-win32.c. A comment in event-Xt.c and the limitations of the message snarfer (make-msgfile or whatever) is presumably incorrect -- it should be smart enough to handle function calls spread over more than one line. Clean up code in event-Xt.c that was written awkwardly for this reason. In config.h.in, instead of NEED_ERROR_CHECK_TYPES_INLINES, create a more general XEMACS_DEFS_NEEDS_INLINE_DECLS to indicate when inlined functions need to be declared in xemacs.defs.in.in, and make use of it in xemacs.defs.in.in. We need to do this because postgresql.c now calls qxestrdup(), which is an inline function. Make nconc2() and other such functions MODULE_API and put them in xemacs.defs.in.in since postgresql.c now uses them. Clean up indentation in lread.c and a few other places. In text.h, document ASSERT_ASCTEXT_ASCII() and ASSERT_ASCTEXT_ASCII_LEN(), group together the stand-in encodings and add some more for DLL symbols, function and variable names, etc.
author Ben Wing <ben@xemacs.org>
date Tue, 26 Jan 2010 23:22:30 -0600
parents 7ac51121843b
children 304aebb79cd3
comparison
equal deleted inserted replaced
4951:de60897044f4 4952:19a72041c5ed
135 else 135 else
136 { 136 {
137 write_fmt_string_lisp (printcharfun, "#<face %S", 1, face->name); 137 write_fmt_string_lisp (printcharfun, "#<face %S", 1, face->name);
138 if (!NILP (face->doc_string)) 138 if (!NILP (face->doc_string))
139 write_fmt_string_lisp (printcharfun, " %S", 1, face->doc_string); 139 write_fmt_string_lisp (printcharfun, " %S", 1, face->doc_string);
140 write_c_string (printcharfun, ">"); 140 write_ascstring (printcharfun, ">");
141 } 141 }
142 } 142 }
143 143
144 /* Faces are equal if all of their display attributes are equal. We 144 /* Faces are equal if all of their display attributes are equal. We
145 don't compare names or doc-strings, because that would make equal 145 don't compare names or doc-strings, because that would make equal
2227 { 2227 {
2228 /* Create the default face now so we know what it is immediately. */ 2228 /* Create the default face now so we know what it is immediately. */
2229 2229
2230 Vdefault_face = Qnil; /* so that Fmake_face() doesn't set up a bogus 2230 Vdefault_face = Qnil; /* so that Fmake_face() doesn't set up a bogus
2231 default value */ 2231 default value */
2232 Vdefault_face = Fmake_face (Qdefault, build_msg_string ("default face"), 2232 Vdefault_face = Fmake_face (Qdefault, build_defer_string ("default face"),
2233 Qnil); 2233 Qnil);
2234 2234
2235 /* Provide some last-resort fallbacks to avoid utter fuckage if 2235 /* Provide some last-resort fallbacks to avoid utter fuckage if
2236 someone provides invalid values for the global specifications. */ 2236 someone provides invalid values for the global specifications. */
2237 2237
2238 { 2238 {
2239 Lisp_Object fg_fb = Qnil, bg_fb = Qnil; 2239 Lisp_Object fg_fb = Qnil, bg_fb = Qnil;
2240 2240
2241 #ifdef HAVE_GTK 2241 #ifdef HAVE_GTK
2242 fg_fb = acons (list1 (Qgtk), build_string ("black"), fg_fb); 2242 fg_fb = acons (list1 (Qgtk), build_ascstring ("black"), fg_fb);
2243 bg_fb = acons (list1 (Qgtk), build_string ("white"), bg_fb); 2243 bg_fb = acons (list1 (Qgtk), build_ascstring ("white"), bg_fb);
2244 #endif 2244 #endif
2245 #ifdef HAVE_X_WINDOWS 2245 #ifdef HAVE_X_WINDOWS
2246 fg_fb = acons (list1 (Qx), build_string ("black"), fg_fb); 2246 fg_fb = acons (list1 (Qx), build_ascstring ("black"), fg_fb);
2247 bg_fb = acons (list1 (Qx), build_string ("gray80"), bg_fb); 2247 bg_fb = acons (list1 (Qx), build_ascstring ("gray80"), bg_fb);
2248 #endif 2248 #endif
2249 #ifdef HAVE_TTY 2249 #ifdef HAVE_TTY
2250 fg_fb = acons (list1 (Qtty), Fvector (0, 0), fg_fb); 2250 fg_fb = acons (list1 (Qtty), Fvector (0, 0), fg_fb);
2251 bg_fb = acons (list1 (Qtty), Fvector (0, 0), bg_fb); 2251 bg_fb = acons (list1 (Qtty), Fvector (0, 0), bg_fb);
2252 #endif 2252 #endif
2253 #ifdef HAVE_MS_WINDOWS 2253 #ifdef HAVE_MS_WINDOWS
2254 fg_fb = acons (list1 (Qmsprinter), build_string ("black"), fg_fb); 2254 fg_fb = acons (list1 (Qmsprinter), build_ascstring ("black"), fg_fb);
2255 bg_fb = acons (list1 (Qmsprinter), build_string ("white"), bg_fb); 2255 bg_fb = acons (list1 (Qmsprinter), build_ascstring ("white"), bg_fb);
2256 fg_fb = acons (list1 (Qmswindows), build_string ("black"), fg_fb); 2256 fg_fb = acons (list1 (Qmswindows), build_ascstring ("black"), fg_fb);
2257 bg_fb = acons (list1 (Qmswindows), build_string ("white"), bg_fb); 2257 bg_fb = acons (list1 (Qmswindows), build_ascstring ("white"), bg_fb);
2258 #endif 2258 #endif
2259 set_specifier_fallback (Fget (Vdefault_face, Qforeground, Qnil), fg_fb); 2259 set_specifier_fallback (Fget (Vdefault_face, Qforeground, Qnil), fg_fb);
2260 set_specifier_fallback (Fget (Vdefault_face, Qbackground, Qnil), bg_fb); 2260 set_specifier_fallback (Fget (Vdefault_face, Qbackground, Qnil), bg_fb);
2261 } 2261 }
2262 2262
2343 Fcons 2343 Fcons
2344 (Fcons 2344 (Fcons
2345 (list1 (device_symbol), 2345 (list1 (device_symbol),
2346 /* grrr. This really does need to be "*", not an XLFD. 2346 /* grrr. This really does need to be "*", not an XLFD.
2347 An unspecified XLFD won't pick up stuff like 10x20. */ 2347 An unspecified XLFD won't pick up stuff like 10x20. */
2348 build_string ("*")), 2348 build_ascstring ("*")),
2349 inst_list); 2349 inst_list);
2350 #ifdef MULE 2350 #ifdef MULE
2351 2351
2352 /* For Han characters and Ethiopic, we want the misc-fixed font used to 2352 /* For Han characters and Ethiopic, we want the misc-fixed font used to
2353 be distinct from that for alphabetic scripts, because the font 2353 be distinct from that for alphabetic scripts, because the font
2357 have charset-specific fallbacks for the East Asian charsets.) */ 2357 have charset-specific fallbacks for the East Asian charsets.) */
2358 inst_list = 2358 inst_list =
2359 Fcons 2359 Fcons
2360 (Fcons 2360 (Fcons
2361 (list4(device_symbol, Qtwo_dimensional, Qfinal, Qx_coverage_instantiator), 2361 (list4(device_symbol, Qtwo_dimensional, Qfinal, Qx_coverage_instantiator),
2362 build_string 2362 build_ascstring
2363 ("-misc-fixed-medium-r-normal--15-140-75-75-c-90-iso10646-1")), 2363 ("-misc-fixed-medium-r-normal--15-140-75-75-c-90-iso10646-1")),
2364 inst_list); 2364 inst_list);
2365 2365
2366 /* Use Markus Kuhn's version of misc-fixed as the font for the font for 2366 /* Use Markus Kuhn's version of misc-fixed as the font for the font for
2367 when a given charset's registries can't be found and redisplay for 2367 when a given charset's registries can't be found and redisplay for
2369 2369
2370 inst_list = 2370 inst_list =
2371 Fcons 2371 Fcons
2372 (Fcons 2372 (Fcons
2373 (list4(device_symbol, Qone_dimensional, Qfinal, Qx_coverage_instantiator), 2373 (list4(device_symbol, Qone_dimensional, Qfinal, Qx_coverage_instantiator),
2374 build_string 2374 build_ascstring
2375 ("-misc-fixed-medium-r-semicondensed--13-120-75-75-c-60-iso10646-1")), 2375 ("-misc-fixed-medium-r-semicondensed--13-120-75-75-c-60-iso10646-1")),
2376 inst_list); 2376 inst_list);
2377 2377
2378 for (fontptr = fonts + countof(fonts) - 1; fontptr >= fonts; fontptr--) 2378 for (fontptr = fonts + countof(fonts) - 1; fontptr >= fonts; fontptr--)
2379 inst_list = Fcons (Fcons (list3 (device_symbol, 2379 inst_list = Fcons (Fcons (list3 (device_symbol,
2389 2389
2390 inst_list = 2390 inst_list =
2391 Fcons 2391 Fcons
2392 (Fcons 2392 (Fcons
2393 (list4(device_symbol, Qencode_as_utf_8, Qinitial, Qx_coverage_instantiator), 2393 (list4(device_symbol, Qencode_as_utf_8, Qinitial, Qx_coverage_instantiator),
2394 build_string 2394 build_ascstring
2395 ("-misc-fixed-medium-r-semicondensed--13-120-75-75-c-60-iso10646-1")), 2395 ("-misc-fixed-medium-r-semicondensed--13-120-75-75-c-60-iso10646-1")),
2396 inst_list); 2396 inst_list);
2397 2397
2398 #endif /* MULE */ 2398 #endif /* MULE */
2399 2399
2401 use bold and oblique first if medium and regular are available. */ 2401 use bold and oblique first if medium and regular are available. */
2402 inst_list = 2402 inst_list =
2403 Fcons 2403 Fcons
2404 (Fcons 2404 (Fcons
2405 (list1 (device_symbol), 2405 (list1 (device_symbol),
2406 build_string ("-*-*-medium-r-*-*-*-120-*-*-c-*-*-*")), 2406 build_ascstring ("-*-*-medium-r-*-*-*-120-*-*-c-*-*-*")),
2407 inst_list); 2407 inst_list);
2408 2408
2409 /* With a Cygwin XFree86 install, this returns the best (clearest, 2409 /* With a Cygwin XFree86 install, this returns the best (clearest,
2410 most readable) font I can find when scaling of bitmap fonts is 2410 most readable) font I can find when scaling of bitmap fonts is
2411 turned on, as it is by default. (WHO IN THE NAME OF CHRIST THOUGHT 2411 turned on, as it is by default. (WHO IN THE NAME OF CHRIST THOUGHT
2414 2414
2415 inst_list = 2415 inst_list =
2416 Fcons 2416 Fcons
2417 (Fcons 2417 (Fcons
2418 (list1 (device_symbol), 2418 (list1 (device_symbol),
2419 build_string ("-*-lucidatypewriter-medium-r-*-*-*-120-*-*-*-*-*-*")), 2419 build_ascstring ("-*-lucidatypewriter-medium-r-*-*-*-120-*-*-*-*-*-*")),
2420 inst_list); 2420 inst_list);
2421 2421
2422 #endif /* !USE_XFT */ 2422 #endif /* !USE_XFT */
2423 2423
2424 #endif /* HAVE_X_WINDOWS || HAVE_GTK */ 2424 #endif /* HAVE_X_WINDOWS || HAVE_GTK */
2425 2425
2426 #ifdef HAVE_TTY 2426 #ifdef HAVE_TTY
2427 inst_list = Fcons (Fcons (list1 (Qtty), build_string ("normal")), 2427 inst_list = Fcons (Fcons (list1 (Qtty), build_ascstring ("normal")),
2428 inst_list); 2428 inst_list);
2429 #endif /* HAVE_TTY */ 2429 #endif /* HAVE_TTY */
2430 2430
2431 #ifdef HAVE_MS_WINDOWS 2431 #ifdef HAVE_MS_WINDOWS
2432 { 2432 {
2441 for (mswfontptr = mswfonts + countof (mswfonts) - 1; 2441 for (mswfontptr = mswfonts + countof (mswfonts) - 1;
2442 mswfontptr >= mswfonts; mswfontptr--) 2442 mswfontptr >= mswfonts; mswfontptr--)
2443 { 2443 {
2444 /* display device */ 2444 /* display device */
2445 inst_list = Fcons (Fcons (list1 (Qmswindows), 2445 inst_list = Fcons (Fcons (list1 (Qmswindows),
2446 build_string (*mswfontptr)), 2446 build_ascstring (*mswfontptr)),
2447 inst_list); 2447 inst_list);
2448 /* printer device */ 2448 /* printer device */
2449 inst_list = Fcons (Fcons (list1 (Qmsprinter), 2449 inst_list = Fcons (Fcons (list1 (Qmsprinter),
2450 build_string (*mswfontptr)), 2450 build_ascstring (*mswfontptr)),
2451 inst_list); 2451 inst_list);
2452 } 2452 }
2453 /* Use Lucida Console rather than Courier New if it exists -- the 2453 /* Use Lucida Console rather than Courier New if it exists -- the
2454 line spacing is much less, so many more lines fit with the same 2454 line spacing is much less, so many more lines fit with the same
2455 size font. (And it's specifically designed for screens.) */ 2455 size font. (And it's specifically designed for screens.) */
2456 inst_list = Fcons (Fcons (list1 (Qmswindows), 2456 inst_list = Fcons (Fcons (list1 (Qmswindows),
2457 build_string ("Lucida Console:Regular:10::")), 2457 build_ascstring ("Lucida Console:Regular:10::")),
2458 inst_list); 2458 inst_list);
2459 } 2459 }
2460 #endif /* HAVE_MS_WINDOWS */ 2460 #endif /* HAVE_MS_WINDOWS */
2461 2461
2462 set_specifier_fallback (Fget (Vdefault_face, Qfont, Qnil), inst_list); 2462 set_specifier_fallback (Fget (Vdefault_face, Qfont, Qnil), inst_list);
2476 list1 (Fcons (Qnil, Qnil))); 2476 list1 (Fcons (Qnil, Qnil)));
2477 2477
2478 /* gui-element is the parent face of all gui elements such as 2478 /* gui-element is the parent face of all gui elements such as
2479 modeline, vertical divider and toolbar. */ 2479 modeline, vertical divider and toolbar. */
2480 Vgui_element_face = Fmake_face (Qgui_element, 2480 Vgui_element_face = Fmake_face (Qgui_element,
2481 build_msg_string ("gui element face"), 2481 build_defer_string ("gui element face"),
2482 Qnil); 2482 Qnil);
2483 2483
2484 /* Provide some last-resort fallbacks for gui-element face which 2484 /* Provide some last-resort fallbacks for gui-element face which
2485 mustn't default to default. */ 2485 mustn't default to default. */
2486 { 2486 {
2490 But it gets referred to later! */ 2490 But it gets referred to later! */
2491 #ifdef HAVE_GTK 2491 #ifdef HAVE_GTK
2492 /* We need to put something in there, or error checking gets 2492 /* We need to put something in there, or error checking gets
2493 #%!@#ed up before the styles are set, which override the 2493 #%!@#ed up before the styles are set, which override the
2494 fallbacks. */ 2494 fallbacks. */
2495 fg_fb = acons (list1 (Qgtk), build_string ("black"), fg_fb); 2495 fg_fb = acons (list1 (Qgtk), build_ascstring ("black"), fg_fb);
2496 bg_fb = acons (list1 (Qgtk), build_string ("Gray80"), bg_fb); 2496 bg_fb = acons (list1 (Qgtk), build_ascstring ("Gray80"), bg_fb);
2497 #endif 2497 #endif
2498 #ifdef HAVE_X_WINDOWS 2498 #ifdef HAVE_X_WINDOWS
2499 fg_fb = acons (list1 (Qx), build_string ("black"), fg_fb); 2499 fg_fb = acons (list1 (Qx), build_ascstring ("black"), fg_fb);
2500 bg_fb = acons (list1 (Qx), build_string ("Gray80"), bg_fb); 2500 bg_fb = acons (list1 (Qx), build_ascstring ("Gray80"), bg_fb);
2501 #endif 2501 #endif
2502 #ifdef HAVE_TTY 2502 #ifdef HAVE_TTY
2503 fg_fb = acons (list1 (Qtty), Fvector (0, 0), fg_fb); 2503 fg_fb = acons (list1 (Qtty), Fvector (0, 0), fg_fb);
2504 bg_fb = acons (list1 (Qtty), Fvector (0, 0), bg_fb); 2504 bg_fb = acons (list1 (Qtty), Fvector (0, 0), bg_fb);
2505 #endif 2505 #endif
2506 #ifdef HAVE_MS_WINDOWS 2506 #ifdef HAVE_MS_WINDOWS
2507 fg_fb = acons (list1 (Qmsprinter), build_string ("black"), fg_fb); 2507 fg_fb = acons (list1 (Qmsprinter), build_ascstring ("black"), fg_fb);
2508 bg_fb = acons (list1 (Qmsprinter), build_string ("white"), bg_fb); 2508 bg_fb = acons (list1 (Qmsprinter), build_ascstring ("white"), bg_fb);
2509 fg_fb = acons (list1 (Qmswindows), build_string ("black"), fg_fb); 2509 fg_fb = acons (list1 (Qmswindows), build_ascstring ("black"), fg_fb);
2510 bg_fb = acons (list1 (Qmswindows), build_string ("Gray75"), bg_fb); 2510 bg_fb = acons (list1 (Qmswindows), build_ascstring ("Gray75"), bg_fb);
2511 #endif 2511 #endif
2512 set_specifier_fallback (Fget (Vgui_element_face, Qforeground, Qnil), fg_fb); 2512 set_specifier_fallback (Fget (Vgui_element_face, Qforeground, Qnil), fg_fb);
2513 set_specifier_fallback (Fget (Vgui_element_face, Qbackground, Qnil), bg_fb); 2513 set_specifier_fallback (Fget (Vgui_element_face, Qbackground, Qnil), bg_fb);
2514 } 2514 }
2515 2515
2516 /* Now create the other faces that redisplay needs to refer to 2516 /* Now create the other faces that redisplay needs to refer to
2517 directly. We could create them in Lisp but it's simpler this 2517 directly. We could create them in Lisp but it's simpler this
2518 way since we need to get them anyway. */ 2518 way since we need to get them anyway. */
2519 2519
2520 /* modeline is gui element. */ 2520 /* modeline is gui element. */
2521 Vmodeline_face = Fmake_face (Qmodeline, build_msg_string ("modeline face"), 2521 Vmodeline_face = Fmake_face (Qmodeline, build_defer_string ("modeline face"),
2522 Qnil); 2522 Qnil);
2523 2523
2524 set_specifier_fallback (Fget (Vmodeline_face, Qforeground, Qunbound), 2524 set_specifier_fallback (Fget (Vmodeline_face, Qforeground, Qunbound),
2525 Fget (Vgui_element_face, Qforeground, Qunbound)); 2525 Fget (Vgui_element_face, Qforeground, Qunbound));
2526 set_specifier_fallback (Fget (Vmodeline_face, Qbackground, Qunbound), 2526 set_specifier_fallback (Fget (Vmodeline_face, Qbackground, Qunbound),
2529 Fget (Vgui_element_face, Qbackground_pixmap, 2529 Fget (Vgui_element_face, Qbackground_pixmap,
2530 Qunbound)); 2530 Qunbound));
2531 2531
2532 /* toolbar is another gui element */ 2532 /* toolbar is another gui element */
2533 Vtoolbar_face = Fmake_face (Qtoolbar, 2533 Vtoolbar_face = Fmake_face (Qtoolbar,
2534 build_msg_string ("toolbar face"), 2534 build_defer_string ("toolbar face"),
2535 Qnil); 2535 Qnil);
2536 set_specifier_fallback (Fget (Vtoolbar_face, Qforeground, Qunbound), 2536 set_specifier_fallback (Fget (Vtoolbar_face, Qforeground, Qunbound),
2537 Fget (Vgui_element_face, Qforeground, Qunbound)); 2537 Fget (Vgui_element_face, Qforeground, Qunbound));
2538 set_specifier_fallback (Fget (Vtoolbar_face, Qbackground, Qunbound), 2538 set_specifier_fallback (Fget (Vtoolbar_face, Qbackground, Qunbound),
2539 Fget (Vgui_element_face, Qbackground, Qunbound)); 2539 Fget (Vgui_element_face, Qbackground, Qunbound));
2541 Fget (Vgui_element_face, Qbackground_pixmap, 2541 Fget (Vgui_element_face, Qbackground_pixmap,
2542 Qunbound)); 2542 Qunbound));
2543 2543
2544 /* vertical divider is another gui element */ 2544 /* vertical divider is another gui element */
2545 Vvertical_divider_face = Fmake_face (Qvertical_divider, 2545 Vvertical_divider_face = Fmake_face (Qvertical_divider,
2546 build_msg_string ("vertical divider face"), 2546 build_defer_string ("vertical divider face"),
2547 Qnil); 2547 Qnil);
2548 2548
2549 set_specifier_fallback (Fget (Vvertical_divider_face, Qforeground, Qunbound), 2549 set_specifier_fallback (Fget (Vvertical_divider_face, Qforeground, Qunbound),
2550 Fget (Vgui_element_face, Qforeground, Qunbound)); 2550 Fget (Vgui_element_face, Qforeground, Qunbound));
2551 set_specifier_fallback (Fget (Vvertical_divider_face, Qbackground, Qunbound), 2551 set_specifier_fallback (Fget (Vvertical_divider_face, Qbackground, Qunbound),
2555 Fget (Vgui_element_face, Qbackground_pixmap, 2555 Fget (Vgui_element_face, Qbackground_pixmap,
2556 Qunbound)); 2556 Qunbound));
2557 2557
2558 /* widget is another gui element */ 2558 /* widget is another gui element */
2559 Vwidget_face = Fmake_face (Qwidget, 2559 Vwidget_face = Fmake_face (Qwidget,
2560 build_msg_string ("widget face"), 2560 build_defer_string ("widget face"),
2561 Qnil); 2561 Qnil);
2562 /* #### weird ... the gui-element face doesn't have its own font yet */ 2562 /* #### weird ... the gui-element face doesn't have its own font yet */
2563 set_specifier_fallback (Fget (Vwidget_face, Qfont, Qunbound), 2563 set_specifier_fallback (Fget (Vwidget_face, Qfont, Qunbound),
2564 Fget (Vgui_element_face, Qfont, Qunbound)); 2564 Fget (Vgui_element_face, Qfont, Qunbound));
2565 set_specifier_fallback (Fget (Vwidget_face, Qforeground, Qunbound), 2565 set_specifier_fallback (Fget (Vwidget_face, Qforeground, Qunbound),
2567 set_specifier_fallback (Fget (Vwidget_face, Qbackground, Qunbound), 2567 set_specifier_fallback (Fget (Vwidget_face, Qbackground, Qunbound),
2568 Fget (Vgui_element_face, Qbackground, Qunbound)); 2568 Fget (Vgui_element_face, Qbackground, Qunbound));
2569 /* We don't want widgets to have a default background pixmap. */ 2569 /* We don't want widgets to have a default background pixmap. */
2570 2570
2571 Vleft_margin_face = Fmake_face (Qleft_margin, 2571 Vleft_margin_face = Fmake_face (Qleft_margin,
2572 build_msg_string ("left margin face"), 2572 build_defer_string ("left margin face"),
2573 Qnil); 2573 Qnil);
2574 Vright_margin_face = Fmake_face (Qright_margin, 2574 Vright_margin_face = Fmake_face (Qright_margin,
2575 build_msg_string ("right margin face"), 2575 build_defer_string ("right margin face"),
2576 Qnil); 2576 Qnil);
2577 Vtext_cursor_face = Fmake_face (Qtext_cursor, 2577 Vtext_cursor_face = Fmake_face (Qtext_cursor,
2578 build_msg_string ("face for text cursor"), 2578 build_defer_string ("face for text cursor"),
2579 Qnil); 2579 Qnil);
2580 Vpointer_face = 2580 Vpointer_face =
2581 Fmake_face (Qpointer, 2581 Fmake_face (Qpointer,
2582 build_msg_string 2582 build_defer_string
2583 ("face for foreground/background colors of mouse pointer"), 2583 ("face for foreground/background colors of mouse pointer"),
2584 Qnil); 2584 Qnil);
2585 } 2585 }