On 20 Apr 2023, at 16:52, Gustaf Waldemarson <gustaf.waldemar...@gmail.com> wrote:
> Oh i see you read all the files. > Usually you need to stop looking once you find an rc file.
I guess that really depends on the program, but since pdb is modelled on gdb, I figured it made sense to do something similar :)
Turns out the gdbinit behaviour is complex.2.1.4.3 Home directory initialization fileAfter loading the system wide initialization files GDB will look for an initialization file in the users home directory2. There are a number of locations that GDB will search in the home directory, these locations are searched in order and GDB will load the first file that it finds, and subsequent locations will not be checked. On non-Apple hosts the locations searched are: - $XDG_CONFIG_HOME/gdb/gdbinit
- $HOME/.config/gdb/gdbinit
- $HOME/.gdbinit
- Then ./.gdbinit is loaded if . Is not ~/
- And you need different logic for macOS.
Anyways, I'll prep a pull-request for the cpython repo, should be interesting to see what comes up.
Best regards, Gustaf
Interesting, are you both sure ./.pdbrc should be the first file? I was expecting the order to always go from "most general" to "most specific", i.e., "system" -> "home" -> "current". This way, it would be straightforward to have general configuration in a "system"/"home" configuration which can be overwritten in a more specialized one ("current").
Oh i see you read all the files. Usually you need to stop looking once you find an rc file.
Barry
Coincidentally, this is also the order GDB is using:
Any particular reason you guys prefer a different order?
> Not your job, but I bet you get "are there other stdlib applications
> that would benefit from this change?" as feedback. Eg, IDLE.
Probably, but lets start the discussion somewhere!
Best regards, Gustaf
I apologize for the top-post and awkward trimming, my employer just
switched to o365 and won't accomodate my existing mail client so I'm
stuck with a crappy webmail client on this address. :-p
I agree with Barry on both points: seems like a good idea, but the
search priority should be
./.pdbrc first.
Not your job, but I bet you get "are there other stdlib applications
that would benefit from this change?" as feedback. Eg, IDLE.
2023-04-19 02:50 に Barry さんは書きました:
>> + for rcFileName in ('${XDG_CONFIG_HOME}/python/pdbrc',
>> + '~/.config/python/pdbrc',
>> + '~/.pdbrc',
>> + '.pdbrc'):
> I would expect .pdbrc to be first.
>
>> + rcPath =
>> os.path.expanduser(os.path.expandvars(rcFileName))
>> + try:
>> + with open(rcPath, encoding='utf-8') as rcFile:
>> + self.rcLines.extend(rcFile)
>> + except OSError:
>> + pass
>>
>> self.commands = {} # associates a command list to
>> breakpoint numbers
>> self.commands_doprompt = {} # for each bp num, tells if
>> the prompt
>
> Try raising a python bug and a PR with this code in it.
> Seems reasonable change to support.
>
> Barry
|