Subversion Repositories Kolibri OS

Compare Revisions

Regard whitespace Rev 4185 → Rev 4186

/programs/cmm/liza/parselist.c
5,9 → 5,10
dword line_off, new_buf;
char tline[256];
 
if ( mailend-mailstart > 9) if (strncmp(mailend-5,"\n.\n",5)==0) // note that c-- assembles "\n.\n" to 0x0d, 0x0a, 0x2e, 0x0d, 0x0a
if ( mailend-mailstart > 9) && (strncmp(mailend-5,"\n.\n",5)==0) // note that c-- assembles "\n.\n" to 0x0d, 0x0a, 0x2e, 0x0d, 0x0a
{
mailend -= 5;
DSBYTE[mailend] = '\0';
if (strstr(mailstart, "+OK")!=mailstart)
{
aim = GET_ANSWER_RETR;
16,13 → 17,13
return;
}
aim=NULL;
DSBYTE[mailend] = '\0';
mailsize = mailend - mailstart;
 
debug("Getting QP");
if (strstri(mailstart, "quoted-printable")!=0)
{
new_buf = malloc(mailend-mailstart);
qp_decode stdcall (mailstart, new_buf, mailend-mailstart);
new_buf = malloc(mailsize);
qp_decode stdcall (mailstart, new_buf, mailsize);
if (EAX==-1) debug("Too small buffer to convert QUOTED-PRINTABLE");
else
{
32,12 → 33,16
mailend = mailsize + mailstart;
}
}
debug("GetHeaders: From, To, Date, Subject");
GetHeader(#from, "\nFrom:");
GetHeader(#to, "\nTo:");
GetHeader(#date, "\nDate:");
GetHeader(#subj, "\nSubject:");
mdata = strstr(mailstart, "\n\r") + 3; // 0x0d 0x0a, 0x0a
debug("Get mdata");
mdata = strstr(mailstart, "\x0a\x0d") + 3; // 0x0d 0x0a, 0x0a
debug("ConvertToDOS");
ConvertToDOS(mdata, mailstart);
debug("FromHTMLtoTXT");
FromHTMLtoTXT();
letter_view.first = letter_view.count = 0;
47,6 → 52,7
line_off = GetNextLine(line_off);
letter_view.count++;
}
debug("SetAtrFromCurr");
atr.SetAtrFromCurr(mail_list.current+1);
DrawMailBox();
}
83,7 → 89,7
dword cur_chr, txt_buf_srt, txt_buf_end, is_tag=0;
int i;
if (strstri(mdata, "<html>")==0) && (strstri(mailstart, "text/html")==0) {debug("no html tags found"); return;}
debug ("converting: html -> txt");
debug ("Mail got <html> code");
cur_chr = mdata;
txt_buf_srt = malloc(mailend - mailstart);
txt_buf_end = txt_buf_srt;
137,13 → 143,20
return line;
}
 
 
void GetHeader(dword workstr, searchstr)
{
char tmpbuf[512];
dword Qoff;
int q_start, b_start;
 
strcpyb(mailstart, workstr, searchstr, "\n");
if (strstri(workstr, "?Q?"))
debug(searchstr);
debug(workstr);
if (strlen(workstr)<8) return;
q_start = strstri(workstr, "?Q?");
b_start = strstri(workstr, "?B?");
if (q_start)
{
qp_decode stdcall (workstr, #tmpbuf, strlen(workstr));
ConvertToDOS(#tmpbuf, workstr);
151,9 → 164,11
Qoff = strstri(workstr, "?Q?");
strcpy(workstr, Qoff);
}
if (strstr(workstr, "?B?"))
 
//any text that goes after "?=" deletes now
if (b_start)
{
base64_decode stdcall (strstri(workstr, "?B?"), #tmpbuf, strlen(workstr));
base64_decode stdcall (b_start, #tmpbuf, strlen(b_start)-5);
ConvertToDOS(#tmpbuf, workstr);
strcpy(workstr, #tmpbuf);
}