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;
}
Exemplo n.º 2
0
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);
    }
}
Exemplo n.º 3
0
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;
}