Imported Upstream version 3.2.0
[debian/amanda] / perl / Amanda / Config.pm
index beaf07ba6659639a39507f270e449ea4628bf846..f4ce4d7787f82d4768a7b2ee394ae3d6a07dc1f9 100644 (file)
@@ -1,16 +1,16 @@
 # This file was automatically generated by SWIG (http://www.swig.org).
 # This file was automatically generated by SWIG (http://www.swig.org).
-# Version 1.3.35
+# Version 1.3.39
 #
 #
-# Don't modify this file, modify the SWIG interface instead.
+# Do not make changes to this file unless you know what you are doing--modify
+# the SWIG interface file instead.
 
 package Amanda::Config;
 
 package Amanda::Config;
-require Exporter;
-require DynaLoader;
-@ISA = qw(Exporter DynaLoader);
+use base qw(Exporter);
+use base qw(DynaLoader);
 package Amanda::Configc;
 bootstrap Amanda::Config;
 package Amanda::Config;
 package Amanda::Configc;
 bootstrap Amanda::Config;
 package Amanda::Config;
-@EXPORT = qw( );
+@EXPORT = qw();
 
 # ---------- BASE METHODS -------------
 
 
 # ---------- BASE METHODS -------------
 
@@ -49,8 +49,10 @@ sub this {
 
 package Amanda::Config;
 
 
 package Amanda::Config;
 
+*data_path_from_string = *Amanda::Configc::data_path_from_string;
 *getconf = *Amanda::Configc::getconf;
 *getconf_seen = *Amanda::Configc::getconf_seen;
 *getconf = *Amanda::Configc::getconf;
 *getconf_seen = *Amanda::Configc::getconf_seen;
+*getconf_linenum = *Amanda::Configc::getconf_linenum;
 *getconf_byname = *Amanda::Configc::getconf_byname;
 *getconf_list = *Amanda::Configc::getconf_list;
 *getconf_byname_strs = *Amanda::Configc::getconf_byname_strs;
 *getconf_byname = *Amanda::Configc::getconf_byname;
 *getconf_list = *Amanda::Configc::getconf_list;
 *getconf_byname_strs = *Amanda::Configc::getconf_byname_strs;
@@ -68,7 +70,6 @@ package Amanda::Config;
 *interface_seen = *Amanda::Configc::interface_seen;
 *lookup_holdingdisk = *Amanda::Configc::lookup_holdingdisk;
 *getconf_holdingdisks = *Amanda::Configc::getconf_holdingdisks;
 *interface_seen = *Amanda::Configc::interface_seen;
 *lookup_holdingdisk = *Amanda::Configc::lookup_holdingdisk;
 *getconf_holdingdisks = *Amanda::Configc::getconf_holdingdisks;
-*holdingdisk_next = *Amanda::Configc::holdingdisk_next;
 *holdingdisk_getconf = *Amanda::Configc::holdingdisk_getconf;
 *holdingdisk_name = *Amanda::Configc::holdingdisk_name;
 *holdingdisk_seen = *Amanda::Configc::holdingdisk_seen;
 *holdingdisk_getconf = *Amanda::Configc::holdingdisk_getconf;
 *holdingdisk_name = *Amanda::Configc::holdingdisk_name;
 *holdingdisk_seen = *Amanda::Configc::holdingdisk_seen;
@@ -98,15 +99,17 @@ package Amanda::Config;
 *config_print_errors = *Amanda::Configc::config_print_errors;
 *config_clear_errors = *Amanda::Configc::config_clear_errors;
 *config_errors = *Amanda::Configc::config_errors;
 *config_print_errors = *Amanda::Configc::config_print_errors;
 *config_clear_errors = *Amanda::Configc::config_clear_errors;
 *config_errors = *Amanda::Configc::config_errors;
-*new_config_overwrites = *Amanda::Configc::new_config_overwrites;
-*free_config_overwrites = *Amanda::Configc::free_config_overwrites;
-*add_config_overwrite = *Amanda::Configc::add_config_overwrite;
-*add_config_overwrite_opt = *Amanda::Configc::add_config_overwrite_opt;
-*apply_config_overwrites = *Amanda::Configc::apply_config_overwrites;
+*new_config_overrides = *Amanda::Configc::new_config_overrides;
+*free_config_overrides = *Amanda::Configc::free_config_overrides;
+*add_config_override = *Amanda::Configc::add_config_override;
+*add_config_override_opt = *Amanda::Configc::add_config_override_opt;
+*set_config_overrides = *Amanda::Configc::set_config_overrides;
 *dump_configuration = *Amanda::Configc::dump_configuration;
 *config_dir_relative = *Amanda::Configc::config_dir_relative;
 *taperalgo2str = *Amanda::Configc::taperalgo2str;
 *find_multiplier = *Amanda::Configc::find_multiplier;
 *dump_configuration = *Amanda::Configc::dump_configuration;
 *config_dir_relative = *Amanda::Configc::config_dir_relative;
 *taperalgo2str = *Amanda::Configc::taperalgo2str;
 *find_multiplier = *Amanda::Configc::find_multiplier;
+*C_string_to_boolean = *Amanda::Configc::C_string_to_boolean;
+*amandaify_property_name = *Amanda::Configc::amandaify_property_name;
 
 # ------- VARIABLE STUBS --------
 
 
 # ------- VARIABLE STUBS --------
 
@@ -120,6 +123,7 @@ package Amanda::Config;
 *CNF_SSH_KEYS = *Amanda::Configc::CNF_SSH_KEYS;
 *CNF_AMANDAD_PATH = *Amanda::Configc::CNF_AMANDAD_PATH;
 *CNF_CLIENT_USERNAME = *Amanda::Configc::CNF_CLIENT_USERNAME;
 *CNF_SSH_KEYS = *Amanda::Configc::CNF_SSH_KEYS;
 *CNF_AMANDAD_PATH = *Amanda::Configc::CNF_AMANDAD_PATH;
 *CNF_CLIENT_USERNAME = *Amanda::Configc::CNF_CLIENT_USERNAME;
+*CNF_CLIENT_PORT = *Amanda::Configc::CNF_CLIENT_PORT;
 *CNF_GNUTAR_LIST_DIR = *Amanda::Configc::CNF_GNUTAR_LIST_DIR;
 *CNF_AMANDATES = *Amanda::Configc::CNF_AMANDATES;
 *CNF_MAILER = *Amanda::Configc::CNF_MAILER;
 *CNF_GNUTAR_LIST_DIR = *Amanda::Configc::CNF_GNUTAR_LIST_DIR;
 *CNF_AMANDATES = *Amanda::Configc::CNF_AMANDATES;
 *CNF_MAILER = *Amanda::Configc::CNF_MAILER;
@@ -131,6 +135,7 @@ package Amanda::Config;
 *CNF_CHANGERDEV = *Amanda::Configc::CNF_CHANGERDEV;
 *CNF_CHANGERFILE = *Amanda::Configc::CNF_CHANGERFILE;
 *CNF_LABELSTR = *Amanda::Configc::CNF_LABELSTR;
 *CNF_CHANGERDEV = *Amanda::Configc::CNF_CHANGERDEV;
 *CNF_CHANGERFILE = *Amanda::Configc::CNF_CHANGERFILE;
 *CNF_LABELSTR = *Amanda::Configc::CNF_LABELSTR;
+*CNF_AUTOLABEL = *Amanda::Configc::CNF_AUTOLABEL;
 *CNF_TAPELIST = *Amanda::Configc::CNF_TAPELIST;
 *CNF_DISKFILE = *Amanda::Configc::CNF_DISKFILE;
 *CNF_INFOFILE = *Amanda::Configc::CNF_INFOFILE;
 *CNF_TAPELIST = *Amanda::Configc::CNF_TAPELIST;
 *CNF_DISKFILE = *Amanda::Configc::CNF_DISKFILE;
 *CNF_INFOFILE = *Amanda::Configc::CNF_INFOFILE;
@@ -153,7 +158,6 @@ package Amanda::Config;
 *CNF_ETIMEOUT = *Amanda::Configc::CNF_ETIMEOUT;
 *CNF_DTIMEOUT = *Amanda::Configc::CNF_DTIMEOUT;
 *CNF_CTIMEOUT = *Amanda::Configc::CNF_CTIMEOUT;
 *CNF_ETIMEOUT = *Amanda::Configc::CNF_ETIMEOUT;
 *CNF_DTIMEOUT = *Amanda::Configc::CNF_DTIMEOUT;
 *CNF_CTIMEOUT = *Amanda::Configc::CNF_CTIMEOUT;
-*CNF_TAPEBUFS = *Amanda::Configc::CNF_TAPEBUFS;
 *CNF_DEVICE_OUTPUT_BUFFER_SIZE = *Amanda::Configc::CNF_DEVICE_OUTPUT_BUFFER_SIZE;
 *CNF_PRINTER = *Amanda::Configc::CNF_PRINTER;
 *CNF_AUTOFLUSH = *Amanda::Configc::CNF_AUTOFLUSH;
 *CNF_DEVICE_OUTPUT_BUFFER_SIZE = *Amanda::Configc::CNF_DEVICE_OUTPUT_BUFFER_SIZE;
 *CNF_PRINTER = *Amanda::Configc::CNF_PRINTER;
 *CNF_AUTOFLUSH = *Amanda::Configc::CNF_AUTOFLUSH;
@@ -176,6 +180,7 @@ package Amanda::Config;
 *CNF_CONNECT_TRIES = *Amanda::Configc::CNF_CONNECT_TRIES;
 *CNF_REQ_TRIES = *Amanda::Configc::CNF_REQ_TRIES;
 *CNF_DEBUG_AMANDAD = *Amanda::Configc::CNF_DEBUG_AMANDAD;
 *CNF_CONNECT_TRIES = *Amanda::Configc::CNF_CONNECT_TRIES;
 *CNF_REQ_TRIES = *Amanda::Configc::CNF_REQ_TRIES;
 *CNF_DEBUG_AMANDAD = *Amanda::Configc::CNF_DEBUG_AMANDAD;
+*CNF_DEBUG_RECOVERY = *Amanda::Configc::CNF_DEBUG_RECOVERY;
 *CNF_DEBUG_AMIDXTAPED = *Amanda::Configc::CNF_DEBUG_AMIDXTAPED;
 *CNF_DEBUG_AMINDEXD = *Amanda::Configc::CNF_DEBUG_AMINDEXD;
 *CNF_DEBUG_AMRECOVER = *Amanda::Configc::CNF_DEBUG_AMRECOVER;
 *CNF_DEBUG_AMIDXTAPED = *Amanda::Configc::CNF_DEBUG_AMIDXTAPED;
 *CNF_DEBUG_AMINDEXD = *Amanda::Configc::CNF_DEBUG_AMINDEXD;
 *CNF_DEBUG_AMRECOVER = *Amanda::Configc::CNF_DEBUG_AMRECOVER;
@@ -194,6 +199,10 @@ package Amanda::Config;
 *CNF_RESERVED_UDP_PORT = *Amanda::Configc::CNF_RESERVED_UDP_PORT;
 *CNF_RESERVED_TCP_PORT = *Amanda::Configc::CNF_RESERVED_TCP_PORT;
 *CNF_UNRESERVED_TCP_PORT = *Amanda::Configc::CNF_UNRESERVED_TCP_PORT;
 *CNF_RESERVED_UDP_PORT = *Amanda::Configc::CNF_RESERVED_UDP_PORT;
 *CNF_RESERVED_TCP_PORT = *Amanda::Configc::CNF_RESERVED_TCP_PORT;
 *CNF_UNRESERVED_TCP_PORT = *Amanda::Configc::CNF_UNRESERVED_TCP_PORT;
+*CNF_HOLDINGDISK = *Amanda::Configc::CNF_HOLDINGDISK;
+*CNF_SEND_AMREPORT_ON = *Amanda::Configc::CNF_SEND_AMREPORT_ON;
+*CNF_TAPER_PARALLEL_WRITE = *Amanda::Configc::CNF_TAPER_PARALLEL_WRITE;
+*CNF_RECOVERY_LIMIT = *Amanda::Configc::CNF_RECOVERY_LIMIT;
 *TAPETYPE_COMMENT = *Amanda::Configc::TAPETYPE_COMMENT;
 *TAPETYPE_LBL_TEMPL = *Amanda::Configc::TAPETYPE_LBL_TEMPL;
 *TAPETYPE_BLOCKSIZE = *Amanda::Configc::TAPETYPE_BLOCKSIZE;
 *TAPETYPE_COMMENT = *Amanda::Configc::TAPETYPE_COMMENT;
 *TAPETYPE_LBL_TEMPL = *Amanda::Configc::TAPETYPE_LBL_TEMPL;
 *TAPETYPE_BLOCKSIZE = *Amanda::Configc::TAPETYPE_BLOCKSIZE;
@@ -201,7 +210,10 @@ package Amanda::Config;
 *TAPETYPE_LENGTH = *Amanda::Configc::TAPETYPE_LENGTH;
 *TAPETYPE_FILEMARK = *Amanda::Configc::TAPETYPE_FILEMARK;
 *TAPETYPE_SPEED = *Amanda::Configc::TAPETYPE_SPEED;
 *TAPETYPE_LENGTH = *Amanda::Configc::TAPETYPE_LENGTH;
 *TAPETYPE_FILEMARK = *Amanda::Configc::TAPETYPE_FILEMARK;
 *TAPETYPE_SPEED = *Amanda::Configc::TAPETYPE_SPEED;
-*TAPETYPE_FILE_PAD = *Amanda::Configc::TAPETYPE_FILE_PAD;
+*TAPETYPE_PART_SIZE = *Amanda::Configc::TAPETYPE_PART_SIZE;
+*TAPETYPE_PART_CACHE_TYPE = *Amanda::Configc::TAPETYPE_PART_CACHE_TYPE;
+*TAPETYPE_PART_CACHE_DIR = *Amanda::Configc::TAPETYPE_PART_CACHE_DIR;
+*TAPETYPE_PART_CACHE_MAX_SIZE = *Amanda::Configc::TAPETYPE_PART_CACHE_MAX_SIZE;
 *DUMPTYPE_COMMENT = *Amanda::Configc::DUMPTYPE_COMMENT;
 *DUMPTYPE_PROGRAM = *Amanda::Configc::DUMPTYPE_PROGRAM;
 *DUMPTYPE_SRVCOMPPROG = *Amanda::Configc::DUMPTYPE_SRVCOMPPROG;
 *DUMPTYPE_COMMENT = *Amanda::Configc::DUMPTYPE_COMMENT;
 *DUMPTYPE_PROGRAM = *Amanda::Configc::DUMPTYPE_PROGRAM;
 *DUMPTYPE_SRVCOMPPROG = *Amanda::Configc::DUMPTYPE_SRVCOMPPROG;
@@ -210,8 +222,9 @@ package Amanda::Config;
 *DUMPTYPE_CLNT_ENCRYPT = *Amanda::Configc::DUMPTYPE_CLNT_ENCRYPT;
 *DUMPTYPE_AMANDAD_PATH = *Amanda::Configc::DUMPTYPE_AMANDAD_PATH;
 *DUMPTYPE_CLIENT_USERNAME = *Amanda::Configc::DUMPTYPE_CLIENT_USERNAME;
 *DUMPTYPE_CLNT_ENCRYPT = *Amanda::Configc::DUMPTYPE_CLNT_ENCRYPT;
 *DUMPTYPE_AMANDAD_PATH = *Amanda::Configc::DUMPTYPE_AMANDAD_PATH;
 *DUMPTYPE_CLIENT_USERNAME = *Amanda::Configc::DUMPTYPE_CLIENT_USERNAME;
+*DUMPTYPE_CLIENT_PORT = *Amanda::Configc::DUMPTYPE_CLIENT_PORT;
 *DUMPTYPE_SSH_KEYS = *Amanda::Configc::DUMPTYPE_SSH_KEYS;
 *DUMPTYPE_SSH_KEYS = *Amanda::Configc::DUMPTYPE_SSH_KEYS;
-*DUMPTYPE_SECURITY_DRIVER = *Amanda::Configc::DUMPTYPE_SECURITY_DRIVER;
+*DUMPTYPE_AUTH = *Amanda::Configc::DUMPTYPE_AUTH;
 *DUMPTYPE_EXCLUDE = *Amanda::Configc::DUMPTYPE_EXCLUDE;
 *DUMPTYPE_INCLUDE = *Amanda::Configc::DUMPTYPE_INCLUDE;
 *DUMPTYPE_PRIORITY = *Amanda::Configc::DUMPTYPE_PRIORITY;
 *DUMPTYPE_EXCLUDE = *Amanda::Configc::DUMPTYPE_EXCLUDE;
 *DUMPTYPE_INCLUDE = *Amanda::Configc::DUMPTYPE_INCLUDE;
 *DUMPTYPE_PRIORITY = *Amanda::Configc::DUMPTYPE_PRIORITY;
@@ -224,7 +237,7 @@ package Amanda::Config;
 *DUMPTYPE_BUMPMULT = *Amanda::Configc::DUMPTYPE_BUMPMULT;
 *DUMPTYPE_STARTTIME = *Amanda::Configc::DUMPTYPE_STARTTIME;
 *DUMPTYPE_STRATEGY = *Amanda::Configc::DUMPTYPE_STRATEGY;
 *DUMPTYPE_BUMPMULT = *Amanda::Configc::DUMPTYPE_BUMPMULT;
 *DUMPTYPE_STARTTIME = *Amanda::Configc::DUMPTYPE_STARTTIME;
 *DUMPTYPE_STRATEGY = *Amanda::Configc::DUMPTYPE_STRATEGY;
-*DUMPTYPE_ESTIMATE = *Amanda::Configc::DUMPTYPE_ESTIMATE;
+*DUMPTYPE_ESTIMATELIST = *Amanda::Configc::DUMPTYPE_ESTIMATELIST;
 *DUMPTYPE_COMPRESS = *Amanda::Configc::DUMPTYPE_COMPRESS;
 *DUMPTYPE_ENCRYPT = *Amanda::Configc::DUMPTYPE_ENCRYPT;
 *DUMPTYPE_SRV_DECRYPT_OPT = *Amanda::Configc::DUMPTYPE_SRV_DECRYPT_OPT;
 *DUMPTYPE_COMPRESS = *Amanda::Configc::DUMPTYPE_COMPRESS;
 *DUMPTYPE_ENCRYPT = *Amanda::Configc::DUMPTYPE_ENCRYPT;
 *DUMPTYPE_SRV_DECRYPT_OPT = *Amanda::Configc::DUMPTYPE_SRV_DECRYPT_OPT;
@@ -241,8 +254,11 @@ package Amanda::Config;
 *DUMPTYPE_IGNORE = *Amanda::Configc::DUMPTYPE_IGNORE;
 *DUMPTYPE_INDEX = *Amanda::Configc::DUMPTYPE_INDEX;
 *DUMPTYPE_APPLICATION = *Amanda::Configc::DUMPTYPE_APPLICATION;
 *DUMPTYPE_IGNORE = *Amanda::Configc::DUMPTYPE_IGNORE;
 *DUMPTYPE_INDEX = *Amanda::Configc::DUMPTYPE_INDEX;
 *DUMPTYPE_APPLICATION = *Amanda::Configc::DUMPTYPE_APPLICATION;
-*DUMPTYPE_PP_SCRIPTLIST = *Amanda::Configc::DUMPTYPE_PP_SCRIPTLIST;
+*DUMPTYPE_SCRIPTLIST = *Amanda::Configc::DUMPTYPE_SCRIPTLIST;
 *DUMPTYPE_PROPERTY = *Amanda::Configc::DUMPTYPE_PROPERTY;
 *DUMPTYPE_PROPERTY = *Amanda::Configc::DUMPTYPE_PROPERTY;
+*DUMPTYPE_DATA_PATH = *Amanda::Configc::DUMPTYPE_DATA_PATH;
+*DUMPTYPE_ALLOW_SPLIT = *Amanda::Configc::DUMPTYPE_ALLOW_SPLIT;
+*DUMPTYPE_RECOVERY_LIMIT = *Amanda::Configc::DUMPTYPE_RECOVERY_LIMIT;
 *INTER_COMMENT = *Amanda::Configc::INTER_COMMENT;
 *INTER_MAXUSAGE = *Amanda::Configc::INTER_MAXUSAGE;
 *HOLDING_COMMENT = *Amanda::Configc::HOLDING_COMMENT;
 *INTER_COMMENT = *Amanda::Configc::INTER_COMMENT;
 *INTER_MAXUSAGE = *Amanda::Configc::INTER_MAXUSAGE;
 *HOLDING_COMMENT = *Amanda::Configc::HOLDING_COMMENT;
@@ -257,6 +273,7 @@ package Amanda::Config;
 *PP_SCRIPT_PROPERTY = *Amanda::Configc::PP_SCRIPT_PROPERTY;
 *PP_SCRIPT_EXECUTE_ON = *Amanda::Configc::PP_SCRIPT_EXECUTE_ON;
 *PP_SCRIPT_EXECUTE_WHERE = *Amanda::Configc::PP_SCRIPT_EXECUTE_WHERE;
 *PP_SCRIPT_PROPERTY = *Amanda::Configc::PP_SCRIPT_PROPERTY;
 *PP_SCRIPT_EXECUTE_ON = *Amanda::Configc::PP_SCRIPT_EXECUTE_ON;
 *PP_SCRIPT_EXECUTE_WHERE = *Amanda::Configc::PP_SCRIPT_EXECUTE_WHERE;
+*PP_SCRIPT_ORDER = *Amanda::Configc::PP_SCRIPT_ORDER;
 *DEVICE_CONFIG_COMMENT = *Amanda::Configc::DEVICE_CONFIG_COMMENT;
 *DEVICE_CONFIG_TAPEDEV = *Amanda::Configc::DEVICE_CONFIG_TAPEDEV;
 *DEVICE_CONFIG_DEVICE_PROPERTY = *Amanda::Configc::DEVICE_CONFIG_DEVICE_PROPERTY;
 *DEVICE_CONFIG_COMMENT = *Amanda::Configc::DEVICE_CONFIG_COMMENT;
 *DEVICE_CONFIG_TAPEDEV = *Amanda::Configc::DEVICE_CONFIG_TAPEDEV;
 *DEVICE_CONFIG_DEVICE_PROPERTY = *Amanda::Configc::DEVICE_CONFIG_DEVICE_PROPERTY;
@@ -265,6 +282,8 @@ package Amanda::Config;
 *CHANGER_CONFIG_TPCHANGER = *Amanda::Configc::CHANGER_CONFIG_TPCHANGER;
 *CHANGER_CONFIG_CHANGERDEV = *Amanda::Configc::CHANGER_CONFIG_CHANGERDEV;
 *CHANGER_CONFIG_CHANGERFILE = *Amanda::Configc::CHANGER_CONFIG_CHANGERFILE;
 *CHANGER_CONFIG_TPCHANGER = *Amanda::Configc::CHANGER_CONFIG_TPCHANGER;
 *CHANGER_CONFIG_CHANGERDEV = *Amanda::Configc::CHANGER_CONFIG_CHANGERDEV;
 *CHANGER_CONFIG_CHANGERFILE = *Amanda::Configc::CHANGER_CONFIG_CHANGERFILE;
+*CHANGER_CONFIG_PROPERTY = *Amanda::Configc::CHANGER_CONFIG_PROPERTY;
+*CHANGER_CONFIG_DEVICE_PROPERTY = *Amanda::Configc::CHANGER_CONFIG_DEVICE_PROPERTY;
 *HOLD_NEVER = *Amanda::Configc::HOLD_NEVER;
 *HOLD_AUTO = *Amanda::Configc::HOLD_AUTO;
 *HOLD_REQUIRED = *Amanda::Configc::HOLD_REQUIRED;
 *HOLD_NEVER = *Amanda::Configc::HOLD_NEVER;
 *HOLD_AUTO = *Amanda::Configc::HOLD_AUTO;
 *HOLD_REQUIRED = *Amanda::Configc::HOLD_REQUIRED;
@@ -289,6 +308,10 @@ package Amanda::Config;
 *ES_CLIENT = *Amanda::Configc::ES_CLIENT;
 *ES_SERVER = *Amanda::Configc::ES_SERVER;
 *ES_CALCSIZE = *Amanda::Configc::ES_CALCSIZE;
 *ES_CLIENT = *Amanda::Configc::ES_CLIENT;
 *ES_SERVER = *Amanda::Configc::ES_SERVER;
 *ES_CALCSIZE = *Amanda::Configc::ES_CALCSIZE;
+*AL_OTHER_CONFIG = *Amanda::Configc::AL_OTHER_CONFIG;
+*AL_NON_AMANDA = *Amanda::Configc::AL_NON_AMANDA;
+*AL_VOLUME_ERROR = *Amanda::Configc::AL_VOLUME_ERROR;
+*AL_EMPTY = *Amanda::Configc::AL_EMPTY;
 *ALGO_FIRST = *Amanda::Configc::ALGO_FIRST;
 *ALGO_FIRSTFIT = *Amanda::Configc::ALGO_FIRSTFIT;
 *ALGO_LARGEST = *Amanda::Configc::ALGO_LARGEST;
 *ALGO_FIRST = *Amanda::Configc::ALGO_FIRST;
 *ALGO_FIRSTFIT = *Amanda::Configc::ALGO_FIRSTFIT;
 *ALGO_LARGEST = *Amanda::Configc::ALGO_LARGEST;
@@ -311,7 +334,13 @@ package Amanda::Config;
 *SEND_AMREPORT_STRANGE = *Amanda::Configc::SEND_AMREPORT_STRANGE;
 *SEND_AMREPORT_ERROR = *Amanda::Configc::SEND_AMREPORT_ERROR;
 *SEND_AMREPORT_NEVER = *Amanda::Configc::SEND_AMREPORT_NEVER;
 *SEND_AMREPORT_STRANGE = *Amanda::Configc::SEND_AMREPORT_STRANGE;
 *SEND_AMREPORT_ERROR = *Amanda::Configc::SEND_AMREPORT_ERROR;
 *SEND_AMREPORT_NEVER = *Amanda::Configc::SEND_AMREPORT_NEVER;
+*DATA_PATH_AMANDA = *Amanda::Configc::DATA_PATH_AMANDA;
+*DATA_PATH_DIRECTTCP = *Amanda::Configc::DATA_PATH_DIRECTTCP;
+*PART_CACHE_TYPE_NONE = *Amanda::Configc::PART_CACHE_TYPE_NONE;
+*PART_CACHE_TYPE_DISK = *Amanda::Configc::PART_CACHE_TYPE_DISK;
+*PART_CACHE_TYPE_MEMORY = *Amanda::Configc::PART_CACHE_TYPE_MEMORY;
 *debug_amandad = *Amanda::Configc::debug_amandad;
 *debug_amandad = *Amanda::Configc::debug_amandad;
+*debug_recovery = *Amanda::Configc::debug_recovery;
 *debug_amidxtaped = *Amanda::Configc::debug_amidxtaped;
 *debug_amindexd = *Amanda::Configc::debug_amindexd;
 *debug_amrecover = *Amanda::Configc::debug_amrecover;
 *debug_amidxtaped = *Amanda::Configc::debug_amidxtaped;
 *debug_amindexd = *Amanda::Configc::debug_amindexd;
 *debug_amrecover = *Amanda::Configc::debug_amrecover;
@@ -338,25 +367,29 @@ package Amanda::Config;
 @EXPORT_OK = ();
 %EXPORT_TAGS = ();
 
 @EXPORT_OK = ();
 %EXPORT_TAGS = ();
 
+
 =head1 NAME
 
 Amanda::Config - access to Amanda configuration parameters
 
 =head1 SYNOPSIS
 
 =head1 NAME
 
 Amanda::Config - access to Amanda configuration parameters
 
 =head1 SYNOPSIS
 
-  use Amanda::Config qw( :init :getconf );
-
-  config_init($CONFIG_INIT_EXPLICIT_NAME, $ARGV[1])
-    or die("errors processing config file " . $Amanda::Config::get_config_filename());
+    use Amanda::Config qw( :init :getconf );
 
 
-  print "tape device is ", getconf($CNF_TAPEDEV), "\n";
-
-This API closely parallels the C API.  See F<conffile.h> for details
-on the functions and constants available here.
+    my $config_name = shift @ARGV;
+    config_init($CONFIG_INIT_EXPLICIT_NAME, $config_name);
+    apply_config_overrides($config_overrides);
+    my ($cfgerr_level, @cfgerr_errors) = config_errors();
+    if ($cfgerr_level >= $CFGERR_WARNINGS) {
+       config_print_errors();
+       if ($cfgerr_level >= $CFGERR_ERRORS) {
+           die("errors processing config file");
+       }
+    }
 
 
-=head1 API STATUS
+    print "tape device is ", getconf($CNF_TAPEDEV), "\n";
 
 
-Stable
+This API closely parallels the C API.
 
 =head1 INITIALIZATION
 
 
 =head1 INITIALIZATION
 
@@ -376,8 +409,9 @@ of flags that affect its behavior.  These flags can be OR'd together.
 
 =over
 
 
 =over
 
-=item If C<CONFIG_INIT_EXPLICIT_NAME> is given, then the C<$name>
-parameter can contain the name of a configuration to load.
+=item If C<CONFIG_INIT_EXPLICIT_NAME> is given, then the C<$name> parameter can
+contain the name of a configuration to load.  Note that if the parameter is
+C<".">, this is equivalent to C<CONFIG_INIT_USE_CWD>.
 
 =item If C<CONFIG_INIT_USE_CWD> is given, and if the current directory
 contains C<amanda.conf>, then that file is loaded.
 
 =item If C<CONFIG_INIT_USE_CWD> is given, and if the current directory
 contains C<amanda.conf>, then that file is loaded.
@@ -407,10 +441,10 @@ C<get_config_filename()>, respectively.
 This module collects configuration errors and warnings in a list, and also
 tracks the overall error level with an enumeration: C<$CFGERR_OK>,
 C<$CFGERR_WARNINGS>, and C<$CFGERR_ERRORS>.  C<config_init> and
 This module collects configuration errors and warnings in a list, and also
 tracks the overall error level with an enumeration: C<$CFGERR_OK>,
 C<$CFGERR_WARNINGS>, and C<$CFGERR_ERRORS>.  C<config_init> and
-C<apply_config_overwrites> both return the current level.  The level and the
+C<apply_config_overrides> both return the current level.  The level and the
 list of error messages are available from C<config_errors>:
 
 list of error messages are available from C<config_errors>:
 
-  my ($cfgerr_level, @errors) = Amanda::Configconfig_errors();
+  my ($cfgerr_level, @errors) = Amanda::Config::config_errors();
 
 As a convenience, C<config_print_errors> will print all error messages to
 stderr.  The error state can be cleared with C<config_clear_errors>.
 
 As a convenience, C<config_print_errors> will print all error messages to
 stderr.  The error state can be cleared with C<config_clear_errors>.
@@ -420,28 +454,28 @@ stderr.  The error state can be cleared with C<config_clear_errors>.
 Most Amanda applications accept the command-line option C<-o>
 to "overwrite" configuration values in C<amanda.conf>.  In Perl
 applications, these options should be parsed with L<Getopt::Long|Getopt::Long>, with
 Most Amanda applications accept the command-line option C<-o>
 to "overwrite" configuration values in C<amanda.conf>.  In Perl
 applications, these options should be parsed with L<Getopt::Long|Getopt::Long>, with
-the action being a call to C<add_config_overwrite_opt>.  For example:
+the action being a call to C<add_config_override_opt>.  For example:
 
 
-  my $config_overwrites = new_config_overwrites($#ARGV+1);
+  my $config_overrides = new_config_overrides($#ARGV+1);
     GetOptions(
        # ...
     GetOptions(
        # ...
-       'o=s' => sub { add_config_overwrite_opt($config_overwrites, $_[1]); },
+       'o=s' => sub { add_config_override_opt($config_overrides, $_[1]); },
     ) or usage();
   my $cfg_ok = config_init($CONFIG_INIT_EXPLICIT_NAME | $CONFIG_INIT_USE_CWD, $config_name);
     ) or usage();
   my $cfg_ok = config_init($CONFIG_INIT_EXPLICIT_NAME | $CONFIG_INIT_USE_CWD, $config_name);
-  apply_config_overwrites($config_overwrites);
+  apply_config_overrides($config_overrides);
 
 
-C<new_config_overwrites($size_estimate)> creates a new
+C<new_config_overrides($size_estimate)> creates a new
 overwrites object, using the given size as an estimate of
 the number of items it will contain (C<$#ARGC/2> is a good
 estimate).  Individual configuration options are then added via
 overwrites object, using the given size as an estimate of
 the number of items it will contain (C<$#ARGC/2> is a good
 estimate).  Individual configuration options are then added via
-C<add_config_overwrite($co, $key, $value)> (which takes a key/value
-pair) or C<add_config_overwrite_opt($co, $optarg)>, which parses a
+C<add_config_override($co, $key, $value)> (which takes a key/value
+pair) or C<add_config_override_opt($co, $optarg)>, which parses a
 string following C<-o> on the command line.
 
 Once the overwrites are gathered, they are applied with
 string following C<-o> on the command line.
 
 Once the overwrites are gathered, they are applied with
-C<apply_config_overwrites($co)>, which applies the overwrites to the
+C<apply_config_overrides($co)>, which applies the overwrites to the
 active configuration.  No further operations can be performed on the
 active configuration.  No further operations can be performed on the
-overwrites object after C<apply_config_overwrites> has been called.
+overwrites object after C<apply_config_overrides> has been called.
 
 The utility function C<get_config_options()> returns a list of
 command-line arguments to represent any overwrites that were used
 
 The utility function C<get_config_options()> returns a list of
 command-line arguments to represent any overwrites that were used
@@ -454,12 +488,14 @@ Amanda configurations consist of "global" parameters and several
 sets of "subsections" -- one set for dumptypes, one for tapetypes,
 and so on.
 
 sets of "subsections" -- one set for dumptypes, one for tapetypes,
 and so on.
 
-All of the global parameters are represented by a constant beginning
-with C<$CNF_>, e.g., C<$CNF_LABELSTR>.  The function C<getconf($cnf)>
-returns the value of parameter C<$cnf>, in whatever format is
-appropriate for the parameter.  C<getconf_seen($cnf)> returns a true
-value if C<$cnf> was seen in the configuration file.  If it was not
-seen, then it will have its default value.
+All of the global parameters are represented by a constant beginning with
+C<$CNF_>, e.g., C<$CNF_LABELSTR>.  The function C<getconf($cnf)> returns the
+value of parameter C<$cnf>, in whatever format is appropriate for the parameter
+(see DATA FORMATS, below).  C<getconf_seen($cnf)> returns a true value if
+C<$cnf> was seen in the configuration file.  If it was not seen, then it will
+have its default value.  C<getconf_linenum($cnf)> returns the line number in
+the configuration file where it is set, 0 if it is not in a configuration file,
+or -2 if it is set in a command line argument.
 
 Some parameters have enumerated types.  The values for those
 enumerations are available from this module with the same name as
 
 Some parameters have enumerated types.  The values for those
 enumerations are available from this module with the same name as
@@ -467,7 +503,7 @@ in C<conffile.h>.  For example, C<$CNF_TAPERALGO> will yield a value
 from the enumeration C<taperalgo_t>, the constants for which all
 begin with C<$ALGO_>.  See C<conffile.h> for the details.
 
 from the enumeration C<taperalgo_t>, the constants for which all
 begin with C<$ALGO_>.  See C<conffile.h> for the details.
 
-Each subsection type has the following functions:
+Each subsection type C<TYP> has the following functions:
 
 =over
 
 
 =over
 
@@ -531,17 +567,82 @@ with constants beginning with C<$CHANGER_CONFIG_>.
 
 See C<conffile.h> for the names of the constants themselves.
 
 
 See C<conffile.h> for the names of the constants themselves.
 
+=head2 DATA FORMATS
+
+Each configuration parameter has a "conftype", as assigned in
+C<common-src/conffile.c>.  The translation of most of these types into Perl
+values is straightforward:
+
+  CONFTYPE_INT                        Math::BigInt
+  CONFTYPE_INT64                      Math::BigInt
+  CONFTYPE_REAL                       floating-point value
+  CONFTYPE_STR                        string
+  CONFTYPE_IDENT                      string
+  CONFTYPE_TIME                       Math::BigInt (epoch value)
+  CONFTYPE_SIZE                       Math::BigInt
+  CONFTYPE_BOOLEAN                    Math::BigInt
+  CONFTYPE_COMPRESS                   Math::BigInt
+  CONFTYPE_ENCRYPT                    Math::BigInt
+  CONFTYPE_HOLDING                    Math::BigInt
+  CONFTYPE_ESTIMATELIST               [ Math::BigInt, .. ]
+  CONFTYPE_STRATEGY                   Math::BigInt
+  CONFTYPE_TAPERALGO                  Math::BigInt
+  CONFTYPE_PRIORITY                   Math::BigInt
+  CONFTYPE_RATE                       float, float
+  CONFTYPE_INTRANGE                   Math::BigInt, Math::BigInt
+  CONFTYPE_APPLICATION                string
+  CONFTYPE_EXECUTE_ON                 string
+  CONFTYPE_EXECUTE_WHERE              Math::BigInt
+  CONFTYPE_SEND_AMREPORT_ON           Math::BigInt
+  CONFTYPE_IDENTLIST                  [ string, .. ]
+  CONFTYPE_PART_CACHE_TYPE           Math::BigInt
+  CONFTYPE_RECOVERY_LIMIT             [ string, .. ] (undef if not specified;
+                                           undef in the list means same-host)
+
+Note that C<CONFTYPE_INTRANGE> and C<CONFTYPE_RATE> each return two values, not
+an array reference.
+
+Include and exclude lists with type C<CONFTYPE_EXINCLUDE> return a hash giving
+all listed filenames (in the C<list> key), include/exclude files (C<files>),
+and a boolean indicating that the list is optional (C<optional>):
+
+  { list => [ str, .. ], file => [ str, .. ], optional => Math::BigInt }
+
+Properties are represented as a hash of hashes.  The keys are the property
+names, converted to ASCII lowercase.  Each property has a C<values> array
+giving all values specified for this property, as well as booleans C<priority>
+and C<append> that are true if the corresponding keyword was supplied.
+
+  { prop1 => { values => [ str, .. ] priority => int, append => int },
+    prop2 => { .. } .. }
+
+Note that integer types of all sizes become C<Math::BigInt> objects rather than
+Perl integers, as is the habit throughout Amanda.
+
+The C<CNF_AUTOLABEL> value is a hash with the following keys
+
+  template     label template, or undef
+  other_config boolean
+  non_amanda   boolean
+  volume_error boolean
+  empty                boolean
+
+=head2 OTHER ACCESS
+
 Parameter values are available by name from C<getconf_byname($name)> and
 C<getconf_byname_strs($name, $str_needs_quotes)>.  These functions implement
 the C<TYP:NAME:PARAM> syntax advertised by C<amgetconf> to access values in
 Parameter values are available by name from C<getconf_byname($name)> and
 C<getconf_byname_strs($name, $str_needs_quotes)>.  These functions implement
 the C<TYP:NAME:PARAM> syntax advertised by C<amgetconf> to access values in
-subsections.  The first function returns a perl value, while the second returns
-a string suitable for use in C<amanda.conf>, including quotes around strings if
-C<$str_needs_quotes> is true.
+subsections.  The first function returns a Perl value (see DATA FORMATS,
+above), while the second returns a list of strings suitable for use in
+C<amanda.conf>, including quotes around strings if C<$str_needs_quotes> is
+true.
 
 C<getconf_list($typ)> returns a list of the names of all subsections of the
 given type.  C<%subsection_names> is a hash whose keys are allowed subsection
 names.
 
 
 C<getconf_list($typ)> returns a list of the names of all subsections of the
 given type.  C<%subsection_names> is a hash whose keys are allowed subsection
 names.
 
+=head2 DERIVED VALUES
+
 The C<$CNF_DISPLAYUNIT> implies a certain divisor to convert from
 kilobytes to the desired unit.  This divisor is available from
 C<getconf_unit_divisor()>.  Note carefully that it is a I<divisor>
 The C<$CNF_DISPLAYUNIT> implies a certain divisor to convert from
 kilobytes to the desired unit.  This divisor is available from
 C<getconf_unit_divisor()>.  Note carefully that it is a I<divisor>
@@ -571,8 +672,21 @@ Several parts of Amanda need to convert unit modifier value like
 returns the unit multiplier for such a string.  For example, "mbytes"
 is converted to 1048576 (1024*1024).
 
 returns the unit multiplier for such a string.  For example, "mbytes"
 is converted to 1048576 (1024*1024).
 
+C<string_to_boolean()> takes a string and returns 0 if it matches any of
+Amanda's names for false, or 1 if matches a name for true. If it can't be
+interpreted, C<undef> is returned.
+
+C<amandaify_property_name()> converts a string into Amanda's property style:
+all lower-case and with "-" replacing "_".
+
+=head1 CONSTANTS
+
+This section lists all of the configuration parameter constants defined in this
+module.  All of these constants are available with the C<:getconf> export tag.
+
 =cut
 
 =cut
 
+
 push @EXPORT_OK, qw(confparm_key_to_string);
 push @{$EXPORT_TAGS{"confparm_key"}}, qw(confparm_key_to_string);
 
 push @EXPORT_OK, qw(confparm_key_to_string);
 push @{$EXPORT_TAGS{"confparm_key"}}, qw(confparm_key_to_string);
 
@@ -594,418 +708,20 @@ sub confparm_key_to_string {
     return $enumval;
 }
 
     return $enumval;
 }
 
-push @EXPORT_OK, qw($CNF_ORG);
-push @{$EXPORT_TAGS{"confparm_key"}}, qw($CNF_ORG);
-
-$_confparm_key_VALUES{"CNF_ORG"} = $CNF_ORG;
-
-push @EXPORT_OK, qw($CNF_CONF);
-push @{$EXPORT_TAGS{"confparm_key"}}, qw($CNF_CONF);
-
-$_confparm_key_VALUES{"CNF_CONF"} = $CNF_CONF;
-
-push @EXPORT_OK, qw($CNF_INDEX_SERVER);
-push @{$EXPORT_TAGS{"confparm_key"}}, qw($CNF_INDEX_SERVER);
-
-$_confparm_key_VALUES{"CNF_INDEX_SERVER"} = $CNF_INDEX_SERVER;
-
-push @EXPORT_OK, qw($CNF_TAPE_SERVER);
-push @{$EXPORT_TAGS{"confparm_key"}}, qw($CNF_TAPE_SERVER);
-
-$_confparm_key_VALUES{"CNF_TAPE_SERVER"} = $CNF_TAPE_SERVER;
-
-push @EXPORT_OK, qw($CNF_AUTH);
-push @{$EXPORT_TAGS{"confparm_key"}}, qw($CNF_AUTH);
-
-$_confparm_key_VALUES{"CNF_AUTH"} = $CNF_AUTH;
-
-push @EXPORT_OK, qw($CNF_SSH_KEYS);
-push @{$EXPORT_TAGS{"confparm_key"}}, qw($CNF_SSH_KEYS);
-
-$_confparm_key_VALUES{"CNF_SSH_KEYS"} = $CNF_SSH_KEYS;
-
-push @EXPORT_OK, qw($CNF_AMANDAD_PATH);
-push @{$EXPORT_TAGS{"confparm_key"}}, qw($CNF_AMANDAD_PATH);
-
-$_confparm_key_VALUES{"CNF_AMANDAD_PATH"} = $CNF_AMANDAD_PATH;
-
-push @EXPORT_OK, qw($CNF_CLIENT_USERNAME);
-push @{$EXPORT_TAGS{"confparm_key"}}, qw($CNF_CLIENT_USERNAME);
-
-$_confparm_key_VALUES{"CNF_CLIENT_USERNAME"} = $CNF_CLIENT_USERNAME;
-
-push @EXPORT_OK, qw($CNF_GNUTAR_LIST_DIR);
-push @{$EXPORT_TAGS{"confparm_key"}}, qw($CNF_GNUTAR_LIST_DIR);
-
-$_confparm_key_VALUES{"CNF_GNUTAR_LIST_DIR"} = $CNF_GNUTAR_LIST_DIR;
-
-push @EXPORT_OK, qw($CNF_AMANDATES);
-push @{$EXPORT_TAGS{"confparm_key"}}, qw($CNF_AMANDATES);
-
-$_confparm_key_VALUES{"CNF_AMANDATES"} = $CNF_AMANDATES;
-
-push @EXPORT_OK, qw($CNF_MAILER);
-push @{$EXPORT_TAGS{"confparm_key"}}, qw($CNF_MAILER);
-
-$_confparm_key_VALUES{"CNF_MAILER"} = $CNF_MAILER;
-
-push @EXPORT_OK, qw($CNF_MAILTO);
-push @{$EXPORT_TAGS{"confparm_key"}}, qw($CNF_MAILTO);
-
-$_confparm_key_VALUES{"CNF_MAILTO"} = $CNF_MAILTO;
-
-push @EXPORT_OK, qw($CNF_DUMPUSER);
-push @{$EXPORT_TAGS{"confparm_key"}}, qw($CNF_DUMPUSER);
-
-$_confparm_key_VALUES{"CNF_DUMPUSER"} = $CNF_DUMPUSER;
-
-push @EXPORT_OK, qw($CNF_TAPEDEV);
-push @{$EXPORT_TAGS{"confparm_key"}}, qw($CNF_TAPEDEV);
-
-$_confparm_key_VALUES{"CNF_TAPEDEV"} = $CNF_TAPEDEV;
-
-push @EXPORT_OK, qw($CNF_DEVICE_PROPERTY);
-push @{$EXPORT_TAGS{"confparm_key"}}, qw($CNF_DEVICE_PROPERTY);
-
-$_confparm_key_VALUES{"CNF_DEVICE_PROPERTY"} = $CNF_DEVICE_PROPERTY;
-
-push @EXPORT_OK, qw($CNF_PROPERTY);
-push @{$EXPORT_TAGS{"confparm_key"}}, qw($CNF_PROPERTY);
-
-$_confparm_key_VALUES{"CNF_PROPERTY"} = $CNF_PROPERTY;
-
-push @EXPORT_OK, qw($CNF_CHANGERDEV);
-push @{$EXPORT_TAGS{"confparm_key"}}, qw($CNF_CHANGERDEV);
-
-$_confparm_key_VALUES{"CNF_CHANGERDEV"} = $CNF_CHANGERDEV;
-
-push @EXPORT_OK, qw($CNF_CHANGERFILE);
-push @{$EXPORT_TAGS{"confparm_key"}}, qw($CNF_CHANGERFILE);
-
-$_confparm_key_VALUES{"CNF_CHANGERFILE"} = $CNF_CHANGERFILE;
-
-push @EXPORT_OK, qw($CNF_LABELSTR);
-push @{$EXPORT_TAGS{"confparm_key"}}, qw($CNF_LABELSTR);
-
-$_confparm_key_VALUES{"CNF_LABELSTR"} = $CNF_LABELSTR;
-
-push @EXPORT_OK, qw($CNF_TAPELIST);
-push @{$EXPORT_TAGS{"confparm_key"}}, qw($CNF_TAPELIST);
-
-$_confparm_key_VALUES{"CNF_TAPELIST"} = $CNF_TAPELIST;
-
-push @EXPORT_OK, qw($CNF_DISKFILE);
-push @{$EXPORT_TAGS{"confparm_key"}}, qw($CNF_DISKFILE);
-
-$_confparm_key_VALUES{"CNF_DISKFILE"} = $CNF_DISKFILE;
-
-push @EXPORT_OK, qw($CNF_INFOFILE);
-push @{$EXPORT_TAGS{"confparm_key"}}, qw($CNF_INFOFILE);
-
-$_confparm_key_VALUES{"CNF_INFOFILE"} = $CNF_INFOFILE;
-
-push @EXPORT_OK, qw($CNF_LOGDIR);
-push @{$EXPORT_TAGS{"confparm_key"}}, qw($CNF_LOGDIR);
-
-$_confparm_key_VALUES{"CNF_LOGDIR"} = $CNF_LOGDIR;
-
-push @EXPORT_OK, qw($CNF_INDEXDIR);
-push @{$EXPORT_TAGS{"confparm_key"}}, qw($CNF_INDEXDIR);
-
-$_confparm_key_VALUES{"CNF_INDEXDIR"} = $CNF_INDEXDIR;
-
-push @EXPORT_OK, qw($CNF_TAPETYPE);
-push @{$EXPORT_TAGS{"confparm_key"}}, qw($CNF_TAPETYPE);
-
-$_confparm_key_VALUES{"CNF_TAPETYPE"} = $CNF_TAPETYPE;
-
-push @EXPORT_OK, qw($CNF_DUMPCYCLE);
-push @{$EXPORT_TAGS{"confparm_key"}}, qw($CNF_DUMPCYCLE);
-
-$_confparm_key_VALUES{"CNF_DUMPCYCLE"} = $CNF_DUMPCYCLE;
-
-push @EXPORT_OK, qw($CNF_RUNSPERCYCLE);
-push @{$EXPORT_TAGS{"confparm_key"}}, qw($CNF_RUNSPERCYCLE);
-
-$_confparm_key_VALUES{"CNF_RUNSPERCYCLE"} = $CNF_RUNSPERCYCLE;
-
-push @EXPORT_OK, qw($CNF_TAPECYCLE);
-push @{$EXPORT_TAGS{"confparm_key"}}, qw($CNF_TAPECYCLE);
-
-$_confparm_key_VALUES{"CNF_TAPECYCLE"} = $CNF_TAPECYCLE;
-
-push @EXPORT_OK, qw($CNF_NETUSAGE);
-push @{$EXPORT_TAGS{"confparm_key"}}, qw($CNF_NETUSAGE);
-
-$_confparm_key_VALUES{"CNF_NETUSAGE"} = $CNF_NETUSAGE;
-
-push @EXPORT_OK, qw($CNF_INPARALLEL);
-push @{$EXPORT_TAGS{"confparm_key"}}, qw($CNF_INPARALLEL);
-
-$_confparm_key_VALUES{"CNF_INPARALLEL"} = $CNF_INPARALLEL;
-
-push @EXPORT_OK, qw($CNF_DUMPORDER);
-push @{$EXPORT_TAGS{"confparm_key"}}, qw($CNF_DUMPORDER);
-
-$_confparm_key_VALUES{"CNF_DUMPORDER"} = $CNF_DUMPORDER;
-
-push @EXPORT_OK, qw($CNF_BUMPPERCENT);
-push @{$EXPORT_TAGS{"confparm_key"}}, qw($CNF_BUMPPERCENT);
-
-$_confparm_key_VALUES{"CNF_BUMPPERCENT"} = $CNF_BUMPPERCENT;
-
-push @EXPORT_OK, qw($CNF_BUMPSIZE);
-push @{$EXPORT_TAGS{"confparm_key"}}, qw($CNF_BUMPSIZE);
-
-$_confparm_key_VALUES{"CNF_BUMPSIZE"} = $CNF_BUMPSIZE;
-
-push @EXPORT_OK, qw($CNF_BUMPMULT);
-push @{$EXPORT_TAGS{"confparm_key"}}, qw($CNF_BUMPMULT);
-
-$_confparm_key_VALUES{"CNF_BUMPMULT"} = $CNF_BUMPMULT;
-
-push @EXPORT_OK, qw($CNF_BUMPDAYS);
-push @{$EXPORT_TAGS{"confparm_key"}}, qw($CNF_BUMPDAYS);
-
-$_confparm_key_VALUES{"CNF_BUMPDAYS"} = $CNF_BUMPDAYS;
-
-push @EXPORT_OK, qw($CNF_TPCHANGER);
-push @{$EXPORT_TAGS{"confparm_key"}}, qw($CNF_TPCHANGER);
-
-$_confparm_key_VALUES{"CNF_TPCHANGER"} = $CNF_TPCHANGER;
-
-push @EXPORT_OK, qw($CNF_RUNTAPES);
-push @{$EXPORT_TAGS{"confparm_key"}}, qw($CNF_RUNTAPES);
-
-$_confparm_key_VALUES{"CNF_RUNTAPES"} = $CNF_RUNTAPES;
-
-push @EXPORT_OK, qw($CNF_MAXDUMPS);
-push @{$EXPORT_TAGS{"confparm_key"}}, qw($CNF_MAXDUMPS);
-
-$_confparm_key_VALUES{"CNF_MAXDUMPS"} = $CNF_MAXDUMPS;
-
-push @EXPORT_OK, qw($CNF_ETIMEOUT);
-push @{$EXPORT_TAGS{"confparm_key"}}, qw($CNF_ETIMEOUT);
-
-$_confparm_key_VALUES{"CNF_ETIMEOUT"} = $CNF_ETIMEOUT;
-
-push @EXPORT_OK, qw($CNF_DTIMEOUT);
-push @{$EXPORT_TAGS{"confparm_key"}}, qw($CNF_DTIMEOUT);
-
-$_confparm_key_VALUES{"CNF_DTIMEOUT"} = $CNF_DTIMEOUT;
-
-push @EXPORT_OK, qw($CNF_CTIMEOUT);
-push @{$EXPORT_TAGS{"confparm_key"}}, qw($CNF_CTIMEOUT);
-
-$_confparm_key_VALUES{"CNF_CTIMEOUT"} = $CNF_CTIMEOUT;
-
-push @EXPORT_OK, qw($CNF_TAPEBUFS);
-push @{$EXPORT_TAGS{"confparm_key"}}, qw($CNF_TAPEBUFS);
-
-$_confparm_key_VALUES{"CNF_TAPEBUFS"} = $CNF_TAPEBUFS;
-
-push @EXPORT_OK, qw($CNF_DEVICE_OUTPUT_BUFFER_SIZE);
-push @{$EXPORT_TAGS{"confparm_key"}}, qw($CNF_DEVICE_OUTPUT_BUFFER_SIZE);
-
-$_confparm_key_VALUES{"CNF_DEVICE_OUTPUT_BUFFER_SIZE"} = $CNF_DEVICE_OUTPUT_BUFFER_SIZE;
-
-push @EXPORT_OK, qw($CNF_PRINTER);
-push @{$EXPORT_TAGS{"confparm_key"}}, qw($CNF_PRINTER);
-
-$_confparm_key_VALUES{"CNF_PRINTER"} = $CNF_PRINTER;
-
-push @EXPORT_OK, qw($CNF_AUTOFLUSH);
-push @{$EXPORT_TAGS{"confparm_key"}}, qw($CNF_AUTOFLUSH);
-
-$_confparm_key_VALUES{"CNF_AUTOFLUSH"} = $CNF_AUTOFLUSH;
-
-push @EXPORT_OK, qw($CNF_RESERVE);
-push @{$EXPORT_TAGS{"confparm_key"}}, qw($CNF_RESERVE);
-
-$_confparm_key_VALUES{"CNF_RESERVE"} = $CNF_RESERVE;
-
-push @EXPORT_OK, qw($CNF_MAXDUMPSIZE);
-push @{$EXPORT_TAGS{"confparm_key"}}, qw($CNF_MAXDUMPSIZE);
-
-$_confparm_key_VALUES{"CNF_MAXDUMPSIZE"} = $CNF_MAXDUMPSIZE;
-
-push @EXPORT_OK, qw($CNF_COLUMNSPEC);
-push @{$EXPORT_TAGS{"confparm_key"}}, qw($CNF_COLUMNSPEC);
-
-$_confparm_key_VALUES{"CNF_COLUMNSPEC"} = $CNF_COLUMNSPEC;
-
-push @EXPORT_OK, qw($CNF_AMRECOVER_DO_FSF);
-push @{$EXPORT_TAGS{"confparm_key"}}, qw($CNF_AMRECOVER_DO_FSF);
-
-$_confparm_key_VALUES{"CNF_AMRECOVER_DO_FSF"} = $CNF_AMRECOVER_DO_FSF;
-
-push @EXPORT_OK, qw($CNF_AMRECOVER_CHECK_LABEL);
-push @{$EXPORT_TAGS{"confparm_key"}}, qw($CNF_AMRECOVER_CHECK_LABEL);
-
-$_confparm_key_VALUES{"CNF_AMRECOVER_CHECK_LABEL"} = $CNF_AMRECOVER_CHECK_LABEL;
-
-push @EXPORT_OK, qw($CNF_AMRECOVER_CHANGER);
-push @{$EXPORT_TAGS{"confparm_key"}}, qw($CNF_AMRECOVER_CHANGER);
-
-$_confparm_key_VALUES{"CNF_AMRECOVER_CHANGER"} = $CNF_AMRECOVER_CHANGER;
-
-push @EXPORT_OK, qw($CNF_TAPERALGO);
-push @{$EXPORT_TAGS{"confparm_key"}}, qw($CNF_TAPERALGO);
-
-$_confparm_key_VALUES{"CNF_TAPERALGO"} = $CNF_TAPERALGO;
-
-push @EXPORT_OK, qw($CNF_FLUSH_THRESHOLD_DUMPED);
-push @{$EXPORT_TAGS{"confparm_key"}}, qw($CNF_FLUSH_THRESHOLD_DUMPED);
-
-$_confparm_key_VALUES{"CNF_FLUSH_THRESHOLD_DUMPED"} = $CNF_FLUSH_THRESHOLD_DUMPED;
-
-push @EXPORT_OK, qw($CNF_FLUSH_THRESHOLD_SCHEDULED);
-push @{$EXPORT_TAGS{"confparm_key"}}, qw($CNF_FLUSH_THRESHOLD_SCHEDULED);
-
-$_confparm_key_VALUES{"CNF_FLUSH_THRESHOLD_SCHEDULED"} = $CNF_FLUSH_THRESHOLD_SCHEDULED;
-
-push @EXPORT_OK, qw($CNF_TAPERFLUSH);
-push @{$EXPORT_TAGS{"confparm_key"}}, qw($CNF_TAPERFLUSH);
-
-$_confparm_key_VALUES{"CNF_TAPERFLUSH"} = $CNF_TAPERFLUSH;
-
-push @EXPORT_OK, qw($CNF_DISPLAYUNIT);
-push @{$EXPORT_TAGS{"confparm_key"}}, qw($CNF_DISPLAYUNIT);
-
-$_confparm_key_VALUES{"CNF_DISPLAYUNIT"} = $CNF_DISPLAYUNIT;
-
-push @EXPORT_OK, qw($CNF_KRB5KEYTAB);
-push @{$EXPORT_TAGS{"confparm_key"}}, qw($CNF_KRB5KEYTAB);
-
-$_confparm_key_VALUES{"CNF_KRB5KEYTAB"} = $CNF_KRB5KEYTAB;
-
-push @EXPORT_OK, qw($CNF_KRB5PRINCIPAL);
-push @{$EXPORT_TAGS{"confparm_key"}}, qw($CNF_KRB5PRINCIPAL);
-
-$_confparm_key_VALUES{"CNF_KRB5PRINCIPAL"} = $CNF_KRB5PRINCIPAL;
-
-push @EXPORT_OK, qw($CNF_LABEL_NEW_TAPES);
-push @{$EXPORT_TAGS{"confparm_key"}}, qw($CNF_LABEL_NEW_TAPES);
-
-$_confparm_key_VALUES{"CNF_LABEL_NEW_TAPES"} = $CNF_LABEL_NEW_TAPES;
-
-push @EXPORT_OK, qw($CNF_USETIMESTAMPS);
-push @{$EXPORT_TAGS{"confparm_key"}}, qw($CNF_USETIMESTAMPS);
-
-$_confparm_key_VALUES{"CNF_USETIMESTAMPS"} = $CNF_USETIMESTAMPS;
-
-push @EXPORT_OK, qw($CNF_REP_TRIES);
-push @{$EXPORT_TAGS{"confparm_key"}}, qw($CNF_REP_TRIES);
-
-$_confparm_key_VALUES{"CNF_REP_TRIES"} = $CNF_REP_TRIES;
-
-push @EXPORT_OK, qw($CNF_CONNECT_TRIES);
-push @{$EXPORT_TAGS{"confparm_key"}}, qw($CNF_CONNECT_TRIES);
-
-$_confparm_key_VALUES{"CNF_CONNECT_TRIES"} = $CNF_CONNECT_TRIES;
-
-push @EXPORT_OK, qw($CNF_REQ_TRIES);
-push @{$EXPORT_TAGS{"confparm_key"}}, qw($CNF_REQ_TRIES);
-
-$_confparm_key_VALUES{"CNF_REQ_TRIES"} = $CNF_REQ_TRIES;
-
-push @EXPORT_OK, qw($CNF_DEBUG_AMANDAD);
-push @{$EXPORT_TAGS{"confparm_key"}}, qw($CNF_DEBUG_AMANDAD);
-
-$_confparm_key_VALUES{"CNF_DEBUG_AMANDAD"} = $CNF_DEBUG_AMANDAD;
-
-push @EXPORT_OK, qw($CNF_DEBUG_AMIDXTAPED);
-push @{$EXPORT_TAGS{"confparm_key"}}, qw($CNF_DEBUG_AMIDXTAPED);
-
-$_confparm_key_VALUES{"CNF_DEBUG_AMIDXTAPED"} = $CNF_DEBUG_AMIDXTAPED;
-
-push @EXPORT_OK, qw($CNF_DEBUG_AMINDEXD);
-push @{$EXPORT_TAGS{"confparm_key"}}, qw($CNF_DEBUG_AMINDEXD);
-
-$_confparm_key_VALUES{"CNF_DEBUG_AMINDEXD"} = $CNF_DEBUG_AMINDEXD;
-
-push @EXPORT_OK, qw($CNF_DEBUG_AMRECOVER);
-push @{$EXPORT_TAGS{"confparm_key"}}, qw($CNF_DEBUG_AMRECOVER);
-
-$_confparm_key_VALUES{"CNF_DEBUG_AMRECOVER"} = $CNF_DEBUG_AMRECOVER;
-
-push @EXPORT_OK, qw($CNF_DEBUG_AUTH);
-push @{$EXPORT_TAGS{"confparm_key"}}, qw($CNF_DEBUG_AUTH);
-
-$_confparm_key_VALUES{"CNF_DEBUG_AUTH"} = $CNF_DEBUG_AUTH;
-
-push @EXPORT_OK, qw($CNF_DEBUG_EVENT);
-push @{$EXPORT_TAGS{"confparm_key"}}, qw($CNF_DEBUG_EVENT);
-
-$_confparm_key_VALUES{"CNF_DEBUG_EVENT"} = $CNF_DEBUG_EVENT;
-
-push @EXPORT_OK, qw($CNF_DEBUG_HOLDING);
-push @{$EXPORT_TAGS{"confparm_key"}}, qw($CNF_DEBUG_HOLDING);
-
-$_confparm_key_VALUES{"CNF_DEBUG_HOLDING"} = $CNF_DEBUG_HOLDING;
-
-push @EXPORT_OK, qw($CNF_DEBUG_PROTOCOL);
-push @{$EXPORT_TAGS{"confparm_key"}}, qw($CNF_DEBUG_PROTOCOL);
-
-$_confparm_key_VALUES{"CNF_DEBUG_PROTOCOL"} = $CNF_DEBUG_PROTOCOL;
-
-push @EXPORT_OK, qw($CNF_DEBUG_PLANNER);
-push @{$EXPORT_TAGS{"confparm_key"}}, qw($CNF_DEBUG_PLANNER);
-
-$_confparm_key_VALUES{"CNF_DEBUG_PLANNER"} = $CNF_DEBUG_PLANNER;
-
-push @EXPORT_OK, qw($CNF_DEBUG_DRIVER);
-push @{$EXPORT_TAGS{"confparm_key"}}, qw($CNF_DEBUG_DRIVER);
-
-$_confparm_key_VALUES{"CNF_DEBUG_DRIVER"} = $CNF_DEBUG_DRIVER;
-
-push @EXPORT_OK, qw($CNF_DEBUG_DUMPER);
-push @{$EXPORT_TAGS{"confparm_key"}}, qw($CNF_DEBUG_DUMPER);
-
-$_confparm_key_VALUES{"CNF_DEBUG_DUMPER"} = $CNF_DEBUG_DUMPER;
-
-push @EXPORT_OK, qw($CNF_DEBUG_CHUNKER);
-push @{$EXPORT_TAGS{"confparm_key"}}, qw($CNF_DEBUG_CHUNKER);
-
-$_confparm_key_VALUES{"CNF_DEBUG_CHUNKER"} = $CNF_DEBUG_CHUNKER;
-
-push @EXPORT_OK, qw($CNF_DEBUG_TAPER);
-push @{$EXPORT_TAGS{"confparm_key"}}, qw($CNF_DEBUG_TAPER);
-
-$_confparm_key_VALUES{"CNF_DEBUG_TAPER"} = $CNF_DEBUG_TAPER;
-
-push @EXPORT_OK, qw($CNF_DEBUG_SELFCHECK);
-push @{$EXPORT_TAGS{"confparm_key"}}, qw($CNF_DEBUG_SELFCHECK);
-
-$_confparm_key_VALUES{"CNF_DEBUG_SELFCHECK"} = $CNF_DEBUG_SELFCHECK;
-
-push @EXPORT_OK, qw($CNF_DEBUG_SENDSIZE);
-push @{$EXPORT_TAGS{"confparm_key"}}, qw($CNF_DEBUG_SENDSIZE);
-
-$_confparm_key_VALUES{"CNF_DEBUG_SENDSIZE"} = $CNF_DEBUG_SENDSIZE;
-
-push @EXPORT_OK, qw($CNF_DEBUG_SENDBACKUP);
-push @{$EXPORT_TAGS{"confparm_key"}}, qw($CNF_DEBUG_SENDBACKUP);
-
-$_confparm_key_VALUES{"CNF_DEBUG_SENDBACKUP"} = $CNF_DEBUG_SENDBACKUP;
-
-push @EXPORT_OK, qw($CNF_RESERVED_UDP_PORT);
-push @{$EXPORT_TAGS{"confparm_key"}}, qw($CNF_RESERVED_UDP_PORT);
-
-$_confparm_key_VALUES{"CNF_RESERVED_UDP_PORT"} = $CNF_RESERVED_UDP_PORT;
+push @EXPORT_OK, qw( $CNF_ORG $CNF_CONF $CNF_INDEX_SERVER $CNF_TAPE_SERVER $CNF_AUTH $CNF_SSH_KEYS $CNF_AMANDAD_PATH $CNF_CLIENT_USERNAME $CNF_CLIENT_PORT $CNF_GNUTAR_LIST_DIR $CNF_AMANDATES $CNF_MAILER $CNF_MAILTO $CNF_DUMPUSER $CNF_TAPEDEV $CNF_DEVICE_PROPERTY $CNF_PROPERTY $CNF_CHANGERDEV $CNF_CHANGERFILE $CNF_LABELSTR $CNF_AUTOLABEL $CNF_TAPELIST $CNF_DISKFILE $CNF_INFOFILE $CNF_LOGDIR $CNF_INDEXDIR $CNF_TAPETYPE $CNF_DUMPCYCLE $CNF_RUNSPERCYCLE $CNF_TAPECYCLE $CNF_NETUSAGE $CNF_INPARALLEL $CNF_DUMPORDER $CNF_BUMPPERCENT $CNF_BUMPSIZE $CNF_BUMPMULT $CNF_BUMPDAYS $CNF_TPCHANGER $CNF_RUNTAPES $CNF_MAXDUMPS $CNF_ETIMEOUT $CNF_DTIMEOUT $CNF_CTIMEOUT $CNF_DEVICE_OUTPUT_BUFFER_SIZE $CNF_PRINTER $CNF_AUTOFLUSH $CNF_RESERVE $CNF_MAXDUMPSIZE $CNF_COLUMNSPEC $CNF_AMRECOVER_DO_FSF $CNF_AMRECOVER_CHECK_LABEL $CNF_AMRECOVER_CHANGER $CNF_TAPERALGO $CNF_FLUSH_THRESHOLD_DUMPED $CNF_FLUSH_THRESHOLD_SCHEDULED $CNF_TAPERFLUSH $CNF_DISPLAYUNIT $CNF_KRB5KEYTAB $CNF_KRB5PRINCIPAL $CNF_LABEL_NEW_TAPES $CNF_USETIMESTAMPS $CNF_REP_TRIES $CNF_CONNECT_TRIES $CNF_REQ_TRIES $CNF_DEBUG_AMANDAD $CNF_DEBUG_RECOVERY $CNF_DEBUG_AMIDXTAPED $CNF_DEBUG_AMINDEXD $CNF_DEBUG_AMRECOVER $CNF_DEBUG_AUTH $CNF_DEBUG_EVENT $CNF_DEBUG_HOLDING $CNF_DEBUG_PROTOCOL $CNF_DEBUG_PLANNER $CNF_DEBUG_DRIVER $CNF_DEBUG_DUMPER $CNF_DEBUG_CHUNKER $CNF_DEBUG_TAPER $CNF_DEBUG_SELFCHECK $CNF_DEBUG_SENDSIZE $CNF_DEBUG_SENDBACKUP $CNF_RESERVED_UDP_PORT $CNF_RESERVED_TCP_PORT $CNF_UNRESERVED_TCP_PORT $CNF_HOLDINGDISK $CNF_SEND_AMREPORT_ON $CNF_TAPER_PARALLEL_WRITE $CNF_RECOVERY_LIMIT);
+push @{$EXPORT_TAGS{"confparm_key"}}, qw( $CNF_ORG $CNF_CONF $CNF_INDEX_SERVER $CNF_TAPE_SERVER $CNF_AUTH $CNF_SSH_KEYS $CNF_AMANDAD_PATH $CNF_CLIENT_USERNAME $CNF_CLIENT_PORT $CNF_GNUTAR_LIST_DIR $CNF_AMANDATES $CNF_MAILER $CNF_MAILTO $CNF_DUMPUSER $CNF_TAPEDEV $CNF_DEVICE_PROPERTY $CNF_PROPERTY $CNF_CHANGERDEV $CNF_CHANGERFILE $CNF_LABELSTR $CNF_AUTOLABEL $CNF_TAPELIST $CNF_DISKFILE $CNF_INFOFILE $CNF_LOGDIR $CNF_INDEXDIR $CNF_TAPETYPE $CNF_DUMPCYCLE $CNF_RUNSPERCYCLE $CNF_TAPECYCLE $CNF_NETUSAGE $CNF_INPARALLEL $CNF_DUMPORDER $CNF_BUMPPERCENT $CNF_BUMPSIZE $CNF_BUMPMULT $CNF_BUMPDAYS $CNF_TPCHANGER $CNF_RUNTAPES $CNF_MAXDUMPS $CNF_ETIMEOUT $CNF_DTIMEOUT $CNF_CTIMEOUT $CNF_DEVICE_OUTPUT_BUFFER_SIZE $CNF_PRINTER $CNF_AUTOFLUSH $CNF_RESERVE $CNF_MAXDUMPSIZE $CNF_COLUMNSPEC $CNF_AMRECOVER_DO_FSF $CNF_AMRECOVER_CHECK_LABEL $CNF_AMRECOVER_CHANGER $CNF_TAPERALGO $CNF_FLUSH_THRESHOLD_DUMPED $CNF_FLUSH_THRESHOLD_SCHEDULED $CNF_TAPERFLUSH $CNF_DISPLAYUNIT $CNF_KRB5KEYTAB $CNF_KRB5PRINCIPAL $CNF_LABEL_NEW_TAPES $CNF_USETIMESTAMPS $CNF_REP_TRIES $CNF_CONNECT_TRIES $CNF_REQ_TRIES $CNF_DEBUG_AMANDAD $CNF_DEBUG_RECOVERY $CNF_DEBUG_AMIDXTAPED $CNF_DEBUG_AMINDEXD $CNF_DEBUG_AMRECOVER $CNF_DEBUG_AUTH $CNF_DEBUG_EVENT $CNF_DEBUG_HOLDING $CNF_DEBUG_PROTOCOL $CNF_DEBUG_PLANNER $CNF_DEBUG_DRIVER $CNF_DEBUG_DUMPER $CNF_DEBUG_CHUNKER $CNF_DEBUG_TAPER $CNF_DEBUG_SELFCHECK $CNF_DEBUG_SENDSIZE $CNF_DEBUG_SENDBACKUP $CNF_RESERVED_UDP_PORT $CNF_RESERVED_TCP_PORT $CNF_UNRESERVED_TCP_PORT $CNF_HOLDINGDISK $CNF_SEND_AMREPORT_ON $CNF_TAPER_PARALLEL_WRITE $CNF_RECOVERY_LIMIT);
+      foreach (qw(  CNF_ORG CNF_CONF CNF_INDEX_SERVER CNF_TAPE_SERVER CNF_AUTH CNF_SSH_KEYS CNF_AMANDAD_PATH CNF_CLIENT_USERNAME CNF_CLIENT_PORT CNF_GNUTAR_LIST_DIR CNF_AMANDATES CNF_MAILER CNF_MAILTO CNF_DUMPUSER CNF_TAPEDEV CNF_DEVICE_PROPERTY CNF_PROPERTY CNF_CHANGERDEV CNF_CHANGERFILE CNF_LABELSTR CNF_AUTOLABEL CNF_TAPELIST CNF_DISKFILE CNF_INFOFILE CNF_LOGDIR CNF_INDEXDIR CNF_TAPETYPE CNF_DUMPCYCLE CNF_RUNSPERCYCLE CNF_TAPECYCLE CNF_NETUSAGE CNF_INPARALLEL CNF_DUMPORDER CNF_BUMPPERCENT CNF_BUMPSIZE CNF_BUMPMULT CNF_BUMPDAYS CNF_TPCHANGER CNF_RUNTAPES CNF_MAXDUMPS CNF_ETIMEOUT CNF_DTIMEOUT CNF_CTIMEOUT CNF_DEVICE_OUTPUT_BUFFER_SIZE CNF_PRINTER CNF_AUTOFLUSH CNF_RESERVE CNF_MAXDUMPSIZE CNF_COLUMNSPEC CNF_AMRECOVER_DO_FSF CNF_AMRECOVER_CHECK_LABEL CNF_AMRECOVER_CHANGER CNF_TAPERALGO CNF_FLUSH_THRESHOLD_DUMPED CNF_FLUSH_THRESHOLD_SCHEDULED CNF_TAPERFLUSH CNF_DISPLAYUNIT CNF_KRB5KEYTAB CNF_KRB5PRINCIPAL CNF_LABEL_NEW_TAPES CNF_USETIMESTAMPS CNF_REP_TRIES CNF_CONNECT_TRIES CNF_REQ_TRIES CNF_DEBUG_AMANDAD CNF_DEBUG_RECOVERY CNF_DEBUG_AMIDXTAPED CNF_DEBUG_AMINDEXD CNF_DEBUG_AMRECOVER CNF_DEBUG_AUTH CNF_DEBUG_EVENT CNF_DEBUG_HOLDING CNF_DEBUG_PROTOCOL CNF_DEBUG_PLANNER CNF_DEBUG_DRIVER CNF_DEBUG_DUMPER CNF_DEBUG_CHUNKER CNF_DEBUG_TAPER CNF_DEBUG_SELFCHECK CNF_DEBUG_SENDSIZE CNF_DEBUG_SENDBACKUP CNF_RESERVED_UDP_PORT CNF_RESERVED_TCP_PORT CNF_UNRESERVED_TCP_PORT CNF_HOLDINGDISK CNF_SEND_AMREPORT_ON CNF_TAPER_PARALLEL_WRITE CNF_RECOVERY_LIMIT)) {       $_confparm_key_VALUES{$_} = $$_;      }  
+#copy symbols in confparm_key to getconf
+push @{$EXPORT_TAGS{"getconf"}},  @{$EXPORT_TAGS{"confparm_key"}};
 
 
-push @EXPORT_OK, qw($CNF_RESERVED_TCP_PORT);
-push @{$EXPORT_TAGS{"confparm_key"}}, qw($CNF_RESERVED_TCP_PORT);
 
 
-$_confparm_key_VALUES{"CNF_RESERVED_TCP_PORT"} = $CNF_RESERVED_TCP_PORT;
+use Amanda::Config::FoldingHash;
 
 
-push @EXPORT_OK, qw($CNF_UNRESERVED_TCP_PORT);
-push @{$EXPORT_TAGS{"confparm_key"}}, qw($CNF_UNRESERVED_TCP_PORT);
+=pod
 
 
-$_confparm_key_VALUES{"CNF_UNRESERVED_TCP_PORT"} = $CNF_UNRESERVED_TCP_PORT;
+Global Parameters:       C<$CNF_ORG> C<$CNF_CONF> C<$CNF_INDEX_SERVER> C<$CNF_TAPE_SERVER> C<$CNF_AUTH> C<$CNF_SSH_KEYS> C<$CNF_AMANDAD_PATH> C<$CNF_CLIENT_USERNAME> C<$CNF_CLIENT_PORT> C<$CNF_GNUTAR_LIST_DIR> C<$CNF_AMANDATES> C<$CNF_MAILER> C<$CNF_MAILTO> C<$CNF_DUMPUSER> C<$CNF_TAPEDEV> C<$CNF_DEVICE_PROPERTY> C<$CNF_PROPERTY> C<$CNF_CHANGERDEV> C<$CNF_CHANGERFILE> C<$CNF_LABELSTR> C<$CNF_AUTOLABEL> C<$CNF_TAPELIST> C<$CNF_DISKFILE> C<$CNF_INFOFILE> C<$CNF_LOGDIR> C<$CNF_INDEXDIR> C<$CNF_TAPETYPE> C<$CNF_DUMPCYCLE> C<$CNF_RUNSPERCYCLE> C<$CNF_TAPECYCLE> C<$CNF_NETUSAGE> C<$CNF_INPARALLEL> C<$CNF_DUMPORDER> C<$CNF_BUMPPERCENT> C<$CNF_BUMPSIZE> C<$CNF_BUMPMULT> C<$CNF_BUMPDAYS> C<$CNF_TPCHANGER> C<$CNF_RUNTAPES> C<$CNF_MAXDUMPS> C<$CNF_ETIMEOUT> C<$CNF_DTIMEOUT> C<$CNF_CTIMEOUT> C<$CNF_DEVICE_OUTPUT_BUFFER_SIZE> C<$CNF_PRINTER> C<$CNF_AUTOFLUSH> C<$CNF_RESERVE> C<$CNF_MAXDUMPSIZE> C<$CNF_COLUMNSPEC> C<$CNF_AMRECOVER_DO_FSF> C<$CNF_AMRECOVER_CHECK_LABEL> C<$CNF_AMRECOVER_CHANGER> C<$CNF_TAPERALGO> C<$CNF_FLUSH_THRESHOLD_DUMPED> C<$CNF_FLUSH_THRESHOLD_SCHEDULED> C<$CNF_TAPERFLUSH> C<$CNF_DISPLAYUNIT> C<$CNF_KRB5KEYTAB> C<$CNF_KRB5PRINCIPAL> C<$CNF_LABEL_NEW_TAPES> C<$CNF_USETIMESTAMPS> C<$CNF_REP_TRIES> C<$CNF_CONNECT_TRIES> C<$CNF_REQ_TRIES> C<$CNF_DEBUG_AMANDAD> C<$CNF_DEBUG_RECOVERY> C<$CNF_DEBUG_AMIDXTAPED> C<$CNF_DEBUG_AMINDEXD> C<$CNF_DEBUG_AMRECOVER> C<$CNF_DEBUG_AUTH> C<$CNF_DEBUG_EVENT> C<$CNF_DEBUG_HOLDING> C<$CNF_DEBUG_PROTOCOL> C<$CNF_DEBUG_PLANNER> C<$CNF_DEBUG_DRIVER> C<$CNF_DEBUG_DUMPER> C<$CNF_DEBUG_CHUNKER> C<$CNF_DEBUG_TAPER> C<$CNF_DEBUG_SELFCHECK> C<$CNF_DEBUG_SENDSIZE> C<$CNF_DEBUG_SENDBACKUP> C<$CNF_RESERVED_UDP_PORT> C<$CNF_RESERVED_TCP_PORT> C<$CNF_UNRESERVED_TCP_PORT> C<$CNF_HOLDINGDISK> C<$CNF_SEND_AMREPORT_ON> C<$CNF_TAPER_PARALLEL_WRITE> C<$CNF_RECOVERY_LIMIT>
 
 
-#copy symbols in confparm_key to getconf
-push @{$EXPORT_TAGS{"getconf"}},  @{$EXPORT_TAGS{"confparm_key"}};
+=cut
 
 push @EXPORT_OK, qw(tapetype_key_to_string);
 push @{$EXPORT_TAGS{"tapetype_key"}}, qw(tapetype_key_to_string);
 
 push @EXPORT_OK, qw(tapetype_key_to_string);
 push @{$EXPORT_TAGS{"tapetype_key"}}, qw(tapetype_key_to_string);
@@ -1028,48 +744,20 @@ sub tapetype_key_to_string {
     return $enumval;
 }
 
     return $enumval;
 }
 
-push @EXPORT_OK, qw($TAPETYPE_COMMENT);
-push @{$EXPORT_TAGS{"tapetype_key"}}, qw($TAPETYPE_COMMENT);
-
-$_tapetype_key_VALUES{"TAPETYPE_COMMENT"} = $TAPETYPE_COMMENT;
-
-push @EXPORT_OK, qw($TAPETYPE_LBL_TEMPL);
-push @{$EXPORT_TAGS{"tapetype_key"}}, qw($TAPETYPE_LBL_TEMPL);
-
-$_tapetype_key_VALUES{"TAPETYPE_LBL_TEMPL"} = $TAPETYPE_LBL_TEMPL;
-
-push @EXPORT_OK, qw($TAPETYPE_BLOCKSIZE);
-push @{$EXPORT_TAGS{"tapetype_key"}}, qw($TAPETYPE_BLOCKSIZE);
-
-$_tapetype_key_VALUES{"TAPETYPE_BLOCKSIZE"} = $TAPETYPE_BLOCKSIZE;
-
-push @EXPORT_OK, qw($TAPETYPE_READBLOCKSIZE);
-push @{$EXPORT_TAGS{"tapetype_key"}}, qw($TAPETYPE_READBLOCKSIZE);
-
-$_tapetype_key_VALUES{"TAPETYPE_READBLOCKSIZE"} = $TAPETYPE_READBLOCKSIZE;
-
-push @EXPORT_OK, qw($TAPETYPE_LENGTH);
-push @{$EXPORT_TAGS{"tapetype_key"}}, qw($TAPETYPE_LENGTH);
-
-$_tapetype_key_VALUES{"TAPETYPE_LENGTH"} = $TAPETYPE_LENGTH;
-
-push @EXPORT_OK, qw($TAPETYPE_FILEMARK);
-push @{$EXPORT_TAGS{"tapetype_key"}}, qw($TAPETYPE_FILEMARK);
-
-$_tapetype_key_VALUES{"TAPETYPE_FILEMARK"} = $TAPETYPE_FILEMARK;
+push @EXPORT_OK, qw( $TAPETYPE_COMMENT $TAPETYPE_LBL_TEMPL $TAPETYPE_BLOCKSIZE $TAPETYPE_READBLOCKSIZE $TAPETYPE_LENGTH $TAPETYPE_FILEMARK $TAPETYPE_SPEED $TAPETYPE_PART_SIZE $TAPETYPE_PART_CACHE_TYPE $TAPETYPE_PART_CACHE_DIR $TAPETYPE_PART_CACHE_MAX_SIZE);
+push @{$EXPORT_TAGS{"tapetype_key"}}, qw( $TAPETYPE_COMMENT $TAPETYPE_LBL_TEMPL $TAPETYPE_BLOCKSIZE $TAPETYPE_READBLOCKSIZE $TAPETYPE_LENGTH $TAPETYPE_FILEMARK $TAPETYPE_SPEED $TAPETYPE_PART_SIZE $TAPETYPE_PART_CACHE_TYPE $TAPETYPE_PART_CACHE_DIR $TAPETYPE_PART_CACHE_MAX_SIZE);
+      foreach (qw(  TAPETYPE_COMMENT TAPETYPE_LBL_TEMPL TAPETYPE_BLOCKSIZE TAPETYPE_READBLOCKSIZE TAPETYPE_LENGTH TAPETYPE_FILEMARK TAPETYPE_SPEED TAPETYPE_PART_SIZE TAPETYPE_PART_CACHE_TYPE TAPETYPE_PART_CACHE_DIR TAPETYPE_PART_CACHE_MAX_SIZE)) {        $_tapetype_key_VALUES{$_} = $$_;      }  
+#copy symbols in tapetype_key to getconf
+push @{$EXPORT_TAGS{"getconf"}},  @{$EXPORT_TAGS{"tapetype_key"}};
 
 
-push @EXPORT_OK, qw($TAPETYPE_SPEED);
-push @{$EXPORT_TAGS{"tapetype_key"}}, qw($TAPETYPE_SPEED);
 
 
-$_tapetype_key_VALUES{"TAPETYPE_SPEED"} = $TAPETYPE_SPEED;
+use Amanda::Config::FoldingHash;
 
 
-push @EXPORT_OK, qw($TAPETYPE_FILE_PAD);
-push @{$EXPORT_TAGS{"tapetype_key"}}, qw($TAPETYPE_FILE_PAD);
+=pod
 
 
-$_tapetype_key_VALUES{"TAPETYPE_FILE_PAD"} = $TAPETYPE_FILE_PAD;
+Tapetype Parameters:       C<$TAPETYPE_COMMENT> C<$TAPETYPE_LBL_TEMPL> C<$TAPETYPE_BLOCKSIZE> C<$TAPETYPE_READBLOCKSIZE> C<$TAPETYPE_LENGTH> C<$TAPETYPE_FILEMARK> C<$TAPETYPE_SPEED> C<$TAPETYPE_PART_SIZE> C<$TAPETYPE_PART_CACHE_TYPE> C<$TAPETYPE_PART_CACHE_DIR> C<$TAPETYPE_PART_CACHE_MAX_SIZE>
 
 
-#copy symbols in tapetype_key to getconf
-push @{$EXPORT_TAGS{"getconf"}},  @{$EXPORT_TAGS{"tapetype_key"}};
+=cut
 
 push @EXPORT_OK, qw(dumptype_key_to_string);
 push @{$EXPORT_TAGS{"dumptype_key"}}, qw(dumptype_key_to_string);
 
 push @EXPORT_OK, qw(dumptype_key_to_string);
 push @{$EXPORT_TAGS{"dumptype_key"}}, qw(dumptype_key_to_string);
@@ -1092,213 +780,20 @@ sub dumptype_key_to_string {
     return $enumval;
 }
 
     return $enumval;
 }
 
