Index: pinentry/argparse.c =================================================================== --- pinentry/argparse.c +++ pinentry/argparse.c @@ -1168,7 +1168,7 @@ return 0; case ARGPARSE_TYPE_ULONG: - while (isascii (*s) && isspace(*s)) + while (isascii (*s) && isspace((unsigned char)*s)) s++; if (*s == '-') { Index: tty/pinentry-tty.c =================================================================== --- tty/pinentry-tty.c +++ tty/pinentry-tty.c @@ -131,7 +131,7 @@ highlight++; continue; } - if (!isalnum (*highlight)) + if (!isalnum ((unsigned char)*highlight)) /* Unusable accelerator. */ continue; break; @@ -141,7 +141,7 @@ /* Not accelerator. Take the first alpha-numeric character. */ { highlight = text; - while (*highlight && !isalnum (*highlight)) + while (*highlight && !isalnum ((unsigned char)*highlight)) highlight ++; } Index: w32/main.c =================================================================== --- w32/main.c +++ w32/main.c @@ -19,6 +19,7 @@ #include #include #include +#include #if WINVER < 0x0403 # define WINVER 0x0403 /* Required for SendInput. */ #endif @@ -46,10 +47,11 @@ #endif -/* This function pointer gets initialized in main. */ -#ifndef HAVE_W32CE_SYSTEM +/* Currently unused. + This function pointer gets initialized in main. */ +/* #ifndef HAVE_W32CE_SYSTEM static BOOL WINAPI (*lock_set_foreground_window)(UINT); -#endif +#endif */ static int w32_cmd_handler (pinentry_t pe); static void ok_button_clicked (HWND dlg, pinentry_t pe); @@ -278,7 +280,7 @@ } - +/* Somehow this unfocuses the window static void move_mouse_and_click (HWND hwnd) { @@ -328,7 +330,7 @@ if ( (SendInput (idx, inp, sizeof (INPUT)) != idx) && debugfp) fprintf (debugfp, "SendInput failed: %s\n", w32_strerror (-1)); #endif -} +} */ @@ -339,6 +341,8 @@ if (!hwnd) return; + (void)string; + /* FIXME: Need to figure out how to convert dialog coorddnates to screen coordinates and how buttons should be placed. */ /* SetWindowPos (hbutton, NULL, */ @@ -421,7 +425,7 @@ /* Dialog processing loop. */ -static BOOL CALLBACK +static INT_PTR CALLBACK dlg_proc (HWND dlg, UINT msg, WPARAM wparam, LPARAM lparam) { static pinentry_t pe; @@ -489,7 +493,9 @@ /* show_window_hierarchy (GetDesktopWindow (), 0); */ ShowWindow (dlg, SW_SHOW); - move_mouse_and_click ( GetDlgItem (dlg, IDC_PINENT_PROMPT) ); + /* Somehow this unfocuses the window: */ + /* move_mouse_and_click ( GetDlgItem (dlg, IDC_PINENT_PROMPT) ); */ + raise_sip (dlg); break; @@ -676,9 +682,10 @@ int main (int argc, char **argv) { +/* Currently unused. #ifndef HAVE_W32CE_SYSTEM void *handle; -#endif +#endif */ w32_infd = STDIN_FILENO; w32_outfd = STDOUT_FILENO; @@ -695,9 +702,10 @@ /* if (!debugfp) */ /* debugfp = stderr; */ - /* We need to load a function because that one is only available + /* Currently unused. + We need to load a function because that one is only available since W2000 but not in older NTs. */ -#ifndef HAVE_W32CE_SYSTEM +/* #ifndef HAVE_W32CE_SYSTEM handle = LoadLibrary ("user32.dll"); if (handle) { @@ -708,7 +716,7 @@ else CloseHandle (handle); } -#endif +#endif */ if (pinentry_loop2 (w32_infd, w32_outfd)) return 1; Index: w32/pinentry-w32.rc =================================================================== --- w32/pinentry-w32.rc +++ w32/pinentry-w32.rc @@ -51,20 +51,20 @@ IDB_ICON_96 BITMAP DISCARDABLE "logo-96.bmp" IDB_ICON_128 BITMAP DISCARDABLE "logo-128.bmp" -IDD_PINENT DIALOG DISCARDABLE 0, 0, 186, 116 +IDD_PINENT DIALOG DISCARDABLE 0, 0, 230, 125 STYLE DS_MODALFRAME | DS_SYSMODAL | WS_POPUP | WS_CAPTION | WS_SYSMENU CAPTION "Pinentry" FONT 10, "MS Sans Serif" BEGIN CONTROL "", IDC_PINENT_ICON, "Static", SS_BITMAP|SS_CENTERIMAGE, - 4, 6, 32, 32 - LTEXT "", IDC_PINENT_DESC, 40, 6, 140, 50 - RTEXT "", IDC_PINENT_PROMPT, 6, 60, 60, 12 - EDITTEXT IDC_PINENT_TEXT, 70, 59, 110, 12, ES_PASSWORD | ES_AUTOHSCROLL - CTEXT "", IDC_PINENT_ERR, 6, 76, 174, 12 - DEFPUSHBUTTON "O&K", IDOK, 74, 96, 50, 14 - PUSHBUTTON "&Cancel", IDCANCEL, 130, 96, 50, 14 + 5, 5, 32, 32 + LTEXT "", IDC_PINENT_DESC, 45, 5, 180, 65 + RTEXT "", IDC_PINENT_PROMPT, 5, 75, 60, 12 + EDITTEXT IDC_PINENT_TEXT, 70, 75, 155, 12, ES_PASSWORD | ES_AUTOHSCROLL + CTEXT "", IDC_PINENT_ERR, 5, 90, 220, 12 + DEFPUSHBUTTON "O&K", IDOK, 50, 105, 85, 14 + PUSHBUTTON "&Cancel", IDCANCEL, 140, 105, 85, 14 END