s/@since 1.7.9/@since 1.8
On Tue, Sep 24, 2013 at 12:20 AM, Jorge Zapata <jorgeluis.zap...@gmail.com>wrote: > cedric pushed a commit to branch master. > > > http://git.enlightenment.org/core/efl.git/commit/?id=b5fce696c743c50ea0a049c4f879756b5ed231d4 > > commit b5fce696c743c50ea0a049c4f879756b5ed231d4 > Author: Jorge Zapata <jorgeluis.zap...@gmail.com> > Date: Mon Sep 23 21:13:18 2013 +0200 > > eina: add functions to alloc strings from a printf fmt > --- > src/lib/eina/eina_str.c | 41 +++++++++++++++++++++++++++++++++++++++++ > src/lib/eina/eina_str.h | 33 +++++++++++++++++++++++++++++++++ > 2 files changed, 74 insertions(+) > > diff --git a/src/lib/eina/eina_str.c b/src/lib/eina/eina_str.c > index 11fef3c..283476b 100644 > --- a/src/lib/eina/eina_str.c > +++ b/src/lib/eina/eina_str.c > @@ -652,3 +652,44 @@ eina_str_toupper(char **str) > for (p = *str; (*p); p++) > *p = toupper((unsigned char)(*p)); > } > + > +EAPI size_t > +eina_str_vprintf_length(const char *format, va_list args) > +{ > + char c; > + size_t len; > + > + len = vsnprintf(&c, 1, format, args) + 1; > + return len; > +} > + > +EAPI char * > +eina_str_vprintf_dup(const char *format, va_list args) > +{ > + size_t length; > + char *ret; > + va_list copy; > + > + /* be sure to use a copy or the printf implementation will > + * step into the args > + */ > + va_copy(copy, args); > + length = eina_str_vprintf_length(format, copy); > + va_end(copy); > + > + ret = calloc(length, sizeof(char)); > + vsprintf(ret, format, args); > + return ret; > +} > + > +EAPI char * > +eina_str_printf_dup(const char *format, ...) > +{ > + char *ret; > + va_list args; > + > + va_start(args, format); > + ret = eina_str_vprintf_dup(format, args); > + va_end(args); > + return ret; > +} > diff --git a/src/lib/eina/eina_str.h b/src/lib/eina/eina_str.h > index dae592b..1d8edae 100644 > --- a/src/lib/eina/eina_str.h > +++ b/src/lib/eina/eina_str.h > @@ -345,6 +345,39 @@ static inline size_t eina_str_join(char *dst, size_t > size, char sep, const char > > static inline size_t eina_strlen_bounded(const char *str, size_t maxlen) > EINA_PURE EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1); > > +/** > + * @brief Gets the length needed for a string based on a printf format > and args > + * > + * @param format The printf format > + * @param args The printf args > + * @return The length needed for such format and args > + * @since 1.7.9 > + */ > +EAPI size_t eina_str_vprintf_length(const char *format, va_list args); > + > +/** > + * @brief Gets a newly allocated string that represents the printf format > and args > + * > + * @param format The printf format > + * @param args The printf args > + * @return A newly allocated string > + * > + * @see eina_str_dup_printf > + * @since 1.7.9 > + */ > +EAPI char * eina_str_vprintf_dup(const char *format, va_list args); > + > +/** > + * @brief Gets a newly allocated string that represents the printf format > and args > + * > + * @param format The printf format > + * @return A newly allocated string > + * > + * @see eina_str_dup_vprintf > + * @since 1.7.9 > + */ > +EAPI char * eina_str_printf_dup(const char *format, ...); > + > #include "eina_inline_str.x" > > /** > > -- > > > ------------------------------------------------------------------------------ October Webinars: Code for Performance Free Intel webinars can help you accelerate application performance. Explore tips for MPI, OpenMP, advanced profiling, and more. Get the most from the latest Intel processors and coprocessors. See abstracts and register > http://pubads.g.doubleclick.net/gampad/clk?id=60133471&iu=/4140/ostg.clktrk _______________________________________________ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel