]> git.eshelyaron.com Git - emacs.git/commitdiff
(set_clipboard_data): Correctly null-terminate the
authorEli Zaretskii <eliz@gnu.org>
Tue, 2 Feb 1999 13:43:14 +0000 (13:43 +0000)
committerEli Zaretskii <eliz@gnu.org>
Tue, 2 Feb 1999 13:43:14 +0000 (13:43 +0000)
string to be put into the Windows clipboard.  Use xbuf_addr.

src/w16select.c

index 5f9ce1b64a7583f1228daa9792d23da7c6a10438..e94a420d1a4b89e1265a4b8c620aa14222215672 100644 (file)
@@ -263,7 +263,13 @@ set_clipboard_data (Format, Data, Size, Raw)
 
   /* Move the buffer into the low memory, convert LF into CR-LF if needed.  */
   if (Raw)
-    dosmemput (Data, truelen, __tb);
+    {
+      dosmemput (Data, Size, xbuf_addr);
+
+      /* Terminate with a null, otherwise Windows does strange things
+        when the text size is an integral multiple of 32 bytes. */
+      _farpokeb (_dos_ds, xbuf_addr + Size, '\0');
+    }
   else
     {
       dp = Data;
@@ -279,11 +285,11 @@ set_clipboard_data (Format, Data, Size, Raw)
            _farnspokeb (buf_offset++, '\r');
          _farnspokeb (buf_offset++, *dp++);
        }
-    }
 
-  /* Terminate with a null, otherwise Windows does strange things when
-     the text size is an integral multiple of 32 bytes. */
-  _farnspokeb (buf_offset, *dp);
+      /* Terminate with a null, otherwise Windows does strange things
+        when the text size is an integral multiple of 32 bytes. */
+      _farnspokeb (buf_offset, '\0');
+    }
 
   /* Calls Int 2Fh/AX=1703h with:
                     DX = WinOldAp-Supported Clipboard format