comparison src/file-coding.h @ 800:a5954632b187

[xemacs-hg @ 2002-03-31 08:27:14 by ben] more fixes, first crack at finishing behavior implementation TODO.ben-mule-21-5: Update. configure.in: Fix for new error-checking types. make-mswin-unicode.pl: Don't be fucked up by CRLF. Output code to force errors when nonintercepted Windows calls issued. behavior.el, dumped-lisp.el, menubar-items.el: Add support for saving using custom. Load into a dumped XEmacs. Correct :title to :short-doc in accordance with behavior-defs.el. Add a submenu under Options for turning on/off behaviors. cl-macs.el: Properly document `loop'. Fix a minor bug in keymap iteration and add support for bit-vector iteration. lisp-mode.el: Rearrange and add items for macro expanding. menubar-items.el: Document connection between these two functions. window.el: Port stuff from GNU 21.1. config.inc.samp, xemacs.mak: Separate out and add new variable for controlling error-checking. s/windowsnt.h: Use new ERROR_CHECK_ALL; not related to DEBUG_XEMACS. alloc.c, backtrace.h, buffer.c, buffer.h, bytecode.c, callproc.c, casetab.c, charset.h, chartab.c, cmdloop.c, config.h.in, console-msw.c, console-stream.c, console-tty.c, console.c, console.h, data.c, device-msw.c, device.c, device.h, dired-msw.c, dired.c, dumper.c, editfns.c, eldap.c, elhash.c, emacs.c, eval.c, event-Xt.c, event-gtk.c, event-msw.c, event-stream.c, events.c, extents.c, faces.c, file-coding.c, file-coding.h, fileio.c, frame-msw.c, frame.c, frame.h, glyphs-gtk.c, glyphs-msw.c, glyphs-shared.c, glyphs-widget.c, glyphs-x.c, glyphs.c, glyphs.h, insdel.c, intl-auto-encap-win32.c, intl-auto-encap-win32.h, intl-encap-win32.c, intl-win32.c, keymap.c, lisp-union.h, lisp.h, lread.c, lrecord.h, lstream.c, lstream.h, macros.c, marker.c, md5.c, menubar-x.c, menubar.c, mule-coding.c, ntproc.c, objects-gtk.c, objects-msw.c, objects-x.c, objects.c, opaque.c, print.c, process-nt.c, process-unix.c, process.c, rangetab.c, redisplay-msw.c, redisplay-output.c, redisplay.c, regex.c, scrollbar-msw.c, select-msw.c, signal.c, specifier.c, specifier.h, symbols.c, sysdep.c, syswindows.h, text.c, text.h, toolbar-msw.c, tooltalk.c, ui-gtk.c, unicode.c, window.c: Redo error-checking macros: ERROR_CHECK_TYPECHECK -> ERROR_CHECK_TYPES, ERROR_CHECK_CHARBPOS -> ERROR_CHECK_TEXT, add ERROR_CHECK_DISPLAY, ERROR_CHECK_STRUCTURES. Document these in config.h.in. Fix code to follow docs. Fix *_checking_assert() in accordance with new names. Attempt to fix periodic redisplay crash freeing display line structures. Add first implementation of sledgehammer redisplay check. Redo print_*() to use write_fmt_string(), write_fmt_string_lisp(). Fix bug in md5 handling. Rename character-to-unicode to char-to-unicode; same for unicode-to-char{acter}. Move chartab documentation to `make-char-table'. Some header cleanup. Clean up remaining places where nonintercepted Windows calls are being used. automated/mule-tests.el: Fix for new Unicode support.
author ben
date Sun, 31 Mar 2002 08:30:17 +0000
parents e38acbeb1cae
children 19dfb459d51a
comparison
equal deleted inserted replaced
799:03d9f9084848 800:a5954632b187
446 /***** Defining new coding-system types *****/ 446 /***** Defining new coding-system types *****/
447 447
448 #define coding_system_data_offset (offsetof (Lisp_Coding_System, data)) 448 #define coding_system_data_offset (offsetof (Lisp_Coding_System, data))
449 extern const struct lrecord_description coding_system_empty_extra_description[]; 449 extern const struct lrecord_description coding_system_empty_extra_description[];
450 450
451 #ifdef ERROR_CHECK_TYPECHECK 451 #ifdef ERROR_CHECK_TYPES
452 #define DECLARE_CODING_SYSTEM_TYPE(type) \ 452 #define DECLARE_CODING_SYSTEM_TYPE(type) \
453 \ 453 \
454 extern struct coding_system_methods * type##_coding_system_methods; \ 454 extern struct coding_system_methods * type##_coding_system_methods; \
455 INLINE_HEADER struct type##_coding_system * \ 455 INLINE_HEADER struct type##_coding_system * \
456 error_check_##type##_coding_system_data (Lisp_Coding_System *cs); \ 456 error_check_##type##_coding_system_data (Lisp_Coding_System *cs); \
485 \ 485 \
486 DECLARE_NOTHING 486 DECLARE_NOTHING
487 #else 487 #else
488 #define DECLARE_CODING_SYSTEM_TYPE(type) \ 488 #define DECLARE_CODING_SYSTEM_TYPE(type) \
489 extern struct coding_system_methods * type##_coding_system_methods 489 extern struct coding_system_methods * type##_coding_system_methods
490 #endif /* ERROR_CHECK_TYPECHECK */ 490 #endif /* ERROR_CHECK_TYPES */
491 491
492 #define DEFINE_CODING_SYSTEM_TYPE(type) \ 492 #define DEFINE_CODING_SYSTEM_TYPE(type) \
493 struct coding_system_methods * type##_coding_system_methods 493 struct coding_system_methods * type##_coding_system_methods
494 494
495 #define INITIALIZE_CODING_SYSTEM_TYPE(ty, pred_sym) do { \ 495 #define INITIALIZE_CODING_SYSTEM_TYPE(ty, pred_sym) do { \
542 #define CODING_SYSTEM_TYPE_P(cs, type) \ 542 #define CODING_SYSTEM_TYPE_P(cs, type) \
543 ((cs)->methods == type##_coding_system_methods) 543 ((cs)->methods == type##_coding_system_methods)
544 #define XCODING_SYSTEM_TYPE_P(cs, type) \ 544 #define XCODING_SYSTEM_TYPE_P(cs, type) \
545 CODING_SYSTEM_TYPE_P (XCODING_SYSTEM (cs), type) 545 CODING_SYSTEM_TYPE_P (XCODING_SYSTEM (cs), type)
546 546
547 #ifdef ERROR_CHECK_TYPECHECK 547 #ifdef ERROR_CHECK_TYPES
548 # define CODING_SYSTEM_TYPE_DATA(cs, type) \ 548 # define CODING_SYSTEM_TYPE_DATA(cs, type) \
549 error_check_##type##_coding_system_data (cs) 549 error_check_##type##_coding_system_data (cs)
550 #else 550 #else
551 # define CODING_SYSTEM_TYPE_DATA(cs, type) \ 551 # define CODING_SYSTEM_TYPE_DATA(cs, type) \
552 ((struct type##_coding_system *) \ 552 ((struct type##_coding_system *) \
554 #endif 554 #endif
555 555
556 #define XCODING_SYSTEM_TYPE_DATA(cs, type) \ 556 #define XCODING_SYSTEM_TYPE_DATA(cs, type) \
557 CODING_SYSTEM_TYPE_DATA (XCODING_SYSTEM_OF_TYPE (cs, type), type) 557 CODING_SYSTEM_TYPE_DATA (XCODING_SYSTEM_OF_TYPE (cs, type), type)
558 558
559 #ifdef ERROR_CHECK_TYPECHECK 559 #ifdef ERROR_CHECK_TYPES
560 # define XCODING_SYSTEM_OF_TYPE(x, type) \ 560 # define XCODING_SYSTEM_OF_TYPE(x, type) \
561 error_check_##type##_coding_system_type (x) 561 error_check_##type##_coding_system_type (x)
562 # define XSETCODING_SYSTEM_OF_TYPE(x, p, type) do \ 562 # define XSETCODING_SYSTEM_OF_TYPE(x, p, type) do \
563 { \ 563 { \
564 x = wrap_coding_system (p); \ 564 x = wrap_coding_system (p); \
915 state-dependent data and should be moved there. */ 915 state-dependent data and should be moved there. */
916 unsigned int ch; 916 unsigned int ch;
917 917
918 /* Coding-system-specific data holding extra state about the 918 /* Coding-system-specific data holding extra state about the
919 conversion. Logically a struct TYPE_coding_stream; a pointer 919 conversion. Logically a struct TYPE_coding_stream; a pointer
920 to such a struct, with (when ERROR_CHECK_TYPECHECK is defined) 920 to such a struct, with (when ERROR_CHECK_TYPES is defined)
921 error-checking that this is really a structure of that type 921 error-checking that this is really a structure of that type
922 (checking the corresponding coding system type) can be retrieved using 922 (checking the corresponding coding system type) can be retrieved using
923 CODING_STREAM_TYPE_DATA(). Allocated at the same time that 923 CODING_STREAM_TYPE_DATA(). Allocated at the same time that
924 CODESYS is set (which may occur at any time, even multiple times, 924 CODESYS is set (which may occur at any time, even multiple times,
925 during the lifetime of the stream). The size comes from 925 during the lifetime of the stream). The size comes from
926 methods->coding_data_size. */ 926 methods->coding_data_size. */
927 void *data; 927 void *data;
928 928
929 enum encode_decode direction; 929 enum encode_decode direction;
930 930
931 /* If set, don't close the stream at the other end when being closed. */
932 unsigned int no_close_other:1;
933
931 /* #### Temporary test */ 934 /* #### Temporary test */
932 unsigned int finalized:1; 935 unsigned int finalized:1;
933 }; 936 };
934 937
935 #define CODING_STREAM_DATA(stream) LSTREAM_TYPE_DATA (stream, coding) 938 #define CODING_STREAM_DATA(stream) LSTREAM_TYPE_DATA (stream, coding)
936 939
937 #ifdef ERROR_CHECK_TYPECHECK 940 #ifdef ERROR_CHECK_TYPES
938 # define CODING_STREAM_TYPE_DATA(s, type) \ 941 # define CODING_STREAM_TYPE_DATA(s, type) \
939 error_check_##type##_coding_stream_data (s) 942 error_check_##type##_coding_stream_data (s)
940 #else 943 #else
941 # define CODING_STREAM_TYPE_DATA(s, type) \ 944 # define CODING_STREAM_TYPE_DATA(s, type) \
942 ((struct type##_coding_stream *) (s)->data) 945 ((struct type##_coding_stream *) (s)->data)
1053 Char_ASCII *prefix, 1056 Char_ASCII *prefix,
1054 Lisp_Object type, 1057 Lisp_Object type,
1055 Lisp_Object description, 1058 Lisp_Object description,
1056 Lisp_Object props); 1059 Lisp_Object props);
1057 Lisp_Object make_coding_input_stream (Lstream *stream, Lisp_Object codesys, 1060 Lisp_Object make_coding_input_stream (Lstream *stream, Lisp_Object codesys,
1058 enum encode_decode direction); 1061 enum encode_decode direction,
1062 int no_close_other);
1059 Lisp_Object make_coding_output_stream (Lstream *stream, Lisp_Object codesys, 1063 Lisp_Object make_coding_output_stream (Lstream *stream, Lisp_Object codesys,
1060 enum encode_decode direction); 1064 enum encode_decode direction,
1065 int no_close_other);
1061 void set_detection_results (struct detection_state *st, int detector, 1066 void set_detection_results (struct detection_state *st, int detector,
1062 int given); 1067 int given);
1063 1068
1064 #endif /* INCLUDED_file_coding_h_ */ 1069 #endif /* INCLUDED_file_coding_h_ */
1065 1070