diff options
author | Eli Zaretskii <eliz@gnu.org> | 1998-04-22 13:39:59 +0000 |
---|---|---|
committer | Eli Zaretskii <eliz@gnu.org> | 1998-04-22 13:39:59 +0000 |
commit | 767079a8c6c282e63559f0e4a862546abd04db01 (patch) | |
tree | 5e24af8f22766bfdc3c106349b0612868686658b /src/w16select.c | |
parent | 306a5e68ac3e991ef4a5e970cfa357a26db42073 (diff) | |
download | emacs-767079a8c6c282e63559f0e4a862546abd04db01.tar.gz |
(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.
Diffstat (limited to 'src/w16select.c')
-rw-r--r-- | src/w16select.c | 15 |
1 files changed, 10 insertions, 5 deletions
diff --git a/src/w16select.c b/src/w16select.c index 7ddda5a5a8e..a181c8466b6 100644 --- a/src/w16select.c +++ b/src/w16select.c @@ -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 @@ alloc_xfer_buf (want_size) 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 @@ clipboard_compact (Size) 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 @@ DEFUN ("win16-set-clipboard-data", Fwin16_set_clipboard_data, Swin16_set_clipboa 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 @@ and t is the same as `SECONDARY'.") 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); |