mirror of
https://gitlab.gnome.org/GNOME/libxml2.git
synced 2024-12-24 21:33:51 +03:00
parser: implement xmlCtxtGetOptions
In 712a31ab
, the `options` struct member was deprecated. To allow
callers to check the status of options bits, introduce
xmlCtxtGetOptions.
This commit is contained in:
parent
a4517bfeaf
commit
bbbbbb4649
@ -665,6 +665,7 @@
|
||||
<exports symbol='xmlCreateDocParserCtxt' type='function'/>
|
||||
<exports symbol='xmlCreateIOParserCtxt' type='function'/>
|
||||
<exports symbol='xmlCreatePushParserCtxt' type='function'/>
|
||||
<exports symbol='xmlCtxtGetOptions' type='function'/>
|
||||
<exports symbol='xmlCtxtParseDocument' type='function'/>
|
||||
<exports symbol='xmlCtxtReadDoc' type='function'/>
|
||||
<exports symbol='xmlCtxtReadFd' type='function'/>
|
||||
@ -8586,6 +8587,11 @@ crash if you try to modify the tree)'/>
|
||||
<return type='const xmlError *' info='NULL if no error occurred or a pointer to the error'/>
|
||||
<arg name='ctx' type='void *' info='an XML parser context'/>
|
||||
</function>
|
||||
<function name='xmlCtxtGetOptions' file='parser' module='parser'>
|
||||
<info>Get the current options of the parser context. Available since 2.14.0.</info>
|
||||
<return type='int' info='the current options set in the parser context.'/>
|
||||
<arg name='ctxt' type='xmlParserCtxtPtr' info='an XML parser context'/>
|
||||
</function>
|
||||
<function name='xmlCtxtParseDocument' file='parser' module='parser'>
|
||||
<info>Parse an XML document and return the resulting document tree. Takes ownership of the input object. Available since 2.13.0.</info>
|
||||
<return type='xmlDocPtr' info='the resulting document tree or NULL'/>
|
||||
|
@ -1402,6 +1402,8 @@ XMLPUBFUN int
|
||||
XMLPUBFUN int
|
||||
xmlCtxtSetOptions (xmlParserCtxtPtr ctxt,
|
||||
int options);
|
||||
XMLPUBFUN int
|
||||
xmlCtxtGetOptions (xmlParserCtxtPtr ctxt);
|
||||
XMLPUBFUN int
|
||||
xmlCtxtUseOptions (xmlParserCtxtPtr ctxt,
|
||||
int options);
|
||||
|
19
parser.c
19
parser.c
@ -13594,6 +13594,25 @@ xmlCtxtSetOptions(xmlParserCtxtPtr ctxt, int options)
|
||||
return(xmlCtxtSetOptionsInternal(ctxt, options, 0));
|
||||
}
|
||||
|
||||
/**
|
||||
* xmlCtxtGetOptions:
|
||||
* @ctxt: an XML parser context
|
||||
*
|
||||
* Get the current options of the parser context.
|
||||
*
|
||||
* Available since 2.14.0.
|
||||
*
|
||||
* Returns the current options set in the parser context, or -1 if ctxt is NULL.
|
||||
*/
|
||||
int
|
||||
xmlCtxtGetOptions(xmlParserCtxtPtr ctxt)
|
||||
{
|
||||
if (ctxt == NULL)
|
||||
return(-1);
|
||||
|
||||
return(ctxt->options);
|
||||
}
|
||||
|
||||
/**
|
||||
* xmlCtxtUseOptions:
|
||||
* @ctxt: an XML parser context
|
||||
|
35
testapi.c
35
testapi.c
@ -11820,6 +11820,38 @@ test_xmlCreatePushParserCtxt(void) {
|
||||
}
|
||||
|
||||
|
||||
static int
|
||||
test_xmlCtxtGetOptions(void) {
|
||||
int test_ret = 0;
|
||||
|
||||
int mem_base;
|
||||
int ret_val;
|
||||
xmlParserCtxtPtr ctxt; /* an XML parser context */
|
||||
int n_ctxt;
|
||||
|
||||
for (n_ctxt = 0;n_ctxt < gen_nb_xmlParserCtxtPtr;n_ctxt++) {
|
||||
mem_base = xmlMemBlocks();
|
||||
ctxt = gen_xmlParserCtxtPtr(n_ctxt, 0);
|
||||
|
||||
ret_val = xmlCtxtGetOptions(ctxt);
|
||||
desret_int(ret_val);
|
||||
call_tests++;
|
||||
des_xmlParserCtxtPtr(n_ctxt, ctxt, 0);
|
||||
xmlResetLastError();
|
||||
if (mem_base != xmlMemBlocks()) {
|
||||
printf("Leak of %d blocks found in xmlCtxtGetOptions",
|
||||
xmlMemBlocks() - mem_base);
|
||||
test_ret++;
|
||||
printf(" %d", n_ctxt);
|
||||
printf("\n");
|
||||
}
|
||||
}
|
||||
function_tests++;
|
||||
|
||||
return(test_ret);
|
||||
}
|
||||
|
||||
|
||||
static int
|
||||
test_xmlCtxtParseDocument(void) {
|
||||
int test_ret = 0;
|
||||
@ -14721,13 +14753,14 @@ static int
|
||||
test_parser(void) {
|
||||
int test_ret = 0;
|
||||
|
||||
if (quiet == 0) printf("Testing parser : 71 of 83 functions ...\n");
|
||||
if (quiet == 0) printf("Testing parser : 72 of 84 functions ...\n");
|
||||
test_ret += test_xmlByteConsumed();
|
||||
test_ret += test_xmlCleanupGlobals();
|
||||
test_ret += test_xmlClearNodeInfoSeq();
|
||||
test_ret += test_xmlClearParserCtxt();
|
||||
test_ret += test_xmlCreateDocParserCtxt();
|
||||
test_ret += test_xmlCreatePushParserCtxt();
|
||||
test_ret += test_xmlCtxtGetOptions();
|
||||
test_ret += test_xmlCtxtParseDocument();
|
||||
test_ret += test_xmlCtxtReadDoc();
|
||||
test_ret += test_xmlCtxtReadFile();
|
||||
|
Loading…
Reference in New Issue
Block a user