bool MMatchEventFactoryManager::LoadEventListXML( const string& strFileName ) { MXmlDocument xmlIniData; xmlIniData.Create(); if (!xmlIniData.LoadFromFile(strFileName.c_str())) { xmlIniData.Destroy(); return false; } MXmlElement rootElement, chrElement, attrElement; char szTagName[256]; rootElement = xmlIniData.GetDocumentElement(); int iCount = rootElement.GetChildNodeCount(); m_LoadEventSize = 0; for (int i = 0; i < iCount; i++) { chrElement = rootElement.GetChildNode(i); chrElement.GetTagName(szTagName); if (szTagName[0] == '#') continue; if (!stricmp(EL_LOCALE, szTagName)) { ParseLocale( chrElement ); } } xmlIniData.Destroy(); return true; }
/* This function gets called very early, before VM_CALLS are setup. * Do not use any of the VM_CALLS entries!!! */ java_props_t * GetJavaProperties(JNIEnv *env) { static java_props_t sprops; char *v; /* tmp var */ if (sprops.user_dir) { return &sprops; } /* tmp dir */ sprops.tmp_dir = P_tmpdir; #ifdef MACOSX /* darwin has a per-user temp dir */ static char tmp_path[PATH_MAX]; int pathSize = confstr(_CS_DARWIN_USER_TEMP_DIR, tmp_path, PATH_MAX); if (pathSize > 0 && pathSize <= PATH_MAX) { sprops.tmp_dir = tmp_path; } #endif /* MACOSX */ /* Printing properties */ #ifdef MACOSX sprops.printerJob = "sun.lwawt.macosx.CPrinterJob"; #else sprops.printerJob = "sun.print.PSPrinterJob"; #endif /* patches/service packs installed */ sprops.patch_level = "unknown"; /* Java 2D properties */ #ifdef MACOSX PreferredToolkit prefToolkit = getPreferredToolkit(); switch (prefToolkit) { case CToolkit: case HToolkit: sprops.graphics_env = "sun.awt.CGraphicsEnvironment"; break; case XToolkit: #endif sprops.graphics_env = "sun.awt.X11GraphicsEnvironment"; #ifdef MACOSX break; } #endif /* AWT properties */ #ifdef JAVASE_EMBEDDED sprops.awt_toolkit = getEmbeddedToolkit(); if (sprops.awt_toolkit == NULL) // default as below #endif #ifdef MACOSX switch (prefToolkit) { case CToolkit: sprops.awt_toolkit = "sun.lwawt.macosx.LWCToolkit"; break; case XToolkit: #endif sprops.awt_toolkit = "sun.awt.X11.XToolkit"; #ifdef MACOSX break; default: sprops.awt_toolkit = "sun.awt.HToolkit"; break; } #endif /* This is used only for debugging of font problems. */ v = getenv("JAVA2D_FONTPATH"); sprops.font_dir = v ? v : NULL; #ifdef SI_ISALIST /* supported instruction sets */ { char list[258]; sysinfo(SI_ISALIST, list, sizeof(list)); sprops.cpu_isalist = strdup(list); } #else sprops.cpu_isalist = NULL; #endif /* endianness of platform */ { unsigned int endianTest = 0xff000000; if (((char*)(&endianTest))[0] != 0) sprops.cpu_endian = "big"; else sprops.cpu_endian = "little"; } /* os properties */ { #ifdef MACOSX setOSNameAndVersion(&sprops); #else struct utsname name; uname(&name); sprops.os_name = strdup(name.sysname); sprops.os_version = strdup(name.release); #endif sprops.os_arch = ARCHPROPNAME; if (getenv("GNOME_DESKTOP_SESSION_ID") != NULL) { sprops.desktop = "gnome"; } else { sprops.desktop = NULL; } } /* Determine the language, country, variant, and encoding from the host, * and store these in the user.language, user.country, user.variant and * file.encoding system properties. */ setlocale(LC_ALL, ""); if (ParseLocale(LC_CTYPE, &(sprops.format_language), &(sprops.format_script), &(sprops.format_country), &(sprops.format_variant), &(sprops.encoding))) { ParseLocale(LC_MESSAGES, &(sprops.language), &(sprops.script), &(sprops.country), &(sprops.variant), NULL); } else { sprops.language = "en"; sprops.encoding = "ISO8859-1"; } sprops.display_language = sprops.language; sprops.display_script = sprops.script; sprops.display_country = sprops.country; sprops.display_variant = sprops.variant; #ifdef MACOSX sprops.sun_jnu_encoding = "UTF-8"; #else sprops.sun_jnu_encoding = sprops.encoding; #endif #ifdef _ALLBSD_SOURCE #if BYTE_ORDER == _LITTLE_ENDIAN sprops.unicode_encoding = "UnicodeLittle"; #else sprops.unicode_encoding = "UnicodeBig"; #endif #else /* !_ALLBSD_SOURCE */ #ifdef __linux__ #if __BYTE_ORDER == __LITTLE_ENDIAN sprops.unicode_encoding = "UnicodeLittle"; #else sprops.unicode_encoding = "UnicodeBig"; #endif #else sprops.unicode_encoding = "UnicodeBig"; #endif #endif /* _ALLBSD_SOURCE */ /* user properties */ { struct passwd *pwent = getpwuid(getuid()); sprops.user_name = pwent ? strdup(pwent->pw_name) : "?"; #ifdef MACOSX setUserHome(&sprops); #else sprops.user_home = pwent ? strdup(pwent->pw_dir) : NULL; #endif if (sprops.user_home == NULL) { sprops.user_home = "?"; } } /* User TIMEZONE */ { /* * We defer setting up timezone until it's actually necessary. * Refer to TimeZone.getDefault(). However, the system * property is necessary to be able to be set by the command * line interface -D. Here temporarily set a null string to * timezone. */ tzset(); /* for compatibility */ sprops.timezone = ""; } /* Current directory */ { char buf[MAXPATHLEN]; errno = 0; if (getcwd(buf, sizeof(buf)) == NULL) JNU_ThrowByName(env, "java/lang/Error", "Properties init: Could not determine current working directory."); else sprops.user_dir = strdup(buf); } sprops.file_separator = "/"; sprops.path_separator = ":"; sprops.line_separator = "\n"; #if !defined(_ALLBSD_SOURCE) /* Append CDE message and resource search path to NLSPATH and * XFILESEARCHPATH, in order to pick localized message for * FileSelectionDialog window (Bug 4173641). */ setPathEnvironment("NLSPATH=/usr/dt/lib/nls/msg/%L/%N.cat"); setPathEnvironment("XFILESEARCHPATH=/usr/dt/app-defaults/%L/Dt"); #endif #ifdef MACOSX setProxyProperties(&sprops); #endif return &sprops; }
bool MMatchEventFactoryManager::LoadEventListXML( MZFileSystem* pFileSystem, const string& strFileName ) { MXmlDocument xmlIniData; xmlIniData.Create(); // <----------------- char *buffer; MZFile mzf; if(pFileSystem) { if(!mzf.Open(strFileName.c_str(),pFileSystem)) { if(!mzf.Open(strFileName.c_str())) { xmlIniData.Destroy(); return false; } } } else { if(!mzf.Open(strFileName.c_str())) { xmlIniData.Destroy(); return false; } } buffer = new char[mzf.GetLength()+1]; buffer[mzf.GetLength()] = 0; mzf.Read(buffer,mzf.GetLength()); if(!xmlIniData.LoadFromMemory(buffer)) { xmlIniData.Destroy(); return false; } delete[] buffer; mzf.Close(); // <------------------ MXmlElement rootElement, chrElement, attrElement; char szTagName[256]; rootElement = xmlIniData.GetDocumentElement(); int iCount = rootElement.GetChildNodeCount(); for (int i = 0; i < iCount; i++) { chrElement = rootElement.GetChildNode(i); chrElement.GetTagName(szTagName); if (szTagName[0] == '#') continue; if (!stricmp(EL_LOCALE, szTagName)) { ParseLocale( chrElement ); } } xmlIniData.Destroy(); return true; }