Skip to content
GitLab
Projects
Groups
Snippets
Help
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Open sidebar
emacs
emacs
Commits
103e0180
Commit
103e0180
authored
May 28, 2003
by
Kenichi Handa
Browse files
*** empty log message ***
parent
75a756f1
Changes
2
Show whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
95 additions
and
0 deletions
+95
-0
src/ChangeLog
src/ChangeLog
+23
-0
src/coding.c
src/coding.c
+72
-0
No files found.
src/ChangeLog
View file @
103e0180
2003-05-29 Kenichi Handa <handa@m17n.org>
* coding.c (decode_coding_iso2022): Pay attention to the byte
sequence of CTEXT extended segment, and retain those bytes as is.
2003-05-28 Kenichi Handa <handa@m17n.org>
* coding.c (ENCODE_UNSAFE_CHARACTER): Adjusted for the name change
of CODING_REPLACEMENT_CHARACTER.
(decode_coding_iso2022): If CODING_FLAG_ISO_SAFE, set
CODING_MODE_INHIBIT_UNENCODABLE_CHAR flag in coding->mode, and
check this flag on encoding.
(encode_coding_sjis_big5): Check
CODING_MODE_INHIBIT_UNENCODABLE_CHAR flag of coding->mode.
(Fset_terminal_coding_system_internal): Set
CODING_MODE_INHIBIT_UNENCODABLE_CHAR flag in terminal_coding.mode
instead of setting CODING_FLAG_ISO_SAFE flag in
terminal_coding.flags.
* coding.h (CODING_REPLACEMENT_CHARACTER): Renamed from
CODING_INHIBIT_CHARACTER_SUBSTITUTION.
(CODING_MODE_INHIBIT_UNENCODABLE_CHAR): New macro.
2003-05-28 Richard M. Stallman <rms@gnu.org>
* print.c (syms_of_print) <print-escape-nonascii>: Doc fix.
...
...
src/coding.c
View file @
103e0180
...
...
@@ -2036,6 +2036,78 @@ decode_coding_iso2022 (coding, source, destination, src_bytes, dst_bytes)
}
continue
;
case
'%'
:
if
(
COMPOSING_P
(
coding
))
DECODE_COMPOSITION_END
(
'1'
);
ONE_MORE_BYTE
(
c1
);
if
(
c1
==
'/'
)
{
/* CTEXT extended segment:
ESC % / [0-4] M L --ENCODING-NAME-- \002 --BYTES--
We keep these bytes as is for the moment.
They may be decoded by post-read-conversion. */
int
dim
,
M
,
L
;
int
size
,
required
;
int
produced_chars
;
ONE_MORE_BYTE
(
dim
);
ONE_MORE_BYTE
(
M
);
ONE_MORE_BYTE
(
L
);
size
=
((
M
-
128
)
*
128
)
+
(
L
-
128
);
required
=
8
+
size
*
2
;
if
(
dst
+
required
>
(
dst_bytes
?
dst_end
:
src
))
goto
label_end_of_loop
;
*
dst
++
=
ISO_CODE_ESC
;
*
dst
++
=
'%'
;
*
dst
++
=
'/'
;
*
dst
++
=
dim
;
produced_chars
=
4
;
dst
+=
CHAR_STRING
(
M
,
dst
),
produced_chars
++
;
dst
+=
CHAR_STRING
(
L
,
dst
),
produced_chars
++
;
while
(
size
--
>
0
)
{
ONE_MORE_BYTE
(
c1
);
dst
+=
CHAR_STRING
(
c1
,
dst
),
produced_chars
++
;
}
coding
->
produced_char
+=
produced_chars
;
}
else
if
(
c1
==
'G'
)
{
unsigned
char
*
d
=
dst
;
int
produced_chars
;
/* XFree86 extension for embedding UTF-8 in CTEXT:
ESC % G --UTF-8-BYTES-- ESC % @
We keep these bytes as is for the moment.
They may be decoded by post-read-conversion. */
if
(
d
+
6
>
(
dst_bytes
?
dst_end
:
src
))
goto
label_end_of_loop
;
*
d
++
=
ISO_CODE_ESC
;
*
d
++
=
'%'
;
*
d
++
=
'G'
;
produced_chars
=
3
;
while
(
d
+
1
<
(
dst_bytes
?
dst_end
:
src
))
{
ONE_MORE_BYTE
(
c1
);
if
(
c1
==
ISO_CODE_ESC
&&
src
+
1
<
src_end
&&
src
[
0
]
==
'%'
&&
src
[
1
]
==
'@'
)
break
;
d
+=
CHAR_STRING
(
c1
,
d
),
produced_chars
++
;
}
if
(
d
+
3
>
(
dst_bytes
?
dst_end
:
src
))
goto
label_end_of_loop
;
*
d
++
=
ISO_CODE_ESC
;
*
d
++
=
'%'
;
*
d
++
=
'@'
;
dst
=
d
;
coding
->
produced_char
+=
produced_chars
+
3
;
}
else
goto
label_invalid_code
;
continue
;
default:
if
(
!
(
coding
->
flags
&
CODING_FLAG_ISO_DESIGNATION
))
goto
label_invalid_code
;
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment