Mercurial > hg > xemacs-beta
comparison src/file-coding.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 | a98ca4640147 |
children | 304aebb79cd3 |
comparison
equal
deleted
inserted
replaced
4951:de60897044f4 | 4952:19a72041c5ed |
---|---|
299 if (print_readably) | 299 if (print_readably) |
300 printing_unreadable_lcrecord (obj, 0); | 300 printing_unreadable_lcrecord (obj, 0); |
301 | 301 |
302 write_fmt_string_lisp (printcharfun, "#<coding-system %s ", 1, c->name); | 302 write_fmt_string_lisp (printcharfun, "#<coding-system %s ", 1, c->name); |
303 print_coding_system_properties (obj, printcharfun); | 303 print_coding_system_properties (obj, printcharfun); |
304 write_c_string (printcharfun, ">"); | 304 write_ascstring (printcharfun, ">"); |
305 } | 305 } |
306 | 306 |
307 /* Print an abbreviated version of a coding system (but still containing | 307 /* Print an abbreviated version of a coding system (but still containing |
308 all the information), for use within a coding system print method. */ | 308 all the information), for use within a coding system print method. */ |
309 | 309 |
311 print_coding_system_in_print_method (Lisp_Object cs, Lisp_Object printcharfun, | 311 print_coding_system_in_print_method (Lisp_Object cs, Lisp_Object printcharfun, |
312 int UNUSED (escapeflag)) | 312 int UNUSED (escapeflag)) |
313 { | 313 { |
314 write_fmt_string_lisp (printcharfun, "%s[", 1, XCODING_SYSTEM_NAME (cs)); | 314 write_fmt_string_lisp (printcharfun, "%s[", 1, XCODING_SYSTEM_NAME (cs)); |
315 print_coding_system_properties (cs, printcharfun); | 315 print_coding_system_properties (cs, printcharfun); |
316 write_c_string (printcharfun, "]"); | 316 write_ascstring (printcharfun, "]"); |
317 } | 317 } |
318 | 318 |
319 #ifndef NEW_GC | 319 #ifndef NEW_GC |
320 static void | 320 static void |
321 finalize_coding_system (void *header, int for_disksave) | 321 finalize_coding_system (void *header, int for_disksave) |
519 { | 519 { |
520 assert (previous_failed_reason == query_coding_unencodable); | 520 assert (previous_failed_reason == query_coding_unencodable); |
521 | 521 |
522 if (flags & QUERY_METHOD_ERRORP) | 522 if (flags & QUERY_METHOD_ERRORP) |
523 { | 523 { |
524 DECLARE_EISTRING (error_details); | 524 signal_error_2 |
525 | 525 (Qtext_conversion_error, |
526 eicpy_ascii (error_details, "Cannot encode "); | 526 "Cannot encode using coding system", |
527 eicat_lstr (error_details, | 527 make_string_from_buffer (buf, fail_range_start, |
528 make_string_from_buffer (buf, fail_range_start, | 528 pos - fail_range_start), |
529 pos - | 529 XCODING_SYSTEM_NAME (codesys)); |
530 fail_range_start)); | |
531 eicat_ascii (error_details, " using coding system"); | |
532 | |
533 signal_error (Qtext_conversion_error, | |
534 (const CIbyte *)(eidata (error_details)), | |
535 XCODING_SYSTEM_NAME (codesys)); | |
536 } | 530 } |
537 | 531 |
538 if (NILP (result)) | 532 if (NILP (result)) |
539 { | 533 { |
540 result = Fmake_range_table (Qstart_closed_end_open); | 534 result = Fmake_range_table (Qstart_closed_end_open); |
695 eicat_lstr (warning_info, XSYMBOL_NAME (coding_system_or_name)); | 689 eicat_lstr (warning_info, XSYMBOL_NAME (coding_system_or_name)); |
696 | 690 |
697 /* Keep around the form so it doesn't disappear from under | 691 /* Keep around the form so it doesn't disappear from under |
698 #'eval's feet. */ | 692 #'eval's feet. */ |
699 GCPRO1 (lookup); | 693 GCPRO1 (lookup); |
700 call1_trapping_problems ((const CIbyte *)eidata (warning_info), | 694 call1_trapping_problems ((const CIbyte *) eidata (warning_info), |
701 Qeval, lookup, 0); | 695 Qeval, lookup, 0); |
702 UNGCPRO; | 696 UNGCPRO; |
703 | 697 |
704 lookup = | 698 lookup = |
705 Fgethash (coding_system_or_name, Vcoding_system_hash_table, Qnil); | 699 Fgethash (coding_system_or_name, Vcoding_system_hash_table, Qnil); |
1246 csobj = wrap_coding_system (cs); | 1240 csobj = wrap_coding_system (cs); |
1247 | 1241 |
1248 cs->internal_p = !!prefix; | 1242 cs->internal_p = !!prefix; |
1249 | 1243 |
1250 if (NILP (description)) | 1244 if (NILP (description)) |
1251 description = build_string (""); | 1245 description = build_ascstring (""); |
1252 else | 1246 else |
1253 CHECK_STRING (description); | 1247 CHECK_STRING (description); |
1254 CODING_SYSTEM_DESCRIPTION (cs) = description; | 1248 CODING_SYSTEM_DESCRIPTION (cs) = description; |
1255 | 1249 |
1256 if (!NILP (defmnem)) | 1250 if (!NILP (defmnem)) |
2610 static void | 2604 static void |
2611 chain_print (Lisp_Object cs, Lisp_Object printcharfun, int escapeflag) | 2605 chain_print (Lisp_Object cs, Lisp_Object printcharfun, int escapeflag) |
2612 { | 2606 { |
2613 int i; | 2607 int i; |
2614 | 2608 |
2615 write_c_string (printcharfun, "("); | 2609 write_ascstring (printcharfun, "("); |
2616 for (i = 0; i < XCODING_SYSTEM_CHAIN_COUNT (cs); i++) | 2610 for (i = 0; i < XCODING_SYSTEM_CHAIN_COUNT (cs); i++) |
2617 { | 2611 { |
2618 write_c_string (printcharfun, i == 0 ? "" : "->"); | 2612 write_ascstring (printcharfun, i == 0 ? "" : "->"); |
2619 print_coding_system_in_print_method (XCODING_SYSTEM_CHAIN_CHAIN (cs)[i], | 2613 print_coding_system_in_print_method (XCODING_SYSTEM_CHAIN_CHAIN (cs)[i], |
2620 printcharfun, escapeflag); | 2614 printcharfun, escapeflag); |
2621 } | 2615 } |
2622 { | 2616 { |
2623 Lisp_Object cac = XCODING_SYSTEM_CHAIN_CANONICALIZE_AFTER_CODING (cs); | 2617 Lisp_Object cac = XCODING_SYSTEM_CHAIN_CANONICALIZE_AFTER_CODING (cs); |
2624 if (!NILP (cac)) | 2618 if (!NILP (cac)) |
2625 { | 2619 { |
2626 if (i > 0) | 2620 if (i > 0) |
2627 write_c_string (printcharfun, " "); | 2621 write_ascstring (printcharfun, " "); |
2628 write_c_string (printcharfun, "canonicalize-after-coding="); | 2622 write_ascstring (printcharfun, "canonicalize-after-coding="); |
2629 print_coding_system_in_print_method (cac, printcharfun, escapeflag); | 2623 print_coding_system_in_print_method (cac, printcharfun, escapeflag); |
2630 } | 2624 } |
2631 } | 2625 } |
2632 | 2626 |
2633 write_c_string (printcharfun, ")"); | 2627 write_ascstring (printcharfun, ")"); |
2634 } | 2628 } |
2635 | 2629 |
2636 static void | 2630 static void |
2637 chain_rewind_coding_stream_1 (struct chain_coding_stream *data) | 2631 chain_rewind_coding_stream_1 (struct chain_coding_stream *data) |
2638 { | 2632 { |
3268 { | 3262 { |
3269 struct undecided_coding_system *data = | 3263 struct undecided_coding_system *data = |
3270 XCODING_SYSTEM_TYPE_DATA (cs, undecided); | 3264 XCODING_SYSTEM_TYPE_DATA (cs, undecided); |
3271 int need_space = 0; | 3265 int need_space = 0; |
3272 | 3266 |
3273 write_c_string (printcharfun, "("); | 3267 write_ascstring (printcharfun, "("); |
3274 if (data->do_eol) | 3268 if (data->do_eol) |
3275 { | 3269 { |
3276 write_c_string (printcharfun, "do-eol"); | 3270 write_ascstring (printcharfun, "do-eol"); |
3277 need_space = 1; | 3271 need_space = 1; |
3278 } | 3272 } |
3279 if (data->do_coding) | 3273 if (data->do_coding) |
3280 { | 3274 { |
3281 if (need_space) | 3275 if (need_space) |
3282 write_c_string (printcharfun, " "); | 3276 write_ascstring (printcharfun, " "); |
3283 write_c_string (printcharfun, "do-coding"); | 3277 write_ascstring (printcharfun, "do-coding"); |
3284 need_space = 1; | 3278 need_space = 1; |
3285 } | 3279 } |
3286 if (!NILP (data->cs)) | 3280 if (!NILP (data->cs)) |
3287 { | 3281 { |
3288 if (need_space) | 3282 if (need_space) |
3289 write_c_string (printcharfun, " "); | 3283 write_ascstring (printcharfun, " "); |
3290 write_c_string (printcharfun, "coding-system="); | 3284 write_ascstring (printcharfun, "coding-system="); |
3291 print_coding_system_in_print_method (data->cs, printcharfun, escapeflag); | 3285 print_coding_system_in_print_method (data->cs, printcharfun, escapeflag); |
3292 } | 3286 } |
3293 write_c_string (printcharfun, ")"); | 3287 write_ascstring (printcharfun, ")"); |
3294 } | 3288 } |
3295 | 3289 |
3296 static void | 3290 static void |
3297 undecided_mark_coding_stream (struct coding_stream *str) | 3291 undecided_mark_coding_stream (struct coding_stream *str) |
3298 { | 3292 { |
4310 static void | 4304 static void |
4311 gzip_print (Lisp_Object cs, Lisp_Object printcharfun, int escapeflag) | 4305 gzip_print (Lisp_Object cs, Lisp_Object printcharfun, int escapeflag) |
4312 { | 4306 { |
4313 struct gzip_coding_system *data = XCODING_SYSTEM_TYPE_DATA (cs, gzip); | 4307 struct gzip_coding_system *data = XCODING_SYSTEM_TYPE_DATA (cs, gzip); |
4314 | 4308 |
4315 write_c_string (printcharfun, "("); | 4309 write_ascstring (printcharfun, "("); |
4316 if (data->level == -1) | 4310 if (data->level == -1) |
4317 write_c_string (printcharfun, "default"); | 4311 write_ascstring (printcharfun, "default"); |
4318 else | 4312 else |
4319 print_internal (make_int (data->level), printcharfun, 0); | 4313 print_internal (make_int (data->level), printcharfun, 0); |
4320 write_c_string (printcharfun, ")"); | 4314 write_ascstring (printcharfun, ")"); |
4321 } | 4315 } |
4322 | 4316 |
4323 static int | 4317 static int |
4324 gzip_putprop (Lisp_Object codesys, Lisp_Object key, Lisp_Object value) | 4318 gzip_putprop (Lisp_Object codesys, Lisp_Object key, Lisp_Object value) |
4325 { | 4319 { |
4748 vars_of_file_coding (void) | 4742 vars_of_file_coding (void) |
4749 { | 4743 { |
4750 /* We always have file-coding support */ | 4744 /* We always have file-coding support */ |
4751 Fprovide (intern ("file-coding")); | 4745 Fprovide (intern ("file-coding")); |
4752 | 4746 |
4753 QScoding_system_cookie = build_string (";;;###coding system: "); | 4747 QScoding_system_cookie = build_ascstring (";;;###coding system: "); |
4754 staticpro (&QScoding_system_cookie); | 4748 staticpro (&QScoding_system_cookie); |
4755 | 4749 |
4756 #ifdef HAVE_DEFAULT_EOL_DETECTION | 4750 #ifdef HAVE_DEFAULT_EOL_DETECTION |
4757 /* #### Find a more appropriate place for this comment. | 4751 /* #### Find a more appropriate place for this comment. |
4758 WARNING: The existing categories are intimately tied to the function | 4752 WARNING: The existing categories are intimately tied to the function |
4836 void | 4830 void |
4837 complex_vars_of_file_coding (void) | 4831 complex_vars_of_file_coding (void) |
4838 { | 4832 { |
4839 Fmake_coding_system_internal | 4833 Fmake_coding_system_internal |
4840 (Qconvert_eol_cr, Qconvert_eol, | 4834 (Qconvert_eol_cr, Qconvert_eol, |
4841 build_msg_string ("Convert CR to LF"), | 4835 build_defer_string ("Convert CR to LF"), |
4842 nconc2 (list6 (Qdocumentation, | 4836 nconc2 (list6 (Qdocumentation, |
4843 build_msg_string ( | 4837 build_defer_string ( |
4844 "Converts CR (used to mark the end of a line on Macintosh systems) to LF\n" | 4838 "Converts CR (used to mark the end of a line on Macintosh systems) to LF\n" |
4845 "(used internally and under Unix to mark the end of a line)."), | 4839 "(used internally and under Unix to mark the end of a line)."), |
4846 Qmnemonic, build_string ("CR->LF"), | 4840 Qmnemonic, build_ascstring ("CR->LF"), |
4847 Qsubtype, Qcr), | 4841 Qsubtype, Qcr), |
4848 /* VERY IMPORTANT! Tell make-coding-system not to generate | 4842 /* VERY IMPORTANT! Tell make-coding-system not to generate |
4849 subsidiaries -- it needs the coding systems we're creating | 4843 subsidiaries -- it needs the coding systems we're creating |
4850 to do so! */ | 4844 to do so! */ |
4851 list4 (Qeol_type, Qlf, | 4845 list4 (Qeol_type, Qlf, |
4852 Qsafe_charsets, Qt))); | 4846 Qsafe_charsets, Qt))); |
4853 | 4847 |
4854 Fmake_coding_system_internal | 4848 Fmake_coding_system_internal |
4855 (Qconvert_eol_lf, Qconvert_eol, | 4849 (Qconvert_eol_lf, Qconvert_eol, |
4856 build_msg_string ("Convert LF to LF (do nothing)"), | 4850 build_defer_string ("Convert LF to LF (do nothing)"), |
4857 nconc2 (list6 (Qdocumentation, | 4851 nconc2 (list6 (Qdocumentation, |
4858 build_msg_string ( | 4852 build_defer_string ( |
4859 "Do nothing."), | 4853 "Do nothing."), |
4860 Qmnemonic, build_string ("LF->LF"), | 4854 Qmnemonic, build_ascstring ("LF->LF"), |
4861 Qsubtype, Qlf), | 4855 Qsubtype, Qlf), |
4862 /* VERY IMPORTANT! Tell make-coding-system not to generate | 4856 /* VERY IMPORTANT! Tell make-coding-system not to generate |
4863 subsidiaries -- it needs the coding systems we're creating | 4857 subsidiaries -- it needs the coding systems we're creating |
4864 to do so! */ | 4858 to do so! */ |
4865 list4 (Qeol_type, Qlf, | 4859 list4 (Qeol_type, Qlf, |
4866 Qsafe_charsets, Qt))); | 4860 Qsafe_charsets, Qt))); |
4867 | 4861 |
4868 Fmake_coding_system_internal | 4862 Fmake_coding_system_internal |
4869 (Qconvert_eol_crlf, Qconvert_eol, | 4863 (Qconvert_eol_crlf, Qconvert_eol, |
4870 build_msg_string ("Convert CRLF to LF"), | 4864 build_defer_string ("Convert CRLF to LF"), |
4871 nconc2 (list6 (Qdocumentation, | 4865 nconc2 (list6 (Qdocumentation, |
4872 build_msg_string ( | 4866 build_defer_string ( |
4873 "Converts CR+LF (used to mark the end of a line on Macintosh systems) to LF\n" | 4867 "Converts CR+LF (used to mark the end of a line on Macintosh systems) to LF\n" |
4874 "(used internally and under Unix to mark the end of a line)."), | 4868 "(used internally and under Unix to mark the end of a line)."), |
4875 Qmnemonic, build_string ("CRLF->LF"), | 4869 Qmnemonic, build_ascstring ("CRLF->LF"), |
4876 Qsubtype, Qcrlf), | 4870 Qsubtype, Qcrlf), |
4877 | 4871 |
4878 /* VERY IMPORTANT! Tell make-coding-system not to generate | 4872 /* VERY IMPORTANT! Tell make-coding-system not to generate |
4879 subsidiaries -- it needs the coding systems we're creating | 4873 subsidiaries -- it needs the coding systems we're creating |
4880 to do so! */ | 4874 to do so! */ |
4881 list4 (Qeol_type, Qlf, | 4875 list4 (Qeol_type, Qlf, |
4882 Qsafe_charsets, Qt))); | 4876 Qsafe_charsets, Qt))); |
4883 | 4877 |
4884 Fmake_coding_system_internal | 4878 Fmake_coding_system_internal |
4885 (Qconvert_eol_autodetect, Qconvert_eol, | 4879 (Qconvert_eol_autodetect, Qconvert_eol, |
4886 build_msg_string ("Autodetect EOL type"), | 4880 build_defer_string ("Autodetect EOL type"), |
4887 nconc2 (list6 (Qdocumentation, | 4881 nconc2 (list6 (Qdocumentation, |
4888 build_msg_string ( | 4882 build_defer_string ( |
4889 "Autodetect the end-of-line type."), | 4883 "Autodetect the end-of-line type."), |
4890 Qmnemonic, build_string ("Auto-EOL"), | 4884 Qmnemonic, build_ascstring ("Auto-EOL"), |
4891 Qsubtype, Qnil), | 4885 Qsubtype, Qnil), |
4892 /* VERY IMPORTANT! Tell make-coding-system not to generate | 4886 /* VERY IMPORTANT! Tell make-coding-system not to generate |
4893 subsidiaries -- it needs the coding systems we're creating | 4887 subsidiaries -- it needs the coding systems we're creating |
4894 to do so! */ | 4888 to do so! */ |
4895 list4 (Qeol_type, Qlf, | 4889 list4 (Qeol_type, Qlf, |
4896 Qsafe_charsets, Qt))); | 4890 Qsafe_charsets, Qt))); |
4897 | 4891 |
4898 Fmake_coding_system_internal | 4892 Fmake_coding_system_internal |
4899 (Qundecided, Qundecided, | 4893 (Qundecided, Qundecided, |
4900 build_msg_string ("Undecided (auto-detect)"), | 4894 build_defer_string ("Undecided (auto-detect)"), |
4901 nconc2 (list4 (Qdocumentation, | 4895 nconc2 (list4 (Qdocumentation, |
4902 build_msg_string | 4896 build_defer_string |
4903 ("Automatically detects the correct encoding."), | 4897 ("Automatically detects the correct encoding."), |
4904 Qmnemonic, build_string ("Auto")), | 4898 Qmnemonic, build_ascstring ("Auto")), |
4905 list6 (Qdo_eol, Qt, Qdo_coding, Qt, | 4899 list6 (Qdo_eol, Qt, Qdo_coding, Qt, |
4906 /* We do EOL detection ourselves so we don't need to be | 4900 /* We do EOL detection ourselves so we don't need to be |
4907 wrapped in an EOL detector. (It doesn't actually hurt, | 4901 wrapped in an EOL detector. (It doesn't actually hurt, |
4908 though, I don't think.) */ | 4902 though, I don't think.) */ |
4909 Qeol_type, Qlf))); | 4903 Qeol_type, Qlf))); |
4910 | 4904 |
4911 Fmake_coding_system_internal | 4905 Fmake_coding_system_internal |
4912 (intern ("undecided-dos"), Qundecided, | 4906 (intern ("undecided-dos"), Qundecided, |
4913 build_msg_string ("Undecided (auto-detect) (CRLF)"), | 4907 build_defer_string ("Undecided (auto-detect) (CRLF)"), |
4914 nconc2 (list4 (Qdocumentation, | 4908 nconc2 (list4 (Qdocumentation, |
4915 build_msg_string | 4909 build_defer_string |
4916 ("Automatically detects the correct encoding; EOL type of CRLF forced."), | 4910 ("Automatically detects the correct encoding; EOL type of CRLF forced."), |
4917 Qmnemonic, build_string ("Auto")), | 4911 Qmnemonic, build_ascstring ("Auto")), |
4918 list4 (Qdo_coding, Qt, | 4912 list4 (Qdo_coding, Qt, |
4919 Qeol_type, Qcrlf))); | 4913 Qeol_type, Qcrlf))); |
4920 | 4914 |
4921 Fmake_coding_system_internal | 4915 Fmake_coding_system_internal |
4922 (intern ("undecided-unix"), Qundecided, | 4916 (intern ("undecided-unix"), Qundecided, |
4923 build_msg_string ("Undecided (auto-detect) (LF)"), | 4917 build_defer_string ("Undecided (auto-detect) (LF)"), |
4924 nconc2 (list4 (Qdocumentation, | 4918 nconc2 (list4 (Qdocumentation, |
4925 build_msg_string | 4919 build_defer_string |
4926 ("Automatically detects the correct encoding; EOL type of LF forced."), | 4920 ("Automatically detects the correct encoding; EOL type of LF forced."), |
4927 Qmnemonic, build_string ("Auto")), | 4921 Qmnemonic, build_ascstring ("Auto")), |
4928 list4 (Qdo_coding, Qt, | 4922 list4 (Qdo_coding, Qt, |
4929 Qeol_type, Qlf))); | 4923 Qeol_type, Qlf))); |
4930 | 4924 |
4931 Fmake_coding_system_internal | 4925 Fmake_coding_system_internal |
4932 (intern ("undecided-mac"), Qundecided, | 4926 (intern ("undecided-mac"), Qundecided, |
4933 build_msg_string ("Undecided (auto-detect) (CR)"), | 4927 build_defer_string ("Undecided (auto-detect) (CR)"), |
4934 nconc2 (list4 (Qdocumentation, | 4928 nconc2 (list4 (Qdocumentation, |
4935 build_msg_string | 4929 build_defer_string |
4936 ("Automatically detects the correct encoding; EOL type of CR forced."), | 4930 ("Automatically detects the correct encoding; EOL type of CR forced."), |
4937 Qmnemonic, build_string ("Auto")), | 4931 Qmnemonic, build_ascstring ("Auto")), |
4938 list4 (Qdo_coding, Qt, | 4932 list4 (Qdo_coding, Qt, |
4939 Qeol_type, Qcr))); | 4933 Qeol_type, Qcr))); |
4940 | 4934 |
4941 /* Need to create this here or we're really screwed. */ | 4935 /* Need to create this here or we're really screwed. */ |
4942 Fmake_coding_system_internal | 4936 Fmake_coding_system_internal |
4943 (Qraw_text, Qno_conversion, | 4937 (Qraw_text, Qno_conversion, |
4944 build_msg_string ("Raw Text"), | 4938 build_defer_string ("Raw Text"), |
4945 nconc2 (list4 (Qdocumentation, | 4939 nconc2 (list4 (Qdocumentation, |
4946 build_msg_string ("Raw text converts only line-break " | 4940 build_defer_string ("Raw text converts only line-break " |
4947 "codes, and acts otherwise like " | 4941 "codes, and acts otherwise like " |
4948 "`binary'."), | 4942 "`binary'."), |
4949 Qmnemonic, build_string ("Raw")), | 4943 Qmnemonic, build_ascstring ("Raw")), |
4950 #ifdef MULE | 4944 #ifdef MULE |
4951 list2 (Qsafe_charsets, list3 (Vcharset_ascii, Vcharset_control_1, | 4945 list2 (Qsafe_charsets, list3 (Vcharset_ascii, Vcharset_control_1, |
4952 Vcharset_latin_iso8859_1)))); | 4946 Vcharset_latin_iso8859_1)))); |
4953 | 4947 |
4954 #else | 4948 #else |
4955 Qnil)); | 4949 Qnil)); |
4956 #endif | 4950 #endif |
4957 | 4951 |
4958 Fmake_coding_system_internal | 4952 Fmake_coding_system_internal |
4959 (Qbinary, Qno_conversion, | 4953 (Qbinary, Qno_conversion, |
4960 build_msg_string ("Binary"), | 4954 build_defer_string ("Binary"), |
4961 nconc2 (list6 (Qdocumentation, | 4955 nconc2 (list6 (Qdocumentation, |
4962 build_msg_string ( | 4956 build_defer_string ( |
4963 "This coding system is as close as it comes to doing no conversion.\n" | 4957 "This coding system is as close as it comes to doing no conversion.\n" |
4964 "On input, each byte is converted directly into the character\n" | 4958 "On input, each byte is converted directly into the character\n" |
4965 "with the corresponding code -- i.e. from the `ascii', `control-1',\n" | 4959 "with the corresponding code -- i.e. from the `ascii', `control-1',\n" |
4966 "or `latin-1' character sets. On output, these characters are\n" | 4960 "or `latin-1' character sets. On output, these characters are\n" |
4967 "converted back to the corresponding bytes, and other characters\n" | 4961 "converted back to the corresponding bytes, and other characters\n" |
4968 "are converted to the default character, i.e. `~'."), | 4962 "are converted to the default character, i.e. `~'."), |
4969 Qeol_type, Qlf, | 4963 Qeol_type, Qlf, |
4970 Qmnemonic, build_string ("Binary")), | 4964 Qmnemonic, build_ascstring ("Binary")), |
4971 #ifdef MULE | 4965 #ifdef MULE |
4972 list2 (Qsafe_charsets, list3 (Vcharset_ascii, Vcharset_control_1, | 4966 list2 (Qsafe_charsets, list3 (Vcharset_ascii, Vcharset_control_1, |
4973 Vcharset_latin_iso8859_1)))); | 4967 Vcharset_latin_iso8859_1)))); |
4974 | 4968 |
4975 #else | 4969 #else |