I have finished the Thunderbird lab. I need to make the patch and push it still, and I will updated this post with that later tonight.
Basically, I was doing the whole processing of fixing a bug, from start to end.
A few hurdles.
I was able to find the file I needed to edit, the location in that file, and a pretty good idea of what needed to be done, quite quickly. The hard part was reproducing the bug, getting a built version that worked, and getting a result from editing the file.
The first thing was, when I tried to run my built Thunderbird, I would get this:
Two other students: Jianming and Crystal also received this. I think this was simply an error in the branch that was now fixed, as I don’t *think* I did anything to fix it, but I tried. I tried using the comm-1.9.1 repo, which allowed me to build and run the program, but was ridden with error pop ups. I tried for awhile to use comm-1.9.1, but I could not seem to reproduce the bug; I thought it could be because of the version I was using. When it comes to experimenting, you need a completely perfect simulation to be sure something is not the problem, and in this case, I could not be sure until I had the same errors in the comm-central build; which wasn’t running. So I continued.
I was having problems reproducing the bug. I was just trying to send myself an email, containing an email in the text, and receive it and expect the mail address to be linked, which it was not. I came across something helpful while re reading the instructions about reproducing the bug. It said “try creating a message with the text above, saving it to Drafts, then open in Drafts to see how it gets rendered.” Ah, something I did not try. I did this, and I got the links I wanted.
So the bug is now reproduced, now I need to break this area of the code. I already know where and what I have to do, but I’m just going to make sure I’m in the right spot and it’s working before I start coding.
I tried simply adding some letters “HAHA” to the end of the “mailto:” string, to see if I’m in the right spot. and it didn’t seem to accept the change. I would reload my draft, and it would just be a boring old “mailto:”. I was stumped, and was looking wondering why the code I was changing, did not change the program. Usually these simple, but seemingly impossible problems are the silly ones. I was thinking maybe I had two separate directories I was working in, one I was editing, and the other I was building, or something along those lines. I figured it out when I tried to copy and paste a previous draft into a new email, which shouldn’t link the mail address, but all of a sudden it was. It hit me, if I change the code, and wanted to see the results, I would have to make a NEW draft, each time, as the draft only uses the code at the time you create it, and not when you view it. I created a new draft, and voila.
I’m in HAHA.
the next step is to code. I had to find a way to check if there were any “.” after the @ but not “..”. It was already checking for “.” inside an if, so I just needed to add an && !string.contains(“..”), or something along those lines. It’s already using FincChar to find the “.” which won’t work for me as I need a character string, and not just a character. My answer was google. I googled “nsDependentString” and came up with Find(). Seems logical “FindChar()” for chars, and “Find()” for strings. Anyway, I implemented it, and ran it.
Looks good to me. I’m leaving out the actual code in case another student wants to read this for hints, but if you want help please ask.
Update: The bug and patch is awaiting review, and located here.