From 720c5a33b6a49cf328fdd7611f49153cf8f60247 Mon Sep 17 00:00:00 2001 From: Karen Arutyunov Date: Wed, 8 Apr 2020 14:51:57 +0300 Subject: Separate tests and examples into individual packages Also make cli module to be explicitly enabled via the config.cli configuration variable. --- cli/cli/txt.hxx | 46 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 46 insertions(+) create mode 100644 cli/cli/txt.hxx (limited to 'cli/cli/txt.hxx') diff --git a/cli/cli/txt.hxx b/cli/cli/txt.hxx new file mode 100644 index 0000000..cde31c9 --- /dev/null +++ b/cli/cli/txt.hxx @@ -0,0 +1,46 @@ +// file : cli/txt.hxx +// author : Boris Kolpackov +// license : MIT; see accompanying LICENSE file + +#ifndef CLI_TXT_HXX +#define CLI_TXT_HXX + +#include // ostream +#include +#include // size_t + +#include + +void +generate_txt (context&); + +// Return the number of "text characters", ignoring any escape sequences +// (e.g., ANSI color). +// +std::size_t +txt_size (const std::string&, + std::size_t p = 0, + std::size_t n = std::string::npos); + +// This function assumes that the initial opening part has already been +// written with the 'first' argument being the number of characters already +// written in the first line (e.g., an option name). The 'indent' argument +// specified how many spaces to indent each line. The 'escape' argument is +// the optional escape function (e.g., for the string literal output). The +// line_{start, end, blank} arguments specify optional extra text for the +// start/end of the non-empty line as well as for the blank (empty) line. +// +// Note that the funtion modifies the passed string in order to translate +// notes. +// +void +txt_wrap_lines (std::ostream& os, + std::string&, + std::size_t indent = 0, + std::size_t first = 0, + const char* line_start = "", + const char* line_end = "", + const char* line_blank = "", + std::string (*escape) (std::string const&) = 0); + +#endif // CLI_TXT_HXX -- cgit v1.1