summaryrefslogtreecommitdiff
path: root/src/coding.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/coding.h')
-rw-r--r--src/coding.h63
1 files changed, 29 insertions, 34 deletions
diff --git a/src/coding.h b/src/coding.h
index 4e8b1056e43..ffd839f4212 100644
--- a/src/coding.h
+++ b/src/coding.h
@@ -434,11 +434,37 @@ struct coding_system
/* Flag bits of the coding system. The meaning of each bit is common
to all types of coding systems. */
- int common_flags;
+ unsigned common_flags : 14;
/* Mode bits of the coding system. See the comments of the macros
CODING_MODE_XXX. */
- unsigned int mode;
+ unsigned mode : 5;
+
+ /* The following two members specify how binary 8-bit code 128..255
+ are represented in source and destination text respectively. True
+ means they are represented by 2-byte sequence, false means they are
+ represented by 1-byte as is (see the comment in character.h). */
+ bool_bf src_multibyte : 1;
+ bool_bf dst_multibyte : 1;
+
+ /* True if the source of conversion is not in the member
+ `charbuf', but at `src_object'. */
+ bool_bf chars_at_source : 1;
+
+ /* Nonzero if the result of conversion is in `destination'
+ buffer rather than in `dst_object'. */
+ bool_bf raw_destination : 1;
+
+ /* Set to true if charbuf contains an annotation. */
+ bool_bf annotated : 1;
+
+ /* Used internally in coding.c. See the comment of detect_ascii. */
+ unsigned eol_seen : 3;
+
+ /* Finish status of code conversion. */
+ ENUM_BF (coding_result_code) result : 3;
+
+ int max_charset_id;
/* Detailed information specific to each type of coding system. */
union
@@ -451,16 +477,8 @@ struct coding_system
struct undecided_spec undecided;
} spec;
- int max_charset_id;
unsigned char *safe_charsets;
- /* The following two members specify how binary 8-bit code 128..255
- are represented in source and destination text respectively. True
- means they are represented by 2-byte sequence, false means they are
- represented by 1-byte as is (see the comment in character.h). */
- bool_bf src_multibyte : 1;
- bool_bf dst_multibyte : 1;
-
/* How may heading bytes we can skip for decoding. This is set to
-1 in setup_coding_system, and updated by detect_coding. So,
when this is equal to the byte length of the text being
@@ -472,21 +490,9 @@ struct coding_system
sequence. Set by detect_coding_utf_8. */
ptrdiff_t detected_utf8_bytes, detected_utf8_chars;
- /* Used internally in coding.c. See the comment of detect_ascii. */
- int eol_seen;
-
/* The following members are set by encoding/decoding routine. */
ptrdiff_t produced, produced_char, consumed, consumed_char;
- /* Number of error source data found in a decoding routine. */
- ptrdiff_t errors;
-
- /* Store the positions of error source data. */
- ptrdiff_t *error_positions;
-
- /* Finish status of code conversion. */
- enum coding_result_code result;
-
ptrdiff_t src_pos, src_pos_byte, src_chars, src_bytes;
Lisp_Object src_object;
const unsigned char *source;
@@ -510,17 +516,6 @@ struct coding_system
int *charbuf;
int charbuf_size, charbuf_used;
- /* True if the source of conversion is not in the member
- `charbuf', but at `src_object'. */
- bool_bf chars_at_source : 1;
-
- /* Nonzero if the result of conversion is in `destination'
- buffer rather than in `dst_object'. */
- bool_bf raw_destination : 1;
-
- /* Set to true if charbuf contains an annotation. */
- bool_bf annotated : 1;
-
unsigned char carryover[64];
int carryover_bytes;
@@ -743,7 +738,7 @@ extern wchar_t *to_unicode (Lisp_Object str, Lisp_Object *buf);
extern Lisp_Object from_unicode (Lisp_Object str);
/* Convert WSTR to an Emacs string. */
-extern Lisp_Object from_unicode_buffer (const wchar_t* wstr);
+extern Lisp_Object from_unicode_buffer (const wchar_t *wstr);
#endif /* WINDOWSNT || CYGWIN */