summaryrefslogtreecommitdiff
path: root/src/common
diff options
context:
space:
mode:
Diffstat (limited to 'src/common')
-rw-r--r--src/common/extstr.c32
-rw-r--r--src/common/extstr.h3
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 */