[nexuiz-data] 07/17: Add patch to avoid weird precedence in fteqcc (Closes: #668349)
Simon McVittie
smcv at debian.org
Tue Jan 9 09:56:38 UTC 2018
This is an automated email from the git hooks/post-receive script.
smcv pushed a commit to annotated tag debian/2.5.2-7
in repository nexuiz-data.
commit 8743624a56cceab9468e19f8d036e7b8fc8ee1ab
Author: Simon McVittie <smcv at debian.org>
Date: Tue Jan 2 09:45:01 2018 +0000
Add patch to avoid weird precedence in fteqcc (Closes: #668349)
---
debian/changelog | 2 +
...entheses-around-array-member-dereferences.patch | 208 +++++++++++++++++++++
debian/patches/series | 1 +
3 files changed, 211 insertions(+)
diff --git a/debian/changelog b/debian/changelog
index b4bfcd8..e7e93a1 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -12,6 +12,8 @@ nexuiz-data (2.5.2-7) UNRELEASED; urgency=low
Apply patch from Reiner Herrmann for locale-independent sorting
(Closes: #808652)
* Add DEP-3 patch metadata
+ * Put-parentheses-around-array-member-dereferences.patch:
+ Add patch to avoid weird precedence in fteqcc (Closes: #668349)
-- Anton Balashov <sicness at darklogic.ru> Fri, 23 Aug 2013 09:18:43 +0400
diff --git a/debian/patches/Put-parentheses-around-array-member-dereferences.patch b/debian/patches/Put-parentheses-around-array-member-dereferences.patch
new file mode 100644
index 0000000..3d50d1b
--- /dev/null
+++ b/debian/patches/Put-parentheses-around-array-member-dereferences.patch
@@ -0,0 +1,208 @@
+From: Simon McVittie <smcv at debian.org>
+Date: Tue, 2 Jan 2018 09:31:51 +0000
+Subject: Put parentheses around array member dereferences
+
+This avoids precedence issues in newer versions of fteqcc.
+
+Similar in concept to
+https://gitlab.com/xonotic/xonotic-data.pk3dir/commit/d27a9970837d9430120bc4dbe0fa873ecce87450
+in Xonotic, although the lines involved are unrelated.
+
+Bug-Debian: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=668349
+Forwarded: no, Nexuiz Classic is unmaintained upstream
+---
+ data/qcsrc/client/sbar.qc | 18 +++++++++---------
+ data/qcsrc/server/cl_weaponsystem.qc | 4 ++--
+ data/qcsrc/server/g_damage.qc | 4 ++--
+ data/qcsrc/server/scores.qc | 12 ++++++------
+ data/qcsrc/server/w_common.qc | 20 ++++++++++----------
+ 5 files changed, 29 insertions(+), 29 deletions(-)
+
+diff --git a/data/qcsrc/client/sbar.qc b/data/qcsrc/client/sbar.qc
+index 3c3fd17..715f0e0 100644
+--- a/data/qcsrc/client/sbar.qc
++++ b/data/qcsrc/client/sbar.qc
+@@ -323,8 +323,8 @@ float Sbar_ComparePlayerScores(entity left, entity right)
+ return false;
+ }
+
+- vl = left.scores[ps_primary];
+- vr = right.scores[ps_primary];
++ vl = left.(scores[ps_primary]);
++ vr = right.(scores[ps_primary]);
+ if(scores_flags[ps_primary] & SFL_ZERO_IS_WORST)
+ {
+ if(vl == 0 && vr != 0)
+@@ -337,8 +337,8 @@ float Sbar_ComparePlayerScores(entity left, entity right)
+ if(vl < vr)
+ return IS_DECREASING(scores_flags[ps_primary]);
+
+- vl = left.scores[ps_secondary];
+- vr = right.scores[ps_secondary];
++ vl = left.(scores[ps_secondary]);
++ vr = right.(scores[ps_secondary]);
+ if(scores_flags[ps_secondary] & SFL_ZERO_IS_WORST)
+ {
+ if(vl == 0 && vr != 0)
+@@ -375,15 +375,15 @@ float Sbar_CompareTeamScores(entity left, entity right)
+ if(right.team == COLOR_SPECTATOR)
+ return 0;
+
+- vl = left.teamscores[ts_primary];
+- vr = right.teamscores[ts_primary];
++ vl = left.(teamscores[ts_primary]);
++ vr = right.(teamscores[ts_primary]);
+ if(vl > vr)
+ return IS_INCREASING(teamscores_flags[ts_primary]);
+ if(vl < vr)
+ return IS_DECREASING(teamscores_flags[ts_primary]);
+
+- vl = left.teamscores[ts_secondary];
+- vr = right.teamscores[ts_secondary];
++ vl = left.(teamscores[ts_secondary]);
++ vr = right.(teamscores[ts_secondary]);
+ if(vl > vr)
+ return IS_INCREASING(teamscores_flags[ts_secondary]);
+ if(vl < vr)
+@@ -1305,7 +1305,7 @@ void Sbar_Score()
+ if(pl == me)
+ pl = pl.sort_next;
+ if(scores_flags[ps_primary] & SFL_ZERO_IS_WORST)
+- if(pl.scores[ps_primary] == 0)
++ if(pl.(scores[ps_primary]) == 0)
+ pl = world;
+
+ score = me.(scores[ps_primary]);
+diff --git a/data/qcsrc/server/cl_weaponsystem.qc b/data/qcsrc/server/cl_weaponsystem.qc
+index 9002518..13e0502 100644
+--- a/data/qcsrc/server/cl_weaponsystem.qc
++++ b/data/qcsrc/server/cl_weaponsystem.qc
+@@ -150,8 +150,8 @@ void W_SetupShot_Dir_ProjectileSize(entity ent, vector s_forward, vector mi, vec
+ // Track max damage and set the stat to be sent later in g_world.qc
+ if not(inWarmupStage)
+ {
+- ent.max_damage[ent.weapon] += maxdamage;
+- ent.maxdamage_fired = ent.weapon + 64 * rint(ent.max_damage[ent.weapon]);
++ ent.(max_damage[ent.weapon]) += maxdamage;
++ ent.maxdamage_fired = ent.weapon + 64 * rint(ent.(max_damage[ent.weapon]));
+ }
+
+ W_HitPlotAnalysis(ent, v_forward, v_right, v_up);
+diff --git a/data/qcsrc/server/g_damage.qc b/data/qcsrc/server/g_damage.qc
+index 4394741..513ff29 100644
+--- a/data/qcsrc/server/g_damage.qc
++++ b/data/qcsrc/server/g_damage.qc
+@@ -989,8 +989,8 @@ void Damage_RecordDamage(entity attacker, float deathtype, float damage)
+ if(clienttype(attacker) == CLIENTTYPE_REAL)
+ {
+ // Track damage done and update the stat to be sent later in g_world.qc
+- attacker.actual_damage[weaponid] += damage;
+- attacker.damage_hits = weaponid + 64 * rint(attacker.actual_damage[weaponid]);
++ attacker.(actual_damage[weaponid]) += damage;
++ attacker.damage_hits = weaponid + 64 * rint(attacker.(actual_damage[weaponid]));
+ }
+ }
+
+diff --git a/data/qcsrc/server/scores.qc b/data/qcsrc/server/scores.qc
+index d21ab95..07d92c6 100644
+--- a/data/qcsrc/server/scores.qc
++++ b/data/qcsrc/server/scores.qc
+@@ -56,7 +56,7 @@ float TeamScore_SendEntity(entity to, float sendflags)
+
+ longflags = 0;
+ for(i = 0, p = 1; i < MAX_TEAMSCORE; ++i, p *= 2)
+- if(self.teamscores[i] > 127 || self.teamscores[i] <= -128)
++ if(self.(teamscores[i]) > 127 || self.(teamscores[i]) <= -128)
+ longflags |= p;
+
+ #if MAX_TEAMSCORE <= 8
+@@ -70,9 +70,9 @@ float TeamScore_SendEntity(entity to, float sendflags)
+ if(sendflags & p)
+ {
+ if(longflags & p)
+- WriteInt24_t(MSG_ENTITY, self.teamscores[i]);
++ WriteInt24_t(MSG_ENTITY, self.(teamscores[i]));
+ else
+- WriteChar(MSG_ENTITY, self.teamscores[i]);
++ WriteChar(MSG_ENTITY, self.(teamscores[i]));
+ }
+
+ return TRUE;
+@@ -216,7 +216,7 @@ float PlayerScore_SendEntity(entity to, float sendflags)
+
+ longflags = 0;
+ for(i = 0, p = 1; i < MAX_SCORE; ++i, p *= 2)
+- if(self.scores[i] > 127 || self.scores[i] <= -128)
++ if(self.(scores[i]) > 127 || self.(scores[i]) <= -128)
+ longflags |= p;
+
+ #if MAX_SCORE <= 8
+@@ -230,9 +230,9 @@ float PlayerScore_SendEntity(entity to, float sendflags)
+ if(sendflags & p)
+ {
+ if(longflags & p)
+- WriteInt24_t(MSG_ENTITY, self.scores[i]);
++ WriteInt24_t(MSG_ENTITY, self.(scores[i]));
+ else
+- WriteChar(MSG_ENTITY, self.scores[i]);
++ WriteChar(MSG_ENTITY, self.(scores[i]));
+ }
+
+ return TRUE;
+diff --git a/data/qcsrc/server/w_common.qc b/data/qcsrc/server/w_common.qc
+index e88625d..119d22b 100644
+--- a/data/qcsrc/server/w_common.qc
++++ b/data/qcsrc/server/w_common.qc
+@@ -156,14 +156,14 @@ void FireRailgunBullet (vector start, vector end, float bdamage, float bforce, f
+ if not(inWarmupStage)
+ if not(self.isbot)
+ {
+- self.bullets_fired[self.weapon] += 1;
++ self.(bullets_fired[self.weapon]) += 1;
+
+ if(did_hit)
+- self.bullets_hit[self.weapon] += 1;
++ self.(bullets_hit[self.weapon]) += 1;
+
+ // update the client and store in addstat() in g_world
+- self.damage_hits = self.weapon + 64 * rint(self.bullets_hit[self.weapon]);
+- self.maxdamage_fired = self.weapon + 64 * rint(self.bullets_fired[self.weapon]);
++ self.damage_hits = self.weapon + 64 * rint(self.(bullets_hit[self.weapon]));
++ self.maxdamage_fired = self.weapon + 64 * rint(self.(bullets_fired[self.weapon]));
+ }
+
+ // we're done with the explosion entity, remove it
+@@ -223,9 +223,9 @@ void W_BallisticBullet_Hit (void)
+ if not(self.owner.isbot)
+ {
+ if(hit)
+- self.owner.bullets_hit[self.owner.weapon] += 1;
++ self.owner.(bullets_hit[self.owner.weapon]) += 1;
+ // update the client
+- self.owner.damage_hits = self.owner.weapon + 64 * rint(self.owner.bullets_hit[self.owner.weapon]);
++ self.owner.damage_hits = self.owner.weapon + 64 * rint(self.owner.(bullets_hit[self.owner.weapon]));
+ }
+
+ //sound (self, CHAN_PROJECTILE, "weapons/electro_impact.wav", VOL_BASE, ATTN_NORM);
+@@ -391,8 +391,8 @@ void fireBallisticBullet(vector start, vector dir, float spread, float pSpeed, f
+ if not(inWarmupStage)
+ if not(self.isbot)
+ {
+- self.bullets_fired[self.weapon] += 1;
+- self.maxdamage_fired = self.weapon + 64 * rint(self.bullets_fired[self.weapon]);
++ self.(bullets_fired[self.weapon]) += 1;
++ self.maxdamage_fired = self.weapon + 64 * rint(self.(bullets_fired[self.weapon]));
+ }
+
+ if(cvar("g_antilag_bullets"))
+@@ -443,8 +443,8 @@ void fireBallisticBullet(vector start, vector dir, float spread, float pSpeed, f
+ if not(inWarmupStage)
+ if not(self.isbot)
+ {
+- self.bullets_fired[self.weapon] += 1;
+- self.maxdamage_fired = self.weapon + 64 * rint(self.bullets_fired[self.weapon]);
++ self.(bullets_fired[self.weapon]) += 1;
++ self.maxdamage_fired = self.weapon + 64 * rint(self.(bullets_fired[self.weapon]));
+ }
+
+ if(vlen(trace_endpos - self.origin) > 16)
diff --git a/debian/patches/series b/debian/patches/series
index d19e688..f60d68f 100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -6,3 +6,4 @@
exclude_textures_from_data.pk3.diff
windowed_by_default.diff
reproducible_build.diff
+Put-parentheses-around-array-member-dereferences.patch
--
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-games/nexuiz-data.git
More information about the Pkg-games-commits
mailing list