Example #1
0
int main(int argc, char *argv[])
{
	char foo[4096];
	
	while (fgets(foo,4096,stdin)) {
		stripansi(foo);
		fputs(foo,stdout);
	}
	return 0;
}
Example #2
0
int substr(const char *str1, const char *str2, Bool StripAnsi)
	{
	char *tmp1, *tmp2;
	int toreturn;

	tmp1 = strdup(str1);
	tmp2 = strdup(str2);

	if (tmp1 == NULL || tmp2 == NULL)
		{
		delete [] tmp1;
		delete [] tmp2;

		OutOfMemory(6);
		return (CERROR);
		}

	strlwr(tmp1);
	strlwr(tmp2);

	if (StripAnsi)
		{
		stripansi(tmp1);
		stripansi(tmp2);
		}

	const char *result = strstr(tmp1, tmp2);
	if (result == NULL)
		{
		toreturn = CERROR;
		}
	else
		{
		toreturn = (int) (result - tmp1);
		}

	delete [] tmp1;
	delete [] tmp2;

	return (toreturn);
	}
Example #3
0
int deansi_str_cmpi(const char *string1, const char *string2)
	{
	char buf1[MAXWORDLEN + 1];
	char buf2[MAXWORDLEN + 1];

	if ((strlen(string1) > MAXWORDLEN) || (strlen(string2) > MAXWORDLEN))
		{
#ifndef WINCIT
		cPrintf(getmsg(650));
		doccr();
#endif
		return (1);
		}

	strcpy(buf1, string1);
	strcpy(buf2, string2);

	stripansi(buf1);
	stripansi(buf2);

	return (stricmp(buf1, buf2));
	}
