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();