1
0
mirror of https://git.tartarus.org/simon/putty.git synced 2025-05-31 00:40:28 -05:00

Minor reorganisations to WinHelp support. (Done as part of a - failed -

attempt to fix `winhelp-crash', but we may as well keep them.)

[originally from svn r5314]
This commit is contained in:
Jacob Nevins 2005-02-16 01:47:10 +00:00
parent 2487b41777
commit db19a6aff1
4 changed files with 29 additions and 22 deletions

View File

@ -340,13 +340,13 @@ int WINAPI WinMain(HINSTANCE inst, HINSTANCE prev, LPSTR cmdline, int show)
if (p && p >= r) r = p+1; if (p && p >= r) r = p+1;
q = strrchr(b, ':'); q = strrchr(b, ':');
if (q && q >= r) r = q+1; if (q && q >= r) r = q+1;
strcpy(r, "putty.hlp"); strcpy(r, PUTTY_HELP_FILE);
if ( (fp = fopen(b, "r")) != NULL) { if ( (fp = fopen(b, "r")) != NULL) {
help_path = dupstr(b); help_path = dupstr(b);
fclose(fp); fclose(fp);
} else } else
help_path = NULL; help_path = NULL;
strcpy(r, "putty.cnt"); strcpy(r, PUTTY_HELP_CONTENTS);
if ( (fp = fopen(b, "r")) != NULL) { if ( (fp = fopen(b, "r")) != NULL) {
help_has_contents = TRUE; help_has_contents = TRUE;
fclose(fp); fclose(fp);

View File

@ -1340,50 +1340,52 @@ static int CALLBACK MainDlgProc(HWND hwnd, UINT msg,
case WM_HELP: case WM_HELP:
if (help_path) { if (help_path) {
int id = ((LPHELPINFO)lParam)->iCtrlId; int id = ((LPHELPINFO)lParam)->iCtrlId;
char *cmd = NULL; char *topic = NULL;
switch (id) { switch (id) {
case IDC_GENERATING: case IDC_GENERATING:
case IDC_PROGRESS: case IDC_PROGRESS:
case IDC_GENSTATIC: case IDC_GENSTATIC:
case IDC_GENERATE: case IDC_GENERATE:
cmd = "JI(`',`puttygen.generate')"; break; topic = "puttygen.generate"; break;
case IDC_PKSTATIC: case IDC_PKSTATIC:
case IDC_KEYDISPLAY: case IDC_KEYDISPLAY:
cmd = "JI(`',`puttygen.pastekey')"; break; topic = "puttygen.pastekey"; break;
case IDC_FPSTATIC: case IDC_FPSTATIC:
case IDC_FINGERPRINT: case IDC_FINGERPRINT:
cmd = "JI(`',`puttygen.fingerprint')"; break; topic = "puttygen.fingerprint"; break;
case IDC_COMMENTSTATIC: case IDC_COMMENTSTATIC:
case IDC_COMMENTEDIT: case IDC_COMMENTEDIT:
cmd = "JI(`',`puttygen.comment')"; break; topic = "puttygen.comment"; break;
case IDC_PASSPHRASE1STATIC: case IDC_PASSPHRASE1STATIC:
case IDC_PASSPHRASE1EDIT: case IDC_PASSPHRASE1EDIT:
case IDC_PASSPHRASE2STATIC: case IDC_PASSPHRASE2STATIC:
case IDC_PASSPHRASE2EDIT: case IDC_PASSPHRASE2EDIT:
cmd = "JI(`',`puttygen.passphrase')"; break; topic = "puttygen.passphrase"; break;
case IDC_LOADSTATIC: case IDC_LOADSTATIC:
case IDC_LOAD: case IDC_LOAD:
cmd = "JI(`',`puttygen.load')"; break; topic = "puttygen.load"; break;
case IDC_SAVESTATIC: case IDC_SAVESTATIC:
case IDC_SAVE: case IDC_SAVE:
cmd = "JI(`',`puttygen.savepriv')"; break; topic = "puttygen.savepriv"; break;
case IDC_SAVEPUB: case IDC_SAVEPUB:
cmd = "JI(`',`puttygen.savepub')"; break; topic = "puttygen.savepub"; break;
case IDC_TYPESTATIC: case IDC_TYPESTATIC:
case IDC_KEYSSH1: case IDC_KEYSSH1:
case IDC_KEYSSH2RSA: case IDC_KEYSSH2RSA:
case IDC_KEYSSH2DSA: case IDC_KEYSSH2DSA:
cmd = "JI(`',`puttygen.keytype')"; break; topic = "puttygen.keytype"; break;
case IDC_BITSSTATIC: case IDC_BITSSTATIC:
case IDC_BITS: case IDC_BITS:
cmd = "JI(`',`puttygen.bits')"; break; topic = "puttygen.bits"; break;
case IDC_IMPORT: case IDC_IMPORT:
case IDC_EXPORT_OPENSSH: case IDC_EXPORT_OPENSSH:
case IDC_EXPORT_SSHCOM: case IDC_EXPORT_SSHCOM:
cmd = "JI(`',`puttygen.conversions')"; break; topic = "puttygen.conversions"; break;
} }
if (cmd) { if (topic) {
char *cmd = dupprintf("JI(`',`%s')", topic);
WinHelp(hwnd, help_path, HELP_COMMAND, (DWORD)cmd); WinHelp(hwnd, help_path, HELP_COMMAND, (DWORD)cmd);
sfree(cmd);
requested_help = TRUE; requested_help = TRUE;
} else { } else {
MessageBeep(0); MessageBeep(0);
@ -1435,7 +1437,7 @@ int WINAPI WinMain(HINSTANCE inst, HINSTANCE prev, LPSTR cmdline, int show)
if (p && p >= r) r = p+1; if (p && p >= r) r = p+1;
q = strrchr(b, ':'); q = strrchr(b, ':');
if (q && q >= r) r = q+1; if (q && q >= r) r = q+1;
strcpy(r, "putty.hlp"); strcpy(r, PUTTY_HELP_FILE);
if ( (fp = fopen(b, "r")) != NULL) { if ( (fp = fopen(b, "r")) != NULL) {
help_path = dupstr(b); help_path = dupstr(b);
fclose(fp); fclose(fp);

View File

@ -1608,14 +1608,16 @@ static int CALLBACK KeyListProc(HWND hwnd, UINT msg,
case WM_HELP: case WM_HELP:
if (help_path) { if (help_path) {
int id = ((LPHELPINFO)lParam)->iCtrlId; int id = ((LPHELPINFO)lParam)->iCtrlId;
char *cmd = NULL; char *topic = NULL;
switch (id) { switch (id) {
case 100: cmd = "JI(`',`pageant.keylist')"; break; case 100: topic = "pageant.keylist"; break;
case 101: cmd = "JI(`',`pageant.addkey')"; break; case 101: topic = "pageant.addkey"; break;
case 102: cmd = "JI(`',`pageant.remkey')"; break; case 102: topic = "pageant.remkey"; break;
} }
if (cmd) { if (topic) {
char *cmd = dupprintf("JI(`',`%s')", topic);
WinHelp(main_hwnd, help_path, HELP_COMMAND, (DWORD)cmd); WinHelp(main_hwnd, help_path, HELP_COMMAND, (DWORD)cmd);
sfree(cmd);
requested_help = TRUE; requested_help = TRUE;
} else { } else {
MessageBeep(0); MessageBeep(0);
@ -2036,7 +2038,7 @@ int WINAPI WinMain(HINSTANCE inst, HINSTANCE prev, LPSTR cmdline, int show)
if (p && p >= r) r = p+1; if (p && p >= r) r = p+1;
q = strrchr(b, ':'); q = strrchr(b, ':');
if (q && q >= r) r = q+1; if (q && q >= r) r = q+1;
strcpy(r, "putty.hlp"); strcpy(r, PUTTY_HELP_FILE);
if ( (fp = fopen(b, "r")) != NULL) { if ( (fp = fopen(b, "r")) != NULL) {
help_path = dupstr(b); help_path = dupstr(b);
fclose(fp); fclose(fp);

View File

@ -57,6 +57,9 @@ typedef struct terminal_tag Terminal;
#define PUTTY_REG_GPARENT "Software" #define PUTTY_REG_GPARENT "Software"
#define PUTTY_REG_GPARENT_CHILD "SimonTatham" #define PUTTY_REG_GPARENT_CHILD "SimonTatham"
#define PUTTY_HELP_FILE "putty.hlp"
#define PUTTY_HELP_CONTENTS "putty.cnt"
#define GETTICKCOUNT GetTickCount #define GETTICKCOUNT GetTickCount
#define CURSORBLINK GetCaretBlinkTime() #define CURSORBLINK GetCaretBlinkTime()
#define TICKSPERSEC 1000 /* GetTickCount returns milliseconds */ #define TICKSPERSEC 1000 /* GetTickCount returns milliseconds */