1
0
Fork 0
mirror of git://git.code.sf.net/p/zsh/code synced 2025-10-22 16:20:23 +02:00

users/11818: allow non-numeric keys for job status parameters

This commit is contained in:
Peter Stephenson 2007-09-05 16:16:15 +00:00
parent 8cfe028631
commit f5a6b2a8c9
5 changed files with 43 additions and 11 deletions

View file

@ -1007,13 +1007,18 @@ getpmjobtext(UNUSED(HashTable ht), const char *name)
{
Param pm = NULL;
int job;
char *pend;
pm = (Param) hcalloc(sizeof(struct param));
pm->node.nam = dupstring(name);
pm->node.flags = PM_SCALAR | PM_READONLY;
pm->gsu.s = &nullsetscalar_gsu;
if ((job = atoi(name)) >= 1 && job <= maxjob &&
job = strtod(name, &pend);
/* Non-numeric keys are looked up by job name */
if (*pend)
job = getjob(name, NULL);
if (job >= 1 && job <= maxjob &&
jobtab[job].stat && jobtab[job].procs &&
!(jobtab[job].stat & STAT_NOPRINT))
pm->u.str = pmjobtext(job);
@ -1104,13 +1109,17 @@ getpmjobstate(UNUSED(HashTable ht), const char *name)
{
Param pm = NULL;
int job;
char *pend;
pm = (Param) hcalloc(sizeof(struct param));
pm->node.nam = dupstring(name);
pm->node.flags = PM_SCALAR | PM_READONLY;
pm->gsu.s = &nullsetscalar_gsu;
if ((job = atoi(name)) >= 1 && job <= maxjob &&
job = strtod(name, &pend);
if (*pend)
job = getjob(name, NULL);
if (job >= 1 && job <= maxjob &&
jobtab[job].stat && jobtab[job].procs &&
!(jobtab[job].stat & STAT_NOPRINT))
pm->u.str = pmjobstate(job);
@ -1166,13 +1175,17 @@ getpmjobdir(UNUSED(HashTable ht), const char *name)
{
Param pm = NULL;
int job;
char *pend;
pm = (Param) hcalloc(sizeof(struct param));
pm->node.nam = dupstring(name);
pm->node.flags = PM_SCALAR | PM_READONLY;
pm->gsu.s = &nullsetscalar_gsu;
if ((job = atoi(name)) >= 1 && job <= maxjob &&
job = strtod(name, &pend);
if (*pend)
job = getjob(name, NULL);
if (job >= 1 && job <= maxjob &&
jobtab[job].stat && jobtab[job].procs &&
!(jobtab[job].stat & STAT_NOPRINT))
pm->u.str = pmjobdir(job);