From b27ece46a69aa7d5b9a759a2164609dab689f258 Mon Sep 17 00:00:00 2001 From: piaip Date: Wed, 26 Mar 2008 17:26:28 +0000 Subject: (internal) refine directory layout: libbbs/libbbsutil -> common/bbs,sys. git-svn-id: http://opensvn.csie.org/pttbbs/trunk/pttbbs@4027 63ad8ddf-47c3-0310-b6dd-a9e9d9715204 --- include/cmsys.h | 109 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 109 insertions(+) create mode 100644 include/cmsys.h (limited to 'include/cmsys.h') diff --git a/include/cmsys.h b/include/cmsys.h new file mode 100644 index 00000000..10c9a928 --- /dev/null +++ b/include/cmsys.h @@ -0,0 +1,109 @@ +#ifndef _LIBBBSUTIL_H_ +#define _LIBBBSUTIL_H_ + +#include +#include + +#include "osdep.h" +#include "config.h" // XXX for TIMET64, but config.h has too much thing I don't want ... + +#ifdef __GNUC__ +#define GCC_CHECK_FORMAT(a,b) __attribute__ ((format (printf, a, b))) +#else +#define GCC_CHECK_FORMAT(a,b) +#endif + + +// flags used by strip_ansi +enum STRIP_FLAG { + STRIP_ALL = 0, + ONLY_COLOR, // allow only colors (ESC [ .. m) + NO_RELOAD // allow all known (color+move) +}; +enum LOG_FLAG { + LOG_CREAT = 1, +}; + + +#ifdef TIMET64 +typedef int32_t time4_t; +#else +typedef time_t time4_t; +#endif + +/* crypt.c */ +char *fcrypt(const char *key, const char *salt); + +/* file.c */ +extern off_t dashs(const char *fname); +extern time4_t dasht(const char *fname); +extern time4_t dashc(const char *fname); +extern int dashl(const char *fname); +extern int dashf(const char *fname); +extern int dashd(const char *fname); +extern int copy_file_to_file(const char *src, const char *dst); +extern int copy_file_to_dir(const char *src, const char *dst); +extern int copy_dir_to_dir(const char *src, const char *dst); +extern int copy_file(const char *src, const char *dst); +extern int Rename(const char *src, const char *dst); +extern int Copy(const char *src, const char *dst); +extern int CopyN(const char *src, const char *dst, int n); +extern int AppendTail(const char *src, const char *dst, int off); +extern int Link(const char *src, const char *dst); +extern int file_count_line(const char *file); +extern int file_append_line(const char *file, const char *string); // does not append "\n" +extern int file_append_record(const char *file, const char *key); // will append "\n" +extern int file_exist_record(const char *file, const char *key); +extern int file_find_record(const char *file, const char *key); +extern int file_delete_record(const char *file, const char *key, int case_sensitive); + + +/* lock.c */ +extern void PttLock(int fd, int start, int size, int mode); + +/* net.c */ +extern unsigned int ipstr2int(const char *ip); +extern int tobind(const char * host, int port); +extern int toconnect(const char *host, int port); +extern int toread(int fd, void *buf, int len); +extern int towrite(int fd, const void *buf, int len); + +/* sort.c */ +extern int cmp_int(const void *a, const void *b); +extern int cmp_int_desc(const void * a, const void * b); + +/* string.h */ +extern void str_lower(char *t, const char *s); +extern void trim(char *buf); +extern void chomp(char *src); +extern int strip_blank(char *cbuf, char *buf); +extern int strip_ansi(char *buf, const char *str, enum STRIP_FLAG flag); +extern int strlen_noansi(const char *s); +extern void strip_nonebig5(unsigned char *str, int maxlen); +extern int DBCS_RemoveIntrEscape(unsigned char *buf, int *len); +extern int invalid_pname(const char *str); +extern int is_number(const char *p); +extern unsigned StringHash(const char *s); +extern char * qp_encode (char *s, size_t slen, const char *d, const char *tocode); + +/* time.c */ +extern int is_leap_year(int year); +extern int getHoroscope(int m, int d); +extern char* Cdate(const time4_t *clock); +extern char* Cdatelite(const time4_t *clock); +extern char* Cdatedate(const time4_t * clock); +extern char* my_ctime(const time4_t * t, char *ans, int len); +#ifdef TIMET64 + struct tm *localtime4(const time4_t *); + time4_t time4(time4_t *); + char *ctime4(const time4_t *); +#else + #define localtime4(a) localtime(a) + #define time4(a) time(a) + #define ctime4(a) ctime(a) +#endif + +extern int log_filef(const char *fn, int flag, const char *fmt,...) GCC_CHECK_FORMAT(3,4); +extern int log_file(const char *fn, int flag, const char *msg); + +#endif -- cgit v1.2.3