"); time_t Time = strtol(PeekL, &PeekL, 10); struct tm *timeinfo; timeinfo = localtime(&Time); strftime(Temp,80,"%I:%M%p",timeinfo); CopyHere(&Poke, Temp); CopyHere(&Poke, " | "); int IsNick = 1; if(NULL == strchr(PeekL, '\t')) { CopyHere(&Poke, " | ");
IsNick = 0;
}
else
CopyHere(&Poke, " ");
CopyHere(&Poke, "");
while(*PeekL == ' ' && *PeekL)
PeekL++;
char *PeekC;
while(*PeekL) {
if(IsLink && strchr(" <>\"'\r\n", *PeekL)) {
CopyHere(&Poke, "");
IsLink = 0;
}
switch(*PeekL) {
case ' ':
if(IsNick || PeekL[-1] == ' ')
CopyHere(&Poke, " ");
else
*(Poke++) = ' ';
break;
case '&':
CopyHere(&Poke, "&");
break;
case '<':
CopyHere(&Poke, "<");
break;
case '>':
CopyHere(&Poke, ">");
break;
case 0x1f: // underline
if(!IsUnderline)
CopyHere(&Poke, "");
else
CopyHere(&Poke, "");
IsUnderline ^= 1;
break;
case 0x02: // bold
if(!IsBold)
CopyHere(&Poke, "");
else
CopyHere(&Poke, "");
IsBold ^= 1;
break;
case 0x03: // colors
PeekC = PeekL + 1;
FGColor = -1;
BGColor = -1;
if(isdigit(*PeekC)) {
FGColor = *(PeekC++) - '0';
if(isdigit(*PeekC)) {
FGColor = (FGColor*10) + (*(PeekC++) - '0');
FGColor &= 15;
}
if(*PeekC == ',') { // background color!
PeekC++;
if(isdigit(*PeekC)) {
BGColor = *(PeekC++) - '0';
if(isdigit(*PeekC)) {
BGColor = (BGColor*10) + (*(PeekC++) - '0');
BGColor &= 15;
}
}
}
PeekL = PeekC - 1;
}
goto NoInvert;
case 0x16: // swap BG and FG
if(FGColor > 15 || BGColor > 15) {
CancelEffects();
goto NoInvert;
}
if(FGColor == -1) FGColor = 17;
if(BGColor == -1) BGColor = 16;
temp = BGColor;
BGColor = FGColor;
FGColor = temp;
NoInvert:
CopyHere(&Poke, "");
break;
case 0x0f: // cancel all effects
CancelEffects();
break;
case '\t':
if(!IsNick) break;
CancelEffects();
CopyHere(&Poke, "");
if(IsNick)
CopyHere(&Poke, " ");
CopyHere(&Poke, " | "); break; case 'h': if(!memcmp(PeekL, "http://", 4) || !memcmp(PeekL, "https://", 4)) { CopyHere(&Poke, "\"'\r\n", *PeekC); PeekC++) *(Poke++) = *PeekC; CopyHere(&Poke, "\">"); IsLink = 1; } default: if(*PeekL >= 32) *(Poke++) = *PeekL; } PeekL++; } CopyHere(&Poke, " | "); fputs(OutLine, HTML); CopyHere(&Poke, " |