bool isHex(docstring const & str);
-int hexToInt(docstring const & str);
+unsigned int hexToInt(docstring const & str);
/// is \p str pure ascii?
bool isAscii(docstring const & str);
std::string const ltrim(std::string const & a, char const * p = " ");
docstring const ltrim(docstring const & a, char const * p = " ");
-/** Splits the string given in the first argument at the first occurence
+/** Splits the string given in the first argument at the first occurrence
of the third argument, delim.
What precedes delim is returned in the second argument, piece; this
will be the whole of the string if no delimiter is found.
/// Truncates a string with an ellipsis at the end. Leaves str unchanged and
/// returns false if it is shorter than len. Otherwise resizes str to len, with
/// U+2026 HORIZONTAL ELLIPSIS at the end, and returns true.
+/// If mid is true, the ellipsis will be put to the mid of the string, and the first
+/// and last half is appended/prepended.
///
/// Warning (Unicode): The cases where we want to truncate the text and it does
/// not end up converted into a QString for UI display must be really
///
/// FIXME: apply those principles in the current code.
///
-bool truncateWithEllipsis(docstring & str, size_t const len);
+bool truncateWithEllipsis(docstring & str, size_t const len,
+ bool const mid = false);
/// Word-wraps the provided docstring, returning a line-broken string
/// of width no wider than width, with the string broken at spaces.
int findToken(char const * const str[], std::string const & search_token);
-/// Format a floating point number with at least 6 siginificant digits, but
+/// Format a floating point number with at least 6 significant digits, but
/// without scientific notation.
/// Scientific notation would be invalid in some contexts, such as lengths for
/// LaTeX. Simply using std::ostream with std::fixed would produce results