Re: [patch+7.5] auto-load: User conveniences suggested by Doug Evans

Eli Zaretskii
2012-08-24T18:15:45Z

> Date: Fri, 24 Aug 2012 18:10:59 +0200
> From: Jan Kratochvil <jan.kratochvil@redhat.com>
> Cc: gdb-patches@sourceware.org, dje@google.com
>
> On Tue, 21 Aug 2012 19:50:25 +0200, Eli Zaretskii wrote:
> > > + if (!advice_printed)
> > > + {
> > > + const char *homedir = getenv ("HOME");
> > > + char *homeinit;
> > > +
> > > + if (homedir == NULL)
> > > + homedir = "$HOME";
> >
> > This should fall back on $USERPROFILE or on $APPDATA on MS-Windows if
> > $HOME is not defined. $USERPROFILE/$APPDATA are Windows equivalents
> > of $HOME, but some Windows users (including yours truly) set $HOME to
> > another directory (e.g., I don't like having my precious files on a
> > system disk, because disasters strike there more frequently).
>
> GDB main.c get_init_files does just:
> homedir = getenv ("HOME");
>
> So if getenv ("HOME") does not work GDB will not find such .gdbinit file
> anyway. GDB maybe should do on MS-Windows also getenv ("USERPROFILE") etc.
> but that is an unrelated issue needing a fix in main.c get_init_files first.
>
> That part
> if (homedir == NULL)
> homedir = "$HOME";
>
> may apply for MinGW but it tries to suggest you should 'set HOME c:\' for
> example first. It is very MinGW specific problem. Any change here without
> change in main.c get_init_files does not make sense.

We should change them all, but at the very least we should not make
the problem worse than it already is, IMO.

> > > + printf_filtered (_("\
> > > +To enable execution of this file add \"add-auto-load-safe-path %s\" \
> > > +line to \"%s\".\n\
> >
> > Suggest to move the "add-auto-load-safe-path" part to a new line,
> > because the file name displayed after that will probably overflow the
> > terminal line.
>
> Even the line "add-auto-load-safe-path %s" itself may and will overflow the
> terminal line.

But more file names will fit then.

> > > + scripts_directory_help = xstrprintf (_("\
> > > +Automatically loaded %s%s%sGDB scripts\n\
> > > +(named OBJFILE%s) are located in one of the directories listed by this\n\
> > > +option.\n\
> > > +This option is ignored for the kinds of scripts \
> > > +having 'set auto-load ... off'.\n\
> > > +Directories listed here need to be present also \
> > > +in the 'set auto-load safe-path'\n\
> > > +option."),
> >
> > Here, the lines are unnecessarily too short, IMO.
>
> I think there should be some clear decision what should the GDB output conform
> to. In this and the paragraph above we have exactly opposite opinions whether
> to wrap the text or not.

The above simply looks aesthetically wrong to me. Whatever standards
we set, they should first and foremost be presentable.

> My opinion:
> So far I believe constant text should be formatted to 80 columns, which is
> terrible to read but it should conform to GNU Coding Style like the source
> does.

Division into lines is not only an aesthetical issue. It can also
separate parts that are not as coupled as others. So it's not just a
technical issue of how many characters to leave on each line, IMO.

> > If the problem is that these can be both files and directories,
>
> Yes.
>
> > let's say "list of files and directories that are safe for auto-loading".
>
> OK. I hope you are fine with "path" in the second part:
>
> -for the 'set auto-load ...' options. Each directory can be also shell\n\
> +for the 'set auto-load ...' options. Each path entry can be also shell\n\
> wildcard pattern; '*' does not match directory separator.\n\

Yes, "path entry" is OK.

Thanks.