aboutsummaryrefslogtreecommitdiffstats
path: root/main/xmldoc.c
diff options
context:
space:
mode:
authortilghman <tilghman@f38db490-d61c-443f-a65b-d21fe96a405b>2008-12-13 08:36:35 +0000
committertilghman <tilghman@f38db490-d61c-443f-a65b-d21fe96a405b>2008-12-13 08:36:35 +0000
commita41b34a63c52608e7e5c8e6aced613815461f4c2 (patch)
tree0559c99680217b78c0bda37a131b5f09794f43c6 /main/xmldoc.c
parentb298a3aa9b396c4055bf75104b4fb89212c44d4a (diff)
Merge ast_str_opaque branch (discontinue usage of ast_str internals)
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@163991 f38db490-d61c-443f-a65b-d21fe96a405b
Diffstat (limited to 'main/xmldoc.c')
-rw-r--r--main/xmldoc.c41
1 files changed, 20 insertions, 21 deletions
diff --git a/main/xmldoc.c b/main/xmldoc.c
index 3185a3a56..1cd3a0909 100644
--- a/main/xmldoc.c
+++ b/main/xmldoc.c
@@ -268,8 +268,7 @@ static char *xmldoc_string_wrap(const char *text, int columns, int maxdiff)
backspace = xmldoc_foundspace_backward(text, i, maxdiff);
if (backspace) {
needtobreak = 1;
- tmp->used -= backspace;
- tmp->str[tmp->used] = '\0';
+ ast_str_truncate(tmp, -backspace);
i -= backspace + 1;
continue;
}
@@ -300,7 +299,7 @@ static char *xmldoc_string_wrap(const char *text, int columns, int maxdiff)
ast_str_append(&tmp, 0, "%c", text[i]);
}
- ret = ast_strdup(tmp->str);
+ ret = ast_strdup(ast_str_buffer(tmp));
ast_free(tmp);
return ret;
@@ -403,7 +402,7 @@ char *ast_xmldoc_printable(const char *bwinput, int withcolors)
}
/* Wrap the text, notice that string wrap will avoid cutting an ESC sequence. */
- wrapped = xmldoc_string_wrap(colorized->str, xmldoc_text_columns, xmldoc_max_diff);
+ wrapped = xmldoc_string_wrap(ast_str_buffer(colorized), xmldoc_text_columns, xmldoc_max_diff);
ast_free(colorized);
@@ -881,7 +880,7 @@ static char *xmldoc_parse_cmd_enumlist(struct ast_xml_node *fixnode)
ast_str_append(&paramname, 0, "}");
- ret = ast_strdup(paramname->str);
+ ret = ast_strdup(ast_str_buffer(paramname));
ast_free(paramname);
return ret;
@@ -978,7 +977,7 @@ static char *xmldoc_get_syntax_cmd(struct ast_xml_node *fixnode, const char *nam
}
/* return a common string. */
- ret = ast_strdup(syntax->str);
+ ret = ast_strdup(ast_str_buffer(syntax));
ast_free(syntax);
return ret;
@@ -1084,9 +1083,9 @@ static int xmldoc_parse_para(struct ast_xml_node *node, const char *tabs, const
if (tmpstr) {
if (strcasecmp(ast_xml_node_get_name(tmp), "text")) {
ast_str_append(buffer, 0, "<%s>%s</%s>", ast_xml_node_get_name(tmp),
- tmpstr->str, ast_xml_node_get_name(tmp));
+ ast_str_buffer(tmpstr), ast_xml_node_get_name(tmp));
} else {
- ast_str_append(buffer, 0, "%s", tmpstr->str);
+ ast_str_append(buffer, 0, "%s", ast_str_buffer(tmpstr));
}
ast_free(tmpstr);
ret = 2;
@@ -1245,8 +1244,8 @@ static int xmldoc_parse_variable(struct ast_xml_node *node, const char *tabs, st
/* Cleanup text. */
xmldoc_string_cleanup(tmptext, &cleanstr, 1);
ast_xml_free_text(tmptext);
- if (cleanstr && cleanstr->used > 0) {
- ast_str_append(buffer, 0, ":%s", cleanstr->str);
+ if (cleanstr && ast_str_strlen(cleanstr) > 0) {
+ ast_str_append(buffer, 0, ":%s", ast_str_buffer(cleanstr));
}
ast_free(cleanstr);
}
@@ -1381,7 +1380,7 @@ char *ast_xmldoc_build_seealso(const char *type, const char *name)
ast_xml_free_text(content);
}
- output = ast_strdup(outputstr->str);
+ output = ast_strdup(ast_str_buffer(outputstr));
ast_free(outputstr);
return output;
@@ -1631,13 +1630,13 @@ char *ast_xmldoc_build_arguments(const char *type, const char *name)
xmldoc_parse_parameter(node, "", &ret);
}
- if (ret->used > 0) {
+ if (ast_str_strlen(ret) > 0) {
/* remove last '\n' */
- if (ret->str[ret->used - 1] == '\n') {
- ret->str[ret->used - 1] = '\0';
- ret->used--;
+ char *buf = ast_str_buffer(ret);
+ if (buf[ast_str_strlen(ret) - 1] == '\n') {
+ ast_str_truncate(ret, -1);
}
- retstr = ast_strdup(ret->str);
+ retstr = ast_strdup(ast_str_buffer(ret));
}
ast_free(ret);
@@ -1677,9 +1676,9 @@ static struct ast_str *xmldoc_get_formatted(struct ast_xml_node *node, int raw_o
}
/* remove last '\n' */
/* XXX Don't modify ast_str internals manually */
- if (ret->str[ret->used-1] == '\n') {
- ret->str[ret->used-1] = '\0';
- ret->used--;
+ tmpstr = ast_str_buffer(ret);
+ if (tmpstr[ast_str_strlen(ret) - 1] == '\n') {
+ ast_str_truncate(ret, -1);
}
}
return ret;
@@ -1720,8 +1719,8 @@ static char *xmldoc_build_field(const char *type, const char *name, const char *
}
formatted = xmldoc_get_formatted(node, raw, raw);
- if (formatted->used > 0) {
- ret = ast_strdup(formatted->str);
+ if (ast_str_strlen(formatted) > 0) {
+ ret = ast_strdup(ast_str_buffer(formatted));
}
ast_free(formatted);