# Imakefile for moira client.
#
-#ifdef GDSS
-GDSSLIB = /mit/gdss/`machtype`/libgdss.a
-GDSSINC = -I/mit/gdss/include
-#endif
-
-
SRCS= main.c formup.c form_setup.c \
queries.c help.c stubs.c display.c tty.c parser.c
CODE=${SRCS} Imakefile mmoira.h data.h menus.txt menus.awk forms.txt \
SRCDIR=${SRCTOP}/clients/mmoira
OBJS = form_data.o form_setup.o menu_data.o main.o formup.o \
queries.o help.o stubs.o display.o tty.o parser.o
-MOTIF = /mit/motif
-INCLUDE= -I$(BUILDTOP)/include -I$(BUILDTOP)/lib -I$(MOTIF)/include \
- -I/usr/athena/include ${GDSSINC} -I.
+INCLUDE= -I$(BUILDTOP)/include -I$(BUILDTOP)/lib -I$(XDIR)/include \
+ -I$(MOTIFINC) -I/usr/athena/include ${GDSSINC} -I.
DEFINES= -D_NO_PROTO
-program(mmoira, ${OBJS},${MR_LIBDEP} ${GDB_LIBDEP},${GDSSLIB} ${CLIBS} -L$(MOTIF)/`machtype`lib -lXm -lXt -lX11,${PROGDIR})
+program(mmoira, ${OBJS},${MR_LIBDEP} ${GDB_LIBDEP},${LIBGDSS} ${CLIBS} -L$(XDIR)/lib -L$(MOTIFLIB) -lXm -lXt -lX11,${PROGDIR})
form_data.c: forms.txt forms.awk
awk -f forms.awk forms.txt > form_data.c
#include <string.h>
#include <sys/types.h>
#include <sys/signal.h>
+#ifdef POSIX
+#include <termios.h>
+#else
#include <sgtty.h>
+#endif
#include <sys/ioctl.h>
#include <ctype.h>
#include <X11/Intrinsic.h>
extern MenuItem MenuRoot;
char prompt[] = "moira> ";
+#ifdef POSIX
+static struct termios otty, ntty;
+#else
static struct sgttyb otty, ntty;
-
+#endif
TtyMainLoop()
{
sleep(10);
#endif /* DEBUG */
-#ifndef POSIX
+#ifdef POSIX
+ tcgetattr(0, &otty);
+ ntty = otty;
+ ntty.c_lflag &= ~(ICANON|ECHO);
+ ntty.c_cc[VTIME] = 0;
+ ntty.c_cc[VMIN] = 1;
+#else
ioctl(0, TIOCFLUSH, &arg);
-#endif
ioctl(0, TIOCGETP, &otty);
ntty = otty;
ntty.sg_flags |= RAW;
ntty.sg_flags &= ~ECHO;
+#endif
raw_mode();
while (1) {
cooked_mode()
{
+#ifdef POSIX
+ tcsetattr (0, TCSANOW, &otty);
+#else
ioctl(0, TIOCSETP, &otty);
+#endif
}
raw_mode()
{
+#ifdef POSIX
+ tcsetattr (0, TCSANOW, &ntty);
+#else
ioctl(0, TIOCSETP, &ntty);
+#endif
}
static NumWords(s)