commit 4c1143e0678ef738c54e8f84c979e0fbe747c118
parent dfa27a5b7fa391a424b14e3e7a5e618783804cd2
Author: Jaromil <jaromil@dyne.org>
Date:   Wed, 14 Jan 2015 18:09:49 +0100
included own pgpewrap
Diffstat:
| A | src/gpgewrap.c |  |  | 64 | ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ | 
1 file changed, 64 insertions(+), 0 deletions(-)
diff --git a/src/gpgewrap.c b/src/gpgewrap.c
@@ -0,0 +1,64 @@
+/*
+ * C version by Wessel Dankers <wsl@fruit.eu.org>
+ *
+ * This code is in the public domain.
+ *
+ */
+#ifdef HAVE_CONFIG_H
+#include "config.h"
+#endif
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <unistd.h>
+#include <string.h>
+
+void print_usage(const char *progname) {
+	fprintf(stderr, "Command line usage: %s [flags] -- prefix [recipients]\n", progname);
+	exit(1);
+}
+
+int main(int argc, char **argv) {
+	char **opts, **opt, *pfx;
+	int i;
+
+	if (argc <= 1) {
+		print_usage(argv[0]);
+        }
+
+	opts = malloc((2 * argc + 1) * sizeof (* opts));	/* __MEM_CHECKED__ */
+	if(!opts) {
+		perror(argv[0]);
+		exit(2);
+	}
+
+	if (argc < 2)
+	{
+	  fprintf (stderr,
+		   "Command line usage: %s [flags] -- prefix [recipients]\n",
+		   argv[0]);
+	  return 1;
+	}
+
+	opt = opts;
+	*opt++ = argv[1];
+	pfx = NULL;
+
+	for(i = 2; i < argc; ) {
+		if(!strcmp(argv[i], "--")) {
+			i += 2;
+			if(i > argc) {
+				print_usage(argv[0]);
+			}
+			pfx = argv[i-1];
+		}
+		if(pfx)
+			*opt++ = pfx;
+		*opt++ = argv[i++];
+	}
+	*opt = NULL;
+
+	execvp(opts[0], opts);
+	perror(argv[0]);
+	return 2;
+}