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

Diff for /src/usr.bin/tmux/format.c between version 1.76 and 1.77

version 1.76, 2015/08/28 10:06:52 version 1.77, 2015/08/28 11:38:27
Line 37 
Line 37 
   
 void     format_job_callback(struct job *);  void     format_job_callback(struct job *);
 const char *format_job_get(struct format_tree *, const char *);  const char *format_job_get(struct format_tree *, const char *);
   void     format_job_timer(int, short, void *);
   
 int      format_replace(struct format_tree *, const char *, size_t, char **,  int      format_replace(struct format_tree *, const char *, size_t, char **,
              size_t *, size_t *);               size_t *, size_t *);
Line 63 
Line 64 
 };  };
   
 /* Format job tree. */  /* Format job tree. */
   struct event format_job_event;
 int     format_job_cmp(struct format_job *, struct format_job *);  int     format_job_cmp(struct format_job *, struct format_job *);
 RB_HEAD(format_job_tree, format_job) format_jobs = RB_INITIALIZER();  RB_HEAD(format_job_tree, format_job) format_jobs = RB_INITIALIZER();
 RB_PROTOTYPE(format_job_tree, format_job, entry, format_job_cmp);  RB_PROTOTYPE(format_job_tree, format_job, entry, format_job_cmp);
Line 191 
Line 193 
                     server_status_client(c);                      server_status_client(c);
                 fj->status = 0;                  fj->status = 0;
         }          }
   
           log_debug("%s: %s: %s", __func__, fj->cmd, fj->out);
 }  }
   
 /* Find a job. */  /* Find a job. */
Line 226 
Line 230 
   
 /* Remove old jobs. */  /* Remove old jobs. */
 void  void
 format_clean(void)  format_job_timer(unused int fd, unused short events, unused void *arg)
 {  {
         struct format_job       *fj, *fj1;          struct format_job       *fj, *fj1;
         time_t                   now;          time_t                   now;
           struct timeval           tv = { .tv_sec = 60 };
   
         now = time(NULL);          now = time(NULL);
         RB_FOREACH_SAFE(fj, format_job_tree, &format_jobs, fj1) {          RB_FOREACH_SAFE(fj, format_job_tree, &format_jobs, fj1) {
Line 237 
Line 242 
                         continue;                          continue;
                 RB_REMOVE(format_job_tree, &format_jobs, fj);                  RB_REMOVE(format_job_tree, &format_jobs, fj);
   
                   log_debug("%s: %s", __func__, fj->cmd);
   
                 if (fj->job != NULL)                  if (fj->job != NULL)
                         job_free(fj->job);                          job_free(fj->job);
   
Line 245 
Line 252 
   
                 free(fj);                  free(fj);
         }          }
   
           evtimer_del(&format_job_event);
           evtimer_add(&format_job_event, &tv);
 }  }
   
 /* Create a new tree. */  /* Create a new tree. */
Line 260 
Line 270 
 {  {
         struct format_tree      *ft;          struct format_tree      *ft;
         char                     host[HOST_NAME_MAX + 1], *ptr;          char                     host[HOST_NAME_MAX + 1], *ptr;
   
           if (!event_initialized(&format_job_event)) {
                   evtimer_set(&format_job_event, format_job_timer, NULL);
                   format_job_timer(-1, 0, NULL);
           }
   
         ft = xcalloc(1, sizeof *ft);          ft = xcalloc(1, sizeof *ft);
         RB_INIT(&ft->tree);          RB_INIT(&ft->tree);

Legend:
Removed from v.1.76  
changed lines
  Added in v.1.77