Changeset 401
- Timestamp:
- 08/12/06 06:05:12 (2 years ago)
- Files:
-
- 1.7.7/CHANGES (modified) (1 diff)
- 1.7.7/Patchlevel (modified) (1 diff)
- 1.7.7/game/mushcnf.dst (modified) (1 diff)
- 1.7.7/game/restart (modified) (1 diff)
- 1.7.7/game/txt/hlp/penncmd.hlp (modified) (2 diffs)
- 1.7.7/game/txt/hlp/pennfunc.hlp (modified) (3 diffs)
- 1.7.7/game/txt/hlp/pennvers.hlp (modified) (5 diffs)
- 1.7.7/hdrs/externs.h (modified) (5 diffs)
- 1.7.7/hdrs/game.h (modified) (1 diff)
- 1.7.7/hdrs/mushtype.h (modified) (1 diff)
- 1.7.7/hdrs/version.h (modified) (1 diff)
- 1.7.7/po/Makefile (modified) (1 diff)
- 1.7.7/src/bsd.c (modified) (1 diff)
- 1.7.7/src/comp_w.c (modified) (3 diffs)
- 1.7.7/src/comp_w8.c (modified) (3 diffs)
- 1.7.7/src/conf.c (modified) (1 diff)
- 1.7.7/src/function.c (modified) (1 diff)
- 1.7.7/src/funstr.c (modified) (2 diffs)
- 1.7.7/src/game.c (modified) (2 diffs)
- 1.7.7/src/lock.c (modified) (4 diffs)
- 1.7.7/src/look.c (modified) (1 diff)
- 1.7.7/src/strutil.c (modified) (1 diff)
- 1.7.7/src/timer.c (modified) (1 diff)
- 1.7.7/src/wiz.c (modified) (10 diffs)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
1.7.7/CHANGES
r399 r401 18 18 19 19 ========================================================================== 20 21 Version 1.7.7 patchlevel 1 December 17, 2002 22 23 Minor Changes: 24 * ex obj/attrib returns the attribute value even if it's veiled, 25 if a specific (non-wildcard) attribute is given. Suggested by 26 Nhoj@M*U*S*H. 27 Fixes: 28 * Win32 portability fixes. [EEH] 29 * Fixes from 1.7.6p2 20 30 21 31 Version 1.7.7 patchlevel 0 December 8, 2002 1.7.7/Patchlevel
r399 r401 1 1 Do not edit this file. It is maintained by the official PennMUSH patches. 2 This is PennMUSH 1.7.7p 02 This is PennMUSH 1.7.7p1 1.7.7/game/mushcnf.dst
r399 r401 162 162 # for a single expression. This limits how much the stack size can increase, 163 163 # which could be useful if your host limits your stack (it will prevent 164 # a crash). 164 # a crash). The higher your allowed stack size limit, the larger the 165 # mush process can grow, and the higher this can be set. 165 166 # But remember that you need to recurse for every [ or { or function call 166 167 # in your code, and those add up quickly. So this must often be set quite 167 168 # high (e.g. 18000), alas. Setting it to '0' means unlimited. 168 call_limit 0169 call_limit 10000 169 170 170 171 # The maximum number of milliseconds of CPU time that a single queue entry 1.7.7/game/restart
r351 r401 56 56 # Prevent double-starting things. You may need to provide a pathname for 57 57 # some of the commands. System V flavors need "ps -f" instead of "ps uwx". 58 mush=`ps uwx | grep $CONF_FILE| grep -v grep | wc -l`58 mush=`ps uwx | grep " $CONF_FILE" | grep -v grep | wc -l` 59 59 60 60 1.7.7/game/txt/hlp/penncmd.hlp
r399 r401 821 821 See also: SAFE, GOING, DESTROY_OK 822 822 & @dig 823 @dig <room name> [= <exit name>;<exit alias>*,<exit name>;<exit alias>*] 824 @dig/teleport 823 @dig[/teleport] <room name>[=<exit name>;<alias>*,<exit name>;<alias>*] 825 824 826 825 This command is used to create a new room, possibly with exits linking … … 986 985 & @emit 987 986 & \ 988 @emit[/room][/silent] <message> 989 @emit[/noeval] <message> 987 @emit[/room][/silent][/noeval] [<message>] 990 988 \<message> 991 989 1.7.7/game/txt/hlp/pennfunc.hlp
r399 r401 1899 1899 & SEARCH() 1900 1900 & LSEARCHR() 1901 lsearch(<player> , <class>, <restriction>[, <low>[, <high>]])1902 lsearchr(<player> , <class>, <restriction>[, <low>[, <high>]])1901 lsearch(<player>[, <class>[, <restriction>[, <low>[, <high>]]]]) 1902 lsearchr(<player>[, <class>[, <restriction>[, <low>[, <high>]]]]) 1903 1903 1904 1904 This function is similar to the @search command, except it returns … … 2531 2531 rand(<num>) 2532 2532 2533 Rand returns an integer between 0 and num-1 .2533 Rand returns an integer between 0 and num-1, inclusive. 2534 2534 If called with an invalid argument, rand() returns an error message 2535 2535 beginning with #-1. … … 3410 3410 3411 3411 > @va Object=$test *:"[ufun(testfun, v(0))]; @emit [v(0)] 3412 > 3413 &testfun object=[strlen(v(0))] [ucstr(v(0))] 3412 > &testfun object=[strlen(v(0))] [ucstr(v(0))] 3414 3413 > test string 3415 Foosays, "6 STRING"3414 Object says, "6 STRING" 3416 3415 string 3417 3416 3418 See "help UFUN3" for more. 3419 3420 & U3 3421 & UFUN3 3422 A user-defined function may be as complex as you want it to be. 3417 A user-defined function may be as complex as you want it to be, 3418 subject to limits on recursion depth, number of function invocations, 3419 or cpu time that may be configured in the MUSH. 3423 3420 If the evaluation order doesn't quite seem right, adding escapes 3424 3421 or breaking up the expression will probably help. 3425 3422 3426 Excessive recursion in either a UFUN() or ZFUN() will cause it to3427 return "#-1 EXCESSIVE RECURSION ERROR", and sets the object HALT.3428 An object which is HALT may not evaluate either UFUN() or ZFUN();3429 those functions will then return "#-1 OBJECT HALTED".3430 3431 3423 & UCSTR() 3432 3424 ucstr(<string>) 1.7.7/game/txt/hlp/pennvers.hlp
r399 r401 1 1 & changes 2 & 1.7.7p 02 & 1.7.7p1 3 3 This is a list of changes in this patchlevel which are probably of 4 4 interest to players. More information about new commands and functions … … 12 12 be read in 'help patchlevels'. 13 13 14 Version 1.7.7 patchlevel 1 December 17, 2002 15 16 Minor Changes: 17 * ex obj/attrib returns the attribute value even if it's veiled, 18 if a specific (non-wildcard) attribute is given. Suggested by 19 Nhoj@M*U*S*H. 20 Fixes: 21 * Win32 portability fixes. [EEH] 22 * Fixes from 1.7.6p2 23 24 & 1.7.7p0 14 25 Version 1.7.7 patchlevel 0 November 11, 2002 15 26 … … 56 67 * Continued ansi-C-ification of function declarations. 57 68 58 Version 1.7.6 patchlevel 1 November 26, 2002 59 60 Minor changes: 61 * When using @nuke to destroy a SAFE object when really_safe is "no", 62 provide a warning (but schedule destruction anyway). Suggested by 63 Cerekk@bDV. 64 Fixes: 65 * VS.NET project file was defaulting to signed instead of unsigned 66 chars, causing crashes. Fixed by BladedThoth@M*U*S*H. 67 Several places where we should have cast things to unsigned to 68 avoid this kind of thing have been fixed. [SW] 69 * The *emit() functions now set the orator correctly. 70 Reported by Philip Mak. 71 * ccom and cplr are cleared after each command execution so they 72 can't be leaked as easily. Suggested by Philip Mak. 73 * Linting. 74 * If God gives the wrong password to @logwipe, provide some feedback. 75 Suggested by Cerekk@bDv. 76 * mkcmds.sh was needlessly rebuilding several autogenerated files. 77 * The rules for flag characters shown in object headers now allows 78 F_INTERNAL flags to be shown (like GOING), just the same as 79 when you get a full flag list on examine. Report by Philip Mak. 80 * Help fixes by Bird@M*U*S*H, Intrevis@M*U*S*H, Philip Mak. 81 * @search type=something would report an error AND match the entire 82 database when something wasn't object, player, exit or room. [SW] 83 * Cosmetic bug in @malias/list fixed. Report by Philip Mak. 84 * The info_slave now properly obeys the use_dns setting in mush.cnf. 85 This requires a full shutdown to put into effect. Report by 86 BlaZe@M*U*S*H. [SW] 87 88 89 & 1.7.6p0 90 Version 1.7.6 patchlevel 0 November 11, 2002 91 92 License: 93 * PennMUSH 1.7.6 and later is now released under the Artistic 94 License. This is an OSI-compliant open source license. See the file 95 COPYRITE for the complete license text. 96 97 Notable changes from the old license: 98 * No restrictions on commercial use 99 * No requirement to inform developers of improvements or submit 100 modifications, though it's still a nice thing to do. Note, however 101 that if you redistribute a modified version of PennMUSH, you MUST 102 include source code. 103 104 The PennMUSH devteam thanks the copyright holders of TinyMUD, 105 TinyMUSH 2.0, TinyMUSH 2.2, and TinyMUSH 3.0 for their assistance 106 in making this possible. 107 Documentation: 108 * The README file has been split into README, INSTALL, UPGRADING, 109 and I18N files. 110 Minor Changes: 111 * Rooms now hear remits and lemits in them, and can be pemitted 112 to. This behavior now matches that of other MUSH servers. 113 * AUDIBLE objects now propagate sound @remit'd into them. 114 Report by [SW]. 115 * Added @lock/destroy to limit who can destroy a DESTROY_OK 116 object. Suggested by Luigi@8bit. 117 * PARANOID nospoof notification now includes the name of the object's 118 owner as well. Suggested by Philip Mak. 119 * room() no longer notifies the executor of permission errors out of 120 band. It now just returns the error instead, like loc(). Suggested by 121 Philip Mak. 122 * Creation times are now public information via ctime(); permission to 123 examine is no longer required. This allows objects to use, e.g., 124 %#@[ctime(%#)] as a historically unique identifier of an enactor. 125 Suggested by Philip Mak. 126 * The reboot.db is now versioned. This will make it possible to 127 @shutdown/reboot across patchlevels that change the reboot.db 128 format (in 1.7.7 and later versions). 129 * Rooms on an @forwardlist now receive the message as a remit, 130 rather than a pemit. Suggested by BladedThoth@M*U*S*H. 131 Fixes: 132 * More work on the great table() bug. Looks like a fix. [SW] 133 * Improved VS.NET project files by BladedThoth. 134 * Plugged a memory leak in deleting @locks. [SW] 135 * Fixed @lock-related crash bug reported by Philip Mak. [SW] 136 * General linting. 137 * process_expression ignores the [ in ansi escapes. Reported in the 138 context of #$ by Philip Mak. [SW] 139 * Internal changes to compress(), which now returns an allocated 140 string. Under Huffman compression, it should no longer be possible 141 to overflow a buffer with a pathological compression tree. Initial 142 concern voiced by Eyal Sagi. 143 * Table and ansi didn't play well together. Reported by Ellis@M*U*S*H. 144 * Config file reading should be better on Macs. Patch by Philip Mak. 145 * Obsolete checks for OLD_ANSI are removed. [SW] 146 * Crash bug in @function fixed. Report by Dallimar@Hemlock. 147 * Change to message on failed attribute flag set, to make it more 148 generic to cover all the possible failures. Report by Cerekk@bDv. 149 * Translations to some languages were broken. Fixed now. Report by 150 Sbot@M*U*S*H. 151 * QUEUE is now visible if you control an object, as promised in the 152 help. Reported by Luigi@8bit. 153 * Help fixes by Mortimer@M*U*S*H, Bellemore@M*U*S*H, Hyacinth@8bit, 154 [EEH], BladedThoth@M*U*S*H, Moe@M*U*S*H, Viila@M*U*S*H, Walker@M*U*S*H. 155 * Comment in src/Makefile fixed by Vadiv@M*U*S*H. 156 * A weird crash on @shutdown/reboot, probably attributable to a 157 broken library or system call, is now worked-around. Report by 158 Solarius@SWWF. 159 * Audible objects with @forwardlist set are no longer concealed by 160 the DARK flag. 161 * Win32 project files no longer use the win32/ directory as an include 162 directory, which causes problems. Reported by Gepht. 163 69 & 1.7.5p12 164 70 Version 1.7.5 patchlevel 12 November 1, 2002 165 71 … … 641 547 * Indentation fixes [SW] 642 548 * Fixes up to 1.7.4p12 merged in. 549 550 & 1.7.6p2 551 Version 1.7.6 patchlevel 2 December 17, 2002 552 553 Minor changes: 554 * An invalid range argument to @search/lsearch is now coerced 555 to be the lowest or highest dbref, as appropriate. The search 556 range is also now inclusive. And lsearch(<player>) works. 557 Suggested by Philip Mak. 558 * mushcnf.dst now includes a default value for call_limit. 559 Suggested by Philip Mak. 560 * Testing for whether the mush is already running in the 561 restart script has been improved by Philip Mak. 562 Internationalization: 563 * Polish translation files (partial) are now being distributed. 564 Fixes: 565 * Fix to win32 warnings. [EEH] 566 * Under Win32, a failed accept() call in bsd.c would not be 567 correctly handled. Report by BladedThoth@M*U*S*H. 568 * Help fixes by Luigi@8bitMUSH, Kyieren@M*U*S*H, Intrevis@M*U*S*H. 569 * @map crash bug repoted by Philip Mak, fixed by Walker@M*U*S*H. 570 * Modifiying locks now updates the object's modification time. 571 Reported by Philip Mak. 572 573 Version 1.7.6 patchlevel 1 November 26, 2002 574 575 Minor changes: 576 * When using @nuke to destroy a SAFE object when really_safe is "no", 577 provide a warning (but schedule destruction anyway). Suggested by 578 Cerekk@bDV. 579 Fixes: 580 * VS.NET project file was defaulting to signed instead of unsigned 581 chars, causing crashes. Fixed by BladedThoth@M*U*S*H. 582 Several places where we should have cast things to unsigned to 583 avoid this kind of thing have been fixed. [SW] 584 * The *emit() functions now set the orator correctly. 585 Reported by Philip Mak. 586 * ccom and cplr are cleared after each command execution so they 587 can't be leaked as easily. Suggested by Philip Mak. 588 * Linting. 589 * If God gives the wrong password to @logwipe, provide some feedback. 590 Suggested by Cerekk@bDv. 591 * mkcmds.sh was needlessly rebuilding several autogenerated files. 592 * The rules for flag characters shown in object headers now allows 593 F_INTERNAL flags to be shown (like GOING), just the same as 594 when you get a full flag list on examine. Report by Philip Mak. 595 * Help fixes by Bird@M*U*S*H, Intrevis@M*U*S*H, Philip Mak. 596 * @search type=something would report an error AND match the entire 597 database when something wasn't object, player, exit or room. [SW] 598 * Cosmetic bug in @malias/list fixed. Report by Philip Mak. 599 * The info_slave now properly obeys the use_dns setting in mush.cnf. 600 This requires a full shutdown to put into effect. Report by 601 BlaZe@M*U*S*H. [SW] 602 603 604 & 1.7.6p0 605 Version 1.7.6 patchlevel 0 November 11, 2002 606 607 License: 608 * PennMUSH 1.7.6 and later is now released under the Artistic 609 License. This is an OSI-compliant open source license. See the file 610 COPYRITE for the complete license text. 611 612 Notable changes from the old license: 613 * No restrictions on commercial use 614 * No requirement to inform developers of improvements or submit 615 modifications, though it's still a nice thing to do. Note, however 616 that if you redistribute a modified version of PennMUSH, you MUST 617 include source code. 618 619 The PennMUSH devteam thanks the copyright holders of TinyMUD, 620 TinyMUSH 2.0, TinyMUSH 2.2, and TinyMUSH 3.0 for their assistance 621 in making this possible. 622 Documentation: 623 * The README file has been split into README, INSTALL, UPGRADING, 624 and I18N files. 625 Minor Changes: 626 * Rooms now hear remits and lemits in them, and can be pemitted 627 to. This behavior now matches that of other MUSH servers. 628 * AUDIBLE objects now propagate sound @remit'd into them. 629 Report by [SW]. 630 * Added @lock/destroy to limit who can destroy a DESTROY_OK 631 object. Suggested by Luigi@8bit. 632 * PARANOID nospoof notification now includes the name of the object's 633 owner as well. Suggested by Philip Mak. 634 * room() no longer notifies the executor of permission errors out of 635 band. It now just returns the error instead, like loc(). Suggested by 636 Philip Mak. 637 * Creation times are now public information via ctime(); permission to 638 examine is no longer required. This allows objects to use, e.g., 639 %#@[ctime(%#)] as a historically unique identifier of an enactor. 640 Suggested by Philip Mak. 641 * The reboot.db is now versioned. This will make it possible to 642 @shutdown/reboot across patchlevels that change the reboot.db 643 format (in 1.7.7 and later versions). 644 * Rooms on an @forwardlist now receive the message as a remit, 645 rather than a pemit. Suggested by BladedThoth@M*U*S*H. 646 Fixes: 647 * More work on the great table() bug. Looks like a fix. [SW] 648 * Improved VS.NET project files by BladedThoth. 649 * Plugged a memory leak in deleting @locks. [SW] 650 * Fixed @lock-related crash bug reported by Philip Mak. [SW] 651 * General linting. 652 * process_expression ignores the [ in ansi escapes. Reported in the 653 context of #$ by Philip Mak. [SW] 654 * Internal changes to compress(), which now returns an allocated 655 string. Under Huffman compression, it should no longer be possible 656 to overflow a buffer with a pathological compression tree. Initial 657 concern voiced by Eyal Sagi. 658 * Table and ansi didn't play well together. Reported by Ellis@M*U*S*H. 659 * Config file reading should be better on Macs. Patch by Philip Mak. 660 * Obsolete checks for OLD_ANSI are removed. [SW] 661 * Crash bug in @function fixed. Report by Dallimar@Hemlock. 662 * Change to message on failed attribute flag set, to make it more 663 generic to cover all the possible failures. Report by Cerekk@bDv. 664 * Translations to some languages were broken. Fixed now. Report by 665 Sbot@M*U*S*H. 666 * QUEUE is now visible if you control an object, as promised in the 667 help. Reported by Luigi@8bit. 668 * Help fixes by Mortimer@M*U*S*H, Bellemore@M*U*S*H, Hyacinth@8bit, 669 [EEH], BladedThoth@M*U*S*H, Moe@M*U*S*H, Viila@M*U*S*H, Walker@M*U*S*H. 670 * Comment in src/Makefile fixed by Vadiv@M*U*S*H. 671 * A weird crash on @shutdown/reboot, probably attributable to a 672 broken library or system call, is now worked-around. Report by 673 Solarius@SWWF. 674 * Audible objects with @forwardlist set are no longer concealed by 675 the DARK flag. 676 * Win32 project files no longer use the win32/ directory as an include 677 directory, which causes problems. Reported by Gepht. 643 678 644 679 & 1.7.4p20 … … 5791 5826 type 'help <version>p<patchlevel>'. For example, 'help 1.7.2p3' 5792 5827 5793 1.7.7: 0 5794 1.7.6: 0, 1 5828 1.7.7: 0, 1 5829 1.7.6: 0, 1, 2 5795 5830 1.7.5: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12 5796 5831 1.7.4: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 1.7.7/hdrs/externs.h
r399 r401 54 54 extern void init_game_config(const char *conf); 55 55 extern void dump_database(void); 56 extern void 57 panic(const char *message) 58 NORETURN; 56 extern void NORETURN panic(const char *message); 59 57 60 58 61 59 #ifdef WIN32 62 60 /* From timer.c */ 63 extern void init_timer(void);64 extern void kill_timer(void);61 extern void init_timer(void); 62 extern void kill_timer(void); 65 63 #endif /* WIN32 */ 66 64 67 65 /* From bsd.c */ 68 extern FILE *connlog_fp;69 extern FILE *checklog_fp;70 extern FILE *wizlog_fp;71 extern FILE *tracelog_fp;72 extern FILE *cmdlog_fp;73 extern int restarting;66 extern FILE *connlog_fp; 67 extern FILE *checklog_fp; 68 extern FILE *wizlog_fp; 69 extern FILE *tracelog_fp; 70 extern FILE *cmdlog_fp; 71 extern int restarting; 74 72 #ifdef SUN_OS 75 extern int f_close(FILE * file);73 extern int f_close(FILE * file); 76 74 #define fclose(f) f_close(f); 77 75 #endif 78 extern int hidden(dbref player);79 void dump_reboot_db(void);76 extern int hidden(dbref player); 77 void dump_reboot_db(void); 80 78 81 79 /* The #defs for our notify_anything hacks.. Errr. Functions */ … … 90 88 91 89 92 typedef dbref (*na_lookup) (dbref, void *);93 extern void notify_anything(dbref speaker, na_lookup func,94 void *fdata,95 char *(*nsfunc) (dbref,96 na_lookup func,97 void *, int), int flags,98 const char *message);99 extern dbref na_one(dbref current, void *data);100 extern dbref na_next(dbref current, void *data);101 extern dbref na_loc(dbref current, void *data);102 extern dbref na_nextbut(dbref current, void *data);103 extern dbref na_except(dbref current, void *data);104 extern dbref na_except2(dbref current, void *data);105 extern dbref na_exceptN(dbref current, void *data);90 typedef dbref (*na_lookup) (dbref, void *); 91 extern void notify_anything(dbref speaker, na_lookup func, 92 void *fdata, 93 char *(*nsfunc) (dbref, 94 na_lookup func, 95 void *, int), int flags, 96 const char *message); 97 extern dbref na_one(dbref current, void *data); 98 extern dbref na_next(dbref current, void *data); 99 extern dbref na_loc(dbref current, void *data); 100 extern dbref na_nextbut(dbref current, void *data); 101 extern dbref na_except(dbref current, void *data); 102 extern dbref na_except2(dbref current, void *data); 103 extern dbref na_exceptN(dbref current, void *data); 106 104 #ifdef CHAT_SYSTEM 107 extern dbref na_channel(dbref current, void *data);105 extern dbref na_channel(dbref current, void *data); 108 106 #endif 109 107 … … 113 111 #define notify_noecho(p,m) notify_anything(orator, na_one, &(p), NULL, NA_NORELAY | NA_PUPPET, m) 114 112 #define quiet_notify(p,m) if (!IsQuiet(p)) notify(p,m) 115 extern void notify_format(dbref player, const char *fmt, ...)113 extern void notify_format(dbref player, const char *fmt, ...) 116 114 __attribute__ ((__format__(__printf__, 2, 3))); 117 115 … … 122 120 /* #define COMP_STATS /* */ 123 121 #if (COMPRESSION_TYPE != 0) 124 extern unsigned char *compress(char const *s) __attribute_malloc__; 122 extern unsigned char * 123 compress(char const *s) 124 __attribute_malloc__; 125 125 extern char *uncompress(unsigned char const *s); 126 126 extern char *safe_uncompress(unsigned char const *s) __attribute_malloc__; 127 127 #else 128 extern char ucbuff[];128 extern char ucbuff[]; 129 129 #define init_compress(f) 0 130 130 #define compress(s) ((unsigned char *)strdup(s)) … … 134 134 135 135 /* From cque.c */ 136 extern char *wenv[10], renv[NUMQ][BUFFER_LEN];137 extern char *wnxt[10], *rnxt[NUMQ];138 extern void do_second(void);139 extern int do_top(int ncom);140 extern void do_halt(dbref owner, const char *ncom, dbref victim);141 extern void parse_que(dbref player, const char *command, dbref cause);142 extern int queue_attribute_base143 (dbref executor, const char *atrname, dbref enactor, int noparent);136 extern char *wenv[10], renv[NUMQ][BUFFER_LEN]; 137 extern char *wnxt[10], *rnxt[NUMQ]; 138 extern void do_second(void); 139 extern int do_top(int ncom); 140 extern void do_halt(dbref owner, const char *ncom, dbref victim); 141 extern void parse_que(dbref player, const char *command, dbref cause); 142 extern int queue_attribute_base 143 (dbref executor, const char *atrname, dbref enactor, int noparent); 144 144 #define queue_attribute(a,b,c) queue_attribute_base(a,b,c,0) 145 145 #define queue_attribute_noparent(a,b,c) queue_attribute_base(a,b,c,1) 146 extern void dequeue_semaphores(dbref thing, char const *aname, int count,147 int all, int drain);146 extern void dequeue_semaphores(dbref thing, char const *aname, int count, 147 int all, int drain); 148 148 149 149 150 150 /* From create.c */ 151 extern dbref do_dig(dbref player, const char *name, char **argv, int tport); 152 extern dbref do_create(dbref player, char *name, int cost); 153 extern dbref do_real_open(dbref player, const char *direction, 154 const char *linkto, dbref pseudo); 155 extern void do_open(dbref player, const char *direction, char **links); 156 extern void do_link(dbref player, const char *name, const char *room_name, 157 int preserve); 158 extern void do_unlink(dbref player, const char *name); 159 extern dbref do_clone(dbref player, char *name, char *newname, 160 int preserve); 151 extern dbref do_dig(dbref player, const char *name, char **argv, int tport); 152 extern dbref do_create(dbref player, char *name, int cost); 153 extern dbref do_real_open(dbref player, const char *direction, 154 const char *linkto, dbref pseudo); 155 extern void do_open(dbref player, const char *direction, char **links); 156 extern void do_link(dbref player, const char *name, const char *room_name, 157 int preserve); 158 extern void do_unlink(dbref player, const char *name); 159 extern dbref do_clone(dbref player, char *name, char *newname, int preserve); 161 160 162 161 /* From game.c */ 163 extern void report(void);164 extern int Hearer(dbref thing);165 extern int Commer(dbref thing);166 extern int Listener(dbref thing);167 extern dbref orator;168 int parse_chat(dbref player, char *command);169 extern void fork_and_dump(int forking);162 extern void report(void); 163 extern int Hearer(dbref thing); 164 extern int Commer(dbref thing); 165 extern int Listener(dbref thing); 166 extern dbref orator; 167 int parse_chat(dbref player, char *command); 168 extern void fork_and_dump(int forking); 170 169 171 170 /* From look.c */ 172 extern void look_room(dbref player, dbref loc, int flag);173 extern void do_look_around(dbref player);174 extern void do_look_at(dbref player, const char *name, int key);171 extern void look_room(dbref player, dbref loc, int flag); 172 extern void do_look_around(dbref player); 173 extern void do_look_at(dbref player, const char *name, int key); 175 174 176 175 /* From move.c */ 177 extern void enter_room(dbref player, dbref loc, int nomovemsgs);178 extern int can_move(dbref player, const char *direction);179 extern void do_move(dbref player, const char *direction, int type);180 extern void moveto(dbref what, dbref where);181 extern void safe_tel(dbref player, dbref dest, int nomovemsgs);182 extern dbref global_exit(dbref player, const char *direction);183 extern dbref remote_exit(dbref loc, const char *direction);184 extern void move_wrapper(dbref player, const char *command);185 extern void do_follow(dbref player, const char *arg);186 extern void do_unfollow(dbref player, const char *arg);187 extern void do_desert(dbref player, const char *arg);188 extern void do_dismiss(dbref player, const char *arg);189 extern void clear_followers(dbref leader, int noisy);190 extern void clear_following(dbref follower, int noisy);176 extern void enter_room(dbref player, dbref loc, int nomovemsgs); 177 extern int can_move(dbref player, const char *direction); 178 extern void do_move(dbref player, const char *direction, int type); 179 extern void moveto(dbref what, dbref where); 180 extern void safe_tel(dbref player, dbref dest, int nomovemsgs); 181 extern dbref global_exit(dbref player, const char *direction); 182 extern dbref remote_exit(dbref loc, const char *direction); 183 extern void move_wrapper(dbref player, const char *command); 184 extern void do_follow(dbref player, const char *arg); 185 extern void do_unfollow(dbref player, const char *arg); 186 extern void do_desert(dbref player, const char *arg); 187 extern void do_dismiss(dbref player, const char *arg); 188 extern void clear_followers(dbref leader, int noisy); 189 extern void clear_following(dbref follower, int noisy); 191 190 192 191 /* From mycrypt.c */ 193 extern char *mush_crypt(const char *key);192 extern char *mush_crypt(const char *key); 194 193 195 194 /* From player.c */ 196 extern int password_check(dbref player, const char *password);197 extern dbref lookup_player(const char *name);195 extern int password_check(dbref player, const char *password); 196 extern dbref lookup_player(const char *name); 198 197 /* from player.c */ 199 extern dbref create_player(const char *name, const char *password,200 const char *host, const char *ip);201 extern dbref connect_player(const char *name, const char *password,202 const char *host, const char *ip);203 extern void check_last(dbref player, const char *host, const char *ip);204 extern void check_lastfailed(dbref player, const char *host);198 extern dbref create_player(const char *name, const char *password, 199 const char *host, const char *ip); 200 extern dbref connect_player(const char *name, const char *password, 201 const char *host, const char *ip); 202 extern void check_last(dbref player, const char *host, const char *ip); 203 extern void check_lastfailed(dbref player, const char *host); 205 204 206 205 /* From parse.c */ 207 extern int is_number(const char *str);208 extern int is_strict_number(const char *str);209 extern int is_strict_integer(const char *str);206 extern int is_number(const char *str); 207 extern int is_strict_number(const char *str); 208 extern int is_strict_integer(const char *str); 210 209 211 210 /* From plyrlist.c */ 212 void clear_players(void);213 void add_player(dbref player, const char *alias);214 void delete_player(dbref player, const char *alias);211 void clear_players(void); 212 void add_player(dbref player, const char *alias); 213 void delete_player(dbref player, const char *alias); 215 214 216 215 /* From predicat.c */ 217 216 218 extern char *WIN32_CDECL tprintf(const char *fmt, ...)217 extern char *WIN32_CDECL tprintf(const char *fmt, ...) 219 218 __attribute__ ((__format__(__printf__, 1, 2))); 220 219 221 extern int could_doit(dbref player, dbref thing);222 extern void did_it(dbref player, dbref thing, const char *what,223 const char *def, const char *owhat, const char *odef,224 const char *awhat, dbref loc);225 extern void real_did_it(dbref player, dbref thing, const char *what,226 const char *def, const char *owhat,227 const char *odef, const char *awhat, dbref loc,228 char *myenv[10]);229 extern int can_see(dbref player, dbref thing, int can_see_loc);230 extern int controls(dbref who, dbref what);231 extern int can_pay_fees(dbref who, int pennies);232 extern void giveto(dbref who, dbref pennies);233 extern int payfor(dbref who, int cost);234 extern int nearby(dbref obj1, dbref obj2);220 extern int could_doit(dbref player, dbref thing); 221 extern void did_it(dbref player, dbref thing, const char *what, 222 const char *def, const char *owhat, const char *odef, 223 const char *awhat, dbref loc); 224 extern void real_did_it(dbref player, dbref thing, const char *what, 225 const char *def, const char *owhat, 226 const char *odef, const char *awhat, dbref loc, 227 char *myenv[10]); 228 extern int can_see(dbref player, dbref thing, int can_see_loc); 229 extern int controls(dbref who, dbref what); 230 extern int can_pay_fees(dbref who, int pennies); 231 extern void giveto(dbref who, dbref pennies); 232 extern int payfor(dbref who, int cost); 233 extern int nearby(dbref obj1, dbref obj2); 235 234 #ifdef QUOTA 236 extern int get_current_quota(dbref who);237 extern void change_quota(dbref who, int payment);238 #endif 239 extern int ok_name(const char *name);240 extern int ok_command_name(const char *name);241 extern int ok_player_name(const char *name);242 extern int ok_password(const char *password);243 extern dbref parse_match_possessive(dbref player, const char *str);244 extern void page_return(dbref player, dbref target, const char *type,245 const char *message, const char *def);246 extern char *grep_util(dbref player, dbref thing, char *pattern,247 char *lookfor, int len, int insensitive);248 extern dbref where_is(dbref thing);249 extern int charge_action(dbref player, dbref thing, const char *awhat);250 dbref first_visible(dbref player, dbref thing);235 extern int get_current_quota(dbref who); 236 extern void change_quota(dbref who, int payment); 237 #endif 238 extern int ok_name(const char *name); 239 extern int ok_command_name(const char *name); 240 extern int ok_player_name(const char *name); 241 extern int ok_password(const char *password); 242 extern dbref parse_match_possessive(dbref player, const char *str); 243 extern void page_return(dbref player, dbref target, const char *type, 244 const char *message, const char *def); 245 extern char *grep_util(dbref player, dbref thing, char *pattern, 246 char *lookfor, int len, int insensitive); 247 extern dbref where_is(dbref thing); 248 extern int charge_action(dbref player, dbref thing, const char *awhat); 249 dbref first_visible(dbref player, dbref thing); 251 250 252 251 /* From set.c */ 253 extern void chown_object(dbref player, dbref thing, dbref newowner,254 int preserve);252 extern void chown_object(dbref player, dbref thing, dbref newowner, 253 int preserve); 255 254 256 255 /* From speech.c */ 257 extern char *ns_esnotify(dbref speaker, na_lookup func, void *fdata, 258 int para); 259 extern void notify_except(dbref first, dbref exception, const char *msg); 260 extern void notify_except2 261 (dbref first, dbref exc1, dbref exc2, const char *msg); 256 extern char *ns_esnotify(dbref speaker, na_lookup func, void *fdata, int para); 257 extern void notify_except(dbref first, dbref exception, const char *msg); 258 extern void notify_except2 259 (dbref first, dbref exc1, dbref exc2, const char *msg); 262 260 /* Return thing/PREFIX + msg */ 263 extern void make_prefixstr(dbref thing, const char *msg, char *tbuf1);264 extern int filter_found(dbref thing, const char *msg, int flag);261 extern void make_prefixstr(dbref thing, const char *msg, char *tbuf1); 262 extern int filter_found(dbref thing, const char *msg, int flag); 265 263 266 264 /* From strutil.c */ 267 extern char *split_token(char **sp, char sep);268 extern char *chopstr(const char *str, size_t lim);269 extern int string_prefix(const char *RESTRICT string,270 const char *RESTRICT prefix);271 extern const char *string_match(const char *src, const char *sub);272 extern char *strupper(const char *s);273 extern char *strlower(const char *s);274 extern char *upcasestr(char *s);275 extern char *skip_space(const char *s);276 extern char *seek_char(const char *s, char c);277 extern int u_strlen(const unsigned char *s);278 extern unsigned char *u_strcpy279 (unsigned char *target, const unsigned char *source);265 extern char *split_token(char **sp, char sep); 266 extern char *chopstr(const char *str, size_t lim); 267 extern int string_prefix(const char *RESTRICT string, 268 const char *RESTRICT prefix); 269 extern const char *string_match(const char *src, const char *sub); 270 extern char *strupper(const char *s); 271 extern char *strlower(const char *s); 272 extern char *upcasestr(char *s); 273 extern char *skip_space(const char *s); 274 extern char *seek_char(const char *s, char c); 275 extern int u_strlen(const unsigned char *s); 276 extern unsigned char *u_strcpy 277 (unsigned char *target, const unsigned char *source); 280 278 #define u_strdup(x) (unsigned char *)strdup((char *) x) 281 279 #ifndef HAS_STRDUP 282 char *strdup(const char *s) __attribute_malloc__; 280 char * 281 strdup(const char *s) 282 __attribute_malloc__; 283 283 #endif 284 284 char *mush_strdup(const char *s, const char *check) __attribute_malloc__; 1.7.7/hdrs/game.h
r399 r401 152 152 extern void do_chownall 153 153 (dbref player, const char *name, const char *target, int preserve); 154 extern void 155 do_reboot(dbref player, int flag) 156 NORETURN; 154 extern void NORETURN do_reboot(dbref player, int flag); 157 155 158 156 /* From destroy.c */ 159 extern void do_dbck(dbref player);160 extern void do_destroy(dbref player, char *name, int confirm);157 extern void do_dbck(dbref player); 158 extern void do_destroy(dbref player, char *name, int confirm); 161 159 162 160 /* From timer.c */ 163 extern void init_timer(void);161 extern void init_timer(void); 164 162 165 163 /* From version.c */ 166 extern void do_version(dbref player);164 extern void do_version(dbref player); 167 165 168 166 #endif /* __GAME_H */ 1.7.7/hdrs/mushtype.h
r399 r401 4 4 #include "options.h" 5 5 #include <stdio.h> 6 #ifdef WIN32 7 #include <windows.h> 8 #endif 6 9 #ifdef HAS_OPENSSL 7 10 #include <openssl/ssl.h> 1.7.7/hdrs/version.h
r399 r401 1 #define VERSION "PennMUSH version 1.7.7 patchlevel 0 [12/8/2002]"2 #define SHORTVN "PennMUSH 1.7.7p 0"1 #define VERSION "PennMUSH version 1.7.7 patchlevel 1 [12/17/2002]" 2 #define SHORTVN "PennMUSH 1.7.7p1" 1.7.7/po/Makefile
r399 r401 2 2 3 3 POFILES=ru_RU.po nl_NL.po sv_SE.po hu_HU.po es_ES.po pt_BR.po fr_FR.po \ 4 da_DK.po de_DE.po no_NO.po 4 da_DK.po de_DE.po no_NO.po pl_PL.po 5 5 6 6 .pox.po: $*.pox pennmush.pot 1.7.7/src/bsd.c
r399 r401 372 372 void close_sockets(void); 373 373 dbref find_player_by_desc(int port); 374 void 375 bailout(int sig) 376 NORETURN; 377 void WIN32_CDECL signal_shutdown(int sig); 378 void WIN32_CDECL signal_dump(int sig); 379 void reaper(int sig); 380 extern Pid_t forked_dump_pid; 381 void dump_users(DESC *call_by, char *match, int doing); 382 const char *time_format_1(long int dt); 383 const char *time_format_2(long int dt); 384 static void announce_connect(dbref player, int isnew, int num); 385 static void announce_disconnect(dbref player); 386 void inactivity_check(void); 374 void NORETURN bailout(int sig); 375 void WIN32_CDECL signal_shutdown(int sig); 376 void WIN32_CDECL signal_dump(int sig); 377 void reaper(int sig); 378 extern Pid_t forked_dump_pid; 379 void dump_users(DESC *call_by, char *match, int doing); 380 const char *time_format_1(long int dt); 381 const char *time_format_2(long int dt); 382 static void announce_connect(dbref player, int isnew, int num); 383 static void announce_disconnect(dbref player); 384 void inactivity_check(void); 387 385 #ifdef INFO_SLAVE 388 static void make_info_slave(void);389 static void promote_info_slave(void);390 static void query_info_slave(int fd);391 static void reap_info_slave(void);392 void kill_info_slave(void);393 #endif 394 void reopen_logs(void);395 void load_reboot_db(void);386 static void make_info_slave(void); 387 static void promote_info_slave(void); 388 static void query_info_slave(int fd); 389 static void reap_info_slave(void); 390 void kill_info_slave(void); 391 #endif 392 void reopen_logs(void); 393 void load_reboot_db(void); 396 394 #ifdef HAS_GETRLIMIT 397 static void398 init_rlimit(void)395 static void 396 init_rlimit(void) 399 397 { 400 398 /* Unlimit file descriptors. */ 1.7.7/src/comp_w.c
r399 r401 128 128 129 129 #define MAXTABLE 32768 130 #define MAXWORD 100130 #define MAXWORDS 100 131 131 #define COLLISION_LIMIT 20 132 132 … … 143 143 /* The word we are currently compressing */ 144 144 145 static char word[MAXWORD + 2];145 static char word[MAXWORDS + 2]; 146 146 static size_t wordpos = 0; 147 147 … … 240 240 /* break up input into words */ 241 241 while (*p) { 242 if (!(isdigit(*p) || isalpha(*p)) || wordpos >= MAXWORD ) {242 if (!(isdigit(*p) || isalpha(*p)) || wordpos >= MAXWORDS) { 243 243 if (wordpos) { 244 244 word[wordpos++] = *p & 0x7F; /* add trailing punctuation */ 1.7.7/src/comp_w8.c
r399 r401 129 129 130 130 #define MAXTABLE 32768 131 #define MAXWORD 100131 #define MAXWORDS 100 132 132 #define COLLISION_LIMIT 20 133 133 … … 145 145 /* The word we are currently compressing */ 146 146 147 static char word[MAXWORD + 2];147 static char word[MAXWORDS + 2]; 148 148 static size_t wordpos = 0; 149 149 … … 244 244 /* break up input into words */ 245 245 while (*p) { 246 if (!(isdigit(*p) || isalpha(*p)) || wordpos >= MAXWORD ) {246 if (!(isdigit(*p) || isalpha(*p)) || wordpos >= MAXWORDS) { 247 247 if (wordpos) { 248 248 word[wordpos++] = *p; /* add trailing punctuation */ 1.7.7/src/conf.c
r399 r401 933 933 options.queue_entry_cpu_time = 1500; 934 934 options.ascii_names = 1; 935 options.call_lim = 10000; 935 936 } 936 937 1.7.7/src/function.c
r399 r401 298 298 {"LPARENT", fun_lparent, 1, 1, FN_REG}, 299 299 {"LPLAYERS", fun_lplayers, 1, 1, FN_REG}, 300 {"LSEARCH", fun_lsearch, 3, 5, FN_REG},301 {"LSEARCHR", fun_lsearch, 3, 5, FN_REG},300 {"LSEARCH", fun_lsearch, 1, 5, FN_REG}, 301 {"LSEARCHR", fun_lsearch, 1, 5, FN_REG}, 302 302 {"LSTATS", fun_lstats, 0,
