[PATCH] Clean up diff_setup() to make it more extensible.