(FIXNUM_OVERFLOW_P): Fix last change to handle unsigned
[bpt/emacs.git] / src / coding.h
index 3e89ff1..ca8878f 100644 (file)
@@ -735,12 +735,13 @@ extern void encode_coding_object P_ ((struct coding_system *,
 
 #define decode_coding_string(coding, string, nocopy)                   \
   decode_coding_object (coding, string, 0, 0, SCHARS (string),         \
-                       STRING_BYTES (XSTRING (string)), Qt)
+                       SBYTES (string), Qt)
 
 #define encode_coding_string(coding, string, nocopy)                   \
-  (encode_coding_object (coding, string, 0, 0, SCHARS (string),                \
-                        STRING_BYTES (XSTRING (string)), Qt),          \
-   (coding)->dst_object)
+  (STRING_MULTIBYTE(string) ?                                          \
+    (encode_coding_object (coding, string, 0, 0, SCHARS (string),      \
+                          SBYTES (string), Qt),                        \
+     (coding)->dst_object) : (string))
 
 
 #define decode_coding_c_string(coding, src, bytes, dst_object)         \