/**************************************** * Computer Algebra System SINGULAR * ****************************************/ /* * ABSTRACT: encapsulation of call to Win32 ShellExecute call for opening a URL */ /* you can try this out by compiling with -DTEST and runing: a.exe file|url [not-local]*/ #ifdef WINNT #include #ifndef MAXPATHLEN #define MAXPATHLEN 1024 #endif void heOpenWinntUrl(const char* url, int local) { #ifdef TEST printf("url:%s:local:%d\n", url, local); #endif if (local) { char path[MAXPATHLEN]; char *p; cygwin_conv_to_full_win32_path(url, path); /* seems like I can not open url's wit # at the end */ if ((p=strchr(path, '#')) != NULL) *p = '\0'; #ifdef TEST printf("path:%s:local:%d\n", path, local); #endif ShellExecute(NULL, "open", path, 0, 0, SW_SHOWNORMAL); } else { // need to check whether this works ShellExecute(NULL, "open", url, 0, 0, SW_SHOWNORMAL); } } #ifdef TEST int main(int argc, char* argv[]) { heOpenWinntUrl(argv[1], argc > 2 ? 0 : 1); } #endif #endif