소스 검색

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 7 년 전
부모
커밋
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);
}

불러오는 중...
취소
저장