-push @EXPORT_OK, qw($DUMPTYPE_COMMENT);
-push @{$EXPORT_TAGS{"dumptype_key"}}, qw($DUMPTYPE_COMMENT);
-
-$_dumptype_key_VALUES{"DUMPTYPE_COMMENT"} = $DUMPTYPE_COMMENT;
-
-push @EXPORT_OK, qw($DUMPTYPE_PROGRAM);
-push @{$EXPORT_TAGS{"dumptype_key"}}, qw($DUMPTYPE_PROGRAM);
-
-$_dumptype_key_VALUES{"DUMPTYPE_PROGRAM"} = $DUMPTYPE_PROGRAM;
-
-push @EXPORT_OK, qw($DUMPTYPE_SRVCOMPPROG);
-push @{$EXPORT_TAGS{"dumptype_key"}}, qw($DUMPTYPE_SRVCOMPPROG);
-
-$_dumptype_key_VALUES{"DUMPTYPE_SRVCOMPPROG"} = $DUMPTYPE_SRVCOMPPROG;
-
-push @EXPORT_OK, qw($DUMPTYPE_CLNTCOMPPROG);
-push @{$EXPORT_TAGS{"dumptype_key"}}, qw($DUMPTYPE_CLNTCOMPPROG);
-
-$_dumptype_key_VALUES{"DUMPTYPE_CLNTCOMPPROG"} = $DUMPTYPE_CLNTCOMPPROG;
-
-push @EXPORT_OK, qw($DUMPTYPE_SRV_ENCRYPT);
-push @{$EXPORT_TAGS{"dumptype_key"}}, qw($DUMPTYPE_SRV_ENCRYPT);
-
-$_dumptype_key_VALUES{"DUMPTYPE_SRV_ENCRYPT"} = $DUMPTYPE_SRV_ENCRYPT;
-
-push @EXPORT_OK, qw($DUMPTYPE_CLNT_ENCRYPT);
-push @{$EXPORT_TAGS{"dumptype_key"}}, qw($DUMPTYPE_CLNT_ENCRYPT);
-
-$_dumptype_key_VALUES{"DUMPTYPE_CLNT_ENCRYPT"} = $DUMPTYPE_CLNT_ENCRYPT;
-
-push @EXPORT_OK, qw($DUMPTYPE_AMANDAD_PATH);
-push @{$EXPORT_TAGS{"dumptype_key"}}, qw($DUMPTYPE_AMANDAD_PATH);
-
-$_dumptype_key_VALUES{"DUMPTYPE_AMANDAD_PATH"} = $DUMPTYPE_AMANDAD_PATH;
-
-push @EXPORT_OK, qw($DUMPTYPE_CLIENT_USERNAME);
-push @{$EXPORT_TAGS{"dumptype_key"}}, qw($DUMPTYPE_CLIENT_USERNAME);
-
-$_dumptype_key_VALUES{"DUMPTYPE_CLIENT_USERNAME"} = $DUMPTYPE_CLIENT_USERNAME;
-
-push @EXPORT_OK, qw($DUMPTYPE_SSH_KEYS);
-push @{$EXPORT_TAGS{"dumptype_key"}}, qw($DUMPTYPE_SSH_KEYS);
-
-$_dumptype_key_VALUES{"DUMPTYPE_SSH_KEYS"} = $DUMPTYPE_SSH_KEYS;
-
-push @EXPORT_OK, qw($DUMPTYPE_SECURITY_DRIVER);
-push @{$EXPORT_TAGS{"dumptype_key"}}, qw($DUMPTYPE_SECURITY_DRIVER);
-
-$_dumptype_key_VALUES{"DUMPTYPE_SECURITY_DRIVER"} = $DUMPTYPE_SECURITY_DRIVER;
-
-push @EXPORT_OK, qw($DUMPTYPE_EXCLUDE);
-push @{$EXPORT_TAGS{"dumptype_key"}}, qw($DUMPTYPE_EXCLUDE);
-
-$_dumptype_key_VALUES{"DUMPTYPE_EXCLUDE"} = $DUMPTYPE_EXCLUDE;
-
-push @EXPORT_OK, qw($DUMPTYPE_INCLUDE);
-push @{$EXPORT_TAGS{"dumptype_key"}}, qw($DUMPTYPE_INCLUDE);
-
-$_dumptype_key_VALUES{"DUMPTYPE_INCLUDE"} = $DUMPTYPE_INCLUDE;
-
-push @EXPORT_OK, qw($DUMPTYPE_PRIORITY);
-push @{$EXPORT_TAGS{"dumptype_key"}}, qw($DUMPTYPE_PRIORITY);
-
-$_dumptype_key_VALUES{"DUMPTYPE_PRIORITY"} = $DUMPTYPE_PRIORITY;
-
-push @EXPORT_OK, qw($DUMPTYPE_DUMPCYCLE);
-push @{$EXPORT_TAGS{"dumptype_key"}}, qw($DUMPTYPE_DUMPCYCLE);
-
-$_dumptype_key_VALUES{"DUMPTYPE_DUMPCYCLE"} = $DUMPTYPE_DUMPCYCLE;
-
-push @EXPORT_OK, qw($DUMPTYPE_MAXDUMPS);
-push @{$EXPORT_TAGS{"dumptype_key"}}, qw($DUMPTYPE_MAXDUMPS);
-
-$_dumptype_key_VALUES{"DUMPTYPE_MAXDUMPS"} = $DUMPTYPE_MAXDUMPS;
-
-push @EXPORT_OK, qw($DUMPTYPE_MAXPROMOTEDAY);
-push @{$EXPORT_TAGS{"dumptype_key"}}, qw($DUMPTYPE_MAXPROMOTEDAY);
-
-$_dumptype_key_VALUES{"DUMPTYPE_MAXPROMOTEDAY"} = $DUMPTYPE_MAXPROMOTEDAY;
-
-push @EXPORT_OK, qw($DUMPTYPE_BUMPPERCENT);
-push @{$EXPORT_TAGS{"dumptype_key"}}, qw($DUMPTYPE_BUMPPERCENT);
-
-$_dumptype_key_VALUES{"DUMPTYPE_BUMPPERCENT"} = $DUMPTYPE_BUMPPERCENT;
-
-push @EXPORT_OK, qw($DUMPTYPE_BUMPSIZE);
-push @{$EXPORT_TAGS{"dumptype_key"}}, qw($DUMPTYPE_BUMPSIZE);
-
-$_dumptype_key_VALUES{"DUMPTYPE_BUMPSIZE"} = $DUMPTYPE_BUMPSIZE;
-
-push @EXPORT_OK, qw($DUMPTYPE_BUMPDAYS);
-push @{$EXPORT_TAGS{"dumptype_key"}}, qw($DUMPTYPE_BUMPDAYS);
-
-$_dumptype_key_VALUES{"DUMPTYPE_BUMPDAYS"} = $DUMPTYPE_BUMPDAYS;
-
-push @EXPORT_OK, qw($DUMPTYPE_BUMPMULT);
-push @{$EXPORT_TAGS{"dumptype_key"}}, qw($DUMPTYPE_BUMPMULT);
-
-$_dumptype_key_VALUES{"DUMPTYPE_BUMPMULT"} = $DUMPTYPE_BUMPMULT;
-
-push @EXPORT_OK, qw($DUMPTYPE_STARTTIME);
-push @{$EXPORT_TAGS{"dumptype_key"}}, qw($DUMPTYPE_STARTTIME);
-
-$_dumptype_key_VALUES{"DUMPTYPE_STARTTIME"} = $DUMPTYPE_STARTTIME;
-
-push @EXPORT_OK, qw($DUMPTYPE_STRATEGY);
-push @{$EXPORT_TAGS{"dumptype_key"}}, qw($DUMPTYPE_STRATEGY);
-
-$_dumptype_key_VALUES{"DUMPTYPE_STRATEGY"} = $DUMPTYPE_STRATEGY;
-
-push @EXPORT_OK, qw($DUMPTYPE_ESTIMATE);
-push @{$EXPORT_TAGS{"dumptype_key"}}, qw($DUMPTYPE_ESTIMATE);
-
-$_dumptype_key_VALUES{"DUMPTYPE_ESTIMATE"} = $DUMPTYPE_ESTIMATE;
-
-push @EXPORT_OK, qw($DUMPTYPE_COMPRESS);
-push @{$EXPORT_TAGS{"dumptype_key"}}, qw($DUMPTYPE_COMPRESS);
-
-$_dumptype_key_VALUES{"DUMPTYPE_COMPRESS"} = $DUMPTYPE_COMPRESS;
-
-push @EXPORT_OK, qw($DUMPTYPE_ENCRYPT);
-push @{$EXPORT_TAGS{"dumptype_key"}}, qw($DUMPTYPE_ENCRYPT);
-
-$_dumptype_key_VALUES{"DUMPTYPE_ENCRYPT"} = $DUMPTYPE_ENCRYPT;
-
-push @EXPORT_OK, qw($DUMPTYPE_SRV_DECRYPT_OPT);
-push @{$EXPORT_TAGS{"dumptype_key"}}, qw($DUMPTYPE_SRV_DECRYPT_OPT);
-
-$_dumptype_key_VALUES{"DUMPTYPE_SRV_DECRYPT_OPT"} = $DUMPTYPE_SRV_DECRYPT_OPT;
-
-push @EXPORT_OK, qw($DUMPTYPE_CLNT_DECRYPT_OPT);
-push @{$EXPORT_TAGS{"dumptype_key"}}, qw($DUMPTYPE_CLNT_DECRYPT_OPT);
-
-$_dumptype_key_VALUES{"DUMPTYPE_CLNT_DECRYPT_OPT"} = $DUMPTYPE_CLNT_DECRYPT_OPT;
-
-push @EXPORT_OK, qw($DUMPTYPE_COMPRATE);
-push @{$EXPORT_TAGS{"dumptype_key"}}, qw($DUMPTYPE_COMPRATE);
-
-$_dumptype_key_VALUES{"DUMPTYPE_COMPRATE"} = $DUMPTYPE_COMPRATE;
-
-push @EXPORT_OK, qw($DUMPTYPE_TAPE_SPLITSIZE);
-push @{$EXPORT_TAGS{"dumptype_key"}}, qw($DUMPTYPE_TAPE_SPLITSIZE);
-
-$_dumptype_key_VALUES{"DUMPTYPE_TAPE_SPLITSIZE"} = $DUMPTYPE_TAPE_SPLITSIZE;
-
-push @EXPORT_OK, qw($DUMPTYPE_FALLBACK_SPLITSIZE);
-push @{$EXPORT_TAGS{"dumptype_key"}}, qw($DUMPTYPE_FALLBACK_SPLITSIZE);
-
-$_dumptype_key_VALUES{"DUMPTYPE_FALLBACK_SPLITSIZE"} = $DUMPTYPE_FALLBACK_SPLITSIZE;
-
-push @EXPORT_OK, qw($DUMPTYPE_SPLIT_DISKBUFFER);
-push @{$EXPORT_TAGS{"dumptype_key"}}, qw($DUMPTYPE_SPLIT_DISKBUFFER);
-
-$_dumptype_key_VALUES{"DUMPTYPE_SPLIT_DISKBUFFER"} = $DUMPTYPE_SPLIT_DISKBUFFER;
-
-push @EXPORT_OK, qw($DUMPTYPE_RECORD);
-push @{$EXPORT_TAGS{"dumptype_key"}}, qw($DUMPTYPE_RECORD);
-
-$_dumptype_key_VALUES{"DUMPTYPE_RECORD"} = $DUMPTYPE_RECORD;
-
-push @EXPORT_OK, qw($DUMPTYPE_SKIP_INCR);
-push @{$EXPORT_TAGS{"dumptype_key"}}, qw($DUMPTYPE_SKIP_INCR);
-
-$_dumptype_key_VALUES{"DUMPTYPE_SKIP_INCR"} = $DUMPTYPE_SKIP_INCR;
-
-push @EXPORT_OK, qw($DUMPTYPE_SKIP_FULL);
-push @{$EXPORT_TAGS{"dumptype_key"}}, qw($DUMPTYPE_SKIP_FULL);
-
-$_dumptype_key_VALUES{"DUMPTYPE_SKIP_FULL"} = $DUMPTYPE_SKIP_FULL;
-
-push @EXPORT_OK, qw($DUMPTYPE_HOLDINGDISK);
-push @{$EXPORT_TAGS{"dumptype_key"}}, qw($DUMPTYPE_HOLDINGDISK);
-
-$_dumptype_key_VALUES{"DUMPTYPE_HOLDINGDISK"} = $DUMPTYPE_HOLDINGDISK;
-
-push @EXPORT_OK, qw($DUMPTYPE_KENCRYPT);
-push @{$EXPORT_TAGS{"dumptype_key"}}, qw($DUMPTYPE_KENCRYPT);
-
-$_dumptype_key_VALUES{"DUMPTYPE_KENCRYPT"} = $DUMPTYPE_KENCRYPT;
-
-push @EXPORT_OK, qw($DUMPTYPE_IGNORE);
-push @{$EXPORT_TAGS{"dumptype_key"}}, qw($DUMPTYPE_IGNORE);
-
-$_dumptype_key_VALUES{"DUMPTYPE_IGNORE"} = $DUMPTYPE_IGNORE;
-
-push @EXPORT_OK, qw($DUMPTYPE_INDEX);
-push @{$EXPORT_TAGS{"dumptype_key"}}, qw($DUMPTYPE_INDEX);
-
-$_dumptype_key_VALUES{"DUMPTYPE_INDEX"} = $DUMPTYPE_INDEX;
-
-push @EXPORT_OK, qw($DUMPTYPE_APPLICATION);
-push @{$EXPORT_TAGS{"dumptype_key"}}, qw($DUMPTYPE_APPLICATION);
-
-$_dumptype_key_VALUES{"DUMPTYPE_APPLICATION"} = $DUMPTYPE_APPLICATION;
+push @EXPORT_OK, qw( $DUMPTYPE_COMMENT $DUMPTYPE_PROGRAM $DUMPTYPE_SRVCOMPPROG $DUMPTYPE_CLNTCOMPPROG $DUMPTYPE_SRV_ENCRYPT $DUMPTYPE_CLNT_ENCRYPT $DUMPTYPE_AMANDAD_PATH $DUMPTYPE_CLIENT_USERNAME $DUMPTYPE_CLIENT_PORT $DUMPTYPE_SSH_KEYS $DUMPTYPE_AUTH $DUMPTYPE_EXCLUDE $DUMPTYPE_INCLUDE $DUMPTYPE_PRIORITY $DUMPTYPE_DUMPCYCLE $DUMPTYPE_MAXDUMPS $DUMPTYPE_MAXPROMOTEDAY $DUMPTYPE_BUMPPERCENT $DUMPTYPE_BUMPSIZE $DUMPTYPE_BUMPDAYS $DUMPTYPE_BUMPMULT $DUMPTYPE_STARTTIME $DUMPTYPE_STRATEGY $DUMPTYPE_ESTIMATELIST $DUMPTYPE_COMPRESS $DUMPTYPE_ENCRYPT $DUMPTYPE_SRV_DECRYPT_OPT $DUMPTYPE_CLNT_DECRYPT_OPT $DUMPTYPE_COMPRATE $DUMPTYPE_TAPE_SPLITSIZE $DUMPTYPE_FALLBACK_SPLITSIZE $DUMPTYPE_SPLIT_DISKBUFFER $DUMPTYPE_RECORD $DUMPTYPE_SKIP_INCR $DUMPTYPE_SKIP_FULL $DUMPTYPE_HOLDINGDISK $DUMPTYPE_KENCRYPT $DUMPTYPE_IGNORE $DUMPTYPE_INDEX $DUMPTYPE_APPLICATION $DUMPTYPE_SCRIPTLIST $DUMPTYPE_PROPERTY $DUMPTYPE_DATA_PATH $DUMPTYPE_ALLOW_SPLIT $DUMPTYPE_RECOVERY_LIMIT);
+push @{$EXPORT_TAGS{"dumptype_key"}}, qw( $DUMPTYPE_COMMENT $DUMPTYPE_PROGRAM $DUMPTYPE_SRVCOMPPROG $DUMPTYPE_CLNTCOMPPROG $DUMPTYPE_SRV_ENCRYPT $DUMPTYPE_CLNT_ENCRYPT $DUMPTYPE_AMANDAD_PATH $DUMPTYPE_CLIENT_USERNAME $DUMPTYPE_CLIENT_PORT $DUMPTYPE_SSH_KEYS $DUMPTYPE_AUTH $DUMPTYPE_EXCLUDE $DUMPTYPE_INCLUDE $DUMPTYPE_PRIORITY $DUMPTYPE_DUMPCYCLE $DUMPTYPE_MAXDUMPS $DUMPTYPE_MAXPROMOTEDAY $DUMPTYPE_BUMPPERCENT $DUMPTYPE_BUMPSIZE $DUMPTYPE_BUMPDAYS $DUMPTYPE_BUMPMULT $DUMPTYPE_STARTTIME $DUMPTYPE_STRATEGY $DUMPTYPE_ESTIMATELIST $DUMPTYPE_COMPRESS $DUMPTYPE_ENCRYPT $DUMPTYPE_SRV_DECRYPT_OPT $DUMPTYPE_CLNT_DECRYPT_OPT $DUMPTYPE_COMPRATE $DUMPTYPE_TAPE_SPLITSIZE $DUMPTYPE_FALLBACK_SPLITSIZE $DUMPTYPE_SPLIT_DISKBUFFER $DUMPTYPE_RECORD $DUMPTYPE_SKIP_INCR $DUMPTYPE_SKIP_FULL $DUMPTYPE_HOLDINGDISK $DUMPTYPE_KENCRYPT $DUMPTYPE_IGNORE $DUMPTYPE_INDEX $DUMPTYPE_APPLICATION $DUMPTYPE_SCRIPTLIST $DUMPTYPE_PROPERTY $DUMPTYPE_DATA_PATH $DUMPTYPE_ALLOW_SPLIT $DUMPTYPE_RECOVERY_LIMIT);
+      foreach (qw(  DUMPTYPE_COMMENT DUMPTYPE_PROGRAM DUMPTYPE_SRVCOMPPROG DUMPTYPE_CLNTCOMPPROG DUMPTYPE_SRV_ENCRYPT DUMPTYPE_CLNT_ENCRYPT DUMPTYPE_AMANDAD_PATH DUMPTYPE_CLIENT_USERNAME DUMPTYPE_CLIENT_PORT DUMPTYPE_SSH_KEYS DUMPTYPE_AUTH DUMPTYPE_EXCLUDE DUMPTYPE_INCLUDE DUMPTYPE_PRIORITY DUMPTYPE_DUMPCYCLE DUMPTYPE_MAXDUMPS DUMPTYPE_MAXPROMOTEDAY DUMPTYPE_BUMPPERCENT DUMPTYPE_BUMPSIZE DUMPTYPE_BUMPDAYS DUMPTYPE_BUMPMULT DUMPTYPE_STARTTIME DUMPTYPE_STRATEGY DUMPTYPE_ESTIMATELIST DUMPTYPE_COMPRESS DUMPTYPE_ENCRYPT DUMPTYPE_SRV_DECRYPT_OPT DUMPTYPE_CLNT_DECRYPT_OPT DUMPTYPE_COMPRATE DUMPTYPE_TAPE_SPLITSIZE DUMPTYPE_FALLBACK_SPLITSIZE DUMPTYPE_SPLIT_DISKBUFFER DUMPTYPE_RECORD DUMPTYPE_SKIP_INCR DUMPTYPE_SKIP_FULL DUMPTYPE_HOLDINGDISK DUMPTYPE_KENCRYPT DUMPTYPE_IGNORE DUMPTYPE_INDEX DUMPTYPE_APPLICATION DUMPTYPE_SCRIPTLIST DUMPTYPE_PROPERTY DUMPTYPE_DATA_PATH DUMPTYPE_ALLOW_SPLIT DUMPTYPE_RECOVERY_LIMIT)) {         $_dumptype_key_VALUES{$_} = $$_;      }  
+#copy symbols in dumptype_key to getconf
+push @{$EXPORT_TAGS{"getconf"}},  @{$EXPORT_TAGS{"dumptype_key"}};
 
 
-push @EXPORT_OK, qw($DUMPTYPE_PP_SCRIPTLIST);
-push @{$EXPORT_TAGS{"dumptype_key"}}, qw($DUMPTYPE_PP_SCRIPTLIST);
 
 
-$_dumptype_key_VALUES{"DUMPTYPE_PP_SCRIPTLIST"} = $DUMPTYPE_PP_SCRIPTLIST;
+use Amanda::Config::FoldingHash;
 
 
-push @EXPORT_OK, qw($DUMPTYPE_PROPERTY);
-push @{$EXPORT_TAGS{"dumptype_key"}}, qw($DUMPTYPE_PROPERTY);
+=pod
 
 
-$_dumptype_key_VALUES{"DUMPTYPE_PROPERTY"} = $DUMPTYPE_PROPERTY;
+Dumptype Parameters:       C<$DUMPTYPE_COMMENT> C<$DUMPTYPE_PROGRAM> C<$DUMPTYPE_SRVCOMPPROG> C<$DUMPTYPE_CLNTCOMPPROG> C<$DUMPTYPE_SRV_ENCRYPT> C<$DUMPTYPE_CLNT_ENCRYPT> C<$DUMPTYPE_AMANDAD_PATH> C<$DUMPTYPE_CLIENT_USERNAME> C<$DUMPTYPE_CLIENT_PORT> C<$DUMPTYPE_SSH_KEYS> C<$DUMPTYPE_AUTH> C<$DUMPTYPE_EXCLUDE> C<$DUMPTYPE_INCLUDE> C<$DUMPTYPE_PRIORITY> C<$DUMPTYPE_DUMPCYCLE> C<$DUMPTYPE_MAXDUMPS> C<$DUMPTYPE_MAXPROMOTEDAY> C<$DUMPTYPE_BUMPPERCENT> C<$DUMPTYPE_BUMPSIZE> C<$DUMPTYPE_BUMPDAYS> C<$DUMPTYPE_BUMPMULT> C<$DUMPTYPE_STARTTIME> C<$DUMPTYPE_STRATEGY> C<$DUMPTYPE_ESTIMATELIST> C<$DUMPTYPE_COMPRESS> C<$DUMPTYPE_ENCRYPT> C<$DUMPTYPE_SRV_DECRYPT_OPT> C<$DUMPTYPE_CLNT_DECRYPT_OPT> C<$DUMPTYPE_COMPRATE> C<$DUMPTYPE_TAPE_SPLITSIZE> C<$DUMPTYPE_FALLBACK_SPLITSIZE> C<$DUMPTYPE_SPLIT_DISKBUFFER> C<$DUMPTYPE_RECORD> C<$DUMPTYPE_SKIP_INCR> C<$DUMPTYPE_SKIP_FULL> C<$DUMPTYPE_HOLDINGDISK> C<$DUMPTYPE_KENCRYPT> C<$DUMPTYPE_IGNORE> C<$DUMPTYPE_INDEX> C<$DUMPTYPE_APPLICATION> C<$DUMPTYPE_SCRIPTLIST> C<$DUMPTYPE_PROPERTY> C<$DUMPTYPE_DATA_PATH> C<$DUMPTYPE_ALLOW_SPLIT> C<$DUMPTYPE_RECOVERY_LIMIT>
 
 
-#copy symbols in dumptype_key to getconf
-push @{$EXPORT_TAGS{"getconf"}},  @{$EXPORT_TAGS{"dumptype_key"}};
+=cut
 
 push @EXPORT_OK, qw(interface_key_to_string);
 push @{$EXPORT_TAGS{"interface_key"}}, qw(interface_key_to_string);
 
 push @EXPORT_OK, qw(interface_key_to_string);
 push @{$EXPORT_TAGS{"interface_key"}}, qw(interface_key_to_string);
