Index: src/hugs.c =================================================================== RCS file: /cvs/hugs98/src/hugs.c,v retrieving revision 1.144 diff -u -r1.144 hugs.c --- src/hugs.c 6 Sep 2005 19:48:29 -0000 1.144 +++ src/hugs.c 16 Sep 2005 16:30:11 -0000 @@ -89,6 +89,9 @@ */ hugsEdit = strCopy(fromEnv("EDITOR",NULL)); if (hugsEdit == NULL) { +#if HUGS_FOR_WINDOWS + hugsEdit = WinHugsPickDefaultEditor(); +#else UINT rc; int notePadLen = strlen(DEFAULT_EDITOR); char* notePadLoc; @@ -112,6 +115,7 @@ strcat(notePadLoc, DEFAULT_EDITOR); hugsEdit = strCopy(notePadLoc); } +#endif } #elif __MWERKS__ && macintosh hugsEdit = NULL; Index: src/winhugs/Editors.c =================================================================== RCS file: /cvs/hugs98/src/winhugs/Editors.c,v retrieving revision 1.1 diff -u -r1.1 Editors.c --- src/winhugs/Editors.c 6 Sep 2005 10:49:26 -0000 1.1 +++ src/winhugs/Editors.c 16 Sep 2005 16:29:38 -0000 @@ -96,3 +96,20 @@ Buffer[0] = 0; return Editors[Index].Name; } + +char* WinHugsPickDefaultEditor() +{ + TCHAR Buffer[MAX_PATH]; + int i; + for (i = 1; ; i++) + { + LPCTSTR x = GetEditor(i, Buffer); + if (x == NULL) break; + if (Buffer[0] != 0) return strdup(Buffer); + } + GetEditor(0, Buffer); + if (Buffer[0] == 0) + return NULL; + else + return strdup(Buffer); +} Index: src/winhugs/Winhugs.h =================================================================== RCS file: /cvs/hugs98/src/winhugs/Winhugs.h,v retrieving revision 1.14 diff -u -r1.14 Winhugs.h --- src/winhugs/Winhugs.h 8 Sep 2005 16:02:03 -0000 1.14 +++ src/winhugs/Winhugs.h 16 Sep 2005 16:24:48 -0000 @@ -10,6 +10,8 @@ extern void ErrorBox(const char* Msg); extern void InfoBox(const char* Msg); +extern char* WinHugsPickDefaultEditor(); + extern void WinHugsExit(void); extern int InAutoReloadFiles;