[Box Backup-commit] COMMIT r1604 - box/chris/merge/bin/bbackupquery

boxbackup-dev at fluffy.co.uk boxbackup-dev at fluffy.co.uk
Sat Apr 28 22:24:17 BST 2007


Author: chris
Date: 2007-04-28 22:24:17 +0100 (Sat, 28 Apr 2007)
New Revision: 1604

Modified:
   box/chris/merge/bin/bbackupquery/BackupQueries.cpp
Log:
Return an error code on failure of lcd command.

Return an error code if get command fails due to the file already existing.

(refs #3, merges [1516])


Modified: box/chris/merge/bin/bbackupquery/BackupQueries.cpp
===================================================================
--- box/chris/merge/bin/bbackupquery/BackupQueries.cpp	2007-04-28 21:19:34 UTC (rev 1603)
+++ box/chris/merge/bin/bbackupquery/BackupQueries.cpp	2007-04-28 21:24:17 UTC (rev 1604)
@@ -55,11 +55,11 @@
 #undef min
 #undef max
 
-#define COMPARE_RETURN_SAME			1
+#define COMPARE_RETURN_SAME		1
 #define COMPARE_RETURN_DIFFERENT	2
 #define COMPARE_RETURN_ERROR		3
+#define COMMAND_RETURN_ERROR		4
 
-
 // --------------------------------------------------------------------------
 //
 // Function
@@ -786,13 +786,19 @@
 	if(args.size() != 1 || args[0].size() == 0)
 	{
 		printf("Incorrect usage.\nlcd <local-directory>\n");
+		SetReturnCode(COMMAND_RETURN_ERROR);
 		return;
 	}
 	
 	// Try changing directory
 #ifdef WIN32
 	std::string dirName;
-	if(!ConvertConsoleToUtf8(args[0].c_str(), dirName)) return;
+	if(!ConvertConsoleToUtf8(args[0].c_str(), dirName))
+	{
+		printf("Failed to convert path from console encoding.\n");
+		SetReturnCode(COMMAND_RETURN_ERROR);
+		return;
+	}
 	int result = ::chdir(dirName.c_str());
 #else
 	int result = ::chdir(args[0].c_str());
@@ -801,6 +807,7 @@
 	{
 		printf((errno == ENOENT || errno == ENOTDIR)?"Directory '%s' does not exist\n":"Error changing dir to '%s'\n",
 			args[0].c_str());
+		SetReturnCode(COMMAND_RETURN_ERROR);
 		return;
 	}
 	
@@ -809,11 +816,17 @@
 	if(::getcwd(wd, PATH_MAX) == 0)
 	{
 		printf("Error getting current directory\n");
+		SetReturnCode(COMMAND_RETURN_ERROR);
 		return;
 	}
 
 #ifdef WIN32
-	if(!ConvertUtf8ToConsole(wd, dirName)) return;
+	if(!ConvertUtf8ToConsole(wd, dirName))
+	{
+		printf("Failed to convert new path from console encoding.\n");
+		SetReturnCode(COMMAND_RETURN_ERROR);
+		return;
+	}
 	printf("Local current directory is now '%s'\n", dirName.c_str());
 #else
 	printf("Local current directory is now '%s'\n", wd);
@@ -1014,7 +1027,9 @@
 	struct stat st;
 	if(::stat(localName.c_str(), &st) == 0 || errno != ENOENT)
 	{
-		printf("The local file %s already exists, will not overwrite it.\n", localName.c_str());
+		printf("The local file %s already exists, will not "
+			"overwrite it.\n", localName.c_str());
+		SetReturnCode(COMMAND_RETURN_ERROR);
 		return;
 	}
 	




More information about the Boxbackup-commit mailing list