commit 82fdff00239196e97958aceb6139f650fd9122ee
parent 0a5c7074888161e3a3c040c0cc027c3ededd02af
Author: Christoph Lohmann <20h@r-36.net>
Date:   Wed, 26 Dec 2012 00:02:50 +0100
Fixing the position parameter and adding the documentation for it.
Diffstat:
2 files changed, 18 insertions(+), 3 deletions(-)
diff --git a/tabbed.1 b/tabbed.1
@@ -10,6 +10,8 @@ tabbed \- generic tabbed interface
 .RB [ \-v ]
 .RB [ \-n
 .IR name ]
+.RB [ \-p
+.IR [ s +/- ] pos ]
 .RB [ \-r
 .IR narg ]
 .IR [ command ... ]
@@ -39,6 +41,16 @@ will print the usage of tabbed.
 will set the WM_CLASS attribute to
 .I name.
 .TP
+.BI \-p " [ s +/-] pos"
+will set the absolute or relative position of where to start a new tab. When
+.I pos
+is is given without 's' in front it is an absolute position. Then negative
+numbers will be the position from the last tab, where -1 is the last tab.
+If 's' is given, then
+.I pos
+is a relative position to the current selected tab. If this reaches the limits
+of the tabs; those limits then apply.
+.TP
 .BI \-r " narg"
 will replace the
 .I narg
diff --git a/tabbed.c b/tabbed.c
@@ -1089,7 +1089,7 @@ char *argv0;
 
 void
 usage(void) {
-	die("usage: %s [-dfhsv] [-n name] [-p [+/-]pos] [-r narg]"
+	die("usage: %s [-dfhsv] [-n name] [-p [s+/-]pos] [-r narg]"
 		" command...\n", argv0);
 }
 
@@ -1114,9 +1114,12 @@ main(int argc, char *argv[]) {
 		break;
 	case 'p':
 		pstr = EARGF(usage());
-		if (pstr[0] == '-' || pstr[0] == '+')
+		if(pstr[0] == 's') {
 			npisrelative = True;
-		newposition = atoi(pstr);
+			newposition = atoi(&pstr[1]);
+		} else {
+			newposition = atoi(pstr);
+		}
 		break;
 	case 'r':
 		replace = atoi(EARGF(usage()));