| 1943 | } |
| 1944 | |
| 1945 | String |
| 1946 | format_description |
| 1947 | ( |
| 1948 | const HelpOptionDetails& o, |
| 1949 | size_t start, |
| 1950 | size_t allowed, |
| 1951 | bool tab_expansion |
| 1952 | ) |
| 1953 | { |
| 1954 | auto desc = o.desc; |
| 1955 | |
| 1956 | if (o.has_default && (!o.is_boolean || o.default_value != "false")) |
| 1957 | { |
| 1958 | if(!o.default_value.empty()) |
| 1959 | { |
| 1960 | desc += toLocalString(" (default: " + o.default_value + ")"); |
| 1961 | } |
| 1962 | else |
| 1963 | { |
| 1964 | desc += toLocalString(" (default: \"\")"); |
| 1965 | } |
| 1966 | } |
| 1967 | |
| 1968 | String result; |
| 1969 | |
| 1970 | if (tab_expansion) |
| 1971 | { |
| 1972 | String desc2; |
| 1973 | auto size = size_t{ 0 }; |
| 1974 | for (auto c = std::begin(desc); c != std::end(desc); ++c) |
| 1975 | { |
| 1976 | if (*c == '\n') |
| 1977 | { |
| 1978 | desc2 += *c; |
| 1979 | size = 0; |
| 1980 | } |
| 1981 | else if (*c == '\t') |
| 1982 | { |
| 1983 | auto skip = 8 - size % 8; |
| 1984 | stringAppend(desc2, skip, ' '); |
| 1985 | size += skip; |
| 1986 | } |
| 1987 | else |
| 1988 | { |
| 1989 | desc2 += *c; |
| 1990 | ++size; |
| 1991 | } |
| 1992 | } |
| 1993 | desc = desc2; |
| 1994 | } |
| 1995 | |
| 1996 | desc += " "; |
| 1997 | |
| 1998 | auto current = std::begin(desc); |
| 1999 | auto previous = current; |
| 2000 | auto startLine = current; |
| 2001 | auto lastSpace = current; |
| 2002 |
no test coverage detected