9c64b5b
Index: tests/unit-test-keyrings.c
9c64b5b
===================================================================
9c64b5b
--- tests/unit-test-keyrings.c	(revision 842)
9c64b5b
+++ tests/unit-test-keyrings.c	(revision 843)
9c64b5b
@@ -249,8 +249,8 @@
9c64b5b
 }
9c64b5b
 
9c64b5b
 /* 
9c64b5b
- * A find that does not match should return zero results, not some error message:
9c64b5b
- * http://bugzilla.gnome.org/show_bug.cgi?id=447315
9c64b5b
+ * A find that does not match should return 'Not Found':
9c64b5b
+ * http://bugzilla.gnome.org/show_bug.cgi?id=476682
9c64b5b
  */
9c64b5b
 void unit_test_find_invalid (CuTest* cu)
9c64b5b
 {
9c64b5b
@@ -263,8 +263,7 @@
9c64b5b
 	
9c64b5b
 	/* Now try to find it */
9c64b5b
 	res = gnome_keyring_find_items_sync (GNOME_KEYRING_ITEM_GENERIC_SECRET, attrs, &found);
9c64b5b
-	CuAssertIntEquals(cu, GNOME_KEYRING_RESULT_OK, res);
9c64b5b
-	CuAssert(cu, "Shouldn't have matched any items", g_list_length (found) == 0);
9c64b5b
+	CuAssertIntEquals(cu, GNOME_KEYRING_RESULT_NO_MATCH, res);
9c64b5b
 }
9c64b5b
 
9c64b5b
 void unit_test_lock_keyrings (CuTest* cu)
9c64b5b
Index: daemon/gkr-daemon-ops.c
9c64b5b
===================================================================
9c64b5b
--- daemon/gkr-daemon-ops.c	(revision 842)
9c64b5b
+++ daemon/gkr-daemon-ops.c	(revision 843)
9c64b5b
@@ -1784,8 +1784,12 @@
9c64b5b
 	if (ctx.nfound > 0 && ctx.items == NULL)
9c64b5b
 		gkr_buffer_add_uint32 (result, GNOME_KEYRING_RESULT_DENIED);
9c64b5b
 		
9c64b5b
-	/* Zero or more items matched and given access to */
9c64b5b
-	else
9c64b5b
+	/* Zero items matched  */
9c64b5b
+	else if (ctx.nfound == 0)
9c64b5b
+		gkr_buffer_add_uint32 (result, GNOME_KEYRING_RESULT_NO_MATCH);
9c64b5b
+
9c64b5b
+	/* More than one item found and given access to */
9c64b5b
+	else	
9c64b5b
 		gkr_buffer_add_uint32 (result, GNOME_KEYRING_RESULT_OK);
9c64b5b
 
9c64b5b
 	ctx.items = g_list_sort_with_data (ctx.items, sort_found, ctx.attributes);
9c64b5b
Index: library/gnome-keyring-utils.c
9c64b5b
===================================================================
9c64b5b
--- library/gnome-keyring-utils.c	(revision 842)
9c64b5b
+++ library/gnome-keyring-utils.c	(revision 843)
9c64b5b
@@ -111,14 +111,25 @@
9c64b5b
 		return _("Access Denied");
9c64b5b
 	case GNOME_KEYRING_RESULT_NO_KEYRING_DAEMON:
9c64b5b
 		return _("The gnome-keyring-daemon application is not running.");
9c64b5b
-	case GNOME_KEYRING_RESULT_NO_SUCH_KEYRING:
9c64b5b
-		return _("The keyring has already been unlocked.");
9c64b5b
 	case GNOME_KEYRING_RESULT_IO_ERROR:
9c64b5b
 		return _("Error communicating with gnome-keyring-daemon");
9c64b5b
 	case GNOME_KEYRING_RESULT_ALREADY_EXISTS:
9c64b5b
 		return _("A keyring with that name already exists");	
9c64b5b
 	case GNOME_KEYRING_RESULT_BAD_ARGUMENTS:
9c64b5b
 		return _("Programmer error: The application sent invalid data.");
9c64b5b
+		
9c64b5b
+	/* 
9c64b5b
+	 * TODO: These needs to be better messages, and translated in next 
9c64b5b
+	 * release. This was added late because poorly written programs 
9c64b5b
+	 * were assuming incorrect things about our result codes, and ABI
9c64b5b
+	 * compatibility and all that. 
9c64b5b
+	 * 
9c64b5b
+	 * http://bugzilla.gnome.org/show_bug.cgi?id=476682
9c64b5b
+	 */
9c64b5b
+	case GNOME_KEYRING_RESULT_NO_MATCH:
9c64b5b
+		return "No Results"; 
9c64b5b
+	case GNOME_KEYRING_RESULT_NO_SUCH_KEYRING:
9c64b5b
+		return "No such keyring exists";
9c64b5b
 	
9c64b5b
 	/* 
9c64b5b
 	 * This would be a dumb message to display to the user, we never return 
9c64b5b
Index: library/gnome-keyring-result.h
9c64b5b
===================================================================
9c64b5b
--- library/gnome-keyring-result.h	(revision 842)
9c64b5b
+++ library/gnome-keyring-result.h	(revision 843)
9c64b5b
@@ -33,7 +33,8 @@
9c64b5b
 	GNOME_KEYRING_RESULT_BAD_ARGUMENTS,
9c64b5b
 	GNOME_KEYRING_RESULT_IO_ERROR,
9c64b5b
 	GNOME_KEYRING_RESULT_CANCELLED,
9c64b5b
-	GNOME_KEYRING_RESULT_KEYRING_ALREADY_EXISTS
9c64b5b
+	GNOME_KEYRING_RESULT_KEYRING_ALREADY_EXISTS,
9c64b5b
+	GNOME_KEYRING_RESULT_NO_MATCH
9c64b5b
 } GnomeKeyringResult;
9c64b5b
 
9c64b5b
 #define GNOME_KEYRING_RESULT_ALREADY_EXISTS \