summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/ChangeLog5
-rw-r--r--src/coding.c4
2 files changed, 7 insertions, 2 deletions
diff --git a/src/ChangeLog b/src/ChangeLog
index 1557e5fe45a..6f65379c23e 100644
--- a/src/ChangeLog
+++ b/src/ChangeLog
@@ -1,3 +1,8 @@
+2008-03-25 Stefan Monnier <monnier@iro.umontreal.ca>
+
+ * coding.c (decode_coding_object): When not decoding into a buffer,
+ obey the coding system's preference of (uni|multi)byte.
+
2008-03-24 Stefan Monnier <monnier@iro.umontreal.ca>
* casefiddle.c (casify_object): Avoid pathological N^2 worst case if
diff --git a/src/coding.c b/src/coding.c
index 901f81a9247..6848fa674d3 100644
--- a/src/coding.c
+++ b/src/coding.c
@@ -7033,7 +7033,7 @@ decode_coding_object (coding, src_object, from, from_byte, to, to_byte,
coding->dst_object = code_conversion_save (1, 1);
coding->dst_pos = BEG;
coding->dst_pos_byte = BEG_BYTE;
- coding->dst_multibyte = 1;
+ coding->dst_multibyte = !CODING_FOR_UNIBYTE (coding);
}
else if (BUFFERP (dst_object))
{
@@ -7048,7 +7048,7 @@ decode_coding_object (coding, src_object, from, from_byte, to, to_byte,
{
code_conversion_save (0, 0);
coding->dst_object = Qnil;
- coding->dst_multibyte = 1;
+ coding->dst_multibyte = !CODING_FOR_UNIBYTE (coding);
}
decode_coding (coding);