[Box Backup-dev] COMMIT r807 - box/trunk/bin/bbackupquery
boxbackup-dev at fluffy.co.uk
boxbackup-dev at fluffy.co.uk
Mon Aug 21 00:12:32 BST 2006
Author: chris
Date: 2006-08-21 00:12:32 +0100 (Mon, 21 Aug 2006)
New Revision: 807
Modified:
box/trunk/bin/bbackupquery/BackupQueries.cpp
Log:
* bin/bbackupquery/BackupQueries.cpp
- Use a nicer data structure for commands and their options.
Modified: box/trunk/bin/bbackupquery/BackupQueries.cpp
===================================================================
--- box/trunk/bin/bbackupquery/BackupQueries.cpp 2006-08-20 22:52:09 UTC (rev 806)
+++ box/trunk/bin/bbackupquery/BackupQueries.cpp 2006-08-20 23:12:32 UTC (rev 807)
@@ -89,6 +89,12 @@
{
}
+typedef struct
+{
+ const char* name;
+ const char* opts;
+} QueryCommandSpecification;
+
// --------------------------------------------------------------------------
//
// Function
@@ -166,8 +172,24 @@
}
// Data about commands
- static const char *commandNames[] = {"quit", "exit", "list", "pwd", "cd", "lcd", "sh", "getobject", "get", "compare", "restore", "help", "usage", "undelete", 0};
- static const char *validOptions[] = {"", "", "rodIFtsh", "", "od", "", "", "", "i", "alcqE", "dri", "", "", "", 0};
+ static QueryCommandSpecification commands[] =
+ {
+ { "quit", "" },
+ { "exit", "" },
+ { "list", "rodIFtsh", },
+ { "pwd", "" },
+ { "cd", "od" },
+ { "lcd", "" },
+ { "sh", "" },
+ { "getobject", "" },
+ { "get", "i" },
+ { "compare", "alcqE" },
+ { "restore", "dri" },
+ { "help", "" },
+ { "usage", "" },
+ { "undelete", "" },
+ { NULL, NULL }
+ };
#define COMMAND_Quit 0
#define COMMAND_Exit 1
#define COMMAND_List 2
@@ -187,11 +209,11 @@
// Work out which command it is...
int cmd = 0;
- while(commandNames[cmd] != 0 && ::strcmp(cmdElements[0].c_str(), commandNames[cmd]) != 0)
+ while(commands[cmd].name != 0 && ::strcmp(cmdElements[0].c_str(), commands[cmd].name) != 0)
{
cmd++;
}
- if(commandNames[cmd] == 0)
+ if(commands[cmd].name == 0)
{
// Check for aliases
int a;
@@ -226,9 +248,10 @@
while(*c != 0)
{
// Valid option?
- if(::strchr(validOptions[cmd], *c) == NULL)
+ if(::strchr(commands[cmd].opts, *c) == NULL)
{
- printf("Invalid option '%c' for command %s\n", *c, commandNames[cmd]);
+ printf("Invalid option '%c' for command %s\n",
+ *c, commands[cmd].name);
return;
}
opts[(int)*c] = true;
More information about the Boxbackup-dev
mailing list