static char * get_datadir(void) { #ifdef _WIN32 HINSTANCE hInstance; #endif char * data_dir = NULL; if (custom_data_dir != NULL) { data_dir = safe_strdup(custom_data_dir); return data_dir; } #ifdef ENABLE_BINRELOC data_dir = safe_strdup (BR_DATADIR("/link-grammar")); #elif defined(_WIN32) /* Dynamically locate library and return containing directory */ hInstance = GetModuleHandle(NULL); if(hInstance != NULL) { char dll_path[MAX_PATH]; if(GetModuleFileName(hInstance,dll_path,MAX_PATH)) { data_dir = path_get_dirname(dll_path); } } #endif return data_dir; }
int ssl_load_default_ca_certs(SSL_CTX *ctx) { char buf[1024]; char *bundlename; int n, rc; size_t size, offset; /* Get the executable's filename. */ n = GetModuleFileName(GetModuleHandle(0), buf, sizeof(buf)); if (n == 0 || n == sizeof(buf)) return -1; bundlename = path_get_dirname(buf); bundlename = (char *) safe_realloc(bundlename, 1024); offset = strlen(bundlename); size = offset + 1; strbuf_sprintf(&bundlename, &size, &offset, "\\%s", NCAT_CA_CERTS_FILE); if (o.debug) logdebug("Using trusted CA certificates from %s.\n", bundlename); rc = SSL_CTX_load_verify_locations(ctx, bundlename, NULL); if (rc != 1) { if (o.debug) logdebug("Unable to load trusted CA certificates from %s: %s\n", bundlename, ERR_error_string(ERR_get_error(), NULL)); } free(bundlename); return rc == 1 ? 0 : -1; }
gchar * xmms_build_playlist_url (const gchar *plspath, const gchar *file) { gchar *url; gchar *path; g_return_val_if_fail (plspath, NULL); g_return_val_if_fail (file, NULL); if (strstr (file, "://") != NULL) { return g_strdup (file); } if (file[0] == '/') { path = path_get_body (plspath); url = g_strconcat (path, file, NULL); } else { path = path_get_dirname (plspath); url = g_strconcat (path, "/", file, NULL); } g_free (path); return url; }
char * dictionary_get_data_dir(void) { #ifdef _WIN32 HINSTANCE hInstance; #endif char * data_dir = NULL; if (custom_data_dir != NULL) { data_dir = safe_strdup(custom_data_dir); return data_dir; } #if defined(_WIN32) /* Dynamically locate library and return containing directory. * FIXME: A rewrite is needed. */ hInstance = GetModuleHandle("link-grammar.dll"); if (hInstance != NULL) { char dll_path[MAX_PATH]; if (GetModuleFileName(hInstance, dll_path, MAX_PATH)) { #ifdef _DEBUG prt_error("Info: GetModuleFileName=%s", (dll_path ? dll_path : "NULL")); #endif data_dir = path_get_dirname(dll_path); } } else { /* BHayes added else block for when link-grammar.dll is not found 11apr11 */ /* This requests module handle for the current program */ hInstance = GetModuleHandle(NULL); if (hInstance != NULL) { char prog_path16[MAX_PATH]; printf(" found ModuleHandle for current program so try to get Filename for current program \n"); if (GetModuleFileName(hInstance, prog_path16, MAX_PATH)) { char * data_dir16 = NULL; if (sizeof(TCHAR) == 1) { data_dir16 = path_get_dirname(prog_path16); } else { // convert 2-byte to 1-byte encoding of prog_path char prog_path[MAX_PATH/2]; int i, k; for (i = 0; i < MAX_PATH; i++) { k = i + i; if (prog_path16[k] == 0 ) { prog_path[i] = 0; break; // found the string ending null char } // XXX this cannot possibly be correct for UTF-16 filepaths!! ?? FIXME prog_path[i] = prog_path16[k]; } #ifdef _DEBUG prt_error("Info: GetModuleFileName=%s", (prog_path ? prog_path : "NULL")); #endif data_dir16 = path_get_dirname(prog_path); } if (data_dir16 != NULL) { printf(" found dir for current prog %s\n", data_dir16); } return data_dir16; // return path of data directory here instead of below } else { printf(" FAIL GetModuleFileName for current program \n"); } } } #endif return data_dir; }