[MPlayer-dev-eng] [PATCH] Add mp_strings.c with mp_asprintf function.

Clément Bœsch ubitux at gmail.com
Fri Jan 21 15:28:33 CET 2011


On Fri, Jan 21, 2011 at 07:52:20AM +0100, Reimar Döffinger wrote:
> On 20 Jan 2011, at 21:48, Diego Biurrun <diego at biurrun.de> wrote:
> > On Thu, Jan 20, 2011 at 09:25:45PM +0100, Clément Bœsch wrote:
> >> On Tue, Jan 18, 2011 at 09:43:55AM +0100, Diego Biurrun wrote:
> >>> On Wed, Jan 12, 2011 at 11:44:32PM +0100, Clément Bœsch wrote:
> >>>> 
> >>>> I just made a small equivalent to the GNU asprintf function (since I
> >>>> suppose it's not available on all system supported by mplayer) in order to
> >>>> use it in a few places instead of fixed size buffers like BUFLENGTH in
> >>>> some vo (jpeg, png, …) and maybe a few other PATH_MAX we were speaking a
> >>>> while ago.
> >>> 
> >>> The traditional place for this is the osdep/ directory.  You should also
> >>> check in configure for its presence.
> >>> 
> >> 
> >> I would have done it in case the function were called "asprintf", and as
> >> pointed out on IRC, it would need a configure test, conditionally
> >> compilation, etc. which is a small burden.
> > 
> > It's easy enough to do.  If you need help, ask.
> 
> I have some concerns that this might also cause some issues when trying
> to move to std=c99.

What kind of issue?

> Also having our own wrapper means we can add things like limiting the
> allocation size in the function instead of having a check before each
> call.

As you wish. Here is a second patch with asprintf tested at configure
time, choose whatever you prefer.

Note on this second patch: I can't test it properly, but I mostly based
the code on the strsep code so it should do the trick. If anyone can
test it on a non-gnu system, please test if osdep/asprintf.c is well built.

Note 2: maybe there is some kind of helper to simplify the test, and still
not in use for the strsep code, but I didn't find one. If there is, I'll
of course update the code.

-- 
Clément B.


More information about the MPlayer-dev-eng mailing list