diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/common/extstr.c | 43 | ||||
| -rw-r--r-- | src/common/extstr.h | 3 | 
2 files changed, 46 insertions, 0 deletions
| diff --git a/src/common/extstr.c b/src/common/extstr.c index 9142bd9..3041be0 100644 --- a/src/common/extstr.c +++ b/src/common/extstr.c @@ -26,7 +26,9 @@  #include <malloc.h>  #include <regex.h> +#include <stdio.h>  #include <string.h> +#include <stdarg.h> @@ -96,6 +98,47 @@ char *strnadd(char *str1, const char *str2, size_t n)  /******************************************************************************  *                                                                             *  *  Paramètres  : str1 = chaîne de caractères à compléter.                     * +*                fmt  = description de la forme de la chaîne complémentaire.  * +*                ...  = éléments associés au format à construire.             * +*                                                                             * +*  Description : Complète une chaîne de caractères avec une chaîne à formater.* +*                                                                             * +*  Retour      : Chaîne de caractères complétée, à libérer de la mémoire.     * +*                                                                             * +*  Remarques   : -                                                            * +*                                                                             * +******************************************************************************/ + +char *straddfmt(char *str1, const char *fmt, ...) +{ +    char *result;                           /* Chaîne à renvoyer           */ +    va_list ap;                             /* Liste des arguments         */ +    char *tmp;                              /* Conservation temporaire     */ +    int ret;                                /* Bilan intermédiaire         */ + +    va_start(ap, fmt); + +    ret = vasprintf(&tmp, fmt, ap); + +    if (ret != -1) +    { +        result = stradd(str1, tmp); +        free(tmp); +    } + +    else +        result = str1; + +    va_end(ap); + +    return result; + +} + + +/****************************************************************************** +*                                                                             * +*  Paramètres  : str1 = chaîne de caractères à compléter.                     *  *                str2 = chaîne de caractères à ajouter.                       *  *                                                                             *  *  Description : Fait précéder une chaîne de caractères par une autre.        * diff --git a/src/common/extstr.h b/src/common/extstr.h index 1c39603..c4e671e 100644 --- a/src/common/extstr.h +++ b/src/common/extstr.h @@ -37,6 +37,9 @@ char *stradd(char *, const char *);  /* Complète une chaîne de caractères avec une autre. */  char *strnadd(char *, const char *, size_t); +/* Complète une chaîne de caractères avec une chaîne à formater. */ +char *straddfmt(char *, const char *, ...); +  /* Fait précéder une chaîne de caractères par une autre. */  char *strprep(char *, const char *); | 
