From 3733f04f3b0988ab261b35a3f7965dc44cf282a6 Mon Sep 17 00:00:00 2001
From: rswindell <>
Date: Tue, 10 Oct 2017 22:29:59 +0000
Subject: [PATCH] Add CIO macro definitions and Win32 key-bindings for
 Shift-Insert, Ctrl-Insert, Shift-Delete, and Ctrl-Delete to be used for cut
 and paste operations (not Ctrl-Delete).

---
 src/conio/ciolib.h   | 6 +++++-
 src/conio/win32cio.c | 4 ++--
 2 files changed, 7 insertions(+), 3 deletions(-)

diff --git a/src/conio/ciolib.h b/src/conio/ciolib.h
index 13341b4807..1dbee7cfc4 100644
--- a/src/conio/ciolib.h
+++ b/src/conio/ciolib.h
@@ -4,7 +4,7 @@
  * @format.tab-size 4		(Plain Text/Source Code File Header)			*
  * @format.use-tabs true	(see http://www.synchro.net/ptsc_hdr.html)		*
  *																			*
- * Copyright 2005 Rob Swindell - http://www.synchro.net/copyright.html		*
+ * Copyright Rob Swindell - http://www.synchro.net/copyright.html			*
  *																			*
  * This library is free software; you can redistribute it and/or			*
  * modify it under the terms of the GNU Lesser General Public License		*
@@ -521,6 +521,10 @@ CIOLIBEXPORT int CIOLIBCALL ciomouse_delevent(int event);
 #define CIO_KEY_F(x)      ((x<11)?((0x3a+x) << 8):((0x7a+x) << 8))
 #define CIO_KEY_IC        (0x52 << 8)
 #define CIO_KEY_DC        (0x53 << 8)
+#define CIO_KEY_SHIFT_IC  (0x30 << 8)	/* Shift-Insert */
+#define CIO_KEY_SHIFT_DC  (0x2e << 8)	/* Shift-Delete */
+#define CIO_KEY_CTRL_IC   (0x92 << 8)	/* Ctrl-Insert */
+#define CIO_KEY_CTRL_DC   (0x93 << 8)	/* Ctrl-Delete */
 #define CIO_KEY_LEFT      (0x4b << 8)
 #define CIO_KEY_RIGHT     (0x4d << 8)
 #define CIO_KEY_PPAGE     (0x49 << 8)
diff --git a/src/conio/win32cio.c b/src/conio/win32cio.c
index 4f48abc14c..6db868aba8 100644
--- a/src/conio/win32cio.c
+++ b/src/conio/win32cio.c
@@ -101,8 +101,8 @@ CIOLIBEXPORTVAR const struct keyvals keyval[] =
 	{VK_UP, 0x4800, 0x4800, 0x8d00, 0x9800},
 	{VK_RIGHT, 0x4d00, 0x4d00, 0x7400, 0x9d00},
 	{VK_DOWN, 0x5000, 0x5000, 0x9100, 0xa000},
-	{VK_INSERT, 0x5200, 0x5200, 0x9200, 0xa200},
-	{VK_DELETE, 0x5300, 0x5300, 0x9300, 0xa300},
+	{VK_INSERT, CIO_KEY_IC, CIO_KEY_SHIFT_IC, CIO_KEY_CTRL_IC, 0xa200},
+	{VK_DELETE, CIO_KEY_DC, CIO_KEY_SHIFT_DC, CIO_KEY_CTRL_DC, 0xa300},
 	{VK_NUMPAD0, '0', 0x5200, 0x9200, 0},
 	{VK_NUMPAD1, '1', 0x4f00, 0x7500, 0},
 	{VK_NUMPAD2, '2', 0x5000, 0x9100, 0},
-- 
GitLab