summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--tabbed.112
-rw-r--r--tabbed.c9
2 files changed, 18 insertions, 3 deletions
diff --git a/tabbed.1 b/tabbed.1
index 48b3182..a6a6534 100644
--- 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
index 308776e..b08d4f4 100644
--- 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()));