Bug 4959 - merge some ioq3 changes to the cgame/game/ui modules
Status: NEW
Alias: None
Product: Tremulous
Classification: Unclassified
Component: Misc
Version: SVN HEAD
Hardware: All All
: P3 normal
Assignee: Tim Angus
QA Contact: Tremulous Bugs
URL:
Depends on:
Blocks: 5158
 
Reported: 2011-04-24 01:38 EDT by /dev/humancontroller
Modified: 2011-08-06 16:42:31 EDT
2 users (show)

See Also:


Attachments
some of my OB1 fixes (836 bytes, patch)
2011-05-23 17:36 EDT, /dev/humancontroller
use MIN() instead of min() (957 bytes, patch)
2011-05-23 18:09 EDT, /dev/humancontroller
make strrchr and strchr standard conformant (751 bytes, patch)
2011-05-23 18:11 EDT, /dev/humancontroller
ensure that ent->classname is always non-null (1.52 KB, patch)
2011-05-23 18:13 EDT, /dev/humancontroller
remove some redundant newlines Com_Error() calls (3.53 KB, patch)
2011-05-23 18:16 EDT, /dev/humancontroller
some changes to the console line code (1.44 KB, patch)
2011-05-23 18:24 EDT, /dev/humancontroller
bg_lib changes around ioq3 r1880 (1.82 KB, patch)
2011-05-23 18:27 EDT, /dev/humancontroller
use floatint_t (1.81 KB, patch)
2011-05-23 18:28 EDT, /dev/humancontroller
add a missing \n for a cgame warning message (675 bytes, patch)
2011-05-23 18:30 EDT, /dev/humancontroller
remove unused cg.kick* fields (1.24 KB, patch)
2011-06-09 19:02 EDT, /dev/humancontroller

Description /dev/humancontroller 2011-04-24 01:38:00 EDT
as ioq3 changes to the cgame/game/ui modules don't generally get merged, i'd note some ioq3 revisions which have changes appropriate for merging; grouped in 3 "priority sets":

1. merge these or die:
r1821
r1735
r1871, r1880, r1881, r1886
r1481
r1874

2. these look somewhat interesting:
r1743
r1335
r1913
r1231, r1232, r1320, r1652

3. maybe the existence of these is worth mentioning:
r1139, r1790
Comment 1 Ben Millwood 2011-05-10 10:05:23 EDT
Some of these are legitimate, some of them are who-cares. You can speed up the process of getting them merged by providing patches.
Comment 2 /dev/humancontroller 2011-05-23 17:36:39 EDT
Created attachment 2722 [details]
some of my OB1 fixes
Comment 3 /dev/humancontroller 2011-05-23 18:09:52 EDT
Created attachment 2725 [details]
use MIN() instead of min()

(how the fuck did ``int min;'' ever work?)
Comment 4 /dev/humancontroller 2011-05-23 18:11:23 EDT
Created attachment 2726 [details]
make strrchr and strchr standard conformant
Comment 5 /dev/humancontroller 2011-05-23 18:13:34 EDT
Created attachment 2727 [details]
ensure that ent->classname is always non-null

(for entity numbers up to level.num_entities-1, and ENTITYNUM_WORLD, and ENTITYNUM_NONE), for player entities and #ENTITYNUM_NONE in particular
Comment 6 /dev/humancontroller 2011-05-23 18:16:43 EDT
Created attachment 2728 [details]
remove some redundant newlines Com_Error() calls

(not exactly part of the merge, but rather a follow up)
Comment 7 /dev/humancontroller 2011-05-23 18:24:17 EDT
Created attachment 2729 [details]
some changes to the console line code

some spotted off-by-a-few-or-a-lot issues in the console line handling code. i like to call this change "prepare for size_t's change from int to unsigned int".
Comment 8 /dev/humancontroller 2011-05-23 18:27:35 EDT
Created attachment 2730 [details]
bg_lib changes around ioq3 r1880

