void print_e2fsck_message(e2fsck_t ctx, const char *msg, struct problem_context *pctx, int first, int recurse) { ext2_filsys fs = ctx->fs; const char * cp; int i; e2fsck_clear_progbar(ctx); for (cp = msg; *cp; cp++) { if (cp[0] == '@') { cp++; expand_at_expression(ctx, *cp, pctx, &first, recurse); } else if (cp[0] == '%' && cp[1] == 'I') { cp += 2; expand_inode_expression(*cp, pctx); } else if (cp[0] == '%' && cp[1] == 'D') { cp += 2; expand_dirent_expression(*cp, pctx); } else if ((cp[0] == '%')) { cp++; expand_percent_expression(fs, *cp, pctx); } else { for (i=0; cp[i]; i++) if ((cp[i] == '@') || cp[i] == '%') break; printf("%.*s", i, cp); cp += i-1; } first = 0; } }
void print_e2fsck_message(FILE *f, e2fsck_t ctx, const char *msg, struct problem_context *pctx, int first, int recurse) { ext2_filsys fs = ctx->fs; const char * cp; int i, width; e2fsck_clear_progbar(ctx); for (cp = msg; *cp; cp++) { if (cp[0] == '@') { cp++; expand_at_expression(f, ctx, *cp, pctx, &first, recurse); } else if (cp[0] == '%') { cp++; width = 0; while (isdigit(cp[0])) { width = (width * 10) + cp[0] - '0'; cp++; } if (cp[0] == 'I') { cp++; expand_inode_expression(f, fs, *cp, pctx); } else if (cp[0] == 'D') { cp++; expand_dirent_expression(f, fs, *cp, pctx); } else { expand_percent_expression(f, fs, *cp, width, &first, pctx); } } else { for (i=0; cp[i]; i++) if ((cp[i] == '@') || cp[i] == '%') break; fprintf(f, "%.*s", i, cp); cp += i-1; } first = 0; } }