Improving name-truncation detection
Wayne Davison
wayned at samba.org
Tue Jan 20 02:00:32 GMT 2004
On Mon, Jan 19, 2004 at 05:44:20PM -0800, Wayne Davison wrote:
> I'll append my util.c patch to this email.
Or perhaps to this one...
..wayne..
-------------- next part --------------
--- util.c 2 Jan 2004 07:31:02 -0000 1.123
+++ util.c 20 Jan 2004 01:14:34 -0000
@@ -553,6 +553,36 @@ void strlower(char *s)
}
}
+/* Join any number of strings together, putting them in "dest". The return
+ * value is the length of all the strings, regardless of whether they fit in
+ * destsize or not. Just NULL-terminate the list of strings. This function
+ * is _much_ faster than a comparable snprintf() call. */
+size_t stringjoin(char *dest, size_t destsize, ...)
+{
+ va_list ap;
+ size_t len, ret = 0;
+ const char *src;
+
+ va_start(ap, destsize);
+ while (1) {
+ if (!(src = va_arg(ap, const char *)))
+ break;
+ len = strlen(src);
+ ret += len;
+ if (destsize > 1) {
+ if (len >= destsize)
+ len = destsize - 1;
+ memcpy(dest, src, len);
+ destsize -= len;
+ dest += len;
+ }
+ }
+ *dest = '\0';
+ va_end(ap);
+
+ return ret;
+}
+
void clean_fname(char *name)
{
char *p;
More information about the rsync
mailing list