static int add_to_backup_list(char ***backups, int *b, const char *tok) { const char *str=NULL; if(!(str=get_backup_str(tok))) return 0; if(!(*backups=(char **)realloc(*backups, ((*b)+2)*sizeof(char *))) || !((*backups)[*b]=strdup(str))) { log_out_of_memory(__FUNCTION__); return -1; } (*backups)[(*b)+1]=NULL; (*b)++; return 0; }
static void show_all_backups(char *toks[], int t, int *x, int col) { int i=2; char msg[256]=""; for(; i<t; i++) { char *str=NULL; str=get_backup_str(toks[i], FALSE); if(i==2) { snprintf(msg, sizeof(msg), "Backup list: %s", str); print_line(msg, (*x)++, col); } else { snprintf(msg, sizeof(msg), " %s", str); print_line(msg, (*x)++, col); } } }
// Returns 1 if it printed a line, 0 otherwise. static int summary(char **toks, int t, int count, int row, int col) { char msg[1024]=""; if(*(toks[1])==STATUS_IDLE) { if(t>2) snprintf(msg, sizeof(msg), "%-14.14s %-14s last backup: %s", toks[0], "idle", get_backup_str(toks[2], TRUE)); else snprintf(msg, sizeof(msg), "%-14.14s %-14s", toks[0], "idle"); } if(*(toks[1])==STATUS_SERVER_CRASHED) { if(t>2) snprintf(msg, sizeof(msg), "%-14.14s %-14s last backup: %s", toks[0], "server crashed", get_backup_str(toks[2], TRUE)); else snprintf(msg, sizeof(msg), "%-14.14s %-14s", toks[0], "server crashed"); } if(*(toks[1])==STATUS_CLIENT_CRASHED) { if(t>2) snprintf(msg, sizeof(msg), "%-14.14s %-14s last backup: %s", toks[0], "client crashed", get_backup_str(toks[2], TRUE)); else snprintf(msg, sizeof(msg), "%-14.14s %-14s", toks[0], "client crashed"); } if(*(toks[1])==STATUS_RUNNING) { char f[64]=""; char b[64]=""; const char *s=""; if(t<3) return 0; s=running_status_to_text(*(toks[2])); if(t>3 && *(toks[3])) { unsigned long long a=0; unsigned long long b=0; unsigned long long c=0; unsigned long long d=0; unsigned long long t=0; unsigned long long p=0; if(!extract_ul(toks[3], &a, &b, &c, &d, &t)) { if(d) p=(t*100)/d; snprintf(f, sizeof(f), "%llu/%llu %llu%%", t, d, p); } } if(t>16 && *(toks[16]) && strcmp(toks[16], "0")) { //snprintf(b, sizeof(b), "%s bytes%s", toks[14], // bytes_to_human_str(toks[14])); snprintf(b, sizeof(b), "%s", bytes_to_human_str(toks[16])); } snprintf(msg, sizeof(msg), "%-14.14s %-14s %s%s", toks[0], s, f, b); } if(*msg) { print_line(msg, count, col); return 1; } return 0; }