summaryrefslogtreecommitdiff
path: root/news/husky-msged/files/patch-curses.c
diff options
context:
space:
mode:
Diffstat (limited to 'news/husky-msged/files/patch-curses.c')
-rw-r--r--news/husky-msged/files/patch-curses.c139
1 files changed, 0 insertions, 139 deletions
diff --git a/news/husky-msged/files/patch-curses.c b/news/husky-msged/files/patch-curses.c
deleted file mode 100644
index 1908ac667347..000000000000
--- a/news/husky-msged/files/patch-curses.c
+++ /dev/null
@@ -1,139 +0,0 @@
---- curses.c.orig Wed Jan 29 00:48:13 2003
-+++ curses.c Wed Jan 29 01:37:29 2003
-@@ -22,6 +22,7 @@
- #include "winsys.h"
- #include "unused.h"
- #include "keys.h"
-+#include "readtc.h"
- #include "specch.h"
-
- int color;
-@@ -40,6 +41,7 @@
- 0
- };
-
-+static int tcflags = 0; /* what we want to extract from termcap */
-
- #define EBUFSZ 100
- static EVT EVent[EBUFSZ]; /* event circular queue */
-@@ -436,6 +438,8 @@
- Key_A_5, Key_A_6, Key_A_7, Key_A_8, Key_A_9
- };
-
-+void TTSendMsg(int msg, int x, int y, int msgtype);
-+
- unsigned int TTGetKey(void)
- {
- int ch;
-@@ -443,6 +447,11 @@
- ch = getch();
- switch (ch)
- {
-+ case KEY_RESIZE:
-+ term.NRow = getmaxy(stdscr);
-+ term.NCol = getmaxx(stdscr);
-+ TTSendMsg(1, 0, 0, WND_WM_RESIZE);
-+ return -1;
- case KEY_LEFT:
- return Key_Lft;
- case KEY_RIGHT:
-@@ -566,6 +575,7 @@
- case '0':
- return Key_F10;
- }
-+ break;
- }
-
- if (ch >= 127) /* Treat special characters */
-@@ -611,7 +621,7 @@
- return ch;
- }
-
--void TTSendMsg(unsigned int msg, int x, int y, unsigned int msgtype)
-+void TTSendMsg(int msg, int x, int y, int msgtype)
- {
- if (((ebufin + 1) % EBUFSZ) != ebufout)
- {
-@@ -633,6 +643,7 @@
- meta(stdscr, TRUE);
- intrflush(stdscr, FALSE);
- raw();
-+ query_termcap(tcflags);
- return 0;
- }
-
-@@ -660,30 +671,47 @@
- return 0;
- }
-
-+static void
-+collect_events(void)
-+{
-+ int ch = TTGetKey();
-+ if (ch < 0)
-+ return;
-+
-+ TTSendMsg(ch, 0, 0, WND_WM_CHAR);
-+}
-+
- int TTGetMsg(EVT * e)
- {
-- e->msg = TTGetKey();
-- e->x = 0;
-- e->y = 0;
-- e->msgtype = WND_WM_CHAR;
-+ while (ebufin == ebufout)
-+ collect_events();
-+
-+ e->msg = EVent[ebufout].msg;
-+ e->x = EVent[ebufout].x;
-+ e->y = EVent[ebufout].y;
-+ e->msgtype = EVent[ebufout].msgtype;
- e->id = 0;
-+ ebufout = (ebufout + 1) % EBUFSZ;
- return e->msg;
- }
-
- int TTPeekQue(void)
- {
-- return kbhit();
-+ if (kbhit())
-+ collect_events();
-+ return ebufin != ebufout;
- }
-
- void TTClearQue(void)
- {
-- while (TTPeekQue())
-- TTGetKey();
-+ ebufin = ebufout;
- }
-
- int TTGetChr(void)
- {
-- return TTGetKey();
-+ EVT e;
-+ TTGetMsg(&e);
-+ return e.msg;
- }
-
- static char ansi2curses[8] = {
-@@ -754,6 +782,18 @@
- allowed_special_characters =
- (unsigned char *) malloc(l = (strlen(value) + 1));
- memcpy(allowed_special_characters, value, l);
-+ }
-+ else if (!strcmp(keyword,"pseudographics"))
-+ {
-+ if (atoi(value))
-+ {
-+ tcflags |= QUERY_ALTCHARSET;
-+ }
-+ else
-+ {
-+ tcflags &= ~QUERY_ALTCHARSET;
-+ }
-+ query_termcap(tcflags);
- }
- else
- {