This is 1.8.1p10-1.8.2p0 patch. After applying this patch to PennMUSH 1.8.1p10, you will have version 1.8.2p0. But if you don't have any good reason not to, it's better to start with a fresh 1.8.2p0 tarball. To apply this patch, save it to a file in your top-level MUSH directory, and do the following: patch -p1 < 1.8.1p10-1.8.2p0.patch make clean make install If you use GNU patch 2.2, you probably want the above to be 'patch -b -p1', not just 'patch -p1'. Unix (or cygwin) users need not worry about failed hunks in src/switchinc.c, hdrs/switches.h, hdrs/cmds.h, or hdrs/funs.h. These files are automatically rebuilt on compile. On the off chance they appear not to be, simply rm them and re-run make. Then @shutdown and restart your MUSH. - Ervin/Noltar *** 1_8_1p10/BUGS Sun Nov 26 12:37:12 2006 --- 1_8_2p0/BUGS Sun Nov 26 13:01:17 2006 *************** *** 1,5 **** ! Bugs that aren't our fault, but might bite people with old compilers: * Ralph Melton reports that compiling with gcc 2.5.8 under SunOS 4.1.1 using -O optimization and forking dumps causes the dump process to crash. Removing -O fixes the problem; so might using a more recent gcc. --- 1,15 ---- ! Bugs that aren't our fault, but might bite people: + Modern: + + * You might experience crashes because the default executable stack + size is too small. An 8 megabyte stack is more than ample. On unix, it + can be raised with 'ulimit -s 8192'. On Windows, you must use the editbin + progam that comes with MS development environments to raise the stack on a + per-executable basis, via 'editbin /STACK:8388608 netmush.exe' + + + Ancient: * Ralph Melton reports that compiling with gcc 2.5.8 under SunOS 4.1.1 using -O optimization and forking dumps causes the dump process to crash. Removing -O fixes the problem; so might using a more recent gcc. *** 1_8_1p10/CHANGES.174 Sun Nov 26 12:37:12 2006 --- 1_8_2p0/CHANGES.174 Sun Nov 26 13:01:17 2006 *************** *** 1,7 **** ! ! This is the most current changes file for PennMUSH. Please look it ! over; each version contains new things which might significantly affect ! the function of your server. Changes are reported in reverse chronological order (most recent first) [TN] is Thorvald Natvig, a PennMUSH developer (aka Trivian) --- 1,6 ---- ! This is the changes file for PennMUSH 1.7.4. Please look it over; each ! version contains new things which might significantly affect the ! function of your server. Changes are reported in reverse chronological order (most recent first) [TN] is Thorvald Natvig, a PennMUSH developer (aka Trivian) *** 1_8_1p10/CHANGES.175 Sun Nov 26 12:37:12 2006 --- 1_8_2p0/CHANGES.175 Sun Nov 26 13:01:17 2006 *************** *** 1,7 **** ! ! This is the most current changes file for PennMUSH. Please look it ! over; each version contains new things which might significantly affect ! the function of your server. Changes are reported in reverse chronological order (most recent first) [TN] is Thorvald Natvig, a PennMUSH developer (aka Trivian) --- 1,6 ---- ! This is the changes file for PennMUSH 1.7.5. Please look it over; each ! version contains new things which might significantly affect the ! function of your server. Changes are reported in reverse chronological order (most recent first) [TN] is Thorvald Natvig, a PennMUSH developer (aka Trivian) *** 1_8_1p10/CHANGES.176 Sun Nov 26 12:37:12 2006 --- 1_8_2p0/CHANGES.176 Sun Nov 26 13:01:17 2006 *************** *** 1,3 **** --- 1,7 ---- + This is the changes file for PennMUSH 1.7.6. Please look it over; each + version contains new things which might significantly affect the + function of your server. Changes are reported in reverse + chronological order (most recent first) [TN] is Thorvald Natvig, a PennMUSH developer (aka Trivian) [TAP] is T. Alexander Popiel, a PennMUSH developer (aka Talek) *** 1_8_1p10/CHANGES.177 Sun Nov 26 12:37:12 2006 --- 1_8_2p0/CHANGES.177 Sun Nov 26 13:01:17 2006 *************** *** 1,7 **** ! ! This is the most current changes file for PennMUSH. Please look it ! over; each version contains new things which might significantly affect ! the function of your server. Changes are reported in reverse chronological order (most recent first) [TN] is Thorvald Natvig, a PennMUSH developer (aka Trivian) --- 1,6 ---- ! This is the changes file for PennMUSH 1.7.7. Please look it over; each ! version contains new things which might significantly affect the ! function of your server. Changes are reported in reverse chronological order (most recent first) [TN] is Thorvald Natvig, a PennMUSH developer (aka Trivian) *** 1_8_1p10/CHANGES.180 Sun Nov 26 12:37:12 2006 --- 1_8_2p0/CHANGES.180 Sun Nov 26 13:01:17 2006 *************** *** 1,7 **** ! ! This is the most current changes file for PennMUSH. Please look it ! over; each version contains new things which might significantly affect ! the function of your server. Changes are reported in reverse chronological order (most recent first) [TAP] is T. Alexander Popiel, a PennMUSH developer (aka Talek) --- 1,6 ---- ! This is the changes file for PennMUSH 1.8.0. Please look it over; each ! version contains new things which might significantly affect the ! function of your server. Changes are reported in reverse chronological order (most recent first) [TAP] is T. Alexander Popiel, a PennMUSH developer (aka Talek) *** 1_8_1p10/CHANGES.181 Sun Nov 26 12:37:12 2006 --- 1_8_2p0/CHANGES.181 Sun Nov 26 13:01:17 2006 *************** *** 1,7 **** ! ! This is the most current changes file for PennMUSH. Please look it ! over; each version contains new things which might significantly affect ! the function of your server. Changes are reported in reverse chronological order (most recent first) [TAP] is T. Alexander Popiel, a PennMUSH developer (aka Talek) --- 1,6 ---- ! This is the changes file for PennMUSH 1.8.1. Please look it over; each ! version contains new things which might significantly affect the ! function of your server. Changes are reported in reverse chronological order (most recent first) [TAP] is T. Alexander Popiel, a PennMUSH developer (aka Talek) *** 1_8_1p10/CHANGES.182 Wed Dec 31 16:00:00 1969 --- 1_8_2p0/CHANGES.182 Sun Nov 26 13:01:17 2006 *************** *** 0 **** --- 1,30 ---- + + This is the most current changes file for PennMUSH. Please look it + over; each version contains new things which might significantly affect + the function of your server. Changes are reported in reverse + chronological order (most recent first) + + [TAP] is T. Alexander Popiel, a PennMUSH developer (aka Talek) + [SW] is Shawn Wagner, a PennMUSH developer (aka Raevnos) + [EEH] is Ervin Hearn III, a PennMUSH developer (aka Noltar) + [GM] is Greg Millam, a PennMUSH developer (aka Walker) + [3] refers to code by (or inspired by) TinyMUSH 3.0 + [MUX] refers to code by (or inspired by) TinyMUX 2.x + [Rhost] refers to code by (or inspired by) RhostMUSH + + ========================================================================== + + Version 1.8.2 patchlevel 0 November 26, 2006 + + Minor Changes: + * decompose() now properly handles all manner of spaces, as well as + replacing 5 or more spaces with [space()]. Report by Malix. [GM] + + Fixes: + * Fix crash bug in decompose(). Report by Malix. + * The mush can listen to ports above 32000. Suggested by Nathan Baum. + * Fix the mix() bug that prepends the separator to the list. [GM] + * Win32 experienced erratic time behavior when compiled with MSVC++ 8 + or higher. Reported by Intrevis@M*U*S*H, + * Win32 project and readme files for MSVC++ 6 and .Net updated. [EEH] + * Help fixes by Kevin@M*U*S*H. *** 1_8_1p10/CHANGES.OLD Sun Nov 26 12:37:12 2006 --- 1_8_2p0/CHANGES.OLD Sun Nov 26 13:01:17 2006 *************** *** 1,5 **** This is the old changes file for PennMUSH. Changes are reported in reverse ! chronological order (more recent first) [TN] is Thorvald Natvig, a PennMUSH developer (aka Trivian) [TAP] is T. Alexander Popiel, a PennMUSH developer (aka Talek) --- 1,6 ---- This is the old changes file for PennMUSH. Changes are reported in reverse ! chronological order (more recent first.) Starting with 1.7.4, each minor ! version has its own changelog, in CHANGES.174 and so on. [TN] is Thorvald Natvig, a PennMUSH developer (aka Trivian) [TAP] is T. Alexander Popiel, a PennMUSH developer (aka Talek) *** 1_8_1p10/FAQ Sun Nov 26 12:37:12 2006 --- 1_8_2p0/FAQ Sun Nov 26 13:01:17 2006 *************** *** 1,9 **** Frequently asked questions about the PennMUSH Server, post-pl10 ! Updated: November 11, 2002 *** There are other FAQs on the web at: *** http://www.pennmush.org/cgi-penn/fom/ - *** http://services.pennmush.org/faq.html 0. What's the release history since 1.50pl10? 1. How do I ask for help with a problem? --- 1,8 ---- Frequently asked questions about the PennMUSH Server, post-pl10 ! Updated: November 11, 2006 *** There are other FAQs on the web at: *** http://www.pennmush.org/cgi-penn/fom/ 0. What's the release history since 1.50pl10? 1. How do I ask for help with a problem? *************** *** 14,19 **** --- 13,19 ---- 6. Why doesn't %t or space() work right for Pueblo clients? 7. Compiling with the lcc compiler. 8. Patch information in @version and INFO + 9. Which signals does PennMUSH understand? ----------------------------- *************** *** 37,44 **** advanced to 1.7.0. Currently, the active development team is Javelin, Talek, Raevnos, ! Noltar, and Walker. The stable version is 1.8.0, and the development ! version is 1.8.1. 1. How do I ask for help with a problem? --- 37,44 ---- advanced to 1.7.0. Currently, the active development team is Javelin, Talek, Raevnos, ! Noltar, and Walker. The stable version is 1.8.2, and the development ! version is 1.8.3. 1. How do I ask for help with a problem? *************** *** 65,71 **** what's causing the bug, or how to fix it, or if you have a patch for the bug, send it along. If you don't, and the bug caused a crash with a core dump, you can send along a stack trace (see #6 if you don't know ! how to do this). Bugs are patched as quickly as possible. Patches for bugs are emailed to the pennmush@pennmush.org mailing list and to the --- 65,71 ---- what's causing the bug, or how to fix it, or if you have a patch for the bug, send it along. If you don't, and the bug caused a crash with a core dump, you can send along a stack trace (see #6 if you don't know ! how to do this). Bugs are patched as quickly as possible. Patches for bugs are emailed to the pennmush@pennmush.org mailing list and to the *************** *** 146,149 **** --- 146,157 ---- The file with this patch information is rebuilt when needed by running make. + 9. Which signals does PennMUSH understand? + PennMUSH understands the following signals, and performs the listed action: + + -HUP Performs a silent @readcache + -USR1 Performs an @shutdown/reboot + -USR2 Performs an @dump + -INT Performs an @shutdown + -TERM Performs an @shutdown/panic *** 1_8_1p10/MANIFEST Sun Nov 26 12:37:12 2006 --- 1_8_2p0/MANIFEST Sun Nov 26 13:01:17 2006 *************** *** 5,10 **** --- 5,11 ---- CHANGES.177 CHANGES.180 CHANGES.181 + CHANGES.182 CHANGES.OLD COPYRITE Configure *************** *** 41,47 **** game/txt/evt/pennmush.evt game/txt/full.txt game/txt/guest.txt - game/txt/hlp/index.hlp game/txt/hlp/pennattr.hlp game/txt/hlp/pennchat.hlp game/txt/hlp/penncmd.hlp --- 42,47 ---- *************** *** 58,63 **** --- 58,64 ---- game/txt/hlp/pennv177.hlp game/txt/hlp/pennv180.hlp game/txt/hlp/pennv181.hlp + game/txt/hlp/pennv182.hlp game/txt/hlp/pennvOLD.hlp game/txt/index-files.pl game/txt/motd.txt *** 1_8_1p10/Makefile.SH Sun Nov 26 12:37:12 2006 --- 1_8_2p0/Makefile.SH Sun Nov 26 13:01:17 2006 *************** *** 256,261 **** --- 256,264 ---- checkin: versions autogen @prcs checkin + commit: indent + @svn commit + patch: versions @make-patch-header @make diffs *** 1_8_1p10/Patchlevel Sun Nov 26 12:37:12 2006 --- 1_8_2p0/Patchlevel Sun Nov 26 13:01:17 2006 *************** *** 1,2 **** Do not edit this file. It is maintained by the official PennMUSH patches. ! This is PennMUSH 1.8.1p10 --- 1,2 ---- Do not edit this file. It is maintained by the official PennMUSH patches. ! This is PennMUSH 1.8.2p0 *** 1_8_1p10/README Sun Nov 26 12:37:12 2006 --- 1_8_2p0/README Sun Nov 26 13:01:17 2006 *************** *** 19,30 **** at http://pennmush.org/~alansz/guide.html or by ftp from pennmush.org, /pub/PennMUSH/Guide ============================================================================ ! I. Introduction and history PennMUSH uses a version-numbering system that includes version numbers (like 1.7.2) and patchlevels (like p32), usually written ! together (1.7.2p32). Starting with 1.7.2, version numbers that are even (like 1.7.2) are stable releases - patchlevels on the latest stable release will only be --- 19,30 ---- at http://pennmush.org/~alansz/guide.html or by ftp from pennmush.org, /pub/PennMUSH/Guide ============================================================================ ! I. Introduction and history PennMUSH uses a version-numbering system that includes version numbers (like 1.7.2) and patchlevels (like p32), usually written ! together (1.7.2p32). Starting with 1.7.2, version numbers that are even (like 1.7.2) are stable releases - patchlevels on the latest stable release will only be *************** *** 61,68 **** TinyMUSH 2.0. In January of 1995, Amberyl passed on her mantle to Javelin (aka ! Paul@Dune, Alan Schwartz), who is now the maintainer of the primary ! public distribution in development. He released two patchlevels numbered "dune-1" and "dune-2" before releasing PennMUSH 1.50 pl11 and later distributions. The numbering scheme changed again with PennMUSH 1.6.0 (see CHANGES.OLD). --- 61,68 ---- TinyMUSH 2.0. In January of 1995, Amberyl passed on her mantle to Javelin (aka ! Paul@Dune, Alan Schwartz), who continuted as the maintainer of the ! primary public distribution in development. He released two patchlevels numbered "dune-1" and "dune-2" before releasing PennMUSH 1.50 pl11 and later distributions. The numbering scheme changed again with PennMUSH 1.6.0 (see CHANGES.OLD). *************** *** 86,91 **** --- 86,96 ---- simultaneously adopted by TinyMUSH (2.2.5, 3.x) and TinyMUX to facilitate code sharing and widen use. + In July 2006, Javelin retired from the role of Maintainer, passing the + mantle of lead developer to Raevnos and that of release management to + Ervin Hearn (Noltar). Many thanks go to Javelin whose contributions and + guidance of PennMUSH have shaped it into the codebase that it is today. + A MUSH manual should be available at ftp.digex.net, ftp.math.okstate.edu, primerd.prime.com, or from wherever you got this code from. The manual should be numbered version 2.007 or higher. *************** *** 126,132 **** informed of new patches, subscribe to pennmush-announce instead, at http://www.pennmush.org/mailman/listinfo/pennmush-announce) ! 2. pennmush-bugs@pennmush.org is the bug reporting address for the PennMUSH developers (suggestions go to pennmush-developers, bugs to pennmush-bugs). This will generally give you the fastest response and is ideal for unusual bugs. A web-based submission --- 131,137 ---- informed of new patches, subscribe to pennmush-announce instead, at http://www.pennmush.org/mailman/listinfo/pennmush-announce) ! 2. pennmush-bugs@pennmush.org is the bug reporting address for the PennMUSH developers (suggestions go to pennmush-developers, bugs to pennmush-bugs). This will generally give you the fastest response and is ideal for unusual bugs. A web-based submission *************** *** 140,146 **** 3. The operating system and version (SunOS 4.1.2, AIX 3.2.4, etc.), 4. The compiler and compiler version (gcc 2.4.5, SGI cc 2.10, etc. -- the 'file' command usually tells you the compiler version, if there's no ! built-in option like '-v' or '-V' to give it), 5. Whether or not you have made any changes to the code. If the problem resulted in a crash and a core dump, a stack trace of --- 145,151 ---- 3. The operating system and version (SunOS 4.1.2, AIX 3.2.4, etc.), 4. The compiler and compiler version (gcc 2.4.5, SGI cc 2.10, etc. -- the 'file' command usually tells you the compiler version, if there's no ! built-in option like '-v' or '-V' to give it), 5. Whether or not you have made any changes to the code. If the problem resulted in a crash and a core dump, a stack trace of *************** *** 160,171 **** so players don't need to telnet to obscuresite.obscuredomain.com! NOTE: A hostname is not the same thing as a site. We don't have accounts ! for you to run your MUSH from. You must already have your MUSH running at someplace.edu or whatever -- we just provide a nice hostname that will resolve into your current site's IP address. ! How do you get a pennmush.org hostname? Go to ! http://lists.pennmush.org/pennmush.html, and follow the instructions. It may take a day or two before the hostname will work. Thovald also has volunteered to host mailing lists for MUSHes in --- 165,176 ---- so players don't need to telnet to obscuresite.obscuredomain.com! NOTE: A hostname is not the same thing as a site. We don't have accounts ! for you to run your MUSH from. You must already have your MUSH running at someplace.edu or whatever -- we just provide a nice hostname that will resolve into your current site's IP address. ! How do you get a pennmush.org hostname? Go to ! http://services.pennmush.org/, and follow the instructions. It may take a day or two before the hostname will work. Thovald also has volunteered to host mailing lists for MUSHes in *************** *** 174,184 **** ============================================================================ IV. Comments ! IV.a. Amberyl's Comments These are in the first person. :) ! I've been working with this code for a year and a quarter now. I can't claim that it's particularly elegant or inspired; all I can say is that it works (most of the time), and that I've had fun writing it. I'm --- 179,189 ---- ============================================================================ IV. Comments ! IV.a. Amberyl's Comments These are in the first person. :) ! I've been working with this code for a year and a quarter now. I can't claim that it's particularly elegant or inspired; all I can say is that it works (most of the time), and that I've had fun writing it. I'm *** 1_8_1p10/game/restart Sun Nov 26 12:37:11 2006 --- 1_8_2p0/game/restart Sun Nov 26 13:01:17 2006 *************** *** 22,28 **** # Time zone stuff # If you want your MUSH to run in a different timezone than the one ! # you're in, you need to identify the target time zone file in # /usr/share/zoneinfo or /usr/lib/zoneinfo. Then uncomment the next # two lines and set TZ to the desired timezone file, as shown, with # an initial colon: --- 22,28 ---- # Time zone stuff # If you want your MUSH to run in a different timezone than the one ! # you're in, you need to identify the target time zone file in # /usr/share/zoneinfo or /usr/lib/zoneinfo. Then uncomment the next # two lines and set TZ to the desired timezone file, as shown, with # an initial colon: *************** *** 60,66 **** if [ ! -e netmush ]; then echo "I don't see $GAMEDIR/netmush. Did you remember to make install?" exit 1 ! fi # # Read the cnf file and set some variables. --- 60,66 ---- if [ ! -e netmush ]; then echo "I don't see $GAMEDIR/netmush. Did you remember to make install?" exit 1 ! fi # # Read the cnf file and set some variables. *************** *** 79,85 **** COMPRESSOR=`egrep "^compress_program" $CONF_FILE | sed "s/[^ ]*[ ]*\(.*\)/\1/" | sed 's/\r$//'` SUFFIX=`egrep "^compress_suffix" $CONF_FILE | sed "s/[^ ]*[ ]*\(.*\)/\1/" | sed 's/\r$//'` fi ! #-- start up everything --- 79,85 ---- COMPRESSOR=`egrep "^compress_program" $CONF_FILE | sed "s/[^ ]*[ ]*\(.*\)/\1/" | sed 's/\r$//'` SUFFIX=`egrep "^compress_suffix" $CONF_FILE | sed "s/[^ ]*[ ]*\(.*\)/\1/" | sed 's/\r$//'` fi ! #-- start up everything *** 1_8_1p10/game/txt/hlp/penntop.hlp Sun Nov 26 12:37:11 2006 --- 1_8_2p0/game/txt/hlp/penntop.hlp Sun Nov 26 13:01:17 2006 *************** *** 106,114 **** & ACTION LISTS Action lists are simply lists of actions that are all executed at once. You can have an action list in a user-defined command, in one of the ! a-attributes, or in many other commands. ! Actions in an action list are separated by semicolons. Each action is simply a separate MUSH command. If part of the action (such as the text in an @emit, for example) contains a semi-colon or comma, you may need to enclose that part in curly braces {}. You can also nest action lists --- 106,117 ---- & ACTION LISTS Action lists are simply lists of actions that are all executed at once. You can have an action list in a user-defined command, in one of the ! a-attributes, or in many other commands. Action lists may not be ! executed directly from a client, except in the case of a command ! which forces a re-insertion into the queue such as @switch or ! @dolist. ! Actions in an action list are separated by semicolons. Each action is simply a separate MUSH command. If part of the action (such as the text in an @emit, for example) contains a semi-colon or comma, you may need to enclose that part in curly braces {}. You can also nest action lists *** 1_8_1p10/game/txt/hlp/pennv181.hlp Sun Nov 26 12:37:11 2006 --- 1_8_2p0/game/txt/hlp/pennv181.hlp Sun Nov 26 13:01:17 2006 *************** *** 1,16 **** & 1.8.1p10 - & changes - This is a list of changes in this patchlevel which are probably of - interest to players. More information about new commands and functions - can probably be gotten via 'help '. 'help credits' - lists the [initials] of developers and porters that are used in the list - of changes. - - Information about changes in prior releases can be found under - help topics named for each release (e.g. 'help 1.7.2p30'). - A list of the patchlevels associated with each release can - be read in 'help patchlevels'. - Version 1.8.1 patchlevel 10 September 13, 2006 Fixes: --- 1,4 ---- *** 1_8_1p10/game/txt/hlp/pennv182.hlp Wed Dec 31 16:00:00 1969 --- 1_8_2p0/game/txt/hlp/pennv182.hlp Sun Nov 26 13:01:17 2006 *************** *** 0 **** --- 1,28 ---- + & 1.8.2p0 + & changes + This is a list of changes in this patchlevel which are probably of + interest to players. More information about new commands and functions + can probably be gotten via 'help '. 'help credits' + lists the [initials] of developers and porters that are used in the list + of changes. + + Information about changes in prior releases can be found under + help topics named for each release (e.g. 'help 1.7.2p30'). + A list of the patchlevels associated with each release can + be read in 'help patchlevels'. + + + Version 1.8.2 patchlevel 0 November 26, 2006 + + Minor Changes: + * decompose() now properly handles all manner of spaces, as well as + replacing 5 or more spaces with [space()]. Report by Malix. [GM] + + Fixes: + * Fix crash bug in decompose(). Report by Malix. + * The mush can listen to ports above 32000. Suggested by Nathan Baum. + * Fix the mix() bug that prepends the separator to the list. [GM] + * Win32 experienced erratic time behavior when compiled with MSVC++ 8 + or higher. Reported by Intrevis@M*U*S*H. + * Win32 project and readme files for MSVC++ 6 and .Net updated. [EEH] + * Help fixes by Kevin@M*U*S*H. *** 1_8_1p10/hdrs/htab.h Sun Nov 26 12:37:12 2006 --- 1_8_2p0/hdrs/htab.h Sun Nov 26 13:01:17 2006 *************** *** 29,36 **** int last_hval; /**< State for hashfirst & hashnext. */ HASHENT *last_entry; /**< State for hashfirst & hashnext. */ int entry_size; /**< Size of each entry */ ! void (*free_data)(void*); /**< Function to call on data when deleting ! a entry. */ }; #define get_hashmask(x) hash_getmask(x) --- 29,36 ---- int last_hval; /**< State for hashfirst & hashnext. */ HASHENT *last_entry; /**< State for hashfirst & hashnext. */ int entry_size; /**< Size of each entry */ ! void (*free_data) (void *); /**< Function to call on data when deleting ! a entry. */ }; #define get_hashmask(x) hash_getmask(x) *************** *** 42,48 **** #define hashflush(tab, size) hash_flush(tab,size) #define hashfree(tab) hash_flush(tab, 0) extern int hash_getmask(int *size); ! extern void hash_init(HASHTAB *htab, int size, int data_size, void (*)(void*)); extern HASHENT *hash_find(HASHTAB *htab, const char *key); extern void *hash_value(HASHENT *entry); extern char *hash_key(HASHENT *entry); --- 42,48 ---- #define hashflush(tab, size) hash_flush(tab,size) #define hashfree(tab) hash_flush(tab, 0) extern int hash_getmask(int *size); ! extern void hash_init(HASHTAB *htab, int size, int data_size, void (*)(void *)); extern HASHENT *hash_find(HASHTAB *htab, const char *key); extern void *hash_value(HASHENT *entry); extern char *hash_key(HASHENT *entry); *** 1_8_1p10/hdrs/version.h Sun Nov 26 12:37:12 2006 --- 1_8_2p0/hdrs/version.h Sun Nov 26 13:01:17 2006 *************** *** 1,4 **** ! #define VERSION "1.8.1" ! #define PATCHLEVEL "10" ! #define PATCHDATE "[09/13/2006]" ! #define NUMVERSION 1008001010 --- 1,4 ---- ! #define VERSION "1.8.2" ! #define PATCHLEVEL "0" ! #define PATCHDATE "[11/26/2006]" ! #define NUMVERSION 1008002000 *** 1_8_1p10/src/boolexp.c Sun Nov 26 12:37:11 2006 --- 1_8_2p0/src/boolexp.c Sun Nov 26 13:01:17 2006 *************** *** 588,594 **** dbref mydb; r = 0; ! a = atr_get(target, (char *)bytecode + arg); if (!a) break; --- 588,594 ---- dbref mydb; r = 0; ! a = atr_get(target, (char *) bytecode + arg); if (!a) break; *** 1_8_1p10/src/bsd.c Sun Nov 26 12:37:11 2006 --- 1_8_2p0/src/bsd.c Sun Nov 26 13:01:17 2006 *************** *** 3670,3676 **** if (strlen(message) >= DOING_LEN) { notify_format(player, T("Doing set. %d characters lost."), ! (int)strlen(message) - (DOING_LEN - 1)); } else notify(player, T("Doing set.")); } --- 3670,3676 ---- if (strlen(message) >= DOING_LEN) { notify_format(player, T("Doing set. %d characters lost."), ! (int) strlen(message) - (DOING_LEN - 1)); } else notify(player, T("Doing set.")); } *************** *** 3717,3723 **** poll_msg[DOING_LEN - 1] = 0; notify_format(player, T("Poll set to '%s'. %d characters lost."), poll_msg, ! (int)strlen(message) - (DOING_LEN - 1)); } else notify_format(player, T("Poll set to: %s"), poll_msg); do_log(LT_WIZ, player, NOTHING, T("Poll Set to '%s'."), poll_msg); --- 3717,3723 ---- poll_msg[DOING_LEN - 1] = 0; notify_format(player, T("Poll set to '%s'. %d characters lost."), poll_msg, ! (int) strlen(message) - (DOING_LEN - 1)); } else notify_format(player, T("Poll set to: %s"), poll_msg); do_log(LT_WIZ, player, NOTHING, T("Poll Set to '%s'."), poll_msg); *** 1_8_1p10/src/command.c Sun Nov 26 12:37:11 2006 --- 1_8_2p0/src/command.c Sun Nov 26 13:01:17 2006 *************** *** 1703,1709 **** command_check(dbref player, COMMAND_INFO *cmd) { int ok; ! char *mess = NULL; int check_flags, check_powers; /* If disabled, return silently */ --- 1703,1709 ---- command_check(dbref player, COMMAND_INFO *cmd) { int ok; ! const char *mess = NULL; int check_flags, check_powers; /* If disabled, return silently */ *** 1_8_1p10/src/conf.c Sun Nov 26 12:37:11 2006 --- 1_8_2p0/src/conf.c Sun Nov 26 13:01:17 2006 *************** *** 173,181 **** , {"ssl_ip_addr", cf_str, options.ssl_ip_addr, 64, 0, "net"} , ! {"port", cf_int, &options.port, 32000, 0, "net"} , ! {"ssl_port", cf_int, &options.ssl_port, 32000, 0, "net"} , {"use_dns", cf_bool, &options.use_dns, 2, 0, "net"} , --- 173,181 ---- , {"ssl_ip_addr", cf_str, options.ssl_ip_addr, 64, 0, "net"} , ! {"port", cf_int, &options.port, 65535, 0, "net"} , ! {"ssl_port", cf_int, &options.ssl_port, 65535, 0, "net"} , {"use_dns", cf_bool, &options.use_dns, 2, 0, "net"} , *** 1_8_1p10/src/cque.c Sun Nov 26 12:37:11 2006 --- 1_8_2p0/src/cque.c Sun Nov 26 13:01:17 2006 *************** *** 65,71 **** static int queue_limit(dbref player); void free_qentry(BQUE *point); static int pay_queue(dbref player, const char *command); ! void wait_que(dbref player, int wait, char *command, dbref cause, dbref sem, const char *semattr, int until); int que_next(void); --- 65,71 ---- static int queue_limit(dbref player); void free_qentry(BQUE *point); static int pay_queue(dbref player, const char *command); ! void wait_que(dbref player, int waituntil, char *command, dbref cause, dbref sem, const char *semattr, int until); int que_next(void); *************** *** 341,347 **** * they're due to expire; semaphore queue entries are just added * to the back of the queue. * \param player the enqueuing object. ! * \param wait time to wait, or 0. * \param command command to enqueue. * \param cause object that caused command to be enqueued. * \param sem object to serve as a semaphore, or NOTHING. --- 341,347 ---- * they're due to expire; semaphore queue entries are just added * to the back of the queue. * \param player the enqueuing object. ! * \param waittill time to wait, or 0. * \param command command to enqueue. * \param cause object that caused command to be enqueued. * \param sem object to serve as a semaphore, or NOTHING. *************** *** 349,360 **** * \param until 1 if we wait until an absolute time. */ void ! wait_que(dbref player, int wait, char *command, dbref cause, dbref sem, const char *semattr, int until) { BQUE *tmp; int a; ! if (wait == 0) { if (sem != NOTHING) add_to_sem(sem, -1, semattr); parse_que(player, command, cause); --- 349,360 ---- * \param until 1 if we wait until an absolute time. */ void ! wait_que(dbref player, int waittill, char *command, dbref cause, dbref sem, const char *semattr, int until) { BQUE *tmp; int a; ! if (waittill == 0) { if (sem != NOTHING) add_to_sem(sem, -1, semattr); parse_que(player, command, cause); *************** *** 385,394 **** } if (until) { ! tmp->left = wait; } else { ! if (wait >= 0) ! tmp->left = mudtime + wait; else tmp->left = 0; /* semaphore wait without a timeout */ } --- 385,394 ---- } if (until) { ! tmp->left = waittill; } else { ! if (waittill >= 0) ! tmp->left = mudtime + waittill; else tmp->left = 0; /* semaphore wait without a timeout */ } *** 1_8_1p10/src/db.c Sun Nov 26 12:37:11 2006 --- 1_8_2p0/src/db.c Sun Nov 26 13:01:17 2006 *************** *** 83,89 **** void db_read_attrs(FILE * f, dbref i, int c); int get_list(FILE * f, dbref i); void db_free(void); ! static void init_objdata_htab(int size, void(*free_data)(void*)); static void db_write_flags(FILE * f); static dbref db_read_oldstyle(FILE * f); --- 83,89 ---- void db_read_attrs(FILE * f, dbref i, int c); int get_list(FILE * f, dbref i); void db_free(void); ! static void init_objdata_htab(int size, void (*free_data) (void *)); static void db_write_flags(FILE * f); static dbref db_read_oldstyle(FILE * f); *************** *** 1013,1024 **** } for (;;) { ! int c; ! c = fgetc(f); ! ungetc(c, f); ! if (c != ' ') break; found++; --- 1013,1024 ---- } for (;;) { ! int ch; ! ch = fgetc(f); ! ungetc(ch, f); ! if (ch != ' ') break; found++; *************** *** 1041,1050 **** add_lock_raw(creator, i, type, b, flags); } ! if (found != count) do_rawlog(LT_ERR, ! T("WARNING: Actual lock count (%d) different from expected count (%d)."), ! found, count); } --- 1041,1051 ---- add_lock_raw(creator, i, type, b, flags); } ! if (found != count) do_rawlog(LT_ERR, ! T ! ("WARNING: Actual lock count (%d) different from expected count (%d)."), ! found, count); } *************** *** 1228,1234 **** c = fgetc(f); ungetc(c, f); ! if (c != ' ') break; --- 1229,1235 ---- c = fgetc(f); ungetc(c, f); ! if (c != ' ') break; *************** *** 1245,1254 **** atr_new_add(i, name, value, owner, flags, derefs); } ! if (found != count) do_rawlog(LT_ERR, ! T("WARNING: Actual attribute count (%d) different than expected count (%d)."), ! found, count); } --- 1246,1256 ---- atr_new_add(i, name, value, owner, flags, derefs); } ! if (found != count) do_rawlog(LT_ERR, ! T ! ("WARNING: Actual attribute count (%d) different than expected count (%d)."), ! found, count); } *************** *** 1730,1736 **** } static void ! init_objdata_htab(int size, void (*free_data)(void*)) { hash_init(&htab_objdata, size, 4, free_data); hashinit(&htab_objdata_keys, 8, 32); --- 1732,1738 ---- } static void ! init_objdata_htab(int size, void (*free_data) (void *)) { hash_init(&htab_objdata, size, 4, free_data); hashinit(&htab_objdata_keys, 8, 32); *** 1_8_1p10/src/extchat.c Sun Nov 26 12:37:11 2006 --- 1_8_2p0/src/extchat.c Sun Nov 26 13:01:17 2006 *************** *** 155,160 **** --- 155,162 ---- notify(player, T("CHAT: I don't know which channel you mean.")); \ list_partial_matches(player, name, PMATCH_ALL); \ return; \ + case CMATCH_EXACT: \ + case CMATCH_PARTIAL: \ default: \ break; \ } \ *************** *** 3468,3473 **** --- 3470,3477 ---- } } + /* msg is a printf-style format that has exactly and only 2 %s specifiers + in it. */ static void format_channel_broadcast(CHAN *chan, CHANUSER *u, dbref victim, int flags, *** 1_8_1p10/src/flags.c Sun Nov 26 12:37:11 2006 --- 1_8_2p0/src/flags.c Sun Nov 26 13:01:17 2006 *************** *** 661,676 **** flag_add(n, f->name, f); } ! if (found != count) do_rawlog(LT_ERR, ! T("WARNING: Actual number of flags (%d) different than expected count (%d)."), ! found, count); /* Assumes we'll always have at least one alias */ ! db_read_this_labeled_number(in, "flagaliascount", &count); ! for (found = 0 ;;) { int c; ! c = fgetc(in); ungetc(c, in); --- 661,677 ---- flag_add(n, f->name, f); } ! if (found != count) do_rawlog(LT_ERR, ! T ! ("WARNING: Actual number of flags (%d) different than expected count (%d)."), ! found, count); /* Assumes we'll always have at least one alias */ ! db_read_this_labeled_number(in, "flagaliascount", &count); ! for (found = 0;;) { int c; ! c = fgetc(in); ungetc(c, in); *************** *** 682,691 **** if ((f = flag_alias_read(in, alias, n))) flag_add(n, alias, f); } ! if (found != count) do_rawlog(LT_ERR, ! T("WARNING: Actual number of flag aliases (%d) different than expected count (%d)."), ! found, count); flag_add_additional(n); } --- 683,693 ---- if ((f = flag_alias_read(in, alias, n))) flag_add(n, alias, f); } ! if (found != count) do_rawlog(LT_ERR, ! T ! ("WARNING: Actual number of flag aliases (%d) different than expected count (%d)."), ! found, count); flag_add_additional(n); } *** 1_8_1p10/src/function.c Sun Nov 26 12:37:11 2006 --- 1_8_2p0/src/function.c Sun Nov 26 13:01:17 2006 *************** *** 803,809 **** hashadd(name, (void *) func, &htab_function); } ! static void delete_function(void*); /** Initialize the function hash table. */ --- 803,809 ---- hashadd(name, (void *) func, &htab_function); } ! static void delete_function(void *); /** Initialize the function hash table. */ *************** *** 1287,1293 **** { size_t table_index, i; FUN *fp = data; ! table_index = fp->where.offset; mush_free((void *) fp->name, "func_hash.name"); mush_free(fp, "func_hash.FUN"); --- 1287,1293 ---- { size_t table_index, i; FUN *fp = data; ! table_index = fp->where.offset; mush_free((void *) fp->name, "func_hash.name"); mush_free(fp, "func_hash.FUN"); *************** *** 1306,1311 **** --- 1306,1312 ---- } } + /** Restore an overridden built-in function. * \verbatim * If a built-in function is deleted with @function/delete, it can be *** 1_8_1p10/src/fundb.c Sun Nov 26 12:37:11 2006 --- 1_8_2p0/src/fundb.c Sun Nov 26 13:01:17 2006 *************** *** 1989,1995 **** if (nargs > 2) preserve = parse_boolean(args[2]); ! do_link(executor, args[0], args[1], preserve); } /* ARGSUSED */ --- 1989,1995 ---- if (nargs > 2) preserve = parse_boolean(args[2]); ! do_link(executor, args[0], args[1], preserve); } /* ARGSUSED */ *** 1_8_1p10/src/funlist.c Sun Nov 26 12:37:11 2006 --- 1_8_2p0/src/funlist.c Sun Nov 26 13:01:17 2006 *************** *** 2909,2915 **** if (!fetch_ufun_attrib(args[0], executor, &ufun, 1)) return; ! first = 0; while (1) { words = 0; for (n = 0; n < lists; n++) { --- 2909,2915 ---- if (!fetch_ufun_attrib(args[0], executor, &ufun, 1)) return; ! first = 1; while (1) { words = 0; for (n = 0; n < lists; n++) { *** 1_8_1p10/src/help.c Sun Nov 26 12:37:11 2006 --- 1_8_2p0/src/help.c Sun Nov 26 13:01:17 2006 *************** *** 31,38 **** static void do_new_spitfile(dbref player, char *arg1, help_file *help_dat); static const char *string_spitfile(help_file *help_dat, char *arg1); static help_indx *help_find_entry(help_file *help_dat, const char *the_topic); ! static char *list_matching_entries(char *pattern, help_file *help_dat, ! const char *sep); static const char *normalize_entry(help_file *help_dat, char *arg1); static void help_build_index(help_file *h, int restricted); --- 31,38 ---- static void do_new_spitfile(dbref player, char *arg1, help_file *help_dat); static const char *string_spitfile(help_file *help_dat, char *arg1); static help_indx *help_find_entry(help_file *help_dat, const char *the_topic); ! static const char *list_matching_entries(char *pattern, help_file *help_dat, ! const char *sep); static const char *normalize_entry(help_file *help_dat, char *arg1); static void help_build_index(help_file *h, int restricted); *************** *** 542,548 **** } /** Return a string with all help entries that match a pattern */ ! static char * list_matching_entries(char *pattern, help_file *help_dat, const char *sep) { static char buff[BUFFER_LEN]; --- 542,548 ---- } /** Return a string with all help entries that match a pattern */ ! static const char * list_matching_entries(char *pattern, help_file *help_dat, const char *sep) { static char buff[BUFFER_LEN]; *** 1_8_1p10/src/htab.c Sun Nov 26 12:37:11 2006 --- 1_8_2p0/src/htab.c Sun Nov 26 13:01:17 2006 *************** *** 154,160 **** * \param data_size size of an individual datum to store in the table. */ void ! hash_init(HASHTAB *htab, int size, int data_size, void (*free_data)(void*)) { int i; --- 154,160 ---- * \param data_size size of an individual datum to store in the table. */ void ! hash_init(HASHTAB *htab, int size, int data_size, void (*free_data) (void *)) { int i; *** 1_8_1p10/src/look.c Sun Nov 26 12:37:11 2006 --- 1_8_2p0/src/look.c Sun Nov 26 13:01:17 2006 *************** *** 51,56 **** --- 51,58 ---- int skipdef, const char *prefix); static char *parent_chain(dbref player, dbref thing); + static void insert_spaces(int count, int dospace, char *buff, char **bp); + extern PRIV attr_privs_view[]; static void *************** *** 1391,1396 **** --- 1393,1432 ---- extern char escaped_chars[UCHAR_MAX + 1]; + static void + insert_spaces(int count, int dospace, char *buff, char **bp) + { + if (count) { + if (count >= 5) { + safe_str("[space(", buff, bp); + safe_number(count, buff, bp); + safe_str(")]", buff, bp); + } else if (count == 1) { + if (dospace) { + safe_str("%b", buff, bp); + } else { + safe_chr(' ', buff, bp); + } + } else { + /* Take care of the final %b */ + count--; + if (dospace) { + safe_str("%b", buff, bp); + count--; + } + while (count) { + safe_chr(' ', buff, bp); + count--; + if (count) { + count--; + safe_str("%b", buff, bp); + } + } + safe_str("%b", buff, bp); + } + } + } + char * decompose_str(char *what) { *************** *** 1399,1404 **** --- 1435,1441 ---- char ansi_letter = '\0'; int len; int dospace; + int spaces; int flag_depth, ansi_depth; int digits; *************** *** 1414,1443 **** #ifdef NEVER /* Put a \ at the beginning if it won't already be put there, * unless it's a space, which would require %b, %r, or %t anyway */ ! if (!escaped_chars[(unsigned int) *what] && !isspace((unsigned char)*what)) { safe_chr('\\', value, &s); } #endif dospace = 1; for (; *ptr; ptr++) { switch (*ptr) { case ' ': ! if (dospace) { ! safe_str("%b", value, &s); ! } else { ! safe_chr(' ', value, &s); ! } ! dospace = !dospace; break; case '\n': dospace = 0; safe_str("%r", value, &s); break; case '\t': dospace = 0; safe_str("%t", value, &s); break; case ESC_CHAR: ptr++; if (!*ptr) { ptr--; --- 1451,1483 ---- #ifdef NEVER /* Put a \ at the beginning if it won't already be put there, * unless it's a space, which would require %b, %r, or %t anyway */ ! if (!escaped_chars[(unsigned int) *what] && !isspace((unsigned char) *what)) { safe_chr('\\', value, &s); } #endif + dospace = 1; + spaces = 0; for (; *ptr; ptr++) { switch (*ptr) { case ' ': ! spaces++; break; case '\n': + insert_spaces(spaces, dospace, value, &s); + spaces = 0; dospace = 0; safe_str("%r", value, &s); break; case '\t': + insert_spaces(spaces, dospace, value, &s); + spaces = 0; dospace = 0; safe_str("%t", value, &s); break; case ESC_CHAR: + insert_spaces(spaces, dospace, value, &s); + spaces = 0; ptr++; if (!*ptr) { ptr--; *************** *** 1467,1473 **** } else if (digits >= 2) { digits = 3; /* If we encounter a 3-number code, break out. */ break; ! } else if (isdigit(*ptr)) { digits++; /* Count the numbers we encounter. */ } else { digits = 3; --- 1507,1513 ---- } else if (digits >= 2) { digits = 3; /* If we encounter a 3-number code, break out. */ break; ! } else if (isdigit((unsigned char) *ptr)) { digits++; /* Count the numbers we encounter. */ } else { digits = 3; *************** *** 1510,1520 **** dospace = 1; /* code for decompiling ansi */ ! for (; isdigit(*ptr) || *ptr == ';'; ptr++) { if (*ptr == ';') /* Yes, it is necessary to do it this way. */ ptr++; /* Break if there is an 'm' here. */ ! if (!*ptr || !isdigit(*ptr)) break; /* Check to see if the code is one character long. */ if (*(ptr + 1) == ';' || *(ptr + 1) == 'm') { --- 1550,1560 ---- dospace = 1; /* code for decompiling ansi */ ! for (; isdigit((unsigned char) *ptr) || *ptr == ';'; ptr++) { if (*ptr == ';') /* Yes, it is necessary to do it this way. */ ptr++; /* Break if there is an 'm' here. */ ! if (!*ptr || !isdigit((unsigned char) *ptr)) break; /* Check to see if the code is one character long. */ if (*(ptr + 1) == ';' || *(ptr + 1) == 'm') { *************** *** 1587,1592 **** --- 1627,1634 ---- } break; default: + insert_spaces(spaces, dospace, value, &s); + spaces = 0; if (escaped_chars[(unsigned int) *ptr]) { safe_chr('\\', value, &s); } *************** *** 1595,1604 **** } } /* Now check the last space. */ ! if (*(s - 1) == ' ') { ! s -= 1; ! safe_str("%b", value, &s); ! } for (; ansi_depth > 0; ansi_depth--) { safe_str(")]", value, &s); } --- 1637,1644 ---- } } /* Now check the last space. */ ! insert_spaces(spaces, dospace, value, &s); ! spaces = 0; for (; ansi_depth > 0; ansi_depth--) { safe_str(")]", value, &s); } *** 1_8_1p10/src/plyrlist.c Sun Nov 26 12:37:11 2006 --- 1_8_2p0/src/plyrlist.c Sun Nov 26 13:01:17 2006 *************** *** 28,38 **** static int hft_initialized = 0; static void init_hft(void); ! static void delete_dbref(void*); /** Free a player_dbref struct. */ static void ! delete_dbref(void *data) { mush_free(data, "plyrlist.entry"); } --- 28,38 ---- static int hft_initialized = 0; static void init_hft(void); ! static void delete_dbref(void *); /** Free a player_dbref struct. */ static void ! delete_dbref(void *data) { mush_free(data, "plyrlist.entry"); } *************** *** 51,57 **** { if (hft_initialized) hashflush(&htab_player_list, 256); ! else init_hft(); } --- 51,57 ---- { if (hft_initialized) hashflush(&htab_player_list, 256); ! else init_hft(); } *** 1_8_1p10/src/sig.c Sun Nov 26 12:37:11 2006 --- 1_8_2p0/src/sig.c Sun Nov 26 13:01:17 2006 *************** *** 125,131 **** sigfillset(&mask); sigprocmask(SIG_BLOCK, &mask, NULL); #elif defined(WIN32) ! /* The only signals Windows knows about */ signal(SIGABRT, SIG_IGN); signal(SIGFPE, SIG_IGN); signal(SIGILL, SIG_IGN); --- 125,131 ---- sigfillset(&mask); sigprocmask(SIG_BLOCK, &mask, NULL); #elif defined(WIN32) ! /* The only signals Windows knows about */ signal(SIGABRT, SIG_IGN); signal(SIGFPE, SIG_IGN); signal(SIGILL, SIG_IGN); *** 1_8_1p10/src/wild.c Sun Nov 26 12:37:11 2006 --- 1_8_2p0/src/wild.c Sun Nov 26 13:01:17 2006 *************** *** 587,593 **** /** Either an order comparison or a wildcard match with no memory. * - * This routine will cause crashes if fed NULLs instead of strings. * * \param s pattern to match against. * \param d string to check. --- 587,592 ---- *************** *** 598,619 **** int local_wild_match_case(const char *RESTRICT s, const char *RESTRICT d, int cs) { ! switch (*s) { ! case '>': ! s++; ! if (is_number(s) && is_number(d)) ! return (parse_number(s) < parse_number(d)); ! else ! return (strcoll(s, d) < 0); ! case '<': ! s++; ! if (is_number(s) && is_number(d)) ! return (parse_number(s) > parse_number(d)); ! else ! return (strcoll(s, d) > 0); ! } ! ! return quick_wild_new(s, d, cs); } /** Does a string contain a wildcard character (* or ?)? --- 597,621 ---- int local_wild_match_case(const char *RESTRICT s, const char *RESTRICT d, int cs) { ! if (s && *s) { ! switch (*s) { ! case '>': ! s++; ! if (is_number(s) && is_number(d)) ! return (parse_number(s) < parse_number(d)); ! else ! return (strcoll(s, d) < 0); ! case '<': ! s++; ! if (is_number(s) && is_number(d)) ! return (parse_number(s) > parse_number(d)); ! else ! return (strcoll(s, d) > 0); ! default: ! return quick_wild_new(s, d, cs); ! } ! } else ! return 0; } /** Does a string contain a wildcard character (* or ?)? *** 1_8_1p10/test/testpage.pl Sun Nov 26 12:37:12 2006 --- 1_8_2p0/test/testpage.pl Sun Nov 26 13:01:17 2006 *************** *** 5,8 **** $mush = PennMUSH->new(); $god = $mush->loginGod(); ! test('page.1', $god, 'p/noeval %# \= =',"I can't find"); # Former crasher --- 5,8 ---- $mush = PennMUSH->new(); $god = $mush->loginGod(); ! test('page.1', $god, 'page/noeval %# \= =',"I can't find"); # Former crasher *** 1_8_1p10/utils/mkcmds.sh.SH Sun Nov 26 12:37:12 2006 --- 1_8_2p0/utils/mkcmds.sh.SH Sun Nov 26 13:01:17 2006 *************** *** 131,140 **** mv -f ../hdrs/temp.$$.h ../hdrs/cmds.h fi - if [ -d "../win32" ]; then - cp ../hdrs/cmds.h ../win32/cmds.h - fi - ;; functions) --- 131,136 ---- *************** *** 152,161 **** else mv -f ../hdrs/temp.$$.h ../hdrs/funs.h fi - - if [ -d "../win32" ]; then - cp ../hdrs/funs.h ../win32/funs.h - fi ;; esac !NO!SUBS! --- 148,153 ---- *** 1_8_1p10/win32/README.txt Sun Nov 26 12:37:12 2006 --- 1_8_2p0/win32/README.txt Sun Nov 26 13:01:17 2006 *************** *** 1,35 **** ! How to compile PennMUSH 1.7.x under Windows (MSVC++/MS VS.NET) ---------------------------------------------- by Nick Gammon and Javelin and Luuk de Waard ! Last update: Monday, 1 November 2002 1. From the top-level pennmush directory, ! Copy the following files to: ! win32/config.h config.h ! win32/confmagic.h confmagic.h ! win32/options.h options.h ! win32/cmds.h hdrs/cmds.h ! win32/funs.h hdrs/funs.h ! win32/patches.h hdrs/patches.h ! src/local.dst src/local.c ! src/funlocal.dst src/funlocal.c ! src/cmdlocal.dst src/cmdlocal.c ! src/flaglocal.dst src/flaglocal.c ! game/mushcnf.dst game/mush.cnf ! ! Project files for MSVC++: ! win32/pennmush.dsw pennmush.dsw ! win32/pennmush.dsp pennmush.dsp ! ! Project files for MS VS.NET: ! win32/pennmush.vcproj pennmush.vcproj ! win32/pennmush.sln pennmush.sln ! ! (If you've already got src/*local.c files that you've modified, ! you'll just have to make sure that there are no new functions ! in src/*local.dst that're missing in your src/*local.c files) 2. Use supplied project files in the top-level pennmush directory. --- 1,46 ---- ! How to compile PennMUSH 1.8.x under Windows (MSVC++/MS VS.NET) ---------------------------------------------- by Nick Gammon and Javelin and Luuk de Waard + Updated by Ervin Hearn ! Last update: Saturday, 11 November 2006 1. From the top-level pennmush directory, ! Copy the following files to: ! For MSVC++ 6: ! win32/msvc6/pennmush.dsw pennmush.dsw ! win32/msvc6/pennmush.dsp pennmush.dsp ! win32/config.h config.h ! win32/confmagic.h confmagic.h ! win32/options.h options.h ! win32/cmds.h hdrs/cmds.h ! win32/funs.h hdrs/funs.h ! win32/patches.h hdrs/patches.h ! src/cmdlocal.dst src/cmdlocal.c ! src/flaglocal.dst src/flaglocal.c ! src/funlocal.dst src/funlocal.c ! src/local.dst src/local.c ! game/mushcnf.dst game/mush.cnf ! game/aliascnf.dst game/alias.cnf ! game/namescnf.dst game/names.cnf ! game/restrictcnf.dst game/restrict.cnf ! ! ! For MS VS.NET: ! win32/msvc.net/pennmush.vcproj pennmush.vcproj ! win32/msvc.net/pennmush.sln pennmush.sln ! ! VS.NET has been configured to copy the .dst files automatically if they ! do not exist, and the header files each time the project is compiled. This ! can be disabled or changed by going to Project -> pennmush Properties -> ! Configuration Properties -> Build Events -> Pre-Build Event and Post-Build ! Event. ! ! ! If you've already got src/*local.c files that you've modified, ! you'll just have to make sure that there are no new functions ! in src/*local.dst that are missing in your src/*local.c files 2. Use supplied project files in the top-level pennmush directory. *************** *** 37,39 **** --- 48,57 ---- 4. From the top-level pennmush directory, the binary is: game/pennmush.exe + *** Note: Windows defaults to a stack size of 1 MB. The supplied project files + set the stack size to 8MB to match the default environment on Linux systems and + resolve several issues of early code termination on Windows. This setting can + also be changed on the precompiled executable by using the 'editbin.exe' tool + supplied by Microsoft in the Visual Studio installation, including the free + Express version. To set the stack size (in KB) run the following from a + command prompt in the game directory: editbin /STACK: pennmush.exe *** 1_8_1p10/win32/README_MySQL.txt Sun Nov 26 12:37:12 2006 --- 1_8_2p0/win32/README_MySQL.txt Sun Nov 26 13:01:17 2006 *************** *** 1,23 **** ! Building PennMUSH 1.7.x under Windows with MySQL ------------------------------------------------ ! by Ervin Hearn ! Last update: Saturday, 26 June 2004 ! Current Version of MySQL: 4.0.20a ! These directions are oriented toward those using MSVC++ or MinGW ! Development Studio. Those using MinGW+MSys should install MySQL ! just as if they were doing so on Linux. 1. Download and install MySQL for Windows from http://www.mysql.org/ 2. Make sure that the contents of mysql/lib/opt and mysql/include are located within your build environment's path. ! ! I recommend creating symlinks/shortcuts with the name mysql in your ! compiler's lib and include directories which point to the mysql install ! locations. A representation of this is: ! C:\Program Files\Microsoft Visual Studio\VC98\lib\mysql -> C:\mysql\lib\opt C:\Program Files\Microsoft Visual Studio\VC98\include\mysql -> C:\mysql\include --- 1,23 ---- ! Building PennMUSH 1.8.x under Windows with MySQL ------------------------------------------------ ! by Ervin Hearn ! Last update: Saturday, 11 November 2006 ! Current Version of MySQL: 5.0.27 ! These directions are oriented toward those using MSVC++ or another Graphical ! Windows IDE. Those using MinGW+MSys should install MySQL just as if they were ! doing so on Linux. 1. Download and install MySQL for Windows from http://www.mysql.org/ 2. Make sure that the contents of mysql/lib/opt and mysql/include are located within your build environment's path. ! ! I recommend copying the contents of the directories listed below into your ! compiler's lib and include directories under directories named 'mysql'. A ! representation of this is: ! C:\Program Files\Microsoft Visual Studio\VC98\lib\mysql -> C:\mysql\lib\opt C:\Program Files\Microsoft Visual Studio\VC98\include\mysql -> C:\mysql\include *** 1_8_1p10/win32/cmds.h Sun Nov 26 12:37:12 2006 --- 1_8_2p0/win32/cmds.h Sun Nov 26 13:01:17 2006 *************** *** 134,141 **** COMMAND_PROTO(cmd_version); COMMAND_PROTO(cmd_wait); COMMAND_PROTO(cmd_wall); - COMMAND_PROTO(cmd_warn_on_missing); COMMAND_PROTO(cmd_warnings); COMMAND_PROTO(cmd_wcheck); COMMAND_PROTO(cmd_whereis); COMMAND_PROTO(cmd_whisper); --- 134,141 ---- COMMAND_PROTO(cmd_version); COMMAND_PROTO(cmd_wait); COMMAND_PROTO(cmd_wall); COMMAND_PROTO(cmd_warnings); + COMMAND_PROTO(cmd_warn_on_missing); COMMAND_PROTO(cmd_wcheck); COMMAND_PROTO(cmd_whereis); COMMAND_PROTO(cmd_whisper); *** 1_8_1p10/win32/msvc.net/pennmush.sln Sun Nov 26 12:37:12 2006 --- 1_8_2p0/win32/msvc.net/pennmush.sln Sun Nov 26 13:01:17 2006 *************** *** 1,21 **** ! Microsoft Visual Studio Solution File, Format Version 7.00 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "pennmush", "pennmush.vcproj", "{AAEA21B3-8882-4126-AD7D-F45587CA777F}" EndProject Global ! GlobalSection(SolutionConfiguration) = preSolution ! ConfigName.0 = Debug ! ConfigName.1 = Release EndGlobalSection ! GlobalSection(ProjectDependencies) = postSolution EndGlobalSection ! GlobalSection(ProjectConfiguration) = postSolution ! {AAEA21B3-8882-4126-AD7D-F45587CA777F}.Debug.ActiveCfg = Debug|Win32 ! {AAEA21B3-8882-4126-AD7D-F45587CA777F}.Debug.Build.0 = Debug|Win32 ! {AAEA21B3-8882-4126-AD7D-F45587CA777F}.Release.ActiveCfg = Release|Win32 ! {AAEA21B3-8882-4126-AD7D-F45587CA777F}.Release.Build.0 = Release|Win32 ! EndGlobalSection ! GlobalSection(ExtensibilityGlobals) = postSolution ! EndGlobalSection ! GlobalSection(ExtensibilityAddIns) = postSolution EndGlobalSection EndGlobal --- 1,19 ---- ! Microsoft Visual Studio Solution File, Format Version 9.00 ! # Visual C++ Express 2005 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "pennmush", "pennmush.vcproj", "{AAEA21B3-8882-4126-AD7D-F45587CA777F}" EndProject Global ! GlobalSection(SolutionConfigurationPlatforms) = preSolution ! Debug|Win32 = Debug|Win32 ! Release|Win32 = Release|Win32 EndGlobalSection ! GlobalSection(ProjectConfigurationPlatforms) = postSolution ! {AAEA21B3-8882-4126-AD7D-F45587CA777F}.Debug|Win32.ActiveCfg = Debug|Win32 ! {AAEA21B3-8882-4126-AD7D-F45587CA777F}.Debug|Win32.Build.0 = Debug|Win32 ! {AAEA21B3-8882-4126-AD7D-F45587CA777F}.Release|Win32.ActiveCfg = Release|Win32 ! {AAEA21B3-8882-4126-AD7D-F45587CA777F}.Release|Win32.Build.0 = Release|Win32 EndGlobalSection ! GlobalSection(SolutionProperties) = preSolution ! HideSolutionNode = FALSE EndGlobalSection EndGlobal *** 1_8_1p10/win32/msvc.net/pennmush.vcproj Sun Nov 26 12:37:12 2006 --- 1_8_2p0/win32/msvc.net/pennmush.vcproj Sun Nov 26 13:01:17 2006 *************** *** 1,498 **** ! --- 1,722 ---- ! + + ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! + + ! ! ! ! ! ! *** 1_8_1p10/win32/msvc6/pennmush.dsp Sun Nov 26 12:37:12 2006 --- 1_8_2p0/win32/msvc6/pennmush.dsp Sun Nov 26 13:01:17 2006 *************** *** 59,103 **** # ADD BSC32 /nologo LINK32=link.exe # ADD BASE LINK32 kernel32.lib gdi32.lib winspool.lib comdlg32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib user32.lib winmm.lib wsock32.lib ssleay32.lib libeay32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept ! # ADD LINK32 kernel32.lib gdi32.lib winspool.lib comdlg32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib user32.lib winmm.lib wsock32.lib ssleay32.lib libeay32.lib libmysql.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept ! # Begin Custom Build - Copying Necessary Files ! ProjDir=. ! InputPath=.\game\pennmush.exe ! SOURCE="$(InputPath)" ! ! BuildCmds= \ ! IF NOT EXIST $(ProjDir)\src\cmdlocal.c copy $(ProjDir)\src\cmdlocal.dst $(ProjDir)\src\cmdlocal.c \ ! IF NOT EXIST $(ProjDir)\src\flaglocal.c copy $(ProjDir)\src\flaglocal.dst $(ProjDir)\src\flaglocal.c \ ! IF NOT EXIST $(ProjDir)\src\funlocal.c copy $(ProjDir)\src\funlocal.dst $(ProjDir)\src\funlocal.c \ ! IF NOT EXIST $(ProjDir)\src\local.c copy $(ProjDir)\src\local.dst $(ProjDir)\src\local.c \ ! IF NOT EXIST $(ProjDir)\game\mush.cnf echo Don't forget to customize mush.cnf! \ ! IF NOT EXIST $(ProjDir)\game\mush.cnf copy $(ProjDir)\game\mushcnf.dst $(ProjDir)\game\mush.cnf \ ! copy $(ProjDir)\win32\cmds.h $(ProjDir)\hdrs\cmds.h \ ! copy $(ProjDir)\win32\funs.h $(ProjDir)\hdrs\funs.h \ ! echo If any *local.c files failed to build, run build again. \ ! ! ! "$(ProjDir)\src\cmdlocal.c" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" ! $(BuildCmds) ! ! "$(ProjDir)\src\flaglocal.c" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" ! $(BuildCmds) ! ! "$(ProjDir)\src\funlocal.c" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" ! $(BuildCmds) ! ! "$(ProjDir)\src\local.c" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" ! $(BuildCmds) ! ! "$(ProjDir)\game\mush.cnf" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" ! $(BuildCmds) ! ! "$(ProjDir)\hdrs\cmds.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" ! $(BuildCmds) ! ! "$(ProjDir)\hdrs\funs.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" ! $(BuildCmds) ! # End Custom Build !ELSEIF "$(CFG)" == "pennmush - Win32 MySQL SSL Release" --- 59,65 ---- # ADD BSC32 /nologo LINK32=link.exe # ADD BASE LINK32 kernel32.lib gdi32.lib winspool.lib comdlg32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib user32.lib winmm.lib wsock32.lib ssleay32.lib libeay32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept ! # ADD LINK32 kernel32.lib gdi32.lib winspool.lib comdlg32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib user32.lib winmm.lib wsock32.lib ssleay32.lib libeay32.lib libmysql.lib /nologo /stack:0x1fec /subsystem:console /debug /machine:I386 /pdbtype:sept !ELSEIF "$(CFG)" == "pennmush - Win32 MySQL SSL Release" *************** *** 123,168 **** LINK32=link.exe # ADD BASE LINK32 user32.lib winmm.lib wsock32.lib ssleay32.lib libeay32.lib /nologo /subsystem:console /pdb:"pennmush.pdb" /machine:I386 # SUBTRACT BASE LINK32 /pdb:none ! # ADD LINK32 user32.lib winmm.lib wsock32.lib ssleay32.lib libeay32.lib libmysql.lib /nologo /subsystem:console /pdb:"pennmush.pdb" /machine:I386 # SUBTRACT LINK32 /pdb:none - # Begin Custom Build - Copying Necessary Files - ProjDir=. - InputPath=.\game\pennmush.exe - SOURCE="$(InputPath)" - - BuildCmds= \ - IF NOT EXIST $(ProjDir)\src\cmdlocal.c copy $(ProjDir)\src\cmdlocal.dst $(ProjDir)\src\cmdlocal.c \ - IF NOT EXIST $(ProjDir)\src\flaglocal.c copy $(ProjDir)\src\flaglocal.dst $(ProjDir)\src\flaglocal.c \ - IF NOT EXIST $(ProjDir)\src\funlocal.c copy $(ProjDir)\src\funlocal.dst $(ProjDir)\src\funlocal.c \ - IF NOT EXIST $(ProjDir)\src\local.c copy $(ProjDir)\src\local.dst $(ProjDir)\src\local.c \ - IF NOT EXIST $(ProjDir)\game\mush.cnf echo Don't forget to customize mush.cnf! \ - IF NOT EXIST $(ProjDir)\game\mush.cnf copy $(ProjDir)\game\mushcnf.dst $(ProjDir)\game\mush.cnf \ - copy $(ProjDir)\win32\cmds.h $(ProjDir)\hdrs\cmds.h \ - copy $(ProjDir)\win32\funs.h $(ProjDir)\hdrs\funs.h \ - echo If any *local.c files failed to build, run build again. \ - - - "$(ProjDir)\src\cmdlocal.c" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" - $(BuildCmds) - - "$(ProjDir)\src\flaglocal.c" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" - $(BuildCmds) - - "$(ProjDir)\src\funlocal.c" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" - $(BuildCmds) - - "$(ProjDir)\src\local.c" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" - $(BuildCmds) - - "$(ProjDir)\game\mush.cnf" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" - $(BuildCmds) - - "$(ProjDir)\hdrs\cmds.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" - $(BuildCmds) - - "$(ProjDir)\hdrs\funs.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" - $(BuildCmds) - # End Custom Build !ELSEIF "$(CFG)" == "pennmush - Win32 MySQL Debug" --- 85,92 ---- LINK32=link.exe # ADD BASE LINK32 user32.lib winmm.lib wsock32.lib ssleay32.lib libeay32.lib /nologo /subsystem:console /pdb:"pennmush.pdb" /machine:I386 # SUBTRACT BASE LINK32 /pdb:none ! # ADD LINK32 user32.lib winmm.lib wsock32.lib ssleay32.lib libeay32.lib libmysql.lib /nologo /stack:0x1fec /subsystem:console /pdb:"pennmush.pdb" /machine:I386 # SUBTRACT LINK32 /pdb:none !ELSEIF "$(CFG)" == "pennmush - Win32 MySQL Debug" *************** *** 189,233 **** # ADD BSC32 /nologo LINK32=link.exe # ADD BASE LINK32 kernel32.lib gdi32.lib winspool.lib comdlg32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib user32.lib winmm.lib wsock32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept ! # ADD LINK32 kernel32.lib gdi32.lib winspool.lib comdlg32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib user32.lib winmm.lib wsock32.lib libmysql.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept ! # Begin Custom Build - Copying Necessary Files ! ProjDir=. ! InputPath=.\game\pennmush.exe ! SOURCE="$(InputPath)" ! ! BuildCmds= \ ! IF NOT EXIST $(ProjDir)\src\cmdlocal.c copy $(ProjDir)\src\cmdlocal.dst $(ProjDir)\src\cmdlocal.c \ ! IF NOT EXIST $(ProjDir)\src\flaglocal.c copy $(ProjDir)\src\flaglocal.dst $(ProjDir)\src\flaglocal.c \ ! IF NOT EXIST $(ProjDir)\src\funlocal.c copy $(ProjDir)\src\funlocal.dst $(ProjDir)\src\funlocal.c \ ! IF NOT EXIST $(ProjDir)\src\local.c copy $(ProjDir)\src\local.dst $(ProjDir)\src\local.c \ ! IF NOT EXIST $(ProjDir)\game\mush.cnf echo Don't forget to customize mush.cnf! \ ! IF NOT EXIST $(ProjDir)\game\mush.cnf copy $(ProjDir)\game\mushcnf.dst $(ProjDir)\game\mush.cnf \ ! copy $(ProjDir)\win32\cmds.h $(ProjDir)\hdrs\cmds.h \ ! copy $(ProjDir)\win32\funs.h $(ProjDir)\hdrs\funs.h \ ! echo If any *local.c files failed to build, run build again. \ ! ! ! "$(ProjDir)\src\cmdlocal.c" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" ! $(BuildCmds) ! ! "$(ProjDir)\src\flaglocal.c" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" ! $(BuildCmds) ! ! "$(ProjDir)\src\funlocal.c" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" ! $(BuildCmds) ! ! "$(ProjDir)\src\local.c" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" ! $(BuildCmds) ! ! "$(ProjDir)\game\mush.cnf" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" ! $(BuildCmds) ! ! "$(ProjDir)\hdrs\cmds.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" ! $(BuildCmds) ! ! "$(ProjDir)\hdrs\funs.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" ! $(BuildCmds) ! # End Custom Build !ELSEIF "$(CFG)" == "pennmush - Win32 MySQL Release" --- 113,119 ---- # ADD BSC32 /nologo LINK32=link.exe # ADD BASE LINK32 kernel32.lib gdi32.lib winspool.lib comdlg32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib user32.lib winmm.lib wsock32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept ! # ADD LINK32 kernel32.lib gdi32.lib winspool.lib comdlg32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib user32.lib winmm.lib wsock32.lib libmysql.lib /nologo /stack:0x1fec /subsystem:console /debug /machine:I386 /pdbtype:sept !ELSEIF "$(CFG)" == "pennmush - Win32 MySQL Release" *************** *** 252,296 **** # ADD BSC32 /nologo LINK32=link.exe # ADD BASE LINK32 user32.lib winmm.lib wsock32.lib /nologo /subsystem:console /machine:I386 ! # ADD LINK32 user32.lib winmm.lib wsock32.lib libmysql.lib /nologo /subsystem:console /machine:I386 ! # Begin Custom Build - Copying Necessary Files ! ProjDir=. ! InputPath=.\game\pennmush.exe ! SOURCE="$(InputPath)" ! ! BuildCmds= \ ! IF NOT EXIST $(ProjDir)\src\cmdlocal.c copy $(ProjDir)\src\cmdlocal.dst $(ProjDir)\src\cmdlocal.c \ ! IF NOT EXIST $(ProjDir)\src\flaglocal.c copy $(ProjDir)\src\flaglocal.dst $(ProjDir)\src\flaglocal.c \ ! IF NOT EXIST $(ProjDir)\src\funlocal.c copy $(ProjDir)\src\funlocal.dst $(ProjDir)\src\funlocal.c \ ! IF NOT EXIST $(ProjDir)\src\local.c copy $(ProjDir)\src\local.dst $(ProjDir)\src\local.c \ ! IF NOT EXIST $(ProjDir)\game\mush.cnf echo Don't forget to customize mush.cnf! \ ! IF NOT EXIST $(ProjDir)\game\mush.cnf copy $(ProjDir)\game\mushcnf.dst $(ProjDir)\game\mush.cnf \ ! copy $(ProjDir)\win32\cmds.h $(ProjDir)\hdrs\cmds.h \ ! copy $(ProjDir)\win32\funs.h $(ProjDir)\hdrs\funs.h \ ! echo If any *local.c files failed to build, run build again. \ ! ! ! "$(ProjDir)\src\cmdlocal.c" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" ! $(BuildCmds) ! ! "$(ProjDir)\src\flaglocal.c" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" ! $(BuildCmds) ! ! "$(ProjDir)\src\funlocal.c" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" ! $(BuildCmds) ! ! "$(ProjDir)\src\local.c" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" ! $(BuildCmds) ! ! "$(ProjDir)\game\mush.cnf" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" ! $(BuildCmds) ! ! "$(ProjDir)\hdrs\cmds.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" ! $(BuildCmds) ! ! "$(ProjDir)\hdrs\funs.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" ! $(BuildCmds) ! # End Custom Build !ELSEIF "$(CFG)" == "pennmush - Win32 SSL Debug" --- 138,144 ---- # ADD BSC32 /nologo LINK32=link.exe # ADD BASE LINK32 user32.lib winmm.lib wsock32.lib /nologo /subsystem:console /machine:I386 ! # ADD LINK32 user32.lib winmm.lib wsock32.lib libmysql.lib /nologo /stack:0x1fec /subsystem:console /machine:I386 !ELSEIF "$(CFG)" == "pennmush - Win32 SSL Debug" *************** *** 317,361 **** # ADD BSC32 /nologo LINK32=link.exe # ADD BASE LINK32 kernel32.lib gdi32.lib winspool.lib comdlg32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib user32.lib winmm.lib wsock32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept ! # ADD LINK32 kernel32.lib gdi32.lib winspool.lib comdlg32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib user32.lib winmm.lib wsock32.lib ssleay32.lib libeay32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept ! # Begin Custom Build - Copying Necessary Files ! ProjDir=. ! InputPath=.\game\pennmush.exe ! SOURCE="$(InputPath)" ! ! BuildCmds= \ ! IF NOT EXIST $(ProjDir)\src\cmdlocal.c copy $(ProjDir)\src\cmdlocal.dst $(ProjDir)\src\cmdlocal.c \ ! IF NOT EXIST $(ProjDir)\src\flaglocal.c copy $(ProjDir)\src\flaglocal.dst $(ProjDir)\src\flaglocal.c \ ! IF NOT EXIST $(ProjDir)\src\funlocal.c copy $(ProjDir)\src\funlocal.dst $(ProjDir)\src\funlocal.c \ ! IF NOT EXIST $(ProjDir)\src\local.c copy $(ProjDir)\src\local.dst $(ProjDir)\src\local.c \ ! IF NOT EXIST $(ProjDir)\game\mush.cnf echo Don't forget to customize mush.cnf! \ ! IF NOT EXIST $(ProjDir)\game\mush.cnf copy $(ProjDir)\game\mushcnf.dst $(ProjDir)\game\mush.cnf \ ! copy $(ProjDir)\win32\cmds.h $(ProjDir)\hdrs\cmds.h \ ! copy $(ProjDir)\win32\funs.h $(ProjDir)\hdrs\funs.h \ ! echo If any *local.c files failed to build, run build again. \ ! ! ! "$(ProjDir)\src\cmdlocal.c" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" ! $(BuildCmds) ! ! "$(ProjDir)\src\flaglocal.c" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" ! $(BuildCmds) ! ! "$(ProjDir)\src\funlocal.c" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" ! $(BuildCmds) ! ! "$(ProjDir)\src\local.c" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" ! $(BuildCmds) ! ! "$(ProjDir)\game\mush.cnf" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" ! $(BuildCmds) ! ! "$(ProjDir)\hdrs\cmds.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" ! $(BuildCmds) ! ! "$(ProjDir)\hdrs\funs.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" ! $(BuildCmds) ! # End Custom Build !ELSEIF "$(CFG)" == "pennmush - Win32 SSL Release" --- 165,171 ---- # ADD BSC32 /nologo LINK32=link.exe # ADD BASE LINK32 kernel32.lib gdi32.lib winspool.lib comdlg32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib user32.lib winmm.lib wsock32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept ! # ADD LINK32 kernel32.lib gdi32.lib winspool.lib comdlg32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib user32.lib winmm.lib wsock32.lib ssleay32.lib libeay32.lib /nologo /stack:0x1fec /subsystem:console /debug /machine:I386 /pdbtype:sept !ELSEIF "$(CFG)" == "pennmush - Win32 SSL Release" *************** *** 380,425 **** # ADD BSC32 /nologo LINK32=link.exe # ADD BASE LINK32 user32.lib winmm.lib wsock32.lib /nologo /subsystem:console /machine:I386 ! # ADD LINK32 user32.lib winmm.lib wsock32.lib ssleay32.lib libeay32.lib /nologo /subsystem:console /pdb:"pennmush.pdb" /machine:I386 # SUBTRACT LINK32 /pdb:none - # Begin Custom Build - Copying Necessary Files - ProjDir=. - InputPath=.\game\pennmush.exe - SOURCE="$(InputPath)" - - BuildCmds= \ - IF NOT EXIST $(ProjDir)\src\cmdlocal.c copy $(ProjDir)\src\cmdlocal.dst $(ProjDir)\src\cmdlocal.c \ - IF NOT EXIST $(ProjDir)\src\flaglocal.c copy $(ProjDir)\src\flaglocal.dst $(ProjDir)\src\flaglocal.c \ - IF NOT EXIST $(ProjDir)\src\funlocal.c copy $(ProjDir)\src\funlocal.dst $(ProjDir)\src\funlocal.c \ - IF NOT EXIST $(ProjDir)\src\local.c copy $(ProjDir)\src\local.dst $(ProjDir)\src\local.c \ - IF NOT EXIST $(ProjDir)\game\mush.cnf echo Don't forget to customize mush.cnf! \ - IF NOT EXIST $(ProjDir)\game\mush.cnf copy $(ProjDir)\game\mushcnf.dst $(ProjDir)\game\mush.cnf \ - copy $(ProjDir)\win32\cmds.h $(ProjDir)\hdrs\cmds.h \ - copy $(ProjDir)\win32\funs.h $(ProjDir)\hdrs\funs.h \ - echo If any *local.c files failed to build, run build again. \ - - - "$(ProjDir)\src\cmdlocal.c" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" - $(BuildCmds) - - "$(ProjDir)\src\flaglocal.c" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" - $(BuildCmds) - - "$(ProjDir)\src\funlocal.c" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" - $(BuildCmds) - - "$(ProjDir)\src\local.c" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" - $(BuildCmds) - - "$(ProjDir)\game\mush.cnf" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" - $(BuildCmds) - - "$(ProjDir)\hdrs\cmds.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" - $(BuildCmds) - - "$(ProjDir)\hdrs\funs.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" - $(BuildCmds) - # End Custom Build !ELSEIF "$(CFG)" == "pennmush - Win32 Debug" --- 190,197 ---- # ADD BSC32 /nologo LINK32=link.exe # ADD BASE LINK32 user32.lib winmm.lib wsock32.lib /nologo /subsystem:console /machine:I386 ! # ADD LINK32 user32.lib winmm.lib wsock32.lib ssleay32.lib libeay32.lib /nologo /stack:0x1fec /subsystem:console /pdb:"pennmush.pdb" /machine:I386 # SUBTRACT LINK32 /pdb:none !ELSEIF "$(CFG)" == "pennmush - Win32 Debug" *************** *** 444,488 **** # ADD BSC32 /nologo LINK32=link.exe # ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept ! # ADD LINK32 kernel32.lib gdi32.lib winspool.lib comdlg32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib user32.lib winmm.lib wsock32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept ! # Begin Custom Build - Copying Necessary Files ! ProjDir=. ! InputPath=.\game\pennmush.exe ! SOURCE="$(InputPath)" ! ! BuildCmds= \ ! IF NOT EXIST $(ProjDir)\src\cmdlocal.c copy $(ProjDir)\src\cmdlocal.dst $(ProjDir)\src\cmdlocal.c \ ! IF NOT EXIST $(ProjDir)\src\flaglocal.c copy $(ProjDir)\src\flaglocal.dst $(ProjDir)\src\flaglocal.c \ ! IF NOT EXIST $(ProjDir)\src\funlocal.c copy $(ProjDir)\src\funlocal.dst $(ProjDir)\src\funlocal.c \ ! IF NOT EXIST $(ProjDir)\src\local.c copy $(ProjDir)\src\local.dst $(ProjDir)\src\local.c \ ! IF NOT EXIST $(ProjDir)\game\mush.cnf echo Don't forget to customize mush.cnf! \ ! IF NOT EXIST $(ProjDir)\game\mush.cnf copy $(ProjDir)\game\mushcnf.dst $(ProjDir)\game\mush.cnf \ ! copy $(ProjDir)\win32\cmds.h $(ProjDir)\hdrs\cmds.h \ ! copy $(ProjDir)\win32\funs.h $(ProjDir)\hdrs\funs.h \ ! echo If any *local.c files failed to build, run build again. \ ! ! ! "$(ProjDir)\src\cmdlocal.c" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" ! $(BuildCmds) ! ! "$(ProjDir)\src\flaglocal.c" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" ! $(BuildCmds) ! ! "$(ProjDir)\src\funlocal.c" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" ! $(BuildCmds) ! ! "$(ProjDir)\src\local.c" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" ! $(BuildCmds) ! ! "$(ProjDir)\game\mush.cnf" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" ! $(BuildCmds) ! ! "$(ProjDir)\hdrs\cmds.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" ! $(BuildCmds) ! ! "$(ProjDir)\hdrs\funs.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" ! $(BuildCmds) ! # End Custom Build !ELSEIF "$(CFG)" == "pennmush - Win32 Release" --- 216,222 ---- # ADD BSC32 /nologo LINK32=link.exe # ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept ! # ADD LINK32 kernel32.lib gdi32.lib winspool.lib comdlg32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib user32.lib winmm.lib wsock32.lib /nologo /stack:0x1fec /subsystem:console /debug /machine:I386 /pdbtype:sept !ELSEIF "$(CFG)" == "pennmush - Win32 Release" *************** *** 506,550 **** # ADD BSC32 /nologo LINK32=link.exe # ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386 ! # ADD LINK32 user32.lib winmm.lib wsock32.lib /nologo /subsystem:console /machine:I386 ! # Begin Custom Build - Copying Necessary Files ! ProjDir=. ! InputPath=.\game\pennmush.exe ! SOURCE="$(InputPath)" ! ! BuildCmds= \ ! IF NOT EXIST $(ProjDir)\src\cmdlocal.c copy $(ProjDir)\src\cmdlocal.dst $(ProjDir)\src\cmdlocal.c \ ! IF NOT EXIST $(ProjDir)\src\flaglocal.c copy $(ProjDir)\src\flaglocal.dst $(ProjDir)\src\flaglocal.c \ ! IF NOT EXIST $(ProjDir)\src\funlocal.c copy $(ProjDir)\src\funlocal.dst $(ProjDir)\src\funlocal.c \ ! IF NOT EXIST $(ProjDir)\src\local.c copy $(ProjDir)\src\local.dst $(ProjDir)\src\local.c \ ! IF NOT EXIST $(ProjDir)\game\mush.cnf echo Don't forget to customize mush.cnf! \ ! IF NOT EXIST $(ProjDir)\game\mush.cnf copy $(ProjDir)\game\mushcnf.dst $(ProjDir)\game\mush.cnf \ ! copy $(ProjDir)\win32\cmds.h $(ProjDir)\hdrs\cmds.h \ ! copy $(ProjDir)\win32\funs.h $(ProjDir)\hdrs\funs.h \ ! echo If any *local.c files failed to build, run build again. \ ! ! ! "$(ProjDir)\src\cmdlocal.c" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" ! $(BuildCmds) ! ! "$(ProjDir)\src\flaglocal.c" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" ! $(BuildCmds) ! ! "$(ProjDir)\src\funlocal.c" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" ! $(BuildCmds) ! ! "$(ProjDir)\src\local.c" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" ! $(BuildCmds) ! ! "$(ProjDir)\game\mush.cnf" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" ! $(BuildCmds) ! ! "$(ProjDir)\hdrs\cmds.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" ! $(BuildCmds) ! ! "$(ProjDir)\hdrs\funs.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" ! $(BuildCmds) ! # End Custom Build !ENDIF --- 240,246 ---- # ADD BSC32 /nologo LINK32=link.exe # ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386 ! # ADD LINK32 user32.lib winmm.lib wsock32.lib /nologo /stack:0x1fec /subsystem:console /machine:I386 !ENDIF