# $DragonFly: src/games/atc/Makefile,v 1.4 2006/10/08 16:22:35 pavalos Exp $
PROG= atc
-CFLAGS+=-DBSD -I${.CURDIR} -I.
+CFLAGS+=-I${.CURDIR} -I.
SRCS= extern.c grammar.y graphics.c input.c lex.l list.c log.c \
main.c tunable.c update.c y.tab.h
MAN= atc.6
-DPADD= ${LIBL} ${LIBM} ${LIBCURSES} ${LIBTERMCAP}
-LDADD= -ll -lm -lcurses -ltermcap
+DPADD= ${LIBL} ${LIBM} ${LIBCURSES}
+LDADD= -ll -lm -lcurses
FILES= Game_List Killer crossover default easy game_2
FILESDIR= ${SHAREDIR}/games/atc
HIDEGAME=hidegame
LIST air, ground;
-struct sgttyb tty_start, tty_new;
+struct termios tty_start, tty_new;
DISPLACEMENT displacement[MAXDIR] = {
{ 0, -1 },
extern LIST air, ground;
-extern struct sgttyb tty_start, tty_new;
+extern struct termios tty_start, tty_new;
extern DISPLACEMENT displacement[MAXDIR];
* For more info on this and all of my stuff, mail edjames@berkeley.edu.
*/
+#include <stdlib.h>
#include "include.h"
-#ifdef SYSV
#include <errno.h>
-#endif
#define C_TOPBOTTOM '-'
#define C_LEFTRIGHT '|'
int
getAChar(void)
{
-#ifdef BSD
- return (getchar());
-#endif
-#ifdef SYSV
int c;
- while ((c = getchar()) == -1 && errno == EINTR) ;
+ errno = 0;
+ while ((c = getchar()) == -1 && errno == EINTR) {
+ errno = 0;
+ clearerr(stdin);
+ }
return(c);
-#endif
}
void
quit(void)
{
int c, y, x;
-#ifdef BSD
struct itimerval itv;
-#endif
getyx(input, y, x);
wmove(input, 2, 0);
c = getchar();
if (c == EOF || c == 'y') {
/* disable timer */
-#ifdef BSD
itv.it_value.tv_sec = 0;
itv.it_value.tv_usec = 0;
setitimer(ITIMER_REAL, &itv, NULL);
-#endif
-#ifdef SYSV
- alarm(0);
-#endif
fflush(stdout);
clear();
refresh();
PLANE *pp;
int warning = 0;
-#ifdef BSD
wclear(planes);
-#endif
-
wmove(planes, 0,0);
-
-#ifdef SYSV
- wclrtobot(planes);
-#endif
wprintw(planes, "Time: %-4d Safe: %d", clck, safe_planes);
wmove(planes, 2, 0);
-
waddstr(planes, "pl dt comm");
for (pp = air.head; pp != NULL; pp = pp->next) {
if (waddch(planes, '\n') == ERR) {
loser(const PLANE *p, const char *s)
{
int c;
-#ifdef BSD
struct itimerval itv;
-#endif
/* disable timer */
-#ifdef BSD
itv.it_value.tv_sec = 0;
itv.it_value.tv_usec = 0;
setitimer(ITIMER_REAL, &itv, NULL);
-#endif
-#ifdef SYSV
- alarm(0);
-#endif
wmove(input, 0, 0);
wclrtobot(input);
* For more info on this and all of my stuff, mail edjames@berkeley.edu.
*/
-#include <stdio.h>
-#include <ctype.h>
-#include <sys/types.h>
-#include <pwd.h>
-
-#ifdef BSD
-#include <sgtty.h>
#include <sys/time.h>
-#include <sys/file.h>
-#endif
-
-#include <fcntl.h>
-#include <unistd.h>
-#include <string.h>
-#include <stdlib.h>
-#ifdef SYSV
+#include <sys/types.h>
#include <sys/utsname.h>
-#endif
-
-#include <signal.h>
-#include <math.h>
-
+#include <ctype.h>
#include <curses.h>
-
-#ifdef SYSV
-#define index strchr
-#define rindex strrchr
-#define bcopy(a,b,c) memcpy((b), (a), (c))
-#define bzero(a,b) memset((a), '\0', (b))
-#define srandom srand
-#define random rand
-#define sgttyb termio
-#define sg_erase c_cc[2]
-#define sg_kill c_cc[3]
-#endif
+#include <fcntl.h>
+#include <math.h>
+#include <pwd.h>
+#include <signal.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <termios.h>
+#include <unistd.h>
#include "def.h"
#include "struct.h"
#include <sys/wait.h>
+#include <stdlib.h>
+#include <string.h>
#include "include.h"
#include "pathnames.h"
#define MAXDEPTH 15
#define RETTOKEN '\r'
-#ifdef SYSV
-#define CRTOKEN '\r'
-#endif
#define REDRAWTOKEN '\014' /* CTRL(L) */
#define SHELLTOKEN '!'
#define HELPTOKEN '?'
RULE state0[] = { { ALPHATOKEN, 1, "%c:", setplane},
{ RETTOKEN, -1, "", NULL },
-#ifdef SYSV
- { CRTOKEN, -1, "", NULL },
-#endif
{ HELPTOKEN, 12, " [a-z]<ret>", NULL }},
state1[] = { { 't', 2, " turn", turn },
{ 'a', 3, " altitude:", NULL },
state4[] = { { '@', 9, " at", NULL },
{ 'a', 9, " at", NULL },
{ RETTOKEN, -1, "", NULL },
-#ifdef SYSV
- { CRTOKEN, -1, "", NULL },
-#endif
{ HELPTOKEN, 12, " @a<ret>", NULL }},
state5[] = { { NUMTOKEN, 7, "%c", delayb },
{ HELPTOKEN, 12, " [0-9]", NULL }},
{ 'a', 4, " 270", rel_dir },
{ 'q', 4, " 315", rel_dir },
{ RETTOKEN, -1, "", NULL },
-#ifdef SYSV
- { CRTOKEN, -1, "", NULL },
-#endif
{ HELPTOKEN, 12, " @a<dir><ret>",NULL }},
state7[] = { { RETTOKEN, -1, "", NULL },
-#ifdef SYSV
- { CRTOKEN, -1, "", NULL },
-#endif
{ HELPTOKEN, 12, " <ret>", NULL }},
state8[] = { { NUMTOKEN, 4, "%c", benum },
{ HELPTOKEN, 12, " [0-9]", NULL }},
do {
c = gettoken();
- if (c == tty_new.sg_erase) {
+ if (c == tty_new.c_cc[VERASE]) {
if (pop() < 0)
noise();
- } else if (c == tty_new.sg_kill) {
+ } else if (c == tty_new.c_cc[VKILL]) {
while (pop() >= 0)
;
} else {
{
if (tval == SHELLTOKEN)
{
-#ifdef BSD
struct itimerval itv;
itv.it_value.tv_sec = 0;
itv.it_value.tv_usec = 0;
setitimer(ITIMER_REAL, &itv, NULL);
-#endif
-#ifdef SYSV
- int aval;
- aval = alarm(0);
-#endif
if (fork() == 0) /* child */
{
char *shell, *base;
}
wait(0);
-#ifdef BSD
- ioctl(fileno(stdin), TIOCSETP, &tty_new);
+ tcsetattr(fileno(stdin), TCSANOW, &tty_new);
itv.it_value.tv_sec = 0;
itv.it_value.tv_usec = 1;
itv.it_interval.tv_sec = sp->update_secs;
itv.it_interval.tv_usec = 0;
setitimer(ITIMER_REAL, &itv, NULL);
-#endif
-#ifdef SYSV
- ioctl(fileno(stdin), TCSETAW, &tty_new);
- alarm(aval);
-#endif
}
redraw();
}
#include "include.h"
#include "pathnames.h"
-#ifdef SYSV
#include <sys/utsname.h>
-#endif
static FILE *score_fp;
struct passwd *pw;
char *cp;
SCORE score[100], thisscore;
-#ifdef SYSV
- struct utsname name;
-#endif
+ struct utsname xname;
if (score_fp == NULL) {
warnx("no score file available");
return (-1);
}
-#ifdef BSD
if (flock(fileno(score_fp), LOCK_EX) < 0)
-#endif
-#ifdef SYSV
- while (lockf(fileno(score_fp), F_LOCK, 1) < 0)
-#endif
{
warn("flock %s", _PATH_SCORE);
return (-1);
return (-1);
}
strcpy(thisscore.name, pw->pw_name);
-#ifdef BSD
- if (gethostname(thisscore.host, sizeof (thisscore.host)) < 0) {
- perror("gethostname");
- return (-1);
- }
-#endif
-#ifdef SYSV
- uname(&name);
- strcpy(thisscore.host, name.nodename);
-#endif
+
+ uname(&xname);
+ strcpy(thisscore.host, xname.nodename);
cp = rindex(filename, '/');
if (cp == NULL) {
}
putchar('\n');
}
-#ifdef BSD
flock(fileno(score_fp), LOCK_UN);
-#endif
-#ifdef SYSV
- /* lock will evaporate upon close */
-#endif
fclose(score_fp);
printf("%2s: %-8s %-8s %-18s %4s %9s %4s\n", "#", "name", "host",
"game", "time", "real time", "planes safe");
* For more info on this and all of my stuff, mail edjames@berkeley.edu.
*/
+#include <stdlib.h>
#include "include.h"
#include "pathnames.h"
int f_printpath = 0;
const char *file = NULL;
char *p_name, *ptr;
-#ifdef BSD
struct itimerval itv;
-#endif
/* Open the score file then revoke setgid privileges */
open_score_file();
signal(SIGINT, (sig_t)quit);
signal(SIGQUIT, (sig_t)quit);
-#ifdef BSD
signal(SIGTSTP, SIG_IGN);
signal(SIGSTOP, SIG_IGN);
-#endif
signal(SIGHUP, (sig_t)log_score);
signal(SIGTERM, (sig_t)log_score);
-#ifdef BSD
- ioctl(fileno(stdin), TIOCGETP, &tty_start);
- bcopy(&tty_start, &tty_new, sizeof(tty_new));
- tty_new.sg_flags |= CBREAK;
- tty_new.sg_flags &= ~ECHO;
- ioctl(fileno(stdin), TIOCSETP, &tty_new);
-#endif
-
-#ifdef SYSV
- ioctl(fileno(stdin), TCGETA, &tty_start);
+ tcgetattr(fileno(stdin), &tty_start);
bcopy(&tty_start, &tty_new, sizeof(tty_new));
tty_new.c_lflag &= ~ICANON;
tty_new.c_lflag &= ~ECHO;
tty_new.c_cc[VMIN] = 1;
tty_new.c_cc[VTIME] = 0;
- ioctl(fileno(stdin), TCSETAW, &tty_new);
-#endif
-
+ tcsetattr(fileno(stdin), TCSANOW, &tty_new);
signal(SIGALRM, (sig_t)update);
-#ifdef BSD
itv.it_value.tv_sec = 0;
itv.it_value.tv_usec = 1;
itv.it_interval.tv_sec = sp->update_secs;
itv.it_interval.tv_usec = 0;
setitimer(ITIMER_REAL, &itv, NULL);
-#endif
-#ifdef SYSV
- alarm(sp->update_secs);
-#endif
for (;;) {
if (getcommand() != 1)
planewin();
else {
-#ifdef BSD
itv.it_value.tv_sec = 0;
itv.it_value.tv_usec = 0;
setitimer(ITIMER_REAL, &itv, NULL);
-#endif
-#ifdef SYSV
- alarm(0);
-#endif
update();
-#ifdef BSD
itv.it_value.tv_sec = sp->update_secs;
itv.it_value.tv_usec = 0;
itv.it_interval.tv_sec = sp->update_secs;
itv.it_interval.tv_usec = 0;
setitimer(ITIMER_REAL, &itv, NULL);
-#endif
-#ifdef SYSV
- alarm(sp->update_secs);
-#endif
}
}
}
int i, dir_diff, mask, unclean;
PLANE *pp, *p1, *p2;
-#ifdef BSD
mask = sigblock(sigmask(SIGINT));
-#endif
-#ifdef SYSV
- alarm(0);
- signal(SIGALRM, update);
-#endif
clck++;
if ((random() % sp->newplane_time) == 0)
addplane();
-#ifdef BSD
sigsetmask(mask);
-#endif
-#ifdef SYSV
- alarm(sp->update_secs);
-#endif
}
const char *