From: Warner Losh <imp-uzTCJ5RojNnQT0dZR+AlfA@public.gmane.org>
To: scottwood-KZfg59tc24xl57MIdRCFDg@public.gmane.org
Cc: devicetree-discuss-mnsaURCQ41sdnm+yROfE0A@public.gmane.org
Subject: Re: [PATCH 3/8] Enhance source position implementation.
Date: Wed, 24 Sep 2008 11:23:35 -0600 (MDT) [thread overview]
Message-ID: <20080924.112335.74673920.imp@bsdimp.com> (raw)
In-Reply-To: <48DA73DA.5000603-KZfg59tc24xl57MIdRCFDg@public.gmane.org>
From: Scott Wood <scottwood-KZfg59tc24xl57MIdRCFDg@public.gmane.org>
Subject: Re: [PATCH 3/8] Enhance source position implementation.
Date: Wed, 24 Sep 2008 12:07:38 -0500
> Jon Loeliger wrote:
> > @@ -106,7 +123,9 @@ fail:
> > die("Couldn't open \"%s\": %s\n", fname, strerror(errno));
> > }
> >
> > -void dtc_close_file(struct dtc_file *file)
> > +
> > +void
> > +dtc_close_file(struct dtc_file *file)
>
> :-(
>
> > +char *
> > +srcpos_string(srcpos *pos)
> > +{
> > +# define POS_BUF_SIZE (100)
>
> Local #defines make $YOUTHFUL_DEITY_OFFSPRING cry (and the whitespace
> after the # doesn't help). Declare a "const int", or just use sizeof(buf).
>
> > + const char *fname;
> > + char buf[POS_BUF_SIZE];
> > +
> > + if (pos->file && pos->file->name)
> > + fname = pos->file->name;
> > + else
> > + fname = "<no-file>";
> > +
> > + if (pos->first_line == pos->last_line) {
> > + if (pos->first_column == pos->last_column) {
> > + snprintf(buf, POS_BUF_SIZE, "%s %d:%d",
> > + fname, pos->first_line, pos->first_column);
> > + } else {
> > + snprintf(buf, POS_BUF_SIZE, "%s %d:%d-%d",
> > + fname, pos->first_line,
> > + pos->first_column, pos->last_column);
> > + }
> > +
> > + } else {
> > + snprintf(buf, POS_BUF_SIZE, "%s %d:%d - %d:%d",
> > + fname,
> > + pos->first_line, pos->first_column,
> > + pos->last_line, pos->last_column);
> > + }
>
> Seems a little elaborate; are there cases where reporting the
> line/column of the first character of the token is not clear?
>
> > + return strdup(buf);
>
> Why not just dynamically allocate the buffer in the first place? Or if
> you care about the memory wastage (which you probably don't, given that
> you just leak the allocated string in the callers in later patches),
> make this function take a FILE * to output to, rather than return an
> allocated string.
Wouldn't asprintf be more appropriate? That way you wouldn't have
trunctation issues either that you get with snprintf. While asprintf
is an extension, it is a common enough one...
Warner
next prev parent reply other threads:[~2008-09-24 17:23 UTC|newest]
Thread overview: 25+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-09-23 19:04 [PATCH 0/8] Implement a new DTS Source Language Jon Loeliger
[not found] ` <1222196652-13811-1-git-send-email-jdl-CYoMK+44s/E@public.gmane.org>
2008-09-23 19:04 ` [PATCH 1/8] Remove support for the legacy DTS source file format Jon Loeliger
[not found] ` <1222196652-13811-2-git-send-email-jdl-CYoMK+44s/E@public.gmane.org>
2008-09-23 19:04 ` [PATCH 2/8] Add conditionalized debug() print macro Jon Loeliger
[not found] ` <1222196652-13811-3-git-send-email-jdl-CYoMK+44s/E@public.gmane.org>
2008-09-23 19:04 ` [PATCH 3/8] Enhance source position implementation Jon Loeliger
[not found] ` <1222196652-13811-4-git-send-email-jdl-CYoMK+44s/E@public.gmane.org>
2008-09-23 19:04 ` [PATCH 4/8] Add header files for new Internal Representation form Jon Loeliger
[not found] ` <1222196652-13811-5-git-send-email-jdl-CYoMK+44s/E@public.gmane.org>
2008-09-23 19:04 ` [PATCH 5/8] Add most of the new IR implementation files Jon Loeliger
[not found] ` <1222196652-13811-6-git-send-email-jdl-CYoMK+44s/E@public.gmane.org>
2008-09-23 19:04 ` [PATCH 6/8] Add the main IR evaluation implementation Jon Loeliger
[not found] ` <1222196652-13811-7-git-send-email-jdl-CYoMK+44s/E@public.gmane.org>
2008-09-23 19:04 ` [PATCH 7/8] Introduce new DTS language Jon Loeliger
[not found] ` <1222196652-13811-8-git-send-email-jdl-CYoMK+44s/E@public.gmane.org>
2008-09-23 19:04 ` [PATCH 8/8] Add documentation for the " Jon Loeliger
[not found] ` <1222196652-13811-9-git-send-email-jdl-CYoMK+44s/E@public.gmane.org>
2008-09-25 13:00 ` Josh Boyer
2008-09-24 22:25 ` [PATCH 5/8] Add most of the new IR implementation files Scott Wood
2008-09-24 19:17 ` [PATCH 4/8] Add header files for new Internal Representation form Scott Wood
2008-09-24 17:07 ` [PATCH 3/8] Enhance source position implementation Scott Wood
[not found] ` <48DA73DA.5000603-KZfg59tc24xl57MIdRCFDg@public.gmane.org>
2008-09-24 17:17 ` Jon Loeliger
2008-09-24 17:21 ` Scott Wood
2008-09-24 17:23 ` Warner Losh [this message]
2008-09-24 17:23 ` Scott Wood
2008-09-25 12:42 ` [PATCH 2/8] Add conditionalized debug() print macro Josh Boyer
2008-09-24 2:34 ` [PATCH 0/8] Implement a new DTS Source Language Kumar Gala
[not found] ` <097BFF8D-317F-4E85-AC2A-4C0A8D6C608B-XVmvHMARGAS8U2dJNN8I7kB+6BGkLq7r@public.gmane.org>
2008-09-24 16:51 ` Jon Loeliger
2008-09-24 18:48 ` Jon Loeliger
2008-09-25 4:31 ` David Gibson
2008-09-25 4:26 ` David Gibson
[not found] ` <20080925042613.GJ15169-787xzQ0H9iRg7VrjXcPTGA@public.gmane.org>
2008-09-25 15:25 ` Scott Wood
2008-09-25 3:50 ` David Gibson
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20080924.112335.74673920.imp@bsdimp.com \
--to=imp-uztcj5rojnnqt0dzr+alfa@public.gmane.org \
--cc=devicetree-discuss-mnsaURCQ41sdnm+yROfE0A@public.gmane.org \
--cc=scottwood-KZfg59tc24xl57MIdRCFDg@public.gmane.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox