Author: hbelusca Date: Mon Oct 1 23:16:43 2012 New Revision: 57456 URL: http://svn.reactos.org/svn/reactos?rev=57456&view=rev Log: [REGEDIT - Fix comment headers. - Improve error-displaying function and add another one (to be used later on). - Clear a part of code.
Modified: trunk/reactos/base/applications/regedit/error.c trunk/reactos/base/applications/regedit/main.h trunk/reactos/base/applications/regedit/regedit.c trunk/reactos/base/applications/regedit/regproc.c trunk/reactos/base/applications/regedit/settings.c Modified: trunk/reactos/base/applications/regedit/error.c URL: http://svn.reactos.org/svn/reactos/trunk/reactos/base/applications/regedit/error.c?rev=57456&r1=57455&r2=57456&view=diff ============================================================================== --- trunk/reactos/base/applications/regedit/error.c [iso-8859-1] (original) +++ trunk/reactos/base/applications/regedit/error.c [iso-8859-1] Mon Oct 1 23:16:43 2012 @@ -1,14 +1,76 @@ +/* + * Regedit errors, warnings, informations displaying + * + * Copyright (C) 2010 Adam Kachwalla <geekdun...@gmail.com> + * Copyright (C) 2012 Hermès Bélusca - Maïto <hermes.belu...@sfr.fr> + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + #include <regedit.h> -void ErrorMessageBox(HWND hWnd, LPCTSTR title, DWORD code) + +int ErrorMessageBox(HWND hWnd, LPCTSTR lpTitle, DWORD dwErrorCode, ...) { - LPTSTR lpMsgBuf; - DWORD status; - static const TCHAR fallback[] = TEXT("Error displaying error message.\n"); - status = FormatMessage(FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_SYSTEM, - NULL, code, 0, (LPTSTR)&lpMsgBuf, 0, NULL); - if (!status) - lpMsgBuf = (LPTSTR)fallback; - MessageBox(hWnd, lpMsgBuf, title, MB_OK | MB_ICONERROR); - if (lpMsgBuf != fallback) - LocalFree(lpMsgBuf); + int iRet = 0; + LPTSTR lpMsgBuf = NULL; + DWORD Status = 0; + + va_list args = NULL; + va_start(args, dwErrorCode); + + Status = FormatMessage(FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_SYSTEM, + NULL, + dwErrorCode, + MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), + (LPTSTR)&lpMsgBuf, + 0, + &args); + + va_end(args); + + iRet = MessageBox(hWnd, (Status && lpMsgBuf ? lpMsgBuf : TEXT("Error displaying error message.\n")), lpTitle, MB_OK | MB_ICONERROR); + + if (lpMsgBuf) LocalFree(lpMsgBuf); + + /* Return the MessageBox information */ + return iRet; } + +int InfoMessageBox(HWND hWnd, UINT uType, LPCTSTR lpTitle, LPCTSTR lpMessage, ...) +{ + int iRet = 0; + LPTSTR lpMsgBuf = NULL; + DWORD Status = 0; + + va_list args = NULL; + va_start(args, lpMessage); + + Status = FormatMessage(FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_STRING, + lpMessage, + 0, + 0, + (LPTSTR)&lpMsgBuf, + 0, + &args); + + va_end(args); + + iRet = MessageBox(hWnd, (Status && lpMsgBuf ? lpMsgBuf : TEXT("Error displaying error message.\n")), lpTitle, uType); + + if (lpMsgBuf) LocalFree(lpMsgBuf); + + /* Return the MessageBox information */ + return iRet; +} Modified: trunk/reactos/base/applications/regedit/main.h URL: http://svn.reactos.org/svn/reactos/trunk/reactos/base/applications/regedit/main.h?rev=57456&r1=57455&r2=57456&view=diff ============================================================================== --- trunk/reactos/base/applications/regedit/main.h [iso-8859-1] (original) +++ trunk/reactos/base/applications/regedit/main.h [iso-8859-1] Mon Oct 1 23:16:43 2012 @@ -94,7 +94,8 @@ extern LPCTSTR get_root_key_name(HKEY hRootKey); /* error.c */ -extern void ErrorMessageBox(HWND hWnd, LPCTSTR title, DWORD code); +extern int ErrorMessageBox(HWND hWnd, LPCTSTR lpTitle, DWORD dwErrorCode, ...); +extern int InfoMessageBox(HWND hWnd, UINT uType, LPCTSTR lpTitle, LPCTSTR lpMessage, ...); /* find.c */ extern void FindDialog(HWND hWnd); Modified: trunk/reactos/base/applications/regedit/regedit.c URL: http://svn.reactos.org/svn/reactos/trunk/reactos/base/applications/regedit/regedit.c?rev=57456&r1=57455&r2=57456&view=diff ============================================================================== --- trunk/reactos/base/applications/regedit/regedit.c [iso-8859-1] (original) +++ trunk/reactos/base/applications/regedit/regedit.c [iso-8859-1] Mon Oct 1 23:16:43 2012 @@ -1,7 +1,7 @@ /* * Windows regedit.exe registry editor implementation. * - * Copyright 2002 Andriy Palamarchuk + * Copyright (C) 2002 Andriy Palamarchuk * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public @@ -258,11 +258,12 @@ { if (chu == L'S') { + /* Silence dialogs */ silent = TRUE; } else if (chu == L'V') { - /* ignore these switches */ + /* Ignore this switch */ } else { @@ -323,14 +324,21 @@ if (*s && action == ACTION_UNDEF) { - TCHAR szTitle[256], szText[256]; - LoadString(hInst, IDS_APP_TITLE, szTitle, COUNT_OF(szTitle)); - LoadString(hInst, IDS_IMPORT_PROMPT, szText, COUNT_OF(szText)); - /* request import confirmation */ - if (silent || MessageBox(NULL, szText, szTitle, MB_YESNO) == IDYES) + if (!silent) + { + TCHAR szTitle[256], szText[256]; + LoadString(hInst, IDS_APP_TITLE, szTitle, COUNT_OF(szTitle)); + LoadString(hInst, IDS_IMPORT_PROMPT, szText, COUNT_OF(szText)); + /* request import confirmation */ + if (MessageBox(NULL, szText, szTitle, MB_YESNO) == IDYES) + action = ACTION_ADD; + else + return TRUE; + } + else + { action = ACTION_ADD; - else - return TRUE; + } } if (action == ACTION_UNDEF) return FALSE; Modified: trunk/reactos/base/applications/regedit/regproc.c URL: http://svn.reactos.org/svn/reactos/trunk/reactos/base/applications/regedit/regproc.c?rev=57456&r1=57455&r2=57456&view=diff ============================================================================== --- trunk/reactos/base/applications/regedit/regproc.c [iso-8859-1] (original) +++ trunk/reactos/base/applications/regedit/regproc.c [iso-8859-1] Mon Oct 1 23:16:43 2012 @@ -2,9 +2,9 @@ * Registry processing routines. Routines, common for registry * processing frontends. * - * Copyright 1999 Sylvain St-Germain - * Copyright 2002 Andriy Palamarchuk - * Copyright 2008 Alexander N. S?rnes <a...@thehandofagony.com> + * Copyright (C) 1999 Sylvain St-Germain + * Copyright (C) 2002 Andriy Palamarchuk + * Copyright (C) 2008 Alexander N. Sørnes <a...@thehandofagony.com> * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public Modified: trunk/reactos/base/applications/regedit/settings.c URL: http://svn.reactos.org/svn/reactos/trunk/reactos/base/applications/regedit/settings.c?rev=57456&r1=57455&r2=57456&view=diff ============================================================================== --- trunk/reactos/base/applications/regedit/settings.c [iso-8859-1] (original) +++ trunk/reactos/base/applications/regedit/settings.c [iso-8859-1] Mon Oct 1 23:16:43 2012 @@ -1,23 +1,23 @@ /* -* regedit (settings.c) -* -* Copyright 2012 Edijs Kolesnikovics <termined...@yahoo.com> -* Copyright 2012 Grégori Macário Harbs <mysoft64bits at gmail dot com> -* -* This library is free software; you can redistribute it and/or -* modify it under the terms of the GNU Lesser General Public -* License as published by the Free Software Foundation; either -* version 2.1 of the License, or (at your option) any later version. -* -* This library is distributed in the hope that it will be useful, -* but WITHOUT ANY WARRANTY; without even the implied warranty of -* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -* Lesser General Public License for more details. -* -* You should have received a copy of the GNU Lesser General Public -* License along with this library; if not, write to the Free Software -* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA -*/ + * Regedit settings + * + * Copyright (C) 2012 Edijs Kolesnikovics <termined...@yahoo.com> + * Copyright (C) 2012 Grégori Macário Harbs <mysoft64bits at gmail dot com> + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ #include <regedit.h>