sparse: correctly handle "-D foo" and "-U foo"