related to standardization. size_t is newly unsigned in the VM code!
Comment 9 /dev/humancontroller 2011-05-23 18:28:18 EDT
Created attachment 2731 [details]
use floatint_t
Comment 10 /dev/humancontroller 2011-05-23 18:30:32 EDT
Created attachment 2732 [details]
add a missing \n for a cgame warning message
Comment 11 /dev/humancontroller 2011-05-23 20:31:57 EDT
more in bug 5000
Comment 12 /dev/humancontroller 2011-06-09 19:02:24 EDT
Created attachment 2766 [details]
remove unused cg.kick* fields
Comment 13 /dev/humancontroller 2011-06-09 19:06:10 EDT
these conclude, from group 1, my stuff and Przemysław Iskra's r1481, leaving only Tequila's r1735 to be looked at
Comment 14 Chris "Lakitu7" Schwarz 2011-08-01 20:05:12 EDT
I am incredibly confused how removing unused variables could possibly qualify for the highest of all "merge this or die" priorities.
Comment 15 Chris "Lakitu7" Schwarz 2011-08-02 00:53:26 EDT
I did 1725, 1871, 1180, 1881, 1886 at r2235.
In the ~1180 stuff, your patch changes a function to not be as it is upstream. This is not a merge from upstream, since it is not upstream. I made the function look as it does upstream.

In your patches, I went through
"some of my OB1 fixes"
"use MIN() instead of min()"
"make strrchr and strchr standard conformant"
before giving up, because none of them are actually in upstream. It's not a merge from upstream if the change has not been accepted into upstream. Do not try to pass off changes you wish were merged as changes from upstream. Lying is not a good way to get committers to trust your submitted changes.

1471 and 1874 are a lot of work to merge. I can't use your patches because they are clearly not trustworthy, and I do not know if I will find time to care enough to do it myself.

I have not looked at any in categories 2 or 3.
Comment 16 /dev/humancontroller 2011-08-02 10:46:36 EDT
(In reply to comment #15)
> In your patches, I went through
> "some of my OB1 fixes"
> "use MIN() instead of min()"
> "make strrchr and strchr standard conformant"
> before giving up, because none of them are actually in upstream. It's not a
> merge from upstream if the change has not been accepted into upstream. Do not
> try to pass off changes you wish were merged as changes from upstream. Lying is
> not a good way to get committers to trust your submitted changes.

i am not trying to sneak any top secret code into the repository whatsoever. the said changes are in fact in upstream, perhaps i should have said exactly where:
"make strrchr and strchr standard conformant": the Tremulous-equivalent of ioq3 r1983 and (partially) r1987.
"use MIN() instead of min()": exactly ioq3 r1986.
"some of my OB1 fixes": checks of the form "string length > size of something" is almost always an OB1 in C; i have grepped the ioq3 code for such checks, and fixed them: see ioq3 r1889 [note: the log message is a bit inaccurate]. i did the same for Tremulous, and put the fixes in attachment 2722 [details]. the hunk in that patch related to the TeamplayInfoMessage() function matches the appropriate hunk in the ioq3 r1889 change. another look (just now) reveals that the other hunk of attachment 2722 [details] was already applied to ioq3 long ago, in r1277 (some other person's changes, actually).

> 1471

(you probably mean 1481.) the only relevant (ie., to be merged "manually") pieces are in attachment 2731 [details].

> 1874 are a lot of work to merge.

those are part of the patches in bug 5000. i will state if there is anything to merge that i do not plan to make a Tremulous-equivelent patch for.

> I can't use your patches because they are clearly not trustworthy

ORLY
Comment 17 /dev/humancontroller 2011-08-02 11:00:47 EDT
[i've just obsoleted a patch that was accepted.]
Comment 18 /dev/humancontroller 2011-08-02 11:24:09 EDT
further information:

the source of attachment 2727 [details] is ioq3 r1981.
the source of attachment 2732 [details] is ioq3 r1822.
the source of attachment 2728 [details] is ioq3 r1978 (really, i am porting the logic of the changes, not the hunks).
the source of attachment 2766 [details] is ioq3 r1874.

about attachment 2729 [details]: changing size_t from int to unsigned int introduced (theoretical) bugs in ioq3. i have found them by looking through usages of size_t in ioq3. i did the same for Tremulous, and found some incorrect code, which did not surface for whatever reason. you'll have to verify the correctness of the fix yourself, if you want justification.
Comment 19 Chris "Lakitu7" Schwarz 2011-08-06 16:41:46 EDT
Committed 2732 (r1822) and 2766 (r1874) at r2237.

The current upstream merge revision is r1946. Merging changes from later than that is, in my opinion, unwise. As such I've ignored anything later. Others before that I simply haven't looked at yet.