shithub: ircd

ref: 2716869c69ae007306e1b2bacfc0bf7adbccb0fc
dir: /fmt.c/

View raw version
#include <u.h>
#include <libc.h>
#include "dat.h"
#include "fns.h"

int
Rfmt(Fmt *f)
{
	Request r;
	r = va_arg(f->args, Request);
	return fmtprint(f, "\n"
		"  prefix: '%s' ! '%s' @ '%s'\n"
		"  cmd: '%s'\n"
		"  args: '%s' '%s' '%s' '%s' '%s'"
		       " '%s' '%s' '%s' '%s' '%s'"
		       " '%s' '%s' '%s' '%s' '%s'\n",
		r.prefix.name, r.prefix.user, r.prefix.host,
		r.cmd ? r.cmd->name : nil,
		r.args[0],  r.args[1],  r.args[2],  r.args[3],  r.args[4],
		r.args[5],  r.args[6],  r.args[7],  r.args[8],  r.args[9],
		r.args[10], r.args[11], r.args[12], r.args[13], r.args[14]
	);
}

int
Ifmt(Fmt *f)
{
	Client *c;
	int valid;
	c = va_arg(f->args, Client*);
	valid = c->user && c->user->host && c->user->name;
	return fmtprint(f, "%s%s%s%s%s",
		c->nick,
		valid ? "!" : "",
		valid ? c->user->name : "",
		valid ? "@" : "",
		valid ? c->user->host : ""
	);
}