Mercurial > hg > xemacs-beta
diff src/file-coding.c @ 272:c5d627a313b1 r21-0b34
Import from CVS: tag r21-0b34
author | cvs |
---|---|
date | Mon, 13 Aug 2007 10:28:48 +0200 |
parents | 8efd647ea9ca |
children | 70ad99077275 |
line wrap: on
line diff
--- a/src/file-coding.c Mon Aug 13 10:27:41 2007 +0200 +++ b/src/file-coding.c Mon Aug 13 10:28:48 2007 +0200 @@ -142,9 +142,8 @@ but we have to do so now. */ unsigned int output_direction_sequence :1; }; -#endif -Lisp_Object Fcopy_coding_system (Lisp_Object old_coding_system, - Lisp_Object new_name); +#endif /* MULE */ +EXFUN (Fcopy_coding_system, 2); #ifdef MULE struct detection_state; static int detect_coding_sjis (struct detection_state *st, @@ -273,7 +272,7 @@ (markobj) (CODING_SYSTEM_CCL_DECODE (codesys)); (markobj) (CODING_SYSTEM_CCL_ENCODE (codesys)); break; -#endif +#endif /* MULE */ default: break; } @@ -320,7 +319,7 @@ c->iso2022.output_conv = 0; } break; -#endif +#endif /* MULE */ default: break; } @@ -356,7 +355,7 @@ static void setup_eol_coding_systems (struct Lisp_Coding_System *codesys) { - Lisp_Object codesys_obj = Qnil; + Lisp_Object codesys_obj; int len = string_length (XSYMBOL (CODING_SYSTEM_NAME (codesys))->name); char *codesys_name = (char *) alloca (len + 7); int mlen = -1; @@ -373,23 +372,23 @@ if (STRINGP (CODING_SYSTEM_MNEMONIC (codesys))) { - mlen = XSTRING_LENGTH(CODING_SYSTEM_MNEMONIC (codesys)); + mlen = XSTRING_LENGTH (CODING_SYSTEM_MNEMONIC (codesys)); codesys_mnemonic = (char *) alloca (mlen + 7); memcpy (codesys_mnemonic, XSTRING_DATA (CODING_SYSTEM_MNEMONIC (codesys)), mlen); } -#define DEFINE_SUB_CODESYS(op_sys, op_sys_abbr, Type) do { \ - strcpy (codesys_name + len, "-" op_sys); \ - if (mlen != -1) \ - strcpy (codesys_mnemonic + mlen, op_sys_abbr); \ - codesys_name_sym = intern (codesys_name); \ - sub_codesys_obj = Fcopy_coding_system (codesys_obj, codesys_name_sym); \ - XCODING_SYSTEM_EOL_TYPE (sub_codesys_obj) = Type; \ - if (mlen != -1) \ - XCODING_SYSTEM_MNEMONIC(sub_codesys_obj) = \ - build_string(codesys_mnemonic); \ - CODING_SYSTEM_##Type (codesys) = sub_codesys_obj; \ +#define DEFINE_SUB_CODESYS(op_sys, op_sys_abbr, Type) do { \ + strcpy (codesys_name + len, "-" op_sys); \ + if (mlen != -1) \ + strcpy (codesys_mnemonic + mlen, op_sys_abbr); \ + codesys_name_sym = intern (codesys_name); \ + sub_codesys_obj = Fcopy_coding_system (codesys_obj, codesys_name_sym); \ + XCODING_SYSTEM_EOL_TYPE (sub_codesys_obj) = Type; \ + if (mlen != -1) \ + XCODING_SYSTEM_MNEMONIC(sub_codesys_obj) = \ + build_string (codesys_mnemonic); \ + CODING_SYSTEM_##Type (codesys) = sub_codesys_obj; \ } while (0) DEFINE_SUB_CODESYS("unix", "", EOL_LF); @@ -398,7 +397,7 @@ } DEFUN ("coding-system-p", Fcoding_system_p, 1, 1, 0, /* -T if OBJECT is a coding system. +Return t if OBJECT is a coding system. A coding system is an object that defines how text containing multiple character sets is encoded into a stream of (typically 8-bit) bytes. The coding system is used to decode the stream into a series of @@ -432,11 +431,13 @@ */ (coding_system_or_name)) { + if (CODING_SYSTEMP (coding_system_or_name)) + return coding_system_or_name; + if (NILP (coding_system_or_name)) coding_system_or_name = Qbinary; - if (CODING_SYSTEMP (coding_system_or_name)) - return coding_system_or_name; - CHECK_SYMBOL (coding_system_or_name); + else + CHECK_SYMBOL (coding_system_or_name); return Fgethash (coding_system_or_name, Vcoding_system_hashtable, Qnil); } @@ -535,7 +536,7 @@ CODING_SYSTEM_CCL_DECODE (codesys) = Qnil; CODING_SYSTEM_CCL_ENCODE (codesys) = Qnil; } -#endif +#endif /* MULE */ CODING_SYSTEM_NAME (codesys) = name; return codesys; @@ -581,21 +582,20 @@ unparse_charset_conversion_specs (charset_conversion_spec_dynarr *load_here) { int i; - Lisp_Object result = Qnil; + Lisp_Object result; if (!load_here) return Qnil; - for (i = 0; i < Dynarr_length (load_here); i++) + for (i = 0, result = Qnil; i < Dynarr_length (load_here); i++) { - struct charset_conversion_spec *ccs = - Dynarr_atp (load_here, i); + struct charset_conversion_spec *ccs = Dynarr_atp (load_here, i); result = Fcons (list2 (ccs->from_charset, ccs->to_charset), result); } return Fnreverse (result); } -#endif +#endif /* MULE */ DEFUN ("make-coding-system", Fmake_coding_system, 2, 4, 0, /* Register symbol NAME as a coding system. @@ -1002,13 +1002,8 @@ { Lisp_Object cs = XCODING_SYSTEM_ISO2022_INITIAL_CHARSET (coding_system, gnum); - - if (CHARSETP(cs)){ - return XCHARSET_NAME(cs); - } - else { - return Qnil; - } + + return CHARSETP (cs) ? XCHARSET_NAME (cs) : Qnil; } DEFUN ("coding-system-charset", Fcoding_system_charset, 2, 2, 0, /* @@ -1020,9 +1015,9 @@ coding_system = Fget_coding_system (coding_system); CHECK_INT (gnum); - return coding_system_charset(coding_system, XINT (gnum)); + return coding_system_charset (coding_system, XINT (gnum)); } -#endif +#endif /* MULE */ DEFUN ("coding-system-property", Fcoding_system_property, 2, 2, 0, /* Return the PROP property of CODING-SYSTEM. @@ -1501,7 +1496,7 @@ if (*eol_type_in_out == EOL_AUTODETECT) *eol_type_in_out = XCODING_SYSTEM_EOL_TYPE (*codesys_in_out); - memset (&decst, 0, sizeof (decst)); + xzero (decst); decst.eol_type = *eol_type_in_out; decst.mask = ~0; @@ -1559,7 +1554,7 @@ instream = make_encoding_input_stream (lb_istr, Fget_coding_system (Qbinary)); istr = XLSTREAM (instream); GCPRO2 (instream, lb_instream); - memset (&decst, 0, sizeof (decst)); + xzero (decst); decst.eol_type = EOL_AUTODETECT; decst.mask = ~0; while (1) @@ -1727,8 +1722,8 @@ struct detection_state decst; }; -static int decoding_reader (Lstream *stream, unsigned char *data, int size); -static int decoding_writer (Lstream *stream, CONST unsigned char *data, int size); +static int decoding_reader (Lstream *stream, unsigned char *data, size_t size); +static int decoding_writer (Lstream *stream, CONST unsigned char *data, size_t size); static int decoding_rewinder (Lstream *stream); static int decoding_seekable_p (Lstream *stream); static int decoding_flusher (Lstream *stream); @@ -1762,7 +1757,7 @@ so we read data from the other end, decode it, and store it into DATA. */ static int -decoding_reader (Lstream *stream, unsigned char *data, int size) +decoding_reader (Lstream *stream, unsigned char *data, size_t size) { struct decoding_stream *str = DECODING_STREAM_DATA (stream); unsigned char *orig_data = data; @@ -1782,7 +1777,7 @@ most SIZE bytes, and delete the data from the runoff. */ if (Dynarr_length (str->runoff) > 0) { - int chunk = min (size, Dynarr_length (str->runoff)); + size_t chunk = min (size, (size_t) Dynarr_length (str->runoff)); memcpy (data, Dynarr_atp (str->runoff, 0), chunk); Dynarr_delete_many (str->runoff, 0, chunk); data += chunk; @@ -1824,7 +1819,7 @@ } static int -decoding_writer (Lstream *stream, CONST unsigned char *data, int size) +decoding_writer (Lstream *stream, CONST unsigned char *data, size_t size) { struct decoding_stream *str = DECODING_STREAM_DATA (stream); int retval; @@ -1849,7 +1844,7 @@ #ifdef MULE if (CODING_SYSTEM_TYPE (str->codesys) == CODESYS_ISO2022) { - Lisp_Object coding_system = Qnil; + Lisp_Object coding_system; XSETCODING_SYSTEM (coding_system, str->codesys); reset_iso2022 (coding_system, &str->iso2022); } @@ -1857,7 +1852,7 @@ { setup_ccl_program (&str->ccl, CODING_SYSTEM_CCL_DECODE (str->codesys)); } -#endif +#endif /* MULE */ str->flags = str->ch = 0; } @@ -1904,7 +1899,7 @@ Lisp_Object decoding_stream_coding_system (Lstream *stream) { - Lisp_Object coding_system = Qnil; + Lisp_Object coding_system; struct decoding_stream *str = DECODING_STREAM_DATA (stream); XSETCODING_SYSTEM (coding_system, str->codesys); @@ -1937,7 +1932,7 @@ struct decoding_stream *str = DECODING_STREAM_DATA (lstr); Lisp_Object obj; - memset (str, 0, sizeof (*str)); + xzero (*str); str->other_end = stream; str->runoff = (unsigned_char_dynarr *) Dynarr_new (unsigned_char); str->eol_type = EOL_AUTODETECT; @@ -1987,7 +1982,7 @@ if (CODING_SYSTEM_TYPE (str->codesys) == CODESYS_AUTODETECT || str->eol_type == EOL_AUTODETECT) { - Lisp_Object codesys = Qnil; + Lisp_Object codesys; XSETCODING_SYSTEM (codesys, str->codesys); detect_coding_type (&str->decst, src, n, @@ -2037,7 +2032,7 @@ case CODESYS_ISO2022: decode_coding_iso2022 (decoding, src, dst, n); break; -#endif +#endif /* MULE */ default: abort (); } @@ -2169,12 +2164,12 @@ /* Additional information (the state of the running CCL program) used by the CCL encoder. */ struct ccl_program ccl; -#endif +#endif /* MULE */ }; -static int encoding_reader (Lstream *stream, unsigned char *data, int size); +static int encoding_reader (Lstream *stream, unsigned char *data, size_t size); static int encoding_writer (Lstream *stream, CONST unsigned char *data, - int size); + size_t size); static int encoding_rewinder (Lstream *stream); static int encoding_seekable_p (Lstream *stream); static int encoding_flusher (Lstream *stream); @@ -2208,7 +2203,7 @@ so we read data from the other end, encode it, and store it into DATA. */ static int -encoding_reader (Lstream *stream, unsigned char *data, int size) +encoding_reader (Lstream *stream, unsigned char *data, size_t size) { struct encoding_stream *str = ENCODING_STREAM_DATA (stream); unsigned char *orig_data = data; @@ -2228,7 +2223,7 @@ most SIZE bytes, and delete the data from the runoff. */ if (Dynarr_length (str->runoff) > 0) { - int chunk = min (size, Dynarr_length (str->runoff)); + int chunk = min ((int) size, Dynarr_length (str->runoff)); memcpy (data, Dynarr_atp (str->runoff, 0), chunk); Dynarr_delete_many (str->runoff, 0, chunk); data += chunk; @@ -2270,7 +2265,7 @@ } static int -encoding_writer (Lstream *stream, CONST unsigned char *data, int size) +encoding_writer (Lstream *stream, CONST unsigned char *data, size_t size) { struct encoding_stream *str = ENCODING_STREAM_DATA (stream); int retval; @@ -2292,9 +2287,9 @@ static void reset_encoding_stream (struct encoding_stream *str) { +#ifdef MULE switch (CODING_SYSTEM_TYPE (str->codesys)) { -#ifdef MULE case CODESYS_ISO2022: { int i; @@ -2316,10 +2311,10 @@ case CODESYS_CCL: setup_ccl_program (&str->ccl, CODING_SYSTEM_CCL_ENCODE (str->codesys)); break; -#endif default: break; } +#endif /* MULE */ str->flags = str->ch = 0; } @@ -2363,7 +2358,7 @@ Lisp_Object encoding_stream_coding_system (Lstream *stream) { - Lisp_Object coding_system = Qnil; + Lisp_Object coding_system; struct encoding_stream *str = ENCODING_STREAM_DATA (stream); XSETCODING_SYSTEM (coding_system, str->codesys); @@ -2387,7 +2382,7 @@ struct encoding_stream *str = ENCODING_STREAM_DATA (lstr); Lisp_Object obj; - memset (str, 0, sizeof (*str)); + xzero (*str); str->runoff = Dynarr_new (unsigned_char); str->other_end = stream; set_encoding_stream_coding_system (lstr, codesys); @@ -3789,7 +3784,7 @@ unsigned int flags, ch; enum eol_type eol_type; struct decoding_stream *str = DECODING_STREAM_DATA (decoding); - Lisp_Object coding_system = Qnil; + Lisp_Object coding_system; unsigned_char_dynarr *real_dst = dst; CODING_STREAM_DECOMPOSE (str, flags, ch); @@ -4018,7 +4013,7 @@ struct encoding_stream *str, unsigned_char_dynarr *dst) { CONST char *inter94 = "()*+", *inter96= ",-./"; - int type; + unsigned int type; unsigned char final; Lisp_Object old_charset = str->iso2022.charset[reg]; @@ -4508,7 +4503,7 @@ Qnil) #endif -extern CONST Extbyte * +Extbyte * convert_to_external_format (CONST Bufbyte *ptr, Bytecount len, Extcount *len_out, @@ -4576,7 +4571,7 @@ return Dynarr_atp (conversion_out_dynarr, 0); } -extern CONST Bufbyte * +Bufbyte * convert_from_external_format (CONST Extbyte *ptr, Extcount len, Bytecount *len_out, @@ -4707,13 +4702,14 @@ defsymbol (&Qno_iso6429, "no-iso6429"); defsymbol (&Qinput_charset_conversion, "input-charset-conversion"); defsymbol (&Qoutput_charset_conversion, "output-charset-conversion"); + defsymbol (&Qshort, "short"); defsymbol (&Qno_ascii_eol, "no-ascii-eol"); defsymbol (&Qno_ascii_cntl, "no-ascii-cntl"); defsymbol (&Qseven, "seven"); defsymbol (&Qlock_shift, "lock-shift"); defsymbol (&Qescape_quoted, "escape-quoted"); -#endif +#endif /* MULE */ defsymbol (&Qencode, "encode"); defsymbol (&Qdecode, "decode"); @@ -4733,7 +4729,7 @@ "iso-8-2"); defsymbol (&coding_category_symbol[CODING_CATEGORY_ISO_LOCK_SHIFT], "iso-lock-shift"); -#endif /* MULE */ +#endif /* MULE */ defsymbol (&coding_category_symbol[CODING_CATEGORY_NO_CONVERSION], "no-conversion"); }