Mercurial > emacs
changeset 19396:d0ffa428c6e3
(env_vars): Set SHELL to cmdproxy.
(main): Initialize idDde to 0.
Determine emacs_path from module file name.
Prompt for install.
author | Geoff Voelker <voelker@cs.washington.edu> |
---|---|
date | Sun, 17 Aug 1997 01:44:27 +0000 |
parents | cf115b0c7458 |
children | c0ff94156cb9 |
files | nt/addpm.c |
diffstat | 1 files changed, 46 insertions(+), 4 deletions(-) [+] |
line wrap: on
line diff
--- a/nt/addpm.c Sun Aug 17 01:04:47 1997 +0000 +++ b/nt/addpm.c Sun Aug 17 01:44:27 1997 +0000 @@ -55,7 +55,7 @@ { {"emacs_dir", NULL}, {"EMACSLOADPATH", "%emacs_dir%/lisp;%emacs_dir%/site-lisp"}, - {"SHELL", "%COMSPEC%"}, + {"SHELL", "%emacs_dir/bin/cmdproxy.exe%"}, {"EMACSDATA", "%emacs_dir%/etc"}, {"EMACSPATH", "%emacs_dir%/bin"}, {"EMACSLOCKDIR", "%emacs_dir%/lock"}, @@ -106,19 +106,61 @@ int argc; char *argv[]; { - DWORD idDde; + DWORD idDde = 0; HCONV HConversation; HSZ ProgMan; + char modname[MAX_PATH]; char additem[MAX_PATH*2 + 100]; char *lpext; + char *emacs_path; + char *p; + /* If no args specified, use our location to set emacs_path. */ +#if 0 if (argc < 2 || argc > 3) { fprintf (stderr, "usage: addpm emacs_path [icon_path]\n"); exit (1); } +#endif - lpext = add_registry (argv[1]) ? "exe" : "bat"; + if (argc > 1) + emacs_path = argv[1]; + else + { + if (!GetModuleFileName (NULL, modname, MAX_PATH) || + (p = strrchr (modname, '\\')) == NULL) + { + fprintf (stderr, "fatal error"); + exit (1); + } + *p = 0; + + /* Set emacs_path to emacs_dir if we are in "%emacs_dir%\bin". */ + if ((p = strrchr (modname, '\\')) && stricmp (p, "\\bin") == 0) + { + *p = 0; + emacs_path = modname; + } + else + { + fprintf (stderr, "usage: addpm emacs_path [icon_path]\n"); + exit (1); + } + + /* Tell user what we are going to do. */ + { + char msg[ MAX_PATH ]; + sprintf (msg, "Install Emacs at %s?\n", emacs_path); + if (!MessageBox (NULL, msg, "Install Emacs", MB_OKCANCEL | MB_ICONQUESTION)) + { + fprintf (stderr, "Install cancelled\n"); + exit (1); + } + } + } + + lpext = add_registry (emacs_path) ? "exe" : "bat"; DdeInitialize (&idDde, (PFNCALLBACK)DdeCallback, APPCMD_CLIENTONLY, 0); @@ -129,7 +171,7 @@ DdeCommand ("[CreateGroup (Gnu Emacs)]"); DdeCommand ("[ReplaceItem (Emacs)]"); sprintf (additem, "[AddItem (%s\\bin\\runemacs.%s, Emacs%c%s)]", - argv[1], lpext, (argc>2 ? ',' : ' '), + emacs_path, lpext, (argc>2 ? ',' : ' '), (argc>2 ? argv[2] : "")); DdeCommand (additem);