comparison src/file-coding.c @ 438:84b14dcb0985 r21-2-27

Import from CVS: tag r21-2-27
author cvs
date Mon, 13 Aug 2007 11:32:25 +0200
parents 3a7e78e1142d
children 8de8e3f6228a
comparison
equal deleted inserted replaced
437:e2a4e8b94b82 438:84b14dcb0985
422 break; 422 break;
423 } 423 }
424 } 424 }
425 } 425 }
426 426
427 static enum eol_type 427 static eol_type_t
428 symbol_to_eol_type (Lisp_Object symbol) 428 symbol_to_eol_type (Lisp_Object symbol)
429 { 429 {
430 CHECK_SYMBOL (symbol); 430 CHECK_SYMBOL (symbol);
431 if (NILP (symbol)) return EOL_AUTODETECT; 431 if (NILP (symbol)) return EOL_AUTODETECT;
432 if (EQ (symbol, Qlf)) return EOL_LF; 432 if (EQ (symbol, Qlf)) return EOL_LF;
436 signal_simple_error ("Unrecognized eol type", symbol); 436 signal_simple_error ("Unrecognized eol type", symbol);
437 return EOL_AUTODETECT; /* not reached */ 437 return EOL_AUTODETECT; /* not reached */
438 } 438 }
439 439
440 static Lisp_Object 440 static Lisp_Object
441 eol_type_to_symbol (enum eol_type type) 441 eol_type_to_symbol (eol_type_t type)
442 { 442 {
443 switch (type) 443 switch (type)
444 { 444 {
445 default: abort (); 445 default: abort ();
446 case EOL_LF: return Qlf; 446 case EOL_LF: return Qlf;
1057 meaningful or nothing at all. */ 1057 meaningful or nothing at all. */
1058 return Qnil; 1058 return Qnil;
1059 } 1059 }
1060 1060
1061 static Lisp_Object 1061 static Lisp_Object
1062 subsidiary_coding_system (Lisp_Object coding_system, enum eol_type type) 1062 subsidiary_coding_system (Lisp_Object coding_system, eol_type_t type)
1063 { 1063 {
1064 Lisp_Coding_System *cs = XCODING_SYSTEM (coding_system); 1064 Lisp_Coding_System *cs = XCODING_SYSTEM (coding_system);
1065 Lisp_Object new_coding_system; 1065 Lisp_Object new_coding_system;
1066 1066
1067 if (CODING_SYSTEM_EOL_TYPE (cs) != EOL_AUTODETECT) 1067 if (CODING_SYSTEM_EOL_TYPE (cs) != EOL_AUTODETECT)
1398 /* Detecting the encoding of data */ 1398 /* Detecting the encoding of data */
1399 /************************************************************************/ 1399 /************************************************************************/
1400 1400
1401 struct detection_state 1401 struct detection_state
1402 { 1402 {
1403 enum eol_type eol_type; 1403 eol_type_t eol_type;
1404 int seen_non_ascii; 1404 int seen_non_ascii;
1405 int mask; 1405 int mask;
1406 #ifdef MULE 1406 #ifdef MULE
1407 struct 1407 struct
1408 { 1408 {
1479 /* Perhaps the only thing useful you learn from intensive Microsoft 1479 /* Perhaps the only thing useful you learn from intensive Microsoft
1480 technical interviews */ 1480 technical interviews */
1481 return (mask & (mask - 1)) == 0; 1481 return (mask & (mask - 1)) == 0;
1482 } 1482 }
1483 1483
1484 static enum eol_type 1484 static eol_type_t
1485 detect_eol_type (struct detection_state *st, CONST unsigned char *src, 1485 detect_eol_type (struct detection_state *st, CONST unsigned char *src,
1486 unsigned int n) 1486 unsigned int n)
1487 { 1487 {
1488 int c; 1488 int c;
1489 1489
1641 1641
1642 #define LENGTH(string_constant) (sizeof (string_constant) - 1) 1642 #define LENGTH(string_constant) (sizeof (string_constant) - 1)
1643 1643
1644 void 1644 void
1645 determine_real_coding_system (Lstream *stream, Lisp_Object *codesys_in_out, 1645 determine_real_coding_system (Lstream *stream, Lisp_Object *codesys_in_out,
1646 enum eol_type *eol_type_in_out) 1646 eol_type_t *eol_type_in_out)
1647 { 1647 {
1648 struct detection_state decst; 1648 struct detection_state decst;
1649 1649
1650 if (*eol_type_in_out == EOL_AUTODETECT) 1650 if (*eol_type_in_out == EOL_AUTODETECT)
1651 *eol_type_in_out = XCODING_SYSTEM_EOL_TYPE (*codesys_in_out); 1651 *eol_type_in_out = XCODING_SYSTEM_EOL_TYPE (*codesys_in_out);
1944 /* EOL_TYPE specifies the type of end-of-line conversion that 1944 /* EOL_TYPE specifies the type of end-of-line conversion that
1945 currently applies. We need to keep this separate from the 1945 currently applies. We need to keep this separate from the
1946 EOL type stored in CODESYS because the latter might indicate 1946 EOL type stored in CODESYS because the latter might indicate
1947 automatic EOL-type detection while the former will always 1947 automatic EOL-type detection while the former will always
1948 indicate a particular EOL type. */ 1948 indicate a particular EOL type. */
1949 enum eol_type eol_type; 1949 eol_type_t eol_type;
1950 #ifdef MULE 1950 #ifdef MULE
1951 /* Additional ISO2022 information. We define the structure above 1951 /* Additional ISO2022 information. We define the structure above
1952 because it's also needed by the detection routines. */ 1952 because it's also needed by the detection routines. */
1953 struct iso2022_decoder iso2022; 1953 struct iso2022_decoder iso2022;
1954 1954