On Tue, 2 Jun 1998, Jeremy Elson wrote:
>I'll try to fix this evening and post pl14 (or 13 take 2).
Hm, seems GCC doesn't care unless you specify -pedantic (which I wasn't).
Sigh, well, no one reported this previously. :P
The problem being, you cannot do:
  expression ? var1 : var2
so the correct (but usually ugly unless hidden by a macro as we are) fix
would be to change that to:
  *(expression ? &var1 : &var2)
That'll work in both the assignment and expression cases.
--- utils.h.old Tue Jun  2 19:35:26 1998
+++ utils.h     Tue Jun  2 19:37:42 1998
@@ -173,7 +173,7 @@
 /* Subtle bug, but works well for now. */
 #define CHECK_PLAYER_SPECIAL(ch, var) \
-       (((ch)->player_specials == &dummy_mob) ? (log("SYSERR: Mob using '"#var"' at %s:%d.", __FILE__, __LINE__), (var)) : (var))
+       (*(((ch)->player_specials == &dummy_mob) ? (log("SYSERR: Mob using '"#var"' at %s:%d.", __FILE__, __LINE__), &(var)) : &(var)))
 #define MOB_FLAGS(ch) ((ch)->char_specials.saved.act)
 #define PLR_FLAGS(ch) ((ch)->char_specials.saved.act)
@@ -292,7 +292,7 @@
 #define GET_LAST_TELL(ch)      CHECK_PLAYER_SPECIAL((ch), ((ch)->player_specials->last_tell))
 #define GET_SKILL(ch, i)       CHECK_PLAYER_SPECIAL((ch), ((ch)->player_specials->saved.skills[i]))
-#define SET_SKILL(ch, i, pct)  do { CHECK_PLAYER_SPECIAL((ch), (ch)->player_specials->saved.skills[i] = pct); } while(0)
+#define SET_SKILL(ch, i, pct)  do { CHECK_PLAYER_SPECIAL((ch), (ch)->player_specials->saved.skills[i]) = pct; } while(0)
 #define GET_EQ(ch, i)          ((ch)->equipment[i])
Sorry 'bout that.  Looks like I'll have to keep '-pedantic -ansi' on...
--
George Greer, greerga@circlemud.org | Genius may have its limitations, but
http://patches.van.ml.org/          | stupidity is not thus handicapped.
http://www.van.ml.org/CircleMUD/    |                  -- Elbert Hubbard
     +------------------------------------------------------------+
     | Ensure that you have read the CircleMUD Mailing List FAQ:  |
     | http://democracy.queensu.ca/~fletcher/Circle/list-faq.html |
     +------------------------------------------------------------+
This archive was generated by hypermail 2b30 : 12/15/00 PST