Merged from emacs@sv.gnu.org
Patches applied: * emacs@sv.gnu.org/emacs--devo--0--patch-371 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-372 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-373 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-374 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-375 Merge from gnus--rel--5.10 * emacs@sv.gnu.org/emacs--devo--0--patch-376 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-377 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-378 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-379 Merge from erc--emacs--21 * emacs@sv.gnu.org/emacs--devo--0--patch-380 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-381 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-382 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-383 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-384 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-385 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-386 Update from erc--emacs--22 * emacs@sv.gnu.org/emacs--devo--0--patch-387 Fix ERC bug introduced in last patch * emacs@sv.gnu.org/emacs--devo--0--patch-388 Update from erc--emacs--22 * emacs@sv.gnu.org/emacs--devo--0--patch-389 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-390 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-391 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-392 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-393 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-394 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-395 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-396 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-397 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-398 Merge from gnus--rel--5.10 * emacs@sv.gnu.org/emacs--devo--0--patch-399 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-400 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-401 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-402 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-403 Rcirc update from Ryan Yeske * emacs@sv.gnu.org/emacs--devo--0--patch-404 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-405 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-406 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-407 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-408 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-409 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-410 Merge from gnus--rel--5.10 * emacs@sv.gnu.org/emacs--devo--0--patch-411 Miscellaneous tq-related fixes. * emacs@sv.gnu.org/emacs--devo--0--patch-412 Update from CVS * emacs@sv.gnu.org/gnus--rel--5.10--patch-121 Update from CVS * emacs@sv.gnu.org/gnus--rel--5.10--patch-122 Update from CVS * emacs@sv.gnu.org/gnus--rel--5.10--patch-123 Update from CVS * emacs@sv.gnu.org/gnus--rel--5.10--patch-124 Update from CVS * emacs@sv.gnu.org/gnus--rel--5.10--patch-125 Update from CVS * emacs@sv.gnu.org/gnus--rel--5.10--patch-126 Merge from emacs--devo--0 * emacs@sv.gnu.org/gnus--rel--5.10--patch-127 Update from CVS git-archimport-id: lorentey@elte.hu--2004/emacs--multi-tty--0--patch-581
This commit is contained in:
commit
3f87f67ee2
175 changed files with 8121 additions and 11166 deletions
71
src/coding.c
71
src/coding.c
|
@ -219,14 +219,15 @@ encode_coding_XXX (coding, source, destination, src_bytes, dst_bytes)
|
|||
|
||||
|
||||
/* Like ONE_MORE_BYTE, but 8-bit bytes of data at SRC are in multibyte
|
||||
form if MULTIBYTEP is nonzero. */
|
||||
form if MULTIBYTEP is nonzero. In addition, if SRC is not less
|
||||
than SRC_END, return with RET. */
|
||||
|
||||
#define ONE_MORE_BYTE_CHECK_MULTIBYTE(c1, multibytep) \
|
||||
#define ONE_MORE_BYTE_CHECK_MULTIBYTE(c1, multibytep, ret) \
|
||||
do { \
|
||||
if (src >= src_end) \
|
||||
{ \
|
||||
coding->result = CODING_FINISH_INSUFFICIENT_SRC; \
|
||||
goto label_end_of_loop; \
|
||||
return ret; \
|
||||
} \
|
||||
c1 = *src++; \
|
||||
if (multibytep && c1 == LEADING_CODE_8_BIT_CONTROL) \
|
||||
|
@ -628,15 +629,15 @@ detect_coding_emacs_mule (src, src_end, multibytep)
|
|||
|
||||
while (1)
|
||||
{
|
||||
ONE_MORE_BYTE_CHECK_MULTIBYTE (c, multibytep);
|
||||
|
||||
ONE_MORE_BYTE_CHECK_MULTIBYTE (c, multibytep,
|
||||
CODING_CATEGORY_MASK_EMACS_MULE);
|
||||
if (composing)
|
||||
{
|
||||
if (c < 0xA0)
|
||||
composing = 0;
|
||||
else if (c == 0xA0)
|
||||
{
|
||||
ONE_MORE_BYTE_CHECK_MULTIBYTE (c, multibytep);
|
||||
ONE_MORE_BYTE_CHECK_MULTIBYTE (c, multibytep, 0);
|
||||
c &= 0x7F;
|
||||
}
|
||||
else
|
||||
|
@ -665,8 +666,6 @@ detect_coding_emacs_mule (src, src_end, multibytep)
|
|||
}
|
||||
}
|
||||
}
|
||||
label_end_of_loop:
|
||||
return CODING_CATEGORY_MASK_EMACS_MULE;
|
||||
}
|
||||
|
||||
|
||||
|
@ -1421,9 +1420,9 @@ detect_coding_iso2022 (src, src_end, multibytep)
|
|||
Lisp_Object safe_chars;
|
||||
|
||||
reg[0] = CHARSET_ASCII, reg[1] = reg[2] = reg[3] = -1;
|
||||
while (mask && src < src_end)
|
||||
while (mask)
|
||||
{
|
||||
ONE_MORE_BYTE_CHECK_MULTIBYTE (c, multibytep);
|
||||
ONE_MORE_BYTE_CHECK_MULTIBYTE (c, multibytep, mask & mask_found);
|
||||
retry:
|
||||
switch (c)
|
||||
{
|
||||
|
@ -1431,11 +1430,11 @@ detect_coding_iso2022 (src, src_end, multibytep)
|
|||
if (inhibit_iso_escape_detection)
|
||||
break;
|
||||
single_shifting = 0;
|
||||
ONE_MORE_BYTE_CHECK_MULTIBYTE (c, multibytep);
|
||||
ONE_MORE_BYTE_CHECK_MULTIBYTE (c, multibytep, mask & mask_found);
|
||||
if (c >= '(' && c <= '/')
|
||||
{
|
||||
/* Designation sequence for a charset of dimension 1. */
|
||||
ONE_MORE_BYTE_CHECK_MULTIBYTE (c1, multibytep);
|
||||
ONE_MORE_BYTE_CHECK_MULTIBYTE (c1, multibytep, mask & mask_found);
|
||||
if (c1 < ' ' || c1 >= 0x80
|
||||
|| (charset = iso_charset_table[0][c >= ','][c1]) < 0)
|
||||
/* Invalid designation sequence. Just ignore. */
|
||||
|
@ -1445,13 +1444,14 @@ detect_coding_iso2022 (src, src_end, multibytep)
|
|||
else if (c == '$')
|
||||
{
|
||||
/* Designation sequence for a charset of dimension 2. */
|
||||
ONE_MORE_BYTE_CHECK_MULTIBYTE (c, multibytep);
|
||||
ONE_MORE_BYTE_CHECK_MULTIBYTE (c, multibytep, mask & mask_found);
|
||||
if (c >= '@' && c <= 'B')
|
||||
/* Designation for JISX0208.1978, GB2312, or JISX0208. */
|
||||
reg[0] = charset = iso_charset_table[1][0][c];
|
||||
else if (c >= '(' && c <= '/')
|
||||
{
|
||||
ONE_MORE_BYTE_CHECK_MULTIBYTE (c1, multibytep);
|
||||
ONE_MORE_BYTE_CHECK_MULTIBYTE (c1, multibytep,
|
||||
mask & mask_found);
|
||||
if (c1 < ' ' || c1 >= 0x80
|
||||
|| (charset = iso_charset_table[1][c >= ','][c1]) < 0)
|
||||
/* Invalid designation sequence. Just ignore. */
|
||||
|
@ -1626,7 +1626,8 @@ detect_coding_iso2022 (src, src_end, multibytep)
|
|||
c = -1;
|
||||
while (src < src_end)
|
||||
{
|
||||
ONE_MORE_BYTE_CHECK_MULTIBYTE (c, multibytep);
|
||||
ONE_MORE_BYTE_CHECK_MULTIBYTE (c, multibytep,
|
||||
mask & mask_found);
|
||||
if (c < 0xA0)
|
||||
break;
|
||||
i++;
|
||||
|
@ -1644,7 +1645,6 @@ detect_coding_iso2022 (src, src_end, multibytep)
|
|||
break;
|
||||
}
|
||||
}
|
||||
label_end_of_loop:
|
||||
return (mask & mask_found);
|
||||
}
|
||||
|
||||
|
@ -2915,20 +2915,18 @@ detect_coding_sjis (src, src_end, multibytep)
|
|||
|
||||
while (1)
|
||||
{
|
||||
ONE_MORE_BYTE_CHECK_MULTIBYTE (c, multibytep);
|
||||
ONE_MORE_BYTE_CHECK_MULTIBYTE (c, multibytep, CODING_CATEGORY_MASK_SJIS);
|
||||
if (c < 0x80)
|
||||
continue;
|
||||
if (c == 0x80 || c == 0xA0 || c > 0xEF)
|
||||
return 0;
|
||||
if (c <= 0x9F || c >= 0xE0)
|
||||
{
|
||||
ONE_MORE_BYTE_CHECK_MULTIBYTE (c, multibytep);
|
||||
ONE_MORE_BYTE_CHECK_MULTIBYTE (c, multibytep, 0);
|
||||
if (c < 0x40 || c == 0x7F || c > 0xFC)
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
label_end_of_loop:
|
||||
return CODING_CATEGORY_MASK_SJIS;
|
||||
}
|
||||
|
||||
/* See the above "GENERAL NOTES on `detect_coding_XXX ()' functions".
|
||||
|
@ -2947,17 +2945,15 @@ detect_coding_big5 (src, src_end, multibytep)
|
|||
|
||||
while (1)
|
||||
{
|
||||
ONE_MORE_BYTE_CHECK_MULTIBYTE (c, multibytep);
|
||||
ONE_MORE_BYTE_CHECK_MULTIBYTE (c, multibytep, CODING_CATEGORY_MASK_BIG5);
|
||||
if (c < 0x80)
|
||||
continue;
|
||||
if (c < 0xA1 || c > 0xFE)
|
||||
return 0;
|
||||
ONE_MORE_BYTE_CHECK_MULTIBYTE (c, multibytep);
|
||||
ONE_MORE_BYTE_CHECK_MULTIBYTE (c, multibytep, 0);
|
||||
if (c < 0x40 || (c > 0x7F && c < 0xA1) || c > 0xFE)
|
||||
return 0;
|
||||
}
|
||||
label_end_of_loop:
|
||||
return CODING_CATEGORY_MASK_BIG5;
|
||||
}
|
||||
|
||||
/* See the above "GENERAL NOTES on `detect_coding_XXX ()' functions".
|
||||
|
@ -2985,7 +2981,7 @@ detect_coding_utf_8 (src, src_end, multibytep)
|
|||
|
||||
while (1)
|
||||
{
|
||||
ONE_MORE_BYTE_CHECK_MULTIBYTE (c, multibytep);
|
||||
ONE_MORE_BYTE_CHECK_MULTIBYTE (c, multibytep, CODING_CATEGORY_MASK_UTF_8);
|
||||
if (UTF_8_1_OCTET_P (c))
|
||||
continue;
|
||||
else if (UTF_8_2_OCTET_LEADING_P (c))
|
||||
|
@ -3003,16 +2999,13 @@ detect_coding_utf_8 (src, src_end, multibytep)
|
|||
|
||||
do
|
||||
{
|
||||
ONE_MORE_BYTE_CHECK_MULTIBYTE (c, multibytep);
|
||||
ONE_MORE_BYTE_CHECK_MULTIBYTE (c, multibytep, 0);
|
||||
if (!UTF_8_EXTRA_OCTET_P (c))
|
||||
return 0;
|
||||
seq_maybe_bytes--;
|
||||
}
|
||||
while (seq_maybe_bytes > 0);
|
||||
}
|
||||
|
||||
label_end_of_loop:
|
||||
return CODING_CATEGORY_MASK_UTF_8;
|
||||
}
|
||||
|
||||
/* See the above "GENERAL NOTES on `detect_coding_XXX ()' functions".
|
||||
|
@ -3041,15 +3034,13 @@ detect_coding_utf_16 (src, src_end, multibytep)
|
|||
struct coding_system dummy_coding;
|
||||
struct coding_system *coding = &dummy_coding;
|
||||
|
||||
ONE_MORE_BYTE_CHECK_MULTIBYTE (c1, multibytep);
|
||||
ONE_MORE_BYTE_CHECK_MULTIBYTE (c2, multibytep);
|
||||
ONE_MORE_BYTE_CHECK_MULTIBYTE (c1, multibytep, 0);
|
||||
ONE_MORE_BYTE_CHECK_MULTIBYTE (c2, multibytep, 0);
|
||||
|
||||
if ((c1 == 0xFF) && (c2 == 0xFE))
|
||||
return CODING_CATEGORY_MASK_UTF_16_LE;
|
||||
else if ((c1 == 0xFE) && (c2 == 0xFF))
|
||||
return CODING_CATEGORY_MASK_UTF_16_BE;
|
||||
|
||||
label_end_of_loop:
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
@ -3318,12 +3309,10 @@ detect_coding_ccl (src, src_end, multibytep)
|
|||
valid = coding_system_table[CODING_CATEGORY_IDX_CCL]->spec.ccl.valid_codes;
|
||||
while (1)
|
||||
{
|
||||
ONE_MORE_BYTE_CHECK_MULTIBYTE (c, multibytep);
|
||||
ONE_MORE_BYTE_CHECK_MULTIBYTE (c, multibytep, CODING_CATEGORY_MASK_CCL);
|
||||
if (! valid[c])
|
||||
return 0;
|
||||
}
|
||||
label_end_of_loop:
|
||||
return CODING_CATEGORY_MASK_CCL;
|
||||
}
|
||||
|
||||
|
||||
|
@ -7547,7 +7536,10 @@ usage: (find-operation-coding-system OPERATION ARGUMENTS ...) */)
|
|||
return Fcons (val, val);
|
||||
if (! NILP (Ffboundp (val)))
|
||||
{
|
||||
val = safe_call1 (val, Flist (nargs, args));
|
||||
/* We use call1 rather than safe_call1
|
||||
so as to get bug reports about functions called here
|
||||
which don't handle the current interface. */
|
||||
val = call1 (val, Flist (nargs, args));
|
||||
if (CONSP (val))
|
||||
return val;
|
||||
if (SYMBOLP (val) && ! NILP (Fcoding_system_p (val)))
|
||||
|
@ -7971,8 +7963,9 @@ the file contents.
|
|||
If VAL is a cons of coding systems, the car part is used for decoding,
|
||||
and the cdr part is used for encoding.
|
||||
If VAL is a function symbol, the function must return a coding system
|
||||
or a cons of coding systems which are used as above. The function gets
|
||||
the arguments with which `find-operation-coding-system' was called.
|
||||
or a cons of coding systems which are used as above. The function is
|
||||
called with an argument that is a list of the arguments with which
|
||||
`find-operation-coding-system' was called.
|
||||
|
||||
See also the function `find-operation-coding-system'
|
||||
and the variable `auto-coding-alist'. */);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue