shithub: svcfs

ref: 4b696a10337b7d64bf6b59a3562e7df570848158
dir: /cmd.c/

View raw version
#include <u.h>
#include <libc.h>
#include <fcall.h>
#include <thread.h>
#include <9p.h>

#include "svc.h"

int
Cconv(Fmt *fp)
{
	char s[CmdSize];
	Cmd *c;

	c = va_arg(fp->args, Cmd*);
	switch(c->type){
	case ServiceCmd:
		if(strlen(c->data) > 0)
			snprint(s, sizeof(s), "%s %s\n%s", c->svccmd, c->buffer, c->data);
		else
			snprint(s, sizeof(s), "%s %s", c->svccmd, c->buffer);
		break;
	case InputCmd:
		snprint(s, sizeof(s), "input %s\n%s", c->buffer, c->data);
		break;
	case FlushCmd:
		snprint(s, sizeof(s), "flush");
		break;
	}
	return fmtstrcpy(fp, s);
}