comparison src/lread.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 91b3d00e717f
children 304aebb79cd3
comparison
equal deleted inserted replaced
4951:de60897044f4 4952:19a72041c5ed
591 Ibyte *foundstr; 591 Ibyte *foundstr;
592 int foundlen; 592 int foundlen;
593 593
594 fd = locate_file (Vload_path, file, 594 fd = locate_file (Vload_path, file,
595 ((!NILP (nosuffix)) ? Qnil : 595 ((!NILP (nosuffix)) ? Qnil :
596 build_string (load_ignore_elc_files ? ".el:" : 596 build_ascstring (load_ignore_elc_files ? ".el:" :
597 ".elc:.el:")), 597 ".elc:.el:")),
598 &found, 598 &found,
599 -1); 599 -1);
600 600
601 if (fd < 0) 601 if (fd < 0)
1269 if (storeptr) 1269 if (storeptr)
1270 *storeptr = Qnil; 1270 *storeptr = Qnil;
1271 1271
1272 /* Is it really necessary to gcpro path and str? It shouldn't be 1272 /* Is it really necessary to gcpro path and str? It shouldn't be
1273 unless some caller has fucked up. There are known instances that 1273 unless some caller has fucked up. There are known instances that
1274 call us with build_string("foo:bar") as SUFFIXES, though. */ 1274 call us with build_ascstring("foo:bar") as SUFFIXES, though. */
1275 GCPRO4 (path, str, suffixes, suffixtab); 1275 GCPRO4 (path, str, suffixes, suffixtab);
1276 1276
1277 /* if this filename has directory components, it's too complicated 1277 /* if this filename has directory components, it's too complicated
1278 to try and use the hash tables. */ 1278 to try and use the hash tables. */
1279 if (!NILP (Ffile_name_directory (str))) 1279 if (!NILP (Ffile_name_directory (str)))
1870 1870
1871 if (c >= '0' && c <= '9') i = (i << 4) + (c - '0'); 1871 if (c >= '0' && c <= '9') i = (i << 4) + (c - '0');
1872 else if (c >= 'a' && c <= 'f') i = (i << 4) + (c - 'a') + 10; 1872 else if (c >= 'a' && c <= 'f') i = (i << 4) + (c - 'a') + 10;
1873 else if (c >= 'A' && c <= 'F') i = (i << 4) + (c - 'A') + 10; 1873 else if (c >= 'A' && c <= 'F') i = (i << 4) + (c - 'A') + 10;
1874 1874
1875 args[0] = build_string ("?\\x%x"); 1875 args[0] = build_ascstring ("?\\x%x");
1876 args[1] = make_int (i); 1876 args[1] = make_int (i);
1877 syntax_error ("Overlong hex character escape", 1877 syntax_error ("Overlong hex character escape",
1878 Fformat (2, args)); 1878 Fformat (2, args));
1879 } 1879 }
1880 unreadchar (readcharfun, c); 1880 unreadchar (readcharfun, c);
2392 read_raw_string (Lisp_Object readcharfun) 2392 read_raw_string (Lisp_Object readcharfun)
2393 { 2393 {
2394 Ichar c; 2394 Ichar c;
2395 Ichar permit_unicode = 0; 2395 Ichar permit_unicode = 0;
2396 2396
2397 do { 2397 do
2398 c = reader_nextchar(readcharfun); 2398 {
2399 switch (c) { 2399 c = reader_nextchar (readcharfun);
2400 /* #r:engine"my sexy raw string" -- raw string w/ flags*/ 2400 switch (c)
2401 /* case ':': */ 2401 {
2402 /* #ru"Hi there\u20AC \U000020AC" -- raw string, honouring Unicode. */ 2402 /* #r:engine"my sexy raw string" -- raw string w/ flags*/
2403 case 'u': 2403 /* case ':': */
2404 case 'U': 2404 /* #ru"Hi there\u20AC \U000020AC" -- raw string, honouring Unicode. */
2405 permit_unicode = c; 2405 case 'u':
2406 continue; 2406 case 'U':
2407 2407 permit_unicode = c;
2408 /* #r"my raw string" -- raw string */ 2408 continue;
2409 case '\"': 2409
2410 return read_string(readcharfun, '\"', 1, permit_unicode); 2410 /* #r"my raw string" -- raw string */
2411 /* invalid syntax */ 2411 case '\"':
2412 default: 2412 return read_string (readcharfun, '\"', 1, permit_unicode);
2413 { 2413 /* invalid syntax */
2414 if (permit_unicode) 2414 default:
2415 { 2415 {
2416 unreadchar(readcharfun, permit_unicode); 2416 if (permit_unicode)
2417 {
2418 unreadchar (readcharfun, permit_unicode);
2419 }
2420 unreadchar (readcharfun, c);
2421 return Fsignal (Qinvalid_read_syntax,
2422 list1 (build_msg_string
2423 ("unrecognized raw string syntax")));
2417 } 2424 }
2418 unreadchar(readcharfun, c); 2425 }
2419 return Fsignal(Qinvalid_read_syntax, 2426 } while (1);
2420 list1(build_string
2421 ("unrecognized raw string syntax")));
2422 }
2423 }
2424 } while (1);
2425 } 2427 }
2426 2428
2427 /* Read the next Lisp object from the stream READCHARFUN and return it. 2429 /* Read the next Lisp object from the stream READCHARFUN and return it.
2428 If the return value is a cons whose car is Qunbound, then read1() 2430 If the return value is a cons whose car is Qunbound, then read1()
2429 encountered a misplaced token (e.g. a right bracket, right paren, 2431 encountered a misplaced token (e.g. a right bracket, right paren,
2578 if (!STRINGP (tmp)) 2580 if (!STRINGP (tmp))
2579 { 2581 {
2580 if (CONSP (tmp) && UNBOUNDP (XCAR (tmp))) 2582 if (CONSP (tmp) && UNBOUNDP (XCAR (tmp)))
2581 free_cons (tmp); 2583 free_cons (tmp);
2582 return Fsignal (Qinvalid_read_syntax, 2584 return Fsignal (Qinvalid_read_syntax,
2583 list1 (build_string ("#"))); 2585 list1 (build_ascstring ("#")));
2584 } 2586 }
2585 GCPRO1 (tmp); 2587 GCPRO1 (tmp);
2586 /* Read the intervals and their properties. */ 2588 /* Read the intervals and their properties. */
2587 while (1) 2589 while (1)
2588 { 2590 {
2736 list2 (build_msg_string 2738 list2 (build_msg_string
2737 ("Undefined symbol label"), 2739 ("Undefined symbol label"),
2738 make_int (n))); 2740 make_int (n)));
2739 } 2741 }
2740 return Fsignal (Qinvalid_read_syntax, 2742 return Fsignal (Qinvalid_read_syntax,
2741 list1 (build_string ("#"))); 2743 list1 (build_ascstring ("#")));
2742 } 2744 }
2743 default: 2745 default:
2744 { 2746 {
2745 unreadchar (readcharfun, c); 2747 unreadchar (readcharfun, c);
2746 return Fsignal (Qinvalid_read_syntax, 2748 return Fsignal (Qinvalid_read_syntax,
2747 list1 (build_string ("#"))); 2749 list1 (build_ascstring ("#")));
2748 } 2750 }
2749 } 2751 }
2750 } 2752 }
2751 2753
2752 /* Quote */ 2754 /* Quote */
3118 can be found properly in the installed Lisp 3120 can be found properly in the installed Lisp
3119 directory. We don't use Fexpand_file_name 3121 directory. We don't use Fexpand_file_name
3120 because that would make the directory absolute 3122 because that would make the directory absolute
3121 now. */ 3123 now. */
3122 XCAR (XCAR (holding_cons)) = 3124 XCAR (XCAR (holding_cons)) =
3123 concat2 (build_string ("../lisp/"), 3125 concat2 (build_ascstring ("../lisp/"),
3124 Ffile_name_nondirectory 3126 Ffile_name_nondirectory
3125 (Vload_file_name_internal)); 3127 (Vload_file_name_internal));
3126 } 3128 }
3127 else 3129 else
3128 /* Not pure. Just add to Vload_force_doc_string_list, 3130 /* Not pure. Just add to Vload_force_doc_string_list,
3212 /* same as in read_list(). */ 3214 /* same as in read_list(). */
3213 if (NILP (Vinternal_doc_file_name)) 3215 if (NILP (Vinternal_doc_file_name))
3214 make_byte_code_args[iii] = Qzero; 3216 make_byte_code_args[iii] = Qzero;
3215 else 3217 else
3216 XCAR (make_byte_code_args[iii]) = 3218 XCAR (make_byte_code_args[iii]) =
3217 concat2 (build_string ("../lisp/"), 3219 concat2 (build_ascstring ("../lisp/"),
3218 Ffile_name_nondirectory 3220 Ffile_name_nondirectory
3219 (Vload_file_name_internal)); 3221 (Vload_file_name_internal));
3220 } 3222 }
3221 else 3223 else
3222 saw_a_doc_ref = 1; 3224 saw_a_doc_ref = 1;
3253 Vload_descriptor_list = Qnil; 3255 Vload_descriptor_list = Qnil;
3254 3256
3255 /* kludge: locate-file does not work for a null load-path, even if 3257 /* kludge: locate-file does not work for a null load-path, even if
3256 the file name is absolute. */ 3258 the file name is absolute. */
3257 3259
3258 Vload_path = Fcons (build_string (""), Qnil); 3260 Vload_path = Fcons (build_ascstring (""), Qnil);
3259 3261
3260 /* This used to get initialized in init_lread because all streams 3262 /* This used to get initialized in init_lread because all streams
3261 got closed when dumping occurs. This is no longer true -- 3263 got closed when dumping occurs. This is no longer true --
3262 Vread_buffer_stream is a resizing output stream, and there is no 3264 Vread_buffer_stream is a resizing output stream, and there is no
3263 reason to close it at dump-time. 3265 reason to close it at dump-time.