summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSven Wegener <sven.wegener@stealer.net>2010-04-05 10:28:26 +0200
committerSven Wegener <sven.wegener@stealer.net>2010-04-05 11:08:27 +0200
commit31919b4ce12ee1216998d5cd198fc999b77d1540 (patch)
tree1b880297162df0e0435fedd620c34a6451628132
parentdaf6ffc1cb01b396ae8be7d68b47659df91f4c77 (diff)
Add support for %+u and %Lu format optionsswegener-4.0.3
Signed-off-by: Sven Wegener <sven.wegener@stealer.net>
-rw-r--r--extern.h2
-rw-r--r--process.c31
-rw-r--r--screen.c2
3 files changed, 20 insertions, 15 deletions
diff --git a/extern.h b/extern.h
index 06b8e96..8265edc 100644
--- a/extern.h
+++ b/extern.h
@@ -197,7 +197,7 @@ extern int IsNumColon __P((char *, int, char *, int));
extern void ShowWindows __P((int));
extern char *AddWindows __P((char *, int, int, int));
extern char *AddWindowFlags __P((char *, int, struct win *));
-extern char *AddOtherUsers __P((char *, int, struct win *));
+extern char *AddOtherUsers __P((char *, int, struct win *, int, int));
extern int WindowByNoN __P((char *));
extern struct win *FindNiceWindow __P((struct win *, char *));
#ifdef COPY_PASTE
diff --git a/process.c b/process.c
index dfd43e3..84096d3 100644
--- a/process.c
+++ b/process.c
@@ -4828,10 +4828,12 @@ struct win *p;
}
char *
-AddOtherUsers(buf, len, p)
+AddOtherUsers(buf, len, p, show_self, show_all)
char *buf;
int len;
struct win *p;
+int show_self;
+int show_all;
{
struct display *d, *olddisplay = display;
struct canvas *cv;
@@ -4841,28 +4843,31 @@ struct win *p;
s = buf;
for (display = displays; display; display = display->d_next)
{
- if (olddisplay && D_user == olddisplay->d_user)
+ if (!show_self && olddisplay && D_user == olddisplay->d_user)
continue;
for (cv = D_cvlist; cv; cv = cv->c_next)
if (Layer2Window(cv->c_layer) == p)
break;
if (!cv)
continue;
- for (d = displays; d && d != display; d = d->d_next)
- {
- struct display *tmp = display;
- display = d;
- for (cv = D_cvlist; cv; cv = cv->c_next)
+ if (!show_all)
+ {
+ for (d = displays; d && d != display; d = d->d_next)
{
- if (Layer2Window(cv->c_layer) == p)
+ struct display *tmp = display;
+ display = d;
+ for (cv = D_cvlist; cv; cv = cv->c_next)
+ {
+ if (Layer2Window(cv->c_layer) == p)
+ break;
+ }
+ display = tmp;
+ if (cv && D_user == d->d_user)
break;
}
- display = tmp;
- if (cv && D_user == d->d_user)
- break;
+ if (d && d != display)
+ continue;
}
- if (d && d != display)
- continue;
if (len > 1 && s != buf)
{
*s++ = ',';
diff --git a/screen.c b/screen.c
index 70741df..aeccbd0 100644
--- a/screen.c
+++ b/screen.c
@@ -2541,7 +2541,7 @@ int rec;
case 'u':
*p = 0;
if (win)
- AddOtherUsers(p, l - 1, win);
+ AddOtherUsers(p, l - 1, win, plusflg, longflg);
if (*p)
qmflag = 1;
p += strlen(p) - 1;