int * __oldXMLWDcompatibility(void) { if (IS_MAIN_THREAD) return (&oldXMLWDcompatibility); else return (&xmlGetGlobalState()->oldXMLWDcompatibility); }
xmlFreeFunc * __xmlFree(void){ if (IS_MAIN_THREAD) return (&xmlFree); else return (&xmlGetGlobalState()->xmlFree); }
xmlStrdupFunc * __xmlMemStrdup(void){ if (IS_MAIN_THREAD) return (&xmlMemStrdup); else return (&xmlGetGlobalState()->xmlMemStrdup); }
int * __xmlLineNumbersDefaultValue(void) { if (IS_MAIN_THREAD) return (&xmlLineNumbersDefaultValue); else return (&xmlGetGlobalState()->xmlLineNumbersDefaultValue); }
xmlSAXHandler * __docbDefaultSAXHandler(void) { if (IS_MAIN_THREAD) return (&docbDefaultSAXHandler); else return (&xmlGetGlobalState()->docbDefaultSAXHandler); }
xmlSAXHandlerV1 * __xmlDefaultSAXHandler(void) { if (IS_MAIN_THREAD) return (&xmlDefaultSAXHandler); else return (&xmlGetGlobalState()->xmlDefaultSAXHandler); }
int * __xmlDoValidityCheckingDefaultValue(void) { if (IS_MAIN_THREAD) return (&xmlDoValidityCheckingDefaultValue); else return (&xmlGetGlobalState()->xmlDoValidityCheckingDefaultValue); }
int * __xmlPedanticParserDefaultValue(void) { if (IS_MAIN_THREAD) return (&xmlPedanticParserDefaultValue); else return (&xmlGetGlobalState()->xmlPedanticParserDefaultValue); }
int * __xmlSaveNoEmptyTags(void) { if (IS_MAIN_THREAD) return (&xmlSaveNoEmptyTags); else return (&xmlGetGlobalState()->xmlSaveNoEmptyTags); }
int * __xmlLoadExtDtdDefaultValue(void) { if (IS_MAIN_THREAD) return (&xmlLoadExtDtdDefaultValue); else return (&xmlGetGlobalState()->xmlLoadExtDtdDefaultValue); }
int * __xmlParserDebugEntities(void) { if (IS_MAIN_THREAD) return (&xmlParserDebugEntities); else return (&xmlGetGlobalState()->xmlParserDebugEntities); }
int * __xmlKeepBlanksDefaultValue(void) { if (IS_MAIN_THREAD) return (&xmlKeepBlanksDefaultValue); else return (&xmlGetGlobalState()->xmlKeepBlanksDefaultValue); }
xmlStructuredErrorFunc * __xmlStructuredError(void) { if (IS_MAIN_THREAD) return (&xmlStructuredError); else return (&xmlGetGlobalState()->xmlStructuredError); }
xmlError * __xmlLastError(void) { if (IS_MAIN_THREAD) return (&xmlLastError); else return (&xmlGetGlobalState()->xmlLastError); }
xmlBufferAllocationScheme * __xmlBufferAllocScheme(void) { if (IS_MAIN_THREAD) return (&xmlBufferAllocScheme); else return (&xmlGetGlobalState()->xmlBufferAllocScheme); }
int * __xmlSubstituteEntitiesDefaultValue(void) { if (IS_MAIN_THREAD) return (&xmlSubstituteEntitiesDefaultValue); else return (&xmlGetGlobalState()->xmlSubstituteEntitiesDefaultValue); }
int * __xmlDefaultBufferSize(void) { if (IS_MAIN_THREAD) return (&xmlDefaultBufferSize); else return (&xmlGetGlobalState()->xmlDefaultBufferSize); }
xmlDeregisterNodeFunc * __xmlDeregisterNodeDefaultValue(void) { if (IS_MAIN_THREAD) return (&xmlDeregisterNodeDefaultValue); else return (&xmlGetGlobalState()->xmlDeregisterNodeDefaultValue); }
xmlSAXLocator * __xmlDefaultSAXLocator(void) { if (IS_MAIN_THREAD) return (&xmlDefaultSAXLocator); else return (&xmlGetGlobalState()->xmlDefaultSAXLocator); }
xmlOutputBufferCreateFilenameFunc * __xmlOutputBufferCreateFilenameValue(void) { if (IS_MAIN_THREAD) return (&xmlOutputBufferCreateFilenameValue); else return (&xmlGetGlobalState()->xmlOutputBufferCreateFilenameValue); }
int * __xmlIndentTreeOutput(void) { if (IS_MAIN_THREAD) return (&xmlIndentTreeOutput); else return (&xmlGetGlobalState()->xmlIndentTreeOutput); }
xmlReallocFunc * __xmlRealloc(void){ if (IS_MAIN_THREAD) return (&xmlRealloc); else return (&xmlGetGlobalState()->xmlRealloc); }
/* Problem: * - xmlSetGlobalState may need to either ``copy'' memory * from one place to another or ``change a pointer''. * * - changing a pointer requires: * an ** where to save the old pointer * a new * to set instead of the old one * - copying memory requires * a memory area where to save the old state * a new memory area to copy over the current state * * In either cases, the SetGlobalState must be transparent * to the user * */ int xmlSetGlobalState(xmlGlobalStatePtr new_state, xmlGlobalStatePtr * old_state) { xmlGlobalStatePtr global; int retval=1; /* Get a pointer to the current * memory area */ global=xmlGetGlobalState(); /* If the user wants to * save the current state somewhere */ if(old_state) { *old_state=(xmlGlobalStatePtr)xmlMalloc(sizeof(xmlGlobalState)); if(*old_state) memcpy(*old_state, global, sizeof(xmlGlobalState)); else retval=0; } /* If the user provides a new_state state * and the copy was succesfull */ if(new_state && (!old_state || *old_state)) { memcpy(global, new_state, sizeof(xmlGlobalState)); xmlFree(new_state); } /* Return status */ return retval; }
static void dump_dependencies(void) { #ifdef __GNUC__ g_print ("Compiler: GCC " __VERSION__ "\n"); #elif defined _MSC_VER g_print ("Compiler: MSC %d\n", _MSC_VER); #else g_print ("Compiler: unknown\n"); #endif /* some flags/defines which may be interesting */ g_print (" with : " #ifdef G_THREADS_ENABLED "threads " #endif #ifdef HAVE_CAIRO "cairo " #endif #ifdef HAVE_GNOME "gnome " #endif #ifdef HAVE_LIBART "libart " #endif #ifdef HAVE_PANGOCAIRO "pangocairo " #endif "\n"); /* print out all those dependies, both compile and runtime if possible * Note: this is not meant to be complete but does only include libaries * which may or have cause(d) us trouble in some versions */ g_print ("Library versions (at compile time)\n"); #ifdef HAVE_LIBPNG g_print ("libpng : %s (%s)\n", png_get_header_ver(NULL), PNG_LIBPNG_VER_STRING); #endif #ifdef HAVE_FREETYPE { FT_Library ft_library; FT_Int ft_major_version; FT_Int ft_minor_version; FT_Int ft_micro_version; if (FT_Init_FreeType (&ft_library) == 0) { FT_Library_Version (ft_library, &ft_major_version, &ft_minor_version, &ft_micro_version); g_print ("freetype: %d.%d.%d\n", ft_major_version, ft_minor_version, ft_micro_version); FT_Done_FreeType (ft_library); } else g_print ("freetype: ?.?.?\n"); } #endif { const gchar* libxml_rt_version = "?"; #if 0 /* this is stupid, does not compile on Linux: * app_procs.c:504: error: expected identifier before '(' token * * In fact libxml2 has different ABI for LIBXML_THREAD_ENABLED, this code only compiles without * threads enabled, but apparently it does only work when theay are. */ xmlInitParser(); if (xmlGetGlobalState()) libxml_rt_version = xmlGetGlobalState()->xmlParserVersion; #endif libxml_rt_version = xmlParserVersion; if (atoi(libxml_rt_version)) g_print ("libxml : %d.%d.%d (%s)\n", atoi(libxml_rt_version) / 10000, atoi(libxml_rt_version) / 100 % 100, atoi(libxml_rt_version) % 100, LIBXML_DOTTED_VERSION); else /* may include "extra" */ g_print ("libxml : %s (%s)\n", libxml_rt_version ? libxml_rt_version : "??", LIBXML_DOTTED_VERSION); } g_print ("glib : %d.%d.%d (%d.%d.%d)\n", glib_major_version, glib_minor_version, glib_micro_version, GLIB_MAJOR_VERSION, GLIB_MINOR_VERSION, GLIB_MICRO_VERSION); #ifdef PANGO_VERSION_ENCODE g_print ("pango : %s (%d.%d.%d)\n", pango_version_string(), PANGO_VERSION_MAJOR, PANGO_VERSION_MINOR, PANGO_VERSION_MICRO); #else g_print ("pango : version not available (>= 1.14.x)\n"); /* Pango did not provide such */ #endif #if HAVE_CAIRO # ifdef CAIRO_VERSION_STRING g_print ("cairo : %s (%s)\n", cairo_version_string(), CAIRO_VERSION_STRING); # else g_print ("cairo : %s (%d.%d.%d)\n", cairo_version_string(), CAIRO_VERSION_MAJOR, CAIRO_VERSION_MINOR, CAIRO_VERSION_MICRO); # endif #endif #if 0 { gchar linkedname[1024]; gint len = 0; /* relying on PREFIX is wrong */ if ((len = readlink (PREFIX "/lib/libpango-1.0.so", linkedname, 1023)) > 0) { /* man 2 readlink : does not append a NUL character */ linkedname[len] = '\0'; g_print ("%s/%s\n", PREFIX, linkedname); } } #endif g_print ("gtk+ : %d.%d.%d (%d.%d.%d)\n", gtk_major_version, gtk_minor_version, gtk_micro_version, GTK_MAJOR_VERSION, GTK_MINOR_VERSION, GTK_MICRO_VERSION); #if 0 /* we could read $PREFIX/share/gnome-about/gnome-version.xml * but is it worth the effort ? */ g_print ("gnome : %d.%d.%d (%d.%d.%d)\n" gnome_major_version, gnome_minor_version, gnome_micro_version, GNOME_MAJOR_VERSION, GNOME_MINOR_VERSION, GNOME_MICRO_VERSION); #endif }