BUG: Higuchi.Net.Mail.MailParser.FromQuotedPrintable

Dec 1, 2009 at 9:05 AM
Edited Dec 1, 2009 at 9:11 AM

Hi,

thank you for your great work !

I had found a bug in Higuchi.Net.Mail.MailParser.FromQuotedPrintable

 

class: Higuchi.Net.Mail.MailParser

Method:

        public static Byte[] FromQuotedPrintable(String inText)

        {

......

while (i < line.Length)

{

// 現在位置の文字が"="である場合

if (line.Substring(i, 1) == "=")

{

// 16進文字列を取得

/*_________________

String target = line.Substring(i + 1, charLen);

//when line.Length is singular number,will  throw exception. eg. line.Length=7 will throw exception.

_________________*/

int charLen =i==(line.Length-2)?1: 2; String target = line.Substring(i + 1, charLen);

ms.WriteByte(Convert.ToByte(target, 16));

i += 3;

}

// 現在位置の文字が"="ではない場合

else

{

String target = line.Substring(i, 1);

ms.WriteByte(Convert.ToByte(Char.Parse(target)));

i = i + 1;

}

}                       

  ......

 

        }

 

 

class: Higuchi.Net.Mail.MailParser
Method:
        public static Byte[] FromQuotedPrintable(String inText)
        {
......
while (i < line.Length)
{
// 現在位置の文字が"="である場合
if (line.Substring(i, 1) == "=")
{
// 16進文字列を取得
/*_________________*/
String target = line.Substring(i + 1, charLen);//when line.Length is a single number,will show exception.
/*_________________*/
ms.WriteByte(Convert.ToByte(target, 16));
i += 3;
}
// 現在位置の文字が"="ではない場合
else
{
String target = line.Substring(i, 1);
ms.WriteByte(Convert.ToByte(Char.Parse(target)));
i = i + 1;
}
}                       
  ......
            
        }

 

 

Coordinator
Dec 4, 2009 at 8:05 AM

Thank you for your good pointing.
I fixed this bug and now available.