lex.yy.c: config.l
$(LEX) $<
-y.tab.c: config.y
+y.tab.c y.tab.h: config.y
$(YACC) -d $<
lex.yy.o: lex.yy.c
@echo "Created source release $(NAME)-$(VERSION).tar.gz"
# Dependencies - we may auto-generate later
-dgamelaunch.o: dgamelaunch.c dgamelaunch.h y.tab.o
+ee.o: ee.c
io.o: io.c ttyrec.h
+last_char_is.o: last_char_is.c
+mygetnstr.o: mygetnstr.c
+nethackstub.o: nethackstub.c
stripgfx.o: stripgfx.c stripgfx.h
-ttyplay.o: ttyplay.c ttyrec.h io.h stripgfx.h
+strlcat.o: strlcat.c
+strlcpy.o: strlcpy.c
+ttyplay.o: ttyplay.c dgamelaunch.h ttyplay.h ttyrec.h io.h stripgfx.h
ttyrec.o: ttyrec.c dgamelaunch.h ttyrec.h io.h
virus.o: virus.c last_char_is.c
+y.tab.o: y.tab.c dgamelaunch.h
*/
#define _GNU_SOURCE
+
#include "dgamelaunch.h"
+#include "ttyplay.h"
+#include "ttyrec.h"
/* a request from the author: please leave some remnance of
* 'based on dgamelaunch version xxx' in any derivative works, or
extern FILE* yyin;
extern int yyparse ();
-extern pid_t child; /* nethack process */
-
extern int editor_main (int argc, char **argv);
-extern int ttyplay_main (char *ttyfile, int mode, int rstripgfx);
-extern int ttyrec_main (char *username, char* ttyrec_filename);
-extern int master, slave;
-extern struct termios tt;
-extern struct winsize win;
/* global variables */
unsigned long max;
};
+/* Global variables */
extern char* config; /* file path */
extern struct dg_config *myconfig;
+extern char *chosen_name;
+extern int loggedin;
-/* dgamelaunch.c function prototypes */
-extern void create_config (void);
-extern void ttyrec_getmaster (void);
-extern char* gen_ttyrec_filename (void);
-extern char* gen_inprogress_lock (pid_t pid, char* ttyrec_filename);
-extern void catch_sighup (int signum);
-extern void loadbanner (struct dg_banner *ban);
-extern void drawbanner (unsigned int start_line, unsigned int howmany);
-extern struct dg_game **populate_games (int *l);
-extern void inprogressmenu (void);
-extern int changepw (void);
-extern void domailuser (char *username);
-extern void drawmenu (void);
-extern void freefile (void);
-extern void initcurses (void);
-extern void loginprompt (void);
-extern void newuser (void);
-extern int passwordgood (char *cpw);
-extern int readfile (int nolock);
-extern int userexist (char *cname);
-extern void write_canned_rcfile (char *target);
-extern void editoptions (void);
-extern void writefile (int requirenew);
-extern void graceful_exit (int status);
+/* dgamelaunch.c */
+extern void create_config(void);
+extern void ttyrec_getmaster(void);
+extern char *gen_ttyrec_filename(void);
+extern char *gen_inprogress_lock(pid_t pid, char *ttyrec_filename);
+extern void catch_sighup(int signum);
+extern void loadbanner(struct dg_banner *ban);
+extern void drawbanner(unsigned int start_line, unsigned int howmany);
+extern struct dg_game **populate_games(int *l);
+extern void inprogressmenu(void);
+extern int changepw(void);
+extern void domailuser(char *username);
+extern void drawmenu(void);
+extern void freefile(void);
+extern void initcurses(void);
+extern void loginprompt(void);
+extern void newuser(void);
+extern int passwordgood(char *cpw);
+extern int readfile(int nolock);
+extern int userexist(char *cname);
+extern void write_canned_rcfile(char *target);
+extern void editoptions(void);
+extern void writefile(int requirenew);
+extern void graceful_exit(int status);
+extern int purge_stale_locks(void);
+extern void menuloop(void);
/* strlcpy.c */
extern size_t strlcpy (char *dst, const char *src, size_t siz);
#include <termios.h>
#include <string.h>
#include <curses.h>
+
+#include "dgamelaunch.h"
+#include "ttyplay.h"
#include "ttyrec.h"
#include "io.h"
#include "stripgfx.h"
-extern void domailuser (char *);
-extern void initcurses (void);
-extern char *chosen_name;
-extern int loggedin;
-
-int ttyplay_main (char *ttyfile, int mode, int rstripgfx);
-
off_t seek_offset_clrscr;
int bstripgfx;
-char *ttyfile_local;
-
-typedef double (*WaitFunc) (struct timeval prev,
- struct timeval cur, double speed);
-typedef int (*ReadFunc) (FILE * fp, Header * h, char **buf, int pread);
-typedef void (*WriteFunc) (char *buf, int len);
-typedef void (*ProcessFunc) (FILE * fp, double speed,
- ReadFunc read_func, WaitFunc wait_func);
struct timeval
timeval_diff (struct timeval tv1, struct timeval tv2)
{
initcurses ();
domailuser (chosen_name);
- /* XXX jilles: just quit out after mail for now */
-#if 0
- endwin ();
- ttyplay_main (ttyfile_local, 1, 0); /* ICK! Recursive */
-#endif
return 0;
}
break;
FILE *input = stdin;
struct termios old, new;
- ttyfile_local = ttyfile;
-
/* strip graphics mode flag */
bstripgfx = rstripgfx;
if (bstripgfx)
--- /dev/null
+#ifndef INCLUDED_ttyplay_h
+#define INCLUDED_ttyplay_h
+
+#include <stdio.h>
+#include "ttyrec.h"
+
+int ttyplay_main (char *ttyfile, int mode, int rstripgfx);
+
+typedef double (*WaitFunc) (struct timeval prev,
+ struct timeval cur, double speed);
+typedef int (*ReadFunc) (FILE * fp, Header * h, char **buf, int pread);
+typedef void (*WriteFunc) (char *buf, int len);
+typedef void (*ProcessFunc) (FILE * fp, double speed,
+ ReadFunc read_func, WaitFunc wait_func);
+
+#endif /* !INCLUDED_ttyrec_h */
/*
* script
*/
-#include "dgamelaunch.h"
+
#include <sys/types.h>
#include <sys/stat.h>
#include <sys/ioctl.h>
-#include <sys/file.h>
#include <sys/time.h>
#include <sys/wait.h>
#include <stdlib.h>
#include <fcntl.h>
+#include "dgamelaunch.h"
#include "ttyrec.h"
#include "io.h"
# define XCASE 0
#endif
-void done (void);
-void fail (void);
-void fixtty (void);
-void getslave (void);
-void doinput (void);
-void dooutput (void);
-void doshell (char *);
-
-FILE *fscript;
-int master;
int slave;
pid_t child, subchild;
char* ipfile = NULL;
+FILE *fscript;
+int master;
+
struct termios tt;
struct winsize win;
-int lb;
-int l;
-int aflg;
int uflg;
int
ttyrec_main (char *username, char* ttyrec_filename)
{
- void finish ();
char dirname[100];
snprintf (dirname, 100, "%sttyrec/%s", myconfig->dglroot, username);
}
void
-finish ()
+finish (int sig)
{
int status;
register int pid;
register int die = 0;
- while ((pid = wait3 ((int *) &status, WNOHANG, 0)) > 0)
+ (void)sig; /* unused */
+
+ while ((pid = wait3 (&status, WNOHANG, 0)) > 0)
+ {
if (pid == child)
die = 1;
+ }
if (die)
done ();
}
Header;
+extern void done (void);
+extern void fail (void);
+extern void fixtty (void);
+extern void getslave (void);
+extern void doinput (void);
+extern void dooutput (void);
+extern void doshell (char *);
+extern void finish (int);
+
+extern int ttyrec_main(char *username, char *ttyrec_filename);
+
+extern pid_t child; /* nethack process */
+extern int master, slave;
+extern struct termios tt;
+extern struct winsize win;
#endif