Difference between revisions of "User:Vlam6"

From CDOT Wiki
Jump to: navigation, search
(Version 0.3)
 
(23 intermediate revisions by the same user not shown)
Line 1: Line 1:
 
__TOC__
 
__TOC__
 
== About Me ==
 
== About Me ==
Name: Vincent Lam.   
+
* '''Name:''' Vincent Lam.   
Program: Bachelor of Software Development.  
+
* '''Program:''' Bachelor of Software Development.  
  
 
== Contacts ==
 
== Contacts ==
* E-Mail: vlam6@learn.senecac.on.ca
+
* '''E-Mail:''' vlam6@learn.senecac.on.ca
* IRC: vince
+
* '''IRC:''' vince on #seneca
 
+
* '''Open Source WebBlog:''' [http://vlam6.wordpress.com http://vlam6.wordpress.com]
== Open Source WebBlog ==
 
http://vlam6.wordpress.com/
 
  
 
== Open Source Projects ==
 
== Open Source Projects ==
==== Automated Localization Build Tool ====
+
==== Automated Localization Build Script ====
* we are in currently working on our 0.2 release and are anticipating completion of the release by the end of october. We plan to start the 0.3 release in November.  
+
[http://zenit.senecac.on.ca/wiki/index.php/Automated_localization_build_tool http://zenit.senecac.on.ca/wiki/index.php/Automated_localization_build_tool]
 +
===== Version 0.1 =====
 +
#Should be able to accept a localization
 +
#Should be able to accept a Firefox build (eg; en-GB or en-US)
 +
#Read through every DTD and Properties file in the current directory with the "Parser.py" file
 +
#Changes the word "color" to "colour" in every DTD file and have it saved
 +
* Instruction: [http://matrix.senecac.on.ca/~azambran/mozilla/instructions0.1.txt Instructuion0.1.txt]
 +
* Tools: [https://bugzilla.mozilla.org/attachment.cgi?id=284789 0.1 Releases]
 +
===== Version 0.2.* =====
 +
#Given any directory as a starting point, should walk through all sub-directories and files and make changes based on translation rules
 +
#Add ability to update Properties files
 +
#Allow user to enter localization folder (eg; en-GB) as input
 +
* Instruction:[http://zenit.senecac.on.ca/wiki/index.php/Release_0.2.3_Instructions 0.2.3 Instructions]
 +
* Tools: [http://zenit.senecac.on.ca/wiki/imgs/L10nmerge0.2.3.zip 0.2.3 Releases]
 +
* Older Version: [http://matrix.senecac.on.ca/~azambran/mozilla/l10n/l10nmerge0.2.2.zip 0.2.2 Release]
  
====== Release 0.1 ======
+
===== Version 0.3.* =====
* Software Requirements: Python --> Get it from Python's download page
+
# Fix Key changing problem
* Download the 0.1 release here (contains Python scripts and supporting DTD & Properties files).
+
# Add more words for translation
* System's instructions. Basically, once you have Python installed, double click on the l10nMerge.py script and check the corresponding DTD and Properties files for the changes to the "color" string (which should now be called "colour")
+
# Create new l10n tree instead of creating .bak file
  
====== Release 0.2 ======
+
* Instruction:
 
+
# Download 0.3.2 and 0.3.3
====== Release 0.3 ======
+
# Unzip 0.3.2 and Unzip 0.3.3 to overwrite 0.3.2
 +
# CMD Command: python l10nFork.py en en-CA
 +
* Tools: [https://bugzilla.mozilla.org/attachment.cgi?id=292015 0.3.2] & [https://bugzilla.mozilla.org/attachment.cgi?id=292111 0.3.3]
  
 
== Contributions ==
 
== Contributions ==
Line 45: Line 59:
  
 
== Lab ==
 
== Lab ==
==== Thunderbird Fix ====
+
==== Modifying the Browser Lab - Firefox Patch ====
<pre>
+
*[http://matrix.senecac.on.ca/~vlam6/patch.txt Patch]
? labpatch.txt
+
Related Blog Post:
? objdir-tbird-debug
+
[http://vlam6.wordpress.com/2007/10/14/modifying-the-browser-lab/ 2007/10/14]
? security/nss/cmd/shlibsign/NONE
+
[http://vlam6.wordpress.com/2007/10/17/modifying-the-browser-lab-continued-done/ 2007/10/17]
? security/nss/cmd/shlibsign/mangle/NONE
+
 
? security/nss/lib/ckfw/builtins/NONE
+
==== Modifying the Browser Lab - Firefox Extension ====
? security/nss/lib/ckfw/capi/NONE
+
*[http://matrix.senecac.on.ca/~vlam6/addtabbeside.xpi Extension]
? security/nss/lib/freebl/NONE
+
Related Blog Post:
? security/nss/lib/nss/NONE
+
[http://vlam6.wordpress.com/2007/11/19/redo-lab-1-2-lab-3-4-posted/ 2007/11/19]
? security/nss/lib/smime/NONE
+
 
? security/nss/lib/softoken/NONE
+
==== Fixing a bug in Thunderbird - Thunderbird Patch ====
? security/nss/lib/softoken/legacydb/NONE
+
*[http://matrix.senecac.on.ca/~vlam6/labpatch.txt My Thunderbird Patch]
? security/nss/lib/ssl/NONE
+
*[http://landfill.bugzilla.org/bugzilla-3.0-branch/show_bug.cgi?id=6013 My Bug @ Bugzilla]
Index: netwerk/streamconv/converters/mozTXTToHTMLConv.cpp
+
Related Blog Post:
===================================================================
+
[http://vlam6.wordpress.com/2007/11/12/problem-with-fixing-a-bug-in-thunderbird-lab/ 2007/11/12]
RCS file: /cvsroot/mozilla/netwerk/streamconv/converters/mozTXTToHTMLConv.cpp,v
+
==== Creating a Binary C++ XPCOM Component - XPCOM Folder ====
retrieving revision 1.85
+
*[http://matrix.senecac.on.ca/~vlam6/firstxpcom.zip My Firstxpcom Files in a Zip]
diff -u -8 -p -r1.85 mozTXTToHTMLConv.cpp
+
Related Blog Post:
--- netwerk/streamconv/converters/mozTXTToHTMLConv.cpp 11 Mar 2007 00:17:00 -0000 1.85
+
[http://vlam6.wordpress.com/2007/11/15/lab-creating-a-binary-c-xpcom-component/ 2007/11/15]
+++ netwerk/streamconv/converters/mozTXTToHTMLConv.cpp 11 Nov 2007 23:37:50 -0000
+
[http://vlam6.wordpress.com/2007/11/21/lab-5-completed/ 2007/11/21]
@@ -1,42 +1,42 @@
+
==== Adding Chrome/UI to the FirstXpcom Component ====
/* -*- Mode: C; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
+
Related Blog Post:
/* ***** BEGIN LICENSE BLOCK *****
+
[http://vlam6.wordpress.com/2007/11/21/lab-5-completed/ 2007/11/21]
- *
+
 
+ *
 
  * The "License" shall be the Mozilla Public License Version 1.1, except
 
  * Sections 6.2 and 11, but with the addition of the below defined Section 14.
 
  * You may obtain a copy of the Mozilla Public License Version 1.1 at
 
  * <http://www.mozilla.org/MPL/>. The contents of this file are subject to the
 
  * License; you may not use this file except in compliance with the License.
 
- *
 
+ *
 
  * Section 14: MISCELLANEOUS.
 
  * This License represents the complete agreement concerning subject matter
 
  * hereof. If any provision of this License is held to be unenforceable, such
 
  * provision shall be reformed only to the extent necessary to make it
 
  * enforceable. This License shall be governed by German law provisions. Any
 
  * litigation relating to this License shall be subject to German jurisdiction.
 
- *
 
+ *
 
  * Once Covered Code has been published under a particular version of the
 
  * License, You may always continue to use it under the terms of that version.
 
  + The Initial Developer and no one else has the right to modify the terms
 
  * applicable to Covered Code created under this License.
 
  * (End of Section 14)
 
- *
 
+ *
 
  * Software distributed under the License is distributed on an "AS IS"
 
  * basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the
 
  * License for the specific language governing rights and limitations
 
  * under the License.
 
- *
 
+ *
 
  * The Original Code is the Mozilla Text to HTML converter code.
 
- *
 
+ *
 
  * The Initial Developer of the Original Code is
 
  * Ben Bucksch <http://www.bucksch.org>.
 
  * Portions created by Ben Bucksch are Copyright
 
  * (C) 1999, 2000 Ben Bucksch. All Rights Reserved.
 
- *
 
+ *
 
  * Contributor(s):
 
  *
 
  * Alternatively, the contents of this file may be used under the terms of
 
  * either the GNU General Public License Version 2 or later (the "GPL"), or
 
  * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
 
  * in which case the provisions of the GPL or the LGPL are applicable instead
 
  * of those above. If you wish to allow use of your version of this file only
 
  * under the terms of either the GPL or the LGPL, and not to allow others to
 
@@ -69,17 +69,17 @@ const PRFloat64 growthRate = 1.2;
 
// 0xA0's and a single ending space, so need to treat 0xA0's as spaces.
 
// 0xA0 is the Latin1/Unicode character for "non-breaking space (nbsp)"
 
// Also recognize the Japanese ideographic space 0x3000 as a space.
 
static inline PRBool IsSpace(const PRUnichar aChar)
 
{
 
  return (nsCRT::IsAsciiSpace(aChar) || aChar == 0xA0 || aChar == 0x3000);
 
}
 
 
-// Escape Char will take ch, escape it and append the result to
 
+// Escape Char will take ch, escape it and append the result to
 
// aStringToAppendTo
 
void
 
mozTXTToHTMLConv::EscapeChar(const PRUnichar ch, nsString& aStringToAppendTo)
 
{
 
    switch (ch)
 
    {
 
    case '<':
 
      aStringToAppendTo.AppendLiteral("&lt;");
 
@@ -94,17 +94,17 @@ mozTXTToHTMLConv::EscapeChar(const PRUni
 
      aStringToAppendTo += ch;
 
    }
 
 
    return;
 
}
 
 
// EscapeStr takes the passed in string and
 
// escapes it IN PLACE.
 
-void
 
+void
 
mozTXTToHTMLConv::EscapeStr(nsString& aInString)
 
{
 
  // the replace substring routines
 
  // don't seem to work if you have a character
 
  // in the in string that is also in the replacement
 
  // string! =(
 
  //aInString.ReplaceSubstring("&", "&amp;");
 
  //aInString.ReplaceSubstring("<", "&lt;");
 
@@ -129,17 +129,17 @@ mozTXTToHTMLConv::EscapeStr(nsString& aI
 
      i += 5; // skip past the integers we just added
 
      break;
 
    default:
 
      i++;
 
    }
 
  }
 
}
 
 
-void
 
+void
 
mozTXTToHTMLConv::UnescapeStr(const PRUnichar * aInString, PRInt32 aStartPos, PRInt32 aLength, nsString& aOutString)
 
{
 
  const PRUnichar * subString = nsnull;
 
  for (PRUint32 i = aStartPos; PRInt32(i) - aStartPos < aLength;)
 
  {
 
    PRInt32 remainingChars = i - aStartPos;
 
    if (aInString[i] == '&')
 
    {
 
@@ -169,44 +169,44 @@ mozTXTToHTMLConv::UnescapeStr(const PRUn
 
    {
 
      aOutString += aInString[i];
 
      i++;
 
    }
 
  }
 
}
 
 
void
 
-mozTXTToHTMLConv::CompleteAbbreviatedURL(const PRUnichar * aInString, PRInt32 aInLength,
 
+mozTXTToHTMLConv::CompleteAbbreviatedURL(const PRUnichar * aInString, PRInt32 aInLength,
 
                                          const PRUint32 pos, nsString& aOutString)
 
{
 
  NS_ASSERTION(pos < aInLength, "bad args to CompleteAbbreviatedURL, see bug #190851");
 
  if (pos >= aInLength)
 
    return;
 
 
  if (aInString[pos] == '@')
 
  {
 
    // only pre-pend a mailto url if the string contains a .domain in it..
 
    //i.e. we want to linkify johndoe@foo.com but not "let's meet @8pm"
 
    nsDependentString inString(aInString, aInLength);
 
-    if (inString.FindChar('.', pos) != kNotFound) // if we have a '.' after the @ sign....
 
+    if (inString.FindChar('.', pos) != kNotFound  && (inString.Find("..", 0) == kNotFound))    { // if we have a '.' after the @ sign.... and make sure there is no double '.' anywhere
 
    {
 
      aOutString.AssignLiteral("mailto:");
 
      aOutString += aInString;
 
    }
 
  }
 
  else if (aInString[pos] == '.')
 
  {
 
    if (ItMatchesDelimited(aInString, aInLength,
 
                            NS_LITERAL_STRING("www.").get(), 4, LT_IGNORE, LT_IGNORE))
 
    {
 
      aOutString.AssignLiteral("http://");
 
      aOutString += aInString;
 
    }
 
    else if (ItMatchesDelimited(aInString,aInLength, NS_LITERAL_STRING("ftp.").get(), 4, LT_IGNORE, LT_IGNORE))
 
-    {
 
+    {
 
      aOutString.AssignLiteral("ftp://");
 
      aOutString += aInString;
 
    }
 
  }
 
}
 
 
PRBool
 
mozTXTToHTMLConv::FindURLStart(const PRUnichar * aInString, PRInt32 aInLength,
 
@@ -360,17 +360,17 @@ mozTXTToHTMLConv::FindURLEnd(const PRUni
 
      return PR_FALSE;
 
  }
 
  default:
 
    return PR_FALSE;
 
  } //switch
 
}
 
 
void
 
-mozTXTToHTMLConv::CalculateURLBoundaries(const PRUnichar * aInString, PRInt32 aInStringLength,
 
+mozTXTToHTMLConv::CalculateURLBoundaries(const PRUnichar * aInString, PRInt32 aInStringLength,
 
      const PRUint32 pos, const PRUint32 whathasbeendone,
 
      const modetype check, const PRUint32 start, const PRUint32 end,
 
      nsString& txtURL, nsString& desc,
 
      PRInt32& replaceBefore, PRInt32& replaceAfter)
 
{
 
  PRUint32 descstart = start;
 
  switch(check)
 
  {
 
@@ -385,17 +385,17 @@ mozTXTToHTMLConv::CalculateURLBoundaries
 
    descstart = start - 1;
 
    desc.Append(&aInString[descstart], end - descstart + 2); // include brackets
 
    replaceAfter = end - pos + 1;
 
  } break;
 
  case freetext:
 
  case abbreviated:
 
  {
 
    descstart = start;
 
-   desc.Append(&aInString[descstart], end - start + 1); // don't include brackets 
 
+    desc.Append(&aInString[descstart], end - start + 1); // don't include brackets
 
    replaceAfter = end - pos;
 
  } break;
 
  default: break;
 
  } //switch
 
 
  EscapeStr(desc);
 
 
  txtURL.Append(&aInString[start], end - start + 1);
 
@@ -414,17 +414,17 @@ PRBool mozTXTToHTMLConv::ShouldLinkify(c
 
    return PR_FALSE;
 
 
  nsCAutoString scheme;
 
  nsresult rv = mIOService->ExtractScheme(aURL, scheme);
 
  if(NS_FAILED(rv))
 
    return PR_FALSE;
 
 
  // Get the handler for this scheme.
 
-  nsCOMPtr<nsIProtocolHandler> handler;   
 
+  nsCOMPtr<nsIProtocolHandler> handler;
 
  rv = mIOService->GetProtocolHandler(scheme.get(), getter_AddRefs(handler));
 
  if(NS_FAILED(rv))
 
    return PR_FALSE;
 
 
  // Is it an external protocol handler? If not, linkify it.
 
  nsCOMPtr<nsIExternalProtocolHandler> externalHandler = do_QueryInterface(handler, &rv);
 
  if (!externalHandler)
 
    return PR_TRUE; // handler is built-in, linkify it!
 
@@ -440,17 +440,17 @@ mozTXTToHTMLConv::CheckURLAndCreateHTML(
 
      const nsString& txtURL, const nsString& desc, const modetype mode,
 
      nsString& outputHTML)
 
{
 
  // Create *uri from txtURL
 
  nsCOMPtr<nsIURI> uri;
 
  nsresult rv = NS_OK;
 
  if (!mIOService)
 
    mIOService = do_GetService(kIOServiceCID, &rv);
 
 
+
 
  if (NS_FAILED(rv) || !mIOService)
 
    return PR_FALSE;
 
 
  // See if the url should be linkified.
 
  NS_ConvertUTF16toUTF8 utf8URL(txtURL);
 
  if (!ShouldLinkify(utf8URL))
 
    return PR_FALSE;
 
 
@@ -639,17 +639,17 @@ mozTXTToHTMLConv::ItMatchesDelimited(con
 
                                    nsCaseInsensitiveStringComparator())
 
    )
 
    return PR_FALSE;
 
 
  return PR_TRUE;
 
}
 
 
PRUint32
 
-mozTXTToHTMLConv::NumberOfMatches(const PRUnichar * aInString, PRInt32 aInStringLength,
 
+mozTXTToHTMLConv::NumberOfMatches(const PRUnichar * aInString, PRInt32 aInStringLength,
 
      const PRUnichar* rep, PRInt32 aRepLen, LIMTYPE before, LIMTYPE after)
 
{
 
  PRUint32 result = 0;
 
 
  for (PRInt32 i = 0; i < aInStringLength; i++)
 
  {
 
    const PRUnichar * indexIntoString = &aInString[i];
 
    if (ItMatchesDelimited(indexIntoString, aInStringLength - i, rep, aRepLen, before, after))
 
@@ -658,17 +658,17 @@ mozTXTToHTMLConv::NumberOfMatches(const
 
  return result;
 
}
 
 
 
// NOTE: the converted html for the phrase is appended to aOutString
 
// tagHTML and attributeHTML are plain ASCII (literal strings, in fact)
 
PRBool
 
mozTXTToHTMLConv::StructPhraseHit(const PRUnichar * aInString, PRInt32 aInStringLength, PRBool col0,
 
-    const PRUnichar* tagTXT, PRInt32 aTagTXTLen,
 
+    const PRUnichar* tagTXT, PRInt32 aTagTXTLen,
 
      const char* tagHTML, const char* attributeHTML,
 
      nsString& aOutString, PRUint32& openTags)
 
{
 
  /* We're searching for the following pattern:
 
      LT_DELIMITER - "*" - ALPHA -
 
      [ some text (maybe more "*"-pairs) - ALPHA ] "*" - LT_DELIMITER.
 
      <strong> is only inserted, if existance of a pair could be verified
 
      We use the first opening/closing tag, if we can choose */
 
@@ -679,19 +679,19 @@ mozTXTToHTMLConv::StructPhraseHit(const
 
  {
 
    newOffset = &aInString[1];
 
    newLength = aInStringLength - 1;
 
  }
 
 
  // opening tag
 
  if
 
    (
 
-      ItMatchesDelimited(aInString, aInStringLength, tagTXT, aTagTXTLen,
 
+      ItMatchesDelimited(aInString, aInStringLength, tagTXT, aTagTXTLen,
 
            (col0 ? LT_IGNORE : LT_DELIMITER), LT_ALPHA) // is opening tag
 
-        && NumberOfMatches(newOffset, newLength, tagTXT, aTagTXTLen,
 
+        && NumberOfMatches(newOffset, newLength, tagTXT, aTagTXTLen,
 
              LT_ALPHA, LT_DELIMITER)  // remaining closing tags
 
              > openTags
 
    )
 
  {
 
    openTags++;
 
    aOutString.AppendLiteral("<");
 
    aOutString.AppendASCII(tagHTML);
 
    aOutString.Append(PRUnichar(' '));
 
@@ -723,17 +723,17 @@ PRBool
 
mozTXTToHTMLConv::SmilyHit(const PRUnichar * aInString, PRInt32 aLength, PRBool col0,
 
          const char* tagTXT, const char* imageName,
 
          nsString& outputHTML, PRInt32& glyphTextLen)
 
{
 
  if ( !aInString || !tagTXT || !imageName )
 
      return PR_FALSE;
 
 
  PRInt32  tagLen = nsCRT::strlen(tagTXT);
 
-
 
+
 
  PRUint32 delim = (col0 ? 0 : 1) + tagLen;
 
 
  if
 
    (
 
      (col0 || IsSpace(aInString[0]))
 
        &&
 
        (
 
          aLength <= PRInt32(delim) ||
 
@@ -746,47 +746,47 @@ mozTXTToHTMLConv::SmilyHit(const PRUnich
 
              aInString[delim] == ';' ||
 
              aInString[delim] == '8' ||
 
              aInString[delim] == '>' ||
 
              aInString[delim] == '!' ||
 
              aInString[delim] == '?'
 
            )
 
            && IsSpace(aInString[delim + 1])
 
        )
 
-        && ItMatchesDelimited(aInString, aLength, NS_ConvertASCIItoUTF16(tagTXT).get(), tagLen,
 
+        && ItMatchesDelimited(aInString, aLength, NS_ConvertASCIItoUTF16(tagTXT).get(), tagLen,
 
                              col0 ? LT_IGNORE : LT_DELIMITER, LT_IGNORE)
 
        // Note: tests at different pos for LT_IGNORE and LT_DELIMITER
 
    )
 
  {
 
    if (!col0)
 
    {
 
      outputHTML.Truncate();
 
      outputHTML.Append(PRUnichar(' '));
 
    }
 
 
    outputHTML.AppendLiteral("<span class=\""); // <span class="
 
    AppendASCIItoUTF16(imageName, outputHTML);  // e.g. smiley-frown
 
-   outputHTML.AppendLiteral("\" title=\"");    // " title="   
 
+    outputHTML.AppendLiteral("\" title=\"");    // " title="
 
    AppendASCIItoUTF16(tagTXT, outputHTML);    // smiley tooltip
 
-   outputHTML.AppendLiteral("\"><span>");      // "><span>     
 
-   AppendASCIItoUTF16(tagTXT, outputHTML);    // original text
 
+    outputHTML.AppendLiteral("\"><span>");      // "><span>
 
+    AppendASCIItoUTF16(tagTXT, outputHTML);    // original text
 
    outputHTML.AppendLiteral("</span></span>"); // </span></span>
 
    glyphTextLen = (col0 ? 0 : 1) + tagLen;
 
    return PR_TRUE;
 
  }
 
 
  return PR_FALSE;
 
}
 
 
// the glyph is appended to aOutputString instead of the original string...
 
PRBool
 
mozTXTToHTMLConv::GlyphHit(const PRUnichar * aInString, PRInt32 aInLength, PRBool col0,
 
          nsString& aOutputString, PRInt32& glyphTextLen)
 
{
 
-  PRUnichar text0 = aInString[0];
 
+  PRUnichar text0 = aInString[0];
 
  PRUnichar text1 = aInString[1];
 
  PRUnichar firstChar = (col0 ? text0 : text1);
 
 
  // temporary variable used to store the glyph html text
 
  nsAutoString outputHTML;
 
  PRBool bTestSmilie;
 
  PRBool bArg;
 
  int i;
 
@@ -813,116 +813,116 @@ mozTXTToHTMLConv::GlyphHit(const PRUnich
 
        bTestSmilie = PR_TRUE;
 
        bArg = PR_FALSE;
 
    }
 
    if ( bTestSmilie && (
 
          SmilyHit(aInString, aInLength, bArg,
 
                    ":-)",
 
                    "moz-smiley-s1", // smile
 
                    outputHTML, glyphTextLen) ||
 
 
+
 
          SmilyHit(aInString, aInLength, bArg,
 
                    ":)",
 
                    "moz-smiley-s1", // smile
 
                    outputHTML, glyphTextLen) ||
 
-         
 
+
 
          SmilyHit(aInString, aInLength, bArg,
 
                    ":-D",
 
                    "moz-smiley-s5", // laughing
 
                    outputHTML, glyphTextLen) ||
 
-         
 
+
 
          SmilyHit(aInString, aInLength, bArg,
 
                    ":-(",
 
                    "moz-smiley-s2", // frown
 
                    outputHTML, glyphTextLen) ||
 
-         
 
+
 
          SmilyHit(aInString, aInLength, bArg,
 
                    ":(",
 
                    "moz-smiley-s2", // frown
 
                    outputHTML, glyphTextLen) ||
 
-         
 
+
 
          SmilyHit(aInString, aInLength, bArg,
 
                    ":-[",
 
                    "moz-smiley-s6", // embarassed
 
                    outputHTML, glyphTextLen) ||
 
-         
 
+
 
          SmilyHit(aInString, aInLength, bArg,
 
                    ";-)",
 
                    "moz-smiley-s3", // wink
 
                    outputHTML, glyphTextLen) ||
 
 
          SmilyHit(aInString, aInLength, col0,
 
                    ";)",
 
                    "moz-smiley-s3", // wink
 
                    outputHTML, glyphTextLen) ||
 
-         
 
+
 
          SmilyHit(aInString, aInLength, bArg,
 
                    ":-\\",
 
                    "moz-smiley-s7", // undecided
 
                    outputHTML, glyphTextLen) ||
 
-         
 
+
 
          SmilyHit(aInString, aInLength, bArg,
 
                    ":-P",
 
                    "moz-smiley-s4", // tongue
 
                    outputHTML, glyphTextLen) ||
 
-                 
 
+
 
          SmilyHit(aInString, aInLength, bArg,
 
                    ";-P",
 
                    "moz-smiley-s4", // tongue
 
-                  outputHTML, glyphTextLen) || 
 
-       
 
+                  outputHTML, glyphTextLen) ||
 
+
 
          SmilyHit(aInString, aInLength, bArg,
 
                    "=-O",
 
                    "moz-smiley-s8", // surprise
 
                    outputHTML, glyphTextLen) ||
 
-       
 
+
 
          SmilyHit(aInString, aInLength, bArg,
 
                    ":-*",
 
                    "moz-smiley-s9", // kiss
 
                    outputHTML, glyphTextLen) ||
 
-       
 
+
 
          SmilyHit(aInString, aInLength, bArg,
 
                    ">:o",
 
                    "moz-smiley-s10", // yell
 
                    outputHTML, glyphTextLen) ||
 
-         
 
+
 
          SmilyHit(aInString, aInLength, bArg,
 
                    ">:-o",
 
                    "moz-smiley-s10", // yell
 
                    outputHTML, glyphTextLen) ||
 
-       
 
+
 
          SmilyHit(aInString, aInLength, bArg,
 
                    "8-)",
 
                    "moz-smiley-s11", // cool
 
                    outputHTML, glyphTextLen) ||
 
-        
 
+
 
          SmilyHit(aInString, aInLength, bArg,
 
                    ":-$",
 
                    "moz-smiley-s12", // money
 
                    outputHTML, glyphTextLen) ||
 
-        
 
+
 
          SmilyHit(aInString, aInLength, bArg,
 
                    ":-!",
 
                    "moz-smiley-s13", // foot
 
                    outputHTML, glyphTextLen) ||
 
-       
 
+
 
          SmilyHit(aInString, aInLength, bArg,
 
                    "O:-)",
 
                    "moz-smiley-s14", // innocent
 
                    outputHTML, glyphTextLen) ||
 
-       
 
+
 
          SmilyHit(aInString, aInLength, bArg,
 
                    ":'(",
 
                    "moz-smiley-s15", // cry
 
                    outputHTML, glyphTextLen) ||
 
-       
 
+
 
          SmilyHit(aInString, aInLength, bArg,
 
                    ":-X",
 
                    "moz-smiley-s16", // sealed
 
-                  outputHTML, glyphTextLen)
 
+                  outputHTML, glyphTextLen)
 
        )
 
    )
 
    {
 
        aOutputString.Append(outputHTML);
 
        return PR_TRUE;
 
    }
 
    i++;
 
  }
 
@@ -949,37 +949,37 @@ mozTXTToHTMLConv::GlyphHit(const PRUnich
 
      aOutputString.AppendLiteral("&plusmn;");
 
      glyphTextLen = 3;
 
      return PR_TRUE;
 
    }
 
  }
 
 
  // x^2  =>  x<sup>2</sup>,  also handle powers x^-2,  x^0.5
 
  // implement regular expression /[\dA-Za-z\)\]}]\^-?\d+(\.\d+)*[^\dA-Za-z]/
 
-  if   
 
+  if
 
    (
 
      text1 == '^'
 
-      &&
 
+      &&
 
      (
 
-        nsCRT::IsAsciiDigit(text0) || nsCRT::IsAsciiAlpha(text0) ||
 
+        nsCRT::IsAsciiDigit(text0) || nsCRT::IsAsciiAlpha(text0) ||
 
        text0 == ')' || text0 == ']' || text0 == '}'
 
      )
 
      &&
 
      (
 
        2 < aInLength && nsCRT::IsAsciiDigit(aInString[2]) ||
 
        3 < aInLength && aInString[2] == '-' && nsCRT::IsAsciiDigit(aInString[3])
 
      )
 
    )
 
  {
 
    // Find first non-digit
 
    PRInt32 delimPos = 3;  // skip "^" and first digit (or '-')
 
    for (; delimPos < aInLength
 
            &&
 
            (
 
-            nsCRT::IsAsciiDigit(aInString[delimPos]) ||
 
+            nsCRT::IsAsciiDigit(aInString[delimPos]) ||
 
              aInString[delimPos] == '.' && delimPos + 1 < aInLength &&
 
                nsCRT::IsAsciiDigit(aInString[delimPos + 1])
 
            );
 
          delimPos++)
 
      ;
 
 
    if (delimPos < aInLength && nsCRT::IsAsciiAlpha(aInString[delimPos]))
 
    {
 
@@ -1016,17 +1016,17 @@ mozTXTToHTMLConv::GlyphHit(const PRUnich
 
/***************************************************************************
 
  Library-internal Interface
 
****************************************************************************/
 
 
mozTXTToHTMLConv::mozTXTToHTMLConv()
 
{
 
}
 
 
-mozTXTToHTMLConv::~mozTXTToHTMLConv()
 
+mozTXTToHTMLConv::~mozTXTToHTMLConv()
 
{
 
}
 
 
NS_IMPL_ISUPPORTS1(mozTXTToHTMLConv, mozITXTToHTMLConv)
 
 
PRInt32
 
mozTXTToHTMLConv::CiteLevelTXT(const PRUnichar *line,
 
    PRUint32& logLineStart)
 
@@ -1214,17 +1214,17 @@ mozTXTToHTMLConv::ScanTXT(const PRUnicha
 
      i++;
 
      break;
 
    }
 
  }
 
}
 
 
void
 
mozTXTToHTMLConv::ScanHTML(nsString& aInString, PRUint32 whattodo, nsString &aOutString)
 
-{
 
+{
 
  // some common variables we were recalculating
 
  // every time inside the for loop...
 
  PRInt32 lengthOfInString = aInString.Length();
 
  const PRUnichar * uniBuffer = aInString.get();
 
 
#ifdef DEBUG_BenB_Perf
 
  PRTime parsing_start = PR_IntervalNow();
 
#endif
 
@@ -1269,18 +1269,18 @@ mozTXTToHTMLConv::ScanHTML(nsString& aIn
 
      aOutString.Append(&uniBuffer[start], PRUint32(i) - start);
 
    }
 
    else
 
    {
 
      PRUint32 start = PRUint32(i);
 
      i = aInString.FindChar('<', i);
 
      if (i == kNotFound)
 
        i = lengthOfInString;
 
 
-      nsString tempString;   
 
+
 
+      nsString tempString;
 
      tempString.SetCapacity(PRUint32((PRUint32(i) - start) * growthRate));
 
      UnescapeStr(uniBuffer, start, PRUint32(i) - start, tempString);
 
      ScanTXT(tempString.get(), tempString.Length(), whattodo, aOutString);
 
    }
 
  }
 
 
#ifdef DEBUG_BenB_Perf
 
  printf("ScanHTML time:    %d ms\n", PR_IntervalToMilliseconds(PR_IntervalNow() - parsing_start));
 
</pre>
 
 
== IRC Commands ==
 
== IRC Commands ==
 
* /join #channel <join chann>
 
* /join #channel <join chann>

Latest revision as of 16:43, 9 December 2007

About Me

  • Name: Vincent Lam.
  • Program: Bachelor of Software Development.

Contacts

Open Source Projects

Automated Localization Build Script

http://zenit.senecac.on.ca/wiki/index.php/Automated_localization_build_tool

Version 0.1
  1. Should be able to accept a localization
  2. Should be able to accept a Firefox build (eg; en-GB or en-US)
  3. Read through every DTD and Properties file in the current directory with the "Parser.py" file
  4. Changes the word "color" to "colour" in every DTD file and have it saved
Version 0.2.*
  1. Given any directory as a starting point, should walk through all sub-directories and files and make changes based on translation rules
  2. Add ability to update Properties files
  3. Allow user to enter localization folder (eg; en-GB) as input
Version 0.3.*
  1. Fix Key changing problem
  2. Add more words for translation
  3. Create new l10n tree instead of creating .bak file
  • Instruction:
  1. Download 0.3.2 and 0.3.3
  2. Unzip 0.3.2 and Unzip 0.3.3 to overwrite 0.3.2
  3. CMD Command: python l10nFork.py en en-CA

Contributions

Desktop Social Networking Integration

Desktop Social Networking Integration,

  • Research on SQLite Client
  • Found a SQLite Client
  • Setup the client
  • Tested the client
  • Tried to get his code to compile

Full-Text History Search Extension

Full-Text History Search extension

  • Research on how to create an extension
  • Research on CVS Editor
  • Found an free CVS Editor
  • Research on History Search

FSOSS Report

My FSOSS Report

Lab

Modifying the Browser Lab - Firefox Patch

Related Blog Post: 2007/10/14 2007/10/17

Modifying the Browser Lab - Firefox Extension

Related Blog Post: 2007/11/19

Fixing a bug in Thunderbird - Thunderbird Patch

Related Blog Post: 2007/11/12

Creating a Binary C++ XPCOM Component - XPCOM Folder

Related Blog Post: 2007/11/15 2007/11/21

Adding Chrome/UI to the FirstXpcom Component

Related Blog Post: 2007/11/21

IRC Commands

  • /join #channel <join chann>
  • username: ping <get people attention>
  • username: pong
  • /query username <start a private chat>
  • /join #meeting10 <new room>
  • /me <emote>

Useful Link

  1. Zenit Planet
  2. Add-Ons