@@ -1321,18 +816,20 @@ sub interface_key_to_string {
     return $enumval;
 }
 
     return $enumval;
 }
 
-push @EXPORT_OK, qw($INTER_COMMENT);
-push @{$EXPORT_TAGS{"interface_key"}}, qw($INTER_COMMENT);
+push @EXPORT_OK, qw( $INTER_COMMENT $INTER_MAXUSAGE);
+push @{$EXPORT_TAGS{"interface_key"}}, qw( $INTER_COMMENT $INTER_MAXUSAGE);
+      foreach (qw(  INTER_COMMENT INTER_MAXUSAGE)) {   $_interface_key_VALUES{$_} = $$_;      }  
+#copy symbols in interface_key to getconf
+push @{$EXPORT_TAGS{"getconf"}},  @{$EXPORT_TAGS{"interface_key"}};
+
 
 
-$_interface_key_VALUES{"INTER_COMMENT"} = $INTER_COMMENT;
+use Amanda::Config::FoldingHash;
 
 
-push @EXPORT_OK, qw($INTER_MAXUSAGE);
-push @{$EXPORT_TAGS{"interface_key"}}, qw($INTER_MAXUSAGE);
+=pod
 
 
-$_interface_key_VALUES{"INTER_MAXUSAGE"} = $INTER_MAXUSAGE;
+Dumptype Parameters:       C<$INTER_COMMENT> C<$INTER_MAXUSAGE>
 
 
-#copy symbols in interface_key to getconf
-push @{$EXPORT_TAGS{"getconf"}},  @{$EXPORT_TAGS{"interface_key"}};
+=cut
 
 push @EXPORT_OK, qw(holdingdisk_key_to_string);
 push @{$EXPORT_TAGS{"holdingdisk_key"}}, qw(holdingdisk_key_to_string);
 
 push @EXPORT_OK, qw(holdingdisk_key_to_string);
 push @{$EXPORT_TAGS{"holdingdisk_key"}}, qw(holdingdisk_key_to_string);
