options: remove CONF_OLD option flag
commitfad3585ef4861b227c0a7f577556e3918a46137e
authorUoti Urpala <uau@glyph.nonexistent.invalid>
Mon, 31 Jan 2011 19:53:05 +0000 (31 21:53 +0200)
committerUoti Urpala <uau@glyph.nonexistent.invalid>
Mon, 31 Jan 2011 19:53:05 +0000 (31 21:53 +0200)
tree3cd42ee65b2de8de63adf47a84b90188e4c9bdd3
parent4ea60a3d0ec4f01f3c319d6f155653f4f890632f
options: remove CONF_OLD option flag

The resulting semantics of this flag are weird enough that they're
unlikely to be what is wanted in any situation. Remove the flag and
convert the two options using it, -screenw and -screenh, to use
CONF_NOSAVE instead. I'm not sure why those specific options had the
flag and if any flag is really needed, but I don't want to check in
detail now and using CONF_NOSAVE should keep about the same behavior
in practice.

A bit more detail about the weird behavior this flag had:

When not using file groups, the flag had the same behavior as
CONF_NOSAVE, namely that when switching files the option would not be
reset to the global value (only possible file-specific settings were
applied). When using file groups, group-specific options would apply
to the _first two_ files in the group, but for the rest after the
first two, settings would not be reset when changing files (wtf?).
This was a result of the following sequence:
1) push higher-level settings, enter group
2) apply group-specific settings
3) push settings before applying ones specific to file 1 in group
4) apply file 1 settings, play file 1
5) pop settings to return to group settings
6) push settings before applying ones specific to file 2
7) apply file 2 settings
8) pop settings

Here the option was set at 2). 3) saved it because it had been set
after last push, so 5) restored the setting and it was used for file 2
too. However 6) no longer saved it because there had been pushes after
the original setting in 2), thus 8) no longer restored the setting and
the option was no longer forced to any particular value when playing
further files after that.
cfg-mplayer.h
m_config.c
m_option.h