Переглянути джерело

core: OpenURL() fix xdg-open call

Calling just `xdg-open` is not right. One needs to pack the URL in `'`.
If we don't do this then some special characters (like ampersand) will
be executed.

Maybe this is true for Windows and Apple case too, but I don't own any
such system. So please merge this, and if it's true for more cases let's
use `sprintf()` in the other cases too.
pull/685/head
Michael Vetter 6 роки тому
джерело
коміт
80dbe636cd
1 змінених файлів з 5 додано та 2 видалено
  1. +5
    -2
      src/core.c

+ 5
- 2
src/core.c Переглянути файл

@ -1823,14 +1823,17 @@ int StorageLoadValue(int position)
void OpenURL(const char *url)
{
char *cmd = calloc(10 + strlen(url), sizeof(char));
#if defined(_WIN32)
strcpy(cmd, "explorer ");
strcat(cmd, url);
#elif defined(__linux__)
strcpy(cmd, "xdg-open "); // Alternatives: firefox, x-www-browser
sprintf(cmd, "xdg-open '%s'", url); // Alternatives: firefox, x-www-browser
#elif defined(__APPLE__)
strcpy(cmd, "open ");
#endif
strcat(cmd, url);
#endif
system(cmd);
free(cmd);
}

Завантаження…
Відмінити
Зберегти