void options_description::print(std::ostream& os, unsigned width) const { if (!m_caption.empty()) os << m_caption << ":\n"; if (!width) width = get_option_column_width(); /* The options formatting style is stolen from Subversion. */ for (unsigned i = 0; i < m_options.size(); ++i) { if (belong_to_group[i]) continue; const option_description& opt = *m_options[i]; format_one(os, opt, width, m_line_length); os << "\n"; } for (unsigned j = 0; j < groups.size(); ++j) { os << "\n"; groups[j]->print(os, width); } }
static void display(log_entry *e, char *format) { for (; *format; ++format) { switch (*format) { case '%': format = format_one(e, format); if (!format) return; break; default: putchar(*format); break; } } putchar('\n'); }
void options_description::print(std::ostream& os) const { if (!m_caption.empty()) os << m_caption << ":\n"; /* Find the maximum width of the option column */ unsigned width(23); unsigned i; // vc6 has broken for loop scoping for (i = 0; i < m_options.size(); ++i) { const option_description& opt = *m_options[i]; stringstream ss; ss << " " << opt.format_name() << ' ' << opt.format_parameter(); width = (max)(width, static_cast<unsigned>(ss.str().size())); } /* this is the column were description should start, if first column is longer, we go to a new line */ const unsigned start_of_description_column = m_line_length - m_min_description_length; width = (min)(width, start_of_description_column-1); /* add an additional space to improve readability */ ++width; /* The options formatting style is stolen from Subversion. */ for (i = 0; i < m_options.size(); ++i) { if (belong_to_group[i]) continue; const option_description& opt = *m_options[i]; format_one(os, opt, width, m_line_length); os << "\n"; } for (unsigned j = 0; j < groups.size(); ++j) { os << "\n" << *groups[j]; } }