Commit Diff


commit - 52e88aae7eb86a6ad3e485f55129f7901f39de96
commit + f8afbdc86ed6dde7d7bc0d2c51f6a89a358412c3
blob - 9d1c786a38fb23f2e9e4185514ba62946a85d401
blob + a3a9541fc5a19125ce634243cfce263facfa515c
--- got/got.c
+++ got/got.c
@@ -219,7 +219,10 @@ main(int argc, char *argv[])
 			got_commands[i].cmd_usage();
 
 		error = got_commands[i].cmd_main(argc, argv);
-		if (error && !(sigint_received || sigpipe_received)) {
+		if (error && error->code != GOT_ERR_CANCELLED &&
+		    error->code != GOT_ERR_PRIVSEP_EXIT &&
+		    !(sigpipe_received &&
+		      error->code == GOT_ERR_ERRNO && errno == EPIPE)) {
 			fprintf(stderr, "%s: %s\n", getprogname(), error->msg);
 			return 1;
 		}