[pacman-dev] [PATCH v2 3/3] Align titles automatically in information display
Pierre Neidhardt
ambrevar at gmail.com
Tue Oct 20 08:29:43 UTC 2015
On 15-10-19 17:22:55, Dave Reisner wrote:
> On Sat, Oct 17, 2015 at 07:02:57PM +0200, Pierre Neidhardt wrote:
> > +/* we truncate titles longer than this arbitrary value */
>
> Well no, it isn't arbitrary, you said so yourself. Why not state this?
> Something like:
>
> "As of such and such a date, the longest relevant string from the PO
> files was measured to be X characters long. We set this to 50 to allow
> for some potential growth."
>
> > +#define TITLE_MAXLEN 50
> > +
> > +/* A title is referenced by titles[T_XXX]. The T_ prefix avoids shadowing. */
>
> Not a useful comment. Nowhere in this file do you explain what a "title"
> is.
The term "title" is used (not only by me) here and there throughout the code.
(See 'util.c'.) I thought this was a given, but it does not cost much to explain
here what it is. What is more useful though is to explain what an "aligned
title" is.
> The fact that you use a prefix is quite obviously done to make for
> unique enum identifiers.
>
> > +enum {
> > + T_ARCHITECTURE = 0,
> > + T_BACKUP_FILES,
> > + T_BUILD_DATE,
> > + T_COMPRESSED_SIZE,
> > + T_CONFLICTS_WITH,
> > + T_DEPENDS_ON,
> > + T_DESCRIPTION,
> > + T_DOWNLOAD_SIZE,
> > + T_GROUPS,
> > + T_INSTALL_DATE,
> > + T_INSTALL_REASON,
> > + T_INSTALL_SCRIPT,
> > + T_INSTALLED_SIZE,
> > + T_LICENSES,
> > + T_MD5_SUM,
> > + T_NAME,
> > + T_OPTIONAL_DEPS,
> > + T_OPTIONAL_FOR,
> > + T_PACKAGER,
> > + T_PROVIDES,
> > + T_REPLACES,
> > + T_REPOSITORY,
> > + T_REQUIRED_BY,
> > + T_SHA_256_SUM,
> > + T_SIGNATURES,
> > + T_URL,
> > + T_VALIDATED_BY,
> > + T_VERSION,
> > + TITLE_COUNT
>
> Please comment that this is a sentinel value and needs to be last...
OK.
> I'd also love to claim that this needs to share the same prefix as the enums
> it belongs to (and have an underscore prefix), but there's not really any
> prevailing coding style in ALPM that I can lean on to "enforce" that.
Agreed, but I prefer keeping underscore prefixes for library code. This is not
ALPM but the pacman frontend if this is what you meant.
> > +};
> > +
> > +static char titles[TITLE_COUNT][TITLE_MAXLEN * sizeof(wchar_t)];
> > +
> > +/** Truncate all titles longer than TITLE_MAX and pad the rest with spaces so
> > + * that they align with the longest title. " :" is appended to all titles.
> > + *
> > + * Truncation allows us to avoid allocations and clean up code.
>
> This isn't a useful comment. It's stack allocation which avoids the
> cleanup and allocation, not truncation. Being forced to truncate is a
> side effect of using stack allocating.
Agreed.
> Perhaps something like:
>
> "Build an array of localized strings used to create aligned titles in
> verbose package information. Storage for strings is stack allocated and
> naively truncated to TITLE_MAXLEN characters."
Your version is a bit misleading: we could think that the alignment happens
outside this function. It misses an explanation for what "aligning" titles
precisely means. I'd say:
> Build the `titles` array of localized titles and pad them with spaces so
> that they align with the longest title. Storage for strings is stack
> allocated and naively truncated to TITLE_MAXLEN characters."
--
Pierre Neidhardt
It is better to have loved and lost than just to have lost.
More information about the pacman-dev
mailing list