diff options
Diffstat (limited to 'src/common')
-rw-r--r-- | src/common/extstr.c | 32 | ||||
-rw-r--r-- | src/common/extstr.h | 3 |
2 files changed, 35 insertions, 0 deletions
diff --git a/src/common/extstr.c b/src/common/extstr.c index 4dec066..17cffec 100644 --- a/src/common/extstr.c +++ b/src/common/extstr.c @@ -272,3 +272,35 @@ char *escape_crlf(char *input) return input; } + + +/****************************************************************************** +* * +* Paramètres : input = chaîne de caractères à traiter. * +* max = taille maximale de chaîne acceptable. * +* * +* Description : Borne la taille d'une chaîne à une valeur donnée. * +* * +* Retour : Adresse de la chaîne de caractères ou input si pas besoin. * +* * +* Remarques : - * +* * +******************************************************************************/ + +char *ellipsis(char *input, size_t max) +{ + char *result; /* Chaîne à retourner */ + + if (strlen(input) > max) + { + result = strndup(input, max); + result = stradd(result, "..."); + + free(input); + + } + else result = input; + + return result; + +} diff --git a/src/common/extstr.h b/src/common/extstr.h index fa1b21b..592719e 100644 --- a/src/common/extstr.h +++ b/src/common/extstr.h @@ -47,6 +47,9 @@ 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 *); +/* Borne la taille d'une chaîne à une valeur donnée. */ +char *ellipsis(char *, size_t); + #endif /* _COMMON_EXTSTR_H */ |