@@ -1355,28 +852,20 @@ sub holdingdisk_key_to_string {
     return $enumval;
 }
 
     return $enumval;
 }
 
-push @EXPORT_OK, qw($HOLDING_COMMENT);
-push @{$EXPORT_TAGS{"holdingdisk_key"}}, qw($HOLDING_COMMENT);
-
-$_holdingdisk_key_VALUES{"HOLDING_COMMENT"} = $HOLDING_COMMENT;
-
-push @EXPORT_OK, qw($HOLDING_DISKDIR);
-push @{$EXPORT_TAGS{"holdingdisk_key"}}, qw($HOLDING_DISKDIR);
-
-$_holdingdisk_key_VALUES{"HOLDING_DISKDIR"} = $HOLDING_DISKDIR;
+push @EXPORT_OK, qw( $HOLDING_COMMENT $HOLDING_DISKDIR $HOLDING_DISKSIZE $HOLDING_CHUNKSIZE);
+push @{$EXPORT_TAGS{"holdingdisk_key"}}, qw( $HOLDING_COMMENT $HOLDING_DISKDIR $HOLDING_DISKSIZE $HOLDING_CHUNKSIZE);
+      foreach (qw(  HOLDING_COMMENT HOLDING_DISKDIR HOLDING_DISKSIZE HOLDING_CHUNKSIZE)) {     $_holdingdisk_key_VALUES{$_} = $$_;      }  
+#copy symbols in holdingdisk_key to getconf
+push @{$EXPORT_TAGS{"getconf"}},  @{$EXPORT_TAGS{"holdingdisk_key"}};
 
 
-push @EXPORT_OK, qw($HOLDING_DISKSIZE);
-push @{$EXPORT_TAGS{"holdingdisk_key"}}, qw($HOLDING_DISKSIZE);
 
 
-$_holdingdisk_key_VALUES{"HOLDING_DISKSIZE"} = $HOLDING_DISKSIZE;
+use Amanda::Config::FoldingHash;
 
 
-push @EXPORT_OK, qw($HOLDING_CHUNKSIZE);
-push @{$EXPORT_TAGS{"holdingdisk_key"}}, qw($HOLDING_CHUNKSIZE);
+=pod
 
 
-$_holdingdisk_key_VALUES{"HOLDING_CHUNKSIZE"} = $HOLDING_CHUNKSIZE;
+Holdingdisk Parameters:       C<$HOLDING_COMMENT> C<$HOLDING_DISKDIR> C<$HOLDING_DISKSIZE> C<$HOLDING_CHUNKSIZE>
 
 
-#copy symbols in holdingdisk_key to getconf
-push @{$EXPORT_TAGS{"getconf"}},  @{$EXPORT_TAGS{"holdingdisk_key"}};
+=cut
 
 push @EXPORT_OK, qw(application_key_to_string);
 push @{$EXPORT_TAGS{"application_key"}}, qw(application_key_to_string);
 
 push @EXPORT_OK, qw(application_key_to_string);
 push @{$EXPORT_TAGS{"application_key"}}, qw(application_key_to_string);
