]> git.sur5r.net Git - bacula/bacula/commitdiff
Change daemons and utilities so that if -c is omitted from the command line AND there...
authorRobert Nelson <robertn@the-nelsons.org>
Tue, 24 Oct 2006 23:28:49 +0000 (23:28 +0000)
committerRobert Nelson <robertn@the-nelsons.org>
Tue, 24 Oct 2006 23:28:49 +0000 (23:28 +0000)
Fixed restore on Windows so that backslashes as path separators works.

Add missing query.sql file to Windows installer.

git-svn-id: https://bacula.svn.sourceforge.net/svnroot/bacula/trunk@3572 91ce42f0-d328-0410-95d8-f526ca767f89

18 files changed:
bacula/src/console/console.c
bacula/src/dird/dird.c
bacula/src/dird/ua_restore.c
bacula/src/filed/filed.c
bacula/src/findlib/create_file.c
bacula/src/findlib/makepath.c
bacula/src/lib/bsys.c
bacula/src/lib/parse_conf.c
bacula/src/lib/protos.h
bacula/src/win32/cats/make_catalog_backup.cmd
bacula/src/win32/compat/compat.cpp
bacula/src/win32/dird/dird.vcproj
bacula/src/win32/dll/bacula.def
bacula/src/win32/installer/Makefile
bacula/src/win32/installer/bacula-dir.conf.in
bacula/src/win32/installer/installer.vcproj
bacula/src/win32/libbac/msvc/bacula.def
bacula/src/win32/stored/storelib/storelib.vcproj

index 8bae25bde3f8556c5645a5fab3f755d0d2bdc2fc..331f50ccc871253daddc08b2bb636dc7033db972 100644 (file)
@@ -90,7 +90,7 @@ static int timecmd(FILE *input, BSOCK *UA_sock);
 static int sleepcmd(FILE *input, BSOCK *UA_sock);
 
 
-#define CONFIG_FILE "./bconsole.conf"   /* default configuration file */
+#define CONFIG_FILE "bconsole.conf"   /* default configuration file */
 
 static void usage()
 {
index df1efeb84806ee3a6eac385c74a781ed401e370f..b8d6491c2d4a5ad9665c6614b7d989bafc46359c 100644 (file)
@@ -70,7 +70,7 @@ extern "C" { // work around visual compiler mangling variables
 extern URES res_all;
 #endif
 
-#define CONFIG_FILE "./bacula-dir.conf" /* default configuration file */
+#define CONFIG_FILE "bacula-dir.conf" /* default configuration file */
 
 static void usage()
 {
index 1ae783b8ee9e3830a12706266799d2d7c0974246..090c78bbaef78cb1d84a958afb6c07fb56aad1f6 100644 (file)
@@ -68,6 +68,8 @@ int restore_cmd(UAContext *ua, const char *cmd)
    JOB *job;
    int i;
    JCR *jcr = ua->jcr;
+   char *escaped_bsr_name = NULL;
+   char *escaped_where_name = NULL;
 
    memset(&rx, 0, sizeof(rx));
    rx.path = get_pool_memory(PM_FNAME);
@@ -166,24 +168,40 @@ int restore_cmd(UAContext *ua, const char *cmd)
       goto bail_out;
    }
 
+   escaped_bsr_name = escape_filename(jcr->RestoreBootstrap);
+   escaped_where_name = escape_filename(rx.where);
+
    /* Build run command */
    if (rx.where) {
       if (!acl_access_ok(ua, Where_ACL, rx.where)) {
          bsendmsg(ua, _("Forbidden \"where\" specified.\n"));
          goto bail_out;
       }
+
       Mmsg(ua->cmd,
           "run job=\"%s\" client=\"%s\" storage=\"%s\" bootstrap=\"%s\""
           " where=\"%s\" files=%d catalog=\"%s\"",
           job->name(), rx.ClientName, rx.store?rx.store->name():"",
-          jcr->RestoreBootstrap, rx.where, rx.selected_files, ua->catalog->name());
+          escaped_bsr_name ? escaped_bsr_name : jcr->RestoreBootstrap,
+          escaped_where_name ? escaped_where_name : rx.where,
+          rx.selected_files, ua->catalog->name());
    } else {
       Mmsg(ua->cmd,
           "run job=\"%s\" client=\"%s\" storage=\"%s\" bootstrap=\"%s\""
           " files=%d catalog=\"%s\"",
           job->name(), rx.ClientName, rx.store?rx.store->name():"",
-          jcr->RestoreBootstrap, rx.selected_files, ua->catalog->name());
+          escaped_bsr_name ? escaped_bsr_name : jcr->RestoreBootstrap,
+          rx.selected_files, ua->catalog->name());
+   }
+
+   if (escaped_bsr_name != NULL) {
+      bfree(escaped_bsr_name);
+   }
+
+   if (escaped_where_name != NULL) {
+      bfree(escaped_where_name);
    }
+
    if (find_arg(ua, NT_("yes")) > 0) {
       pm_strcat(ua->cmd, " yes");    /* pass it on to the run command */
    }
@@ -194,6 +212,14 @@ int restore_cmd(UAContext *ua, const char *cmd)
    return 1;
 
 bail_out:
+   if (escaped_bsr_name != NULL) {
+      bfree(escaped_bsr_name);
+   }
+
+   if (escaped_where_name != NULL) {
+      bfree(escaped_where_name);
+   }
+
    free_rx(&rx);
    return 0;
 
