summaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
10 daysAdd multi-argument grouping support in group_scannerHEADmasterBoris Kolpackov6-67/+254
2021-08-09Fix dependence on argument evaluation order in position testBoris Kolpackov1-1/+7
2021-08-03Add support for tracking argument/option positionBoris Kolpackov7-42/+271
The scanner interface now provides the position() function that returns a monotonically-increasing number which, if stored, can later be used to determine the relative position of the arguments. There is also now a parser implementation for std::pair<T, std::size_t> which parses the value T into the first half of the pair and stores the option position in the second half. Together, this can be used to establish the relative position of different options, for example: class options { std::vector<std::pair<std::uint64_t, std::size>> --config-id; std::vector<std::pair<std::string, std::size>> --config-name; }; cli::argv_scanner scan (argc, argv); options ops (scan); // Iterate over --config-id and --config-name options in the order // specified by the user. // auto ii (ops.config_id ().begin ()); auto ni (ops.config_name ().begin ()); for (size_t i (0), n (scan.position ()); i != n; ++i) { if (ii != ops.config_id ().end () && ii->second == i) { // Handle *ii. ++ii; } if (ni != ops.config_name ().end () && ni->second == i) { // Handle *ni. ++ni; } }
2021-07-22Change manifest builds value from all to hostBoris Kolpackov1-1/+1
2021-02-24Update copyrightKaren Arutyunov1-1/+1
2021-02-24Various cleanupsKaren Arutyunov9-14/+11
2021-02-24Adapt to cutl/ to libcutl/ renameKaren Arutyunov13-20/+20
2020-12-08Regenerate options parsing codeKaren Arutyunov2-139/+155
2020-12-08Complete options file path using referencing file path as baseKaren Arutyunov2-18/+85
2020-10-05Add missing spaces in generated codeKaren Arutyunov1-2/+2
2020-09-12Fix generated set and map parsers so that comparison predicate can also be ↵Karen Arutyunov1-13/+13
specified
2020-08-01Use legal{} target type for legal documentation (LICENSE, AUTHORS, etc)Karen Arutyunov3-3/+3
2020-08-01Disable success build emailsKaren Arutyunov3-3/+1
2020-07-21Bump build2 version requirement to 0.13.0Boris Kolpackov3-6/+6
2020-07-21Change version to 1.2.0-b.7.zBoris Kolpackov3-3/+3
2020-07-18Release version 1.2.0-b.7v1.2.0-b.7Boris Kolpackov3-3/+3
2020-07-10Add glue buildfileBoris Kolpackov1-0/+7
2020-06-19Fix misleading indentationBoris Kolpackov1-2/+2
2020-06-09Add name to metadata for cli executableBoris Kolpackov2-0/+2
2020-06-09Add metadata variable prefix for cli executableKaren Arutyunov2-2/+2
2020-05-28Get rid of trailing spaces in generated codeBoris Kolpackov3-90/+98
2020-04-29Add --suppress-undocumented for usage and regenerateBoris Kolpackov2-3/+1
2020-04-27Update metadata protocolBoris Kolpackov7-15/+49
2020-04-27Separate tests and examples into individual packagesKaren Arutyunov185-1444/+458
Also make cli module to be explicitly enabled via the config.cli configuration variable.
2020-04-21Add metadataBoris Kolpackov8-6/+76
2020-03-27Regenerate options parsing codeBoris Kolpackov2-6/+55
2020-03-27Add peek_file() and peek_line() functions to argv_file_scannerKaren Arutyunov3-8/+56
2020-02-28Add .gitattributes fileKaren Arutyunov1-0/+19
2020-02-18Reformat LICENSEBoris Kolpackov1-16/+15
2020-02-18Normalize LICENSEBoris Kolpackov1-0/+2
2020-02-13Use copyright extracted from LICENSE file for printing utility versionKaren Arutyunov2-1/+11
2020-02-13Update copyright last year in doc/guide/{guide.html2ps,index.xhtml}Karen Arutyunov2-3/+3
2020-02-13Add doc/doc.shKaren Arutyunov7-6/+86
2020-02-13Update last year in LICENSE fileKaren Arutyunov1-2/+1
2020-02-13Drop copyright notice from source codeKaren Arutyunov122-122/+0
2019-11-21Change version to 1.2.0-b.6.zBoris Kolpackov1-1/+1
2019-11-19Release version 1.2.0-b.6v1.2.0-b.6Boris Kolpackov1-1/+1
2019-10-08Adapt for building with Clang on WindowsKaren Arutyunov3-6/+12
2019-10-01Use cxx.std=latestKaren Arutyunov3-3/+3
2019-08-14Fix merge() function generated for map parserKaren Arutyunov1-1/+4
2019-07-27Add support for direct file loading with argv_file_scannerBoris Kolpackov8-40/+170
2019-07-27Add support for option merging (--generate-merge)Boris Kolpackov17-208/+610
2019-07-04Bump build2 requirement to 0.12.0-Boris Kolpackov1-2/+2
2019-07-04Adjust for new libu*{} semantics (libu{} is gone)Boris Kolpackov1-1/+1
2019-06-19Replace tags with topics, bump required build2 versionBoris Kolpackov1-4/+5
2019-06-11Change version to 1.2.0-b.5.zBoris Kolpackov1-1/+1
2019-06-07Release version 1.2.0-b.5Boris Kolpackov1-1/+1
2019-05-24Adapt version.hxx.in to increasing standard version major, minor, and patch ↵Karen Arutyunov1-15/+14
max values up to 99999
2019-04-04Remove redundant space in option descriptionKaren Arutyunov1-1/+1
2019-04-02Handle combined option values in argv_file_scannerBoris Kolpackov6-97/+181
Turns out we cannot just pass them along as combined because of quoting. While at it, also add support for quoting non-option arguments.