@@ -1399,23 +888,20 @@ sub application_key_to_string {
     return $enumval;
 }
 
     return $enumval;
 }
 
-push @EXPORT_OK, qw($APPLICATION_COMMENT);
-push @{$EXPORT_TAGS{"application_key"}}, qw($APPLICATION_COMMENT);
-
-$_application_key_VALUES{"APPLICATION_COMMENT"} = $APPLICATION_COMMENT;
+push @EXPORT_OK, qw( $APPLICATION_COMMENT $APPLICATION_PLUGIN $APPLICATION_PROPERTY);
+push @{$EXPORT_TAGS{"application_key"}}, qw( $APPLICATION_COMMENT $APPLICATION_PLUGIN $APPLICATION_PROPERTY);
+      foreach (qw(  APPLICATION_COMMENT APPLICATION_PLUGIN APPLICATION_PROPERTY)) {    $_application_key_VALUES{$_} = $$_;      }  
+#copy symbols in application_key to getconf
+push @{$EXPORT_TAGS{"getconf"}},  @{$EXPORT_TAGS{"application_key"}};
 
 
-push @EXPORT_OK, qw($APPLICATION_PLUGIN);
-push @{$EXPORT_TAGS{"application_key"}}, qw($APPLICATION_PLUGIN);
 
 
-$_application_key_VALUES{"APPLICATION_PLUGIN"} = $APPLICATION_PLUGIN;
+use Amanda::Config::FoldingHash;
 
 
-push @EXPORT_OK, qw($APPLICATION_PROPERTY);
-push @{$EXPORT_TAGS{"application_key"}}, qw($APPLICATION_PROPERTY);
+=pod
 
 
-$_application_key_VALUES{"APPLICATION_PROPERTY"} = $APPLICATION_PROPERTY;
+Application Parameters:       C<$APPLICATION_COMMENT> C<$APPLICATION_PLUGIN> C<$APPLICATION_PROPERTY>
 
 
-#copy symbols in application_key to getconf
-push @{$EXPORT_TAGS{"getconf"}},  @{$EXPORT_TAGS{"application_key"}};
+=cut
 
 push @EXPORT_OK, qw(pp_script_key_to_string);
 push @{$EXPORT_TAGS{"pp_script_key"}}, qw(pp_script_key_to_string);
 
 push @EXPORT_OK, qw(pp_script_key_to_string);
 push @{$EXPORT_TAGS{"pp_script_key"}}, qw(pp_script_key_to_string);