Example #4
0
void parse_notice(char *from, char **Args)
{
	int	type;
	char	*to,
		*high = empty_string,
		*target,
		*line;

	NickList *nick = NULL;	
	ChannelList *tmpc = NULL;
	char *newline = NULL;

		
	PasteArgs(Args, 1);
	to = Args[0];
	line = Args[1];
	if (!to || !line)
		return;
	if (!*to)
	{
		put_it("*** obsolete notice recieved. [%s]", line+1);
		return;
	}

	if (!from || !*from || !strcmp(get_server_itsname(from_server), from))
	{
		parse_server_notice(from, line);
		return;
	}


	
	if (is_channel(to))
	{
		target = to;
		type = PUBLIC_NOTICE_LIST;
		if ((tmpc = lookup_channel(to, from_server, CHAN_NOUNLINK)))
			nick = find_nicklist_in_channellist(from, tmpc, 0);
	}
	else
	{
		target = from;
		type = NOTICE_LIST;
	}

	update_stats(NOTICELIST, to, nick, tmpc, 0);		

	set_display_target(target, LOG_NOTICE);
	doing_notice = 1;

	if ((check_ignore_notice(from, to, IGNORE_NOTICES, line, &high) == IGNORED))
		goto notice_cleanup;

	if (!check_flooding(from, NOTICE_FLOOD, line, NULL))
		goto notice_cleanup;

	if (!strchr(from, '.'))
	{
		notify_mark(from, FromUserHost, 1, 0);
		line = do_notice_ctcp(from, to, line);
		if (!*line)
			goto notice_cleanup;
	}
		
	if (sed && !do_hook(ENCRYPTED_NOTICE_LIST, "%s %s %s", from, to, line))
	{
#if 0
		put_it("%s", convert_output_format(fget_string_var(FORMAT_ENCRYPTED_NOTICE_FSET), "%s %s %s %s", update_clock(GET_TIME), from, FromUserHost, line));
#endif
		sed = 0;
		goto notice_cleanup;
	}

	
	{
		char *free_me = NULL;
		char *s;
		free_me = newline = stripansi(line);
		if (wild_match("[*Wall*", line))
		{
			char *channel = NULL, *p, *q;
			q = p = next_arg(newline, &newline);
			if ((p = strchr(p, '/')))
			{
				p++;
				if (*p && *p == '\002')
					p++;
				channel = m_strdup(p);
				if ((p = strchr(channel, ']')))
					*p++ = 0;
				q = channel;
				if (*q && q[strlen(q)-1] == '\002')
					q[strlen(q)-1] = 0;
			} 
			if (channel && *channel)
				set_display_target(channel, LOG_WALL);
			else
				set_display_target(target, LOG_WALL);
			if (do_hook(type, "%s %s", from, line))
			{
				s = convert_output_format(fget_string_var(FORMAT_BWALL_FSET), "%s %s %s %s %s", update_clock(GET_TIME), q, from, FromUserHost, newline);
				if (tmpc)
					add_to_log(tmpc->msglog_fp, now, s, logfile_line_mangler);
				put_it("%s", s);
			}
			add_last_type(&last_wall[0], 1, from, FromUserHost, NULL, line);
			logmsg(LOG_WALL, from, 0, "%s", line);
/*			addtabkey(from, "wall", 0);*/
			new_free(&channel);
		}
		else
		{
			if (type == PUBLIC_NOTICE_LIST)
			{
				s = convert_output_format(fget_string_var(check_auto_reply(line)?FORMAT_PUBLIC_NOTICE_AR_FSET:FORMAT_PUBLIC_NOTICE_FSET), "%s %s %s %s %s", update_clock(GET_TIME), from, FromUserHost, to, newline);
				if (do_hook(type, "%s %s %s", from, to, line))
					put_it("%s", s);
			}
			else
			{
				s = convert_output_format(fget_string_var(FORMAT_NOTICE_FSET), "%s %s %s %s", update_clock(GET_TIME), from, FromUserHost, newline);
				if (do_hook(type, "%s %s", from, line))
					put_it("%s", s);

			}
			if (tmpc)
				add_to_log(tmpc->msglog_fp, now, s, logfile_line_mangler);
			logmsg(LOG_NOTICE, from, 0, "%s", line);
			add_last_type(&last_notice[0], MAX_LAST_MSG, from, FromUserHost, to, line);
		}
		new_free(&free_me);
	}

 notice_cleanup:
	if (beep_on_level & LOG_NOTICE)
		beep_em(1);
	reset_display_target();
	doing_notice = 0;
}
Example #5
0
/* -------------------------------------------------------------------- */
void newUserFile(void)
{
    FILE           *fl;
    char      name[40];
    char     phone[30];
    label      surname;
    label        title;
    char      temp[85];
    char     dtstr[85];
/*  int    tempmaxtext; */ 
    int          clm=0;
    int            l=0;

    *name     ='\0';
    *phone    ='\0';
    *surname  ='\0';
    *title    ='\0';
    
    tutorial("newquest.blb");
    
    if (cfg.titles && cfg.entersur)
    {
        getNormStr("the title you desire",   title,  NAMESIZE, ECHO);
    }
    
    if (cfg.surnames && cfg.entersur)
    {
        getNormStr("the surname you desire", surname,    NAMESIZE, ECHO);
    }
    
    strcpy(logBuf.title,   title);
    strcpy(logBuf.surname, surname);

    strcpy(msgBuf->mbsur,   logBuf.surname);
    strcpy(msgBuf->mbtitle, logBuf.title);

    getNormStr("your full real name",        name,     40,       ECHO);

    if (name[0])
    {
        getNormStr("your phone number [(xxx)xxx-xxxx]", phone, 30, ECHO);
    }


    strcpy(msgBuf->mbto, "Sysop");
    strcpy(msgBuf->mbauth, logBuf.lbname);
    msgBuf->mbtext[0] = 0;

#ifdef GOODBYE
    tempmaxtext = cfg.maxtext;
    cfg.maxtext = 1024;
#endif

    getText();
    stripansi(msgBuf->mbtext);

#ifdef GOODBYE
    cfg.maxtext = tempmaxtext;
#endif
              
    if (changedir(cfg.homepath) == ERROR)  return;

    if ((fl = fopen("newuser.log", "at")) == NULL)
    {
        return;
    }
    strftime(dtstr, 79, (loggedIn) ? logBuf.vdstamp : cfg.vdatestamp, 0l);

    sprintf(temp, "\n %s\n", dtstr);
    fwrite(temp, strlen(temp), 1, fl);

    stripansi(title); 
    stripansi(surname);
    stripansi(name);
    stripansi(phone);


    if (surname[0] || title[0])
    {
        sprintf(temp, " Nym:       [%s] %s [%s]\n", 
                title, deansi(logBuf.lbname), surname);
    }
    else
    {
        sprintf(temp, " Nym:       %s\n",    deansi(logBuf.lbname) );
    }
    fwrite(temp, strlen(temp), 1, fl);

    sprintf(temp, " Real name: %s\n",             name );
    fwrite(temp, strlen(temp), 1, fl);

    sprintf(temp, " Phone:     %s\n",            phone );
    fwrite(temp, strlen(temp), 1, fl);

    sprintf(temp, " Baud:      %u\n",     bauds[speed] );
    fwrite(temp, strlen(temp), 1, fl);

    sprintf(temp, "\n");

    if(msgBuf->mbtext[0])   /* xPutStr(fl, msgBuf->mbtext); */
    {
        do
        {
            if((msgBuf->mbtext[l] == 32 || msgBuf->mbtext[l] == 9) && clm > 73)
            {
                fwrite(temp, strlen(temp), 1, fl);
                clm = 0;
                l++;
            }
            else
            {
                fputc(msgBuf->mbtext[l], fl);
                clm++;
                if(msgBuf->mbtext[l] == 10)
                    clm = 0;
                if(msgBuf->mbtext[l] == 9)
                    clm = clm + 7;
                l++;
            }
        } while(msgBuf->mbtext[l]);
    }

    fclose(fl);
    doCR();
}
Example #6
0
void trap(TrapKeywords what, char *port, const char *fmt, ...)
	{
	char ToTrap[512];
	va_list ap;

	va_start(ap, fmt);
	vsprintf(ToTrap, fmt, ap);
	va_end(ap);

	stripansi(ToTrap);

	if (what == T_LOGIN || what == T_NEWROOM || what == T_ERROR)
		{
		addStatusText(ToTrap, time(NULL));
		}

	switch (what)
		{
		case T_CARRIER: 	doEvent(EVT_CARRIER);	break;
		case T_NEWROOM: 	doEvent(EVT_NEWROOM);	break;
		case T_ANONYMOUS:	doEvent(EVT_ANONYMOUS); break;
		case T_CHAT:		doEvent(EVT_CHAT);		break;
		case T_PASSWORD:	doEvent(EVT_PASSWORD);	break;
		case T_AIDE:		doEvent(EVT_AIDE);		break;
		case T_SYSOP:		doEvent(EVT_SYSOP); 	break;
		case T_UPLOAD:		doEvent(EVT_UPLOAD);	break;
		case T_DOWNLOAD:	doEvent(EVT_DOWNLOAD);	break;
		case T_ERROR:		doEvent(EVT_ERROR); 	break;
		case T_NETWORK: 	doEvent(EVT_NETWORK);	break;
		case T_ACCOUNT: 	doEvent(EVT_ACCOUNT);	break;
		case T_CRON:		doEvent(EVT_CRON);		break;
		case T_HACK:		doEvent(EVT_HACK);		break;
		}

	// check to see if we are supposed to log this event
	if (!cfg.trapit[what])
		{
		return;
		}

	label dtstr;
	strftime(dtstr, LABELSIZE, getmsg(130), 0l);

#ifndef WINCIT
	if (!onConsole || !cfg.NoConsoleTrap)
#endif

		{

#ifdef WINCIT
		if (TrapMutex != INVALID_HANDLE_VALUE)
			{
			if (WAITFORmTIMED(TrapMutex))
				{
				DWORD TID = GetCurrentThreadId();
				long Seq = TermWindowCollection.FindConnSeqByThreadId(TID);

                if (!(cfg.trapit[T_PORT]) && (Seq >= 0))
					{
                    fprintf(TrapFile, getmsg(13), dtstr, TID, Seq, ToTrap, bn);
					}
                else if (!(cfg.trapit[T_PORT]) && !(Seq >= 0))
					{
                    fprintf(TrapFile, getmsg(12), dtstr, TID, ToTrap, bn);
					}
                else if (cfg.trapit[T_PORT] && (Seq >= 0))
                    {
                    fprintf(TrapFile, getmsg(11), dtstr, TID, Seq, port, ToTrap, bn);
                    }
                else if (cfg.trapit[T_PORT] && !(Seq >= 0))
                    {
                    fprintf(TrapFile, getmsg(12), dtstr, TID, ToTrap, bn);
                    }
                else
                    {
                    fprintf(TrapFile, getmsg(172));
                    }

				fflush(TrapFile);
				RELEASEm(TrapMutex);
				}
			}

#endif
		}
	}
