TIP: Click on subject to list as thread! ANSI
echo: public_domain
to: All
from: andrew clarke
date: 1996-03-13 03:30:04
subject: logopus.c

/*
 *  LOGOPUS.C - Opus-style status logging routines.
 *  Written 1994,95,96 by Andrew Clarke and released to the public domain.
 */

#include 
#include 
#ifdef USESHARE
#include 
#endif
#include 
#include "logopus.h"

int log_opus_open(char *filename, char *progid, char *program)
{
    char buffer[128];
    FILE *fp;

#ifdef USESHARE
    fp = _fsopen(filename, "at", SH_DENYRW);
#else
    fp = fopen(filename, "at");
#endif

    if(!fp)
        return 0;
    fputc('\n', fp);
    fclose(fp);
    sprintf(buffer, "begin, %s", program);
    return log_opus_sputs(filename, progid, '+', buffer);
}

int log_opus_close(char *filename, char *progid, char *program)
{
    char buffer[128];
    sprintf(buffer, "end, %s", program);
    return log_opus_sputs(filename, progid, '+', buffer);
}

int log_opus_sputs(char *filename, char *progid, char ch, char *str)
{
    FILE *fp;
    struct tm *time_now;
    time_t secs_now;
    char date[20];

#ifdef USESHARE
    fp = _fsopen(filename, "at", SH_DENYRW);
#else
    fp = fopen(filename, "at");
#endif

    if(!fp)
        return 0;
    tzset();
    time(&secs_now);
    time_now = localtime(&secs_now);
    strftime(date, 20, "%d %b %H:%M:%S", time_now);
    fprintf(fp, "%c %s %s %s\n", ch, date, progid, str);
    fclose(fp);
    return 1;
}

int log_opus_sprintf(char *filename, char *progid, char ch, const char *format,...)
{
    va_list args;
    char buffer[512];
    va_start(args, format);
    vsprintf(buffer, format, args);
    va_end(args);
    return log_opus_sputs(filename, progid, ch, buffer);
}

int log_opus_puts(char *filename, char *progid, char *str)
{
    return log_opus_sputs(filename, progid, '>', str);
}

int log_opus_printf(char *filename, char *progid, const char *format,...)
{
    va_list args;
    char buffer[512];
    va_start(args, format);
    vsprintf(buffer, format, args);
    va_end(args);
    return log_opus_puts(filename, progid, buffer);
}

--- Msgedsq/2 3.30
* Origin: This one HAS to be original X (3:635/727.4{at}fidonet)
SEEN-BY: 50/99 78/0 635/309 503 544 727 640/230 711/401 410 413 430 808 809
SEEN-BY: 711/934 712/610 713/888 800/1 7877/2809
@PATH: 635/727 544 50/99 711/808 809 934

SOURCE: echomail via fidonet.ozzmosis.com

Email questions or comments to sysop@ipingthereforeiam.com
All parts of this website painstakingly hand-crafted in the U.S.A.!
IPTIA BBS/MUD/Terminal/Game Server List, © 2025 IPTIA Consulting™.