@@ -1438,33 +924,20 @@ sub pp_script_key_to_string {
     return $enumval;
 }
 
     return $enumval;
 }
 
-push @EXPORT_OK, qw($PP_SCRIPT_COMMENT);
-push @{$EXPORT_TAGS{"pp_script_key"}}, qw($PP_SCRIPT_COMMENT);
-
-$_pp_script_key_VALUES{"PP_SCRIPT_COMMENT"} = $PP_SCRIPT_COMMENT;
-
-push @EXPORT_OK, qw($PP_SCRIPT_PLUGIN);
-push @{$EXPORT_TAGS{"pp_script_key"}}, qw($PP_SCRIPT_PLUGIN);
-
-$_pp_script_key_VALUES{"PP_SCRIPT_PLUGIN"} = $PP_SCRIPT_PLUGIN;
-
-push @EXPORT_OK, qw($PP_SCRIPT_PROPERTY);
-push @{$EXPORT_TAGS{"pp_script_key"}}, qw($PP_SCRIPT_PROPERTY);
-
-$_pp_script_key_VALUES{"PP_SCRIPT_PROPERTY"} = $PP_SCRIPT_PROPERTY;
+push @EXPORT_OK, qw( $PP_SCRIPT_COMMENT $PP_SCRIPT_PLUGIN $PP_SCRIPT_PROPERTY $PP_SCRIPT_EXECUTE_ON $PP_SCRIPT_EXECUTE_WHERE $PP_SCRIPT_ORDER);
+push @{$EXPORT_TAGS{"pp_script_key"}}, qw( $PP_SCRIPT_COMMENT $PP_SCRIPT_PLUGIN $PP_SCRIPT_PROPERTY $PP_SCRIPT_EXECUTE_ON $PP_SCRIPT_EXECUTE_WHERE $PP_SCRIPT_ORDER);
+      foreach (qw(  PP_SCRIPT_COMMENT PP_SCRIPT_PLUGIN PP_SCRIPT_PROPERTY PP_SCRIPT_EXECUTE_ON PP_SCRIPT_EXECUTE_WHERE PP_SCRIPT_ORDER)) {     $_pp_script_key_VALUES{$_} = $$_;      }  
+#copy symbols in pp_script_key to getconf
+push @{$EXPORT_TAGS{"getconf"}},  @{$EXPORT_TAGS{"pp_script_key"}};
 
 
-push @EXPORT_OK, qw($PP_SCRIPT_EXECUTE_ON);
-push @{$EXPORT_TAGS{"pp_script_key"}}, qw($PP_SCRIPT_EXECUTE_ON);
 
 
-$_pp_script_key_VALUES{"PP_SCRIPT_EXECUTE_ON"} = $PP_SCRIPT_EXECUTE_ON;
+use Amanda::Config::FoldingHash;
 
 
-push @EXPORT_OK, qw($PP_SCRIPT_EXECUTE_WHERE);
-push @{$EXPORT_TAGS{"pp_script_key"}}, qw($PP_SCRIPT_EXECUTE_WHERE);
+=pod
 
 
-$_pp_script_key_VALUES{"PP_SCRIPT_EXECUTE_WHERE"} = $PP_SCRIPT_EXECUTE_WHERE;
+Pre/Post-Script Parameters:       C<$PP_SCRIPT_COMMENT> C<$PP_SCRIPT_PLUGIN> C<$PP_SCRIPT_PROPERTY> C<$PP_SCRIPT_EXECUTE_ON> C<$PP_SCRIPT_EXECUTE_WHERE> C<$PP_SCRIPT_ORDER>
 
 
-#copy symbols in pp_script_key to getconf
-push @{$EXPORT_TAGS{"getconf"}},  @{$EXPORT_TAGS{"pp_script_key"}};
+=cut
 
 push @EXPORT_OK, qw(device_config_key_to_string);
 push @{$EXPORT_TAGS{"device_config_key"}}, qw(device_config_key_to_string);
 
 push @EXPORT_OK, qw(device_config_key_to_string);
 push @{$EXPORT_TAGS{"device_config_key"}}, qw(device_config_key_to_string);
