diff options
author | Cyrille Bagard <nocbos@gmail.com> | 2018-02-21 21:34:55 (GMT) |
---|---|---|
committer | Cyrille Bagard <nocbos@gmail.com> | 2018-02-21 21:34:55 (GMT) |
commit | a60e1fe19d09eb379c88fdbbe018ca086dc05bcb (patch) | |
tree | e72fa012a465517fe3b2f728d750b008ba88d707 /src/common | |
parent | 0769fafb253b846b58cd97c4a1df98ca7417ae1c (diff) |
Cut symbol labels using words instead of single characters.
Diffstat (limited to 'src/common')
-rw-r--r-- | src/common/extstr.c | 46 | ||||
-rw-r--r-- | src/common/extstr.h | 3 |
2 files changed, 49 insertions, 0 deletions
diff --git a/src/common/extstr.c b/src/common/extstr.c index bd561ba..83dcace 100644 --- a/src/common/extstr.c +++ b/src/common/extstr.c @@ -251,6 +251,52 @@ char *_strxxx(char *str, int (* fn) (int)) /****************************************************************************** * * +* Paramètres : str = chaîne de caractères à traiter. [OUT] * +* delim = mot de séparation entre les mots identifiés. * +* * +* Description : Extrait un mot d'une chaîne selon des séparations longues. * +* * +* Retour : Chaîne de caractères cernée ou NULL. * +* * +* Remarques : - * +* * +******************************************************************************/ + +char *strtok_w(char **str, const char *delim) +{ + char *result; + char *haystack; + char *next; + const char *diter; + + haystack = *str; + + if (haystack == NULL) + result = NULL; + + else + { + result = haystack; + + next = strstr(haystack, delim); + + if (next != NULL) + { + for (diter = delim; *diter; diter++, next++) + *next = '\0'; + } + + *str = next; + + } + + return result; + +} + + +/****************************************************************************** +* * * Paramètres : str = chaîne de caractères à traiter. * * delim = séparateur entre les mots. * * count = nombre de mots trouvés. [OUT] * diff --git a/src/common/extstr.h b/src/common/extstr.h index f803129..d5bbee6 100644 --- a/src/common/extstr.h +++ b/src/common/extstr.h @@ -52,6 +52,9 @@ char *_strxxx(char *, int (* fn) (int)); #define strlower(str) _strxxx(str, tolower) #define strupper(str) _strxxx(str, toupper) +/* Extrait un mot d'une chaîne selon des séparations longues. */ +char *strtok_w(char **, const char *); + /* Extrait une liste de mots d'une chaîne. */ char **strtoka(const char *, const char *, size_t *); |