diff options
| author | Cyrille Bagard <nocbos@gmail.com> | 2009-07-12 15:26:23 (GMT) | 
|---|---|---|
| committer | Cyrille Bagard <nocbos@gmail.com> | 2009-07-12 15:26:23 (GMT) | 
| commit | c9465acd65e197e48da8648eb8d1ef602d6772ed (patch) | |
| tree | fbb5ceaaa683bd1beb0b66d5e5d212b927a9f6b0 /src/common | |
| parent | 5f2cd35c377989e07b241870f89fdf87d851465d (diff) | |
Read and saved projects from and into XML files.
git-svn-id: svn://svn.gna.org/svn/chrysalide/trunk@91 abbe820e-26c8-41b2-8c08-b7b2b41f8b0a
Diffstat (limited to 'src/common')
| -rw-r--r-- | src/common/extstr.c | 38 | ||||
| -rw-r--r-- | src/common/extstr.h | 6 | 
2 files changed, 44 insertions, 0 deletions
| diff --git a/src/common/extstr.c b/src/common/extstr.c index 5b2dfd8..f8e83f2 100644 --- a/src/common/extstr.c +++ b/src/common/extstr.c @@ -184,6 +184,44 @@ char *strrpl(char *haystack, const char *needle1, const char *needle2)  /******************************************************************************  *                                                                             * +*  Paramètres  : str   = chaîne de caractères à traiter.                      * +*                delim = séparateur entre les mots.                           * +*                count = nombre de mots trouvés. [OUT]                        * +*                                                                             * +*  Description : Extrait une liste de mots d'une chaîne.                      * +*                                                                             * +*  Retour      : Tableau construit à libérer de la mémoire.                   * +*                                                                             * +*  Remarques   : -                                                            * +*                                                                             * +******************************************************************************/ + +char **strtoka(const char *str, const char *delim, size_t *count) +{ +    char **result;                          /* Tableau à retourner         */ +    char *tmp;                              /* Sauvegarde modifiable       */ +    char *word;                             /* Nouveau mot détecté         */ + +    result = NULL; +    *count = 0; + +    tmp = strdup(str); + +    for (word = strtok(tmp, delim); word != NULL; word = strtok(NULL, delim)) +    { +        result = (char **)realloc(result, ++(*count) * sizeof(char *)); +        result[*count - 1] = strdup(word); +    } + +    free(tmp); + +    return result; + +} + + +/****************************************************************************** +*                                                                             *  *  Paramètres  : input = chaîne de caractères à traiter.                      *  *                                                                             *  *  Description : S'assure qu'une chaîne de caractères tient sur une ligne.    * diff --git a/src/common/extstr.h b/src/common/extstr.h index 3e27608..80759b5 100644 --- a/src/common/extstr.h +++ b/src/common/extstr.h @@ -25,6 +25,9 @@  #define _COMMON_EXTSTR_H +#include <sys/types.h> + +  /* Complète une chaîne de caractères avec une autre. */  char *stradd(char *str1, const char *str2); @@ -38,6 +41,9 @@ int strrcmp(const char *, const char *);  /* Remplace des éléments d'une chaîne par d'autres. */  char *strrpl(char *, const char *, const char *); +/* Extrait une liste de mots d'une chaîne. */ +char **strtoka(const char *, const char *, size_t *); +  /* S'assure qu'une chaîne de caractères tient sur une ligne. */  char *escape_crlf(char *); | 
