#include <stdio.h>
#include <stdlib.h>

#include <librcs/file.h>
#include <librcs/revision.h>

void
pr (struct rcs_file *file)
{
	struct rev_inode *inode = rcs_file_get_inode (file);
	struct rev_revision *rev;

	rev_list_foreach (inode->revs, rev) {
		printf ("\nrev %d\n", rev_revision_get_number (rev));
		printf ("state %s\n", rcs_revision_get_state (rev->data));
		printf ("head %d\n", rcs_revision_get_head (rev->data));
		printf ("author %s\n", rev_revision_get_author (rev));
		printf ("comment %s\n", rev_revision_get_comment (rev));
	} rev_list_foreach_end;
}

int
main ()
{
	struct rcs_file *file = rcs_file_init ("ahoj,v");

	if (! file) return 1;

	rcs_file_set_filename (file, "ahoj,v");

	printf ("rcsfile_load (): %d\n", rcs_file_load (file));
	/* Make sure we have everything in memory... */
	printf ("rcsfile_cache (): %d\n", rcs_file_cache (file));

	printf ("filename: '%s'\tcomment: '%s'\n",
		rcs_file_get_filename (file), rcs_file_get_comment (file));

	printf ("desc: %s\n", rcs_file_get_desc (file));

	pr(file);

	return 0;
}
