On Mon, Jun 25, 2001 at 11:00:56AM +0200, Sven Wischnowsky <wischnow@xxxxxxxxxxxxxxxxxxxxxxx> wrote: > If one tries bash-2.04: > > % sleep 80 > ^Z > [1]+ Stopped sleep 80 > % disown %1 > bash: warning: deleting stopped job 1 with process group 988 > > I.e., it prints what Bart suggested we should print. I answered that by > saying that this is slightly more complicated for us because there may > also be a sub-job to be continued in such cases. > > Maybe we can `solve' (or, rather, circumvent) this problem by being more > verbose, saying `warning: job is stopped, use `kill -CONT ...' to resume'. > That way, users can even use cut&paste to make the job running. Good idea, IMHO. > Below is a patch for this, which I won't commit until I get positive > replies. Well, I just have a minor quetion, see at end. [...] > diff -ur -r ../oz/Src/jobs.c ./Src/jobs.c > --- ../oz/Src/jobs.c Sat Jun 23 22:12:56 2001 > +++ ./Src/jobs.c Sat Jun 23 22:42:33 2001 > @@ -1392,14 +1392,36 @@ > printjob(job + jobtab, lng, 2); > break; > case BIN_DISOWN: > - if (jobtab[job].stat & STAT_STOPPED) > + if (jobtab[job].stat & STAT_STOPPED) { > + char buf[20], *pids = ""; > + > + if (jobtab[job].stat & STAT_SUPERJOB) { > + Process pn; > + > + for (pn = jobtab[jobtab[job].other].procs; pn; pn = pn->next) { > + sprintf(buf, " -%d", pn->pid); > + pids = dyncat(pids, buf); > + } > + for (pn = jobtab[job].procs; pn->next; pn = pn->next) { > + sprintf(buf, " %d", pn->pid); > + pids = dyncat(pids, buf); > + } > + if (!jobtab[jobtab[job].other].procs && pn) { > + sprintf(buf, " %d", pn->pid); > + pids = dyncat(pids, buf); > + } > + } else { > + sprintf(buf, " -%d", jobtab[job].gleader); > + pids = buf; > + } > zwarnnam(name, > #ifdef USE_SUSPENDED > - "warning: job is suspended", > + "warning: job is suspended, use `kill -CONT%s' to resume", ^^ > #else > - "warning: job is stopped", > + "warning: job is stopped, use `kill -CONT%s' to resume", ^^ > #endif > - NULL, 0); > + pids, 0); > + } > deletejob(jobtab + job); > break; > } Shouldn't there be a space between 'T' and '%' in the marked places? Or does "pids" contain a space at the beginning? (Just thrown in because it looks strange, I don't really know anything about that "pids" variable, what does dyncat() do to it?) Ciao, Thomas -- Thomas Köhler Email: jean-luc@xxxxxxxxxxxxxxxxx | LCARS - Linux <>< WWW: http://jeanluc-picard.de | for Computers IRC: jeanluc | on All Real PGP public key available from Homepage! | Starships
Attachment:
pgpISDyH1vRJJ.pgp
Description: PGP signature