]> git.eshelyaron.com Git - emacs.git/commitdiff
(Fwrite_region): When writing a string, give byte size
authorKenichi Handa <handa@m17n.org>
Fri, 20 Feb 1998 11:14:32 +0000 (11:14 +0000)
committerKenichi Handa <handa@m17n.org>
Fri, 20 Feb 1998 11:14:32 +0000 (11:14 +0000)
to a_write.
(a_write): Handle annotations correctly when writing a string.

src/fileio.c

index 2a87adf6c29e16805ecc68c4d7c8c445371cdf47..c2dd2039b429ab7b57d3c47b76493aea7327098d 100644 (file)
@@ -4229,7 +4229,8 @@ to the file, instead of any buffer contents, and END is ignored.")
   if (STRINGP (start))
     {
       failure = 0 > a_write (desc, XSTRING (start)->data,
-                            XSTRING (start)->size, 0, &annotations, &coding);
+                            XSTRING (start)->size_byte, 0, &annotations,
+                            &coding);
       save_errno = errno;
     }
   else if (XINT (start) != XINT (end))
@@ -4477,7 +4478,7 @@ a_write (desc, addr, nbytes, bytepos, annot, coding)
   while (NILP (*annot) || CONSP (*annot))
     {
       tem = Fcar_safe (Fcar (*annot));
-      nextpos = 0;
+      nextpos = bytepos - 1;
       if (INTEGERP (tem))
        nextpos = CHAR_TO_BYTE (XFASTINT (tem));
 
@@ -4498,7 +4499,7 @@ a_write (desc, addr, nbytes, bytepos, annot, coding)
       tem = Fcdr (Fcar (*annot));
       if (STRINGP (tem))
        {
-         if (0 > e_write (desc, XSTRING (tem)->data, XSTRING (tem)->size,
+         if (0 > e_write (desc, XSTRING (tem)->data, XSTRING (tem)->size_byte,
                           coding))
            return -1;
        }