xref: /plan9/sys/src/cmd/ip/snoopy/ninep.c (revision 2cca75a1b2b8c6083390679d69d5c50cf66d9a01)
19a747e4fSDavid du Colombier #include <u.h>
29a747e4fSDavid du Colombier #include <libc.h>
39a747e4fSDavid du Colombier #include <ip.h>
49a747e4fSDavid du Colombier #include <fcall.h>
59a747e4fSDavid du Colombier #include "dat.h"
69a747e4fSDavid du Colombier #include "protos.h"
79a747e4fSDavid du Colombier 
89a747e4fSDavid du Colombier static int
p_seprint(Msg * m)99a747e4fSDavid du Colombier p_seprint(Msg *m)
109a747e4fSDavid du Colombier {
119a747e4fSDavid du Colombier 	Fcall f;
129a747e4fSDavid du Colombier 	char *p;
139a747e4fSDavid du Colombier 
149a747e4fSDavid du Colombier 	memset(&f, 0, sizeof(f));
159a747e4fSDavid du Colombier 	f.type = 0;
169a747e4fSDavid du Colombier 	f.data = 0;	/* protection for %F */
179b943567SDavid du Colombier 	if(convM2S(m->ps, m->pe-m->ps, &f)){
189a747e4fSDavid du Colombier 		p = m->p;
199a747e4fSDavid du Colombier 		m->p = seprint(m->p, m->e, "%F", &f);
209a747e4fSDavid du Colombier 		while(p < m->p){
219a747e4fSDavid du Colombier 			p = strchr(p, '\n');
229a747e4fSDavid du Colombier 			if(p == nil)
239a747e4fSDavid du Colombier 				break;
249a747e4fSDavid du Colombier 			*p = '\\';
259a747e4fSDavid du Colombier 		}
269a747e4fSDavid du Colombier 	} else
279a747e4fSDavid du Colombier 		dump.seprint(m);
289a747e4fSDavid du Colombier 	m->pr = nil;
299a747e4fSDavid du Colombier 	return 0;
309a747e4fSDavid du Colombier }
319a747e4fSDavid du Colombier 
329a747e4fSDavid du Colombier Proto ninep =
339a747e4fSDavid du Colombier {
349a747e4fSDavid du Colombier 	"ninep",
35*2cca75a1SDavid du Colombier 	nil,
36*2cca75a1SDavid du Colombier 	nil,
379a747e4fSDavid du Colombier 	p_seprint,
389a747e4fSDavid du Colombier 	nil,
399a747e4fSDavid du Colombier 	nil,
40ed397113SDavid du Colombier 	nil,
413ff48bf5SDavid du Colombier 	defaultframer,
429a747e4fSDavid du Colombier };
43