strange behavior about buffer-local variables