Notice: Any messages purporting to come from this site telling you that your password has expired, or that you need to "verify" your details, making threats, or asking for money, are
spam. We do not email users with any such messages. If you have lost your password you can obtain a new one by using the
password reset link.
Entire forum
➜ SMAUG
➜ SMAUG coding
➜ FUSS Updated
It is now over 60 days since the last post. This thread is closed.
Refresh page
Posted by
| Samson
USA (683 posts) Bio
|
Date
| Tue 13 Jul 2004 11:39 AM (UTC) |
Message
| Just to let people know, the Smaug/SWR/SWFOTE FUSS packages were updated recently. I went through them and cleaned out alot of warnings with some aggressive compiler flags I use on my own codebase.
Also, the SWFOTE package specifically has some codebase specific fixes added to it which were posted to the SWFOTE forum. These fixes were provided by Rapidrunner and should provide a much more stable platform from which to build on this base.
The updated files can be found at www.mudplanet.org/files.php as usual. | Top |
|
Posted by
| Nick Gammon
Australia (23,070 posts) Bio
Forum Administrator |
Date
| Reply #1 on Wed 14 Jul 2004 12:20 AM (UTC) |
Message
| Thanks, I have put copies in the download area here. |
- Nick Gammon
www.gammon.com.au, www.mushclient.com | Top |
|
Posted by
| Nick Cash
USA (626 posts) Bio
|
Date
| Reply #2 on Wed 14 Jul 2004 12:57 AM (UTC) |
Message
| I currently use the slightly older version of SWR:FUSS and I would like to know, could you run some diff's or give out a change log so I might know what you changed? I'd like to apply it to my current code base. Thanks :) |
~Nick Cash
http://www.nick-cash.com | Top |
|
Posted by
| Nick Gammon
Australia (23,070 posts) Bio
Forum Administrator |
Date
| Reply #3 on Wed 14 Jul 2004 01:24 AM (UTC) Amended on Wed 14 Jul 2004 01:29 AM (UTC) by Nick Gammon
|
Message
| I tried compiling the smaug14afuss.tgz and got this:
make -s smaug
Compiling o/comm.o....
comm.c: In function `new_descriptor':
comm.c:832: warning: cast discards qualifiers from pointer target type
make[1]: *** [o/comm.o] Error 1
make: *** [all] Error 2
The line in error is in bold:
if ( sysdata.NO_NAME_RESOLVING )
dnew->host = STRALLOC( buf );
else
{
from = gethostbyaddr( (char *) &sock.sin_addr,
sizeof(sock.sin_addr), AF_INET );
dnew->host = STRALLOC( (char *)( from ? from->h_name : buf) );
}
This is with:
$ gcc --version
gcc (GCC) 3.3.1 (cygming special)
|
- Nick Gammon
www.gammon.com.au, www.mushclient.com | Top |
|
Posted by
| Nick Gammon
Australia (23,070 posts) Bio
Forum Administrator |
Date
| Reply #4 on Wed 14 Jul 2004 01:27 AM (UTC) |
Message
| Also, "make clean" does this:
$ make clean
rm -f *.o smaug.exe *~
However the object files are in the "o" subdirectory, so it should do:
$ make clean
rm -f o/*.o smaug.exe *~
|
- Nick Gammon
www.gammon.com.au, www.mushclient.com | Top |
|
Posted by
| Nick Gammon
Australia (23,070 posts) Bio
Forum Administrator |
Date
| Reply #5 on Wed 14 Jul 2004 01:52 AM (UTC) |
Message
| When compiling under Visual C++ 6, I got the following errors/warnings. You may wish to track down the warnings for sake of completenes...
act_wiz.c
g:\smaug14afuss\smaugfuss\src\act_wiz.c(5668) : warning C4013: 'lstat' undefined; assuming extern returning int
g:\smaug14afuss\smaugfuss\src\act_wiz.c(7404) : warning C4013: 'snprintf' undefined; assuming extern returning int
build.c
g:\smaug14afuss\smaugfuss\src\boards.c(1447) : warning C4715: 'read_note' : not all control paths return a value
color.c
g:\smaug14afuss\smaugfuss\src\color.c(367) : warning C4013: 'snprintf' undefined; assuming extern returning int
g:\smaug14afuss\smaugfuss\src\color.c(1319) : warning C4013: 'vsnprintf' undefined; assuming extern returning int
i3.c
g:\smaug14afuss\smaugfuss\src\i3.c(28) : fatal error C1083: Cannot open include file: 'unistd.h': No such file or directory
imc.c
g:\smaug14afuss\smaugfuss\src\imc.c(46) : fatal error C1083: Cannot open include file: 'unistd.h': No such file or directory
mud_comm.c
g:\smaug14afuss\smaugfuss\src\mud_comm.c(1513) : warning C4305: 'function' : truncation from 'const int ' to 'short '
special.c
G:\smaug14afuss\SmaugFUSS\src\special.c(55) : warning C4550: expression evaluates to a function which is missing an argument list
(previous warning occurred 571 times)
I changed mud.h by adding the following lines, and removed the files i3.c and imc.c from the build, and got it down to 2 warnings:
#ifdef WIN32
#include <winsock.h>
#include <sys/types.h>
#pragma warning( disable: 4018 4244 4761)
#define NOCRYPT
#define index strchr
#define rindex strrchr
#pragma warning( disable : 4550) // NJG
#define vsnprintf _vsnprintf // NJG
#define snprintf _snprintf // NJG
#define lstat stat // NJG
#pragma comment( lib, "ws2_32.lib ") // NJG
#pragma comment( lib, "winmm.lib" ) // NJG
#else
These are the warnings, which sound genuine:
build.c
g:\smaug14afuss\smaugfuss\src\boards.c(1447) : warning C4715: 'read_note' : not all control paths return a value
mud_comm.c
g:\smaug14afuss\smaugfuss\src\mud_comm.c(1513) : warning C4305: 'function' : truncation from 'const int ' to 'short '
|
- Nick Gammon
www.gammon.com.au, www.mushclient.com | Top |
|
Posted by
| Nick Gammon
Australia (23,070 posts) Bio
Forum Administrator |
Date
| Reply #6 on Wed 14 Jul 2004 02:13 AM (UTC) |
Message
| It is interesting to note compile times here. I compiled the FUSS source under both Cygwin and Visual C++ in debug mode (with debugging symbols, and no optimisation), and release mode (no debugging, optimisation) with the following build times (for everything excepting i3.c and imc.c) ...
Debug build - compile and link
- Cygwin - 21 seconds
- Visual C++ - 22 seconds
Release build - compile and link
- Cygwin - 32 seconds
- Visual C++ - 30 seconds
This was done on the same PC (hence the same CPU speed, memory size, hard disk speed etc.).
It is interesting that there is virtually no difference in compile speeds. One or two seconds to rebuild the whole project is nothing to worry about.
Using UltraEdit to compile
I also had some success compiling using UltraEdit as the front-end to Cygwin (much like using the Visual Studio environment).
To do this, I used the UltraEdit Advanced menu -> Tool Configuration, and entered:
- Command line: \cygwin\bin\bash --login -i -c 'cd /home/nick/SmaugFUSS/src;make'
- Working directory: C:\cygwin\home\Nick\SmaugFUSS\src\
- Menu item name: make smaugFUSS
- Save all files first: checked
- Command output:
- Output to list box: selected
- Capture output: checked
Then click "Insert" to add this as a special command, and then OK to close the dialog box.
Having done all this (which you only do once) then there is a new menu item under the Advanced menu:
make smaugFUSS - Ctrl+Shift+0
Then to do a "make" I just select that menu item or type Ctrl+Shift+0, and the whole process kicks in. If there are errors they display in the Output pane near the bottom (select Window -> Output Window to see it). You can double-click any error message and it will open the appropriate file and go to the line in error. Very handy.
|
- Nick Gammon
www.gammon.com.au, www.mushclient.com | Top |
|
Posted by
| Samson
USA (683 posts) Bio
|
Date
| Reply #7 on Wed 14 Jul 2004 02:53 AM (UTC) |
Message
| Cleared the Cygwin warnings, but I'm afraid the other stuff is beyond my reach since I don't have access to a VC++ compiler. I'd also prefer not to remove the intermud code from the distro just because of that either. It compiles as intended now in all 3 packages. I'm sure there must be someone who knows how to get the complete package to compile under VC++, with the intermud code enabled for those who might wish to use it?
Anyway, the 3 package files have been updated again. | Top |
|
Posted by
| Nick Gammon
Australia (23,070 posts) Bio
Forum Administrator |
Date
| Reply #8 on Wed 14 Jul 2004 03:20 AM (UTC) |
Message
| You don't seem to have changed mud.h. If you add the suggested lines (the ones ending with // NJG ) then it won't affect the non-Win32 compiles, and should make it compile cleanly under Visual C++.
Unless I have downloaded the wrong copy, you also don't seem to have changed the "make clean" behaviour. |
- Nick Gammon
www.gammon.com.au, www.mushclient.com | Top |
|
Posted by
| Samson
USA (683 posts) Bio
|
Date
| Reply #9 on Wed 14 Jul 2004 03:50 AM (UTC) |
Message
| Here's to hoping attempt #3 does the job. I could swear I uploaded that stuff. I must be getting old. | Top |
|
Posted by
| Nick Gammon
Australia (23,070 posts) Bio
Forum Administrator |
Date
| Reply #10 on Fri 16 Jul 2004 02:16 AM (UTC) Amended on Fri 16 Jul 2004 02:17 AM (UTC) by Nick Gammon
|
Message
| OK, seems better now. I still get this warning:
build.c
g:\cygwin\home\nick\smaugfuss\src\boards.c(1447) : warning C4715: 'read_note' : not all control paths return a value
This is in:
NOTE_DATA *read_note( char *notefile, FILE *fp )
{
NOTE_DATA *pnote;
char *word;
// ... stuff omitted ...
bug ( "read_note: bad key word." );
exit( 1 );
}
See, although exit (1) would stop the program, that is a function call, and not, strictly speaking, returning a value. It should really be:
NOTE_DATA *read_note( char *notefile, FILE *fp )
{
NOTE_DATA *pnote;
char *word;
// ... stuff omitted ...
bug ( "read_note: bad key word." );
exit( 1 );
return NULL;
}
The other warning is:
mud_comm.c
g:\cygwin\home\nick\smaugfuss\src\mud_comm.c(1513) : warning C4305: 'function' : truncation from 'const int ' to 'short '
The definition of add_timer is:
void add_timer( CHAR_DATA *ch, sh_int type, sh_int count, DO_FUN *fun, int value )
The warning occurs at:
void do_mpnuisance( CHAR_DATA *ch, char *argument )
{
CHAR_DATA *victim;
char arg1[MAX_STRING_LENGTH];
// ... stuff omitted ...
victim->pcdata->nuisance->max_time = mktime(now_time);
add_timer( victim, TIMER_NUISANCE, (28800*2), NULL, 0 );
return;
}
The 3rd argument (sh_int count) is being passed the value 28800*2 which is 57,600. This is higher than the maximum possible in a short, which is 32767. This is therefore wrong.
|
- Nick Gammon
www.gammon.com.au, www.mushclient.com | Top |
|
The dates and times for posts above are shown in Universal Co-ordinated Time (UTC).
To show them in your local time you can join the forum, and then set the 'time correction' field in your profile to the number of hours difference between your location and UTC time.
25,649 views.
It is now over 60 days since the last post. This thread is closed.
Refresh page
top