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