mirror of
https://git.tartarus.org/simon/putty.git
synced 2025-07-13 17:17:37 -05:00

The new ConfKeyInfo structure now includes some fields indicating how to load and save each config option: what keyword it's stored under in the saved settings file, and what its default value should be set to when loading a session that doesn't mention it. (Including, of course, loading the null session at program startup.) So far, this only applies to the saved settings that are sufficiently simple: a single integer, string or boolean value whose internal format matches its storage format, or an integer value consisting of a finite enumeration with a fixed mapping between its internal and storage formats. Anything more difficult than that - mappings, variable defaults, config options tied together, options that still support a legacy save format alongside the up-to-date one, things under #ifdef - hasn't yet been tampered with. This allows a large amount of repetitive code in settings.c to be deleted, and replaced by simple loops over the conf_key_info array doing all the easy work. The remaining manual load/save code per option is all there because it's difficult in some way. The transitional test_conf program still passes after this upheaval.