Zsh Mailing List Archive
Messages sorted by:
Reverse Date,
Date,
Thread,
Author
Re: LONG_LIST_JOBS doesn't affect all job listings?
- X-seq: zsh-workers 21366
- From: Bart Schaefer <schaefer@xxxxxxxxxxxxxxxx>
- To: zsh-workers@xxxxxxxxxx
- Subject: Re: LONG_LIST_JOBS doesn't affect all job listings?
- Date: Mon, 20 Jun 2005 16:54:16 +0000
- In-reply-to: <1050620152337.ZM21590@xxxxxxxxxxxxxxxxxxxxxxx>
- Mailing-list: contact zsh-workers-help@xxxxxxxxxx; run by ezmlm
- References: <1050620034619.ZM21043@xxxxxxxxxxxxxxxxxxxxxxx> <200506200955.j5K9t6fN005782@xxxxxxxxxxxxxx> <1050620152337.ZM21590@xxxxxxxxxxxxxxxxxxxxxxx>
On Jun 20, 3:23pm, Bart Schaefer wrote:
}
} } Is this connected with users/8989?
}
} Yes; I was peeking at how difficult it would be to implement tcsh's
} option, and was using LONGLISTJOBS as a placeholder (and wondering if
} perhaps it couldn't just be employed full time as a stand-in).
The necessary patch follows. The (!thisfmt || lng) hunk is where "lng"
would have to be replaced with a test of a new option if zsh were going
to behave as described in users/8989.
Index: Src/jobs.c
===================================================================
RCS file: /extra/cvsroot/zsh/zsh-4.0/Src/jobs.c,v
retrieving revision 1.15
diff -c -r1.15 jobs.c
--- Src/jobs.c 26 Mar 2005 16:14:05 -0000 1.15
+++ Src/jobs.c 20 Jun 2005 16:47:18 -0000
@@ -809,7 +813,7 @@
if (lng < 0) {
conted = 1;
- lng = 0;
+ lng = !!isset(LONGLISTJOBS);
}
/* find length of longest signame, check to see */
@@ -869,7 +873,7 @@
break;
len2 += strlen(qn->text) + 2;
}
- if (!thisfmt) {
+ if (!thisfmt || lng) {
if (fline)
fprintf(fout, "[%ld] %c ",
(long)job,
@@ -1335,7 +1339,7 @@
for (i = 1; i <= maxjob; i++)
if (jobtab[i].stat & STAT_CHANGED)
- printjob(jobtab + i, 0, 1);
+ printjob(jobtab + i, !!isset(LONGLISTJOBS), 1);
}
/**** job control builtins ****/
@@ -1603,10 +1607,14 @@
return 0;
}
- lng = (OPT_ISSET(ops,'l')) ? 1 : (OPT_ISSET(ops,'p')) ? 2 : 0;
- if (OPT_ISSET(ops,'d'))
- lng |= 4;
-
+ if (func == BIN_JOBS) {
+ lng = (OPT_ISSET(ops,'l')) ? 1 : (OPT_ISSET(ops,'p')) ? 2 : 0;
+ if (OPT_ISSET(ops,'d'))
+ lng |= 4;
+ } else {
+ lng = !!isset(LONGLISTJOBS);
+ }
+
if ((func == BIN_FG || func == BIN_BG) && !jobbing) {
/* oops... maybe bg and fg should have been disabled? */
zwarnnam(name, "no job control in this shell.", NULL, 0);
@@ -1743,7 +1751,7 @@
}
if (func != BIN_WAIT)
/* for bg and fg -- show the job we are operating on */
- printjob(jobtab + job, (stopped) ? -1 : 0, 1);
+ printjob(jobtab + job, (stopped) ? -1 : lng, 1);
if (func != BIN_BG) { /* fg or wait */
if (jobtab[job].pwd && strcmp(jobtab[job].pwd, pwd)) {
fprintf(shout, "(pwd : ");
Messages sorted by:
Reverse Date,
Date,
Thread,
Author