gurba-0.40/
gurba-0.40/bin/
gurba-0.40/lib/
gurba-0.40/lib/cmds/guild/fighter/
gurba-0.40/lib/cmds/monster/
gurba-0.40/lib/cmds/race/catfolk/
gurba-0.40/lib/cmds/race/dwarf/
gurba-0.40/lib/cmds/verb/
gurba-0.40/lib/daemons/data/
gurba-0.40/lib/data/boards/
gurba-0.40/lib/data/messages/
gurba-0.40/lib/data/players/
gurba-0.40/lib/design/
gurba-0.40/lib/domains/gurba/
gurba-0.40/lib/domains/gurba/guilds/fighter/
gurba-0.40/lib/domains/gurba/monsters/
gurba-0.40/lib/domains/gurba/objects/armor/
gurba-0.40/lib/domains/gurba/objects/clothing/
gurba-0.40/lib/domains/gurba/objects/weapons/
gurba-0.40/lib/domains/gurba/vendors/
gurba-0.40/lib/kernel/cmds/admin/
gurba-0.40/lib/kernel/daemons/
gurba-0.40/lib/kernel/include/
gurba-0.40/lib/kernel/lib/
gurba-0.40/lib/kernel/net/
gurba-0.40/lib/kernel/sys/
gurba-0.40/lib/logs/
gurba-0.40/lib/pub/
gurba-0.40/lib/std/modules/languages/
gurba-0.40/lib/std/races/
gurba-0.40/lib/std/races/monsters/
gurba-0.40/lib/wiz/fudge/
gurba-0.40/lib/wiz/spud/
gurba-0.40/src/host/beos/
gurba-0.40/src/host/pc/res/
gurba-0.40/src/kfun/
gurba-0.40/src/lpc/
gurba-0.40/src/parser/
gurba-0.40/tmp/
# include "ed.h"
# undef error
# include "edcmd.h"
# include <signal.h>

struct _value_ *sp;
struct _frame_ *cframe;

cmdbuf *cb;

void intr()
{
    cb_del(cb);
    exit(2);
}

int dgd_main(argc, argv)
int argc;
char *argv[];
{
    char buffer[2048];
    char tmpfname[100], *tmp;

    cframe = (struct _frame_ *) buffer;

    signal(SIGHUP, intr);
    signal(SIGINT, intr);
    signal(SIGQUIT, intr);

    tmp = getenv("TMPDIR");
    if (tmp == (char *) NULL) {
	tmp = "/tmp";
    }
    sprintf(tmpfname, "%s/Ed0%05d", tmp, getpid());
    cb = cb_new(tmpfname);

    if (argc > 1) {

	cb->cmd = argv[1];
	if (!ec_push((ec_ftn) NULL)) {
	    cb_edit(cb);
	    ec_pop();
	} else {
	    message((char *) NULL);
	}
    }

    while (ec_push((ec_ftn) NULL)) {
	message((char *) NULL);
	cb->flags &= ~(CB_INSERT|CB_CHANGE);
    }

    for (;;) {
	printf((cb->flags & CB_INSERT) ? "*\010" : ":");	/* BS */
	fflush(stdout);
	if (fgets(buffer, sizeof(buffer), stdin) == (char *) NULL) {
	    cb_del(cb);
	    return 1;
	}
	tmp = strchr(buffer, '\n');
	if (tmp != (char *) NULL) {
	    *tmp = '\0';
	}
	if (!cb_command(cb, buffer)) {
	    cb_del(cb);
	    return 0;
	}
    }
}

void comm_finish()
{
}

char *path_ed_read(file) char *file; { return file; }

char *path_ed_write(file) char *file; { return file; }

void output(f, a1, a2, a3, a4)
char *f, *a1, *a2, *a3, *a4;
{
    printf(f, a1, a2, a3, a4);
}

void ed_error(f, a1, a2, a3)
char *f, *a1, *a2, *a3;
{
    error(f, a1, a2, a3);
}

void i_set_sp(newsp)
struct _value_ *newsp;
{
}

void interrupt()
{
}