Mercurial > pidgin
diff src/util.c @ 6861:4ae5d9c3d9ec
[gaim-migrate @ 7407]
You know the thing that checked if the manual browser command was valid?
I moved the funcion that does the actual checking into util.c It's pretty
generic, I guess.
I moved the check (the call to that function) to browser.c, so it checks
for a valid browser when you click on a link. The old way used to really
annoy me, because you would get multiple error boxes about the browser
being invalid.
Herman, I tried to keep things compiling on Windows. I didn't want to
#ifdef the program_is_valid() function in util.c--I don't see any
reason why it wouldn't compile in Windows. But if there's a problem
with it feel free to #ifdef that puppy.
Also, Nathan, I'm going to quiz you later on my townhousemates, so
please bring a number two pencil and make sure you eat a healthy breakfast.
committer: Tailor Script <tailor@pidgin.im>
author | Mark Doliner <mark@kingant.net> |
---|---|
date | Tue, 16 Sep 2003 04:57:36 +0000 |
parents | 060aa79a733e |
children | dd0eecfbe413 |
line wrap: on
line diff
--- a/src/util.c Tue Sep 16 04:49:51 2003 +0000 +++ b/src/util.c Tue Sep 16 04:57:36 2003 +0000 @@ -853,6 +853,38 @@ return fp; } +gboolean program_is_valid(const char *program) +{ + GError *error = NULL; + char **argv; + gchar *progname; + gboolean is_valid = FALSE; + + if (program == NULL || *program == '\0') { + return FALSE; + } + + if (!g_shell_parse_argv(program, NULL, &argv, &error)) { + gaim_debug(GAIM_DEBUG_ERROR, "program_is_valid", + "Could not parse program '%s': %s\n", + program, error->message); + g_error_free(error); + return FALSE; + } + + if (argv == NULL) { + return FALSE; + } + + progname = g_find_program_in_path(argv[0]); + is_valid = (progname != NULL); + + g_strfreev(argv); + g_free(progname); + + return is_valid; +} + char *gaim_try_conv_to_utf8(const char *str) { gsize converted;