Thanks to John Cummings.
This commit is contained in:
parent
cd37451963
commit
5cdb17983a
94 changed files with 26853 additions and 0 deletions
43
src/cmd/upas/send/translate.c
Normal file
43
src/cmd/upas/send/translate.c
Normal file
|
|
@ -0,0 +1,43 @@
|
|||
#include "common.h"
|
||||
#include "send.h"
|
||||
|
||||
/* pipe an address through a command to translate it */
|
||||
extern dest *
|
||||
translate(dest *dp)
|
||||
{
|
||||
process *pp;
|
||||
String *line;
|
||||
dest *rv;
|
||||
char *cp;
|
||||
int n;
|
||||
|
||||
pp = proc_start(s_to_c(dp->repl1), (stream *)0, outstream(), outstream(), 1, 0);
|
||||
if (pp == 0) {
|
||||
dp->status = d_resource;
|
||||
return 0;
|
||||
}
|
||||
line = s_new();
|
||||
for(;;) {
|
||||
cp = Brdline(pp->std[1]->fp, '\n');
|
||||
if(cp == 0)
|
||||
break;
|
||||
if(strncmp(cp, "_nosummary_", 11) == 0){
|
||||
nosummary = 1;
|
||||
continue;
|
||||
}
|
||||
n = Blinelen(pp->std[1]->fp);
|
||||
cp[n-1] = ' ';
|
||||
s_nappend(line, cp, n);
|
||||
}
|
||||
rv = s_to_dest(s_restart(line), dp);
|
||||
s_restart(line);
|
||||
while(s_read_line(pp->std[2]->fp, line))
|
||||
;
|
||||
if ((dp->pstat = proc_wait(pp)) != 0) {
|
||||
dp->repl2 = line;
|
||||
rv = 0;
|
||||
} else
|
||||
s_free(line);
|
||||
proc_free(pp);
|
||||
return rv;
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue