aboutsummaryrefslogtreecommitdiff
path: root/src/cmd/ip/snoopy/ninep.c
diff options
context:
space:
mode:
authorrsc <devnull@localhost>2005-12-26 04:48:52 +0000
committerrsc <devnull@localhost>2005-12-26 04:48:52 +0000
commit87a52e0485d3281ebea6bf4b725aa8023690e96f (patch)
tree0abc2d2ddb875196177231639d3cb4519e814b9d /src/cmd/ip/snoopy/ninep.c
parent35d26aa32167e84326cdb745c0e906393b8de71d (diff)
downloadplan9port-87a52e0485d3281ebea6bf4b725aa8023690e96f.tar.gz
plan9port-87a52e0485d3281ebea6bf4b725aa8023690e96f.tar.bz2
plan9port-87a52e0485d3281ebea6bf4b725aa8023690e96f.zip
new goodies
Diffstat (limited to 'src/cmd/ip/snoopy/ninep.c')
-rwxr-xr-xsrc/cmd/ip/snoopy/ninep.c55
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,
+};