summaryrefslogtreecommitdiffstats
path: root/web/stuff.c
diff options
context:
space:
mode:
Diffstat (limited to 'web/stuff.c')
-rwxr-xr-xweb/stuff.c269
1 files changed, 0 insertions, 269 deletions
diff --git a/web/stuff.c b/web/stuff.c
deleted file mode 100755
index b02dbb0d..00000000
--- a/web/stuff.c
+++ /dev/null
@@ -1,269 +0,0 @@
-/* Ptt : 常用字串函式整理 */
-#include "mod_ptt.h"
-
-// 缺少 escape_url的東西
-
-/*
- * 檔案判別
- */
-
- /* 傳回:路徑大小 */
-
-off_t
-dashs(fname)
- char *fname;
-{
- struct stat st;
-
- if (!stat(fname, &st))
- return (st.st_size);
- else
- return 0; /* 無此檔是 size 0 */
-}
-
- /* 傳回:路徑時間 */
-long
-dasht(char *fname)
-{
- struct stat st;
-
- if (!stat(fname, &st))
- return (st.st_mtime);
- else
- return -1;
-}
-
- /* 傳回:路徑是否為link檔 */
-int
-dashl(char *fname)
-{
- struct stat st;
- return (lstat(fname, &st) == 0 && S_ISLNK(st.st_mode));
-}
-
- /* 傳回:路徑是否為檔案 */
-dashf(char *fname)
-{
- struct stat st;
-
- return (stat(fname, &st) == 0 && S_ISREG(st.st_mode));
-}
-
-/* 字串的小寫 */
-#define char_lower(c) ((c >= 'A' && c <= 'Z') ? c|32 : c)
-
-void
-str_lower(t, s)
- char *t, *s;
-{
- register char ch;
- do
- {
- ch = *s++;
- *t++ = char_lower(ch);
- } while (ch);
-}
-
-int
-str_ncmp(s1, s2, n)
- char *s1, *s2;
- int n;
-{
- int c1, c2;
-
- while (n--)
- {
- c1 = *s1++;
- if (c1 >= 'A' && c1 <= 'Z')
- c1 |= 32;
-
- c2 = *s2++;
- if (c2 >= 'A' && c2 <= 'Z')
- c2 |= 32;
-
- if (c1 -= c2)
- return (c1);
-
- if (!c2)
- break;
- }
- return 0;
-}
-char *
-memstr(char *mem, char *str, int size)
-{
- char *loc, *ptr=mem, *end=mem+size;
- int len = strlen(str);
- while((loc = memchr(ptr, *str, size)))
- {
- if(!strncmp(loc, str, len))
- return loc;
- ptr = loc +1;
- size = (end - ptr);
- if(size <=0 ) return NULL;
- }
- return NULL;
-}
-
-/* 傳回: strstr的比較但不計大小寫的結果 */
-/*
-char *
-strcasestr(str, tag)
- char *str, *tag;
-{
- char buf[BUFLEN];
-
- str_lower(buf, str);
- return strstr(buf, tag);
-}
-*/
-
-/* 傳回: 一個checksum 給字串比較用 */
-
-int str_checksum(char *str)
-{
- int n=1;
- if(strlen(str) < 6) return 0;
- while(*str)
- n += *str++ ^ n;
- return n;
-}
-
-int
-not_alpha(ch)
- register char ch;
-{
- return (ch < 'A' || (ch > 'Z' && ch < 'a') || ch > 'z');
-}
-
-int
-not_alnum(ch)
- register char ch;
-{
- return (ch < '0' || (ch > '9' && ch < 'A') ||
- (ch > 'Z' && ch < 'a') || ch > 'z');
-}
-
-char
-ch2ph(char ch)
-{
- static const
- // a b c d e f g h i j k l m n o
- char table[]={'2','2','2','3','3','3','4','4','4','5','5','5','6','6','6',
- // p q r s t u v w x y z
- '7','1','7','7','8','8','8','9','9','9','1'};
- static char d;
- d = char_lower(ch);
- if(d>='a' && d<='z') d=table[d-'a'];
- return d;
-}
-
-void
-archiv32(chrono, fname)
- time_t chrono; /* 32 bits */
- char *fname; /* 7 chars */
-{
- char *str;
- char radix32[32] = {
- '0', '1', '2', '3', '4', '5', '6', '7',
- '8', '9', 'A', 'B', 'C', 'D', 'E', 'F',
- 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N',
- 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V',
- };
-
- str = fname + 7;
- *str = '\0';
- for (;;)
- {
- *(--str) = radix32[chrono & 31];
- if (str == fname)
- return;
- chrono >>= 5;
- }
-}
-
-/* ARPANET時間格式 */
-char *
-Atime(clock)
- time_t *clock;
-{
- static char datemsg[40];
- /* ARPANET format: Thu, 11 Feb 1999 06:00:37 +0800 (CST) */
- /* strftime(datemsg, 40, "%a, %d %b %Y %T %Z", localtime(clock)); */
- /* time zone的傳回值不知和ARPANET格式是否一樣,先硬給,同sendmail*/
- strftime(datemsg, 40, "%a, %d %b %Y %T +0800 (CST)", localtime(clock));
- return (datemsg);
-}
-
-
-/* userid是否合法 */
-int
-bad_user_id(userid)
- char *userid;
-{
- register char ch;
- if (strlen(userid) < 2)
- return 1;
- if (not_alpha(*userid))
- return 1;
- if (!strcasecmp(userid, "new") || !strcasecmp(userid, "guest") ||
- !strcasecmp(userid, "root") || !strcasecmp(userid, "webadm") ||
- !strncasecmp(userid,"yam",3)
- )
- return 1;
-
- while (ch = *(++userid))
- {
- if (not_alnum(ch) || ch == '0')
- return 1;
- }
- return 0;
-}
-
-
-int
-logfile(pool *p, char *filename,char *buf)
-{
- FILE *fp;
- time_t now;
- if( (fp = ap_pfopen(p, filename, "a" )) ) {
-
- fputs( buf, fp );
- if(!strchr(buf,'\n'))
- {
- now = time(NULL);
- fputs(ctime(&now), fp);
- }
- ap_pfclose(p, fp );
- return 0;
- }
- else{
- printf("error open file");
- return -1;
- }
-}
-
-/* 檢查中文斷字問題 */
-char *strexam(char *s)
-{
- int i;
- int odd;
- for (i = 0, odd = 0; s[i]; i++)
- if (odd) odd = 0;
- else if (s[i] & 128) odd = 1;
- if (odd) s[--i] = 0;
- return s;
-}
-
-int
-maxline(char *data,char *newline, int max)
-{
- register int n, nlen=strlen(newline);
- register char *po;
-
- for(n=0, po = data; (po = strstr(po, newline)); po+=nlen)
- {
- if(++n>=max) {*po=0; return -1;}
- }
- return n;
-}