[BACK]Return to server.c CVS log [TXT][DIR] Up to [local] / src / usr.bin / tmux

Diff for /src/usr.bin/tmux/server.c between version 1.81 and 1.82

version 1.81, 2010/01/30 19:05:18 version 1.82, 2010/02/06 17:15:33
Line 113 
Line 113 
 int  int
 server_start(char *path)  server_start(char *path)
 {  {
         struct client   *c;          struct window_pane      *wp;
         int              pair[2];          int                      pair[2], retval;
         char            *cause, rpathbuf[MAXPATHLEN];          char                     rpathbuf[MAXPATHLEN];
         struct timeval   tv;          struct timeval           tv;
           u_int                    i;
   
         /* The first client is special and gets a socketpair; create it. */          /* The first client is special and gets a socketpair; create it. */
         if (socketpair(AF_UNIX, SOCK_STREAM, PF_UNSPEC, pair) != 0)          if (socketpair(AF_UNIX, SOCK_STREAM, PF_UNSPEC, pair) != 0)
Line 166 
Line 167 
         server_fd = server_create_socket();          server_fd = server_create_socket();
         server_client_create(pair[1]);          server_client_create(pair[1]);
   
         if (access(SYSTEM_CFG, R_OK) == 0) {          retval = 0;
                 if (load_cfg(SYSTEM_CFG, NULL, &cause) != 0)          if (access(SYSTEM_CFG, R_OK) == 0)
                         goto error;                  load_cfg(SYSTEM_CFG, NULL, &cfg_ncauses, &cfg_causes);
         } else if (errno != ENOENT) {          else if (errno != ENOENT) {
                 xasprintf(&cause, "%s: %s", strerror(errno), SYSTEM_CFG);                  cfg_add_cause(&cfg_ncauses, &cfg_causes,
                 goto error;                      "%s: %s", strerror(errno), SYSTEM_CFG);
         }          }
         if (cfg_file != NULL && load_cfg(cfg_file, NULL, &cause) != 0)          if (cfg_file != NULL)
                 goto error;                  load_cfg(cfg_file, NULL, &cfg_ncauses, &cfg_causes);
   
           /*
            * If there is a session already, put the current window and pane into
            * more mode.
            */
           if (!ARRAY_EMPTY(&sessions) && cfg_ncauses != 0) {
                   wp = ARRAY_FIRST(&sessions)->curw->window->active;
                   window_pane_set_mode(wp, &window_more_mode);
                   for (i = 0; i < cfg_ncauses; i++) {
                           window_more_add(wp, "%s", cfg_causes[i]);
                           xfree(cfg_causes[i]);
                   }
                   xfree(cfg_causes);
                   cfg_ncauses = 0;
           }
           cfg_finished = 1;
   
         event_set(&server_ev_accept,          event_set(&server_ev_accept,
             server_fd, EV_READ|EV_PERSIST, server_accept_callback, NULL);              server_fd, EV_READ|EV_PERSIST, server_accept_callback, NULL);
         event_add(&server_ev_accept, NULL);          event_add(&server_ev_accept, NULL);
Line 188 
Line 205 
         server_signal_set();          server_signal_set();
         server_loop();          server_loop();
         exit(0);          exit(0);
   
 error:  
         /* Write the error and shutdown the server. */  
         c = ARRAY_FIRST(&clients);  
   
         server_write_error(c, cause);  
         server_write_client(c, MSG_EXIT, NULL, 0);  
         xfree(cause);  
   
         server_shutdown = 1;  
   
         server_signal_set();  
         server_loop();  
         exit(1);  
 }  }
   
 /* Main server loop. */  /* Main server loop. */

Legend:
Removed from v.1.81  
changed lines
  Added in v.1.82