| 2567 } |
2567 } |
| 2568 |
2568 |
| 2569 return fp; |
2569 return fp; |
| 2570 } |
2570 } |
| 2571 |
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"; |
| |
2591 } |
| |
2592 |
| 2572 gboolean |
2593 gboolean |
| 2573 purple_program_is_valid(const char *program) |
2594 purple_program_is_valid(const char *program) |
| 2574 { |
2595 { |
| 2575 GError *error = NULL; |
2596 GError *error = NULL; |
| 2576 char **argv; |
2597 char **argv; |