From 1a5ad4a82ca79ca693ee5fbed3478ab20fbedadf Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?John=20Ankarstr=C3=B6m?= <john@ankarstrom.se>
Date: Fri, 18 Jun 2021 21:04:36 +0200
Subject: xtopen: Add -k option (keep open)

---
 xtopen | 30 ++++++++++++++++++------------
 1 file changed, 18 insertions(+), 12 deletions(-)

diff --git a/xtopen b/xtopen
index 540f4bd..83bca60 100755
--- a/xtopen
+++ b/xtopen
@@ -14,18 +14,22 @@ abbr() {
 
 if [ $# -eq 0 ]; then
 	xmessage -buttons sorry:0 -default sorry -nearmouse \
-		"usage: $0 [-K] cmd ..."
+		"usage: $0 [-k] [-K] cmd ..."
 	exit 1
 fi
 
-flagK=
-case "$1" in
--K)	flagK=-K
-	shift ;;
--*)	xmessage -buttons sorry:0 -default sorry -nearmouse \
-		error: "unknown flag $1"
-	exit 1 ;;
-esac
+k=
+K=
+while getopts kK o; do
+	case $o in
+	K)	K=1 ;;
+	k)	k=1 ;;
+	?)	xmessage -buttons sorry:0 -default sorry -nearmouse \
+			error: "unknown flag $1"
+		exit 1 ;;
+	esac
+done
+shift $((OPTIND-1))
 
 if ! which "$1" 2>/dev/null; then
 	xmessage -default okay -nearmouse \
@@ -33,6 +37,8 @@ if ! which "$1" 2>/dev/null; then
 	exit 1
 fi
 
-[ -z "$flagK" ] &&
-exec xterm -title "$* (`abbr "$PWD"`)" -e "$@" ||
-exec xterm -title "$* (`abbr "$PWD"`)" -e with-shell-on-error "$@"
+case "$k,$K" in
+1,*)	exec xterm -title "$* (`abbr "$PWD"`)" -e with-shell "$@" ;;
+*,1)	exec xterm -title "$* (`abbr "$PWD"`)" -e with-shell-on-error "$@" ;;
+*,*)	exec xterm -title "$* (`abbr "$PWD"`)" -e "$@" ;;
+esac
-- 
cgit v1.2.3