Also, remove dgl-wall from Makefile, because it doesn't work anymore.
git-svn-id: svn://katsu.triplehelix.org/dgamelaunch/trunk@417
db0b04b0-f4d1-0310-9a6d-
de3e77497b0e
STATIC_SRCS = $(EDITOR) dgl-common.c ttyrec.c dgamelaunch.c io.c ttyplay.c mygetnstr.c stripgfx.c strlcpy.c strlcat.c @SETPROCTITLE_C@
DYN_SRCS = y.tab.c lex.yy.c
EXTRA_SRCS = nethackstub.c
-DEP_SRCS := $(STATIC_SRCS) $(EXTRA_SRCS) dgl-wall.c
+DEP_SRCS := $(STATIC_SRCS) $(EXTRA_SRCS)
SRCS := $(STATIC_SRCS) $(DYN_SRCS)
OBJS = $(SRCS:.c=.o)
-WALL_OBJS = y.tab.o lex.yy.o dgl-common.o dgl-wall.o strlcat.o strlcpy.o
-all: .depend $(NAME) dgl-wall
+all: .depend $(NAME)
$(NAME): $(OBJS)
$(CC) $(CFLAGS) -o $@ $(OBJS) $(LIBS)
-dgl-wall: $(WALL_OBJS)
- $(CC) $(CFLAGS) -o $@ $(WALL_OBJS) $(LIBS)
-
clean:
- rm -f $(NAME) nethackstub dgl-wall
+ rm -f $(NAME) nethackstub
rm -f *.o *~ y.tab.* lex.yy.c .depend .depend.bak
distclean: clean
unlink { yylval.i = DGLCMD_UNLINK; return TYPE_DGLCMD1; }
setenv { yylval.i = DGLCMD_SETENV; return TYPE_DGLCMD2; }
exec { yylval.i = DGLCMD_EXEC; return TYPE_DGLCMD2; }
+chpasswd { yylval.i = DGLCMD_CHPASSWD; return TYPE_DGLCMD0; }
DEFINE { return TYPE_DEFINE_GAME; }
%token <s> TYPE_VALUE
%token <i> TYPE_NUMBER TYPE_CMDQUEUENAME
%type <kt> KeyType
-%token <i> TYPE_DGLCMD1 TYPE_DGLCMD2
+%token <i> TYPE_DGLCMD0 TYPE_DGLCMD1 TYPE_DGLCMD2
%token TYPE_DEFINE_GAME
%token <i> TYPE_BOOL
}
}
+ | TYPE_DGLCMD0
+ {
+ struct dg_cmdpart *tmp = malloc(sizeof(struct dg_cmdpart));
+ if (tmp) {
+ struct dg_cmdpart *foo = curr_cmdqueue;
+ if (foo) {
+ while (foo->next) foo = foo->next;
+ foo->next = tmp;
+ } else curr_cmdqueue = tmp;
+ tmp->next = NULL;
+ tmp->param1 = NULL;
+ tmp->param2 = NULL;
+ tmp->cmd = $<i>1;
+ }
+ }
| TYPE_DGLCMD2 TYPE_VALUE TYPE_VALUE
{
struct dg_cmdpart *tmp = malloc(sizeof(struct dg_cmdpart));
DGLCMD_CP, /* cp foo bar */
DGLCMD_UNLINK, /* unlink foo */
DGLCMD_EXEC, /* exec foo bar */
- DGLCMD_SETENV /* setenv foo bar */
+ DGLCMD_SETENV, /* setenv foo bar */
+ DGLCMD_CHPASSWD /* chpasswd */
} dglcmd_actions;
typedef enum
case DGLCMD_SETENV:
if (p1 && p2) mysetenv(p1, p2, 1);
break;
+ case DGLCMD_CHPASSWD:
+ if (loggedin) changepw(1);
+ break;
}
free(p1);
free(p2);
# unlink "foo" = deletes file "foo"
# setenv "foo "bar" = sets environment variable "foo" to "bar"
# exec "foo" "bar" = execute "foo" with "bar" as it's param
+# chpasswd = do the change password prompting, if logged in
#
# The commands will be done inside the chroot and with the uid and gid
# defined above.