@@ -1487,23 +960,20 @@ sub device_config_key_to_string {
     return $enumval;
 }
 
     return $enumval;
 }
 
-push @EXPORT_OK, qw($DEVICE_CONFIG_COMMENT);
-push @{$EXPORT_TAGS{"device_config_key"}}, qw($DEVICE_CONFIG_COMMENT);
-
-$_device_config_key_VALUES{"DEVICE_CONFIG_COMMENT"} = $DEVICE_CONFIG_COMMENT;
+push @EXPORT_OK, qw( $DEVICE_CONFIG_COMMENT $DEVICE_CONFIG_TAPEDEV $DEVICE_CONFIG_DEVICE_PROPERTY);
+push @{$EXPORT_TAGS{"device_config_key"}}, qw( $DEVICE_CONFIG_COMMENT $DEVICE_CONFIG_TAPEDEV $DEVICE_CONFIG_DEVICE_PROPERTY);
+      foreach (qw(  DEVICE_CONFIG_COMMENT DEVICE_CONFIG_TAPEDEV DEVICE_CONFIG_DEVICE_PROPERTY)) {      $_device_config_key_VALUES{$_} = $$_;      }  
+#copy symbols in device_config_key to getconf
+push @{$EXPORT_TAGS{"getconf"}},  @{$EXPORT_TAGS{"device_config_key"}};
 
 
-push @EXPORT_OK, qw($DEVICE_CONFIG_TAPEDEV);
-push @{$EXPORT_TAGS{"device_config_key"}}, qw($DEVICE_CONFIG_TAPEDEV);
 
 
-$_device_config_key_VALUES{"DEVICE_CONFIG_TAPEDEV"} = $DEVICE_CONFIG_TAPEDEV;
+use Amanda::Config::FoldingHash;
 
 
-push @EXPORT_OK, qw($DEVICE_CONFIG_DEVICE_PROPERTY);
-push @{$EXPORT_TAGS{"device_config_key"}}, qw($DEVICE_CONFIG_DEVICE_PROPERTY);
+=pod
 
 
-$_device_config_key_VALUES{"DEVICE_CONFIG_DEVICE_PROPERTY"} = $DEVICE_CONFIG_DEVICE_PROPERTY;
+Pre/Post-Script Parameters:       C<$DEVICE_CONFIG_COMMENT> C<$DEVICE_CONFIG_TAPEDEV> C<$DEVICE_CONFIG_DEVICE_PROPERTY>
 
 
-#copy symbols in device_config_key to getconf
-push @{$EXPORT_TAGS{"getconf"}},  @{$EXPORT_TAGS{"device_config_key"}};
+=cut
 
 push @EXPORT_OK, qw(changer_config_key_to_string);
 push @{$EXPORT_TAGS{"changer_config_key"}}, qw(changer_config_key_to_string);
 
 push @EXPORT_OK, qw(changer_config_key_to_string);
 push @{$EXPORT_TAGS{"changer_config_key"}}, qw(changer_config_key_to_string);
