tScreen resizing and Ctrl-L now supported during metaserver connect - vaccinewars - be a doctor and try to vaccinate the world
(HTM) git clone git://src.adamsgaard.dk/vaccinewars
(DIR) Log
(DIR) Files
(DIR) Refs
(DIR) README
(DIR) LICENSE
---
(DIR) commit 3d4c0be2224aab5c10dc43b3cec167dc06de0784
(DIR) parent deb1942deb69bf7fbce7a15bb2ce2555155e5a2c
(HTM) Author: Ben Webb <ben@salilab.org>
Date: Wed, 12 Sep 2001 19:27:08 +0000
Screen resizing and Ctrl-L now supported during metaserver connect
Diffstat:
M src/curses_client.c | 13 +++++++++----
1 file changed, 9 insertions(+), 4 deletions(-)
---
(DIR) diff --git a/src/curses_client.c b/src/curses_client.c
t@@ -215,7 +215,7 @@ static void SelectServerManually(void) {
g_free(text); g_free(PortText);
}
-static char *SelectServerFromMetaServer(void) {
+static char *SelectServerFromMetaServer(Player *Play) {
/* Contacts the dopewars metaserver, and obtains a list of valid */
/* server/port pairs, one of which the user should select. */
/* Returns a pointer to a static string containing an error */
t@@ -248,9 +248,14 @@ static char *SelectServerFromMetaServer(void) {
SetSelectForNetworkBuffer(&MetaConn->NetBuf,&readfds,&writefds,
NULL,&maxsock);
if (bselect(maxsock,&readfds,&writefds,NULL,NULL)==-1) {
- if (errno==EINTR) { /*CheckForResize(Play);*/ continue; }
+ if (errno==EINTR) { CheckForResize(Play); continue; }
perror("bselect"); exit(1);
}
+ if (FD_ISSET(0,&readfds)) {
+ /* So that Ctrl-L works */
+ c = getch();
+ if (c=='\f') wrefresh(curscr);
+ }
if (RespondToSelect(&MetaConn->NetBuf,&readfds,&writefds,NULL,&DoneOK)) {
while (HandleWaitingMetaServerData(MetaConn)) {}
}
t@@ -329,7 +334,7 @@ static char ConnectToServer(Player *Play) {
int c;
if (strcasecmp(ServerName,SN_META)==0 || ConnectMethod==CM_META) {
ConnectMethod=CM_META;
- MetaError=SelectServerFromMetaServer();
+ MetaError=SelectServerFromMetaServer(Play);
} else if (strcasecmp(ServerName,SN_PROMPT)==0 ||
ConnectMethod==CM_PROMPT) {
ConnectMethod=CM_PROMPT;
t@@ -384,7 +389,7 @@ static char ConnectToServer(Player *Play) {
case 'P': ConnectMethod=CM_SINGLE;
return TRUE;
case 'L': ConnectMethod=CM_META;
- MetaError=SelectServerFromMetaServer();
+ MetaError=SelectServerFromMetaServer(Play);
break;
case 'C': ConnectMethod=CM_PROMPT;
SelectServerManually();