--- deliantra/server/common/utils.C 2006/09/11 01:16:20 1.10 +++ deliantra/server/common/utils.C 2006/09/12 19:20:06 1.11 @@ -1,7 +1,7 @@ /* * static char *rcsid_utils_c = - * "$Id: utils.C,v 1.10 2006/09/11 01:16:20 root Exp $"; + * "$Id: utils.C,v 1.11 2006/09/12 19:20:06 root Exp $"; */ /* @@ -533,6 +533,7 @@ /*trim all trailing commas, spaces etc. */ for (i = strlen (tmp); !isalnum (tmp[i]) && i >= 0; i--) tmp[i] = '\0'; + strcat (tmp, "."); p = strrchr (tmp, ','); @@ -546,6 +547,7 @@ } else strcpy (input, tmp); + return; } @@ -583,3 +585,28 @@ //free (p); return; g_slice_free1 (s, p); } + +void assign (char *dst, const char *src, int maxlen) +{ + if (!src) + src = ""; + + int len = strlen (src); + + if (len >= maxlen - 1) + { + if (maxlen <= 4) + { + memset (dst, '.', maxlen - 1); + dst [maxlen - 1] = 0; + } + else + { + memcpy (dst, src, maxlen - 4); + memcpy (dst + maxlen - 4, "...", 4); + } + } + else + memcpy (dst, src, len + 1); +} +