[pacman-contrib] [PATCH] pacsort: Make help/version output follow std-options

Johannes Löthberg johannes at kyriasis.com
Sun Oct 23 14:25:15 UTC 2016


Signed-off-by: Johannes Löthberg <johannes at kyriasis.com>
---
 src/pacsort.c | 17 ++++++++++++++++-
 1 file changed, 16 insertions(+), 1 deletion(-)

diff --git a/src/pacsort.c b/src/pacsort.c
index 6d1bf25..019f202 100644
--- a/src/pacsort.c
+++ b/src/pacsort.c
@@ -67,6 +67,7 @@ static struct options_t {
 	int null;
 	int filemode;
 	int help;
+	int version;
 	char delim;
 } opts;
 
@@ -418,7 +419,7 @@ static char escape_char(const char *string)
 
 static void usage(void)
 {
-	fprintf(stderr, "pacsort (pacman) v" PACKAGE_VERSION "\n\n"
+	printf("pacsort (pacman) v" PACKAGE_VERSION "\n\n"
 			"A sort utility implementing alpm_pkg_vercmp.\n\n"
 			"Usage: pacsort [options] [files...]\n\n"
 			"  -f, --files             assume inputs are file paths of packages\n"
@@ -432,6 +433,11 @@ static void usage(void)
 			"Standard input is read when no files are given.\n\n");
 }
 
+static void version(void)
+{
+	printf("pacsort v" PACKAGE_VERSION "\n");
+}
+
 static int parse_options(int argc, char **argv)
 {
 	int opt;
@@ -442,6 +448,7 @@ static int parse_options(int argc, char **argv)
 		{"key",       required_argument,    0, 'k'},
 		{"reverse",   no_argument,          0, 'r'},
 		{"separator", required_argument,    0, 't'},
+		{"version",   no_argument,          0, 'v'},
 		{"null",      no_argument,          0, 'z'},
 		{0, 0, 0, 0}
 	};
@@ -471,6 +478,9 @@ static int parse_options(int argc, char **argv)
 					return 1;
 				}
 				break;
+			case 'v':
+				opts.version = 1;
+				return 0;
 			case 'z':
 				opts.null = 1;
 				break;
@@ -505,6 +515,11 @@ int main(int argc, char *argv[])
 		return 0;
 	}
 
+	if(opts.version) {
+		version();
+		return 0;
+	}
+
 	list = list_new(100);
 	buffer = buffer_new(BUFSIZ * 3);
 
-- 
2.10.1


More information about the pacman-contrib mailing list