index 2a2ccb9d9751206cfcfbe9ea983250ee4191d81d..fe898e04466c32377506c373902b0a96c9099680 100644 (file)
@@ -36,7 +36,7 @@ CLIENT *me;                           /* my resource */
 bool no_signals = false;
 
 
-#define CONFIG_FILE "./bacula-fd.conf" /* default config file */
+#define CONFIG_FILE "bacula-fd.conf" /* default config file */
 
 char *configfile = NULL;
 static bool foreground = false;
index c494ba8f1ea5da0d97983fe46424e0767fc6bde6..3f845c1508e491b3a7956659d527f0663399b989 100644 (file)
@@ -348,15 +348,18 @@ static int separate_path_and_file(JCR *jcr, char *fname, char *ofile)
 
    /* Separate pathname and filename */
    for (q=p=f=ofile; *p; p++) {
-      if (*p == '/') {
-         f = q;                    /* possible filename */
-      }
 #ifdef HAVE_WIN32
-      if (*p == '\\') {            /* strip backslashes on Win32 */
-         continue;
+      if (*p == '\\' || *p == '/') {
+         f = q;
+         if (p[1] == '\\' || p[1] == '/') {
+            p++;
+         }
       }
       *q++ = *p;                   /* copy data */
 #else
+      if (*p == '/') {
+         f = q;                    /* possible filename */
+      }
       q++;
 #endif
    }
index 2ca799fadffc8ad3d26271e0115a3f66d75e97fd..dbb873b2baaeb0837483fc4cc38e0cc8bfc9a326 100644 (file)
@@ -255,9 +255,13 @@ make_path(
       }
 
       /* Skip over leading slashes.  */
+#if defined(HAVE_WIN32)
+      while (*slash == '/' || *slash == '\\')
+         slash++;
+#else
       while (*slash == '/')
          slash++;
-
+#endif
       while (1) {
           int newly_created_dir;
           int fail;
@@ -265,10 +269,17 @@ make_path(
           /* slash points to the leftmost unprocessed component of dirpath.  */
           basename_dir = slash;
 
+#if defined(HAVE_WIN32)
+          slash = strpbrk(slash, ":/\\");
+          if (slash == NULL) {
+             break;
+          }
+#else
           slash = strchr (slash, '/');
           if (slash == NULL) {
              break;
           }
+#endif
 
           /* If we're *not* doing chdir before each mkdir, then we have to refer
              to the target using the full (multi-component) directory name.  */
@@ -327,8 +338,13 @@ make_path(
 
           /* Avoid unnecessary calls to `stat' when given
              pathnames containing multiple adjacent slashes.  */
-          while (*slash == '/')
-             slash++;
+#if defined(HAVE_WIN32)
+         while (*slash == '/' || *slash == '\\')
+            slash++;
+#else
+         while (*slash == '/')
+            slash++;
+#endif
       } /* end while (1) */
 
       if (!cwd.do_chdir) {
index a4dc7231aabdb5f9e060da4c8806bbaa395a8405..2869a3fa299e22d46c8f1067351b475c07e75fb2 100644 (file)
@@ -744,3 +744,27 @@ void make_unique_filename(POOLMEM **name, int Id, char *what)
 {
    Mmsg(name, "%s/%s.%s.%d.tmp", working_directory, my_name, what, Id);
 }
+
+char *escape_filename(const char *file_path)
+{
+   if (file_path == NULL || strpbrk(file_path, "\"\\") == NULL) {
+      return NULL;
+   }
+
+   char *escaped_path = (char *)bmalloc(2 * (strlen(file_path) + 1));
+   char *cur_char = escaped_path;
+
+   while (*file_path) {
+      if (*file_path == '\\' || *file_path == '"') {
+         *cur_char++ = '\\';
+      }
+
+      *cur_char++ = *file_path++;
+   }
+
+   *cur_char = '\0';
+
+   return escaped_path;
+}
+
+
index d5a0ceafdaf23a1176312376a7600da13ca2f07f..fb18ada83cf6efb0b66cd25ad1c01ec874bfcaf3 100755 (executable)
 
 #include "bacula.h"
 
+#if defined(HAVE_WIN32)
+#include "shlobj.h"
+#else
+#define MAX_PATH  1024
+#endif
+
 /* Each daemon has a slightly different set of
  * resources, so it will define the following
  * global values.
@@ -60,7 +66,7 @@ extern RES_TABLE resources[];
 extern RES **res_head;
 
 #if defined(_MSC_VER)
-// work around visual studio name manling preventing external linkage since res_all
+// work around visual studio name mangling preventing external linkage since res_all
 // is declared as a different type when instantiated.
 extern "C" CURES res_all;
 #else
@@ -73,7 +79,8 @@ extern brwlock_t res_lock;            /* resource lock */
 
 /* Forward referenced subroutines */
 static void scan_types(LEX *lc, MSGS *msg, int dest, char *where, char *cmd);
-
+static const char *get_default_configdir();
+static bool find_config_file(const char *config_file, char *full_path);
 
 /* Common Resource definitions */
 
@@ -193,7 +200,7 @@ void init_resource(int type, RES_ITEM *items, int pass)
          if (items[i].handler == store_bit) {
             *(int *)(items[i].value) |= items[i].code;
          } else if (items[i].handler == store_bool) {
-            *(bool *)(items[i].value) = items[i].default_value;
+            *(bool *)(items[i].value) = items[i].default_value != 0;
          } else if (items[i].handler == store_pint ||
                     items[i].handler == store_int) {
             *(int *)(items[i].value) = items[i].default_value;
@@ -768,6 +775,12 @@ parse_config(const char *cf, LEX_ERROR_HANDLER *scan_error, int err_type)
    RES_ITEM *items = NULL;
    int level = 0;
 
+   char *full_path = (char *)alloca(MAX_PATH);
+
+   if (find_config_file(cf, full_path)) {
+      cf = full_path;
+   }
+
    /* Make two passes. The first builds the name symbol table,
     * and the second picks up the items.
     */
@@ -895,6 +908,68 @@ parse_config(const char *cf, LEX_ERROR_HANDLER *scan_error, int err_type)
    return 1;
 }
 
+const char *get_default_configdir()
+{
+#if defined(HAVE_WIN32)
+#define DEFAULT_CONFIGDIR "C:\\Documents and Settings\\All Users\\Application Data\\Bacula"
+
+   HRESULT hr;
+   static char szConfigDir[MAX_PATH + 1] = { 0 };
+
+   if (szConfigDir[0] == '\0') {
+      hr = SHGetFolderPath(NULL, CSIDL_COMMON_APPDATA, NULL, 0, szConfigDir);
+
+      if (SUCCEEDED(hr)) {
+         bstrncat(szConfigDir, "\\Bacula", sizeof(szConfigDir));
+      } else {
+         bstrncpy(szConfigDir, DEFAULT_CONFIGDIR, sizeof(szConfigDir));
+      }
+   }
+   return szConfigDir;
+#else
+   return "/etc/bacula";
+#endif
+}
+
+bool
+find_config_file(const char *config_file, char *full_path)
+{
+#if defined(HAVE_WIN32)
+   if (strpbrk(config_file, ":/\\") != NULL) {
+      return false;
+   }
+#else
+   if (strchr(config_file, '/') != NULL) {
+      return false;
+   }
+#endif
+
+   struct stat st;
+
+   if (stat(config_file, &st) == 0) {
+      return false;
+   }
+
+   const char *config_dir = get_default_configdir();
+   size_t dir_length = strlen(config_dir);
+   size_t file_length = strlen(config_file);
+
+   if ((dir_length + 1 + file_length + 1) > MAX_PATH) {
+      return false;
+   }
+
+   memcpy(full_path, config_dir, dir_length + 1);
+
+   if (full_path[dir_length - 1] != '/' && 
+       full_path[dir_length - 1] != '\\') {
+      full_path[dir_length++] = '/';
+   }
+
+   memcpy(&full_path[dir_length], config_file, file_length + 1);
+
+   return true;
+}
+
 /*********************************************************************
  *
  *      Free configuration resources
index d0ddd5326e87ed1c8692b5371cd15b88b0a52d79..7d93cfd6389e392acebb722514d519a0b2a44da8 100644 (file)
@@ -62,6 +62,7 @@ long long int strtoll            (const char *ptr, char **endptr, int base);
 #endif
 void      read_state_file(char *dir, const char *progname, int port);
 int       bstrerror(int errnum, char *buf, size_t bufsiz);
+char     *escape_filename(const char *file_path);
 
 /* bnet.c */
 int32_t    bnet_recv             (BSOCK *bsock);
index 18b5a60ae8b502ac9ece221d121d14ac5ad9e991..29cee07d383747620ea0215f511bb21c98da7205 100644 (file)
@@ -1,38 +1,41 @@
-#!/bin/sh\r
-#\r
-# This script dumps your Bacula catalog in ASCII format\r
-# It works for MySQL, SQLite, and PostgreSQL\r
-#\r
-#  $1 is the name of the database to be backed up and the name\r
-#     of the output file (default = bacula\r
-#  $2 is the user name with which to access the database\r
-#     (default = bacula).\r
-#  $3 is the password with which to access the database or "" if no password\r
-#     (default "")\r
-#\r
-#\r
-cd %WORKING_DIR%\r
-del /f bacula.sql\r
+@echo off\r
+rem \r
+rem  This script dumps your Bacula catalog in ASCII format\r
+rem  It works for MySQL, SQLite, and PostgreSQL\r
+rem \r
+rem   %1 is the name of the database to be backed up and the name\r
+rem      of the output file (default = bacula\r
+rem   %2 is the user name with which to access the database\r
+rem      (default = bacula).\r
+rem   %3 is the password with which to access the database or "" if no password\r
+rem      (default "")\r
+rem \r
+rem \r
+@echo on\r
+\r
+cd @working_dir@\r
+del /f bacula.sql 2>nul\r
 \r
 set MYSQLPASSWORD=\r
 \r
-if "%3"!="" set MYSQLPASSWORD=" --password=%3"\r
-%SQL_BINDIR%/mysqldump -u %2 %MYSQLPASSWORD% -f --opt %1 >%1.sql\r
+if not "%3"=="" set MYSQLPASSWORD=--password=%3\r
+"@SQL_BINDIR@\mysqldump" -u %2 %MYSQLPASSWORD% -f --opt %1 >%1.sql\r
 \r
-#\r
-#  To read back a MySQL database use: \r
-#     cd @working_dir@\r
-#     rm -f @SQL_BINDIR@/../var/bacula/*\r
-#     mysql <bacula.sql\r
-#\r
-#  To read back a SQLite database use:\r
-#     cd @working_dir@\r
-#     rm -f bacula.db\r
-#     sqlite bacula.db <bacula.sql\r
-#\r
-#  To read back a PostgreSQL database use:\r
-#     cd @working_dir@\r
-#     dropdb bacula\r
-#     createdb bacula\r
-#     psql bacula <bacula.sql\r
-#\r
+@echo off\r
+rem \r
+rem   To read back a MySQL database use: \r
+rem      cd @working_dir@\r
+rem      rd /s /q -f @SQL_BINDIR@\..\data\bacula\r
+rem      mysql <bacula.sql\r
+rem \r
+rem   To read back a SQLite database use:\r
+rem      cd @working_dir@\r
+rem      rm -f bacula.db\r
+rem      sqlite bacula.db <bacula.sql\r
+rem \r
+rem   To read back a PostgreSQL database use:\r
+rem      cd @working_dir@\r
+rem      dropdb bacula\r
+rem      createdb bacula\r
+rem      psql bacula <bacula.sql\r
+rem \r
index 4db72e8889dca44714c130d55bd86220b76be6e8..b01c6ca2e5e6de00512fb7aed91568f18c117c7c 100644 (file)
@@ -302,27 +302,27 @@ make_wchar_win32_path(POOLMEM *pszUCSPath, BOOL *pBIsRawPath /*= NULL*/)
 
 
    wchar_t *win32_name = (wchar_t *)pwszBuf+nParseOffset;
+   wchar_t *name_start = name;
 
    while (*name) {
-      /* Check for Unix separator and convert to Win32 */
-      if (*name == '/') {
+      /* Check for Unix separator and convert to Win32, eliminating 
+       * duplicate separators.
+       */
+      if (*name == '/' || *name == '\\') {
          *win32_name++ = '\\';     /* convert char */
-         /* If Win32 separated that is "quoted", remove quote */
-/* HELPME (Thorsten Engel): I don't understand the following part
- * and it removes a backslash from e.g. "\\.\c:" which I need for 
- * RAW device access. So I took it out.  
- */
-#ifdef needed
-        } else if (*name == '\\' && name[1] == '\\') {
-         *win32_name++ = '\\';
-         name++;                     /* skip first \ */ 
-#endif
+
+         /* Eliminate consecutive slashes, but not at the start so that 
+          * \\.\ still works.
+          */
+         if (name_start != name && (name[1] == '/' || name[1] == '\\')) {
+            name++;
+         }
       } else {
          *win32_name++ = *name;    /* copy character */
       }
       name++;
    }
-   
+
    /* null terminate string */
    *win32_name = 0;
 
index 5882733306725bd664310e4b63bb6aed1a964c65..fc985cdeddd95b28d6a71367ef46673f66474522 100644 (file)
                        />\r
                        <Tool\r
                                Name="VCCustomBuildTool"\r
+                               Description="Copying dird scripts"\r
+                               CommandLine="copy ..\..\dird\query.sql ..\installer"\r
+                               AdditionalDependencies="..\..\dird\query.sql"\r
+                               Outputs="..\installer\query.sql"\r
                        />\r
                        <Tool\r
                                Name="VCXMLDataGeneratorTool"\r
                        />\r
                        <Tool\r
                                Name="VCCustomBuildTool"\r
+                               Description="Copying dird scripts"\r
+                               CommandLine="copy ..\..\dird\query.sql ..\installer"\r
+                               AdditionalDependencies="..\..\dird\query.sql"\r
+                               Outputs="..\installer\query.sql"\r
                        />\r
                        <Tool\r
                                Name="VCXMLDataGeneratorTool"\r
index 28cb9e82b7a063beebf07ffe2df2df1250f12494..aa3ea113b392b6422b375da16a617afed3b41384 100644 (file)
@@ -185,6 +185,7 @@ _Z9bsnprintfPciPKcz
 _Z11bmicrosleepll
 _Z15create_pid_filePcPKci
 _Z15delete_pid_filePcPKci
+_Z15escape_filenamePKc
 _Z15read_state_filePcPKci
 _Z16write_state_filePcPKci
 _Z2_pPP16pthread_mutex_t_
index 9d98eec25ec4aec4737c90921e0f526f785adaa4..61708ffb2154b6396756b71ea8c5c681b2014a9e 100644 (file)
@@ -94,6 +94,9 @@ SCRIPTS := \
        ../cats/make_catalog_backup.cmd \
        ../cats/delete_catalog_backup.cmd
 
+DIRD_FILES := \
+       query.sql
+
 SSL_FILES := \
        openssl.cnf
 
@@ -139,7 +142,9 @@ $(foreach file,$(addprefix $(BINDIR)/, $(BACULA_BINARIES)),$(eval $(call Strip_B
 
 $(foreach file,$(addprefix $(DEPKGS)/ssl/, $(SSL_FILES)),$(eval $(call Copy_Binary,$(file))))
 
-$(INSTALL_EXE): winbacula.nsi $(BACULA_BINARIES) $(SCRIPTS) $(DEPKGS_BINARIES) $(NONGCC_BINARIES) $(NONGCC_LIBRARIES) $(SSL_FILES)
+$(foreach file,$(addprefix ../../dird/, $(DIRD_FILES)),$(eval $(call Copy_Binary,$(file))))
+
+$(INSTALL_EXE): winbacula.nsi $(BACULA_BINARIES) $(SCRIPTS) $(DEPKGS_BINARIES) $(NONGCC_BINARIES) $(NONGCC_LIBRARIES) $(SSL_FILES) $(DIRD_FILES)
        NSISDIR=$(NSIS_DIR) \
        $(NSIS_DIR)/makensis -V3 $(DEFINES) winbacula.nsi
 
index 0ed0dfae330a9cb3cdff50d81503279951c65ecd..d609e85ee92bb3dcc5d33de3855fc6a800d0a5f9 100644 (file)
@@ -80,7 +80,7 @@ Job {
   Storage = File
   Pool = Default
   Messages = Standard
-  Where = C:\\tmp\\bacula-restores
+  Where = "C:\\tmp\\bacula-restores"
 }
 
 
@@ -105,7 +105,7 @@ FileSet {
 #    directory to give a reasonable FileSet to backup to
 #    disk storage during initial testing.
 #
-    File = @BUILD_DIR@
+    File = "@bin_dir@"
   }
 
 #
@@ -144,7 +144,7 @@ FileSet {
     Options {
       signature = MD5
     }
-    File = "@working_dir@/bacula.sql"
+    File = "@working_dir@\\bacula.sql"
   }
 }
 
index f203deff8c1f7442247995f736da2c95cb4948b5..de949301d638edfc329ba66c05179260d7d50cd3 100644 (file)
@@ -22,8 +22,8 @@
                        >
                        <Tool
                                Name="VCNMakeTool"
-                               BuildCommandLine="build-installer $(SolutionDir) $(ConfigurationName) VC8_DEBUG &quot;$(VCInstallDir)redist\Debug_NonRedist\x86\Microsoft.VC80.DebugCRT&quot;&#x0D;&#x0A;"
-                               ReBuildCommandLine="del $(SolutionDir)$(ConfigurationName)\winbacula-*.exe&#x0D;&#x0A;build-installer $(SolutionDir) $(ConfigurationName) VC8_DEBUG &quot;$(VCInstallDir)redist\Debug_NonRedist\x86\Microsoft.VC80.DebugCRT&quot;&#x0D;&#x0A;"
+                               BuildCommandLine="build-installer $(SolutionDir) $(ConfigurationName) VC8_DEBUG &quot;$(VCInstallDir)redist&quot;&#x0D;&#x0A;"
+                               ReBuildCommandLine="del $(SolutionDir)$(ConfigurationName)\winbacula-*.exe&#x0D;&#x0A;build-installer $(SolutionDir) $(ConfigurationName) VC8_DEBUG &quot;$(VCInstallDir)redist&quot;&#x0D;&#x0A;"
                                CleanCommandLine="del $(SolutionDir)$(ConfigurationName)\winbacula-*.exe"
                                Output=""
                                PreprocessorDefinitions="VERSION=$(VERSION);DOC_DIR=..\..\..\..\docs;BUILD_TOOLS=VC8_DEBUG;VC_REDIST_DIR=$(VCInstallDir)redist\Debug_NonRedist\x86\Microsoft.VC80.DebugCRT;DEPKGS_BIN=..\..\..\..\depkgs-msvc\bin;BACULA_BIN=..\$(ConfigurationName);CATS_DIR=..\cats;SCRIPT_DIR=..\scripts"
@@ -42,8 +42,8 @@
                        >
                        <Tool
                                Name="VCNMakeTool"
-                               BuildCommandLine="build-installer $(SolutionDir) $(ConfigurationName) VC8 &quot;$(VCInstallDir)redist\x86\Microsoft.VC80.CRT&quot;&#x0D;&#x0A;"
-                               ReBuildCommandLine="del $(SolutionDir)$(ConfigurationName)\winbacula-*.exe&#x0D;&#x0A;build-installer $(SolutionDir) $(ConfigurationName) VC8 &quot;$(VCInstallDir)redist\x86\Microsoft.VC80.CRT&quot;&#x0D;&#x0A;"
+                               BuildCommandLine="build-installer $(SolutionDir) $(ConfigurationName) VC8 &quot;$(VCInstallDir)redist&quot;&#x0D;&#x0A;"
+                               ReBuildCommandLine="del $(SolutionDir)$(ConfigurationName)\winbacula-*.exe&#x0D;&#x0A;build-installer $(SolutionDir) $(ConfigurationName) VC8 &quot;$(VCInstallDir)redist&quot;&#x0D;&#x0A;"
                                CleanCommandLine="del $(SolutionDir)$(ConfigurationName)\winbacula-*.exe"
                                Output=""
                                PreprocessorDefinitions=""
index 4ec3f4b1e7439b9cef388a2af3e1b42027d3a39b..7c99c03c63ecfbf34773d58703b4801ab3bc3c4c 100644 (file)
@@ -126,6 +126,7 @@ b_regfree
 ?write_state_file@@YAXPADPBDH@Z
 ?drop@@YAXPAD0@Z
 ?bfgets@@YAPADPADHPAU_iobuf@@@Z
+?escape_filename@@YAPADPBD@Z
  
 ; btime.obj 
 ?bstrftime@@YAPADPADH_J@Z
index 5ee761fb1ae1e908b569951cc21b989ddfba97e1..d33e4ea1da7e95631c42b4ea10dc8d7a506d6dc8 100644 (file)
                                RelativePath="..\..\..\stored\acquire.c"\r
                                >\r
                                <FileConfiguration\r
-                                       Name="Release|Win32"\r
+                                       Name="Debug|Win32"\r
                                        >\r
                                        <Tool\r
                                                Name="VCCLCompilerTool"\r
                                        />\r
                                </FileConfiguration>\r
                                <FileConfiguration\r
-                                       Name="Debug|Win32"\r
+                                       Name="Release|Win32"\r
                                        >\r
                                        <Tool\r
                                                Name="VCCLCompilerTool"\r
                                RelativePath="..\..\..\stored\ansi_label.c"\r
                                >\r
                                <FileConfiguration\r
-                                       Name="Release|Win32"\r
+                                       Name="Debug|Win32"\r
                                        >\r
                                        <Tool\r
                                                Name="VCCLCompilerTool"\r
                                        />\r
                                </FileConfiguration>\r
                                <FileConfiguration\r
-                                       Name="Debug|Win32"\r
+                                       Name="Release|Win32"\r
                                        >\r
                                        <Tool\r
                                                Name="VCCLCompilerTool"\r
                                RelativePath="..\..\..\stored\append.c"\r
                                >\r
                                <FileConfiguration\r
-                                       Name="Release|Win32"\r
+                                       Name="Debug|Win32"\r
                                        >\r
                                        <Tool\r
                                                Name="VCCLCompilerTool"\r
                                        />\r
                                </FileConfiguration>\r
                                <FileConfiguration\r
-                                       Name="Debug|Win32"\r
+                                       Name="Release|Win32"\r
                                        >\r
                                        <Tool\r
                                                Name="VCCLCompilerTool"\r
                                RelativePath="..\..\..\stored\askdir.c"\r
                                >\r
                                <FileConfiguration\r
-                                       Name="Release|Win32"\r
+                                       Name="Debug|Win32"\r
                                        >\r
                                        <Tool\r
                                                Name="VCCLCompilerTool"\r
                                        />\r
                                </FileConfiguration>\r
                                <FileConfiguration\r
-                                       Name="Debug|Win32"\r
+                                       Name="Release|Win32"\r
                                        >\r
                                        <Tool\r
                                                Name="VCCLCompilerTool"\r
                                RelativePath="..\..\..\stored\authenticate.c"\r
                                >\r
                                <FileConfiguration\r
-                                       Name="Release|Win32"\r
+                                       Name="Debug|Win32"\r
                                        >\r
                                        <Tool\r
                                                Name="VCCLCompilerTool"\r
                                        />\r
                                </FileConfiguration>\r
                                <FileConfiguration\r
-                                       Name="Debug|Win32"\r
+                                       Name="Release|Win32"\r
                                        >\r
                                        <Tool\r
                                                Name="VCCLCompilerTool"\r
                                RelativePath="..\..\..\stored\autochanger.c"\r
                                >\r
                                <FileConfiguration\r
-                                       Name="Release|Win32"\r
+                                       Name="Debug|Win32"\r
                                        >\r
                                        <Tool\r
                                                Name="VCCLCompilerTool"\r
                                        />\r
                                </FileConfiguration>\r
                                <FileConfiguration\r
-                                       Name="Debug|Win32"\r
+                                       Name="Release|Win32"\r
                                        >\r
                                        <Tool\r
                                                Name="VCCLCompilerTool"\r
                                RelativePath="..\..\..\stored\block.c"\r
                                >\r
                                <FileConfiguration\r
-                                       Name="Release|Win32"\r
+                                       Name="Debug|Win32"\r
                                        >\r
                                        <Tool\r
                                                Name="VCCLCompilerTool"\r
                                        />\r
                                </FileConfiguration>\r
                                <FileConfiguration\r
-                                       Name="Debug|Win32"\r
+                                       Name="Release|Win32"\r
                                        >\r
                                        <Tool\r
                                                Name="VCCLCompilerTool"\r
                                RelativePath="..\..\..\stored\butil.c"\r
                                >\r
                                <FileConfiguration\r
-                                       Name="Release|Win32"\r
+                                       Name="Debug|Win32"\r
                                        >\r
                                        <Tool\r
                                                Name="VCCLCompilerTool"\r
                                        />\r
                                </FileConfiguration>\r
                                <FileConfiguration\r
-                                       Name="Debug|Win32"\r
+                                       Name="Release|Win32"\r
                                        >\r
                                        <Tool\r
                                                Name="VCCLCompilerTool"\r
                                RelativePath="..\..\..\stored\dev.c"\r
                                >\r
                                <FileConfiguration\r
-                                       Name="Release|Win32"\r
+                                       Name="Debug|Win32"\r
                                        >\r
                                        <Tool\r
                                                Name="VCCLCompilerTool"\r
                                        />\r
                                </FileConfiguration>\r
                                <FileConfiguration\r
-                                       Name="Debug|Win32"\r
+                                       Name="Release|Win32"\r
                                        >\r
                                        <Tool\r
                                                Name="VCCLCompilerTool"\r
                                RelativePath="..\..\..\stored\device.c"\r
                                >\r
                                <FileConfiguration\r
-                                       Name="Release|Win32"\r
+                                       Name="Debug|Win32"\r
                                        >\r
                                        <Tool\r
                                                Name="VCCLCompilerTool"\r
                                        />\r
                                </FileConfiguration>\r
                                <FileConfiguration\r
-                                       Name="Debug|Win32"\r
+                                       Name="Release|Win32"\r
                                        >\r
                                        <Tool\r
                                                Name="VCCLCompilerTool"\r
                                RelativePath="..\..\..\stored\dircmd.c"\r
                                >\r
                                <FileConfiguration\r
-                                       Name="Release|Win32"\r
+                                       Name="Debug|Win32"\r
                                        >\r
                                        <Tool\r
                                                Name="VCCLCompilerTool"\r
                                        />\r
                                </FileConfiguration>\r
                                <FileConfiguration\r
-                                       Name="Debug|Win32"\r
+                                       Name="Release|Win32"\r
                                        >\r
                                        <Tool\r
                                                Name="VCCLCompilerTool"\r
                                RelativePath="..\..\..\stored\dvd.c"\r
                                >\r
                                <FileConfiguration\r
-                                       Name="Release|Win32"\r
+                                       Name="Debug|Win32"\r
                                        >\r
                                        <Tool\r
                                                Name="VCCLCompilerTool"\r
                                        />\r
                                </FileConfiguration>\r
                                <FileConfiguration\r
-                                       Name="Debug|Win32"\r
+                                       Name="Release|Win32"\r
                                        >\r
                                        <Tool\r
                                                Name="VCCLCompilerTool"\r
                                RelativePath="..\..\..\stored\ebcdic.c"\r
                                >\r
                                <FileConfiguration\r
-                                       Name="Release|Win32"\r
+                                       Name="Debug|Win32"\r
                                        >\r
                                        <Tool\r
                                                Name="VCCLCompilerTool"\r
                                        />\r
                                </FileConfiguration>\r
                                <FileConfiguration\r
-                                       Name="Debug|Win32"\r
+                                       Name="Release|Win32"\r
                                        >\r
                                        <Tool\r
                                                Name="VCCLCompilerTool"\r
                                RelativePath="..\..\..\stored\fd_cmds.c"\r
                                >\r
                                <FileConfiguration\r
-                                       Name="Release|Win32"\r
+                                       Name="Debug|Win32"\r
                                        >\r
                                        <Tool\r
                                                Name="VCCLCompilerTool"\r
                                        />\r
                                </FileConfiguration>\r
                                <FileConfiguration\r
-                                       Name="Debug|Win32"\r
+                                       Name="Release|Win32"\r
                                        >\r
                                        <Tool\r
                                                Name="VCCLCompilerTool"\r
                                RelativePath="..\..\..\stored\job.c"\r
                                >\r
                                <FileConfiguration\r
-                                       Name="Release|Win32"\r
+                                       Name="Debug|Win32"\r
                                        >\r
                                        <Tool\r
                                                Name="VCCLCompilerTool"\r
                                        />\r
                                </FileConfiguration>\r
                                <FileConfiguration\r
-                                       Name="Debug|Win32"\r
+                                       Name="Release|Win32"\r
                                        >\r
                                        <Tool\r
                                                Name="VCCLCompilerTool"\r
                                RelativePath="..\..\..\stored\label.c"\r
                                >\r
                                <FileConfiguration\r
-                                       Name="Release|Win32"\r
+                                       Name="Debug|Win32"\r
                                        >\r
                                        <Tool\r
                                                Name="VCCLCompilerTool"\r
                                        />\r
                                </FileConfiguration>\r
                                <FileConfiguration\r
-                                       Name="Debug|Win32"\r
+                                       Name="Release|Win32"\r
                                        >\r
                                        <Tool\r
                                                Name="VCCLCompilerTool"\r
                                RelativePath="..\..\..\stored\mac.c"\r
                                >\r
                                <FileConfiguration\r
-                                       Name="Release|Win32"\r
+                                       Name="Debug|Win32"\r
                                        >\r
                                        <Tool\r
                                                Name="VCCLCompilerTool"\r
                                        />\r
                                </FileConfiguration>\r
                                <FileConfiguration\r
-                                       Name="Debug|Win32"\r
+                                       Name="Release|Win32"\r
                                        >\r
                                        <Tool\r
                                                Name="VCCLCompilerTool"\r
                                RelativePath="..\..\..\stored\match_bsr.c"\r
                                >\r
                                <FileConfiguration\r
-                                       Name="Release|Win32"\r
+                                       Name="Debug|Win32"\r
                                        >\r
                                        <Tool\r
                                                Name="VCCLCompilerTool"\r
                                        />\r
                                </FileConfiguration>\r
                                <FileConfiguration\r
-                                       Name="Debug|Win32"\r
+                                       Name="Release|Win32"\r
                                        >\r
                                        <Tool\r
                                                Name="VCCLCompilerTool"\r
                                RelativePath="..\..\..\stored\mount.c"\r
                                >\r
                                <FileConfiguration\r
-                                       Name="Release|Win32"\r
+                                       Name="Debug|Win32"\r
                                        >\r
                                        <Tool\r
                                                Name="VCCLCompilerTool"\r
                                        />\r
                                </FileConfiguration>\r
                                <FileConfiguration\r
-                                       Name="Debug|Win32"\r
+                                       Name="Release|Win32"\r
                                        >\r
                                        <Tool\r
                                                Name="VCCLCompilerTool"\r
                                RelativePath="..\mtops.cpp"\r
                                >\r
                                <FileConfiguration\r
-                                       Name="Release|Win32"\r
+                                       Name="Debug|Win32"\r
                                        >\r
                                        <Tool\r
                                                Name="VCCLCompilerTool"\r
                                        />\r
                                </FileConfiguration>\r
                                <FileConfiguration\r
-                                       Name="Debug|Win32"\r
+                                       Name="Release|Win32"\r
                                        >\r
                                        <Tool\r
                                                Name="VCCLCompilerTool"\r
                                RelativePath="..\..\..\stored\parse_bsr.c"\r
                                >\r
                                <FileConfiguration\r
-                                       Name="Release|Win32"\r
+                                       Name="Debug|Win32"\r
                                        >\r
                                        <Tool\r
                                                Name="VCCLCompilerTool"\r
                                        />\r
                                </FileConfiguration>\r
                                <FileConfiguration\r
-                                       Name="Debug|Win32"\r
+                                       Name="Release|Win32"\r
                                        >\r
                                        <Tool\r
                                                Name="VCCLCompilerTool"\r
                                RelativePath="..\..\..\stored\pythonsd.c"\r
                                >\r
                                <FileConfiguration\r
-                                       Name="Release|Win32"\r
+                                       Name="Debug|Win32"\r
                                        >\r
                                        <Tool\r
                                                Name="VCCLCompilerTool"\r
                                        />\r
                                </FileConfiguration>\r
                                <FileConfiguration\r
-                                       Name="Debug|Win32"\r
+                                       Name="Release|Win32"\r
                                        >\r
                                        <Tool\r
                                                Name="VCCLCompilerTool"\r
                                RelativePath="..\..\..\stored\read.c"\r
                                >\r
                                <FileConfiguration\r
-                                       Name="Release|Win32"\r
+                                       Name="Debug|Win32"\r
                                        >\r
                                        <Tool\r
                                                Name="VCCLCompilerTool"\r
                                        />\r
                                </FileConfiguration>\r
                                <FileConfiguration\r
-                                       Name="Debug|Win32"\r
+                                       Name="Release|Win32"\r
                                        >\r
                                        <Tool\r
                                                Name="VCCLCompilerTool"\r
                                RelativePath="..\..\..\stored\read_record.c"\r
                                >\r
                                <FileConfiguration\r
-                                       Name="Release|Win32"\r
+                                       Name="Debug|Win32"\r
                                        >\r
                                        <Tool\r
                                                Name="VCCLCompilerTool"\r
                                        />\r
                                </FileConfiguration>\r
                                <FileConfiguration\r
-                                       Name="Debug|Win32"\r
+                                       Name="Release|Win32"\r
                                        >\r
                                        <Tool\r
                                                Name="VCCLCompilerTool"\r
                                RelativePath="..\..\..\stored\record.c"\r
                                >\r
                                <FileConfiguration\r
-                                       Name="Release|Win32"\r
+                                       Name="Debug|Win32"\r
                                        >\r
                                        <Tool\r
                                                Name="VCCLCompilerTool"\r
                                        />\r
                                </FileConfiguration>\r
                                <FileConfiguration\r
-                                       Name="Debug|Win32"\r
+                                       Name="Release|Win32"\r
                                        >\r
                                        <Tool\r
                                                Name="VCCLCompilerTool"\r
                                RelativePath="..\..\..\stored\reserve.c"\r
                                >\r
                                <FileConfiguration\r
-                                       Name="Release|Win32"\r
+                                       Name="Debug|Win32"\r
                                        >\r
                                        <Tool\r
                                                Name="VCCLCompilerTool"\r
                                        />\r
                                </FileConfiguration>\r
                                <FileConfiguration\r
-                                       Name="Debug|Win32"\r
+                                       Name="Release|Win32"\r
                                        >\r
                                        <Tool\r
                                                Name="VCCLCompilerTool"\r
                                RelativePath="..\..\..\stored\scan.c"\r
                                >\r
                                <FileConfiguration\r
-                                       Name="Release|Win32"\r
+                                       Name="Debug|Win32"\r
                                        >\r
                                        <Tool\r
                                                Name="VCCLCompilerTool"\r
                                        />\r
                                </FileConfiguration>\r
                                <FileConfiguration\r
-                                       Name="Debug|Win32"\r
+                                       Name="Release|Win32"\r
                                        >\r
                                        <Tool\r
                                                Name="VCCLCompilerTool"\r
                                RelativePath="..\..\..\stored\spool.c"\r
                                >\r
                                <FileConfiguration\r
-                                       Name="Release|Win32"\r
+                                       Name="Debug|Win32"\r
                                        >\r
                                        <Tool\r
                                                Name="VCCLCompilerTool"\r
                                        />\r
                                </FileConfiguration>\r
                                <FileConfiguration\r
-                                       Name="Debug|Win32"\r
+                                       Name="Release|Win32"\r
                                        >\r
                                        <Tool\r
                                                Name="VCCLCompilerTool"\r
                                RelativePath="..\..\..\stored\stored_conf.c"\r
                                >\r
                                <FileConfiguration\r
-                                       Name="Release|Win32"\r
+                                       Name="Debug|Win32"\r
                                        >\r
                                        <Tool\r
                                                Name="VCCLCompilerTool"\r
                                        />\r
                                </FileConfiguration>\r
                                <FileConfiguration\r
-                                       Name="Debug|Win32"\r
+                                       Name="Release|Win32"\r
                                        >\r
                                        <Tool\r
                                                Name="VCCLCompilerTool"\r
                                RelativePath="..\..\..\stored\wait.c"\r
                                >\r
                                <FileConfiguration\r
-                                       Name="Release|Win32"\r
+                                       Name="Debug|Win32"\r
                                        >\r
                                        <Tool\r
                                                Name="VCCLCompilerTool"\r
                                        />\r
                                </FileConfiguration>\r
                                <FileConfiguration\r
-                                       Name="Debug|Win32"\r
+                                       Name="Release|Win32"\r
                                        >\r
                                        <Tool\r
                                                Name="VCCLCompilerTool"\r