I’m wondering if there’s any way to make a variable automatically save its old value, so that I can, e.g., write a minor mode that will automatically restore the old values of variables when it’s deactivated (without having to declare a bunch of -old-value
variables).
You don’t have to declare a new variable each time you want to remember an old value. You could, e.g., put a custom symbol property on the variable symbol with the old value (or list of old values) you wanted to store. Or maintain a single variable mapping all your variable symbols to their old values.