-f.r.
2003-10-31 Frank Richter <[EMAIL PROTECTED]>
* localdir.cc (OnNext): When SelectDirectoryA() fails, display a message with the error returned from the system instead of just 'could not change dir'. Also, offer the user to 'Retry', 'Ignore' the error or 'Abort' the directory change.
Index: localdir.cc =================================================================== RCS file: /cvs/cygwin-apps/setup/localdir.cc,v retrieving revision 2.18 diff -r2.18 localdir.cc 39a40 > #include "cistring.h" 187c188,190 < if (SetCurrentDirectoryA (local_dir.cstr_oneuse())) --- > > bool trySetCurDir = true; > while (trySetCurDir) 189c192,193 < if (source == IDC_SOURCE_CWD) --- > trySetCurDir = false; > if (SetCurrentDirectoryA (local_dir.cstr_oneuse())) 191c195 < if (do_fromcwd (GetInstance (), GetHWND ())) --- > if (source == IDC_SOURCE_CWD) 193,194c197,202 < Progress.SetActivateTask (WM_APP_START_SETUP_INI_DOWNLOAD); < return IDD_INSTATUS; --- > if (do_fromcwd (GetInstance (), GetHWND ())) > { > Progress.SetActivateTask (WM_APP_START_SETUP_INI_DOWNLOAD); > return IDD_INSTATUS; > } > return IDD_CHOOSE; 196c204,229 < return IDD_CHOOSE; --- > } > else > { > DWORD err = GetLastError (); > char msgText[1000]; > LoadString (hinstance, IDS_ERR_CHDIR, msgText, sizeof (msgText)); > char* buf; > char msg[1000]; > if (FormatMessage (FORMAT_MESSAGE_FROM_SYSTEM | > FORMAT_MESSAGE_ALLOCATE_BUFFER, 0, err, LANG_NEUTRAL, > (LPSTR)&buf, 0, 0) != 0) > { > snprintf (msg, sizeof (msg), msgText, local_dir.cstr_oneuse(), > buf, err); > } > else > snprintf (msg, sizeof (msg), msgText, local_dir.cstr_oneuse(), > "(unknown error)", err); > log (LOG_PLAIN, msg); > int ret = MessageBox (h, msg, 0, MB_ICONEXCLAMATION | > MB_ABORTRETRYIGNORE); > > if ((ret == IDABORT) || (ret == IDCANCEL)) > return -1; > else > trySetCurDir = (ret == IDRETRY); 199,200d231 < else < note (h, IDS_ERR_CHDIR, local_dir.cstr_oneuse()); Index: res.rc =================================================================== RCS file: /cvs/cygwin-apps/setup/res.rc,v retrieving revision 2.53 diff -r2.53 res.rc 487c487 < IDS_ERR_CHDIR "Could not change dir to %s" --- > IDS_ERR_CHDIR "Could not change dir to %s: %s [%.8x]"