@@ -1526,33 +996,20 @@ sub changer_config_key_to_string {
     return $enumval;
 }
 
     return $enumval;
 }
 
-push @EXPORT_OK, qw($CHANGER_CONFIG_COMMENT);
-push @{$EXPORT_TAGS{"changer_config_key"}}, qw($CHANGER_CONFIG_COMMENT);
-
-$_changer_config_key_VALUES{"CHANGER_CONFIG_COMMENT"} = $CHANGER_CONFIG_COMMENT;
-
-push @EXPORT_OK, qw($CHANGER_CONFIG_TAPEDEV);
-push @{$EXPORT_TAGS{"changer_config_key"}}, qw($CHANGER_CONFIG_TAPEDEV);
-
-$_changer_config_key_VALUES{"CHANGER_CONFIG_TAPEDEV"} = $CHANGER_CONFIG_TAPEDEV;
-
-push @EXPORT_OK, qw($CHANGER_CONFIG_TPCHANGER);
-push @{$EXPORT_TAGS{"changer_config_key"}}, qw($CHANGER_CONFIG_TPCHANGER);
-
-$_changer_config_key_VALUES{"CHANGER_CONFIG_TPCHANGER"} = $CHANGER_CONFIG_TPCHANGER;
+push @EXPORT_OK, qw( $CHANGER_CONFIG_COMMENT $CHANGER_CONFIG_TAPEDEV $CHANGER_CONFIG_TPCHANGER $CHANGER_CONFIG_CHANGERDEV $CHANGER_CONFIG_CHANGERFILE $CHANGER_CONFIG_PROPERTY $CHANGER_CONFIG_DEVICE_PROPERTY);
+push @{$EXPORT_TAGS{"changer_config_key"}}, qw( $CHANGER_CONFIG_COMMENT $CHANGER_CONFIG_TAPEDEV $CHANGER_CONFIG_TPCHANGER $CHANGER_CONFIG_CHANGERDEV $CHANGER_CONFIG_CHANGERFILE $CHANGER_CONFIG_PROPERTY $CHANGER_CONFIG_DEVICE_PROPERTY);
+      foreach (qw(  CHANGER_CONFIG_COMMENT CHANGER_CONFIG_TAPEDEV CHANGER_CONFIG_TPCHANGER CHANGER_CONFIG_CHANGERDEV CHANGER_CONFIG_CHANGERFILE CHANGER_CONFIG_PROPERTY CHANGER_CONFIG_DEVICE_PROPERTY)) {     $_changer_config_key_VALUES{$_} = $$_;      }  
+#copy symbols in changer_config_key to getconf
+push @{$EXPORT_TAGS{"getconf"}},  @{$EXPORT_TAGS{"changer_config_key"}};
 
 
-push @EXPORT_OK, qw($CHANGER_CONFIG_CHANGERDEV);
-push @{$EXPORT_TAGS{"changer_config_key"}}, qw($CHANGER_CONFIG_CHANGERDEV);
 
 
-$_changer_config_key_VALUES{"CHANGER_CONFIG_CHANGERDEV"} = $CHANGER_CONFIG_CHANGERDEV;
+use Amanda::Config::FoldingHash;
 
 
-push @EXPORT_OK, qw($CHANGER_CONFIG_CHANGERFILE);
-push @{$EXPORT_TAGS{"changer_config_key"}}, qw($CHANGER_CONFIG_CHANGERFILE);
+=pod
 
 
-$_changer_config_key_VALUES{"CHANGER_CONFIG_CHANGERFILE"} = $CHANGER_CONFIG_CHANGERFILE;
+Pre/Post-Script Parameters:       C<$CHANGER_CONFIG_COMMENT> C<$CHANGER_CONFIG_TAPEDEV> C<$CHANGER_CONFIG_TPCHANGER> C<$CHANGER_CONFIG_CHANGERDEV> C<$CHANGER_CONFIG_CHANGERFILE> C<$CHANGER_CONFIG_PROPERTY> C<$CHANGER_CONFIG_DEVICE_PROPERTY>
 
 
-#copy symbols in changer_config_key to getconf
-push @{$EXPORT_TAGS{"getconf"}},  @{$EXPORT_TAGS{"changer_config_key"}};
+=cut
 
 push @EXPORT_OK, qw(dump_holdingdisk_t_to_string);
 push @{$EXPORT_TAGS{"dump_holdingdisk_t"}}, qw(dump_holdingdisk_t_to_string);
 
 push @EXPORT_OK, qw(dump_holdingdisk_t_to_string);
 push @{$EXPORT_TAGS{"dump_holdingdisk_t"}}, qw(dump_holdingdisk_t_to_string);
@@ -1794,6 +1251,50 @@ $_estimate_t_VALUES{"ES_CALCSIZE"} = $ES_CALCSIZE;
 #copy symbols in estimate_t to getconf
 push @{$EXPORT_TAGS{"getconf"}},  @{$EXPORT_TAGS{"estimate_t"}};
 
 #copy symbols in estimate_t to getconf
 push @{$EXPORT_TAGS{"getconf"}},  @{$EXPORT_TAGS{"estimate_t"}};
 
+push @EXPORT_OK, qw(autolabel_enum_t_to_string);
+push @{$EXPORT_TAGS{"autolabel_enum_t"}}, qw(autolabel_enum_t_to_string);
+
+my %_autolabel_enum_t_VALUES;
+#Convert an enum value to a single string
+sub autolabel_enum_t_to_string {
+    my ($enumval) = @_;
+
+    for my $k (keys %_autolabel_enum_t_VALUES) {
+       my $v = $_autolabel_enum_t_VALUES{$k};
+
+       #is this a matching flag?
+       if ($enumval == $v) {
+           return $k;
+       }
+    }
+
+#default, just return the number
+    return $enumval;
+}
+
+push @EXPORT_OK, qw($AL_OTHER_CONFIG);
+push @{$EXPORT_TAGS{"autolabel_enum_t"}}, qw($AL_OTHER_CONFIG);
+
+$_autolabel_enum_t_VALUES{"AL_OTHER_CONFIG"} = $AL_OTHER_CONFIG;
+
+push @EXPORT_OK, qw($AL_NON_AMANDA);
+push @{$EXPORT_TAGS{"autolabel_enum_t"}}, qw($AL_NON_AMANDA);
+
+$_autolabel_enum_t_VALUES{"AL_NON_AMANDA"} = $AL_NON_AMANDA;
+
+push @EXPORT_OK, qw($AL_VOLUME_ERROR);
+push @{$EXPORT_TAGS{"autolabel_enum_t"}}, qw($AL_VOLUME_ERROR);
+
+$_autolabel_enum_t_VALUES{"AL_VOLUME_ERROR"} = $AL_VOLUME_ERROR;
+
+push @EXPORT_OK, qw($AL_EMPTY);
+push @{$EXPORT_TAGS{"autolabel_enum_t"}}, qw($AL_EMPTY);
+
+$_autolabel_enum_t_VALUES{"AL_EMPTY"} = $AL_EMPTY;
+
+#copy symbols in autolabel_enum_t to getconf
+push @{$EXPORT_TAGS{"getconf"}},  @{$EXPORT_TAGS{"autolabel_enum_t"}};
+
 push @EXPORT_OK, qw(taperalgo_t_to_string);
 push @{$EXPORT_TAGS{"taperalgo_t"}}, qw(taperalgo_t_to_string);
 
 push @EXPORT_OK, qw(taperalgo_t_to_string);
 push @{$EXPORT_TAGS{"taperalgo_t"}}, qw(taperalgo_t_to_string);
 
@@ -1976,10 +1477,83 @@ $_send_amreport_on_t_VALUES{"SEND_AMREPORT_NEVER"} = $SEND_AMREPORT_NEVER;
 #copy symbols in send_amreport_on_t to getconf
 push @{$EXPORT_TAGS{"getconf"}},  @{$EXPORT_TAGS{"send_amreport_on_t"}};
 
 #copy symbols in send_amreport_on_t to getconf
 push @{$EXPORT_TAGS{"getconf"}},  @{$EXPORT_TAGS{"send_amreport_on_t"}};
 
-push @EXPORT_OK, qw(getconf getconf_seen 
+push @EXPORT_OK, qw(data_path_t_to_string);
+push @{$EXPORT_TAGS{"data_path_t"}}, qw(data_path_t_to_string);
+
+my %_data_path_t_VALUES;
+#Convert an enum value to a single string
+sub data_path_t_to_string {
+    my ($enumval) = @_;
+
+    for my $k (keys %_data_path_t_VALUES) {
+       my $v = $_data_path_t_VALUES{$k};
+
+       #is this a matching flag?
+       if ($enumval == $v) {
+           return $k;
+       }
+    }
+
+#default, just return the number
+    return $enumval;
+}
+
+push @EXPORT_OK, qw($DATA_PATH_AMANDA);
+push @{$EXPORT_TAGS{"data_path_t"}}, qw($DATA_PATH_AMANDA);
+
+$_data_path_t_VALUES{"DATA_PATH_AMANDA"} = $DATA_PATH_AMANDA;
+
+push @EXPORT_OK, qw($DATA_PATH_DIRECTTCP);
+push @{$EXPORT_TAGS{"data_path_t"}}, qw($DATA_PATH_DIRECTTCP);
+
+$_data_path_t_VALUES{"DATA_PATH_DIRECTTCP"} = $DATA_PATH_DIRECTTCP;
+
+#copy symbols in data_path_t to getconf
+push @{$EXPORT_TAGS{"getconf"}},  @{$EXPORT_TAGS{"data_path_t"}};
+
+push @EXPORT_OK, qw(part_cache_type_t_to_string);
+push @{$EXPORT_TAGS{"part_cache_type_t"}}, qw(part_cache_type_t_to_string);
+
+my %_part_cache_type_t_VALUES;
+#Convert an enum value to a single string
+sub part_cache_type_t_to_string {
+    my ($enumval) = @_;
+
+    for my $k (keys %_part_cache_type_t_VALUES) {
+       my $v = $_part_cache_type_t_VALUES{$k};
+
+       #is this a matching flag?
+       if ($enumval == $v) {
+           return $k;
+       }
+    }
+
+#default, just return the number
+    return $enumval;
+}
+
+push @EXPORT_OK, qw($PART_CACHE_TYPE_NONE);
+push @{$EXPORT_TAGS{"part_cache_type_t"}}, qw($PART_CACHE_TYPE_NONE);
+
+$_part_cache_type_t_VALUES{"PART_CACHE_TYPE_NONE"} = $PART_CACHE_TYPE_NONE;
+
+push @EXPORT_OK, qw($PART_CACHE_TYPE_DISK);
+push @{$EXPORT_TAGS{"part_cache_type_t"}}, qw($PART_CACHE_TYPE_DISK);
+
+$_part_cache_type_t_VALUES{"PART_CACHE_TYPE_DISK"} = $PART_CACHE_TYPE_DISK;
+
+push @EXPORT_OK, qw($PART_CACHE_TYPE_MEMORY);
+push @{$EXPORT_TAGS{"part_cache_type_t"}}, qw($PART_CACHE_TYPE_MEMORY);
+
+$_part_cache_type_t_VALUES{"PART_CACHE_TYPE_MEMORY"} = $PART_CACHE_TYPE_MEMORY;
+
+#copy symbols in part_cache_type_t to getconf
+push @{$EXPORT_TAGS{"getconf"}},  @{$EXPORT_TAGS{"part_cache_type_t"}};
+
+push @EXPORT_OK, qw(getconf getconf_seen getconf_linenum
     getconf_byname getconf_byname_strs
     getconf_list);
     getconf_byname getconf_byname_strs
     getconf_list);
-push @{$EXPORT_TAGS{"getconf"}}, qw(getconf getconf_seen 
+push @{$EXPORT_TAGS{"getconf"}}, qw(getconf getconf_seen getconf_linenum
     getconf_byname getconf_byname_strs
     getconf_list);
 
     getconf_byname getconf_byname_strs
     getconf_list);
 
@@ -1999,10 +1573,10 @@ push @{$EXPORT_TAGS{"getconf"}}, qw(lookup_interface interface_getconf interface
     interface_seen interface_seen);
 
 push @EXPORT_OK, qw(lookup_holdingdisk holdingdisk_getconf holdingdisk_name
     interface_seen interface_seen);
 
 push @EXPORT_OK, qw(lookup_holdingdisk holdingdisk_getconf holdingdisk_name
-    getconf_holdingdisks holdingdisk_next
+    getconf_holdingdisks
     holdingdisk_seen holdingdisk_seen);
 push @{$EXPORT_TAGS{"getconf"}}, qw(lookup_holdingdisk holdingdisk_getconf holdingdisk_name
     holdingdisk_seen holdingdisk_seen);
 push @{$EXPORT_TAGS{"getconf"}}, qw(lookup_holdingdisk holdingdisk_getconf holdingdisk_name
-    getconf_holdingdisks holdingdisk_next
+    getconf_holdingdisks
     holdingdisk_seen holdingdisk_seen);
 
 push @EXPORT_OK, qw(lookup_application application_getconf application_name
     holdingdisk_seen holdingdisk_seen);
 
 push @EXPORT_OK, qw(lookup_application application_getconf application_name
@@ -2025,13 +1599,17 @@ push @EXPORT_OK, qw(lookup_changer_config changer_config_getconf changer_config_
 push @{$EXPORT_TAGS{"getconf"}}, qw(lookup_changer_config changer_config_getconf changer_config_name
     changer_config_seen changer_config_seen);
 
 push @{$EXPORT_TAGS{"getconf"}}, qw(lookup_changer_config changer_config_getconf changer_config_name
     changer_config_seen changer_config_seen);
 
+# only those keys with a value of '1' should be shown; the
+# others are deprecated
 our %subsection_names = (
     "tapetype" => 1,
     "dumptype" => 1,
     "interface" => 1,
     "holdingdisk" => 1,
 our %subsection_names = (
     "tapetype" => 1,
     "dumptype" => 1,
     "interface" => 1,
     "holdingdisk" => 1,
-    "application-tool" => 1,
-    "script-tool" => 1,
+    "application" => 1,
+    "script" => 1,
+    "application-tool" => 0,
+    "script-tool" => 0,
     "device" => 1,
     "changer" => 1,
 );
     "device" => 1,
     "changer" => 1,
 );
@@ -2041,13 +1619,13 @@ push @{$EXPORT_TAGS{"getconf"}}, qw(%subsection_names);
 
 push @EXPORT_OK, qw(getconf_unit_divisor
 
 
 push @EXPORT_OK, qw(getconf_unit_divisor
 
-    $debug_amandad $debug_amidxtaped $debug_amindexd $debug_amrecover
+    $debug_amandad $debug_recovery $debug_amidxtaped $debug_amindexd $debug_amrecover
     $debug_auth $debug_event $debug_holding $debug_protocol
     $debug_planner $debug_driver $debug_dumper $debug_chunker
     $debug_taper $debug_selfcheck $debug_sendsize $debug_sendbackup);
 push @{$EXPORT_TAGS{"getconf"}}, qw(getconf_unit_divisor
 
     $debug_auth $debug_event $debug_holding $debug_protocol
     $debug_planner $debug_driver $debug_dumper $debug_chunker
     $debug_taper $debug_selfcheck $debug_sendsize $debug_sendbackup);
 push @{$EXPORT_TAGS{"getconf"}}, qw(getconf_unit_divisor
 
-    $debug_amandad $debug_amidxtaped $debug_amindexd $debug_amrecover
+    $debug_amandad $debug_recovery $debug_amidxtaped $debug_amindexd $debug_amrecover
     $debug_auth $debug_event $debug_holding $debug_protocol
     $debug_planner $debug_driver $debug_dumper $debug_chunker
     $debug_taper $debug_selfcheck $debug_sendsize $debug_sendbackup);
     $debug_auth $debug_event $debug_holding $debug_protocol
     $debug_planner $debug_driver $debug_dumper $debug_chunker
     $debug_taper $debug_selfcheck $debug_sendsize $debug_sendbackup);
@@ -2143,13 +1721,26 @@ push @{$EXPORT_TAGS{"init"}},  @{$EXPORT_TAGS{"config_init_flags"}};
 push @EXPORT_OK, qw(config_init config_uninit get_config_options
     get_config_name get_config_dir get_config_filename
     config_print_errors config_clear_errors config_errors
 push @EXPORT_OK, qw(config_init config_uninit get_config_options
     get_config_name get_config_dir get_config_filename
     config_print_errors config_clear_errors config_errors
-    new_config_overwrites free_config_overwrites add_config_overwrite
-    add_config_overwrite_opt apply_config_overwrites);
+    new_config_overrides free_config_overrides add_config_override
+    add_config_override_opt set_config_overrides);
 push @{$EXPORT_TAGS{"init"}}, qw(config_init config_uninit get_config_options
     get_config_name get_config_dir get_config_filename
     config_print_errors config_clear_errors config_errors
 push @{$EXPORT_TAGS{"init"}}, qw(config_init config_uninit get_config_options
     get_config_name get_config_dir get_config_filename
     config_print_errors config_clear_errors config_errors
-    new_config_overwrites free_config_overwrites add_config_overwrite
-    add_config_overwrite_opt apply_config_overwrites);
+    new_config_overrides free_config_overrides add_config_override
+    add_config_override_opt set_config_overrides);
 
 push @EXPORT_OK, qw(dump_configuration config_dir_relative taperalgo2str find_multiplier);
 
 push @EXPORT_OK, qw(dump_configuration config_dir_relative taperalgo2str find_multiplier);
+
+
+sub string_to_boolean {
+    my ($str) = @_;
+    my $ret = C_string_to_boolean($str);
+    return undef unless $ret >= 0;
+    return $ret;
+}
+
+
+push @EXPORT_OK, qw(string_to_boolean);
+
+push @EXPORT_OK, qw(amandaify_property_name);
 1;
 1;