|
|
1.1 ! root 1: /* logfile.cpp */ ! 2: ! 3: /* Synchronet log file routines */ ! 4: ! 5: /* $Id: logfile.cpp,v 1.1.1.1 2000/10/10 11:23:57 rswindell Exp $ */ ! 6: ! 7: /**************************************************************************** ! 8: * @format.tab-size 4 (Plain Text/Source Code File Header) * ! 9: * @format.use-tabs true (see http://www.synchro.net/ptsc_hdr.html) * ! 10: * * ! 11: * Copyright 2000 Rob Swindell - http://www.synchro.net/copyright.html * ! 12: * * ! 13: * This program is free software; you can redistribute it and/or * ! 14: * modify it under the terms of the GNU General Public License * ! 15: * as published by the Free Software Foundation; either version 2 * ! 16: * of the License, or (at your option) any later version. * ! 17: * See the GNU General Public License for more details: gpl.txt or * ! 18: * http://www.fsf.org/copyleft/gpl.html * ! 19: * * ! 20: * Anonymous FTP access to the most recent released source is available at * ! 21: * ftp://vert.synchro.net, ftp://cvs.synchro.net and ftp://ftp.synchro.net * ! 22: * * ! 23: * Anonymous CVS access to the development source and modification history * ! 24: * is available at cvs.synchro.net:/cvsroot/sbbs, example: * ! 25: * cvs -d :pserver:[email protected]:/cvsroot/sbbs login * ! 26: * (just hit return, no password is necessary) * ! 27: * cvs -d :pserver:[email protected]:/cvsroot/sbbs checkout src * ! 28: * * ! 29: * For Synchronet coding style and modification guidelines, see * ! 30: * http://www.synchro.net/source.html * ! 31: * * ! 32: * You are encouraged to submit any modifications (preferably in Unix diff * ! 33: * format) via e-mail to [email protected] * ! 34: * * ! 35: * Note: If this box doesn't appear square, then you need to fix your tabs. * ! 36: ****************************************************************************/ ! 37: ! 38: #include "sbbs.h" ! 39: ! 40: void sbbs_t::logentry(char *code, char *entry) ! 41: { ! 42: char str[512]; ! 43: ! 44: now=time(NULL); ! 45: sprintf(str,"Node %2d %s\r\n %s",cfg.node_num,timestr(&now),entry); ! 46: logline(code,str); ! 47: } ! 48: ! 49: /****************************************************************************/ ! 50: /* Writes 'str' verbatim into node.log */ ! 51: /****************************************************************************/ ! 52: void sbbs_t::log(char *str) ! 53: { ! 54: if(logfile_fp==NULL || online==ON_LOCAL) return; ! 55: if(logcol>=78 || (78-logcol)<strlen(str)) { ! 56: fprintf(logfile_fp,"\r\n"); ! 57: logcol=1; } ! 58: if(logcol==1) { ! 59: fprintf(logfile_fp," "); ! 60: logcol=4; } ! 61: fprintf(logfile_fp,str); ! 62: if(str[strlen(str)-1]==LF) ! 63: logcol=1; ! 64: else ! 65: logcol+=strlen(str); ! 66: } ! 67: ! 68: /****************************************************************************/ ! 69: /* Writes 'str' on it's own line in node.log */ ! 70: /****************************************************************************/ ! 71: void sbbs_t::logline(char *code, char *str) ! 72: { ! 73: lprintf("Node %d %s", cfg.node_num, str); ! 74: if(logfile_fp==NULL || (online==ON_LOCAL && strcmp(code,"!!"))) return; ! 75: if(logcol!=1) ! 76: fprintf(logfile_fp,"\r\n"); ! 77: fprintf(logfile_fp,"%-2.2s %s\r\n",code,str); ! 78: logcol=1; ! 79: } ! 80: ! 81: /****************************************************************************/ ! 82: /* Writes a comma then 'ch' to log, tracking column. */ ! 83: /****************************************************************************/ ! 84: void sbbs_t::logch(char ch, char comma) ! 85: { ! 86: ! 87: if(logfile_fp==NULL || (online==ON_LOCAL)) return; ! 88: if((uchar)ch<SP) /* Don't log control chars */ ! 89: return; ! 90: if(logcol==1) { ! 91: logcol=4; ! 92: fprintf(logfile_fp," "); ! 93: } ! 94: else if(logcol>=78) { ! 95: logcol=4; ! 96: fprintf(logfile_fp,"\r\n "); ! 97: } ! 98: if(comma && logcol!=4) { ! 99: fprintf(logfile_fp,","); ! 100: logcol++; ! 101: } ! 102: if(ch&0x80) { ! 103: ch&=0x7f; ! 104: if(ch<SP) ! 105: return; ! 106: fprintf(logfile_fp,"/"); ! 107: } ! 108: fprintf(logfile_fp,"%c",ch); ! 109: logcol++; ! 110: } ! 111:
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.