diff options
author | in2 <in2@63ad8ddf-47c3-0310-b6dd-a9e9d9715204> | 2002-03-07 23:13:44 +0800 |
---|---|---|
committer | in2 <in2@63ad8ddf-47c3-0310-b6dd-a9e9d9715204> | 2002-03-07 23:13:44 +0800 |
commit | ae31e19f92e717919ac8e3db9039eb38d2b89aae (patch) | |
tree | c70164d6a1852344f44b04a653ae2815043512af /mbbsd/kaede.c | |
download | pttbbs-ae31e19f92e717919ac8e3db9039eb38d2b89aae.tar pttbbs-ae31e19f92e717919ac8e3db9039eb38d2b89aae.tar.gz pttbbs-ae31e19f92e717919ac8e3db9039eb38d2b89aae.tar.bz2 pttbbs-ae31e19f92e717919ac8e3db9039eb38d2b89aae.tar.lz pttbbs-ae31e19f92e717919ac8e3db9039eb38d2b89aae.tar.xz pttbbs-ae31e19f92e717919ac8e3db9039eb38d2b89aae.tar.zst pttbbs-ae31e19f92e717919ac8e3db9039eb38d2b89aae.zip |
Initial revision
git-svn-id: http://opensvn.csie.org/pttbbs/pttbbs/trunk/pttbbs@1 63ad8ddf-47c3-0310-b6dd-a9e9d9715204
Diffstat (limited to 'mbbsd/kaede.c')
-rw-r--r-- | mbbsd/kaede.c | 95 |
1 files changed, 95 insertions, 0 deletions
diff --git a/mbbsd/kaede.c b/mbbsd/kaede.c new file mode 100644 index 00000000..c0bd5103 --- /dev/null +++ b/mbbsd/kaede.c @@ -0,0 +1,95 @@ +/* $Id: kaede.c,v 1.1 2002/03/07 15:13:48 in2 Exp $ */ +#include <stdio.h> +#include <string.h> +#include <time.h> +#include <unistd.h> +#include <stdlib.h> +#include <sys/types.h> +#include "config.h" +#include "pttstruct.h" +#include "proto.h" + +extern struct utmpfile_t *utmpshm; +extern userec_t cuser; + +char *Ptt_prints(char *str, int mode) { + char *po , strbuf[256]; + + while((po = strstr(str, "\033*s"))) { + po[0] = 0; + sprintf(strbuf, "%s%s%s", str, cuser.userid, po + 3); + strcpy(str, strbuf); + } + while((po = strstr(str, "\033*t"))) { + time_t now = time(0); + + po[0] = 0; + sprintf(strbuf, "%s%s", str, Cdate(&now)); + str[strlen(strbuf)-1] = 0; + strcat(strbuf, po + 3); + strcpy(str, strbuf); + } + while((po = strstr(str, "\033*u"))) { + int attempts; + + attempts = utmpshm->number; + po[0] = 0; + sprintf(strbuf, "%s%d%s", str, attempts, po + 3); + strcpy(str, strbuf); + } + while((po = strstr(str, "\033*b"))) { + po[0] = 0; + sprintf(strbuf, "%s%d/%d%s", str, cuser.month, cuser.day, po + 3); + strcpy(str, strbuf); + } + while((po = strstr(str, "\033*l"))) { + po[0] = 0; + sprintf(strbuf, "%s%d%s", str, cuser.numlogins, po + 3); + strcpy(str, strbuf); + } + while((po = strstr(str, "\033*p"))) { + po[0] = 0; + sprintf(strbuf, "%s%d%s", str, cuser.numposts, po + 3); + strcpy(str, strbuf); + } + while((po = strstr(str, "\033*n"))) { + po[0] = 0; + sprintf(strbuf, "%s%s%s", str, cuser.username, po + 3); + strcpy(str, strbuf); + } + while((po = strstr(str, "\033*m"))) { + po[0] = 0; + sprintf(strbuf, "%s%d%s", str, cuser.money, po + 3); + strcpy(str, strbuf); + } + strip_ansi(str, str ,mode); + return str; +} + +int Rename(char* src, char* dst) { + if(rename(src, dst) == 0) + return 0; + return -1; +} + +int Link(char* src, char* dst) { + char cmd[200]; + + if(strcmp(src, BBSHOME "/home") == 0) + return 1; + if(link(src, dst) == 0) + return 0; + + sprintf(cmd, "/bin/cp -R %s %s", src, dst); + return system(cmd); +} + +char *my_ctime(const time_t *t) { + struct tm *tp; + static char ans[100]; + + tp = localtime(t); + sprintf(ans, "%02d/%02d/%02d %02d:%02d:%02d", (tp->tm_year % 100), + tp->tm_mon + 1,tp->tm_mday, tp->tm_hour, tp->tm_min, tp->tm_sec); + return ans; +} |