diff options
author | rsc <devnull@localhost> | 2005-12-26 04:48:52 +0000 |
---|---|---|
committer | rsc <devnull@localhost> | 2005-12-26 04:48:52 +0000 |
commit | 87a52e0485d3281ebea6bf4b725aa8023690e96f (patch) | |
tree | 0abc2d2ddb875196177231639d3cb4519e814b9d /src/cmd/ip/snoopy/ninep.c | |
parent | 35d26aa32167e84326cdb745c0e906393b8de71d (diff) | |
download | plan9port-87a52e0485d3281ebea6bf4b725aa8023690e96f.tar.gz plan9port-87a52e0485d3281ebea6bf4b725aa8023690e96f.tar.bz2 plan9port-87a52e0485d3281ebea6bf4b725aa8023690e96f.zip |
new goodies
Diffstat (limited to 'src/cmd/ip/snoopy/ninep.c')
-rwxr-xr-x | src/cmd/ip/snoopy/ninep.c | 55 |
1 files changed, 55 insertions, 0 deletions
diff --git a/src/cmd/ip/snoopy/ninep.c b/src/cmd/ip/snoopy/ninep.c new file mode 100755 index 00000000..8e7a8d4e --- /dev/null +++ b/src/cmd/ip/snoopy/ninep.c @@ -0,0 +1,55 @@ +#include <u.h> +#include <libc.h> +#include <ip.h> +#include <fcall.h> +#include "dat.h" +#include "protos.h" + +static void +p_compile(Filter *f) +{ + sysfatal("unknown ninep field: %s", f->s); +} + +static int +p_filter(Filter *f, Msg *m) +{ + USED(f); + USED(m); + return 0; +} + +static int +p_seprint(Msg *m) +{ + Fcall f; + char *p; + + memset(&f, 0, sizeof(f)); + f.type = 0; + f.data = 0; /* protection for %F */ + if(convM2S(m->ps, m->pe-m->ps, &f)){ + p = m->p; + m->p = seprint(m->p, m->e, "%F", &f); + while(p < m->p){ + p = strchr(p, '\n'); + if(p == nil) + break; + *p = '\\'; + } + } else + dump.seprint(m); + m->pr = nil; + return 0; +} + +Proto ninep = +{ + "ninep", + p_compile, + p_filter, + p_seprint, + nil, + nil, + defaultframer, +}; |