Merge branch 'js/no-html-bypass-on-windows'
authorJunio C Hamano <gitster@pobox.com>
Thu, 25 Aug 2016 20:55:06 +0000 (13:55 -0700)
committerJunio C Hamano <gitster@pobox.com>
Thu, 25 Aug 2016 20:55:06 +0000 (13:55 -0700)
On Windows, help.browser configuration variable used to be ignored,
which has been corrected.

* js/no-html-bypass-on-windows:
Revert "display HTML in default browser using Windows' shell API"

1  2 
builtin/help.c
compat/mingw.c
compat/mingw.h
diff --combined builtin/help.c
index 88480131cf9fa85f303ede2662eabe09d848ba4e,0c91ff5bfcefb69f1e5f57b1ec1e210388796097..e8f79d7af54bce18e8d503dea182146da0fbd456
@@@ -127,7 -127,7 +127,7 @@@ static void exec_woman_emacs(const cha
                        path = "emacsclient";
                strbuf_addf(&man_page, "(woman \"%s\")", page);
                execlp(path, "emacsclient", "-e", man_page.buf, (char *)NULL);
 -              warning(_("failed to exec '%s': %s"), path, strerror(errno));
 +              warning_errno(_("failed to exec '%s'"), path);
        }
  }
  
@@@ -148,7 -148,7 +148,7 @@@ static void exec_man_konqueror(const ch
                        path = "kfmclient";
                strbuf_addf(&man_page, "man:%s(1)", page);
                execlp(path, filename, "newTab", man_page.buf, (char *)NULL);
 -              warning(_("failed to exec '%s': %s"), path, strerror(errno));
 +              warning_errno(_("failed to exec '%s'"), path);
        }
  }
  
@@@ -157,7 -157,7 +157,7 @@@ static void exec_man_man(const char *pa
        if (!path)
                path = "man";
        execlp(path, "man", page, (char *)NULL);
 -      warning(_("failed to exec '%s': %s"), path, strerror(errno));
 +      warning_errno(_("failed to exec '%s'"), path);
  }
  
  static void exec_man_cmd(const char *cmd, const char *page)
        struct strbuf shell_cmd = STRBUF_INIT;
        strbuf_addf(&shell_cmd, "%s %s", cmd, page);
        execl(SHELL_PATH, SHELL_PATH, "-c", shell_cmd.buf, (char *)NULL);
 -      warning(_("failed to exec '%s': %s"), cmd, strerror(errno));
 +      warning(_("failed to exec '%s'"), cmd);
  }
  
  static void add_man_viewer(const char *name)
@@@ -379,17 -379,10 +379,10 @@@ static void get_html_page_path(struct s
        free(to_free);
  }
  
- /*
-  * If open_html is not defined in a platform-specific way (see for
-  * example compat/mingw.h), we use the script web--browse to display
-  * HTML.
-  */
- #ifndef open_html
  static void open_html(const char *path)
  {
        execl_git_cmd("web--browse", "-c", "help.browser", path, (char *)NULL);
  }
- #endif
  
  static void show_html_page(const char *git_cmd)
  {
diff --combined compat/mingw.c
index 2b5467deadc1162edb134e4f5d95f2b8b5d82368,88a32423608a1ae7d73194b6725b008a85b7b769..3fbfda5978b7bb715ab132283a69fa49384896e9
@@@ -1930,48 -1930,6 +1930,6 @@@ int mingw_raise(int sig
        }
  }
  
- static const char *make_backslash_path(const char *path)
- {
-       static char buf[PATH_MAX + 1];
-       char *c;
-       if (strlcpy(buf, path, PATH_MAX) >= PATH_MAX)
-               die("Too long path: %.*s", 60, path);
-       for (c = buf; *c; c++) {
-               if (*c == '/')
-                       *c = '\\';
-       }
-       return buf;
- }
- void mingw_open_html(const char *unixpath)
- {
-       const char *htmlpath = make_backslash_path(unixpath);
-       typedef HINSTANCE (WINAPI *T)(HWND, const char *,
-                       const char *, const char *, const char *, INT);
-       T ShellExecute;
-       HMODULE shell32;
-       int r;
-       shell32 = LoadLibrary("shell32.dll");
-       if (!shell32)
-               die("cannot load shell32.dll");
-       ShellExecute = (T)GetProcAddress(shell32, "ShellExecuteA");
-       if (!ShellExecute)
-               die("cannot run browser");
-       printf("Launching default browser to display HTML ...\n");
-       r = HCAST(int, ShellExecute(NULL, "open", htmlpath,
-                               NULL, "\\", SW_SHOWNORMAL));
-       FreeLibrary(shell32);
-       /* see the MSDN documentation referring to the result codes here */
-       if (r <= 32) {
-               die("failed to launch browser for %.*s", MAX_PATH, unixpath);
-       }
- }
  int link(const char *oldpath, const char *newpath)
  {
        typedef BOOL (WINAPI *T)(LPCWSTR, LPCWSTR, LPSECURITY_ATTRIBUTES);
@@@ -2162,7 -2120,7 +2120,7 @@@ int xwcstoutf(char *utf, const wchar_t 
        return -1;
  }
  
 -static void setup_windows_environment()
 +static void setup_windows_environment(void)
  {
        char *tmp = getenv("TMPDIR");
  
@@@ -2204,7 -2162,7 +2162,7 @@@ typedef struct 
  extern int __wgetmainargs(int *argc, wchar_t ***argv, wchar_t ***env, int glob,
                _startupinfo *si);
  
 -static NORETURN void die_startup()
 +static NORETURN void die_startup(void)
  {
        fputs("fatal: not enough memory for initialization", stderr);
        exit(128);
@@@ -2224,7 -2182,7 +2182,7 @@@ static char *wcstoutfdup_startup(char *
        return memcpy(malloc_startup(len), buffer, len);
  }
  
 -void mingw_startup()
 +void mingw_startup(void)
  {
        int i, maxlen, argc;
        char *buffer;
diff --combined compat/mingw.h
index 95e128fcfd45e98c091256265c7d9bda95ec733f,17794e17a490a02f5e633fca52e0013a83bb851a..2cadb816eebf305e84181379f48aec061ea158f7
@@@ -73,9 -73,6 +73,9 @@@ typedef int pid_t
  #ifndef ECONNABORTED
  #define ECONNABORTED WSAECONNABORTED
  #endif
 +#ifndef ENOTSOCK
 +#define ENOTSOCK WSAENOTSOCK
 +#endif
  
  struct passwd {
        char *pw_name;
@@@ -417,9 -414,6 +417,6 @@@ int mingw_offset_1st_component(const ch
  #include <inttypes.h>
  #endif
  
- void mingw_open_html(const char *path);
- #define open_html mingw_open_html
  /**
   * Converts UTF-8 encoded string to UTF-16LE.
   *
@@@ -535,10 -529,10 +532,10 @@@ extern CRITICAL_SECTION pinfo_cs
   * A replacement of main() that adds win32 specific initialization.
   */
  
 -void mingw_startup();
 -#define main(c,v) dummy_decl_mingw_main(); \
 +void mingw_startup(void);
 +#define main(c,v) dummy_decl_mingw_main(void); \
  static int mingw_main(c,v); \
 -int main(int argc, char **argv) \
 +int main(int argc, const char **argv) \
  { \
        mingw_startup(); \
        return mingw_main(__argc, (void *)__argv); \