[svn.haxx.se] · SVN Dev · SVN Users · SVN Org · TSVN Dev · TSVN Users · Subclipse Dev · Subclipse Users · this month's index

Re: svn commit: r999785 - /subversion/trunk/subversion/libsvn_subr/svn_string.c

From: Julian Foad <julian.foad_at_wandisco.com>
Date: Wed, 22 Sep 2010 13:06:58 +0100

Daniel Shahaf wrote:
> Philip Martin wrote on Wed, Sep 22, 2010 at 11:47:19 +0100:
> > Daniel Shahaf <d.s_at_daniel.shahaf.name> writes:
> > > minval is an apr_uint64_t, so shouldn't the format string use APR_UINT64_FMT?
> >
> > See this thread
> >
> > http://svn.haxx.se/dev/archive-2010-09/0295.shtml
>
> and subversion/libsvn_fs_fs/rep-cache.c:153

Which is one of the ways it can be done when a pool is available:

> return svn_error_createf(SVN_ERR_FS_CORRUPT, NULL,
> apr_psprintf(pool,
> _("Representation key for checksum '%%s' exists "
> "in filesystem '%%s' with a different value "
> "(%%ld,%%%s,%%%s,%%%s) than what we were about "
> "to store (%%ld,%%%s,%%%s,%%%s)"),
> APR_OFF_T_FMT, SVN_FILESIZE_T_FMT,
> SVN_FILESIZE_T_FMT, APR_OFF_T_FMT,
> SVN_FILESIZE_T_FMT, SVN_FILESIZE_T_FMT),
> svn_checksum_to_cstring_display(rep->sha1_checksum, pool),
> fs->path, old_rep->revision, old_rep->offset, old_rep->size,
> old_rep->expanded_size, rep->revision, rep->offset, rep->size,
> rep->expanded_size);

That's one way to do it. I'd prefer to format the various fields into
one or more non-localized strings and then include those strings in the
final localized string. For example:

  /* Return a string containing the interesting fields of REP as a
     comma-separated tuple, allocated in POOL. */
  static char *
  rep_tuple_psprintf(const rep_t *rep, apr_pool_t *pool)
  {
    return apr_psprintf(pool,
                        "%ld,%" APR_OFF_T_FMT ",%" SVN_FILESIZE_T_FMT
                                              ",%" SVN_FILESIZE_T_FMT,
                        rep->revision, rep->offset, rep->size,
                        rep->expanded_size);
  }

followed by

  return svn_error_createf(SVN_ERR_FS_CORRUPT, NULL,
    apr_psprintf(pool,
                 _("Representation key for checksum '%%s' exists "
                   "in filesystem '%%s' with a different value "
                   "(%s) than what we were about to store (%s)"),
                 svn_checksum_to_cstring_display(rep->sha1_checksum, pool),
                 fs->path, old_rep, rep);

- Julian
Received on 2010-09-22 14:07:43 CEST

This is an archived mail posted to the Subversion Dev mailing list.