/*
* Amanda, The Advanced Maryland Automatic Network Disk Archiver
* Copyright (c) 1991-1998 University of Maryland at College Park
+ * Copyright (c) 2007-2012 Zmanda, Inc. All Rights Reserved.
* All Rights Reserved.
*
* Permission to use, copy, modify, distribute, and sell this software and its
static gboolean print_source = 0;
static int opt_days = -1;
static char *opt_sort = NULL;
+static gboolean exact_match = FALSE;
static gboolean opt_long = 0;
static gboolean opt_outdated = 0;
{"print-source" , 0, NULL, 3},
{"days" , 1, NULL, 4},
{"sort" , 1, NULL, 5},
+ {"exact-match" , 0, NULL, 6},
{NULL, 0, NULL, 0}
};
break;
case 5: opt_sort = g_strdup(optarg);
break;
+ case 6: exact_match = TRUE;
+ break;
case 'l': opt_long = TRUE;
break;
case 'd': opt_outdated = TRUE;
{
int i;
- g_fprintf(stderr, _("\nUsage: %s [--version] [--no-default] [--print-source] [-o configoption]*\n <conf> <command> {<args>} ...\n"),
+ g_fprintf(stderr, _("\nUsage: %s [--version] [--exact-match] [--no-default] [--print-source] [-o configoption]*\n <conf> <command> {<args>} ...\n"),
get_pname());
g_fprintf(stderr, _(" Valid <command>s are:\n"));
for (i = 0; i < NCMDS; i++)
usage();
}
- errstr = match_disklist(&diskq, argc-3, argv+3);
+ errstr = match_disklist(&diskq, exact_match, argc-3, argv+3);
if (errstr) {
g_printf("%s", errstr);
amfree(errstr);
}
}
start_argc=4;
- errstr = match_disklist(&diskq, argc-(start_argc-1), argv+(start_argc-1));
+ errstr = match_disklist(&diskq, exact_match, argc-(start_argc-1),
+ argv+(start_argc-1));
/* check all log file exists */
output_find_log = find_log();
disk_t *dp;
amfree(errstr);
- errstr = match_disklist(&diskq, argc-(start_argc-1),
- argv+(start_argc-1));
+ errstr = match_disklist(&diskq, exact_match, argc-(start_argc-1),
+ argv+(start_argc-1));
if (errstr) {
g_printf("%s", errstr);
amfree(errstr);
get_file_list(
int argc,
char **argv,
- int allow_empty)
+ int allow_empty,
+ gboolean exact_match)
{
GSList * file_list = NULL;
GSList * dumplist;
flags = CMDLINE_PARSE_DATESTAMP;
if (allow_empty) flags |= CMDLINE_EMPTY_TO_WILDCARD;
+ if (exact_match) flags |= CMDLINE_EXACT_MATCH;
dumplist = cmdline_parse_dumpspecs(argc, argv, flags);
file_list = cmdline_match_holding(dumplist);
_("size (kB)"), _("lv"), _("outd"), _("dump specification"));
}
- file_list = get_file_list(argc, argv, 1);
+ file_list = get_file_list(argc, argv, 1, exact_match);
for (li = file_list; li != NULL; li = li->next) {
char *dumpstr;
int is_outdated;
case HOLDING_DELETE:
argc -= 4; argv += 4;
- file_list = get_file_list(argc, argv, 0);
+ file_list = get_file_list(argc, argv, 0, exact_match);
for (li = file_list; li != NULL; li = li->next) {
g_fprintf(stderr, _("Deleting '%s'\n"), (char *)li->data);
/* remove it from the catalog */