shithub: fsgen

ref: 67090e5d7dcfd71b9f41e40bb9fcc8c3c7846b2e
dir: /code.c/

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

static void
printvars(VFile *file)
{
	char **a;
	char buf[64];
	int n;
	
	for (a = file->parts; *a; a++) {
		if (!(*a)[0])
			continue;
		n = strlen(*a) - 1;
		if (!((*a)[0] == '{' && (*a)[n] == '}'))
			continue;
		strcpy(buf, *a);
		buf[n] = 0;
		print(", char *%s", buf+1);
	}
}

void
printread(VFile *file)
{
	print("static void\nfsread_%s(Req *r", file->path);
	printvars(file);
	print(")\n");
}

void
printwrite(VFile *file)
{
	print("static void\nfswrite_%s(Req *r", file->path);
	printvars(file);
	print(")\n");
}

void
printls(VFile *file)
{
	print("static void\nfsls_%s(...)\n", file->path);
}