summary refs log tree commit diff
path: root/bin/pbd.c
diff options
context:
space:
mode:
authorJune McEnroe <june@causal.agency>2021-02-09 17:36:40 -0500
committerJune McEnroe <june@causal.agency>2021-02-09 17:36:40 -0500
commita1147531b04b1108d06f054adf203067e8794008 (patch)
tree3b7bd5fe59b5dc579408a9cbbf2b1da9a086546f /bin/pbd.c
parentAdd macOS-like copy and paste to xterm (diff)
downloadsrc-a1147531b04b1108d06f054adf203067e8794008.tar.gz
src-a1147531b04b1108d06f054adf203067e8794008.zip
Use flags for pbd client behaviour
Diffstat (limited to 'bin/pbd.c')
-rw-r--r--bin/pbd.c19
1 files changed, 9 insertions, 10 deletions
diff --git a/bin/pbd.c b/bin/pbd.c
index 58326053..9f47b63e 100644
--- a/bin/pbd.c
+++ b/bin/pbd.c
@@ -138,15 +138,14 @@ static int open1(const char *url) {
 }
 
 int main(int argc, char *argv[]) {
-	(void)argc;
-	if (strchr(argv[0], '/')) {
-		argv[0] = strrchr(argv[0], '/') + 1;
-	}
-	switch (argv[0][0] && argv[0][1] ? argv[0][2] : 0) {
-		case 'd': return pbd();
-		case 'c': return pbcopy();
-		case 'p': return pbpaste();
-		case 'e': return open1(argv[1]);
-		default:  return EX_USAGE;
+	for (int opt; 0 < (opt = getopt(argc, argv, "co:ps"));) {
+		switch (opt) {
+			case 'c': return pbcopy();
+			case 'o': return open1(optarg);
+			case 'p': return pbpaste();
+			case 's': return pbd();
+			default:  return EX_USAGE;
+		}
 	}
+	return pbd();
 }