From: Tiago N. <ea...@us...> - 2005-04-11 21:22:30
|
Update of /cvsroot/mailsomething/mailsomething/src/net/sf/mailsomething/mail/imap In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv4007/net/sf/mailsomething/mail/imap Modified Files: ImapListResponse.java Log Message: fixed the name extraction (can have spaces); fixed base64 decoding. Index: ImapListResponse.java =================================================================== RCS file: /cvsroot/mailsomething/mailsomething/src/net/sf/mailsomething/mail/imap/ImapListResponse.java,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** ImapListResponse.java 29 Mar 2005 12:18:54 -0000 1.3 --- ImapListResponse.java 11 Apr 2005 21:22:15 -0000 1.4 *************** *** 2,6 **** import java.util.Vector; ! import com.permabit.util.mime.Base64; /** --- 2,6 ---- import java.util.Vector; ! import net.sf.mailsomething.mail.util.Base64; /** *************** *** 50,53 **** --- 50,57 ---- public ImapListResponseEntry getEntry(String responseLine) { + int indexOfQM, indexOfH, start; + + String tempName; + ImapListResponseEntry entry = new ImapListResponseEntry(); *************** *** 79,96 **** } - entry.name = responseLine.substring(responseLine.lastIndexOf(' ') + 1); ! if ((entry.name.indexOf('?') != -1) || (entry.name.indexOf('-') != -1)) { ! ! byte[] temp = entry.name.getBytes(); ! ! temp = Base64.encode(temp); ! entry.name = new String(); ! for (int i = 0; i < temp.length; i++) ! entry.name.concat(Byte.toString(temp[i])); } //TASK name attribute //should be checked for ?- instances and decoded if --- 83,115 ---- } ! // parses the name, taking into account the possible presence of spaces in it ! if (responseLine.charAt(responseLine.length() -1) == '"') { ! int index = responseLine.lastIndexOf('"', responseLine.length() - 2) + 1; ! tempName = responseLine.substring(index, responseLine.length() - 1); ! } else { ! tempName = responseLine.substring(responseLine.lastIndexOf(' ') + 1); ! } ! ! ! // searches for base64 encoded substrings in the name ! start = 0; ! indexOfQM = tempName.indexOf('?'); ! indexOfH = tempName.indexOf('-', indexOfQM); ! ! while ((indexOfQM != -1) && (indexOfH != -1)) ! { ! entry.name += tempName.substring(start, indexOfQM); ! entry.name += Base64.decode(tempName.substring(indexOfQM + 1, indexOfH)); ! start = indexOfH + 1; ! indexOfQM = tempName.indexOf('?', start); ! indexOfH = tempName.indexOf('-', indexOfQM); } + entry.name += tempName.substring(start); + + //TASK name attribute //should be checked for ?- instances and decoded if |