| 63 unsigned long len; |
63 unsigned long len; |
| 64 unsigned long data_len; |
64 unsigned long data_len; |
| 65 }; |
65 }; |
| 66 |
66 |
| 67 static char custom_home_dir[MAXPATHLEN]; |
67 static char custom_home_dir[MAXPATHLEN]; |
| 68 static char home_dir[MAXPATHLEN]; |
68 static char home_dir[MAXPATHLEN] = ""; |
| 69 |
69 |
| 70 PurpleMenuAction * |
70 PurpleMenuAction * |
| 71 purple_menu_action_new(const char *label, PurpleCallback callback, gpointer data, |
71 purple_menu_action_new(const char *label, PurpleCallback callback, gpointer data, |
| 72 GList *children) |
72 GList *children) |
| 73 { |
73 { |
| 2243 #else |
2243 #else |
| 2244 return wpurple_data_dir(); |
2244 return wpurple_data_dir(); |
| 2245 #endif |
2245 #endif |
| 2246 } |
2246 } |
| 2247 |
2247 |
| 2248 /* Returns the argument passed to -c IFF it was present, or ~/.gaim IFF it |
2248 /* Returns the argument passed to -c IFF it was present, or ~/.purple. */ |
| 2249 * exists, else ~/.purple. */ |
|
| 2250 const char * |
2249 const char * |
| 2251 purple_user_dir(void) |
2250 purple_user_dir(void) |
| 2252 { |
2251 { |
| 2253 if (custom_home_dir != NULL && strlen(custom_home_dir) > 0) { |
2252 if (custom_home_dir != NULL && *custom_home_dir) { |
| 2254 strcpy ((char*) &home_dir, (char*) &custom_home_dir); |
2253 strcpy ((char*) &home_dir, (char*) &custom_home_dir); |
| 2255 } else { |
2254 } else if (!*home_dir) { |
| 2256 const gchar *hd = purple_home_dir(); |
2255 const gchar *hd = purple_home_dir(); |
| 2257 |
2256 |
| 2258 if (hd) { |
2257 if (hd) { |
| 2259 g_strlcpy((char*) &home_dir, hd, sizeof(home_dir)); |
|
| 2260 g_strlcat((char*) &home_dir, G_DIR_SEPARATOR_S ".gaim", |
|
| 2261 sizeof(home_dir)); |
|
| 2262 |
|
| 2263 if (g_file_test(home_dir, G_FILE_TEST_EXISTS)) |
|
| 2264 return home_dir; |
|
| 2265 |
|
| 2266 g_strlcpy((char*) &home_dir, hd, sizeof(home_dir)); |
2258 g_strlcpy((char*) &home_dir, hd, sizeof(home_dir)); |
| 2267 g_strlcat((char*) &home_dir, G_DIR_SEPARATOR_S ".purple", |
2259 g_strlcat((char*) &home_dir, G_DIR_SEPARATOR_S ".purple", |
| 2268 sizeof(home_dir)); |
2260 sizeof(home_dir)); |
| 2269 } |
2261 } |
| 2270 } |
2262 } |
| 2573 purple_debug(PURPLE_DEBUG_ERROR, "purple_mkstemp", |
2565 purple_debug(PURPLE_DEBUG_ERROR, "purple_mkstemp", |
| 2574 "g_get_tmp_dir() failed!\n"); |
2566 "g_get_tmp_dir() failed!\n"); |
| 2575 } |
2567 } |
| 2576 |
2568 |
| 2577 return fp; |
2569 return fp; |
| |
2570 } |
| |
2571 |
| |
2572 const char * |
| |
2573 purple_util_get_image_extension(gpointer data, size_t len) |
| |
2574 { |
| |
2575 g_return_val_if_fail(data != NULL, NULL); |
| |
2576 g_return_val_if_fail(len > 0, NULL); |
| |
2577 |
| |
2578 if (len >= 4) |
| |
2579 { |
| |
2580 if (!strncmp((char *)data, "BM", 2)) |
| |
2581 return "bmp"; |
| |
2582 else if (!strncmp((char *)data, "GIF8", 4)) |
| |
2583 return "gif"; |
| |
2584 else if (!strncmp((char *)data, "\xff\xd8\xff\xe0", 4)) |
| |
2585 return "jpg"; |
| |
2586 else if (!strncmp((char *)data, "\x89PNG", 4)) |
| |
2587 return "png"; |
| |
2588 } |
| |
2589 |
| |
2590 return "icon"; |
| 2578 } |
2591 } |
| 2579 |
2592 |
| 2580 gboolean |
2593 gboolean |
| 2581 purple_program_is_valid(const char *program) |
2594 purple_program_is_valid(const char *program) |
| 2582 { |
2595 { |