srogue: use functions from mdport.c.
Shell escape, passwd entries, terminal settings, and most signal handling is now done with the more portable md_* functions.
This commit is contained in:
parent
de1e0f2759
commit
791df4324f
10 changed files with 34 additions and 115 deletions
|
|
@ -18,11 +18,8 @@
|
|||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
#include <time.h>
|
||||
#include <termios.h>
|
||||
#include <fcntl.h>
|
||||
#include <stdio.h>
|
||||
#include <signal.h>
|
||||
#include <pwd.h>
|
||||
#include <limits.h>
|
||||
#include <sys/stat.h>
|
||||
#include "rogue.h"
|
||||
|
|
@ -39,8 +36,6 @@
|
|||
|
||||
#include "rogue.ext"
|
||||
|
||||
struct termios terminal;
|
||||
|
||||
main(argc, argv, envp)
|
||||
char **argv;
|
||||
char **envp;
|
||||
|
|
@ -48,8 +43,6 @@ char **envp;
|
|||
register char *env;
|
||||
register struct linked_list *item;
|
||||
register struct object *obj;
|
||||
struct passwd *pw;
|
||||
struct passwd *getpwuid();
|
||||
char alldone, wpt;
|
||||
char *getpass(), *xcrypt(), *strrchr();
|
||||
int lowtime;
|
||||
|
|
@ -132,10 +125,11 @@ char **envp;
|
|||
|
||||
if ((env = getenv("HOME")) != NULL)
|
||||
strcpy(home, env);
|
||||
else if ((pw = getpwuid(playuid)) != NULL)
|
||||
strcpy(home, pw->pw_dir);
|
||||
else
|
||||
home[0] = '\0';
|
||||
else {
|
||||
strncpy(home, md_gethomedir(), LINLEN);
|
||||
if (home[LINLEN-1] != '\0')
|
||||
home[0] = '\0';
|
||||
}
|
||||
|
||||
if (strcmp(home,"/") == 0)
|
||||
home[0] = '\0';
|
||||
|
|
@ -153,13 +147,7 @@ char **envp;
|
|||
|
||||
if (!use_savedir && (env == NULL || whoami[0] == '\0'))
|
||||
{
|
||||
if((pw = getpwuid(playuid)) == NULL)
|
||||
{
|
||||
printf("Say, who are you?\n");
|
||||
exit(1);
|
||||
}
|
||||
else
|
||||
strucpy(whoami, pw->pw_name, strlen(pw->pw_name));
|
||||
strucpy(whoami, md_getusername(), strlen(md_getusername()));
|
||||
}
|
||||
|
||||
if (env == NULL || fruit[0] == '\0')
|
||||
|
|
@ -191,8 +179,7 @@ char **envp;
|
|||
seed = dnum;
|
||||
srand48(seed); /* init rnd number gen */
|
||||
|
||||
signal(SIGINT, byebye); /* just in case */
|
||||
signal(SIGQUIT ,byebye);
|
||||
md_onsignal_exit(); /* just in case */
|
||||
|
||||
init_everything();
|
||||
|
||||
|
|
@ -397,27 +384,7 @@ int number, sides;
|
|||
*/
|
||||
setup()
|
||||
{
|
||||
signal(SIGHUP, auto_save);
|
||||
signal(SIGINT, auto_save);
|
||||
signal(SIGQUIT, byebye);
|
||||
signal(SIGILL, game_err);
|
||||
signal(SIGTRAP, game_err);
|
||||
#ifdef SIGIOT
|
||||
signal(SIGIOT, game_err);
|
||||
#endif
|
||||
#ifdef SIGEMT
|
||||
signal(SIGEMT, game_err);
|
||||
#endif
|
||||
signal(SIGFPE, game_err);
|
||||
#ifdef SIGBUS
|
||||
signal(SIGBUS, game_err);
|
||||
#endif
|
||||
signal(SIGSEGV, game_err);
|
||||
#ifdef SIGSYS
|
||||
signal(SIGSYS, game_err);
|
||||
#endif
|
||||
signal(SIGPIPE, game_err);
|
||||
signal(SIGTERM, game_err);
|
||||
md_onsignal_autosave();
|
||||
|
||||
nonl();
|
||||
cbreak();
|
||||
|
|
@ -433,9 +400,6 @@ playit()
|
|||
{
|
||||
reg char *opts;
|
||||
|
||||
tcgetattr(0,&terminal);
|
||||
|
||||
|
||||
/* parse environment declaration of options */
|
||||
|
||||
if ((opts = getenv("ROGUEOPTS")) != NULL)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue