diff -ur xchat2.orig/src/common/text.c xchat2/src/common/text.c --- xchat2.orig/src/common/text.c 2005-11-06 22:47:49.000000000 -0500 +++ xchat2/src/common/text.c 2005-12-15 21:46:59.750000000 -0500 @@ -149,6 +149,22 @@ return dest - 1; } +static char * +magic_strcpy (char *dest, char *src, char *end) +{ + while (*src) + { + *dest = *src; + if (dest + 1 == end) + break; + dest++; + src++; + } + + dest[0] = 0; + return dest - 1; +} + /* substitutes %c %n %s into buffer */ static void @@ -177,6 +193,12 @@ case 's': buf = log_escape_strcpy (buf, s, end); break; + case 'D': + buf = magic_strcpy (buf, "%m/%d/%y", end); + break; + case 'F': + buf = magic_strcpy (buf, "%Y-%m-%d", end); + break; default: buf[0] = '%'; buf++;