]> git.eshelyaron.com Git - emacs.git/commitdiff
(Fw16_set_clipboard_data): Don't encode text if clipboard is unavailable.
authorEli Zaretskii <eliz@gnu.org>
Sat, 30 Aug 2008 12:32:59 +0000 (12:32 +0000)
committerEli Zaretskii <eliz@gnu.org>
Sat, 30 Aug 2008 12:32:59 +0000 (12:32 +0000)
Set dst to NULL if it doesn't point to malloc'ed data.
(Fw16_get_clipboard_data): Initialize htext to NULL, to avoid passing random
values to xfree.

src/ChangeLog
src/w16select.c

index fc64f7e33f8aa380d5a4b9f58345daa8dc968abe..f02db31f0b7c2a663ffc0f6c931aaebafe9b2b88 100644 (file)
@@ -1,5 +1,11 @@
 2008-08-30  Eli Zaretskii  <eliz@gnu.org>
 
+       * w16select.c (Fw16_set_clipboard_data): Don't encode text if
+       clipboard is unavailable.  Set dst to NULL if it doesn't point to
+       malloc'ed data.
+       (Fw16_get_clipboard_data): Initialize htext to NULL, to avoid
+       passing random values to xfree.
+
        * dispnew.c (init_display): Set `tty's association in frame's
        parameters alist to the name of the terminal device, if that is
        known.
index 2a2b05f72e5aa250f455d896ed5e62a59db38298..9498d7adfe8d40743ba0b8040a28b8a9f1a54301 100644 (file)
@@ -500,6 +500,9 @@ DEFUN ("w16-set-clipboard-data", Fw16_set_clipboard_data, Sw16_set_clipboard_dat
 
   BLOCK_INPUT;
 
+  if (!open_clipboard ())
+    goto error;
+
   nbytes = SBYTES (string);
   src = SDATA (string);
 
@@ -515,6 +518,7 @@ DEFUN ("w16-set-clipboard-data", Fw16_set_clipboard_data, Sw16_set_clipboard_dat
         will have to convert it to DOS CR-LF style.  */
       no_crlf_conversion = 0;
       Vlast_coding_system_used = Qraw_text;
+      dst = NULL;      /* so we don't try to free a random pointer */
     }
   else
     {
@@ -541,9 +545,6 @@ DEFUN ("w16-set-clipboard-data", Fw16_set_clipboard_data, Sw16_set_clipboard_dat
       src = dst;
     }
 
-  if (!open_clipboard ())
-    goto error;
-
   ok = empty_clipboard ()
     && ((put_status
         = set_clipboard_data (CF_OEMTEXT, src, nbytes, no_crlf_conversion))
@@ -595,7 +596,7 @@ DEFUN ("w16-get-clipboard-data", Fw16_get_clipboard_data, Sw16_get_clipboard_dat
      Lisp_Object frame;
 {
   unsigned data_size, truelen;
-  unsigned char *htext;
+  unsigned char *htext = NULL;
   Lisp_Object ret = Qnil;
   int no_crlf_conversion, require_decoding = 0;