Example #7
0
/* -------------------------------------------------------------------- */
void Readlog(BOOL revOrder)
{
    int i, grpslot;
    char dtstr[80];
    char flags[11];
    char wild=FALSE;
    char buser=FALSE;
    char step;

    grpslot = ERROR;

    if (mf.mfUser[0])
    {
        getNormStr("user", mf.mfUser, NAMESIZE, ECHO);                     

        stripansi(mf.mfUser);
                                                                           
        if (personexists(mf.mfUser) == ERROR)                              
        {                                                                  
            if(   strpos('?',mf.mfUser)                                       
               || strpos('*',mf.mfUser)                                       
               || strpos('[',mf.mfUser))                                      
            {                                                                 
                wild = TRUE;                                                  
            }                                                                 
            else                                                              
            {                                                                 
                mPrintf(" \nNo such user!\n ");                               
                return;                                                       
            }                                                                 
        }                                                                  
        else                                                               
        {                                                                  
            buser = TRUE;                                                    
        }                                                                  
    }

    outFlag = OUTOK;
    setio(whichIO, echo, outFlag);


    if (mf.mfLim && (cfg.readluser || sysop || aide))
    {
        doCR();
        getgroup();
        if (!mf.mfLim)
            return;
        grpslot = groupexists(mf.mfGroup);
    }
    else
    {
        mf.mfLim = FALSE;
    }

    outFlag = OUTOK;
    setio(whichIO, echo, outFlag);

    if (!expert) mPrintf(" \n \n <3J0>ump <3N0>ext <3P0>ause <3S0>top");

    if (!revOrder)
    {
        step = 1;
        i = 0;
    }
    else
    {
        step = -1;
        i = cfg.MAXLOGTAB - 1;
    }
    
    for ( ; 
          ( (i < cfg.MAXLOGTAB) && (outFlag != OUTSKIP) && (i >= 0) ); 
          i += step)
    {
        if(mAbort(FALSE))
            return;

        if (logTab[i].ltpwhash != 0 &&
            logTab[i].ltnmhash != 0)
        {
            if (buser && (int)hash(mf.mfUser) != logTab[i].ltnmhash)
                continue;

            getLog(&lBuf,logTab[i].ltlogSlot);

            if (buser && strcmpi(mf.mfUser, lBuf.lbname) != SAMESTRING)
                continue;

            if(wild && !u_match(deansi(lBuf.lbname), mf.mfUser))
                continue;

            if (mf.mfLim
              && (lBuf.groups[grpslot] != grpBuf.group[grpslot].groupgen)
              &&
          (strcmpi(lBuf.lbname, cfg.sysop) != SAMESTRING  )
)
              continue;
       
            /* Show yourself even if unlisted */
            if ( (!i && loggedIn) || 
                 (lBuf.lbflags.L_INUSE
                  && (aide || !lBuf.lbflags.UNLISTED) )  )
            {


                if (verbose)
                {
                    strftime(dtstr, 79, (loggedIn) ? logBuf.vdstamp : cfg.vdatestamp, lBuf.calltime);

                    if ((cfg.surnames || cfg.titles) && /* verbose >= 2 */
                         logBuf.DISPLAYTS)
                    {
                        doCR();
                        doCR();
                        if (*lBuf.title)   mPrintf(" [%s]", lBuf.title);
                                           mPrintf(" 3%s0",   lBuf.lbname);
                        if (*lBuf.surname) mPrintf(" [%s]", lBuf.surname);
                        doCR();
                        mPrintf(" #%lu %s",  lBuf.callno, dtstr);
                    }
                    else
                    {
                        doCR();
                        mPrintf(" 3%-20s0 #%lu %s", lBuf.lbname, lBuf.callno, dtstr);
                    }
                }
                else
                {
                    doCR();
#if 1
                    if (aide || lBuf.lbflags.NODE)
#endif
                    mPrintf(" %-20s",lBuf.lbname);
#if 1
                    else
                        mPrintf(" %s", lBuf.lbname);
#endif
                }

                if (aide )    /*   A>ide T>wit P>erm U>nlist N>etuser S>ysop */
                {
                    if (cfg.accounting && verbose)
                    {
                        if (lBuf.lbflags.NOACCOUNT)
                             mPrintf( " %10s", "N/A");
                        else mPrintf( " %10.2f", lBuf.credits);
                    }
    
                    strcpy(flags, "         ");

                    if ( lBuf.lbflags.AIDE)      flags[0] = 'A';
                    if ( lBuf.lbflags.PROBLEM)   flags[1] = 'T';
                    if ( lBuf.lbflags.PERMANENT) flags[2] = 'P';
                    if ( lBuf.lbflags.NETUSER)   flags[3] = 'N';
                    if ( lBuf.lbflags.UNLISTED)  flags[4] = 'U';
                    if ( lBuf.lbflags.SYSOP)     flags[5] = 'S';
                    if ( lBuf.lbflags.NOMAIL)    flags[6] = 'M';
                    if ( lBuf.VERIFIED)          flags[7] = 'V';
                    if ( lBuf.DUNGEONED)         flags[8] = 'D';
                    if ( lBuf.MSGAIDE)           flags[9] = 'm';
    
                    mPrintf(" %s",flags);
                }

                if (lBuf.lbflags.NODE)
                {
                    mPrintf(" (Node) ");
                }
            }

            


#ifdef GOODBYE
                if (verbose)
                {
                    strftime(dtstr, 79, (loggedIn) ? logBuf.dstamp : cfg.datestamp, lBuf.calltime);

                    if ((cfg.surnames || cfg.titles) && logBuf.DISPLAYTS)
                    {
                        doCR();
                        mPrintf(" [%s] 3%s0 [%s]", 
                                  lBuf.title, lBuf.lbname, lBuf.surname);
                        doCR();
                        mPrintf(" #%lu %s",  lBuf.callno, dtstr);
                    }
                    else
                    {
                        doCR();
                        mPrintf(" 3%-20s0 #%lu %s", lBuf.lbname, lBuf.callno, dtstr);
                    }
                }
                else
                {
                    doCR();
                    mPrintf(" %-20s",lBuf.lbname);
                }

                if (aide )    /*   A>ide T>wit P>erm U>nlist N>etuser S>ysop */
                {
                    if (cfg.accounting && verbose)
                    {
                        if (lBuf.lbflags.NOACCOUNT)
                             mPrintf( " %10s", "N/A");
                        else mPrintf( " %10.2f", lBuf.credits);
                    }
    
                    strcpy(flags, "         ");

                    if ( lBuf.lbflags.AIDE)      flags[0] = 'A';
                    if ( lBuf.lbflags.PROBLEM)   flags[1] = 'T';
                    if ( lBuf.lbflags.PERMANENT) flags[2] = 'P';
                    if ( lBuf.lbflags.NETUSER)   flags[3] = 'N';
                    if ( lBuf.lbflags.UNLISTED)  flags[4] = 'U';
                    if ( lBuf.lbflags.SYSOP)     flags[5] = 'S';
                    if ( lBuf.lbflags.NOMAIL)    flags[6] = 'M';
                    if ( lBuf.VERIFIED)          flags[7] = 'V';
                    if ( lBuf.DUNGEONED)         flags[8] = 'D';
                    if ( lBuf.MSGAIDE)           flags[9] = 'm';
    
                    mPrintf(" %s",flags);
                }

                if (lBuf.lbflags.NODE)
                {
                    mPrintf(" (Node) ");
                }

                if (verbose) doCR();
            }

#endif

        }
    }
