What happens when the xor inBlock chaining returns false? "With block cipher, each plaintext block is XOR-ed with the previous ciphertext block and then encrypted, this is known as block chaining. This prevents identical blocks of plaintext from producing the same ciphertext each time they are encrypted"

What happens inside the clause of the "XOR" statement, to make two equal plain text blocks encode into two different cipher text blocks?
Say you have blocks ABCDEA that you want to encrypt. If you do this naively, then the first and second A produce the same encrypted result, and an attacker would know that your first and last block are the same. 

Instead you encrypt to A’B’C’ etc. by encrypting A -> A’, A’ XOR B ->B’, B’ XOR C -> C’, ..., E’ XOR A -> F’. It looks like you are encrypting random data, nothing an attacker can do. 

The identical plain text blocks are XOR-ed with different previously encrypted blocks, that what’s making them different.