Ah, yellow text on a red background for text that goes with an alignment indicates an error (it indicates the text is outside of the range from -3 to 2, with -3 being Stalinist, -2 being Arch-Conservative, -1 being regular Conservative, 0 being moderate, 1 being regular Liberal, and 2 being Elite Liberal). The code for that is in void set_alignment_color(signed char alignment, bool extended_range) in commondisplay.cpp, right near the beginning of the file.
So somehow the alignment number for your Human Rights issue was corrupted, and the color of the text indicated this was an error.
Well, the Human Rights/LAW_TORTURE issue is the LAST issue in the Laws enum prior to LAWNUM, and it's the LAST issue in the law[] array. Immediately AFTER the law[] array in a saved game, if you look at saveload.cpp, is the house[] array, and then the senate[] array.
So my hypothesis is, this is a bug, and somehow, someone set house[-1]. No wait, if someone set house[-1], members of the House, Senate, Supreme Court, and Executive Branch all have alignments in the range from -3 to +2. So for it to be out of that range, something else would have to happen. And although they, by their very nature, probably ought to be against the rules of the language, negative array indices are allowed in C and C++.
I don't know what happened. But it is very likely to involve house[-1] being set to some strange number.
It is possible this may have happened due to an incompatibility between different SVN revisions and might not be a bug. Maybe you started the game in one SVN revision, updated to a newer version of the game, and then continued playing, thus causing a bug to occur because the 2 revisions have incompatible savegame formats. For instance if you had a revision prior to 846 and updated to revision 852 this kind of thing would be likely.
But in the REAL world, I am going on a month-long vacation to Europe tomorrow and won't be online much or at all, and won't have the computer I do programming on with me. I have done some preliminary looking at code to see what might have caused this and from looking at saveload.cpp it's likely that there is code that accesses the array house[] with an index of -1, which would correspond to accessing the array law[] with an index of LAW_TORTURE. Well those are their orders in the savegame anyway, but maybe their orders in memory are different while the program is running... ah yes, the orders of variables in memory are in game.cpp (declared externally in externs.h). Ah, in game.cpp, the house[] array comes right after the law[] array, the same exact order.
So this means that house[-1] and law[LAW_TORTURE] are actually the same variable, and any code that modifies one of them modifies the other.
Now, we do have code to deal with Stalinist elected officials (a value of -3 alignment), but for laws, the alignment range is smaller by 1, from -2 to +2.
So hypothetically if a Stalinist were elected to the House in position -1, this would set law[LAW_TORTURE] to -3, outside the -2 to +2 range it should be in... the initial error being a negative array index for house[].
Then the next error to occur would be, the code dealing with laws doesn't consider the possibility that laws might be outside the range from -2 to +2, and assumes they are in the range from -2 to +2, so if they are outside that range, there is no way for the game to recover from this bug, it will just continue (although if it is also outside the -3 to +2 range, it will have a color to indicate an error).
Now you've said the issue gets pushed further and further C+ no matter what. This makes sense since that's probably the last option in a case of if...else statements, regarding the alignment of a law.
Also the Moral Interrogation Practices text is likewise the last option in a bunch of if...else statements, regarding the alignment of a law.
So, logically, the initial cause of this bug is that somewhere, in election code or something like that, the house array with an index of -1 is being set. Of course the compiler doesn't catch this at compile time since obviously a variable is being used as the array index instead of a constant, and the compiler doesn't know what value the array will have at runtime. But somewhere, a variable or expression equal to -1 is used as the array index for the house[] array when setting it, most likely in code for an election. And this is causing these other errors in the game to occur, as a logical consequence. This other behavior, after the initial error, is actually somewhat good, because it makes it obvious that an error has occurred, and gives many clues how to catch it.
Now I have looked through the code for every single instance of where the house[] array has its elements set, and I don't see any instances of this which are obvious. There are many instances where it is set as part of a loop like this: for(int h=0;h<HOUSENUM;h++). And then house[h] is set. This is harmless if you assume that the variable h is not modified by any other code inside the loop. However some of these loops are longer and might contain code that modifies the loop variable (for instance if it said "h--" somewhere, that would be bad). Anyway I haven't quite found the exact cause of the bug but I am pretty sure it is due to these factors.
But again this isn't necessarily a bug, it is possible it is just a savegame incompatibility between different versions. Unless of course you created the game and played the entire game on the same revision (852 you said), in which case it most certainly IS a bug. But I think I have a good lead here as to what it is. Unfortunately I will be going on vacation tomorrow so I hope somebody else follows up on the leads I have here and the evidence we already have about what is probably causing this (the house[] array being called with an index of -1 somewhere).
Well Lielac you did a good job documenting this bug in detail, we have plenty of info to go on already. But I will be busy today packing for my trip, and I wasn't able to find where house[-1] is called during my cursory look through the code. So hopefully someone else will solve this. Also I haven't yet slept tonight and I have an appointment in a few hours, among other things in my busy schedule for my last day before my plane flight. I hope the debugging work I did here will help whoever looks at this problem next, since I haven't quite gotten this all the way solved, and of course, my hunch about the likely cause of this bug is just the most likely possibility in my mind but there could also be other possibilities.
And if this is just a run-of-the-mill savegame incompatibility caused by starting a game in one revision and then finishing it in another revision (if I recall correctly you downloaded revision 840 earlier, and then you say you have now upgraded to revision 852)... well if you had an ongoing savegame between those 2 revisions, the cause of this bug is the addition of a new variable called fieldskillrate to the game and to the save files. Actually I think this is most likely just a savegame incompatibility and you probably did start a game in revision 840 then finish it in revision 852. Nick Dumas in revision 846 specifically increased the version number of the game from 4.07.5 beta to 4.07.6 beta so that old savegames wouldn't be able to load, but then I reverted that change in revision 848 because savegame incompatibilities happen all the time between SVN revisions (just as every release version has incompatible savegames too), and because the most recent beta version is 4.07.4 beta which means the next one is 4.07.5 beta so if we increase it to 4.07.6 beta that's rather premature.
So this is probably just a savegame incompatibility between different SVN revisions of the game. I couldn't actually find any code that called law[-1] so I think savegame incompatibility is a more likely explanation, for now. Unless you can duplicate this bug again with a new game you start... but anyway I have a vacation tomorrow, I have a lot of packing to do today and even have to buy some stuff before I leave such as a belt (to keep my pants up... the belt I was using just broke yesterday), a laundry bag (to store dirty clothes while I'm on vacation and keep them separate from clean clothes), and some vitamins (I take both an iron-free multivitamin and Vitamin D and am almost out of both... it's best to get multivitamins without iron because iron is the easiest vitamin or mineral to overdose on and if you take too many regular multivitamin pills the iron overdose is the thing that'll get you sick first, so I take multivitamins without iron since they are safer, I do my research on everything), plus I have an appointment this morning (with someone with an LMSW after their name, good luck figuring out that stands for Licensed Master's in Social Work), and I have to go to sleep NOW... well not quite now, I have to take some laundry out of the washer and put it into the dryer first so it'll be dry for me to pack, as well as for me to wear to my appointment in the morning.