]> git.sur5r.net Git - bacula/bacula/blobdiff - bacula/src/lib/berrno.c
Apply fix from Martin Simmons to clear structure before
[bacula/bacula] / bacula / src / lib / berrno.c
index d3a73f331e0dce6057c81405d42f8711e2dd9803..03b4eb381afcd111a63612e427bbe9222153526b 100644 (file)
  *
  */
 /*
-   Copyright (C) 2004 Kern Sibbald and John Walker
+   Copyright (C) 2004-2005 Kern Sibbald
 
    This program is free software; you can redistribute it and/or
-   modify it under the terms of the GNU General Public License as
-   published by the Free Software Foundation; either version 2 of
-   the License, or (at your option) any later version.
+   modify it under the terms of the GNU General Public License
+   version 2 as amended with additional clauses defined in the
+   file LICENSE in the main source directory.
 
    This program 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
-   General Public License for more details.
-
-   You should have received a copy of the GNU General Public
-   License along with this program; if not, write to the Free
-   Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
-   MA 02111-1307, USA.
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 
+   the file LICENSE for additional details.
 
  */
 
@@ -43,20 +38,7 @@ const char *berrno::strerror()
 {
    int stat = 0;
 #ifdef HAVE_WIN32
-   LPVOID msg;
-
-   if (berrno_ && b_errno_win32) {
-      FormatMessage(FORMAT_MESSAGE_ALLOCATE_BUFFER |
-          FORMAT_MESSAGE_FROM_SYSTEM | FORMAT_MESSAGE_IGNORE_INSERTS,
-          NULL,
-          GetLastError(),
-          MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT),
-          (LPTSTR)&msg,
-          0,
-          NULL);
-
-      pm_strcpy(&buf_, (const char *)msg);
-      LocalFree(msg);
+   if (berrno_ & b_errno_win32) {
       return (const char *)buf_;
    }
 #else
@@ -92,6 +74,25 @@ const char *berrno::strerror()
    return buf_;
 }
 
+void berrno::format_win32_message()
+{
+#ifdef HAVE_WIN32
+   LPVOID msg;
+   if (berrno_ & b_errno_win32) {
+      FormatMessage(FORMAT_MESSAGE_ALLOCATE_BUFFER |
+          FORMAT_MESSAGE_FROM_SYSTEM | FORMAT_MESSAGE_IGNORE_INSERTS,
+          NULL,
+          GetLastError(),
+          MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT),
+          (LPTSTR)&msg,
+          0,
+          NULL);
+
+      pm_strcpy(&buf_, (const char *)msg);
+      LocalFree(msg);
+   }
+#endif
+}
 
 #ifdef TEST_PROGRAM