Example #8
0
int replymessage(struct DayDream_Message *msgd)
{
	char qbuffer[4096];
	char input[2048];
	char msgin[10];
	FILE *msgfd;
	FILE *quotefd;
	char *s, *t;
	int i;
	int hola;
	int l = 0;

	struct DayDream_Message header;

	s = (char *) &header;
	for (hola = 0; hola < sizeof(struct DayDream_Message); hola++) {
		*s++ = 0;
	}

	snprintf(qbuffer, sizeof qbuffer, "%s/messages/base%3.3d/msg%5.5d", 
		conference()->conf.CONF_PATH, current_msgbase->MSGBASE_NUMBER, 
		msgd->MSG_NUMBER);

	if (!(msgfd = fopen(qbuffer, "r")))
		return 0;

	snprintf(qbuffer, sizeof qbuffer, "%s/daydream%d.mtm", DDTMP, node);
	unlink(qbuffer);

	if (!(quotefd = fopen(qbuffer, "w"))) {
		fclose(msgfd);
		return 0;
	}
	if (current_msgbase->MSGBASE_FLAGS & (1L << 3)) {
		if (current_msgbase->MSGBASE_FLAGS & (1L << 4)) {
			s = msgd->MSG_AUTHOR;
			t = msgin;
			*t++ = *s++;
			while (*s) {
				if (*s == ' ' && *(s + 1)) {
					s++;
					*t++ = *s;
				}
				s++;
			}
			*t++ = '>';
			*t = 0;
		} else {
			msgin[0] = '>';
			msgin[1] = 0;
		}
	} else {
		msgin[0] = 0;
	}


	while (fgets(input, 2048, msgfd)) {
		if (l == 0 && !strncmp("AREA:", input, 5))
			continue;
		l++;
		if (*input == 1)
			continue;
		if (!strncmp("SEEN-BY:", input, 8))
			break;

		stripansi(input);
		snprintf(qbuffer, sizeof qbuffer, "%s%s", msgin, input);
		t = qbuffer;
		for (;;) {
			if (strlen(t) > 76) {
				char k;

				s = &t[75];
				for (;;) {
					if (s == t) {
						k = t[75];
						t[75] = 0;
						s = &t[75];
						break;
					} else {
						if (*s == ' ') {
							k = *s;
							*s = 0;
							break;
						}
						s--;
					}

				}
				fputs(t, quotefd);
				fputs("\n", quotefd);
				*s = k;
				if (k == ' ')
					s++;
				t = s;
				snprintf(qbuffer, sizeof qbuffer, "%s%s", 
					msgin, t);
				t = qbuffer;
			} else {
				fputs(t, quotefd);
				break;
			}
		}
	}

	if (!msgin[0]) {
		snprintf(qbuffer, sizeof qbuffer, "---[ %s ]", 
			msgd->MSG_AUTHOR);

		for (i = strlen(qbuffer); i < 75; i++) {
			strlcat(qbuffer, "-", sizeof qbuffer);
		}
		strlcat(qbuffer, "\n\n", sizeof qbuffer);
		fputs(qbuffer, quotefd);
	}
	fclose(msgfd);
	fclose(quotefd);

	strlcpy(header.MSG_RECEIVER, msgd->MSG_AUTHOR, sizeof header.MSG_RECEIVER);
	strlcpy(header.MSG_SUBJECT, msgd->MSG_SUBJECT, sizeof header.MSG_SUBJECT);
	header.MSG_ORIGINAL = msgd->MSG_NUMBER;
	if (msgd->MSG_FLAGS & (1L << 0))
		header.MSG_FLAGS |= (1L << 0);
	if (toupper(current_msgbase->MSGBASE_FN_FLAGS) == 'N') {
		if (msgd->MSG_FN_ORIG_ZONE) {
			header.MSG_FN_DEST_ZONE = msgd->MSG_FN_ORIG_ZONE;
		} else {
			header.MSG_FN_DEST_ZONE = msgd->MSG_FN_PACKET_ORIG_ZONE;
		}
		header.MSG_FN_DEST_NET = msgd->MSG_FN_ORIG_NET;
		header.MSG_FN_DEST_NODE = msgd->MSG_FN_ORIG_NODE;
		header.MSG_FN_DEST_POINT = msgd->MSG_FN_ORIG_POINT;

	}
	i = entermsg(&header, 1, 0);
	getmsgptrs();
	return i;
}