version 1.88, 2007/09/23 14:58:50 |
version 1.89, 2007/09/29 09:02:05 |
|
|
/*- |
/*- |
*----------------------------------------------------------------------- |
*----------------------------------------------------------------------- |
* JobDoOutput -- |
* JobDoOutput -- |
* This function is called at different times depending on |
* This functions is called whenever there is something to read on the |
* whether the user has specified that output is to be collected |
* pipe. We collect more output from the given job and store it in the |
* via pipes or temporary files. In the former case, we are called |
* job's outBuf. If this makes up a line, we print it tagged by the job's |
* whenever there is something to read on the pipe. We collect more |
* identifier, as necessary. |
* output from the given job and store it in the job's outBuf. If |
* We also keep our figurative eye out for the |
* this makes up a line, we print it tagged by the job's identifier, |
|
* as necessary. |
|
* If output has been collected in a temporary file, we open the |
|
* file and read it line by line, transfering it to our own |
|
* output channel until the file is empty. At which point we |
|
* remove the temporary file. |
|
* In both cases, however, we keep our figurative eye out for the |
|
* 'noPrint' line for the shell from which the output came. If |
* 'noPrint' line for the shell from which the output came. If |
* we recognize a line, we don't print it. If the command is not |
* we recognize a line, we don't print it. If the command is not |
* alone on the line (the character after it is not \0 or \n), we |
* alone on the line (the character after it is not \0 or \n), we |
|
|
break; |
break; |
} else if (job->outBuf[i] == '\0') { |
} else if (job->outBuf[i] == '\0') { |
/* |
/* |
* Why? |
* To be fixed: don't use printf, it stops at NUL bytes. |
*/ |
*/ |
job->outBuf[i] = ' '; |
job->outBuf[i] = ' '; |
} |
} |