fixed xmlXPathReturnString to cater for NULL pointer (bug 129561) added

* include/libxml/xpathInternals.h: fixed xmlXPathReturnString
  to cater for NULL pointer (bug 129561)
* globals.c: added comment to suppress documentation warning
* doc/apibuild.py: fixed problem which caused last APIchunkxx.html
  to be lost.  Rebuilt doc/* (including adding APIchunk26.html)
diff --git a/doc/libxml2-api.xml b/doc/libxml2-api.xml
index bfeea83..21d297d 100644
--- a/doc/libxml2-api.xml
+++ b/doc/libxml2-api.xml
@@ -3453,7 +3453,7 @@
       <arg name='elt' info='HTML element'/>
     </macro>
     <macro name='xmlChildrenNode' file='tree'>
-      <info>Macro for compatibility naming layer with libxml1.</info>
+      <info>Macro for compatibility naming layer with libxml1. Maps to &quot;children.&quot;</info>
     </macro>
     <macro name='xmlIsBaseCharQ' file='chvalid'>
       <info>Automatically generated by genChRanges.py</info>
@@ -3512,7 +3512,7 @@
       <arg name='c' info='char to validate'/>
     </macro>
     <macro name='xmlRootNode' file='tree'>
-      <info>Macro for compatibility naming layer with libxml1.</info>
+      <info>Macro for compatibility naming layer with libxml1. Maps to &quot;children&quot;.</info>
     </macro>
     <macro name='xmlTextWriterEndDTDAttlist' file='xmlwriter'>
       <info>This macro maps to xmlTextWriterEndDTD</info>
@@ -6770,7 +6770,7 @@
       <arg name='size' type='size_t' info='initial size of buffer'/>
     </function>
     <function name='xmlBufferCreateStatic' file='tree'>
-      <info>routine to create an XML buffer from an immutable memory area, The are won&apos;t be modified nor copied, and is expected to be present until the end of the buffer lifetime.</info>
+      <info>routine to create an XML buffer from an immutable memory area. The area won&apos;t be modified nor copied, and is expected to be present until the end of the buffer lifetime.</info>
       <return type='xmlBufferPtr' info='the new structure.'/>
       <arg name='mem' type='void *' info='the memory area'/>
       <arg name='size' type='size_t' info='the size in byte'/>
@@ -7104,7 +7104,7 @@
       <return type='void'/>
     </function>
     <function name='xmlCleanupGlobals' file='globals'>
-      <info></info>
+      <info>Additional cleanup for multi-threading</info>
       <return type='void'/>
     </function>
     <function name='xmlCleanupInputCallbacks' file='xmlIO'>
@@ -8349,7 +8349,7 @@
       <return type='void'/>
     </function>
     <function name='xmlInitGlobals' file='globals'>
-      <info></info>
+      <info>Additional initialisation for multi-threading</info>
       <return type='void'/>
     </function>
     <function name='xmlInitMemory' file='xmlmemory'>
@@ -8729,9 +8729,9 @@
       <arg name='fp' type='FILE *' info='a FILE descriptor used as the output file, if NULL, the result is written to the file .memorylist'/>
     </function>
     <function name='xmlMemFree' file='xmlmemory'>
-      <info>a free() equivalent, with error checking.</info>
+      <info></info>
       <return type='void'/>
-      <arg name='ptr' type='void *' info='the memory block pointer'/>
+      <arg name='ptr' type='void *' info=''/>
     </function>
     <function name='xmlMemGet' file='xmlmemory'>
       <info>Provides the memory access functions set currently in use</info>
@@ -8742,15 +8742,15 @@
       <arg name='strdupFunc' type='xmlStrdupFunc *' info='place to save the strdup() function in use'/>
     </function>
     <function name='xmlMemMalloc' file='xmlmemory'>
-      <info>a malloc() equivalent, with logging of the allocation info.</info>
-      <return type='void *' info='a pointer to the allocated area or NULL in case of lack of memory.'/>
-      <arg name='size' type='size_t' info='an int specifying the size in byte to allocate.'/>
+      <info></info>
+      <return type='void *' info=''/>
+      <arg name='size' type='size_t' info=''/>
     </function>
     <function name='xmlMemRealloc' file='xmlmemory'>
-      <info>a realloc() equivalent, with logging of the allocation info.</info>
-      <return type='void *' info='a pointer to the allocated area or NULL in case of lack of memory.'/>
-      <arg name='ptr' type='void *' info='the initial memory block pointer'/>
-      <arg name='size' type='size_t' info='an int specifying the size in byte to allocate.'/>
+      <info></info>
+      <return type='void *' info=''/>
+      <arg name='ptr' type='void *' info=''/>
+      <arg name='size' type='size_t' info=''/>
     </function>
     <function name='xmlMemSetup' file='xmlmemory'>
       <info>Override the default memory access functions with a new set This has to be called before any other libxml routines !  Should this be blocked if there was already some allocations done ?</info>
@@ -8782,9 +8782,9 @@
       <return type='void'/>
     </function>
     <function name='xmlMemoryStrdup' file='xmlmemory'>
-      <info>a strdup() equivalent, with logging of the allocation info.</info>
-      <return type='char *' info='a pointer to the new string or NULL if allocation error occurred.'/>
-      <arg name='str' type='const char *' info='the initial string pointer'/>
+      <info></info>
+      <return type='char *' info=''/>
+      <arg name='str' type='const char *' info=''/>
     </function>
     <function name='xmlMutexLock' file='threads'>
       <info>xmlMutexLock() is used to lock a libxml2 token.</info>