]> git.sur5r.net Git - bacula/bacula/blobdiff - bacula/src/lib/berrno.c
o fix : restore a crypted stream on a fd witch doen't define keys cause
[bacula/bacula] / bacula / src / lib / berrno.c
index d3a73f331e0dce6057c81405d42f8711e2dd9803..76641fd49b7ba645f3e30cde43e974e0353edc90 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.
 
  */
 
@@ -41,25 +36,13 @@ extern int execvp_errors[];
 
 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
+   int stat = 0;
+
    if (berrno_ & b_errno_exit) {
       stat = (berrno_ & ~b_errno_exit);       /* remove bit */
       if (stat == 0) {
@@ -92,6 +75,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