diff --git a/repos/base/include/util/string.h b/repos/base/include/util/string.h index ec8c04f3a2..90f8587827 100644 --- a/repos/base/include/util/string.h +++ b/repos/base/include/util/string.h @@ -545,6 +545,8 @@ class Genode::Cstring { } void print(Output &out) const { out.out_string(_str, _len); } + + size_t length() const { return _len; } }; @@ -629,6 +631,17 @@ class Genode::String _len = output.num_chars() + 1; } + /** + * Constructor + * + * Overload for the common case of constructing a 'String' from a + * string literal. + */ + String(char const *cstr) : _len(min(Genode::strlen(cstr) + 1, CAPACITY)) + { + Genode::strncpy(_buf, cstr, _len); + } + /** * Copy constructor */