I'm writing a small package and am using kvoptions to parse key-val options passed to it as:
\RequirePackage{kvoptions}
\SetupKeyvalOptions{family=my,prefix=my@}
\DeclareStringOption[bar]{foo}
\DeclareStringOption[5.75]{len}
...
\ProcessKeyvalOptions*
At this point (after \ProcessKeyvalOptions* is called) I'd like to get a list of all keys that are defined and do something to them in a loop, e.g. append the string " yes" to all of them. I know I could manually add \edef\my@<option>{\my@<option> yes} for each of them, but I'd like to automate that.
By "keys that are defined" I mean all keys that are declared using \Declare*Option, not just those that are passed to the package -- but I'd also appreciate input on how to do the latter.
I had a brief look at kvoptions.sty and it defines and uses \KVO@GetClassOptionsList but that seems to be empty after \ProcessKeyvalOptions* is called. There is \KVO@classoptionslist but that's the class' options. I can see the @for loop in the kvoptions code ... I should probably spend some time looking into it. Any expert help will be much appreciated.