BufferedFTPrinter& BufferedFTPrinter::append(const double input) { _columns.push_back(FTPrinter::decimalNumberToStr(input, maxColumnWidth(_lines.back()))); if (_lines.back() == (int)numberOfColumns()) { _lines.push_back(1); if (_columnFormats.size() == _columns.size() - 1) append(format::basic); } else { append(_columnFormats.back()); ++(_lines.back()); } return *this; }
void poptPrintHelp(poptContext con, FILE * fp, /*@unused@*/ UNUSED(int flags)) { columns_t columns = (columns_t) xcalloc((size_t)1, sizeof(*columns)); assert(columns); /* XXX can't happen */ (void) showHelpIntro(con, fp); if (con->otherHelp) POPT_fprintf(fp, " %s\n", con->otherHelp); else POPT_fprintf(fp, " %s\n", POPT_("[OPTION...]")); if (columns) { columns->cur = maxArgWidth(con->options, NULL); columns->max = maxColumnWidth(fp); singleTableHelp(con, fp, con->options, columns, NULL); free(columns); } }
void poptPrintUsage(poptContext con, FILE * fp, /*@unused@*/ UNUSED(int flags)) { columns_t columns = (columns_t) xcalloc((size_t)1, sizeof(*columns)); struct poptDone_s done_buf; poptDone done = &done_buf; assert(columns); /* XXX can't happen */ memset(done, 0, sizeof(*done)); done->nopts = 0; done->maxopts = 64; if (columns) { columns->cur = done->maxopts * sizeof(*done->opts); columns->max = maxColumnWidth(fp); done->opts = (const void**) xcalloc((size_t)1, columns->cur); assert(done->opts); /* XXX can't happen */ /*@-keeptrans@*/ if (done->opts != NULL) done->opts[done->nopts++] = (const void *) con->options; /*@=keeptrans@*/ columns->cur = showHelpIntro(con, fp); columns->cur += showShortOptions(con->options, fp, NULL); columns->cur = singleTableUsage(con, fp, columns, con->options, NULL, done); columns->cur = itemUsage(fp, columns, con->aliases, con->numAliases, NULL); columns->cur = itemUsage(fp, columns, con->execs, con->numExecs, NULL); if (con->otherHelp) { columns->cur += strlen(con->otherHelp) + 1; if (columns->cur > columns->max) fprintf(fp, "\n "); fprintf(fp, " %s", con->otherHelp); } fprintf(fp, "\n"); if (done->opts != NULL) free(done->opts); free(columns); } }
size_t BufferedFTPrinter::maxTableWidth() const { size_t maxTableWidth = separator().size(); for (size_t i = 0; i < numberOfColumns(); ++i) maxTableWidth += maxColumnWidth(i) + separator().size(); return maxTableWidth; }