# HG changeset patch # User Eli Zaretskii # Date 893252399 0 # Node ID 64adf1f4d54dc3a279a6b04b96adfbc87d4578cd # Parent 280e4b4cbd2a441422fdaf4959f505cca503b4e6 (alloc_xfer_buf): If want_size is more than 1MB, return immediately with failure. (Fw16_set_clipboard_data, Fw16_get_clipboard_data): Replace win16 with w16. diff -r 280e4b4cbd2a -r 64adf1f4d54d src/w16select.c --- a/src/w16select.c Wed Apr 22 11:40:18 1998 +0000 +++ b/src/w16select.c Wed Apr 22 13:39:59 1998 +0000 @@ -1,4 +1,4 @@ -/* Win16 Selection processing for emacs on MS-Windows +/* 16-bit Windows Selection processing for emacs on MS-Windows Copyright (C) 1996, 1997 Free Software Foundation. This file is part of GNU Emacs. @@ -169,6 +169,11 @@ if (want_size <= _go32_info_block.size_of_transfer_buffer) return __tb & 0xfffff; + /* Don't even try to allocate more than 1MB of memory: DOS cannot + possibly handle that (it will overflow the BX register below). */ + if (want_size > 0xfffff) + return 0; + /* Need size rounded up to the nearest paragraph, and in paragraph units (1 paragraph = 16 bytes). */ clipboard_xfer_buf_info.size = (want_size + 15) >> 4; @@ -389,7 +394,7 @@ static char no_mem_msg[] = "(Not enough DOS memory to put saved text into clipboard.)"; -DEFUN ("win16-set-clipboard-data", Fwin16_set_clipboard_data, Swin16_set_clipboard_data, 1, 2, 0, +DEFUN ("w16-set-clipboard-data", Fw16_set_clipboard_data, Sw16_set_clipboard_data, 1, 2, 0, "This sets the clipboard data to the given text.") (string, frame) Lisp_Object string, frame; @@ -444,7 +449,7 @@ return (ok ? string : Qnil); } -DEFUN ("win16-get-clipboard-data", Fwin16_get_clipboard_data, Swin16_get_clipboard_data, 0, 1, 0, +DEFUN ("w16-get-clipboard-data", Fw16_get_clipboard_data, Sw16_get_clipboard_data, 0, 1, 0, "This gets the clipboard data in text format.") (frame) Lisp_Object frame; @@ -540,8 +545,8 @@ void syms_of_win16select () { - defsubr (&Swin16_set_clipboard_data); - defsubr (&Swin16_get_clipboard_data); + defsubr (&Sw16_set_clipboard_data); + defsubr (&Sw16_get_clipboard_data); defsubr (&Sx_selection_exists_p); QPRIMARY = intern ("PRIMARY"); staticpro (&QPRIMARY);