You can subscribe to this list here.
2004 |
Jan
|
Feb
|
Mar
(180) |
Apr
(20) |
May
|
Jun
(91) |
Jul
(78) |
Aug
(18) |
Sep
|
Oct
|
Nov
|
Dec
|
---|
From: Peep P. <so...@us...> - 2004-04-01 19:29:13
|
Update of /cvsroot/agd/server/lib In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv19724/lib Modified Files: ChangeLog Log Message: Major cleanups. Index: ChangeLog =================================================================== RCS file: /cvsroot/agd/server/lib/ChangeLog,v retrieving revision 1.1 retrieving revision 1.2 diff -u -d -r1.1 -r1.2 --- ChangeLog 28 Mar 2004 18:02:33 -0000 1.1 +++ ChangeLog 1 Apr 2004 19:17:13 -0000 1.2 @@ -1,8 +1,10 @@ I think the time has come to start a changelog for the library, separate -from the driver's. So, here it is, changelog for AGD'd mudlib v0.2: +from the driver's. So, here it is, changelog for AGD's mudlib 0.2: 0.2: -------------------------------------------------------------------------------- +2004-03-30 + * Removed /beer.c. Useless. 2004-03-28 * sys/player.c: now uses string ranges, so commands like //uptime work. |
From: Peep P. <so...@us...> - 2004-04-01 19:23:27
|
Update of /cvsroot/agd/server/src In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv18313 Modified Files: vars.h vars.c sys.h sys.c options object.h object.c net.h net.c main.c lpc_incl.h list.c lang.y lang.h dfuns.c dfparse.y dfparse.h dflex.l debug.c Log Message: Small cleanups, style changes, added missing prototypes etc. Index: net.h =================================================================== RCS file: /cvsroot/agd/server/src/net.h,v retrieving revision 1.10 retrieving revision 1.11 diff -u -d -r1.10 -r1.11 --- net.h 20 Mar 2004 19:17:30 -0000 1.10 +++ net.h 1 Apr 2004 19:10:53 -0000 1.11 @@ -12,7 +12,7 @@ #include <sys/time.h> #include <sys/types.h> -#ifdef WINSOCK +#if HAVE_WINSOCK_H #include <winsock.h> #else #include <sys/socket.h> @@ -24,7 +24,7 @@ int socket; struct sockaddr_in addr; char recvbuf[NET_RECEIVEBUF]; - enum { DISCONNECTED = -1, DEFAULT, CONNECTED } state; +/* enum { DISCONNECTED = -1, DEFAULT, CONNECTED } state;*/ time_t last_active; } player_connection_t; Index: sys.c =================================================================== RCS file: /cvsroot/agd/server/src/sys.c,v retrieving revision 1.12 retrieving revision 1.13 diff -u -d -r1.12 -r1.13 --- sys.c 28 Mar 2004 17:50:47 -0000 1.12 +++ sys.c 1 Apr 2004 19:10:53 -0000 1.13 @@ -6,13 +6,19 @@ */ /* todo - custom realloc() */ -#include "std.h" +#include "config.h" + +#include <stdlib.h> +#include <stdio.h> #include <errno.h> -#ifdef HAVE_MACHINE_TYPES_H +#include <math.h> +#if HAVE_MACHINE_TYPES_H #include <machine/types.h> #endif #include <dirent.h> -#include <math.h> + +#include "sys.h" +#include "compile_options.h" config_t conf; static mstats_t mstats; @@ -170,14 +176,11 @@ int legal_path(char *fn) { char *p; - p = fn; - if(p = strstr(p, "..")) - return 0; /* found it */ - else - return 1; + p = strstr(fn, ".."); + return !p; } -/* stringdup() isn't ANSI, so we need this replacement. */ +/* strdup() isn't ANSI, so we need this replacement. */ char *stringdup(char *s) { char *p = xmalloc(strlen(s) + 1); Index: list.c =================================================================== RCS file: /cvsroot/agd/server/src/list.c,v retrieving revision 1.5 retrieving revision 1.6 diff -u -d -r1.5 -r1.6 --- list.c 15 Mar 2004 18:48:45 -0000 1.5 +++ list.c 1 Apr 2004 19:10:53 -0000 1.6 @@ -3,8 +3,9 @@ Based on (the old) array.c -solicit 06.12.03 */ -#include "std.h" -#include "lpc_incl.h" +#include <stdio.h> +#include "sys.h" +#include "list.h" void list_push(list_t *l, void *data) { Index: lang.h =================================================================== RCS file: /cvsroot/agd/server/src/lang.h,v retrieving revision 1.7 retrieving revision 1.8 diff -u -d -r1.7 -r1.8 --- lang.h 28 Mar 2004 17:58:15 -0000 1.7 +++ lang.h 1 Apr 2004 19:10:53 -0000 1.8 @@ -126,7 +126,7 @@ #if ! defined (YYSTYPE) && ! defined (YYSTYPE_IS_DECLARED) -#line 33 "lang.y" +#line 30 "lang.y" typedef union YYSTYPE { char *str; int i; @@ -145,5 +145,19 @@ extern YYSTYPE yylval; +#if ! defined (YYLTYPE) && ! defined (YYLTYPE_IS_DECLARED) +typedef struct YYLTYPE +{ + int first_line; + int first_column; + int last_line; + int last_column; +} YYLTYPE; +# define yyltype YYLTYPE /* obsolescent; will be withdrawn */ +# define YYLTYPE_IS_DECLARED 1 +# define YYLTYPE_IS_TRIVIAL 1 +#endif + +extern YYLTYPE yylloc; Index: net.c =================================================================== RCS file: /cvsroot/agd/server/src/net.c,v retrieving revision 1.13 retrieving revision 1.14 diff -u -d -r1.13 -r1.14 --- net.c 28 Mar 2004 17:57:04 -0000 1.13 +++ net.c 1 Apr 2004 19:10:53 -0000 1.14 @@ -5,9 +5,10 @@ #include <stdio.h> #include <string.h> +#include <errno.h> + #include "sys.h" #include "compile_options.h" - #include "list.h" #include "array.h" #include "lpc.h" @@ -15,10 +16,9 @@ #include "net.h" #include "interpret.h" -#include <errno.h> - #define LOOP_PLAYERS() for(i=0;i<players.length;i++) { player_t *pl = players.data[i]; -array_t players; + + array_t players; extern list_t all_objects; extern player_t *this_player; @@ -27,15 +27,7 @@ static int greatest_sockfd, listenfd; static fd_set readfds, writefds; -int find_player_nr(player_t *p) -{ - int i; - for(i = 0;i<players.length;i++) { - if(players.data[i] == p) - return i; - } - return -1; -} +int do_write(char *s); void net_listen(unsigned short port) { @@ -84,7 +76,8 @@ #ifdef HAVE_SOCKLEN_T socklen_t #elif defined(HAVE_SIZE_T) - size_t + size_t /* MacOSX has size_t, but takes int as argument + to accept. Tough case. */ #else int #endif @@ -92,6 +85,7 @@ player_t *p; object_t *player_ob; + variable_t *login_ob, *pob; p = type_xmalloc(player_t); memset(p, 0, sizeof(player_t)); @@ -101,7 +95,7 @@ if(p->conn.socket > greatest_sockfd) greatest_sockfd = p->conn.socket; - p->conn.state = DEFAULT; +/* p->conn.state = DEFAULT;*/ this_player = p; player_ob = type_xmalloc(object_t); @@ -109,41 +103,36 @@ player_ob->name = NULL; player_ob->prog = NULL; this_ob = p->ob = player_ob; - { - variable_t *login_ob, *pob; - login_ob = apply(master, "connect", NULL); - if(!login_ob || login_ob->type != T_OBJECT) - crash(0, "master::connect() is not working", 3); + login_ob = apply(master, "connect", NULL); + if(!login_ob || login_ob->type != T_OBJECT) + crash(0, "master::connect() is not working", 3); - if(!login_ob->u.ob) { - fprintf(stderr, "Warning: master::connect() didn't return an object.\n"); - do_write("Oops, glitch in world fabric - you didn't get a login object.\n"); - xfree(player_ob); - net_disconnect(p); - return; - } + if(!login_ob->u.ob) { + fprintf(stderr, "Warning: master::connect() didn't return an object.\n"); + do_write("Oops, glitch in world fabric - you didn't get a login object.\n"); + xfree(player_ob); + net_disconnect(p); + return; + } - p->ob = login_ob->u.ob; - this_ob = login_ob->u.ob; - p->ob->iaob = p; + p->ob = login_ob->u.ob; + this_ob = login_ob->u.ob; + p->ob->iaob = p; - apply(login_ob->u.ob, "logon", NULL); - if(this_player == p && p->ob == player_ob) { - return; - } + apply(login_ob->u.ob, "logon", NULL); + if(this_player == p && p->ob == player_ob) + return; - debug("net_accept", "player object was changed to %p; freeing player_ob %p\n", p->ob, player_ob); - /* player_ob is not needed anymore if we get this far. */ - xfree(player_ob); - } + debug("net_accept", "player object was changed to %p; freeing player_ob %p\n", p->ob, player_ob); + /* player_ob is not needed anymore if we get this far. */ + xfree(player_ob); } void net_disconnect(player_t *p) { int i; int fd = p->conn.socket; - int index = find_player_nr(p); if(p->conn.socket >= greatest_sockfd + 1) { p->conn.socket = 0; @@ -160,7 +149,7 @@ close(fd); #endif - array_remove(&players, index); + array_remove_by_data(&players, p); } void net_send(char *buf, int siz, player_t *p) @@ -202,7 +191,8 @@ void net_doread(player_t *pl) { - int ret = recv(pl->conn.socket, pl->conn.recvbuf, NET_RECEIVEBUF, 0); + int ret; + ret = recv(pl->conn.socket, pl->conn.recvbuf, NET_RECEIVEBUF, 0); switch(ret) { case -1: fprintf(stderr, "Error reading from player!\n"); @@ -213,7 +203,7 @@ /* the login object will have to restore this object's iaob */ pl->ob->iaob = NULL; } - pl->conn.state = DISCONNECTED; +/* pl->conn.state = DISCONNECTED;*/ break; default: net_read(pl); @@ -246,7 +236,7 @@ FD_SET(listenfd, &readfds); LOOP_PLAYERS() - if(pl->conn.state != DISCONNECTED) { + if(/*pl->conn.state != DISCONNECTED*/pl->ob) { FD_SET(pl->conn.socket, &readfds); /*FD_SET(pl->conn.socket, &writefds);*/ } Index: lpc_incl.h =================================================================== RCS file: /cvsroot/agd/server/src/lpc_incl.h,v retrieving revision 1.6 retrieving revision 1.7 diff -u -d -r1.6 -r1.7 --- lpc_incl.h 28 Mar 2004 17:57:10 -0000 1.6 +++ lpc_incl.h 1 Apr 2004 19:10:53 -0000 1.7 @@ -5,14 +5,13 @@ #include "array.h" #include "lpc.h" #include "object.h" -#include "compile.h" +/*#include "compile.h"*/ #include "net.h" #include "interpret.h" -#include "dfuns.h" #include "vars.h" /*extern object_t *master;*/ -extern list_t all_objects; +/*extern list_t all_objects;*/ extern player_t *this_player; extern object_t *this_ob, *previous_ob; Index: dflex.l =================================================================== RCS file: /cvsroot/agd/server/src/dflex.l,v retrieving revision 1.1 retrieving revision 1.2 diff -u -d -r1.1 -r1.2 --- dflex.l 12 Mar 2004 08:44:53 -0000 1.1 +++ dflex.l 1 Apr 2004 19:10:53 -0000 1.2 @@ -2,55 +2,55 @@ %{ #include "compile_options.h" #include "sys.h" -#include "lpc_incl.h" +#include "array.h" +#include "lpc.h" #include "dfparse.h" -#include "lex.h" - -extern YYLTYPE yylloc; +#define pos yylloc.first_column +#define line yylloc.first_line %} IDENTIFIER [a-zA-Z_][a-zA-Z0-9_]* %% /* comment parsing */ -"#" yylloc.pos++; BEGIN(comment); +"#" pos++; BEGIN(comment); <comment>{ - . yylloc.pos++; - \n yylloc.pos = 0; yylloc.line++; BEGIN(INITIAL); + . pos++; + \n pos = 0; line++; BEGIN(INITIAL); } /* everything else */ void { yylval.i = T_VOID; - yylloc.pos += 4; + pos += 4; return L_DATA_TYPE; } int { yylval.i = T_INT; - yylloc.pos += 3; + pos += 3; return L_DATA_TYPE; } string { yylval.i = T_STRING; - yylloc.pos += 6; + pos += 6; return L_DATA_TYPE; } mixed { yylval.i = T_MIXED; - yylloc.pos += 5; + pos += 5; return L_DATA_TYPE; } object { yylval.i = T_OBJECT; - yylloc.pos += 6; + pos += 6; return L_DATA_TYPE; } {IDENTIFIER} { char *s = (char *) stringdup(yytext); yylval.s = s; - yylloc.pos += strlen(s); + pos += strlen(s); return L_IDENTIFIER; } -[ \t] yylloc.pos++; /* ignore whitespace */ -. yylloc.pos++; return *yytext; -\n yylloc.pos = 0; yylloc.line++; +[ \t] pos++; /* ignore whitespace */ +. pos++; return *yytext; +\n line++; pos = 0; Index: dfparse.y =================================================================== RCS file: /cvsroot/agd/server/src/dfparse.y,v retrieving revision 1.7 retrieving revision 1.8 diff -u -d -r1.7 -r1.8 --- dfparse.y 28 Mar 2004 17:58:30 -0000 1.7 +++ dfparse.y 1 Apr 2004 19:10:53 -0000 1.8 @@ -33,7 +33,6 @@ #include "sys.h" /* xmalloc */ #include "array.h" #include "lpc.h" -#include "lex.h" #define DFVERSION "0.07" #define DFDECL_T "typedef struct {\n\tint ret;\n\tchar *name;\n\tvoid (*fun)(void);\n\t"\ @@ -48,7 +47,8 @@ static int numdecl, failed; static int maxarglen; -YYLTYPE yylloc; +extern FILE *yyin; +/*YYLTYPE yylloc;*/ int find_linear_len(array_t *a); @@ -79,6 +79,8 @@ int i, j, index; dfdecl_t decl; + @1; /* To force bison to define yylloc. */ + decl.ret = $1; decl.name = $2; decl.arglen = find_linear_len(&$4); @@ -159,8 +161,9 @@ int yyerror(char *s) { failed = 1; - if(yylloc.pos) - fprintf(stderr, "dfparse: syntax error in dfdecl.in at %d:%d: %s\n", yylloc.line, yylloc.pos, s); + if(yylloc.first_column) + fprintf(stderr, "dfparse: syntax error in dfdecl.in at %d:%d: %s\n", + yylloc.first_line, yylloc.first_column, s); return 0; } @@ -237,7 +240,8 @@ fprintf(stderr, "Cannot open dfdecl.in: %s\n", strerror(errno)); exit(-1); } - yylloc.line = yylloc.pos = 1; + + yylloc.first_line = yylloc.first_column = 1; yyparse(); if(failed) { Index: debug.c =================================================================== RCS file: /cvsroot/agd/server/src/debug.c,v retrieving revision 1.9 retrieving revision 1.10 diff -u -d -r1.9 -r1.10 --- debug.c 28 Mar 2004 17:59:59 -0000 1.9 +++ debug.c 1 Apr 2004 19:10:53 -0000 1.10 @@ -1,6 +1,5 @@ #include "std.h" #include "lpc_incl.h" -#include "debug.h" #ifdef DEBUG @@ -85,50 +84,6 @@ } } -void print_array(array_t *a) -{ - int i; - printf("data: %p; ", (void *) a->data); - printf("({"); - if(!a->data) { - printf(" })"); - return; - } - for(i = 0; i < a->length; i++) { - printf("%ld/%p", i, a->data[i]); - if(i + 1 < a->length) - printf(", "); - } - if(!i) printf(" "); - printf("})"); -} - -void print_var_arr(array_t *a) -{ - int i; - printf("({"); - for(i = 0; i < a->length; i++) { - print_var((variable_t *) a->data[i], 1); - if(i + 1 < a->length) - printf(","); - } - printf("})"); -} - -void print_vmt_arr(array_t *a) -{ - int j; - printf("({ "); - if(a) { - for(j=0;j<a->length;j++) { - print_vm_token(a, &j); - if(j+1<a->length) - printf(", "); - } - } - printf(" }) "); -} - char *opc_name(int i) { switch(i) { @@ -270,6 +225,50 @@ putchar('\n'); } +void print_array(array_t *a) +{ + int i; + printf("data: %p; ", (void *) a->data); + printf("({"); + if(!a->data) { + printf(" })"); + return; + } + for(i = 0; i < a->length; i++) { + printf("%ld/%p", i, a->data[i]); + if(i + 1 < a->length) + printf(", "); + } + if(!i) printf(" "); + printf("})"); +} + +void print_var_arr(array_t *a) +{ + int i; + printf("({"); + for(i = 0; i < a->length; i++) { + print_var((variable_t *) a->data[i], 1); + if(i + 1 < a->length) + printf(","); + } + printf("})"); +} + +void print_vmt_arr(array_t *a) +{ + int j; + printf("({ "); + if(a) { + for(j=0;j<a->length;j++) { + print_vm_token(a, &j); + if(j+1<a->length) + printf(", "); + } + } + printf(" }) "); +} + void print_vm_tokens(array_t *a) { int i; Index: object.c =================================================================== RCS file: /cvsroot/agd/server/src/object.c,v retrieving revision 1.12 retrieving revision 1.13 diff -u -d -r1.12 -r1.13 --- object.c 28 Mar 2004 17:53:27 -0000 1.12 +++ object.c 1 Apr 2004 19:10:53 -0000 1.13 @@ -9,6 +9,8 @@ player_t *this_player; object_t *this_ob, *previous_ob; +program_t *compile_prog(char *path); + void free_fun(void *p) { int i; @@ -87,10 +89,12 @@ ob->ref--; } +#if 0 void ref_prog(program_t *prog) { prog->ref++; } +#endif void unref_prog(program_t **prog) { @@ -108,7 +112,7 @@ } } -object_t *find_object(char *s) +object_t *find_object(char *path) { list_t *p; @@ -118,7 +122,7 @@ for(p = &all_objects; p; p = p->next) { object_t *ob = p->data; /* I'd rather not have the check for ob->name here. */ - if(ob->name && strcmp(s, ob->name) == 0) { + if(ob->name && strcmp(path, ob->name) == 0) { return ob; } } @@ -144,8 +148,7 @@ ob = find_object(path); this_ob = ob; if(ob) { - /* Try to recompile the object's - * code. */ + /* Try to recompile the object's code. */ program_t *new_prog; new_prog = compile_prog(path); if(!new_prog) { @@ -184,19 +187,19 @@ return ob; } -object_t *clone_object(char *name) +object_t *clone_object(char *path) { object_t *base_ob, *new_ob; - base_ob = find_object(name); + base_ob = find_object(path); if(!base_ob) { - base_ob = load_object(name); + base_ob = load_object(path); if(!base_ob) return NULL; } #ifdef DEBUG - debug("dfun", "cloning object %s\n", name); + debug("dfun", "cloning object %s\n", path); #endif /* ref_ob(base_ob, NULL);*/ Index: sys.h =================================================================== RCS file: /cvsroot/agd/server/src/sys.h,v retrieving revision 1.7 retrieving revision 1.8 diff -u -d -r1.7 -r1.8 --- sys.h 28 Mar 2004 17:50:47 -0000 1.7 +++ sys.h 1 Apr 2004 19:10:53 -0000 1.8 @@ -32,11 +32,11 @@ #define max(i, j) i > j ? i : j +char *add_extension(char *str); +char *absolute_path(char *path); + /* Defined in log.c */ int check_logfile(void); void debug(char *prefix, char *fmt, ...); -char *add_extension(char *str); -char *absolute_path(char *path); - #endif Index: vars.h =================================================================== RCS file: /cvsroot/agd/server/src/vars.h,v retrieving revision 1.6 retrieving revision 1.7 diff -u -d -r1.6 -r1.7 --- vars.h 28 Mar 2004 17:49:32 -0000 1.6 +++ vars.h 1 Apr 2004 19:10:53 -0000 1.7 @@ -6,12 +6,14 @@ void init_var(variable_t *var); int test_var(variable_t *v); int compare_vars(variable_t *v1, variable_t *v2); +variable_t *add_vars(variable_t *v1, variable_t *v2); +char *type2str(int t); + +#if 0 void append_to_var(variable_t *var1, variable_t *var2); variable_t *convert_var(variable_t *var, int type); -variable_t *add_vars(variable_t *v1, variable_t *v2); void assign_var(variable_t *dest, variable_t *src); void assign_var_value(variable_t *var, void *val); - -char *type2str(int t); +#endif #endif Index: dfuns.c =================================================================== RCS file: /cvsroot/agd/server/src/dfuns.c,v retrieving revision 1.17 retrieving revision 1.18 diff -u -d -r1.17 -r1.18 --- dfuns.c 28 Mar 2004 17:58:46 -0000 1.17 +++ dfuns.c 1 Apr 2004 19:10:53 -0000 1.18 @@ -1,14 +1,28 @@ -#include "std.h" -#include "lpc_incl.h" -#include "dfuns.h" +#include <stdlib.h> +#include <stdio.h> #include <time.h> #include <errno.h> #include <netdb.h> /* for gethostbyaddr() */ +#include "arch.h" +#include "sys.h" +#include "compile_options.h" +#include "list.h" +#include "array.h" +#include "lpc.h" +#include "object.h" +#include "compile.h" +#include "net.h" +#include "interpret.h" + +extern player_t *this_player; +extern object_t *this_ob, *previous_ob; + +extern list_t all_objects; extern time_t startup_time; /* for uptime() */ +extern array_t global_ids; void (**dfptr)(void); -extern array_t global_ids; void dfuns_init(void) { @@ -178,7 +192,7 @@ push_object(ret); } -void df_interactivep(void) +void df_interactive(void) { object_t *ob = fp->u.ob; int ret = ob && ob->iaob; Index: lang.y =================================================================== RCS file: /cvsroot/agd/server/src/lang.y,v retrieving revision 1.14 retrieving revision 1.15 diff -u -d -r1.14 -r1.15 --- lang.y 28 Mar 2004 17:57:49 -0000 1.14 +++ lang.y 1 Apr 2004 19:10:53 -0000 1.15 @@ -1,7 +1,7 @@ %{ #include "std.h" #include "lpc_incl.h" -#include "lex.h" +#include "compile.h" /* Used during compilation, replaced with F_JMP. Need to use two separate numbers for both, because one @@ -11,7 +11,7 @@ #define F_CONTINUE_MAGIC1 -3 #define F_CONTINUE_MAGIC2 -4 -YYLTYPE yylloc; +/*YYLTYPE yylloc;*/ /* Lexical tie-ins. */ static int global_type, @@ -20,9 +20,6 @@ continue_allowed; extern int scope_level; -void add_function(def_id_t *idp, int lineno, array_t *code); -void redeclaration_error(def_id_t *id, int new_type); -int compare_args(array_t *arg1, array_t *arg2); void make_lvalue(expr_t *e); %} @@ -95,6 +92,9 @@ %% all: program + { + @1; /* Make bison define yylloc. */ + } ; program: @@ -155,7 +155,7 @@ define_id(v->name, ID_ARG, v->type, NULL); } } - $<i>$ = yylloc.line; + $<i>$ = yylloc.first_line; } block_or_semi { @@ -269,7 +269,7 @@ define_id(v->name, ID_ARG, v->type, NULL); } } - $<i>$ = yylloc.line; + $<i>$ = yylloc.first_line; } block_or_semi { @@ -448,7 +448,7 @@ | break ';' { if(!break_allowed) { - comp_error("illegal break"); + comp_error("break used outside a loop"); } init_array(&$$); @@ -457,7 +457,7 @@ | continue ';' { if(!continue_allowed) { - comp_error("illegal continue"); + comp_error("continue used outside a loop"); } init_array(&$$); @@ -1600,24 +1600,12 @@ int i; array_t *realargs; - if($1.type != T_OBJECT && !($1.type == T_STRING && $1.direct_type)) { + if($1.type != T_OBJECT && !($1.type == T_STRING && $1.direct_type && strlen($1.arr.data[1]))) { comp_error("not an object to '->'"); } init_array(&$$); -#if 0 - { - array_t *a = &$5, *res; - int i; - res = type_xmalloc(array_t); - init_array(res); - for(i=0;i<a->length;i++) { - array_push(res, copy_array(a->data[i], NULL)); - } - array_push(&$$, res); - } -#endif realargs = type_xmalloc(array_t); init_array(realargs); Index: object.h =================================================================== RCS file: /cvsroot/agd/server/src/object.h,v retrieving revision 1.7 retrieving revision 1.8 diff -u -d -r1.7 -r1.8 --- object.h 28 Mar 2004 17:53:27 -0000 1.7 +++ object.h 1 Apr 2004 19:10:53 -0000 1.8 @@ -8,7 +8,7 @@ unsigned int lineno; } function_t; -typedef struct program_t { +typedef struct { array_t functions; array_t fun_table; int ref; @@ -17,7 +17,7 @@ typedef struct object_t { char *name; program_t *prog; - array_t /* * */ variables; + array_t variables; int ref; array_t refs; @@ -35,13 +35,12 @@ void destruct(object_t *ob); void ref_ob(object_t *ob, variable_t *v); void unref_ob(object_t *ob, variable_t *v); -void ref_prog(program_t *prog); +#define ref_prog(x) x->ref++ +/*void ref_prog(program_t *prog);*/ void unref_prog(program_t **prog); -object_t *find_object(char *name); +object_t *find_object(char *path); object_t *load_object(char *path); -object_t *clone_object(char *name); +object_t *clone_object(char *path); void tell_object(object_t *ob, char *s); -void do_exec(object_t *ob); -char *file_name(object_t *ob); #endif Index: dfparse.h =================================================================== RCS file: /cvsroot/agd/server/src/dfparse.h,v retrieving revision 1.4 retrieving revision 1.5 diff -u -d -r1.4 -r1.5 --- dfparse.h 28 Mar 2004 17:59:06 -0000 1.4 +++ dfparse.h 1 Apr 2004 19:10:53 -0000 1.5 @@ -55,5 +55,19 @@ extern YYSTYPE yylval; +#if ! defined (YYLTYPE) && ! defined (YYLTYPE_IS_DECLARED) +typedef struct YYLTYPE +{ + int first_line; + int first_column; + int last_line; + int last_column; +} YYLTYPE; +# define yyltype YYLTYPE /* obsolescent; will be withdrawn */ +# define YYLTYPE_IS_DECLARED 1 +# define YYLTYPE_IS_TRIVIAL 1 +#endif + +extern YYLTYPE yylloc; Index: options =================================================================== RCS file: /cvsroot/agd/server/src/options,v retrieving revision 1.3 retrieving revision 1.4 diff -u -d -r1.3 -r1.4 --- options 12 Mar 2004 08:40:10 -0000 1.3 +++ options 1 Apr 2004 19:10:53 -0000 1.4 @@ -1,4 +1,4 @@ -# Default options for AGD 0.01. +# Default options for AGD 0.0.3. # You generally only need to edit the 'lib:' option. # External listening port. Index: main.c =================================================================== RCS file: /cvsroot/agd/server/src/main.c,v retrieving revision 1.17 retrieving revision 1.18 diff -u -d -r1.17 -r1.18 --- main.c 28 Mar 2004 17:57:04 -0000 1.17 +++ main.c 1 Apr 2004 19:10:53 -0000 1.18 @@ -30,15 +30,13 @@ #include "array.h" #include "lpc.h" #include "object.h" -#include "compile.h" +/*#include "compile.h"*/ #include "net.h" #include "interpret.h" extern object_t *master; - static char *conf_file; - time_t startup_time; void crash(int sig, char *reason, int retval) @@ -165,7 +163,7 @@ #ifndef ALLOW_ROOT if(getuid() == 0) { printf("Please don't run AGD as root - this is a security risk at this point.\n"); - printf("Create a user for it or run it under your own account.\n"); + printf("See README in the source distribution for a longer discussion.\n"); exit(5); } #endif @@ -201,12 +199,8 @@ time(&startup_time); printf("Started at %s", ctime(&startup_time)); - srand(startup_time); - printf("Accepting connections on port %d.\n", conf.port); - net_loop(); - return 0; } Index: vars.c =================================================================== RCS file: /cvsroot/agd/server/src/vars.c,v retrieving revision 1.10 retrieving revision 1.11 diff -u -d -r1.10 -r1.11 --- vars.c 28 Mar 2004 17:49:33 -0000 1.10 +++ vars.c 1 Apr 2004 19:10:53 -0000 1.11 @@ -5,17 +5,18 @@ { switch(v->type) { case T_INT: + break; case T_OBJECT: + unref_ob(v->u.ob, v); break; case T_STRING: - if(v->u.s && v->string_type != ST_STATIC) + if(v->string_type != ST_STATIC) xfree(v->u.s); break; default: printf("warning, free_var() doesn't know about type %d\n", v->type); break; } - xfree(v); } int test_var(variable_t *v) @@ -72,6 +73,7 @@ } } +/* Utterly useless, and do_assign() in interpret.c does this. */ variable_t *copy_var(variable_t *src) { variable_t *dest; @@ -202,7 +204,7 @@ xfree(ret); return NULL; } - +#if 0 void assign_var(variable_t *dest, variable_t *src) { if(!src) @@ -232,6 +234,7 @@ break; } } +#endif /* lang.y uses this. */ char *type2str(int t) |
From: Peep P. <so...@us...> - 2004-04-01 19:19:20
|
Update of /cvsroot/agd/server/doc/lpc In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv17683 Modified Files: operators Log Message: Renamed F_RANGE to F_SLICE and F_INDEX. Index: operators =================================================================== RCS file: /cvsroot/agd/server/doc/lpc/operators,v retrieving revision 1.5 retrieving revision 1.6 diff -u -d -r1.5 -r1.6 --- operators 21 Mar 2004 13:02:37 -0000 1.5 +++ operators 1 Apr 2004 19:07:19 -0000 1.6 @@ -34,7 +34,7 @@ ?: trinary conditional (if-then-else) * , binary comma - left and right side are evaluated, then right side discarded. - [] * (F_RANGE) + [] * (F_SLICE and F_INDEX) arithmetic: + binary addition * (F_ADD) |
From: Peep P. <so...@us...> - 2004-04-01 19:18:36
|
Update of /cvsroot/agd/server/doc/dfuns In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv17498 Added Files: interactive Log Message: Added. --- NEW FILE: interactive --- int interactive(object ob) Returns 1 if ob is interactive and can receive text, and 0 otherwise. |
From: Peep P. <so...@us...> - 2004-04-01 19:18:09
|
Update of /cvsroot/agd/server/doc/dfuns In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv17434 Removed Files: interactivep Log Message: Renamed to interactive() --- interactivep DELETED --- |
From: Peep P. <so...@us...> - 2004-04-01 19:17:30
|
Update of /cvsroot/agd/server/lib In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv17241 Removed Files: beer.c Log Message: Unnecessary - removed. --- beer.c DELETED --- |
From: Peep P. <so...@us...> - 2004-04-01 19:16:59
|
Update of /cvsroot/agd/server/src In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv17163 Removed Files: debug.h lex.h dfuns.h Log Message: Removed. --- lex.h DELETED --- --- dfuns.h DELETED --- --- debug.h DELETED --- |
Update of /cvsroot/agd/server/doc/dfuns In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv8730 Modified Files: asctime atoi capitalize clone_object destruct find_object input_to interactivep load_object lower_case read_file Log Message: Wrote and changed some documentation. Index: interactivep =================================================================== RCS file: /cvsroot/agd/server/doc/dfuns/interactivep,v retrieving revision 1.1 retrieving revision 1.2 diff -u -d -r1.1 -r1.2 --- interactivep 15 Mar 2004 18:40:19 -0000 1.1 +++ interactivep 28 Mar 2004 18:42:29 -0000 1.2 @@ -0,0 +1,5 @@ +int interactivep(object) + +Returns 1 if the object is interactive and can receive text, and 0 otherwise. +This dfun's name is subject to change. Any ideas about the new name? +Send to agd...@li.... Index: find_object =================================================================== RCS file: /cvsroot/agd/server/doc/dfuns/find_object,v retrieving revision 1.1 retrieving revision 1.2 diff -u -d -r1.1 -r1.2 --- find_object 15 Mar 2004 18:40:19 -0000 1.1 +++ find_object 28 Mar 2004 18:42:29 -0000 1.2 @@ -0,0 +1,7 @@ +object find_object(string) - find an object by file name + +Loops through all existing objects, and returns the one whose file +name matches the argument. + +See also + destruct, load_object, clone_object Index: load_object =================================================================== RCS file: /cvsroot/agd/server/doc/dfuns/load_object,v retrieving revision 1.1 retrieving revision 1.2 diff -u -d -r1.1 -r1.2 --- load_object 15 Mar 2004 18:40:19 -0000 1.1 +++ load_object 28 Mar 2004 18:42:29 -0000 1.2 @@ -0,0 +1,8 @@ +object load_object(string) + +Tries to load object from path as given by argument. If the object already +exists, it's code will be recompiled; if it succeeds, the code for the object +will be updated, otherwise nothing is changed. + +See also + clone_object, destruct, find_object Index: lower_case =================================================================== RCS file: /cvsroot/agd/server/doc/dfuns/lower_case,v retrieving revision 1.1 retrieving revision 1.2 diff -u -d -r1.1 -r1.2 --- lower_case 19 Mar 2004 14:53:46 -0000 1.1 +++ lower_case 28 Mar 2004 18:42:29 -0000 1.2 @@ -1,3 +1,6 @@ string lower_case(string) Returns the lower_case version of the string. Original will not be changed. + +See also + capitalize Index: destruct =================================================================== RCS file: /cvsroot/agd/server/doc/dfuns/destruct,v retrieving revision 1.1 retrieving revision 1.2 diff -u -d -r1.1 -r1.2 --- destruct 15 Mar 2004 18:40:19 -0000 1.1 +++ destruct 28 Mar 2004 18:42:29 -0000 1.2 @@ -1,3 +1,7 @@ void destruct(object ob) -Marks the object for destruction. It will be removed from memory after all call_outs have finished. +Marks the object for destruction. It will be removed from memory after all +functions calls have finished. + +See also + clone_object, load_object, find_object Index: atoi =================================================================== RCS file: /cvsroot/agd/server/doc/dfuns/atoi,v retrieving revision 1.1 retrieving revision 1.2 diff -u -d -r1.1 -r1.2 --- atoi 28 Mar 2004 17:56:16 -0000 1.1 +++ atoi 28 Mar 2004 18:42:29 -0000 1.2 @@ -0,0 +1,4 @@ +int atoi(string) + +Converts a string into an integer. If the string doesn't contain any +numeric parts, 0 is returned. Index: read_file =================================================================== RCS file: /cvsroot/agd/server/doc/dfuns/read_file,v retrieving revision 1.1 retrieving revision 1.2 diff -u -d -r1.1 -r1.2 --- read_file 28 Mar 2004 17:56:16 -0000 1.1 +++ read_file 28 Mar 2004 18:42:29 -0000 1.2 @@ -0,0 +1,3 @@ +string read_file(string path) + +Reads in the file give by path and returns the full contents. Index: asctime =================================================================== RCS file: /cvsroot/agd/server/doc/dfuns/asctime,v retrieving revision 1.3 retrieving revision 1.4 diff -u -d -r1.3 -r1.4 --- asctime 28 Mar 2004 17:56:16 -0000 1.3 +++ asctime 28 Mar 2004 18:42:29 -0000 1.4 @@ -0,0 +1,7 @@ +string asctime(int) + +Takes the integer as time from Epoch, and returns current date as a string +based on that. + +See also: + time, strftime Index: input_to =================================================================== RCS file: /cvsroot/agd/server/doc/dfuns/input_to,v retrieving revision 1.1 retrieving revision 1.2 diff -u -d -r1.1 -r1.2 --- input_to 15 Mar 2004 18:40:19 -0000 1.1 +++ input_to 28 Mar 2004 18:42:29 -0000 1.2 @@ -0,0 +1,6 @@ +void input_to(string) - sets the input callback + +Sets the argument string as the function to be called if something +is read from the player. Note that the callback is reset after the +function is called once, so input_to must be called again if it's +needed. Index: clone_object =================================================================== RCS file: /cvsroot/agd/server/doc/dfuns/clone_object,v retrieving revision 1.1 retrieving revision 1.2 diff -u -d -r1.1 -r1.2 --- clone_object 15 Mar 2004 18:40:19 -0000 1.1 +++ clone_object 28 Mar 2004 18:42:29 -0000 1.2 @@ -1,3 +1,8 @@ object clone_object(string|object ob) -Clones the object ob and returns the new object. +Clones the object ob and returns the new object. The new object +will share the same code as the master object, it will only have it's +own set of global variables. + +See also + load_object, find_object, destruct Index: capitalize =================================================================== RCS file: /cvsroot/agd/server/doc/dfuns/capitalize,v retrieving revision 1.1 retrieving revision 1.2 diff -u -d -r1.1 -r1.2 --- capitalize 19 Mar 2004 14:53:46 -0000 1.1 +++ capitalize 28 Mar 2004 18:42:29 -0000 1.2 @@ -1,3 +1,7 @@ string capitalize(string) -Returns the string with the first character in upper case. Does not change the original. +Returns the a copy of the string, with the first character changed +to upper case. Does not modify the original. + +See also + lower_case |
From: Peep P. <so...@us...> - 2004-03-28 18:20:10
|
Update of /cvsroot/agd/server In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv1649 Modified Files: AUTHORS BUGS ChangeLog Ideas NEWS README TODO Log Message: Updates for 0.0.2-3. Index: README =================================================================== RCS file: /cvsroot/agd/server/README,v retrieving revision 1.5 retrieving revision 1.6 diff -u -d -r1.5 -r1.6 --- README 20 Mar 2004 20:30:18 -0000 1.5 +++ README 28 Mar 2004 18:08:51 -0000 1.6 @@ -1,6 +1,6 @@ -------------------------------------- Adventure Game Driver - 0.0.2-2, March 20, 2004 + 0.0.2-3, March 23, 2004 http://agd.sf.net Peep Pullerits <so...@es...> -------------------------------------- Index: ChangeLog =================================================================== RCS file: /cvsroot/agd/server/ChangeLog,v retrieving revision 1.15 retrieving revision 1.16 diff -u -d -r1.15 -r1.16 --- ChangeLog 21 Mar 2004 18:32:33 -0000 1.15 +++ ChangeLog 28 Mar 2004 18:08:51 -0000 1.16 @@ -1,5 +1,34 @@ 0.0.2-3: ---------------------------------------------------------------------------- +2004-03-28 + * some fixed for string ranges + * renamed F_SUBSCR to F_INDEX, F_RANGE to F_SLICE + * fix crasher in df_strlen(): check for fp->u.s. +2004-03-23 + * initial string ranges (s[m..n]) + * fixed initializing strings, now + string s; + if(s) + write("s is not empty!\n"); + works as expected. + * fixed crasher in free_fun() + * load_object() now tries to update the object's code + if that object already exists. + * changed much of the static buffers ('char buf[256]') + to dynamic. +2004-03-22 + * added type checking for init-time assign, so stuff like + string s; int i = s; + errors now. + * runtime() now correctly empties the stack + * New dfuns: read_file(), atoi() + * removed typecasts (temporarily), there's no real need for it + * configure.ac: added --enable-optimization=x, --disable-debug, + --enable-profiling + * load_object() moved to object.c; program loading done by + compile_prog() in compile.c + * unref_prog() doesn't return an int anymore, but takes + a pointer to pointer and changes it if necessary. 2004-03-21 * for() statement * added break; and continue; Index: NEWS =================================================================== RCS file: /cvsroot/agd/server/NEWS,v retrieving revision 1.9 retrieving revision 1.10 diff -u -d -r1.9 -r1.10 --- NEWS 21 Mar 2004 18:32:33 -0000 1.9 +++ NEWS 28 Mar 2004 18:08:51 -0000 1.10 @@ -1,9 +1,10 @@ New things in this version (0.0.2-3) that you might find useful: + * Real string ranges like string[0..4] * for() * break; and continue; statements * New operators: **, **= * New dfuns: query_ip, query_hostname (use with caution, may block for quite a while), - asctime, strftime. + asctime, strftime, read_file, atoi. time() was changed to return seconds since Epoch. * k, m, K and M integer constants 1k = 1000, 1m = 1000000, 1K = 1024, 1M = 1048576 (1024*1024) Index: AUTHORS =================================================================== RCS file: /cvsroot/agd/server/AUTHORS,v retrieving revision 1.3 retrieving revision 1.4 diff -u -d -r1.3 -r1.4 --- AUTHORS 21 Mar 2004 11:01:58 -0000 1.3 +++ AUTHORS 28 Mar 2004 18:08:51 -0000 1.4 @@ -4,6 +4,8 @@ QWhite <qw...@ho...> * the original graphics editor, some of the older client code +The original author of LPMUD and the creator of LPC: Lars Pensjö + Thanks to: Lawless and elver <ker...@ho...>, for inspiration and suggestions X-G and roots, for portability testing Index: TODO =================================================================== RCS file: /cvsroot/agd/server/TODO,v retrieving revision 1.16 retrieving revision 1.17 diff -u -d -r1.16 -r1.17 --- TODO 21 Mar 2004 18:32:33 -0000 1.16 +++ TODO 28 Mar 2004 18:08:51 -0000 1.17 @@ -17,13 +17,14 @@ ! all of the operators (/doc/lpc/operators) - ',' - this takes some serious grammar-hacking - mixed type - ! string ranges (str[0..1,2..3]) + ! string slices (ranges) + !! assigning to slices (F_SLICE_LVALUE etc.) * m.. * ..n - * m..n + * m..< + * < + * m..n,m..n * !n - Need an intelligent parser for this. - - allow to define locals inside statements like: create() { write("\n"); int i; i = 1; int j; j = 2; } And maybe disable this with #pragma traditional-lpc ? @@ -33,25 +34,35 @@ definitions and if anything is found, it opens up another buffer (pushes it on flex's stack), containing the macro replacement, which will then get parsed again. if no macros match, REJECT() is called and flex tries to match with next available rule - - predefined names: - #define __AGD__ 1 - #define __VERSION__ PACKAGE_VERSION - Also possible: - #define __AGD_MAJOR__ 0 - #define __AGD_MINOR__ 0 - #define __AGD_SUBMINOR__ 2 - #define __AGD_PATCHLEVEL__ 3 - But these are quite pointless at this time. - #define __ARCH__ PLATFORM - #define __HOST__ the return value of gethostname() - #define __AUTHORS__ ? :) + - #pragma + warnings + low-warnings + no-warnings + - #define name value + - #define name(x) value x + - #include, #ifdef, #else, #endif + - #if + - defined() + - have_dfun() + - !, &&, || + - #elsif + - predefined names: + #define __AGD__ 1 + #define __VERSION__ PACKAGE_VERSION + Also possible: + #define __AGD_MAJOR__ 0 + #define __AGD_MINOR__ 0 + #define __AGD_SUBMINOR__ 2 + #define __AGD_PATCHLEVEL__ 3 + But these are quite pointless at this time. + #define __ARCH__ PLATFORM + #define __HOST__ the return value of gethostname() + #define __AUTHORS__ ? :) - character encoding inside strings: - decimal: \nnn - octal: \0onnn - hexadecimal: \0xnn - binary: \0bnnnnnnnn - - mudlib: - /update command - better logging system - print time using strftime() - log using lib's facilities (master::log()?) @@ -72,16 +83,27 @@ int foo(int i, int j = 1); - string table for each program, and F_PUSH_STRING takes index into the table - clean up includes, not everything needs everything in std.h and lpc_incl.h, etc. - - make maintainer-clean should also remove src/dfparse.output and src/lang.output + - make maintainer-clean: + should also remove src/dfparse.output and src/lang.output + shouldn't delete src/dfparse.h and src/lang.h - compile-time eval for < > <= >= == != ! - lang.y: compare_args(): 0 should be any valid type (shout("a", 0) should be ok) - or maybe use NULL or nil - if we crash while running apply(master::crash), then we should rerun with debugging on - - define DEBUG and set CFLAGS to -g with "./configure --enable-debug" - IPv6 support? - realloc wrapper - - make maintainer-clean shouldn't delete src/dfparse.h and src/lang.h - some terminals don't support \t, find out if it is possible to check for it, and then print out 8 spaces instead. - on 64-bit, increase cp as a void* type. + - destruct() - take object from all_objects and move to list_t *dested_objects; + then destruct_all() in net.c has less objects to traverse + - rename interactivep() to either + 1) isinteractive() + 2) isia() + 3) interactive() + - in the variable_t struct, + char inited should be or'ed to the type (T_INITED | T_INT) + remove string_type and add types T_STRINGD, T_STRINGST (dynamic and static, later T_STRINGSH, shared.) + - configure.ac: set YFLAGS to "--debug" or "-t" with ./configure --enable-bison-debug + - display stack trace (with line numbers and functions) when getting a runtime error Index: Ideas =================================================================== RCS file: /cvsroot/agd/server/Ideas,v retrieving revision 1.5 retrieving revision 1.6 diff -u -d -r1.5 -r1.6 --- Ideas 21 Mar 2004 08:56:42 -0000 1.5 +++ Ideas 28 Mar 2004 18:08:51 -0000 1.6 @@ -1,4 +1,4 @@ -This file contains features that are not necessary, but would be cool to have. +This file contains features that will be or will be not in AGD in the future. lpc: * if(x == 1 || == 2 && != 3) * Argument type grouping @@ -9,10 +9,10 @@ For example: unlimited { int i; - while(+i < 100k); + while(i++ < 100k); } This would go over normal eval_cost. - Unlimited allow for longer execution, and stopping + Unlimited allows for longer execution, stopping only when going after hard eval_cost. hard eval_cost should be like 10 times bigger than soft eval_cost. This statement should be privileged to system Index: BUGS =================================================================== RCS file: /cvsroot/agd/server/BUGS,v retrieving revision 1.9 retrieving revision 1.10 diff -u -d -r1.9 -r1.10 --- BUGS 21 Mar 2004 16:37:06 -0000 1.9 +++ BUGS 28 Mar 2004 18:08:51 -0000 1.10 @@ -35,5 +35,8 @@ - crashes on Solaris/SPARC with a SIGSEGV somewhere between lines 190 and 199 in net.c (don't have gdb on that host). - + - on 64-bit, the interpreter fails miserably - I think the code pointer (int *cp) is + incremented by 4 bytes, when it should be incremented by 8. + - main problem - leaks memory in quite some places. + - continue from here.. |
From: Peep P. <so...@us...> - 2004-03-28 18:20:10
|
Update of /cvsroot/agd/server/src In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv1649/src Modified Files: Makefile.in Log Message: Updates for 0.0.2-3. Index: Makefile.in =================================================================== RCS file: /cvsroot/agd/server/src/Makefile.in,v retrieving revision 1.9 retrieving revision 1.10 diff -u -d -r1.9 -r1.10 --- Makefile.in 21 Mar 2004 18:32:09 -0000 1.9 +++ Makefile.in 28 Mar 2004 18:08:51 -0000 1.10 @@ -113,7 +113,7 @@ AM_CFLAGS = -ansi -AM_YFLAGS = -d +AM_YFLAGS = -d EXTRA_DIST = dfparse.h lang.h dist_pkgdata_DATA = options |
From: Peep P. <so...@us...> - 2004-03-28 18:20:10
|
Update of /cvsroot/agd/server/doc In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv1649/doc Modified Files: applies Log Message: Updates for 0.0.2-3. Index: applies =================================================================== RCS file: /cvsroot/agd/server/doc/applies,v retrieving revision 1.1 retrieving revision 1.2 diff -u -d -r1.1 -r1.2 --- applies 15 Mar 2004 18:39:11 -0000 1.1 +++ applies 28 Mar 2004 18:08:51 -0000 1.2 @@ -1,3 +1,16 @@ -If a player connects, master::connect() will be called. It should return an object. -In that object, logon() is called. Usually master::connect() clones the login object, -and logon() in the login object does exec() on a player object. +master: + connect() + This is called whenever someone connects. The object it returns + is set as the interactive object of the player. + crash() + This is called if the driver receives a signal - this function + should save the players and tell them what happened. + +login: + logon() + This is called right after master::connect() returns the + login object. +player: + net_dead() + This is called if a player disconnects. + |
From: Peep P. <so...@us...> - 2004-03-28 18:19:49
|
Update of /cvsroot/agd/server/src In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv1579 Modified Files: compile.h Log Message: Cleanup. Index: compile.h =================================================================== RCS file: /cvsroot/agd/server/src/compile.h,v retrieving revision 1.10 retrieving revision 1.11 diff -u -d -r1.10 -r1.11 --- compile.h 18 Mar 2004 20:48:25 -0000 1.10 +++ compile.h 28 Mar 2004 18:08:30 -0000 1.11 @@ -48,8 +48,9 @@ #define comp_error(s) display_error(s); compile_errors++ #define comp_warning(s) display_error("warning: "s); compile_warnings++ -object_t *load_object(char *fn); +/*object_t *load_object(char *fn);*/ +program_t *compile_prog(char *path); void *copy_nt_entry(void *voide); -void *copy_fun(void *voidf); #endif + |
Update of /cvsroot/agd/server/lib/doc/login In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv715 Added Files: 0 1 10 100 101 102 103 104 105 106 107 108 109 11 110 111 112 113 114 115 116 117 118 119 12 120 121 122 123 124 125 126 127 128 129 13 130 131 132 133 134 135 136 137 138 139 14 140 141 142 143 144 145 146 147 148 149 15 150 151 152 153 154 155 156 157 158 159 16 160 161 162 163 164 165 166 167 168 169 17 170 171 172 173 174 175 176 177 178 179 18 180 181 182 183 184 185 186 187 188 189 19 190 191 192 193 194 195 196 197 198 199 2 20 200 201 202 203 204 205 206 207 208 209 21 210 211 212 213 214 215 216 217 218 219 22 220 221 222 223 224 225 226 227 228 229 23 230 231 232 233 234 235 236 24 25 26 27 28 29 3 30 31 32 33 34 35 36 37 38 39 4 40 41 42 43 44 45 46 47 48 49 5 50 51 52 53 54 55 56 57 58 59 6 60 61 62 63 64 65 66 67 68 69 7 70 71 72 73 74 75 76 77 78 79 8 80 81 82 83 84 85 86 87 88 89 9 90 91 92 93 94 95 96 97 98 99 BANNERS biggest separate.pl Log Message: Added banners, and a Perl script to generate them. --- NEW FILE: 216 --- # ### #### ### # # # # # # # # # # # # ### # # ##### # # # # # # # # # # ## ## ### #### --- NEW FILE: 217 --- # #### #### # # ## # # # # # # # # # # # ### # # #### # # # # # # # # # ## ## ## ### #### --- NEW FILE: 214 --- # #### ##### ## # # # # ### # # # # # # # # #### # ### # # # # # # # # # # # # # # ## ### #### ##### --- NEW FILE: 215 --- # #### ###### ## ## # # ## # # # # # # # # # # ##### # ### # # # # # # # # # # ## # # ## ## ### ##### ###### --- NEW FILE: 212 --- # #### ###### ## # # # # ### # # # # # # # # ##### # ### # # # ## # # # # ## # # # # # ## ### #### ###### --- NEW FILE: 213 --- # ##### ###### ## ## # ## ## ### # ## # # # # # # ##### # #### ## # # # # # ## # # # ## ## ## ## ## ### ##### ###### --- NEW FILE: 210 --- __ __ __ / | / |/ | (___|( __ | | | )| )| ) | / |__/ |__/ --- NEW FILE: 211 --- d8b 88P d88 d888b8b d888b8b d888888 d8P' ?88 d8P' ?88 d8P' ?88 88b ,88b 88b ,88b 88b ,88b `?88P'`88b`?88P'`88b`?88P'`88b )88 ,88P `?8888P --- NEW FILE: 218 --- #### ### ##### ### ## ## ## ## # # ## ## ## ##### ##### ## ## ## ## ## ## ## ## ### ### #### ##### --- NEW FILE: 219 --- ### #### ##### ## ## # ## ## # # ## # # ## # ## ### ## ## ## ## ## # # ## ### ## #### ##### --- NEW FILE: 133 --- ___ _____ / _ \| ___)\ | |_| | | / \ | _ | | / /\ \ | | | | |/ /__\ \ |_| |_|_/________\ --- NEW FILE: 164 --- # #### ##### ## # # # # # # # # #### # ### # # # # # # # # ### ## #### #### --- NEW FILE: 131 --- .d888888 .88888. 888888ba d8' 88 d8' `88 88 `8b 88aaaaa88a 88 88 88 88 88 88 YP88 88 88 88 88 Y8. .88 88 .8P 88 88 `88888' 8888888P ooooooooooooooooooooooooooooooo --- NEW FILE: 130 --- .d888888 .88888. 888888ba d8' 88 d8' `88 88 `8b 88aaaaa88a 88 88 88 88 88 88 YP88 88 88 88 88 Y8. .88 88 .8P 88 88 `88888' 8888888P --- NEW FILE: 137 --- _ ___ ___ /_\ / _ \ / \ //_\\ / /_\// /\ / / _ \/ /_\\/ /_// \_/ \_/\____/___,' --- NEW FILE: 136 --- 101 107 104 --- NEW FILE: 135 --- o ooooooo8 ooooooooo 888 o888 88 888 88o 8 88 888 oooo 888 888 8oooo88 888o 88 888 888 o88o o888o 888ooo888 o888ooo88 --- NEW FILE: 165 --- # #### #### ## # # # # # # # # # #### # ### # # # # # # # # ### ## #### #### --- NEW FILE: 139 --- _____ _____ _____ (_____) (_____) (_____) (_)___(_)(_) ___ (_) (_) (_______)(_) (___)(_) (_) (_) (_)(_)___(_)(_)__(_) (_) (_) (_____) (_____) --- NEW FILE: 138 --- ___ooo_______oooo___oooooo____ _oo___oo___oo____oo_oo____oo__ oo_____oo_oo________oo_____oo_ ooooooooo_oo____ooo_oo_____oo_ oo_____oo__oo____oo_oo____oo__ oo_____oo____oooo___oooooo____ ______________________________ --- NEW FILE: 93 --- .eeeeee...eeeeee..eeeeeee.. @@@@@@@@:@@@@@@@@:@@@@@@@@: %%%--%%%-%%%------%%%--%%%- &&&&&&&&+&&&++++++&&&++&&&+ ||||||||*|||*||||*|||**|||* !!!==!!!=!!!==!!!=!!!==!!!= :::##:::#::::::::#::::::::# ...@@...@@......@@.......@@ --- NEW FILE: 24 --- ## #### ##### # # ## # # # # # ## ## # #### # ### ## # # # ## # # # ## ## #### ##### --- NEW FILE: 25 --- # #### ##### ## ## # # # # # # # # #### # ### # # # # ## # # # ## ## #### ##### --- NEW FILE: 26 --- # ### #### ## # # # # # # # # # #### # ## # # # # # # # # ## ## ### #### --- NEW FILE: 27 --- .8. ,o888888o. 8 888888888o. .888. 8888 `88. 8 8888 `^888. :88888. ,8 8888 `8. 8 8888 `88. . `88888. 88 8888 8 8888 `88 .8. `88888. 88 8888 8 8888 88 .8`8. `88888. 88 8888 8 8888 88 .8' `8. `88888. 88 8888 8888888 8 8888 ,88 .8' `8. `88888.`8 8888 .8' 8 8888 ,88' .888888888. `88888. 8888 ,88' 8 8888 ,o88P' .8' `8. `88888. `8888888P' 8 888888888P' --- NEW FILE: 20 --- _____ _____ /\ / ____| __ \ / \ | | __| | | | / /\ \| | |_ | | | | / ____ \ |__| | |__| | /_/ \_\_____|_____/ --- NEW FILE: 21 --- 01000001 01000111 01000100 --- NEW FILE: 22 --- _|_| _|_|_| _|_|_| _| _| _| _| _| _|_|_|_| _| _|_| _| _| _| _| _| _| _| _| _| _| _|_|_| _|_|_| --- NEW FILE: 23 --- # #### ##### ## ## # # # # # # # # #### # ### # # # # ## # # # # ## #### ##### --- NEW FILE: 95 --- ### #### #### ## ## ## # ## ## ## ## ## ## ## ##### ## ## ## ## ## ## ## # ## ## ## ## #### #### --- NEW FILE: 28 --- _ _ _ / \ / \ / \ ( A | G | D ) \_/ \_/ \_/ --- NEW FILE: 29 --- __ ___ ____ /__\ / __)( _ \ /(__)\( (_-. )(_) ) (__)(__)\___/(____/ --- NEW FILE: 94 --- _____ ________________ / _ \ / _____/\______ \ / /_\ \/ \ ___ | | \ / | \ \_\ \| ` \ \____|__ /\______ /_______ / \/ \/ \/ --- NEW FILE: 0 --- ** ******** ******* **** **//////**/**////** **//** ** // /** /** ** //** /** /** /** **********/** *****/** /** /**//////**//** ////**/** ** /** /** //******** /******* // // //////// /////// --- NEW FILE: 4 --- ### # # ### ## ### # # # ## # # # ## # # # # # # # # # --- NEW FILE: 8 --- ::: :::::::: ::::::::: :+: :+: :+: :+::+: :+: +:+ +:+ +:+ +:+ +:+ +#++:++#++::#: +#+ +:+ +#+ +#++#+ +#+#+#+ +#+ #+# #+##+# #+##+# #+# ### ### ######## ######### --- NEW FILE: 163 --- ## #### #### ## ## # # # # ## ## # # ##### ## ### ## ## # # ## ## ## ## ### ### ## # ##### --- NEW FILE: 11 --- ____ _____ ____ / _ \/ __// _ \ | / \|| | _| | \| | |-||| |_//| |_/| \_/ \|\____\\____/ --- NEW FILE: 119 --- /=\ /=\ =\ |=| | _ | | \ / \=/ =/ --- NEW FILE: 10 --- AA GGG DDD A A G D D AAAA G GG D D A A G G D D A A GGG DDD --- NEW FILE: 120 --- .: .:::: .::::: .: :: .: .:: .:: .:: .: .:: .:: .:: .:: .:: .:: .:: .:: .:: .:::::: .:: .:: .::::.:: .:: .:: .:: .:: .: .:: .:: .:: .:: .::::: .::::: --- NEW FILE: 121 --- /\ /~~\|~~\ /__\| __| | / \\__/|__/ --- NEW FILE: 122 --- | //| /| \| | --- NEW FILE: 123 --- __ _ /\ /__| \ /--\\_||_/ --- NEW FILE: 124 --- ____ ____ _ / _ |___ \ / \ | | | |_ | |/ _ \ | |_| | |_| / ___ \ \____|____/_/ \_\ --- NEW FILE: 125 --- AGD --- NEW FILE: 126 --- .- --. -.. --- NEW FILE: 127 --- # ##### ##### # # # # # # ##### # # # # # # #### # # # # # --- NEW FILE: 128 --- --- NEW FILE: 129 --- MMP"""""""MM MM'"""""`MM M""""""'YMM M' .mmmm MM M' .mmm. `M M mmmm. `M M `M M MMMMMMMM M MMMMM M M MMMMM MM M MMM `M M MMMMM M M MMMMM MM M. `MMM' .M M MMMM' .M M MMMMM MM MM. .MM M .MM MMMMMMMMMMMM MMMMMMMMMMM MMMMMMMMMMM --- NEW FILE: 161 --- @@@@@@ @@@@@@@ @@@@@@@ @@! @@@ !@@ @@! @@@ @!@!@!@! !@! @!@!@ @!@ !@! !!: !!! :!! !!: !!: !!! : : : :: :: : :: : : --- NEW FILE: 134 --- ,ggg, ,gg, ,gggggggggggg, dP""8I i8""8i dP"""88""""""Y8b, dP 88 `8,,8' Yb, 88 `8b, dP 88 `Y88aaad8`" 88 `8b ,8' 88 d8""""Y8, 88 Y8 d88888888 ,8P 8b 88 d8 __ ,8" 88 dP Y8 88 ,8P dP" ,8P Y8 _ ,dP' I8 88 ,8P' Yb,_,dP `8b,"888,,_____,dP 88______,dP' "Y8P" `Y8a8P"Y888888P" 888888888P" --- NEW FILE: 59 --- ### ### #### # # # # # ## # ## # # # # ## ## # # ## ## ## ### #### --- NEW FILE: 58 --- #### ### #### # # ## # # ### ## # # # # # ## # # # ## # ### #### --- NEW FILE: 132 --- {_ {____ {_____ {_ __ {_ {__ {__ {__ {_ {__ {__ {__ {__ {__ {__ {__ {__ {__ {______ {__ {__ {____{__ {__ {__ {__ {__ {_ {__ {__ {__ {__ {_____ {_____ --- NEW FILE: 55 --- ..%%%%....%%%%...%%%%%.. .%%..%%..%%......%%..%%. .%%%%%%..%%.%%%..%%..%%. .%%..%%..%%..%%..%%..%%. .%%..%%...%%%%...%%%%%.. ........................ --- NEW FILE: 54 --- .__..__ .__ [__][ __| \ | |[_./|__/ --- NEW FILE: 57 --- :::. .,-:::::/ :::::::-. ;;`;; ,;;-'````' ;;, `';, ,[[ '[[, [[[ [[[[[[/`[[ [[ c$$$cc$$$c"$$c. "$$ $$, $$ 888 888,`Y8bo,,,o88o 888_,o8P' YMM ""` `'YMUP"YMM MMMMP"` --- NEW FILE: 56 --- :::. .,-:::::/ :::::::-. ;;`;; ,;;-'````' ;;, `';, ,[[ '[[, [[[ [[[[[[/`[[ [[ c$$$cc$$$c"$$c. "$$ $$, $$ 888 888,`Y8bo,,,o88o 888_,o8P' YMM ""` `'YMUP"YMM MMMMP"` --- NEW FILE: 51 --- O) O)))) O))))) O) )) O) O)) O)) O)) O) O)) O)) O)) O)) O)) O)) O)) O)) O)) O)))))) O)) O)) O))))O)) O)) O)) O)) O)) O) O)) O)) O)) O)) O))))) O))))) --- NEW FILE: 50 --- # #### ##### # # # # # ### # # # # # # ### # # ##### # # # # # # # # # # ## ## ##### ##### --- NEW FILE: 53 --- 8""""8 8""""8 8""""8 8 8 8 " 8 8 8eeee8 8e 8e 8 88 8 88 ee 88 8 88 8 88 8 88 8 88 8 88eee8 88eee8 --- NEW FILE: 52 --- d8888 .d8888b. 8888888b. d88888d88P Y88b888 "Y88b d88P888888 888888 888 d88P 888888 888 888 d88P 888888 88888888 888 d88P 888888 888888 888 d8888888888Y88b d88P888 .d88P d88P 888 "Y8888P888888888P" --- NEW FILE: 146 --- _____ _____ ____ | _ | __| \ | | | | | | |__|__|_____|____/ --- NEW FILE: 199 --- dBBBBBb dBBBBb dBBBBb BB dB' dBP BB dBBBB dBP dB' dBP BB dB' BB dBP dB' dBBBBBBB dBBBBBB dBBBBB' --- NEW FILE: 179 --- .', _____ _ _ | (_(_| | ) ) | | --- NEW FILE: 147 --- \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ \/////// \\\/////// \\//////// \\ /// \\/// \/// \\/// \/// \\/// \ ///////// \/// \\\\\\\/// \\/// \ /// \\/// \/// \\/// \/// \\/// \ /// \\/// \\//////// \//////// \\ \\\\\\\\\\\\\\\\\/// \\\\\\\\\\\\ --- NEW FILE: 195 --- _____/\/\________/\/\/\/\/\__/\/\/\/\/\___ ___/\/\/\/\____/\/\__________/\/\____/\/\_ _/\/\____/\/\__/\/\__/\/\/\__/\/\____/\/\_ _/\/\/\/\/\/\__/\/\____/\/\__/\/\____/\/\_ _/\/\____/\/\____/\/\/\/\/\__/\/\/\/\/\___ __________________________________________ --- NEW FILE: 194 --- _____/\/\________/\/\/\/\/\__/\/\/\/\/\___ ___/\/\/\/\____/\/\__________/\/\____/\/\_ _/\/\____/\/\__/\/\__/\/\/\__/\/\____/\/\_ _/\/\/\/\/\/\__/\/\____/\/\__/\/\____/\/\_ _/\/\____/\/\____/\/\/\/\/\__/\/\/\/\/\___ __________________________________________ --- NEW FILE: 197 --- O o-o o-o / \ o | \ o---o| -o | O | |o | | / o o o-o o-o --- NEW FILE: 67 --- ____ ____ ___ |--| |__, |__> --- NEW FILE: 191 --- db .d88b 888b. dPYb 8P www 8 8 dPwwYb 8b d8 8 8 dP Yb `Y88P' 888P' --- NEW FILE: 190 --- AGD --- NEW FILE: 193 --- /\ /~_|~\ /~~\\_/|_/ --- NEW FILE: 192 --- ,---.,---.,--. |---|| _.| | | || || | ` '`---'`--' --- NEW FILE: 227 --- ## #### ##### ### ### ## ## # ## ## ## ## ## ## ## ## ### ## ##### ## ## ## ## ## ## ### ## ## ## ## ## #### #### --- NEW FILE: 177 --- \ __| _ \ _ \ (_ | | | _/ _\\___|___/ --- NEW FILE: 88 --- .. .... . .... :**888H: `: .xH"" .x88" `^x~ xH(` .xH888888Hx. X `8888k XX888 X888 x8 ` 8888h .H8888888888888: '8hx 48888 ?8888 88888 888. %8888 888*"""?""*88888X '8888 '8888 `8888 <8888X X8888 X8? 'f d8x. ^%88k %888>'8888 8888 X8888> 488888>"8888x '> <88888X '?8 "8 '888" 8888 X8888> 888888 '8888L `:..:`888888> 8> .-` X*" 8888 ?8888X ?8888>'8888X `"*88 X .xhx. 8888 8888X h 8888 '8888~ .xHHhx.." ! .H88888h.~`8888.> ?888 -:8*" <888" X88888888hx. ..! .~ `%88!` '888*~ `*88. :88% ! "*888888888" `" "" ^"~====""` ^"***"` --- NEW FILE: 89 --- .--. .--. .---. : .; :: .--': . : : :: : _ : :: : : :: :: :; :: :; : :_;:_;`.__.':___.' --- NEW FILE: 111 --- | ..|'''.| '||''|. ||| .|' ' || || | || || .... || || .''''|. '|. || || || .|. .||. ''|...'| .||...|' --- NEW FILE: 110 --- ########## # # ### # # ####### # # # # # # # # # # # # # # # # # # ########## --- NEW FILE: 113 --- ______ ____ ____ /\ _ \/\ _`\ /\ _`\ \ \ \L\ \ \ \L\_\ \ \/\ \ \ \ __ \ \ \L_L\ \ \ \ \ \ \ \/\ \ \ \/, \ \ \_\ \ \ \_\ \_\ \____/\ \____/ \/_/\/_/\/___/ \/___/ --- NEW FILE: 69 --- /\ /\\\\ /\\\\\ /\ \\ /\ /\\ /\\ /\\ /\ /\\ /\\ /\\ /\\ /\\ /\\ /\\ /\\ /\\ /\\\\\\ /\\ /\\ /\\\\/\\ /\\ /\\ /\\ /\\ /\ /\\ /\\ /\\ /\\ /\\\\\ /\\\\\ --- NEW FILE: 82 --- _ __ __ .' \ ,'_/ / \ / o // /_n / o | /_n_/ |__,'/__,' --- NEW FILE: 83 --- ___ -*~*- === (o o) (o o) (o o) ooO--(_)--Ooo-ooO--(_)--Ooo-ooO--(_)--Ooo- --- NEW FILE: 80 --- _ __ _ //\(|_;[|) --- NEW FILE: 81 --- __ ____ __ ( ) ( __)( ) /o \ | | _ | \ ( __ )( )_))( O ) /_\/_\/____\/___/ --- NEW FILE: 86 --- /.\ .|'''''| '||'''|. // \\ || . || || //...\\ || |''|| || || // \\ || || || || .// \\. `|....|' .||...|' --- NEW FILE: 87 --- /\ /~~\|~~\ /__\| __| | / \\__/|__/ --- NEW FILE: 84 --- __ ___ __ /_`) ))_ ))\ (( ( ((_(((_/ --- NEW FILE: 85 --- _______ _______ ______ ( ___ )( ____ \( __ \ | ( ) || ( \/| ( \ ) | (___) || | | | ) | | ___ || | ____ | | | | | ( ) || | \_ )| | ) | | ) ( || (___) || (__/ ) |/ \|(_______)(______/ --- NEW FILE: 198 --- _, _, __, / \ / _ | \ |~| \ / |_/ ~ ~ ~ ~ --- NEW FILE: 108 --- .oo .oPYo. ooo. .P 8 8 8 8 `8. .P 8 8 8 `8 oPooo8 8 oo 8 8 .P 8 8 8 8 .P .P 8 `YooP8 8ooo' ..:::::..:....8 .....:: ::::::::::::::8 ::::::: ::::::::::::::..::::::: --- NEW FILE: 141 --- Oo .oOOOo. o.OOOo. o O .O o O `o O o o o O oOooOoOo O O o o O O .oOOo o O O o o. O O o o O O. oO o .O' O. O `OooO' OooOO' --- NEW FILE: 226 --- ## #### #### ## ## ## ## # ## ## ## ## # ## ## ## ## ## ###### ## ## ## ## # ## ## ## ## ## # ## #### #### --- NEW FILE: 3 --- ## ## ### # # # # # # # # # # # #### # ## # # # # # # # # # # ### ### --- NEW FILE: 7 --- o o__ __o o__ __o <|> /v v\ <| v\ / \ /> <\ / \ <\ o/ \o o/ \o/ \o <|__ __|> <| _\__o__ | |> / \ \\ | / \ // o/ \o \ / \o/ / /v v\ o o | o /> <\ <\__ __/> / \ __/> --- NEW FILE: 231 --- ## ##### ###### ## ## # ## ## ### ## ## ## # ## ## ## ## # ## ## ### ## ## ###### ## ## ## ## # ## ## ## ## ## ### #### ### # ###### --- NEW FILE: 92 --- __ ___ ____ / _\ / __)( \ / \( (_ \ ) D ( \_/\_/ \___/(____/ --- NEW FILE: 166 --- ___, ____ / | () | (| \ | | /\/| | | | | / | _| | \__/\_//(__/ (/\___/ --- NEW FILE: 181 --- ___________________ 7 _ 77 77 \ | _ || __!| 7 | | 7 || ! 7| | | | | || || ! | !__!__!!_____!!_____! --- NEW FILE: 109 --- ____ ____ _ | _ \ / ___| / \ | | | | | _ / _ \ | |_| | |_| |/ ___ \ |____/ \____/_/ \_\ --- NEW FILE: 102 --- ___ ___ ___ /\ \ /\ \ /\ \ /::\ \ /::\ \ /::\ \ /:/\:\ \ /:/\:\ \ /:/\:\ \ /::\~\:\ \ /:/ \:\ \ /:/ \:\__\ /:/\:\ \:\__\ /:/__/_\:\__\ /:/__/ \:|__| \/__\:\/:/ / \:\ /\ \/__/ \:\ \ /:/ / \::/ / \:\ \:\__\ \:\ /:/ / /:/ / \:\/:/ / \:\/:/ / /:/ / \::/ / \::/__/ \/__/ \/__/ ~~ --- NEW FILE: 103 --- ___ ___ /\ \ /\__\ _____ /::\ \ /:/ _/_ /::\ \ /:/\:\ \ /:/ /\ \ /:/\:\ \ /:/ /::\ \ /:/ /::\ \ /:/ \:\__\ /:/_/:/\:\__\ /:/__\/\:\__\ /:/__/ \:|__| \:\/:/ \/__/ \:\ \ /:/ / \:\ \ /:/ / \::/__/ \:\ /:/ / \:\ /:/ / \:\ \ \:\/:/ / \:\/:/ / \:\__\ \::/ / \::/ / \/__/ \/__/ \/__/ --- NEW FILE: 167 --- __ __ ___ ( ) / _)( \ /__\( (/\ ) ) ) (_)(_)\__/(___/ --- NEW FILE: 101 --- _____ _____) ______ (, / | / (, / ) /---| / ___ / / ) / |_/ / ) _/___ /_ (_/ (____ / (_/___ / --- NEW FILE: 106 --- _ __ __ /_| / _ / ) ( |(__)/(_/ --- NEW FILE: 107 --- ____ ____ _ | _ \ / ___| / \ | | | | | _ / _ \ | |_| | |_| |/ ___ \ |____/ \____/_/ \_\ --- NEW FILE: 104 --- ___ ___ _____ / /\ / /\ / /::\ / /::\ / /:/_ / /:/\:\ / /:/\:\ / /:/ /\ / /:/ \:\ / /:/~/::\ / /:/_/::\ /__/:/ \__\:| /__/:/ /:/\:\ /__/:/__\/\:\ \ \:\ / /:/ \ \:\/:/__\/ \ \:\ /~~/:/ \ \:\ /:/ \ \::/ \ \:\ /:/ \ \:\/:/ \ \:\ \ \:\/:/ \ \::/ \ \:\ \ \::/ \__\/ \__\/ \__\/ --- NEW FILE: 105 --- ___ ___ ___ / /\ / /\ / /\ / /::\ / /::\ / /::\ / /:/\:\ / /:/\:\ / /:/\:\ / /::\ \:\ / /:/ \:\ / /:/ \:\ /__/:/\:\_\:\ /__/:/_\_ \:\ /__/:/ \__\:| \__\/ \:\/:/ \ \:\__/\_\/ \ \:\ / /:/ \__\::/ \ \:\ \:\ \ \:\ /:/ / /:/ \ \:\/:/ \ \:\/:/ /__/:/ \ \::/ \__\::/ \__\/ \__\/ ~~ --- NEW FILE: 39 --- ## ### ##### ### ## ## ## ## #### ## ## ## # ## ## ## ## ##### ## #### ## ## ## ## ## ## ## ## ### ### #### ##### --- NEW FILE: 38 --- ## #### ##### ## ## ## ## ## #### ## ## ## ## # ## ## ## ###### ## ### ## ## ## # ## ## ## ## ### ## ##### ##### --- NEW FILE: 33 --- # ### ### # # # # # # # # # # # ### # ## # # # # ## # # # # ## ### ### --- NEW FILE: 32 --- _/ _//// _///// _/ // _/ _// _// _// _/ _// _// _// _// _// _// _// _// _// _////// _// _// _////_// _// _// _// _// _/ _// _// _// _// _///// _///// --- NEW FILE: 31 --- ** * *** ***** ** ***** * **** * ****** *** * *** * * **** ** * * *** *** * ** ** * * * *** * ** * *** * * *** * ** ** ** ** ** ** * ** ** ** *** ** ** ** * ** ** ** **** * ** ** ** * ** ** ** * **** ** ** ** ********* ** *** ** ** ** ** * ** ** ** * * ** ** * ** ** * * * * ***** ** *** * ***** * * **** ** * ******* * ********* * ** ** *** * **** * * ** ** --- NEW FILE: 30 --- ## # ### ##### ## /#### / /### / /##### /## / ### / / ###/ // / / ### /## / ## ## / / / ### / ## / ### / / ### / ## ## ## ## ## ## / ## ## ## ### ## ## ## / ## ## ## /### / ## ## ## / ## ## ## / ###/ ## ## ## /######## ## ##/ ## ## ## ## / ## ## ## # # ## ## # ## ## # / / / /#### ## ### / /###/ / / #### ## / ######/ / ########/ / ## #/ ### / #### # # ## ## --- NEW FILE: 37 --- ## #### ##### ## ## ## ## ## #### ## ## ## ## # ## ## ## ###### ## ### ## ## ## # ## ## ## ## ### ## ##### ##### --- NEW FILE: 36 --- # ### #### ### ## ## ## ## ## ## ## ## ## ## ## ##### ## ## ##### ## ## ## ## ## ## ## ## ## ## ## ## #### #### --- NEW FILE: 35 --- _______ _______ _____ | _ | __| \ | | | | -- | |___|___|_______|_____/ --- NEW FILE: 34 --- ## ### ### ## ## # # ## # # # # # #### # ## # # # # # # # ## ## ## ### ### --- NEW FILE: 162 --- # #### ##### ### ## # ## # # ## ## ## # ##### ## ## ## # # ## ## # ## # ## ### #### ##### --- NEW FILE: 160 --- # ### ##### ## # # # ## # # # # # # # # # #### # # # # # # ### #### --- NEW FILE: separate.pl --- #!/usr/bin/perl open(INP, 'BANNERS'); @_ = <INP>; $_ = join('', @_); split(/foobarbaz/); for($i=1;$i<$#_+1;$i++) { open(FILE, '>', $i-1) or die "can't open $i-1!\n"; print FILE @_[$i]; close(FILE); } close(INP); --- NEW FILE: 60 --- ## ## ### # # # # # ### ### # # # # # # # # ## ## ## ### --- NEW FILE: 61 --- #### ### ### # # ## # # #### # ## # # # # # # # # ## # ## ### --- NEW FILE: 62 --- ____ ____ ___ / T / T| \ Y o |Y __j| \ | || T || D Y | _ || l_ || | | | || || | l__j__jl___,_jl_____j --- NEW FILE: 63 --- _______ _______ ______ | _ | _ | _ \ |. 1 |. |___|. | \ |. _ |. | |. | \ |: | |: 1 |: 1 / |::.|:. |::.. . |::.. . / `--- ---`-------`------' --- NEW FILE: 64 --- __ () , __ / ) /`-'| / ) /--/ / / / / / (_/__-<_/__/_ --- NEW FILE: 65 --- _______ ______ ______ |_____| | ____ | \ | | |_____| |_____/ --- NEW FILE: 66 --- ____ ____ ___ |__| | __ | \ | | |__] |__/ --- NEW FILE: 178 --- ___ ________ / _ |/ ___/ _ \ / __ / (_ / // / /_/ |_\___/____/ --- NEW FILE: 68 --- 65 71 68 --- NEW FILE: 176 --- __, ___ / | () |(| \ | | /\/| | | \_/\_//(_/ (\__/ --- NEW FILE: 175 --- ____ ____ ____ ||A |||G |||D || ||__|||__|||__|| |/__\|/__\|/__\| --- NEW FILE: 174 --- ___ ___ ___ /\ \ /\ \ /\ \ /::\ \ /::\ \ /::\ \ /::\:\__\ /:/\:\__\ /:/\:\__\ \/\::/ / \:\:\/__/ \:\/:/ / /:/ / \::/ / \::/ / \/__/ \/__/ \/__/ --- NEW FILE: 173 --- _ ___ ___ /_\ / __| \ / _ \ (_ | |) | /_/ \_\___|___/ --- NEW FILE: 172 --- __ () , __ / ) /`-'| / ) /--/ / / / / / (_/__-<_/__/_ --- NEW FILE: 171 --- #| #HH||##HH| #HH| ## ## || ## ||## H||## || ##HH||## ||## || ## || #HH||##HH| --- NEW FILE: 170 --- ___ __________ / | / ____/ __ \ / /| |/ / __/ / / / / ___ / /_/ / /_/ / /_/ |_\____/_____/ --- NEW FILE: 145 --- ^ ^ ^ /A\ /G\ /D\ <___><___><___> --- NEW FILE: 182 --- ,. ,---. .-,--. / | | -' ' | \ /~~|-. | ,-' , | / ,' `-' `---| `-^--' ,-.| `-+' --- NEW FILE: 183 --- _ ____ ____ / \ / ___| _ \ / _ \| | _| | | | / ___ \ |_| | |_| | /_/ \_\____|____/ --- NEW FILE: 180 --- _______________________ ___ |_ ____/__ __ \ __ /| | / __ __ / / / _ ___ / /_/ / _ /_/ / /_/ |_\____/ /_____/ --- NEW FILE: 2 --- // | | // ) ) // ) ) //__| | // // / / / ___ | // ____ // / / // | | // / / // / / // | | ((____/ / //____/ / --- NEW FILE: 186 --- ______ _____ /\ / _____|____ \ / \ | / ___ _ \ \ / /\ \| | (___) | | | | |__| | \____/| |__/ / |______|\_____/|_____/ --- NEW FILE: 187 --- __ __ /\ / _ | \ /--\\__)|__/ --- NEW FILE: 184 --- ___ _______ _______ / \ / _____|| \ / ^ \ | | __ | .--. | / /_\ \ | | |_ | | | | | / _____ \ | |__| | | '--' | /__/ \__\ \______| |_______/ --- NEW FILE: 6 --- # ## ### # # # # # # # # # # # ##### # ## # # # # # # # # # # ## ### --- NEW FILE: biggest --- 237 --- NEW FILE: 188 --- A)aa G)gggg D)dddd A) aa G) D) dd A) aa G) ggg D) dd A)aaaaaa G) gg D) dd A) aa G) gg D) dd A) aa G)ggg D)ddddd --- NEW FILE: 189 --- db db db "Ybaaaaaaaaad8' 'Yb .dP' dP' 88 `Yb.d88b d88b 88 88 88 88 88' 8Y 8b 88 Y8 Y8 .88 88 8P 88 .8P `Y88P`Y88P'88 88 ,dP ,dP 88 88 88 88 Y8. .8P --- NEW FILE: 196 --- ## ### #### # ## ## ## # #### ## ## ## # # ## ## ## ## # ## ### ### #### --- NEW FILE: 97 --- # ### #### # # # # # # # ## # # ### # # # # # # # # # # # # ### #### --- NEW FILE: 100 --- , _ _ /'/ /' `\ /' `\ /' / /' ) /' ) ,/' / /' /' /' /`--,/ /' _ /' /' /' / /' ' ) /' /' (,/' (_,(_____,/'(,/' (___,/' --- NEW FILE: 185 --- `. `.... `..... `. .. `. `.. `.. `.. `. `.. `.. `.. `.. `.. `.. `.. `.. `.. `...... `.. `.. `....`.. `.. `.. `.. `.. `. `.. `.. `.. `.. `..... `..... --- NEW FILE: 142 --- _ _ _ /_// `/ | / //_;/_.' --- NEW FILE: 99 --- 41 47 44 --- NEW FILE: 98 --- # ### #### ## # # # # # # # # # ##### # ### # # # # ## # # # # # ### #### --- NEW FILE: 168 --- \ ___| __ \ _ \ | | | ___ \ | | | | _/ _\\____|____/ --- NEW FILE: 169 --- /|/~ |\ /-|\_||/ --- NEW FILE: 229 --- # #### #### ## # # # # # # # # # # # # ## # #### # # # # # # # # # # # # ### #### --- NEW FILE: 228 --- # ### #### # # # # # # # # # # # # # # ##### # # # # # # # # # # # # ### #### --- NEW FILE: 91 --- ___ __ , - -_, ,-| ~ -_____ ( ~/|| ('||/__, ' | -, ( / || (( ||| | /| | |` \/==|| (( |||==| || |==|| /_ _|| ( / | , ~|| | |, ( - \\, -____/ ~-____, ( --- NEW FILE: 90 --- ____ _______ ___ ___ / \ ) ____) | \ / \ / / __ | | / () \ ( ( ( \ | | | __ | \ \__) ) | | | (__) |___) (__| /__ --- NEW FILE: 225 --- # #### #### ## # # # # # # # # # # # # # # # # # ### # # ###### # # # # # # # # # # # # ##### #### --- NEW FILE: 224 --- # #### #### # # # # # # # # # # # # # # # # # # ## # # ##### # # # # # # # ## # # # # ### # #### --- NEW FILE: 223 --- ## #### ##### ### ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## #### ## ## ###### ## ## ## ## ## ## ## ## ## ## ## ## ##### ##### --- NEW FILE: 222 --- ### #### #### ### ## ## ## ## ## ## ## # ## ## ## ## ## ## ## ## ## ## ### ## ## ####### ## ## ## ## ## ## ## ## ## ## ## ## ### # #### --- NEW FILE: 221 --- ### ### #### ## # # # # # # # # # ### # ## # # # # # # # # ## ## ### #### --- NEW FILE: 220 --- ### ## #### # # # # # # # # # # # #### # ## # # # # # # # # ## ## ## #### --- NEW FILE: 118 --- ::::\ :::::\::::::\ ::|,::|::> ==::| ::| ::| ::| :::::/::::::/ --- NEW FILE: 115 --- _/_/ _/_/_/ _/_/_/ _/ _/ _/ _/ _/ _/_/_/_/ _/ _/_/ _/ _/ _/ _/ _/ _/ _/ _/ _/ _/ _/_/_/ _/_/_/ --- NEW FILE: 13 --- ### ###### ######## ## ## ## ## ## ## ## ## ## ## ## ## ## ## #### ## ## ######### ## ## ## ## ## ## ## ## ## ## ## ## ###### ######## --- NEW FILE: 12 --- :::'###:::::'######:::'########:: ::'## ##:::'##... ##:: ##.... ##: :'##:. ##:: ##:::..::: ##:::: ##: '##:::. ##: ##::'####: ##:::: ##: #########: ##::: ##:: ##:::: ##: ##.... ##: ##::: ##:: ##:::: ##: ##:::: ##:. ######::: ########:: ..:::::..:::......::::........::: --- NEW FILE: 15 --- # ##### ###### # # # # # # # # # # # # # # #### # # ####### # # # # # # # # # # # # ##### ###### --- NEW FILE: 14 --- ....###.....######...########. ...##.##...##....##..##.....## ..##...##..##........##.....## .##.....##.##...####.##.....## .#########.##....##..##.....## .##.....##.##....##..##.....## .##.....##..######...########. --- NEW FILE: 17 --- .d8b. d888b d8888b. d8' `8b 88' Y8b 88 `8D 88ooo88 88 88 88 88~~~88 88 ooo 88 88 88 88 88. ~8~ 88 .8D YP YP Y888P Y8888D' --- NEW FILE: 16 --- >< ><<<< ><<<<< >< << >< ><< ><< ><< >< ><< ><< ><< ><< ><< ><< ><< ><< ><< ><<<<<< ><< ><< ><<<<><< ><< ><< ><< ><< >< ><< ><< ><< ><< ><<<<< ><<<<< --- NEW FILE: 19 --- __________________________ __ __ _____ / | / ) / ) ---/__|---/--------/----/- / | / --, / / _/____|_(____/___/____/___ --- NEW FILE: 18 --- . ___ .___ /| .' \ / ` / \ | | | /---'\ | _ | | ,' \ `.___| /---/ --- NEW FILE: 143 --- @@@@@@ @@@@@@@@ @@@@@@@ @@@@@@@@ @@@@@@@@@ @@@@@@@@ @@! @@@ !@@ @@! @@@ !@! @!@ !@! !@! @!@ @!@!@!@! !@! @!@!@ @!@ !@! !!!@!!!! !!! !!@!! !@! !!! !!: !!! :!! !!: !!: !!! :!: !:! :!: !:: :!: !:! :: ::: ::: :::: :::: :: : : : :: :: : :: : : --- NEW FILE: 117 --- .---..---..--. | | || |'_| \ \ `-^-'`-'-/`-'-' --- NEW FILE: 116 --- AAA GGGG DDDDD AAAAA GG GG DD DD AA AA GG DD DD AAAAAAA GG GG DD DD AA AA GGGGGG DDDDDD --- NEW FILE: 151 --- e Y8b e88'Y88 888 88e d8b Y8b d888 'Y 888 888b d888b Y8b C8888 eeee 888 8888D d888888888b Y888 888P 888 888P d8888888b Y8b "88 88" 888 88" --- NEW FILE: 150 --- .o. .oooooo. oooooooooo. .888. d8P' `Y8b `888' `Y8b .8"888. 888 888 888 .8' `888. 888 888 888 .88ooo8888. 888 ooooo 888 888 .8' `888. `88. .88' 888 d88' o88o o8888o `Y8bood8P' o888bood8P' --- NEW FILE: 153 --- _______ _______ ______ (_______|_______|______) _______ _ ___ _ _ | ___ | | (_ | | | | | | | | |___) | |__/ / |_| |_|\_____/|_____/ --- NEW FILE: 152 --- NTQ --- NEW FILE: 155 --- |\ \ / |\ /| | \ \ / | \ / | |\ \/ | \/ | | \ /\ | /\ | | / \ | / \ | | / \ |/ \| --- NEW FILE: 154 --- .aMMMb .aMMMMP dMMMMb dMP"dMP dMP" dMP VMP dMMMMMP dMP MMP"dMP dMP dMP dMP dMP.dMP dMP.aMP dMP dMP VMMMP" dMMMMP" --- NEW FILE: 157 --- ## #### ##### ## ## # ## # ## # # # #### # # # # ## # ## # # # # ## #### ##### --- NEW FILE: 156 --- |\ \ / |\ /| | \ \ / | \ / | |\ \/ | \/ | | \ /\ | /\ | | / \ | / \ | | / \ |/ \| --- NEW FILE: 159 --- # #### #### ### ## # ## # # # # # ### # # # # # # ## # # # # # #### #### --- NEW FILE: 158 --- ## #### ##### # # # ## # # # # # # #### # # ## # # ## # ## ## # # ## #### #### --- NEW FILE: 112 --- A6|) --- NEW FILE: 234 --- # ##### ###### ## ## ## ## ## ### ## ## ## # ## ## ### ## ## ##### ## ## ## ## # ### ## ## ## ## ### #### #### ###### --- NEW FILE: 235 --- ## #### #### ## ### ## ## # ## ## ## # # ## ## # ## # ###### ## # ## # # ## ### # ## ## # ## #### #### --- NEW FILE: 236 --- ## ### ### ## # # # # # # # # # # # # # # #### # # # # # # # # # # # # ### ### --- NEW FILE: 230 --- # ### # ###### ### # ## ## # ### ## # ## ## # ## ## ## ## # ## ## ### ## ## ####### ## ## ## ## # ## # ## ## # ### #### ### # ###### --- NEW FILE: BANNERS --- foobarbaz ** ******** ******* **** **//////**/**////** **//** ** // /** /** ** //** /** /** /** **********/** *****/** /** /**//////**//** ////**/** ** /** /** //******** /******* // // //////// /////// foobarbaz # ## ## # # # # # ### # # # # # # # # # # # # ## ## foobarbaz [...2062 lines suppressed...] ## ### ## ## # ## ## ## # # ## ## # ## # ###### ## # ## # # ## ### # ## ## # ## #### #### foobarbaz ## ### ### ## # # # # # # # # # # # # # # #### # # # # # # # # # # # # ### ### --- NEW FILE: 232 --- # #### ##### # # # # # # # # # # # # # # # # # # ### # # ##### # # # # # # # # # # ### ### ### ##### --- NEW FILE: 233 --- # ##### ##### # # # # # # # # # # # # # # # # # # ### # # ##### # # # # # # # ## # # ### ### ### # ##### --- NEW FILE: 114 --- ___ ___ ___ | | | | | |-+-| | +- + | | | | | | | --- --- --- NEW FILE: 48 --- # ### #### # # # # # ### # # # # # # ### # # ##### # # # # # # # # # # ## ## #### #### --- NEW FILE: 49 --- # #### ##### # # # # # ### # # # # # # ### # # ##### # # # # # # # # # # ## ## ##### ##### --- NEW FILE: 46 --- # ### ### # # # # # # # # # # # # # # ## # # ##### # # # # # # # # # # # # #### ### --- NEW FILE: 47 --- # ### #### # # # # # ### # # # # # # ### # # ##### # # # # # # # # # # ## ## #### #### --- NEW FILE: 44 --- # ### ### # # # # # # # # # # # # # # ## # # ##### # # # # # # # # # # # # #### ### --- NEW FILE: 45 --- # #### #### # # # # # # # # ## # # ##### # # # # # # #### #### --- NEW FILE: 42 --- ## ### ### # # # # # # # # ## # # #### # # # # # # ### ### --- NEW FILE: 43 --- ## ## ### # # # # # # # # # # # #### # ## # # # # # # # # # # # # # # # # ### ### --- NEW FILE: 40 --- # ## ## # # # # # ### # # # # # # # # # # # # ## ## --- NEW FILE: 41 --- ## ## ### # # # # # # # # # # # #### # ## # # # # # # # # # # # # # # # # ### ### --- NEW FILE: 1 --- # ## ## # # # # # ### # # # # # # # # # # # # ## ## --- NEW FILE: 5 --- # ### #### # # # # # # # # # # # # # # # # ##### # ## # # # # # # # # # # ### #### --- NEW FILE: 9 --- ::: :::::::: ::::::::: :+: :+: :+: :+::+: :+: +:+ +:+ +:+ +:+ +:+ +#++:++#++::#: +#+ +:+ +#+ +#++#+ +#+#+#+ +#+ #+# #+##+# #+##+# #+# ### ### ######## ######### --- NEW FILE: 140 --- /^ /^^^^ /^^^^^ /^ ^^ /^ /^^ /^^ /^^ /^ /^^ /^^ /^^ /^^ /^^ /^^ /^^ /^^ /^^ /^^^^^^ /^^ /^^ /^^^^/^^ /^^ /^^ /^^ /^^ /^ /^^ /^^ /^^ /^^ /^^^^^ /^^^^^ --- NEW FILE: 201 --- # #### ### # # ## # # # # # # # # # # # # # #### ## # # # # # #### ### --- NEW FILE: 200 --- _ __ <_> / \ /\ | |" | | | | | | | | _ _|_ \__/ \_\'_/ --- NEW FILE: 203 --- |~||~_|~\ |~||_||_/ --- NEW FILE: 202 --- # ### ### ### ## # # # # # # # ### # # # # # # ## # # # # # ### ### --- NEW FILE: 205 --- :::==== :::===== :::==== ::: === ::: ::: === ======== === ===== === === === === === === === === === === ======= ======= --- NEW FILE: 204 --- db ,ad8888ba, 88888888ba, d88b d8"' `"8b 88 `"8b d8'`8b d8' 88 `8b d8' `8b 88 88 88 d8YaaaaY8b 88 88888 88 88 d8""""""""8b Y8, 88 88 8P d8' `8b Y8a. .a88 88 .a8P d8' `8b `"Y88888P" 88888888Y"' --- NEW FILE: 207 --- ## #### ###### ## ## ## ## ## ### ### ## ## # ## ## ## ## ##### ## #### ## ### # ## ## ## ## ## ### #### #### ###### --- NEW FILE: 206 --- # ##### ###### ### ## # ## ## ### ## ## ## # # ## ## ## ##### ## ### ## ## # ## ## ## ## ## ### ### ##### ###### --- NEW FILE: 209 --- # #### ##### ## # # # # ## # # # # # # # # #### # ### # # # # # # # # ## ### #### ##### --- NEW FILE: 208 --- # #### ##### # # # # # # # # # # ### # # # # # # ### # # # # # # # # ### ### #### ##### --- NEW FILE: 148 --- _________________________________ _/~~~~~~\___/~~~~~~\__/~~~~~~~\__ /~~\__/~~\_/~~\__/~~\_/~~\__/~~\_ /~~~~~~~~\_/~~\_______/~~\__/~~\_ /~~\__/~~\_/~~\__/~~\_/~~\__/~~\_ /~~\__/~~\__/~~~~~~~\_/~~~~~~~\__ _________________/~~\____________ --- NEW FILE: 149 --- ============================== ==== ====== === == === ==== == == ==== = == == === ==== == ==== = = ==== == ======== ==== = = ==== == ======== ==== = = == === == ==== = = ==== == ==== == ==== = = ==== == == == ==== = = ==== === === == ============================== --- NEW FILE: 77 --- xxx xxx .xx ..x ..x ..x AGD --- NEW FILE: 76 --- ___ ___ ___ | . |/ _> | . \ | || <_/\| | | |_|_|`____/|___/ --- NEW FILE: 75 --- ___ ___ ____ // \\ // \\|| \\ ||=||(( ___|| )) || || \\_||||_// --- NEW FILE: 74 --- _ _ _ _ _ _ _ _ _(_)_ _ (_)(_)(_) _ (_)(_)(_)(_) _(_) (_)_ (_) (_) (_) (_)_ _(_) (_)_ (_) _ _ _ (_) (_) (_) _ _ _ (_)(_) (_)(_)(_) (_) (_) (_)(_)(_)(_)(_)(_) (_) (_) _(_) (_) (_)(_) _ _ _ (_) (_)_ _ (_) (_) (_) (_)(_)(_)(_)(_)(_)(_)(_) --- NEW FILE: 73 --- (This appears to be a binary file; contents omitted.) --- NEW FILE: 72 --- ___ ___________ / _ \| __ \ _ \ / /_\ \ | \/ | | | | _ | | __| | | | | | | | |_\ \ |/ / \_| |_/\____/___/ --- NEW FILE: 71 --- AAA GGGGGGGGGGGGGDDDDDDDDDDDDD A:::A GGG::::::::::::GD::::::::::::DDD A:::::A GG:::::::::::::::GD:::::::::::::::DD A:::::::A G:::::GGGGGGGG::::GDDD:::::DDDDD:::::D A:::::::::A G:::::G GGGGGG D:::::D D:::::D A:::::A:::::A G:::::G D:::::D D:::::D A:::::A A:::::A G:::::G D:::::D D:::::D A:::::A A:::::A G:::::G GGGGGGGGGG D:::::D D:::::D A:::::A A:::::A G:::::G G::::::::G D:::::D D:::::D A:::::AAAAAAAAA:::::A G:::::G GGGGG::::G D:::::D D:::::D A:::::::::::::::::::::AG:::::G G::::G D:::::D D:::::D A:::::AAAAAAAAAAAAA:::::AG:::::G G::::G D:::::D D:::::D A:::::A A:::::AG:::::GGGGGGGG::::GDDD:::::DDDDD:::::D A:::::A A:::::AGG:::::::::::::::GD:::::::::::::::DD A:::::A A:::::A GGG::::::GGG:::GD::::::::::::DDD AAAAAAA AAAAAAA GGGGGG GGGGDDDDDDDDDDDDD --- NEW FILE: 70 --- +-+-+-+ |A|G|D| +-+-+-+ --- NEW FILE: 96 --- # #### #### ## ## ## # # ## ## ## # ##### ## ### ## ## ## ## ## ## ## ## ## ## #### #### --- NEW FILE: 79 --- _ __ __ / \ / _|| \ | o ( |_n| o ) |_n_|\__/|__/ --- NEW FILE: 78 --- ######### ######### ___ ######### ######### ##[`'`']# \`~'/ ##'\v/`## /\*/\ ##|`+'|## '\v/` ##\`~'/## [`'`'] ###| |## (o o) ##(o 0)## /(o o)\ ##(o o)## (o 0) ##(o o)## | | ###|__|## \ / \ ###(_)### (_) ###(_)### (_) ###\ / \# |__| ######### " ######### ######### ####"#### --- NEW FILE: 144 --- _____ ___ ___ ( _ )( _`\ ( _`\ | (_) || ( (_)| | ) | | _ || |___ | | | ) | | | || (_, )| |_) | (_) (_)(____/'(____/' |
From: Peep P. <so...@us...> - 2004-03-28 18:14:42
|
Update of /cvsroot/agd/server/lib/doc/login In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv422/login Log Message: Directory /cvsroot/agd/server/lib/doc/login added to the repository |
From: Peep P. <so...@us...> - 2004-03-28 18:14:27
|
Update of /cvsroot/agd/server/lib/doc In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv339/doc Log Message: Directory /cvsroot/agd/server/lib/doc added to the repository |
From: Peep P. <so...@us...> - 2004-03-28 18:13:58
|
Update of /cvsroot/agd/server/lib/sys In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv32638/sys Modified Files: login.c master.c player.c Log Message: Using read_file() and string ranges now. Added ChangeLog. Index: player.c =================================================================== RCS file: /cvsroot/agd/server/lib/sys/player.c,v retrieving revision 1.11 retrieving revision 1.12 diff -u -d -r1.11 -r1.12 --- player.c 21 Mar 2004 18:32:35 -0000 1.11 +++ player.c 28 Mar 2004 18:02:33 -0000 1.12 @@ -64,32 +64,52 @@ return ret; } +object do_update(string path) { + object ret; + ret = load_object(path); + if(ret) { + write("updated " + path + "\n"); + } else { + write("failed to update " + path + "!\n"); + } + return ret; +} + void input(string cmd) { - if(cmd[0] == '/') { -/* switch(cmd[1..]) { - case "quit": - break; - case "uptime": - break; - case "print_objs": - break; - }*/ - if(cmd == "/quit") { + int i; + string s; + while(cmd[i] == '/') + i++; + s = cmd[i..strlen(cmd)]; + + if(!i) { + string t = strftime(time(), "[%H:%M] "); + shout(t + capitalize(_name) + " says: " + + cmd + "\n", this_object()); + write(t + "You say: " + cmd + "\n"); + } else { + if(s == "quit") { shout(strftime(time(), "[%H:%M] ") + capitalize(_name) + " has quit the game\n", this_object()); destruct(this_object()); - } else if(cmd == "/uptime") { + } else if(s == "uptime") { write("AGD " + version() + " has been running for " + ctime(uptime()) + ".\n"); - } else if(cmd == "/version") { + } else if(s == "version") { "/sys/master"->write_version(); - } else if(cmd == "/help") { + } else if(s == "help") { write_help(); - } else if(cmd == "/time") { + } else if(s == "update") { + /* No way of getting arguments. :( + * Oh well, update all them bastards. */ + write("Warning: master must be destroyed for its " + "update to take effect.\n"); + do_update("/sys/master"); + do_update("/sys/login"); + do_update("/sys/player"); + } else if(s == "time") { int t = time(); write("The current time is: " + asctime(t) + ".\n"); - } else if(cmd == "/report") { - report_obs(); - } else if(cmd == "/.") { + } else if(s == ".") { if(last_cmd) { input(last_cmd); } else @@ -97,11 +117,6 @@ } else { write("Unknown command.\n"); } - } else { - string t = strftime(time(), "[%H:%M] "); - shout(t + capitalize(_name) + " says: " + - cmd + "\n", this_object()); - write(t + "You say: " + cmd + "\n"); } if(cmd != "/.") { last_cmd = cmd; @@ -116,5 +131,5 @@ } void net_dead() { - shout(_name + " went netdead!", (object)0); + shout(_name + " went netdead!", 0); } Index: master.c =================================================================== RCS file: /cvsroot/agd/server/lib/sys/master.c,v retrieving revision 1.11 retrieving revision 1.12 diff -u -d -r1.11 -r1.12 --- master.c 21 Mar 2004 10:36:44 -0000 1.11 +++ master.c 28 Mar 2004 18:02:33 -0000 1.12 @@ -3,20 +3,23 @@ int crash(int signal) { if(signal == 11) { shout("Driver shutting down - " - "segmentation fault!\n", (object)0); + "segmentation fault!\n", 0); } else if(signal == 2) { - shout("Driver crashing - interrupted!\n", (object)0); + shout("Driver crashing - interrupted!\n", 0); } else if(signal) { - shout("Crashing on signal " + signal + "!\n", - (object)0); + shout("Crashing on signal " + signal + "!\n", 0); } else { - shout("Driver crashing!\n", (object)0); + shout("Driver crashing!\n", 0 /* nil */); } return 1; } void write_version() { - write(banner); + int biggest; + string b; + biggest = atoi(read_file("/doc/login/biggest")); + b = read_file("/doc/login/" + random(biggest)); + write(b + banner); } object connect() { @@ -27,10 +30,6 @@ } void create(void) { - banner = " _______ _______ _____\n\ - | _ | __| \\\n\ - | | | | -- |\n\ - |___|___|_______|_____/\n\ - \tv" + version() + " / " + platform() + "\n" - + "\thttp://agd.sf.net\n\tag...@li...\n"; + banner = "\t" + version() + " / " + platform() + "\n" + + "\thttp://agd.sf.net\n\tag...@li...\n"; } Index: login.c =================================================================== RCS file: /cvsroot/agd/server/lib/sys/login.c,v retrieving revision 1.6 retrieving revision 1.7 diff -u -d -r1.6 -r1.7 --- login.c 21 Mar 2004 18:32:35 -0000 1.6 +++ login.c 28 Mar 2004 18:02:33 -0000 1.7 @@ -4,9 +4,9 @@ } void logon() { - write("Welcome! You are connecting from " + - /* query_hostname(this_object()) + " (" + */ - query_ip(this_object()) +/* ")"*/".\n"); + write("Welcome! You are connecting from " /* + + query_hostname(this_object()) + " ("*/ + + query_ip(this_object()) + /*")"*/".\n"); write("\nEnter your name: "); input_to("logon2"); } |
From: Peep P. <so...@us...> - 2004-03-28 18:13:57
|
Update of /cvsroot/agd/server/lib In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv32638 Added Files: ChangeLog Log Message: Using read_file() and string ranges now. Added ChangeLog. --- NEW FILE: ChangeLog --- I think the time has come to start a changelog for the library, separate from the driver's. So, here it is, changelog for AGD'd mudlib v0.2: 0.2: -------------------------------------------------------------------------------- 2004-03-28 * sys/player.c: now uses string ranges, so commands like //uptime work. 2004-03-23 * /sys/player.c: added /update command 2004-03-22 * Added /doc/login banners and a perl script to generate the files. * Using random() and read_file() to display a random banner each time someone logs in. 0.1: -------------------------------------------------------------------------------- * Changes in this version are undocumented. |
From: Peep P. <so...@us...> - 2004-03-28 18:12:34
|
Update of /cvsroot/agd/server In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv32199 Modified Files: configure Log Message: Regenerated. Index: configure =================================================================== RCS file: /cvsroot/agd/server/configure,v retrieving revision 1.5 retrieving revision 1.6 diff -u -d -r1.5 -r1.6 --- configure 21 Mar 2004 08:56:42 -0000 1.5 +++ configure 28 Mar 2004 18:01:14 -0000 1.6 @@ -1,5 +1,5 @@ #! /bin/sh -# From configure.ac revision 0.06. +# From configure.ac revision 0.08. # Guess values for system-dependent variables and create Makefiles. # Generated by GNU Autoconf 2.59 for AGD 0.0.2-3. # @@ -855,6 +855,10 @@ (and sometimes confusing) to the casual installer --disable-dependency-tracking Speeds up one-time builds --enable-dependency-tracking Do not reject slow dependency extractors + --enable-profiling enable profiling support + --disable-debug disable debugging symbols + --enable-bison-debug enable Bison debugging + --enable-optimization set optimization level Some influential environment variables: CC C compiler command @@ -1750,7 +1754,7 @@ # Checks for programs. -#AC_PROG_INSTALL +##AC_PROG_INSTALL ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' @@ -2986,8 +2990,6 @@ done test -n "$YACC" || YACC="yacc" -CFLAGS='-g' - for ac_prog in flex lex do @@ -3304,6 +3306,86 @@ done +CFLAGS="" +# Checks for configure options. +echo "$as_me:$LINENO: checking whether to enable profiling" >&5 +echo $ECHO_N "checking whether to enable profiling... $ECHO_C" >&6 +# Check whether --enable-profiling or --disable-profiling was given. +if test "${enable_profiling+set}" = set; then + enableval="$enable_profiling" + +else + enable_prof="no" +fi; +if test "x${enable_prof}" != "xno"; then + CFLAGS="$CFLAGS -pg" + echo "$as_me:$LINENO: result: yes" >&5 +echo "${ECHO_T}yes" >&6 +else + echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6 +fi + +echo "$as_me:$LINENO: checking whether to compile with debugging symbols" >&5 +echo $ECHO_N "checking whether to compile with debugging symbols... $ECHO_C" >&6 +# Check whether --enable-debug or --disable-debug was given. +if test "${enable_debug+set}" = set; then + enableval="$enable_debug" + +else + enable_debug="yes" +fi; +if test "x${enable_debug}" != "xno"; then + CFLAGS="$CFLAGS -g" + echo "$as_me:$LINENO: result: yes" >&5 +echo "${ECHO_T}yes" >&6 +else + echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6 +fi + +echo "$as_me:$LINENO: checking whether to enable Bison debuggigngigng" >&5 +echo $ECHO_N "checking whether to enable Bison debuggigngigng... $ECHO_C" >&6 +# Check whether --enable-bison-debug or --disable-bison-debug was given. +if test "${enable_bison_debug+set}" = set; then + enableval="$enable_bison_debug" + +else + enable_bison_debug="no" +fi; +if test "x${enable_bison_debug}" != "xno"; then + YFLAGS="$YFLAGS -t" + echo "$as_me:$LINENO: result: yes" >&5 +echo "${ECHO_T}yes" >&6 +else + echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6 +fi + +echo "$as_me:$LINENO: checking for optimization level" >&5 +echo $ECHO_N "checking for optimization level... $ECHO_C" >&6 +# Check whether --enable-optimization or --disable-optimization was given. +if test "${enable_optimization+set}" = set; then + enableval="$enable_optimization" + +else + enable_optimization="no" +fi; +if test "x${enable_optimization}" != "xno"; then + if test "x${enable_optimization}" == "xyes"; then + CFLAGS="$CFLAGS -O" + echo "$as_me:$LINENO: result: default" >&5 +echo "${ECHO_T}default" >&6 + else + CFLAGS="$CFLAGS -O$enableval" + echo "$as_me:$LINENO: result: ${enableval}" >&5 +echo "${ECHO_T}${enableval}" >&6 + fi; +else + echo "$as_me:$LINENO: result: off" >&5 +echo "${ECHO_T}off" >&6 +fi + # Checks for libraries. echo "$as_me:$LINENO: checking for floor in -lm" >&5 @@ -3378,8 +3460,80 @@ fi -#AC_CHECK_LIB(resolv, accept) -#AC_CHECK_LIB(nsl, gethostbyaddr) +##AC_CHECK_LIB(resolv, accept) + +echo "$as_me:$LINENO: checking for gethostbyaddr in -lnsl" >&5 +echo $ECHO_N "checking for gethostbyaddr in -lnsl... $ECHO_C" >&6 +if test "${ac_cv_lib_nsl_gethostbyaddr+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lnsl $LIBS" +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +/* Override any gcc2 internal prototype to avoid an error. */ +#ifdef __cplusplus +extern "C" +#endif +/* We use char because int might match the return type of a gcc2 + builtin and then its argument prototype would still apply. */ +char gethostbyaddr (); +int +main () +{ +gethostbyaddr (); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_lib_nsl_gethostbyaddr=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +ac_cv_lib_nsl_gethostbyaddr=no +fi +rm -f conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +echo "$as_me:$LINENO: result: $ac_cv_lib_nsl_gethostbyaddr" >&5 +echo "${ECHO_T}$ac_cv_lib_nsl_gethostbyaddr" >&6 +if test $ac_cv_lib_nsl_gethostbyaddr = yes; then + cat >>confdefs.h <<_ACEOF +#define HAVE_LIBNSL 1 +_ACEOF + + LIBS="-lnsl $LIBS" + +fi + echo "$as_me:$LINENO: checking for socket in -lsocket" >&5 echo $ECHO_N "checking for socket in -lsocket... $ECHO_C" >&6 |
From: Peep P. <so...@us...> - 2004-03-28 18:12:04
|
Update of /cvsroot/agd/server In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv32155 Modified Files: configure.ac Log Message: Added --disable-debug, --enable-optimization=n, --enable-profiling. Index: configure.ac =================================================================== RCS file: /cvsroot/agd/server/configure.ac,v retrieving revision 1.6 retrieving revision 1.7 diff -u -d -r1.6 -r1.7 --- configure.ac 21 Mar 2004 16:37:06 -0000 1.6 +++ configure.ac 28 Mar 2004 18:00:43 -0000 1.7 @@ -1,27 +1,73 @@ -# Process this file with autoconf to produce a configure script. +## Process this file with autoconf to produce a configure script. AC_INIT(AGD, 0.0.2-3, [so...@es...]) AM_INIT_AUTOMAKE AC_CONFIG_SRCDIR(src/dfparse.y) AM_CONFIG_HEADER(src/config.h) AC_CONFIG_FILES([Makefile src/Makefile]) AC_PREFIX_DEFAULT(/usr) -AC_REVISION($revision 0.06$) +AC_REVISION($revision 0.08$) ## Disable lex, yacc, Makefile.in rebuilds by default. AM_MAINTAINER_MODE # Checks for programs. -#AC_PROG_INSTALL +##AC_PROG_INSTALL AC_PROG_CC AM_PROG_CC_C_O AC_PROG_YACC -AC_SUBST(CFLAGS, '-g') AM_PROG_LEX AC_PROG_AWK +CFLAGS="" +# Checks for configure options. +AC_MSG_CHECKING(whether to enable profiling) +AC_ARG_ENABLE(profiling, + AC_HELP_STRING([--enable-profiling], [enable profiling support]), , enable_prof="no") +if test "x${enable_prof}" != "xno"; then + CFLAGS="$CFLAGS -pg" + AC_MSG_RESULT([yes]) +else + AC_MSG_RESULT([no]) +fi + +AC_MSG_CHECKING(whether to compile with debugging symbols) +AC_ARG_ENABLE(debug, + AC_HELP_STRING([--disable-debug], [disable debugging symbols]), , enable_debug="yes") +if test "x${enable_debug}" != "xno"; then + CFLAGS="$CFLAGS -g" + AC_MSG_RESULT([yes]) +else + AC_MSG_RESULT([no]) +fi + +AC_MSG_CHECKING(whether to enable Bison debuggigngigng) +AC_ARG_ENABLE(bison-debug, + AC_HELP_STRING([--enable-bison-debug], [enable Bison debugging]), , enable_bison_debug="no") +if test "x${enable_bison_debug}" != "xno"; then + YFLAGS="$YFLAGS -t" + AC_MSG_RESULT([yes]) +else + AC_MSG_RESULT([no]) +fi + +AC_MSG_CHECKING(for optimization level) +AC_ARG_ENABLE(optimization, + AC_HELP_STRING([--enable-optimization], [set optimization level]), , enable_optimization="no") +if test "x${enable_optimization}" != "xno"; then + if test "x${enable_optimization}" == "xyes"; then + CFLAGS="$CFLAGS -O" + AC_MSG_RESULT([default]) + else + CFLAGS="$CFLAGS -O$enableval" + AC_MSG_RESULT([${enableval}]) + fi; +else + AC_MSG_RESULT([off]) +fi + # Checks for libraries. AC_CHECK_LIB(m, floor) -#AC_CHECK_LIB(resolv, accept) +##AC_CHECK_LIB(resolv, accept) AC_CHECK_LIB(nsl, gethostbyaddr) AC_CHECK_LIB(socket, socket) |
From: Peep P. <so...@us...> - 2004-03-28 18:11:18
|
Update of /cvsroot/agd/server/src In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv31977 Modified Files: debug.c debug.h Log Message: Small changes. Index: debug.h =================================================================== RCS file: /cvsroot/agd/server/src/debug.h,v retrieving revision 1.4 retrieving revision 1.5 diff -u -d -r1.4 -r1.5 --- debug.h 1 Feb 2004 13:12:30 -0000 1.4 +++ debug.h 28 Mar 2004 17:59:59 -0000 1.5 @@ -6,6 +6,6 @@ void print_var_arr(array_t *a); void print_vm_token(array_t *a, int *i); void print_vm_tokens(array_t *a); -void print_code(object_t *ob); +void print_code(program_t *p); #endif Index: debug.c =================================================================== RCS file: /cvsroot/agd/server/src/debug.c,v retrieving revision 1.8 retrieving revision 1.9 diff -u -d -r1.8 -r1.9 --- debug.c 18 Mar 2004 20:48:09 -0000 1.8 +++ debug.c 28 Mar 2004 17:59:59 -0000 1.9 @@ -3,13 +3,14 @@ #include "debug.h" #ifdef DEBUG -static int lval_lvl; #define NAME() if(v->name) printf("%s", v->name); void print_var(variable_t *v, int values) { char buf[MAX_STRING_LENGTH]; char *p, *bufptr; + + int lval_lvl; if(!v) { printf("<NULL>"); @@ -199,8 +200,14 @@ return "F_POSTDEC"; case F_PREDEC: return "F_PREDEC"; - case F_RANGE: - return "F_RANGE"; + case F_INDEX: + return "F_INDEX"; + case F_INDEX_LVALUE: + return "F_INDEX_LVALUE"; + case F_SLICE: + return "F_SLICE"; + case F_SLICE_LVALUE: + return "F_SLICE_LVALUE"; case F_RETURN: return "F_RETURN"; default: @@ -271,17 +278,11 @@ } } -void print_code(object_t *ob) +void print_code(program_t *p) { int i; function_t *f; - program_t *p = ob->prog; - printf("Printing code for \"%s\":\n", ob->name); - printf("Globals: \n"); - print_var_arr(&ob->variables); - printf("\n"); - printf("Functions: \n"); for(i = 0; i < p->functions.length; i++) { f = (function_t *) p->functions.data[i]; @@ -298,3 +299,4 @@ printf("({ })\n"); } #endif /* ifdef DEBUG */ + |
From: Peep P. <so...@us...> - 2004-03-28 18:10:42
|
Update of /cvsroot/agd/server/src In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv31906 Modified Files: dfdecl.in Log Message: atoi(), read_file() Index: dfdecl.in =================================================================== RCS file: /cvsroot/agd/server/src/dfdecl.in,v retrieving revision 1.9 retrieving revision 1.10 diff -u -d -r1.9 -r1.10 --- dfdecl.in 21 Mar 2004 18:32:35 -0000 1.9 +++ dfdecl.in 28 Mar 2004 17:59:23 -0000 1.10 @@ -16,7 +16,7 @@ # Expect lots of nasty error messages if you mess up here. -# interactives +# Interactives. int write(string) void shout(string, object) void tell_object(object, string) @@ -30,19 +30,25 @@ int time() string asctime(int) string strftime(int, string) +int uptime() + +# Filesystem. +string read_file(string) # misc string version() string platform() -int uptime() + +# Numbers. int random(int) +int atoi(string) -# strings +# Strings. int strlen(string) string capitalize(string) string lower_case(string) -# objects +# Objects. void destruct(object) object find_object(string) object clone_object(string|object) @@ -52,5 +58,3 @@ void exec(object) string file_name(object) -# Debugging. -void report_obs() |
From: Peep P. <so...@us...> - 2004-03-28 18:10:25
|
Update of /cvsroot/agd/server/src In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv31837 Modified Files: dfparse.h Log Message: Regenerated. Index: dfparse.h =================================================================== RCS file: /cvsroot/agd/server/src/dfparse.h,v retrieving revision 1.3 retrieving revision 1.4 diff -u -d -r1.3 -r1.4 --- dfparse.h 21 Mar 2004 09:00:57 -0000 1.3 +++ dfparse.h 28 Mar 2004 17:59:06 -0000 1.4 @@ -40,7 +40,7 @@ #if ! defined (YYSTYPE) && ! defined (YYSTYPE_IS_DECLARED) -#line 56 "dfparse.y" +#line 57 "dfparse.y" typedef union YYSTYPE { char *s; int i; |
From: Peep P. <so...@us...> - 2004-03-28 18:10:05
|
Update of /cvsroot/agd/server/src In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv31728 Modified Files: dfuns.c Log Message: atoi(), read_file() Index: dfuns.c =================================================================== RCS file: /cvsroot/agd/server/src/dfuns.c,v retrieving revision 1.16 retrieving revision 1.17 diff -u -d -r1.16 -r1.17 --- dfuns.c 21 Mar 2004 18:32:35 -0000 1.16 +++ dfuns.c 28 Mar 2004 17:58:46 -0000 1.17 @@ -6,7 +6,7 @@ #include <netdb.h> /* for gethostbyaddr() */ extern time_t startup_time; /* for uptime() */ -extern variable_t *fp, *sp; + void (**dfptr)(void); extern array_t global_ids; @@ -54,19 +54,6 @@ return len; } -#if 0 -char *do_time(void) -{ - static char buf[512]; - time_t t; - struct tm *tm; - time(&t); - tm = localtime(&t); - strftime(buf, 512, "%T %d %B %Y", tm); - return buf; -} -#endif - void shout(char *s, object_t *exclude) { list_t *p; @@ -183,7 +170,8 @@ object_t *ret; push_control_stack(); - ret = clone_object(/*saved_*/fp->u.s); + fp++; + ret = clone_object(csp[-1].fp->u.s); pop_control_stack(1); pop_stack(); @@ -192,7 +180,8 @@ void df_interactivep(void) { - int ret = interactivep(fp->u.ob); + object_t *ob = fp->u.ob; + int ret = ob && ob->iaob; pop_stack(); push_int(ret); } @@ -243,6 +232,7 @@ push_int(ret); } +/* Numbers. */ void df_random(void) { int i, j; @@ -252,6 +242,14 @@ push_int(j); } +void df_atoi(void) +{ + int i; + i = atoi(fp->u.s); + pop_stack(); + push_int(i); +} + /* Time. */ void df_uptime(void) { @@ -285,6 +283,7 @@ t = fp[0].u.i; tm = localtime(&t); + buf[0] = '\0'; strftime(buf, 512, fp[1].u.s, tm); pop_stack(); pop_stack(); @@ -295,7 +294,7 @@ void df_strlen(void) { int i; - i = strlen(fp->u.s); + i = fp->u.s ? strlen(fp->u.s) : 0; pop_stack(); push_int(i); } @@ -323,7 +322,36 @@ push_string(s, ST_MALLOC); } -void df_report_obs(void) +/* Filesystem. */ +df_read_file(void) { - report_obs(); + FILE *f; + char *path; + int file_size; + char *file_str, *p; + char buf[256]; + + path = absolute_path(fp->u.s); + f = fopen(path, "r"); + if(!f) { + /* I'd rather use a dynamically allocated buffer + * and also show the filename, but runtime() does + * longjmp(), and memory will be lost. */ + runtime("can't open file for reading!"); + } + + file_str = NULL; + file_size = 0; + while(fgets(buf, 256, f)) { + int len = strlen(buf); + file_str = realloc(file_str, file_size + len + 1); + p = file_str + file_size; + file_size += len; + strcpy(p, buf); + } + fclose(f); + + pop_stack(); + push_string(file_str, ST_MALLOC); } + |
From: Peep P. <so...@us...> - 2004-03-28 18:09:49
|
Update of /cvsroot/agd/server/src In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv31679 Modified Files: dfparse.y Log Message: Cleanup. Index: dfparse.y =================================================================== RCS file: /cvsroot/agd/server/src/dfparse.y,v retrieving revision 1.6 retrieving revision 1.7 diff -u -d -r1.6 -r1.7 --- dfparse.y 18 Mar 2004 20:47:48 -0000 1.6 +++ dfparse.y 28 Mar 2004 17:58:30 -0000 1.7 @@ -28,8 +28,8 @@ #include <stdlib.h> /* realloc */ #include <stdio.h> /* FILE* */ #include <errno.h> - #include <time.h> + #include "sys.h" /* xmalloc */ #include "array.h" #include "lpc.h" @@ -40,7 +40,7 @@ "int arglen;\n\tint args[%d];\n} dfdecl_t;\n" typedef struct { int ret; - char *name/*, *c_name*/; + char *name; int arglen; int *args; } dfdecl_t; @@ -51,6 +51,7 @@ YYLTYPE yylloc; int find_linear_len(array_t *a); + %} %union { @@ -180,28 +181,8 @@ printf("dfdecl_t decl[] = {\n"); for(i=0;i<numdecl;i++) { -#if 0 - char *c_name; - int c_name_dynamic = 0; - - if(dfdecl[i].c_name) { - c_name = dfdecl[i].c_name; - } else { - c_name_dynamic = 1; - c_name = xmalloc(strlen(dfdecl[i].name) + 4); - if(dfdecl[i].arglen || dfdecl[i].ret != T_VOID) { - sprintf(c_name, "df_%s", dfdecl[i].name); - } else { - sprintf(c_name, "do_%s", dfdecl[i].name); - } - } -#endif - - printf("\t/* %d */ { %d, \"%s\", (void (*)(void))df_%s, ", i, dfdecl[i].ret, dfdecl[i].name, dfdecl[i].name); -#if 0 - if(c_name_dynamic) - xfree(c_name); -#endif + printf("\t/* %d */ { %d, \"%s\", (void (*)(void))df_%s, ", + i, dfdecl[i].ret, dfdecl[i].name, dfdecl[i].name); printf("%d, {", dfdecl[i].arglen); for(j=0;j<dfdecl[i].arglen;j++) { |
From: Peep P. <so...@us...> - 2004-03-28 18:09:37
|
Update of /cvsroot/agd/server/src In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv31649 Modified Files: lang.h interpret.c interpret.h Log Message: Changed make_lvalue into a function; added string ranges. Index: lang.h =================================================================== RCS file: /cvsroot/agd/server/src/lang.h,v retrieving revision 1.6 retrieving revision 1.7 diff -u -d -r1.6 -r1.7 --- lang.h 21 Mar 2004 14:06:36 -0000 1.6 +++ lang.h 28 Mar 2004 17:58:15 -0000 1.7 @@ -47,33 +47,33 @@ L_CLOSE_ARRAY = 273, L_OPEN_FUNP = 274, L_CLOSE_FUNP = 275, - L_ASSIGN = 276, - L_ME = 277, - L_PE = 278, - L_DE = 279, - L_MOE = 280, - L_MUE = 281, - L_POWE = 282, - L_AND = 283, - L_OR = 284, - L_NE = 285, - L_EQ = 286, - L_MINUS = 287, - L_PLUS = 288, - L_GE = 289, - L_LE = 290, - L_GT = 291, - L_LT = 292, - L_MOD = 293, - L_DIV = 294, - L_MUL = 295, - L_POW = 296, - L_DEREF = 297, - L_DEC = 298, - L_INC = 299, - L_NOT = 300, - L_NEG = 301, - L_TYPECAST = 302 + L_RANGE = 276, + L_ASSIGN = 277, + L_ME = 278, + L_PE = 279, + L_DE = 280, + L_MOE = 281, + L_MUE = 282, + L_POWE = 283, + L_AND = 284, + L_OR = 285, + L_NE = 286, + L_EQ = 287, + L_MINUS = 288, + L_PLUS = 289, + L_GE = 290, + L_LE = 291, + L_GT = 292, + L_LT = 293, + L_MOD = 294, + L_DIV = 295, + L_MUL = 296, + L_POW = 297, + L_DEREF = 298, + L_DEC = 299, + L_INC = 300, + L_NOT = 301, + L_NEG = 302 }; #endif #define L_RETURN 258 @@ -94,39 +94,39 @@ #define L_CLOSE_ARRAY 273 #define L_OPEN_FUNP 274 #define L_CLOSE_FUNP 275 -#define L_ASSIGN 276 -#define L_ME 277 -#define L_PE 278 -#define L_DE 279 -#define L_MOE 280 -#define L_MUE 281 -#define L_POWE 282 -#define L_AND 283 -#define L_OR 284 -#define L_NE 285 -#define L_EQ 286 -#define L_MINUS 287 -#define L_PLUS 288 -#define L_GE 289 -#define L_LE 290 -#define L_GT 291 -#define L_LT 292 -#define L_MOD 293 -#define L_DIV 294 -#define L_MUL 295 -#define L_POW 296 -#define L_DEREF 297 -#define L_DEC 298 -#define L_INC 299 -#define L_NOT 300 -#define L_NEG 301 -#define L_TYPECAST 302 +#define L_RANGE 276 +#define L_ASSIGN 277 +#define L_ME 278 +#define L_PE 279 +#define L_DE 280 +#define L_MOE 281 +#define L_MUE 282 +#define L_POWE 283 +#define L_AND 284 +#define L_OR 285 +#define L_NE 286 +#define L_EQ 287 +#define L_MINUS 288 +#define L_PLUS 289 +#define L_GE 290 +#define L_LE 291 +#define L_GT 292 +#define L_LT 293 +#define L_MOD 294 +#define L_DIV 295 +#define L_MUL 296 +#define L_POW 297 +#define L_DEREF 298 +#define L_DEC 299 +#define L_INC 300 +#define L_NOT 301 +#define L_NEG 302 #if ! defined (YYSTYPE) && ! defined (YYSTYPE_IS_DECLARED) -#line 34 "lang.y" +#line 33 "lang.y" typedef union YYSTYPE { char *str; int i; Index: interpret.c =================================================================== RCS file: /cvsroot/agd/server/src/interpret.c,v retrieving revision 1.15 retrieving revision 1.16 diff -u -d -r1.15 -r1.16 --- interpret.c 21 Mar 2004 10:35:53 -0000 1.15 +++ interpret.c 28 Mar 2004 17:58:15 -0000 1.16 @@ -24,15 +24,6 @@ int *cp; /* Code pointer into code->data */ array_t *code; -typedef struct { - variable_t *sp, *fp; - int *cp; - array_t *code; - object_t *this_ob, *previous_ob; - player_t *this_player; - int num_arg; -} control_stack_t; - control_stack_t control_stack[CONTROL_STACK_SIZE]; control_stack_t *csp = control_stack; @@ -45,17 +36,20 @@ void call_function(object_t *ob, int index); void do_assign(variable_t *lval, variable_t *rval); +void pop_control_stack(int pop_sp); +void free_value(variable_t *v); /* Need the F_NEWLINE operation for this. */ -static void runtime(char *s) +void runtime(char *s) { - char buf[512]; + char *buf; if(!this_ob) { printf("%s on line %d (function %d)\n", s, lineno, funcno); goto out; } + buf = xmalloc(strlen(this_ob->name) + strlen(s) + 64); sprintf(buf, "%s: %s on line %d (function %d)\n", this_ob->name, s, lineno, funcno); printf(buf); @@ -64,7 +58,13 @@ net_disconnect(this_player); } + xfree(buf); + out: + if(csp > &control_stack[0]) { + /*pop_locals();*/ + pop_control_stack(1); + } longjmp(error_context, 1); } @@ -120,7 +120,6 @@ CHECK_SP() } -void free_value(variable_t *v); void push_var(variable_t *v) { if(v) @@ -151,8 +150,6 @@ } } -#define pop_locals() while(sp > fp) { sp--; free_value(sp); } - void do_assign(variable_t *lval, variable_t *rval) { *lval = *rval; @@ -161,7 +158,7 @@ ref_ob(lval->u.ob, lval); break; case T_STRING: - if(lval->string_type != ST_STATIC) { + if(rval->string_type != ST_STATIC && rval->u.s) { lval->u.s = stringdup(rval->u.s); } break; @@ -250,18 +247,23 @@ #define CHECK_OVERRUN() if((int *) cp >= (int *) code->data + code->length) {\ debug("interpret", "Ran over end of array: returning\n"); return; } -#define GET_ARGS() tmpi = 0; while(tmpi < 2) { \ +/*#define GET_ARGS() tmpi = 0; while(tmpi < 2) { \ tmp = --sp; if(tmp->type == T_LVALUE) tmp = tmp->u.v;\ - arg[tmpi] = tmp->u.i; tmpi++; free_value(sp); } + arg[tmpi] = tmp->u.i; tmpi++; free_value(sp); }*/ +#define GET_ARGS() arg[0] = sp[-1].u.i; pop_stack(); arg[1] = sp[-1].u.i; pop_stack(); #define SETUP_CALL_FRAME() tmpi = *++cp; cp++; push_control_stack(); \ csp->num_arg = *cp; fp = sp - csp->num_arg +#define TAKE_SLICE() GET_ARGS() if(!sp[-1].u.s) runtime("taking substring of NULL string"); \ + if(arg[1] >= strlen(sp[-1].u.s) || arg[1] < 0 || arg[1] > arg[0]) runtime("substring out of range"); \ + void eval_instruction(void) { - variable_t *tmp; + variable_t *tmpvp, tmpv; control_stack_t *saved_csp; int tmpi, arg[2]; + char *tmps; /* csp is never at &control_stack[0] when we get here, so this is safe. */ saved_csp = csp - 1; @@ -309,13 +311,13 @@ push_lvalue(this_ob->variables.data[*cp]); break; case F_ADD: - tmp = add_vars(sp-2, sp-1); + tmpvp = add_vars(sp-2, sp-1); pop_stack(); pop_stack(); - push_var(tmp); + push_var(tmpvp); break; case F_SUB: GET_ARGS() - push_int(arg[1]-arg[0]); + push_int(arg[1] - arg[0]); break; case F_MUL: GET_ARGS() @@ -330,54 +332,79 @@ push_int(arg[1] % arg[0]); break; case F_ASSIGN: - { - variable_t tmp; do_assign(sp[-2].u.v, sp-1); - do_assign(&tmp, sp-1); + do_assign(&tmpv, sp-1); pop_stack(); pop_stack(); - push_var(&tmp); - } + push_var(&tmpv); break; case F_POSTINC: - tmp = sp[-1].u.v; - tmpi = tmp->u.i++; + tmpvp = sp[-1].u.v; + tmpi = tmpvp->u.i++; pop_stack(); push_int(tmpi); break; case F_PREINC: - tmp = sp[-1].u.v; - tmpi = ++tmp->u.i; + tmpvp = sp[-1].u.v; + tmpi = ++tmpvp->u.i; pop_stack(); push_int(tmpi); break; case F_POSTDEC: - tmp = sp[-1].u.v; - tmpi = tmp->u.i--; + tmpvp = sp[-1].u.v; + tmpi = tmpvp->u.i--; push_int(tmpi); break; case F_PREDEC: - tmp = sp[-1].u.v; - tmpi = --tmp->u.i; + tmpvp = sp[-1].u.v; + tmpi = --tmpvp->u.i; push_int(tmpi); break; - case F_RANGE: - tmpi = sp[-2].u.s[sp[-1].u.i]; - pop_stack(); pop_stack(); - push_int(tmpi); + case F_INDEX: + if(!sp[-2].u.s) { + runtime("taking element of NULL string"); + } + arg[0] = sp[-1].u.i; + pop_stack(); + arg[1] = sp[-1].u.s[arg[0]]; + pop_stack(); + push_int(arg[1]); break; - case F_RANGE_LVALUE: + case F_INDEX_LVALUE: /* A bit hacky. */ - *sp = sp[-2]; - sp->u.s += sp[-1].u.i; - pop_stack(); pop_stack(); - push_var(sp+2); + arg[0] = sp[-1].u.i; + pop_stack(); + if(!sp[-1].u.s) { + runtime("taking element of NULL string"); + } + do_assign(sp, &sp[-1]); + sp->u.s += arg[0]; + pop_stack(); + push_var(sp+1); + push_lvalue(sp-1); + break; + case F_SLICE: + TAKE_SLICE() + tmps = xmalloc(arg[0] - arg[1] + 1); + for(tmpi=0;tmpi<arg[0];tmpi++) + tmps[tmpi] = sp[-1].u.s[tmpi+arg[1]]; + tmps[tmpi] = '\0'; + pop_stack(); + push_string(tmps, ST_MALLOC); + break; + case F_SLICE_LVALUE: + TAKE_SLICE() + tmpvp = sp[-1].u.v; + tmps = tmpvp->u.s + arg[0]; /* begin */ + tmpi = tmpvp->string_type; + pop_stack(); + push_string(tmps, tmpi); push_lvalue(sp-1); break; case F_JMPF: sp--; if(!test_var(sp)) { - int amount = cp[1]; - cp += amount; + tmpi = cp[1]; + cp += tmpi; } else { cp++; } @@ -444,51 +471,40 @@ pop_control_stack(0); break; case F_CALL_OTHER: - { - char *name; - int index; - variable_t *ref; - object_t *ob; - - name = (char *) *++cp; + tmps = (char *) *++cp; ++cp; sp--; if(sp->type == T_OBJECT) { - ob = sp->u.ob; - } else { - char *s; - /* T_STRING */ - s = sp->u.s; - ob = find_object(s); - if(!ob) { - ob = load_object(s); + tmpv.u.ob = sp->u.ob; /* A little hack so we don't + need an object_t variable in this scope. + Saves some overhead. */ + } else { /* T_STRING */ + tmpv.u.ob = find_object(sp->u.s); + if(!tmpv.u.ob) { + tmpv.u.ob = load_object(sp->u.s); } } - if(!ob) { + if(!tmpv.u.ob) { runtime("call_other on NULL object"); } - index = get_fun_index(ob, name); + tmpi = get_fun_index(tmpv.u.ob, tmps); free_value(sp); push_control_stack(); csp->num_arg = *cp; fp = sp - csp->num_arg; - call_function(ob, index); + call_function(tmpv.u.ob, tmpi); goto again; - } break; case F_RETURN: - { - variable_t tmp; - do_assign(&tmp, sp-1); + do_assign(&tmpv, sp-1); pop_locals(); - push_var(&tmp); + push_var(&tmpv); if(csp == saved_csp + 1) pop_control_stack(1); else pop_control_stack(0); - } break; default: printf("Unknown instruction %d\n", *cp); @@ -525,7 +541,8 @@ function_t *f; f = ob->prog->functions.data[index]; if(!f) { - char buf[256]; + char buf[512]; /* Can't use dynamic memory + because of runtime()'s longjmp() */ sprintf(buf, "function %d doesn't exist in object \"%s\"", index, ob->name); runtime(buf); } Index: interpret.h =================================================================== RCS file: /cvsroot/agd/server/src/interpret.h,v retrieving revision 1.9 retrieving revision 1.10 diff -u -d -r1.9 -r1.10 --- interpret.h 21 Mar 2004 13:02:37 -0000 1.9 +++ interpret.h 28 Mar 2004 17:58:16 -0000 1.10 @@ -48,18 +48,34 @@ #define F_PREINC 41 #define F_POSTDEC 42 #define F_PREDEC 43 -#define F_RANGE 44 -#define F_RANGE_LVALUE 45 -#define F_COMM 46 -#define F_POW 47 -#define F_POWE 48 +#define F_INDEX 44 /* Single index into an array or string. */ +#define F_INDEX_LVALUE 45 +#define F_SLICE 46 +#define F_SLICE_LVALUE 47 +#define F_COMM 48 +#define F_POW 49 +#define F_POWE 50 -#define F_HIGHEST F_RANGE_LVALUE +#define F_HIGHEST F_POWE -#define F_NEWLINE 50 /* Increases the line number. Not used ATM. */ +#define F_NEWLINE 51 /* Increases the line number. Not used ATM. */ variable_t *apply(object_t *ob, char *fun, char *argfmt, ...); +void runtime(char *s); #define pop_stack() sp--; free_value(sp) +#define pop_locals() while(sp > fp) { sp--; free_value(sp); } + +typedef struct { + variable_t *sp, *fp; + int *cp; + array_t *code; + object_t *this_ob, *previous_ob; + player_t *this_player; + int num_arg; +} control_stack_t; + +extern control_stack_t *csp; +extern variable_t *sp, *fp; #endif |