int main(int argc, char *argv[]) { char foo[4096]; while (fgets(foo,4096,stdin)) { stripansi(foo); fputs(foo,stdout); } return 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); }
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)); }
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; }
/* -------------------------------------------------------------------- */ 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(); }
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 } }
/* -------------------------------------------------------------------- */ 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 } }
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; }