Namespaces | |
namespace | Impl |
Functions | |
BLOCXX_DEFINE_EXCEPTION (Overflow) | |
char * | str_dup (char const *s) |
Like std::strdup, except that new is used to allocate memory. | |
char * | str_dup_nothrow (char const *s) |
Like std::strdup, except that no-throw new is used to allocate memory and NULL is returned on allocation failure. | |
char * | strcpy_trunc (char *dst, std::size_t dstsize, char const *src) |
PROMISE: copies the first n = min(strlen(src), dstsize - 1) characters of C-string src to dst, null-terminating the result. | |
char * | strcpy_trunc (char *dst, std::size_t dstsize, char const *src, std::size_t srclen) |
PROMISE: copies the first n = min(strlen(src), srclen, dstsize - 1) characters of C-string src to dst, null-terminating the result. | |
char * | strcpy_check (char *dst, std::size_t dstsize, char const *src) |
PROMISE: copies the first n = min(strlen(src), dstsize - 1) chars of the C-string src to dst and appends a terminating ''. | |
char * | strcpy_check (char *dst, std::size_t dstsize, char const *src, std::size_t srclen) |
PROMISE: copies the first min(n, dstsize - 1) chars of the C-string src to dst, where n = min(strlen(src), srclen), and appends a terminating ''. | |
char * | strcat_trunc (char *dst, std::size_t dstsize, char const *src) |
PROMISE: If dst[0..dstsize-1] contains a '', appends to C-string dst the first min(strlen(src), dstsize - 1 - strlen(dst)) characters of C-string src, and null terminates the result. | |
char * | strcat_trunc (char *dst, std::size_t dstsize, char const *src, std::size_t srclen) |
PROMISE: If dst[0..dstsize-1] contains a '', appends to C-string dst the first min(strlen(src), srclen, dstsize - 1 - strlen(dst)) characters of C-string src, and null terminates the result. | |
char * | strcat_check (char *dst, std::size_t dstsize, char const *src) |
PROMISE: If dst[0..dstsize-1] contains a '', appends to C-string dst the first min(strlen(src), dstsize - 1 - strlen(dst)) characters of C-string src and null terminates the result. | |
char * | strcat_check (char *dst, std::size_t dstsize, char const *src, std::size_t srclen) |
PROMISE: If dst[0..dstsize-1] contains a '', appends to C-string dst the first min(N, dstsize - 1 - strlen(dst)) characters of C-string src, where N = min(strlen(src), srclen), and null terminates the result. | |
char const * | nonull (char const *s) |
RETURNS: s if s is nonnull, otherwise returns empty string. | |
template<std::size_t N> | |
char * | strcpy_trunc (char(&dst)[N], char const *src) |
A variant of strcpy_trunc that infers the destination buffer size. | |
template<std::size_t N> | |
char * | strcpy_trunc (char(&dst)[N], char const *src, std::size_t srclen) |
A variant of strcpy_trunc that infers the destination buffer size. | |
template<std::size_t N> | |
std::size_t | strcpy_to_pos_trunc (char(&dst)[N], std::size_t pos, char const *src) |
Like strcpy_trunc, but the destination is the subarray dst[pos..N-1] and the return value is an array index instead of a char *. | |
template<std::size_t N> | |
std::size_t | strcpy_to_pos_trunc (char(&dst)[N], std::size_t pos, char const *src, std::size_t srclen) |
Like strcpy_trunc, but the destination is the subarray dst[pos..N-1] and the return value is an array index instead of a char *. | |
BLOCXX_DECLARE_EXCEPTION (Overflow) | |
template<std::size_t N> | |
char * | strcpy_check (char(&dst)[N], char const *src) |
A variant of strcpy_check that infers the destination buffer size. | |
template<std::size_t N> | |
char * | strcpy_check (char(&dst)[N], char const *src, std::size_t srclen) |
A variant of strcpy_check that infers the destination buffer size. | |
template<std::size_t N> | |
std::size_t | strcpy_to_pos_check (char(&dst)[N], std::size_t pos, char const *src) |
Like strcpy_check, but the destination is the subarray dst[pos..N-1] and the return value is an array index instead of a char *. | |
template<std::size_t N> | |
std::size_t | strcpy_to_pos_check (char(&dst)[N], std::size_t pos, char const *src, std::size_t srclen) |
Like strcpy_check, but the destination is the subarray dst[pos..N-1] and the return value is an array index instead of a char *. | |
template<std::size_t N> | |
char * | strcat_trunc (char(&dst)[N], char const *src) |
A variant of strcat_trunc that infers the destination buffer size. | |
template<std::size_t N> | |
char * | strcat_trunc (char(&dst)[N], char const *src, std::size_t srclen) |
A variant of strcat_trunc that infers the destination buffer size. | |
template<std::size_t N> | |
char * | strcat_check (char(&dst)[N], char const *src) |
A variant of strcat_check that infers the destination buffer size. | |
template<std::size_t N> | |
char * | strcat_check (char(&dst)[N], char const *src, std::size_t srclen) |
A variant of strcat_check that infers the destination buffer size. | |
template<typename T1 > | |
std::size_t | sprintf_trunc (char *dst, std::size_t dstsize, char const *fmt, T1 const &x1) |
PROMISE: Behaves like sprintf(dst, fmt, . | |
template<typename T1 , typename T2 > | |
std::size_t | sprintf_trunc (char *dst, std::size_t dstsize, char const *fmt, T1 const &x1, T2 const &x2) |
PROMISE: Behaves like sprintf(dst, fmt, . | |
template<typename T1 , typename T2 , typename T3 > | |
std::size_t | sprintf_trunc (char *dst, std::size_t dstsize, char const *fmt, T1 const &x1, T2 const &x2, T3 const &x3) |
PROMISE: Behaves like sprintf(dst, fmt, . | |
template<typename T1 , typename T2 , typename T3 , typename T4 > | |
std::size_t | sprintf_trunc (char *dst, std::size_t dstsize, char const *fmt, T1 const &x1, T2 const &x2, T3 const &x3, T4 const &x4) |
PROMISE: Behaves like sprintf(dst, fmt, . | |
template<typename T1 , typename T2 , typename T3 , typename T4 , typename T5 > | |
std::size_t | sprintf_trunc (char *dst, std::size_t dstsize, char const *fmt, T1 const &x1, T2 const &x2, T3 const &x3, T4 const &x4, T5 const &x5) |
PROMISE: Behaves like sprintf(dst, fmt, . | |
template<std::size_t N, typename T1 > | |
std::size_t | sprintf_trunc (char(&dst)[N], char const *fmt, T1 const &x1) |
A variant of sprintf_trunc that infers the destination buffer size. | |
template<std::size_t N, typename T1 , typename T2 > | |
std::size_t | sprintf_trunc (char(&dst)[N], char const *fmt, T1 const &x1, T2 const &x2) |
A variant of sprintf_trunc that infers the destination buffer size. | |
template<std::size_t N, typename T1 , typename T2 , typename T3 > | |
std::size_t | sprintf_trunc (char(&dst)[N], char const *fmt, T1 const &x1, T2 const &x2, T3 const &x3) |
A variant of sprintf_trunc that infers the destination buffer size. | |
template<std::size_t N, typename T1 , typename T2 , typename T3 , typename T4 > | |
std::size_t | sprintf_trunc (char(&dst)[N], char const *fmt, T1 const &x1, T2 const &x2, T3 const &x3, T4 const &x4) |
A variant of sprintf_trunc that infers the destination buffer size. | |
template<std::size_t N, typename T1 , typename T2 , typename T3 , typename T4 , typename T5 > | |
std::size_t | sprintf_trunc (char(&dst)[N], char const *fmt, T1 const &x1, T2 const &x2, T3 const &x3, T4 const &x4, T5 const &x5) |
A variant of sprintf_trunc that infers the destination buffer size. | |
template<typename T1 > | |
std::size_t | sprintf_check (char *dst, std::size_t dstsize, char const *fmt, T1 const &x1) |
PROMISE: Behaves like sprintf(dst, fmt, . | |
template<typename T1 , typename T2 > | |
std::size_t | sprintf_check (char *dst, std::size_t dstsize, char const *fmt, T1 const &x1, T2 const &x2) |
PROMISE: Behaves like sprintf(dst, fmt, . | |
template<typename T1 , typename T2 , typename T3 > | |
std::size_t | sprintf_check (char *dst, std::size_t dstsize, char const *fmt, T1 const &x1, T2 const &x2, T3 const &x3) |
PROMISE: Behaves like sprintf(dst, fmt, . | |
template<typename T1 , typename T2 , typename T3 , typename T4 > | |
std::size_t | sprintf_check (char *dst, std::size_t dstsize, char const *fmt, T1 const &x1, T2 const &x2, T3 const &x3, T4 const &x4) |
PROMISE: Behaves like sprintf(dst, fmt, . | |
template<typename T1 , typename T2 , typename T3 , typename T4 , typename T5 > | |
std::size_t | sprintf_check (char *dst, std::size_t dstsize, char const *fmt, T1 const &x1, T2 const &x2, T3 const &x3, T4 const &x4, T5 const &x5) |
PROMISE: Behaves like sprintf(dst, fmt, . | |
template<std::size_t N, typename T1 > | |
std::size_t | sprintf_check (char(&dst)[N], char const *fmt, T1 const &x1) |
A variant of sprintf_check that infers the destination buffer size. | |
template<std::size_t N, typename T1 , typename T2 > | |
std::size_t | sprintf_check (char(&dst)[N], char const *fmt, T1 const &x1, T2 const &x2) |
A variant of sprintf_check that infers the destination buffer size. | |
template<std::size_t N, typename T1 , typename T2 , typename T3 > | |
std::size_t | sprintf_check (char(&dst)[N], char const *fmt, T1 const &x1, T2 const &x2, T3 const &x3) |
A variant of sprintf_check that infers the destination buffer size. | |
template<std::size_t N, typename T1 , typename T2 , typename T3 , typename T4 > | |
std::size_t | sprintf_check (char(&dst)[N], char const *fmt, T1 const &x1, T2 const &x2, T3 const &x3, T4 const &x4) |
A variant of sprintf_check that infers the destination buffer size. | |
template<std::size_t N, typename T1 , typename T2 , typename T3 , typename T4 , typename T5 > | |
std::size_t | sprintf_check (char(&dst)[N], char const *fmt, T1 const &x1, T2 const &x2, T3 const &x3, T4 const &x4, T5 const &x5) |
A variant of sprintf_check that infers the destination buffer size. | |
template<typename T1 > | |
std::size_t | vprintf_trunc (char *dst, std::size_t dstsize, char const *fmt, va_list ap) |
PROMISE: Behaves like vprintf(dst, fmt, ap) except that output stops at dstsize - 1 characters. | |
template<std::size_t N> | |
std::size_t | vprintf_trunc (char(&dst)[N], char const *fmt, va_list ap) |
A variant of vprintf_trunc that infers the destination buffer size. | |
std::size_t | vprintf_check (char *dst, std::size_t dstsize, char const *fmt, va_list ap) |
PROMISE: Behaves like vprintf(dst, fmt, ap) except that output stops at dstsize - 1 characters. | |
template<std::size_t N> | |
std::size_t | vprintf_check (char(&dst)[N], char const *fmt, va_list ap) |
A variant of vprintf_check that infers the destination buffer size. | |
char * | fgets_trunc (char *dst, std::size_t dstsize, FILE *fp) |
char * | fgets_check (char *dst, std::size_t dstsize, FILE *fp) |
String | fget_string (FILE *fp, std::size_t const max_chars) |
char * | fgets_trunc (char *dst, std::size_t dstsize, std::FILE *fp) |
PROMISE: Equivalent to std::fgets, except that I/O errors are reported by throwing an exception. | |
template<std::size_t N> | |
char * | fgets_trunc (char(&dst)[N], std::FILE *fp) |
A variant of fgets_trunc that infers the destination buffer size. | |
char * | fgets_check (char *dst, std::size_t dstsize, std::FILE *fp) |
PROMISE: Equivalent to std::fgets, except that I/O errors and truncated lines are reported by throwing an exception. | |
template<std::size_t N> | |
char * | fgets_check (char(&dst)[N], std::FILE *fp) |
A variant of fgets_check that infers the destination buffer size. | |
String | fget_string (std::FILE *fp, std::size_t max_chars) |
RETURNS: A String created by reading from fp until either EOF or a newline is encountered. | |
Variables | |
int const | RESULT_TRUNCATED = 0 |
Error codes for use with OverflowException class. | |
int const | DEST_UNTERMINATED = 1 |
BLOCXX_NAMESPACE::SafeCString::BLOCXX_DECLARE_EXCEPTION | ( | Overflow | ) |
BLOCXX_NAMESPACE::SafeCString::BLOCXX_DEFINE_EXCEPTION | ( | Overflow | ) |
String BLOCXX_NAMESPACE::SafeCString::fget_string | ( | std::FILE * | fp, | |
std::size_t | max_chars | |||
) |
RETURNS: A String created by reading from fp until either EOF or a newline is encountered.
If a newline is found it is included in the return String.
THROWS: blocxx::IOException if there is a read error.
THROWS: blocxx::StringConversionException if neither EOF nor newline is found within max_chars characters. (This is a protection against unreasonably long inputs.)
String BLOCXX_NAMESPACE::SafeCString::fget_string | ( | FILE * | fp, | |
std::size_t const | max_chars | |||
) |
Definition at line 92 of file SafeCStringIO.cpp.
References BLOCXX_THROW.
char* BLOCXX_NAMESPACE::SafeCString::fgets_check | ( | char(&) | dst[N], | |
std::FILE * | fp | |||
) | [inline] |
A variant of fgets_check that infers the destination buffer size.
Definition at line 91 of file SafeCStringIO.hpp.
References fgets_check().
char* BLOCXX_NAMESPACE::SafeCString::fgets_check | ( | char * | dst, | |
std::size_t | dstsize, | |||
std::FILE * | fp | |||
) |
PROMISE: Equivalent to std::fgets, except that I/O errors and truncated lines are reported by throwing an exception.
THROWS: blocxx::IOException if there is a read error.
THROWS: OverflowException if the input line (including terminating '') must be truncated to fit into dstsize chars.
REQUIRES: dst nonnull, fp nonnull, dstsize > 0.
RETURNS: NULL if no characters read because of reaching EOF; dst otherwise.
char* BLOCXX_NAMESPACE::SafeCString::fgets_check | ( | char * | dst, | |
std::size_t | dstsize, | |||
FILE * | fp | |||
) |
Definition at line 56 of file SafeCStringIO.cpp.
References BLOCXX_THROW.
Referenced by fgets_check().
char* BLOCXX_NAMESPACE::SafeCString::fgets_trunc | ( | char(&) | dst[N], | |
std::FILE * | fp | |||
) | [inline] |
A variant of fgets_trunc that infers the destination buffer size.
Definition at line 67 of file SafeCStringIO.hpp.
References fgets_trunc().
char* BLOCXX_NAMESPACE::SafeCString::fgets_trunc | ( | char * | dst, | |
std::size_t | dstsize, | |||
std::FILE * | fp | |||
) |
PROMISE: Equivalent to std::fgets, except that I/O errors are reported by throwing an exception.
THROWS: blocxx::IOException if there is a read error.
REQUIRES: dst nonnull, fp nonnull, dstsize > 0.
RETURNS: NULL if no characters read because of reaching EOF; dst otherwise.
char* BLOCXX_NAMESPACE::SafeCString::fgets_trunc | ( | char * | dst, | |
std::size_t | dstsize, | |||
FILE * | fp | |||
) |
Definition at line 42 of file SafeCStringIO.cpp.
Referenced by fgets_trunc().
char const* BLOCXX_NAMESPACE::SafeCString::nonull | ( | char const * | s | ) | [inline] |
RETURNS: s if s is nonnull, otherwise returns empty string.
WARNING: Do not deallocate the return value.
Definition at line 74 of file SafeCString.hpp.
std::size_t BLOCXX_NAMESPACE::SafeCString::sprintf_check | ( | char(&) | dst[N], | |
char const * | fmt, | |||
T1 const & | x1, | |||
T2 const & | x2, | |||
T3 const & | x3, | |||
T4 const & | x4, | |||
T5 const & | x5 | |||
) | [inline] |
A variant of sprintf_check that infers the destination buffer size.
Definition at line 660 of file SafeCString.hpp.
References BLOCXX_NAMESPACE::SafeCString::Impl::nchars_check().
std::size_t BLOCXX_NAMESPACE::SafeCString::sprintf_check | ( | char(&) | dst[N], | |
char const * | fmt, | |||
T1 const & | x1, | |||
T2 const & | x2, | |||
T3 const & | x3, | |||
T4 const & | x4 | |||
) | [inline] |
A variant of sprintf_check that infers the destination buffer size.
Definition at line 647 of file SafeCString.hpp.
References BLOCXX_NAMESPACE::SafeCString::Impl::nchars_check().
std::size_t BLOCXX_NAMESPACE::SafeCString::sprintf_check | ( | char(&) | dst[N], | |
char const * | fmt, | |||
T1 const & | x1, | |||
T2 const & | x2, | |||
T3 const & | x3 | |||
) | [inline] |
A variant of sprintf_check that infers the destination buffer size.
Definition at line 635 of file SafeCString.hpp.
References BLOCXX_NAMESPACE::SafeCString::Impl::nchars_check().
std::size_t BLOCXX_NAMESPACE::SafeCString::sprintf_check | ( | char(&) | dst[N], | |
char const * | fmt, | |||
T1 const & | x1, | |||
T2 const & | x2 | |||
) | [inline] |
A variant of sprintf_check that infers the destination buffer size.
Definition at line 624 of file SafeCString.hpp.
References BLOCXX_NAMESPACE::SafeCString::Impl::nchars_check().
std::size_t BLOCXX_NAMESPACE::SafeCString::sprintf_check | ( | char(&) | dst[N], | |
char const * | fmt, | |||
T1 const & | x1 | |||
) | [inline] |
A variant of sprintf_check that infers the destination buffer size.
Definition at line 615 of file SafeCString.hpp.
References BLOCXX_NAMESPACE::SafeCString::Impl::nchars_check().
std::size_t BLOCXX_NAMESPACE::SafeCString::sprintf_check | ( | char * | dst, | |
std::size_t | dstsize, | |||
char const * | fmt, | |||
T1 const & | x1, | |||
T2 const & | x2, | |||
T3 const & | x3, | |||
T4 const & | x4, | |||
T5 const & | x5 | |||
) | [inline] |
PROMISE: Behaves like sprintf(dst, fmt, .
..) except that output stops at dstsize - 1 characters. Always outputs a terminating ''.
THROWS: OverflowException if the output had to be truncated.
RETURNS: the number of chars output, not including the terminating ''
Definition at line 602 of file SafeCString.hpp.
References BLOCXX_NAMESPACE::SafeCString::Impl::nchars_check().
std::size_t BLOCXX_NAMESPACE::SafeCString::sprintf_check | ( | char * | dst, | |
std::size_t | dstsize, | |||
char const * | fmt, | |||
T1 const & | x1, | |||
T2 const & | x2, | |||
T3 const & | x3, | |||
T4 const & | x4 | |||
) | [inline] |
PROMISE: Behaves like sprintf(dst, fmt, .
..) except that output stops at dstsize - 1 characters. Always outputs a terminating ''.
THROWS: OverflowException if the output had to be truncated.
RETURNS: the number of chars output, not including the terminating ''
Definition at line 584 of file SafeCString.hpp.
References BLOCXX_NAMESPACE::SafeCString::Impl::nchars_check().
std::size_t BLOCXX_NAMESPACE::SafeCString::sprintf_check | ( | char * | dst, | |
std::size_t | dstsize, | |||
char const * | fmt, | |||
T1 const & | x1, | |||
T2 const & | x2, | |||
T3 const & | x3 | |||
) | [inline] |
PROMISE: Behaves like sprintf(dst, fmt, .
..) except that output stops at dstsize - 1 characters. Always outputs a terminating ''.
THROWS: OverflowException if the output had to be truncated.
RETURNS: the number of chars output, not including the terminating ''
Definition at line 566 of file SafeCString.hpp.
References BLOCXX_NAMESPACE::SafeCString::Impl::nchars_check().
std::size_t BLOCXX_NAMESPACE::SafeCString::sprintf_check | ( | char * | dst, | |
std::size_t | dstsize, | |||
char const * | fmt, | |||
T1 const & | x1, | |||
T2 const & | x2 | |||
) | [inline] |
PROMISE: Behaves like sprintf(dst, fmt, .
..) except that output stops at dstsize - 1 characters. Always outputs a terminating ''.
THROWS: OverflowException if the output had to be truncated.
RETURNS: the number of chars output, not including the terminating ''
Definition at line 548 of file SafeCString.hpp.
References BLOCXX_NAMESPACE::SafeCString::Impl::nchars_check().
std::size_t BLOCXX_NAMESPACE::SafeCString::sprintf_check | ( | char * | dst, | |
std::size_t | dstsize, | |||
char const * | fmt, | |||
T1 const & | x1 | |||
) | [inline] |
PROMISE: Behaves like sprintf(dst, fmt, .
..) except that output stops at dstsize - 1 characters. Always outputs a terminating ''.
THROWS: OverflowException if the output had to be truncated.
RETURNS: the number of chars output, not including the terminating ''
Definition at line 532 of file SafeCString.hpp.
References BLOCXX_NAMESPACE::SafeCString::Impl::nchars_check().
std::size_t BLOCXX_NAMESPACE::SafeCString::sprintf_trunc | ( | char(&) | dst[N], | |
char const * | fmt, | |||
T1 const & | x1, | |||
T2 const & | x2, | |||
T3 const & | x3, | |||
T4 const & | x4, | |||
T5 const & | x5 | |||
) | [inline] |
A variant of sprintf_trunc that infers the destination buffer size.
Definition at line 513 of file SafeCString.hpp.
References BLOCXX_NAMESPACE::SafeCString::Impl::nchars_output().
std::size_t BLOCXX_NAMESPACE::SafeCString::sprintf_trunc | ( | char(&) | dst[N], | |
char const * | fmt, | |||
T1 const & | x1, | |||
T2 const & | x2, | |||
T3 const & | x3, | |||
T4 const & | x4 | |||
) | [inline] |
A variant of sprintf_trunc that infers the destination buffer size.
Definition at line 500 of file SafeCString.hpp.
References BLOCXX_NAMESPACE::SafeCString::Impl::nchars_output().
std::size_t BLOCXX_NAMESPACE::SafeCString::sprintf_trunc | ( | char(&) | dst[N], | |
char const * | fmt, | |||
T1 const & | x1, | |||
T2 const & | x2, | |||
T3 const & | x3 | |||
) | [inline] |
A variant of sprintf_trunc that infers the destination buffer size.
Definition at line 488 of file SafeCString.hpp.
References BLOCXX_NAMESPACE::SafeCString::Impl::nchars_output().
std::size_t BLOCXX_NAMESPACE::SafeCString::sprintf_trunc | ( | char(&) | dst[N], | |
char const * | fmt, | |||
T1 const & | x1, | |||
T2 const & | x2 | |||
) | [inline] |
A variant of sprintf_trunc that infers the destination buffer size.
Definition at line 477 of file SafeCString.hpp.
References BLOCXX_NAMESPACE::SafeCString::Impl::nchars_output().
std::size_t BLOCXX_NAMESPACE::SafeCString::sprintf_trunc | ( | char(&) | dst[N], | |
char const * | fmt, | |||
T1 const & | x1 | |||
) | [inline] |
A variant of sprintf_trunc that infers the destination buffer size.
Definition at line 468 of file SafeCString.hpp.
References BLOCXX_NAMESPACE::SafeCString::Impl::nchars_output().
std::size_t BLOCXX_NAMESPACE::SafeCString::sprintf_trunc | ( | char * | dst, | |
std::size_t | dstsize, | |||
char const * | fmt, | |||
T1 const & | x1, | |||
T2 const & | x2, | |||
T3 const & | x3, | |||
T4 const & | x4, | |||
T5 const & | x5 | |||
) | [inline] |
PROMISE: Behaves like sprintf(dst, fmt, .
..) except that output stops at dstsize - 1 characters. Always outputs a terminating ''.
RETURNS: the number of chars output, not including the terminating ''
Definition at line 455 of file SafeCString.hpp.
References BLOCXX_NAMESPACE::SafeCString::Impl::nchars_output().
std::size_t BLOCXX_NAMESPACE::SafeCString::sprintf_trunc | ( | char * | dst, | |
std::size_t | dstsize, | |||
char const * | fmt, | |||
T1 const & | x1, | |||
T2 const & | x2, | |||
T3 const & | x3, | |||
T4 const & | x4 | |||
) | [inline] |
PROMISE: Behaves like sprintf(dst, fmt, .
..) except that output stops at dstsize - 1 characters. Always outputs a terminating ''.
RETURNS: the number of chars output, not including the terminating ''
Definition at line 439 of file SafeCString.hpp.
References BLOCXX_NAMESPACE::SafeCString::Impl::nchars_output().
std::size_t BLOCXX_NAMESPACE::SafeCString::sprintf_trunc | ( | char * | dst, | |
std::size_t | dstsize, | |||
char const * | fmt, | |||
T1 const & | x1, | |||
T2 const & | x2, | |||
T3 const & | x3 | |||
) | [inline] |
PROMISE: Behaves like sprintf(dst, fmt, .
..) except that output stops at dstsize - 1 characters. Always outputs a terminating ''.
RETURNS: the number of chars output, not including the terminating ''
Definition at line 423 of file SafeCString.hpp.
References BLOCXX_NAMESPACE::SafeCString::Impl::nchars_output().
std::size_t BLOCXX_NAMESPACE::SafeCString::sprintf_trunc | ( | char * | dst, | |
std::size_t | dstsize, | |||
char const * | fmt, | |||
T1 const & | x1, | |||
T2 const & | x2 | |||
) | [inline] |
PROMISE: Behaves like sprintf(dst, fmt, .
..) except that output stops at dstsize - 1 characters. Always outputs a terminating ''.
RETURNS: the number of chars output, not including the terminating ''
Definition at line 407 of file SafeCString.hpp.
References BLOCXX_NAMESPACE::SafeCString::Impl::nchars_output().
std::size_t BLOCXX_NAMESPACE::SafeCString::sprintf_trunc | ( | char * | dst, | |
std::size_t | dstsize, | |||
char const * | fmt, | |||
T1 const & | x1 | |||
) | [inline] |
PROMISE: Behaves like sprintf(dst, fmt, .
..) except that output stops at dstsize - 1 characters. Always outputs a terminating ''.
RETURNS: the number of chars output, not including the terminating ''
Definition at line 393 of file SafeCString.hpp.
References BLOCXX_NAMESPACE::SafeCString::Impl::nchars_output().
BLOCXX_COMMON_API char * BLOCXX_NAMESPACE::SafeCString::str_dup | ( | char const * | s | ) |
Like std::strdup, except that new is used to allocate memory.
char * BLOCXX_NAMESPACE::SafeCString::str_dup_nothrow | ( | char const * | s | ) |
Like std::strdup, except that no-throw new is used to allocate memory and NULL is returned on allocation failure.
char* BLOCXX_NAMESPACE::SafeCString::strcat_check | ( | char(&) | dst[N], | |
char const * | src, | |||
std::size_t | srclen | |||
) | [inline] |
A variant of strcat_check that infers the destination buffer size.
Definition at line 367 of file SafeCString.hpp.
References strcat_check().
char* BLOCXX_NAMESPACE::SafeCString::strcat_check | ( | char(&) | dst[N], | |
char const * | src | |||
) | [inline] |
A variant of strcat_check that infers the destination buffer size.
Definition at line 358 of file SafeCString.hpp.
References strcat_check().
char * BLOCXX_NAMESPACE::SafeCString::strcat_check | ( | char * | dst, | |
std::size_t | dstsize, | |||
char const * | src, | |||
std::size_t | srclen | |||
) |
PROMISE: If dst[0..dstsize-1] contains a '', appends to C-string dst the first min(N, dstsize - 1 - strlen(dst)) characters of C-string src, where N = min(strlen(src), srclen), and null terminates the result.
THROWS: OverflowException with getErrorCode() == DEST_UNTERMINATED if dst[0..dstsize-1] contains no ''.
THROWS: OverflowException with getErrorCode() == RESULT_TRUNCATED if strlen(dst) + N >= dstsize.
REQUIRE: dst != 0, src != 0, dstsize > 0.
REQUIRE: dst points to an array of at least dstsize characters.
REQUIRE: src points to a null-terminated array of characters or an array of at least srclen characters.
REQUIRE: the source and destination character sequences do not overlap.
RETURNS: Pointer to the terminating '' of the resulting C-string.
char * BLOCXX_NAMESPACE::SafeCString::strcat_check | ( | char * | dst, | |
std::size_t | dstsize, | |||
char const * | src | |||
) |
PROMISE: If dst[0..dstsize-1] contains a '', appends to C-string dst the first min(strlen(src), dstsize - 1 - strlen(dst)) characters of C-string src and null terminates the result.
THROWS: OverflowException with getErrorCode() == DEST_UNTERMINATED if dst[0..dstsize-1] contains no ''.
THROWS: OverflowException with getErrorCode() == RESULT_TRUNCATED if strlen(dst) + strlen(src) >= dstsize.
REQUIRE: dst != 0, src != 0, dstsize > 0.
REQUIRE: dst points to an array of at least dstsize characters.
REQUIRE: src points to a null-terminated array of characters.
REQUIRE: the source and destination character sequences do not overlap.
RETURNS: Pointer to the terminating '' of the resulting C-string.
Referenced by strcat_check().
char* BLOCXX_NAMESPACE::SafeCString::strcat_trunc | ( | char(&) | dst[N], | |
char const * | src, | |||
std::size_t | srclen | |||
) | [inline] |
A variant of strcat_trunc that infers the destination buffer size.
Definition at line 300 of file SafeCString.hpp.
References strcat_trunc().
char* BLOCXX_NAMESPACE::SafeCString::strcat_trunc | ( | char(&) | dst[N], | |
char const * | src | |||
) | [inline] |
A variant of strcat_trunc that infers the destination buffer size.
Definition at line 291 of file SafeCString.hpp.
References strcat_trunc().
char * BLOCXX_NAMESPACE::SafeCString::strcat_trunc | ( | char * | dst, | |
std::size_t | dstsize, | |||
char const * | src, | |||
std::size_t | srclen | |||
) |
PROMISE: If dst[0..dstsize-1] contains a '', appends to C-string dst the first min(strlen(src), srclen, dstsize - 1 - strlen(dst)) characters of C-string src, and null terminates the result.
THROWS: OverflowException if dst[0..dstsize-1] contains no ''.
REQUIRE: dst != 0, src != 0, dstsize > 0.
REQUIRE: dst points to an array of at least dstsize characters.
REQUIRE: src points to a null-terminated array of characters or an array of at least srclen characters.
REQUIRE: the source and destination character sequences do not overlap.
RETURNS: Pointer to the terminating '' of the resulting C-string
char * BLOCXX_NAMESPACE::SafeCString::strcat_trunc | ( | char * | dst, | |
std::size_t | dstsize, | |||
char const * | src | |||
) |
PROMISE: If dst[0..dstsize-1] contains a '', appends to C-string dst the first min(strlen(src), dstsize - 1 - strlen(dst)) characters of C-string src, and null terminates the result.
THROWS: OverflowException if dst[0..dstsize-1] contains no ''.
REQUIRE: dst != 0, src != 0, dstsize > 0.
REQUIRE: dst points to an array of at least dstsize characters.
REQUIRE: src points to a null-terminated array of characters.
REQUIRE: the source and destination character sequences do not overlap.
RETURNS: Pointer to the terminating '' of the resulting C-string.
Referenced by strcat_trunc().
char* BLOCXX_NAMESPACE::SafeCString::strcpy_check | ( | char(&) | dst[N], | |
char const * | src, | |||
std::size_t | srclen | |||
) | [inline] |
A variant of strcpy_check that infers the destination buffer size.
Definition at line 216 of file SafeCString.hpp.
References strcpy_check().
char* BLOCXX_NAMESPACE::SafeCString::strcpy_check | ( | char(&) | dst[N], | |
char const * | src | |||
) | [inline] |
A variant of strcpy_check that infers the destination buffer size.
Definition at line 207 of file SafeCString.hpp.
References strcpy_check().
char * BLOCXX_NAMESPACE::SafeCString::strcpy_check | ( | char * | dst, | |
std::size_t | dstsize, | |||
char const * | src, | |||
std::size_t | srclen | |||
) |
PROMISE: copies the first min(n, dstsize - 1) chars of the C-string src to dst, where n = min(strlen(src), srclen), and appends a terminating ''.
THROWS: OverflowException if n >= dstsize.
REQUIRE: dst != 0, src != 0, dstsize > 0.
REQUIRE: dst points to an array of at least dstsize characters.
REQUIRE: src points to a null-terminated array of characters or an array of at least srclen characters.
REQUIRE: the source and destination character sequences do not overlap.
RETURNS: Pointer to the terminating '' char.
char * BLOCXX_NAMESPACE::SafeCString::strcpy_check | ( | char * | dst, | |
std::size_t | dstsize, | |||
char const * | src | |||
) |
PROMISE: copies the first n = min(strlen(src), dstsize - 1) chars of the C-string src to dst and appends a terminating ''.
THROWS: OverflowException if strlen(src) >= dstsize.
REQUIRE: dst != 0, src != 0, dstsize > 0.
REQUIRE: dst points to an array of at least dstsize characters.
REQUIRE: src points to a null-terminated array of characters or an array of at least dstsize characters.
REQUIRE: the source and destination character sequences do not overlap.
RETURNS: Pointer to the terminating '' char.
Referenced by BLOCXX_NAMESPACE::FileSystem::createAutoDeleteTempFile(), BLOCXX_NAMESPACE::FileSystem::createTempFile(), strcpy_check(), and strcpy_to_pos_check().
std::size_t BLOCXX_NAMESPACE::SafeCString::strcpy_to_pos_check | ( | char(&) | dst[N], | |
std::size_t | pos, | |||
char const * | src, | |||
std::size_t | srclen | |||
) | [inline] |
Like strcpy_check, but the destination is the subarray dst[pos..N-1] and the return value is an array index instead of a char *.
Definition at line 238 of file SafeCString.hpp.
References strcpy_check().
std::size_t BLOCXX_NAMESPACE::SafeCString::strcpy_to_pos_check | ( | char(&) | dst[N], | |
std::size_t | pos, | |||
char const * | src | |||
) | [inline] |
Like strcpy_check, but the destination is the subarray dst[pos..N-1] and the return value is an array index instead of a char *.
Definition at line 226 of file SafeCString.hpp.
References strcpy_check().
std::size_t BLOCXX_NAMESPACE::SafeCString::strcpy_to_pos_trunc | ( | char(&) | dst[N], | |
std::size_t | pos, | |||
char const * | src, | |||
std::size_t | srclen | |||
) | [inline] |
Like strcpy_trunc, but the destination is the subarray dst[pos..N-1] and the return value is an array index instead of a char *.
Definition at line 151 of file SafeCString.hpp.
References strcpy_trunc().
std::size_t BLOCXX_NAMESPACE::SafeCString::strcpy_to_pos_trunc | ( | char(&) | dst[N], | |
std::size_t | pos, | |||
char const * | src | |||
) | [inline] |
Like strcpy_trunc, but the destination is the subarray dst[pos..N-1] and the return value is an array index instead of a char *.
Definition at line 139 of file SafeCString.hpp.
References strcpy_trunc().
char* BLOCXX_NAMESPACE::SafeCString::strcpy_trunc | ( | char(&) | dst[N], | |
char const * | src, | |||
std::size_t | srclen | |||
) | [inline] |
A variant of strcpy_trunc that infers the destination buffer size.
Definition at line 129 of file SafeCString.hpp.
References strcpy_trunc().
char* BLOCXX_NAMESPACE::SafeCString::strcpy_trunc | ( | char(&) | dst[N], | |
char const * | src | |||
) | [inline] |
A variant of strcpy_trunc that infers the destination buffer size.
Definition at line 120 of file SafeCString.hpp.
References strcpy_trunc().
char * BLOCXX_NAMESPACE::SafeCString::strcpy_trunc | ( | char * | dst, | |
std::size_t | dstsize, | |||
char const * | src, | |||
std::size_t | srclen | |||
) |
PROMISE: copies the first n = min(strlen(src), srclen, dstsize - 1) characters of C-string src to dst, null-terminating the result.
REQUIRE: dst != 0, src != 0, dstsize > 0.
REQUIRE: dst points to an array of at least dstsize characters.
REQUIRE: src points to a null-terminated array of characters or an array of at least srclen characters.
REQUIRE: the source and destination character sequences do not overlap.
RETURNS: dst + n.
char * BLOCXX_NAMESPACE::SafeCString::strcpy_trunc | ( | char * | dst, | |
std::size_t | dstsize, | |||
char const * | src | |||
) |
PROMISE: copies the first n = min(strlen(src), dstsize - 1) characters of C-string src to dst, null-terminating the result.
REQUIRE: dst != 0, src != 0, dstsize > 0.
REQUIRE: dst points to an array of at least dstsize characters.
REQUIRE: src points to a null-terminated array of characters or an array of at least dstsize - 1 characters.
REQUIRE: the source and destination character sequences do not overlap.
RETURNS: dst + n.
Referenced by strcpy_to_pos_trunc(), and strcpy_trunc().
std::size_t BLOCXX_NAMESPACE::SafeCString::vprintf_check | ( | char(&) | dst[N], | |
char const * | fmt, | |||
va_list | ap | |||
) | [inline] |
A variant of vprintf_check that infers the destination buffer size.
Definition at line 712 of file SafeCString.hpp.
References vprintf_check().
std::size_t BLOCXX_NAMESPACE::SafeCString::vprintf_check | ( | char * | dst, | |
std::size_t | dstsize, | |||
char const * | fmt, | |||
va_list | ap | |||
) | [inline] |
PROMISE: Behaves like vprintf(dst, fmt, ap) except that output stops at dstsize - 1 characters.
Always outputs a terminating ''.
THROWS: OverflowException if the output had to be truncated.
RETURNS: the number of chars output, not including the terminating ''
Definition at line 701 of file SafeCString.hpp.
References BLOCXX_NAMESPACE::SafeCString::Impl::nchars_check().
Referenced by vprintf_check().
std::size_t BLOCXX_NAMESPACE::SafeCString::vprintf_trunc | ( | char(&) | dst[N], | |
char const * | fmt, | |||
va_list | ap | |||
) | [inline] |
A variant of vprintf_trunc that infers the destination buffer size.
Definition at line 687 of file SafeCString.hpp.
References vprintf_trunc().
std::size_t BLOCXX_NAMESPACE::SafeCString::vprintf_trunc | ( | char * | dst, | |
std::size_t | dstsize, | |||
char const * | fmt, | |||
va_list | ap | |||
) | [inline] |
PROMISE: Behaves like vprintf(dst, fmt, ap) except that output stops at dstsize - 1 characters.
Always outputs a terminating ''.
RETURNS: the number of chars output, not including the terminating ''
Definition at line 676 of file SafeCString.hpp.
References BLOCXX_NAMESPACE::SafeCString::Impl::nchars_output().
Referenced by vprintf_trunc().
int const BLOCXX_NAMESPACE::SafeCString::DEST_UNTERMINATED = 1 |
Definition at line 161 of file SafeCString.hpp.
int const BLOCXX_NAMESPACE::SafeCString::RESULT_TRUNCATED = 0 |
Error codes for use with OverflowException class.
Definition at line 160 of file SafeCString.hpp.