Actually I misrepresented something here.  the init_file was filled from
handle_debug_option already, I simply code-fu'd that into submission.  I
did not add the init_file handling to handle_debug_options.


On Tue, Jan 8, 2013 at 11:16 AM, Craig Earls <[email protected]> wrote:

> You are correct, of course.  I attempted that approach but decided moving
> the init-file logic to the handle_debug_options was much simpler, even if
> not as obvious from the names of the functions.  Identifying the source of
> the init-file specification was the key to eliminating the bug and I really
> can't see anyway to do it other than using 'on()' (it appears to be the
> only place that function is used based on grepping around the code).  A
> similar approach is needed for the price-db and get-quotes (if it ever
> comes back)...
>
>
>
>
> On Tue, Jan 8, 2013 at 11:04 AM, Johann Klähn <[email protected]> wrote:
>
>> The problem with 'init-file' though is that `read_init()` is called in
>> the constructor of `global_scope_t` and the arguments are read later
>> through a call to `global_scope->read_command_arguments()` in
>> `main()`.
>> Your patch introduced logic for init-file in `handle_debug_options()`.
>> A cleaner way would be to set `init-file` using the option handling
>> code in that constructor but one would have to introduce a further
>> loop to extract the init-file argument before `read_init()` is called.
>> Take a look at `global_scope_t::read_environment_settings()` for how
>> to set an option using the option handling code.
>> Maybe the option definition for `init-file` in `global.h` should check
>> if the file can not be found and throw an error (using 'DO_')? But as
>> the constructor also calls 'on()' the original question remains the
>> same: How to differentiate between default and user-provided value.
>>
>> On Tue, Jan 8, 2013 at 6:06 PM, Craig Earls <[email protected]> wrote:
>> > John,
>> >   Some time ago I submitted a pull request to fix a problem with ledger
>> and
>> > the default init file.  You mentioned on the comments to the pull
>> request
>> > that ledger has a way of signaling that an option came from the command
>> line
>> > (I added a method to interrogate the data for the options command).  I
>> can't
>> > figure it out when/where ledger is storing that information.
>> >
>> > There is a similar problem with pricedb (Bug705) that I want to work,
>> and it
>> > is probably worth solving both the same way.
>> >
>> > --
>> > Craig, Corona De Tucson, AZ
>> > enderw88.wordpress.com
>>
>
>
>
> --
> Craig, Corona De Tucson, AZ
> enderw88.wordpress.com
>



-- 
Craig, Corona De Tucson, AZ
enderw88.wordpress.com

Reply via email to