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 <[email protected]>
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 <[email protected]>  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 <[email protected]>
+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

_______________________________________________
Pkg-games-commits mailing list
[email protected]
http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/pkg-games-commits

Reply via email to