mirror of
https://github.com/asterisk/asterisk.git
synced 2025-10-28 15:11:12 +00:00
Fix ast_str_truncate signedness warning and documentation.
Review: https://reviewboard.asterisk.org/r/1594 git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@346144 65c4cc65-6c06-0410-ace0-fbb531ad65f3
This commit is contained in:
@@ -498,14 +498,20 @@ char * attribute_pure ast_str_buffer(const struct ast_str *buf),
|
|||||||
|
|
||||||
/*!\brief Truncates the enclosed string to the given length.
|
/*!\brief Truncates the enclosed string to the given length.
|
||||||
* \param buf A pointer to the ast_str structure.
|
* \param buf A pointer to the ast_str structure.
|
||||||
* \param len Maximum length of the string.
|
* \param len Maximum length of the string. If len is larger than the
|
||||||
|
* current maximum length, things will explode. If it is negative
|
||||||
|
* at most -len characters will be trimmed off the end.
|
||||||
* \retval A pointer to the resulting string.
|
* \retval A pointer to the resulting string.
|
||||||
*/
|
*/
|
||||||
AST_INLINE_API(
|
AST_INLINE_API(
|
||||||
char *ast_str_truncate(struct ast_str *buf, ssize_t len),
|
char *ast_str_truncate(struct ast_str *buf, ssize_t len),
|
||||||
{
|
{
|
||||||
if (len < 0) {
|
if (len < 0) {
|
||||||
buf->__AST_STR_USED += ((ssize_t) abs(len)) > (ssize_t) buf->__AST_STR_USED ? -buf->__AST_STR_USED : len;
|
if ((typeof(buf->__AST_STR_USED)) -len >= buf->__AST_STR_USED) {
|
||||||
|
buf->__AST_STR_USED = 0;
|
||||||
|
} else {
|
||||||
|
buf->__AST_STR_USED += len;
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
buf->__AST_STR_USED = len;
|
buf->__AST_STR_USED = len;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user