]> git.sur5r.net Git - bacula/bacula/blobdiff - bacula/src/dird/run_conf.c
kes Update copyright date in program files, and for the most part
[bacula/bacula] / bacula / src / dird / run_conf.c
index 580c22844608d2b09f85c5f57e9ad2f336171827..394fbe4731460c199b772f6ca3b899456f78dde6 100644 (file)
@@ -8,11 +8,11 @@
  *     Version $Id$
  */
 /*
-   Copyright (C) 2000-2005 Kern Sibbald
+   Copyright (C) 2000-2006 Kern Sibbald
 
    This program is free software; you can redistribute it and/or
    modify it under the terms of the GNU General Public License
-   version 2 as ammended with additional clauses defined in the
+   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,
 #include "bacula.h"
 #include "dird.h"
 
+#if defined(_MSC_VER)
+extern "C" { // work around visual compiler mangling variables
+   extern URES res_all;
+}
+#else
 extern URES res_all;
+#endif
 extern struct s_jl joblevels[];
 
 /* Forward referenced subroutines */
@@ -54,64 +60,64 @@ struct s_keyw {
 
 /* Keywords understood by parser */
 static struct s_keyw keyw[] = {
-  {N_("on"),         s_none,    0},
-  {N_("at"),         s_at,      0},
+  {NT_("on"),         s_none,    0},
+  {NT_("at"),         s_at,      0},
 
-  {N_("sun"),        s_wday,    0},
-  {N_("mon"),        s_wday,    1},
-  {N_("tue"),        s_wday,    2},
-  {N_("wed"),        s_wday,    3},
-  {N_("thu"),        s_wday,    4},
-  {N_("fri"),        s_wday,    5},
-  {N_("sat"),        s_wday,    6},
-  {N_("jan"),        s_month,   0},
-  {N_("feb"),        s_month,   1},
-  {N_("mar"),        s_month,   2},
-  {N_("apr"),        s_month,   3},
-  {N_("may"),        s_month,   4},
-  {N_("jun"),        s_month,   5},
-  {N_("jul"),        s_month,   6},
-  {N_("aug"),        s_month,   7},
-  {N_("sep"),        s_month,   8},
-  {N_("oct"),        s_month,   9},
-  {N_("nov"),        s_month,  10},
-  {N_("dec"),        s_month,  11},
+  {NT_("sun"),        s_wday,    0},
+  {NT_("mon"),        s_wday,    1},
+  {NT_("tue"),        s_wday,    2},
+  {NT_("wed"),        s_wday,    3},
+  {NT_("thu"),        s_wday,    4},
+  {NT_("fri"),        s_wday,    5},
+  {NT_("sat"),        s_wday,    6},
+  {NT_("jan"),        s_month,   0},
+  {NT_("feb"),        s_month,   1},
+  {NT_("mar"),        s_month,   2},
+  {NT_("apr"),        s_month,   3},
+  {NT_("may"),        s_month,   4},
+  {NT_("jun"),        s_month,   5},
+  {NT_("jul"),        s_month,   6},
+  {NT_("aug"),        s_month,   7},
+  {NT_("sep"),        s_month,   8},
+  {NT_("oct"),        s_month,   9},
+  {NT_("nov"),        s_month,  10},
+  {NT_("dec"),        s_month,  11},
 
-  {N_("sunday"),     s_wday,    0},
-  {N_("monday"),     s_wday,    1},
-  {N_("tuesday"),    s_wday,    2},
-  {N_("wednesday"),  s_wday,    3},
-  {N_("thursday"),   s_wday,    4},
-  {N_("friday"),     s_wday,    5},
-  {N_("saturday"),   s_wday,    6},
-  {N_("january"),    s_month,   0},
-  {N_("february"),   s_month,   1},
-  {N_("march"),      s_month,   2},
-  {N_("april"),      s_month,   3},
-  {N_("june"),       s_month,   5},
-  {N_("july"),       s_month,   6},
-  {N_("august"),     s_month,   7},
-  {N_("september"),  s_month,   8},
-  {N_("october"),    s_month,   9},
-  {N_("november"),   s_month,  10},
-  {N_("december"),   s_month,  11},
+  {NT_("sunday"),     s_wday,    0},
+  {NT_("monday"),     s_wday,    1},
+  {NT_("tuesday"),    s_wday,    2},
+  {NT_("wednesday"),  s_wday,    3},
+  {NT_("thursday"),   s_wday,    4},
+  {NT_("friday"),     s_wday,    5},
+  {NT_("saturday"),   s_wday,    6},
+  {NT_("january"),    s_month,   0},
+  {NT_("february"),   s_month,   1},
+  {NT_("march"),      s_month,   2},
+  {NT_("april"),      s_month,   3},
+  {NT_("june"),       s_month,   5},
+  {NT_("july"),       s_month,   6},
+  {NT_("august"),     s_month,   7},
+  {NT_("september"),  s_month,   8},
+  {NT_("october"),    s_month,   9},
+  {NT_("november"),   s_month,  10},
+  {NT_("december"),   s_month,  11},
 
-  {N_("daily"),      s_daily,   0},
-  {N_("weekly"),     s_weekly,  0},
-  {N_("monthly"),    s_monthly, 0},
-  {N_("hourly"),     s_hourly,  0},
+  {NT_("daily"),      s_daily,   0},
+  {NT_("weekly"),     s_weekly,  0},
+  {NT_("monthly"),    s_monthly, 0},
+  {NT_("hourly"),     s_hourly,  0},
 
-  {N_("1st"),        s_wom,     0},
-  {N_("2nd"),        s_wom,     1},
-  {N_("3rd"),        s_wom,     2},
-  {N_("4th"),        s_wom,     3},
-  {N_("5th"),        s_wom,     4},
+  {NT_("1st"),        s_wom,     0},
+  {NT_("2nd"),        s_wom,     1},
+  {NT_("3rd"),        s_wom,     2},
+  {NT_("4th"),        s_wom,     3},
+  {NT_("5th"),        s_wom,     4},
 
-  {N_("first"),      s_wom,     0},
-  {N_("second"),     s_wom,     1},
-  {N_("third"),      s_wom,     2},
-  {N_("fourth"),     s_wom,     3},
-  {N_("fifth"),      s_wom,     4},
+  {NT_("first"),      s_wom,     0},
+  {NT_("second"),     s_wom,     1},
+  {NT_("third"),      s_wom,     2},
+  {NT_("fourth"),     s_wom,     3},
+  {NT_("fifth"),      s_wom,     4},
   {NULL,         s_none,    0}
 };
 
@@ -185,16 +191,16 @@ void store_run(LEX *lc, RES_ITEM *item, int index, int pass)
          if (strcasecmp(lc->str, RunFields[i].name) == 0) {
             found = true;
             if (lex_get_token(lc, T_ALL) != T_EQUALS) {
-               scan_err1(lc, "Expected an equals, got: %s", lc->str);
+               scan_err1(lc, _("Expected an equals, got: %s"), lc->str);
                /* NOT REACHED */
             }
             switch (RunFields[i].token) {
             case 's':                 /* Data spooling */
                token = lex_get_token(lc, T_NAME);
-               if (strcasecmp(lc->str, "yes") == 0) {
+               if (strcasecmp(lc->str, "yes") == 0 || strcasecmp(lc->str, "true") == 0) {
                   lrun.spool_data = true;
                   lrun.spool_data_set = true;
-               } else if (strcasecmp(lc->str, "no") == 0) {
+               } else if (strcasecmp(lc->str, "no") == 0 || strcasecmp(lc->str, "false") == 0) {
                   lrun.spool_data = false;
                   lrun.spool_data_set = true;
                } else {
@@ -203,10 +209,10 @@ void store_run(LEX *lc, RES_ITEM *item, int index, int pass)
                break;
             case 'W':                 /* Write part after job */
                token = lex_get_token(lc, T_NAME);
-               if (strcasecmp(lc->str, "yes") == 0) {
+               if (strcasecmp(lc->str, "yes") == 0 || strcasecmp(lc->str, "true") == 0) {
                   lrun.write_part_after_job = true;
                   lrun.write_part_after_job_set = true;
-               } else if (strcasecmp(lc->str, "no") == 0) {
+               } else if (strcasecmp(lc->str, "no") == 0 || strcasecmp(lc->str, "false") == 0) {
                   lrun.write_part_after_job = false;
                   lrun.write_part_after_job_set = true;
                } else {
@@ -242,7 +248,7 @@ void store_run(LEX *lc, RES_ITEM *item, int index, int pass)
                if (pass == 2) {
                   res = GetResWithName(R_POOL, lc->str);
                   if (res == NULL) {
-                     scan_err1(lc, "Could not find specified Pool Resource: %s",
+                     scan_err1(lc, _("Could not find specified Pool Resource: %s"),
                                 lc->str);
                      /* NOT REACHED */
                   }
@@ -257,7 +263,7 @@ void store_run(LEX *lc, RES_ITEM *item, int index, int pass)
                      lrun.inc_pool = (POOL *)res;
                      break;
                   case 'd':
-                     lrun.dif_pool = (POOL *)res;
+                     lrun.diff_pool = (POOL *)res;
                      break;
                   }
                }
@@ -267,7 +273,7 @@ void store_run(LEX *lc, RES_ITEM *item, int index, int pass)
                if (pass == 2) {
                   res = GetResWithName(R_STORAGE, lc->str);
                   if (res == NULL) {
-                     scan_err1(lc, "Could not find specified Storage Resource: %s",
+                     scan_err1(lc, _("Could not find specified Storage Resource: %s"),
                                 lc->str);
                      /* NOT REACHED */
                   }
@@ -279,7 +285,7 @@ void store_run(LEX *lc, RES_ITEM *item, int index, int pass)
                if (pass == 2) {
                   res = GetResWithName(R_MSGS, lc->str);
                   if (res == NULL) {
-                     scan_err1(lc, "Could not find specified Messages Resource: %s",
+                     scan_err1(lc, _("Could not find specified Messages Resource: %s"),
                                 lc->str);
                      /* NOT REACHED */
                   }
@@ -287,7 +293,7 @@ void store_run(LEX *lc, RES_ITEM *item, int index, int pass)
                }
                break;
             default:
-               scan_err1(lc, "Expected a keyword name, got: %s", lc->str);
+               scan_err1(lc, _("Expected a keyword name, got: %s"), lc->str);
                /* NOT REACHED */
                break;
             } /* end switch */
@@ -297,12 +303,14 @@ void store_run(LEX *lc, RES_ITEM *item, int index, int pass)
       /* At this point, it is not a keyword. Check for old syle
        * Job Levels without keyword. This form is depreciated!!!
        */
-      for (j=0; joblevels[j].level_name; j++) {
-         if (strcasecmp(lc->str, joblevels[j].level_name) == 0) {
-            lrun.level = joblevels[j].level;
-            lrun.job_type = joblevels[j].job_type;
-            found = true;
-            break;
+      if (!found) {
+         for (j=0; joblevels[j].level_name; j++) {
+            if (strcasecmp(lc->str, joblevels[j].level_name) == 0) {
+               lrun.level = joblevels[j].level;
+               lrun.job_type = joblevels[j].job_type;
+               found = true;
+               break;
+            }
          }
       }
    } /* end for found */