The idea was to make it obvious that there is a test for NULL, which can be overlooked because one does not expect assignments in if statements. I didn't check, but maybe the coding conventions say something about doing this in the first place.
Second, I personally prefer NULL over 0 in the case of pointers as it is more explicit.

"This is C" does not apply as C does not dictate that code should be hard to read only because it allows for it.