From 3229e517358fc7de7968b8c252168743853b61af Mon Sep 17 00:00:00 2001 From: "Anselm R. Garbe" Date: Sat, 28 Jan 2006 17:41:15 +0200 Subject: [PATCH] implemented remove in bar2 :) --- cmd/wmiibar2.c | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/cmd/wmiibar2.c b/cmd/wmiibar2.c index 5dc697ee..9bffab71 100644 --- a/cmd/wmiibar2.c +++ b/cmd/wmiibar2.c @@ -344,6 +344,27 @@ mkstat(Stat *stat, Qid *dir, char *name, unsigned long long length, unsigned int return ixp_sizeof_stat(stat); } +static int +xremove(IXPServer *s, IXPConn *c) +{ + Map *map = fid_to_map(c->aux, s->fcall.fid); + unsigned short i; + + if(!map) { + s->errstr = "invalid fid"; + return -1; + } + i = qpath_item(map->qid.path); + s->fcall.id = RREMOVE; + if((qpath_type(map->qid.path) == Ditem) && i && (i < nitem)) { + Item *it = item[i]; + detach_item(it); + free(it); + return 0; + } + return -1; +} + static int xread(IXPServer *s, IXPConn *c) { @@ -595,6 +616,7 @@ static IXPTFunc funcs[] = { {TVERSION, ixp_server_tversion}, {TATTACH, xattach}, {TWALK, xwalk}, + {TREMOVE, xremove}, {TOPEN, xopen}, {TREAD, xread}, {TWRITE, xwrite},