Commits

Anonymous committed 16bbf12 Merge

Merge branch 'master' into development

Comments (0)

Files changed (14)

 
 Current Maintainers
 -------------------
-Owen Yamauchi    github.com/oyamauchi      oyamauchi@facebook.com
-Jeff Verkoeyen   github.com/jverkoey       jverkoey@gmail.com
-John Wang        github.com/jwang          jwang392@gmail.com
+Owen Yamauchi      github.com/oyamauchi      oyamauchi@facebook.com
+Jeff Verkoeyen     github.com/jverkoey       jverkoey@gmail.com
+John Wang          github.com/jwang          jwang392@gmail.com
+Stephan Diederich  github.com/diederich      stephan.diederich@googlemail.com
 
 Contributors
 ------------

CHANGES

-Changes since May 31, 2010
-
-- [NEW] CSSStyle extension. View the README in src/extThree20CSSStyle
-
-- [FIXED] Warnings related to OS 4.0 and 3.2.
-
-Changes since May 28, 2010
-
-- [APPSTORE] Remove use of TTSwapMethods. See Articles/UI/GarbageCollection and
-             eb45ca0a6336022367998ac41ced2df39af384d2.
-
-- [NEW] Add nib support again.
-
-- [FIXED] Issue #77. moveDataForURL and removeURL:fromDisk: have been fixed.
-
-Changes since May 18, 2010
-
-- [NEW] TTEntityTables added to Core.
-
-- [DEPRECATED] NSArray perform:. You should now use makeObjectsPerformSelector.
-
-- [UNITTESTS] Added unit tests for the markup stripper.
-
-- [MINOR] Removed additions from Three20Core.h.
-
-Changes since April 23, 2010
-
-- [NEW] Three20 has been split into modular libraries. Please read the
-        Articles/AboutModules.mdown file to learn more about the process.
-
-- [NEW] Add templates for Three20 projects and source files.
-
-- [NEW] Add Articles/ directory dedicated to in-depth discussions of Three20
-        components.
-
-- [NEW] Etag support. See Articles/Network/Etag.mdown for more details.
-
-Changes since April 09, 2010
-
-- [NEW] New +Additions library header files.
-
-- [NEW] Network unit tests.
-
-- [NEW] Nib support moved to a separate 'nibs' branch.
-
-- [NEW] Added the JSON library.
-
-- [NEW] Add a TTFacebook sample project using the new Open Graph API.
-
-- [DOX] Style consistency throughout the entire framework.
-
-Changes since March 30, 2010
-
-- [NEW] New showTableShadows option for table gutter shadows.
-
-- [NEW] Nib support for TTViewControllers.
-
-- [NEW] TTNibDemo app demoing new Nib support.
-
-- [NEW] TTNetwork library.
-
-- [NEW] TTNetworkDemo example project.
-
-- [MINOR] Don't hard code the HTTP User-Agent.
-
-- [MINOR] Convert TTLink to use TTURLAction instead of just a URL.
-
-- [MINOR] Cleaning up and standardizing the coding style, about 70% complete.
-
-Changes since February 26, 2010
-
-- [NEW] arrayForKey in the TTXMLAdditions.
-
-- [NEW] Support for successful HTTP status codes from [200, 300).
-
-- [NEW] Three20Core library.
-
-- [NEW] TTCoreDemo example project.
-
-- [FIXED] UIImage's transformWidth:height:rotate: implementation.
-
-- [FIXED] Keyboard display notifications.
-
-- [DOX] Doug Barth contributed complete documentation of TTMessageController.
-
-Changes since February 1, 2010
-
-- [NEW] TTTwitter sample app. See the README.mdown file for in-depth details.
-
-- [NEW] TTXMLParser - A barebones XML parser that takes an XML string and creates an NSObject.
-        Options include support for RSS feeds. See the new TTTwitter sample app for an example.
-
-- [NEW] TTTableHeaderDragRefreshView, TTTableViewDragRefreshDelegate. These two new objects
-        together implement the "drag-to-refresh" table header seen in other apps on the app
-        store. Thanks to uprise78 for this fix.
-
-- [NEW] Add support for PUT HTTP methods. Thanks to dima.
-
-- [FIXED] github#71 navigationBarTintColor and toolbarTintColor issues for TTDefaultSheet
-          and TTWebController.
-
-- [FIXED] github#148 Add _toolbar.tintColor to TTPhotoViewController.
-
-- [DOCUMENTATION] TTURLRequestDelegate, TTURLRequest, TTURLRequestQueue, TTWebController,
-                  TTYouTubeView, TTTableViewDelegate*.
-
-- [BUILD] Add a prefix header to Debug and Release builds.
-
-- [BUILD] Add a new build mode "Debug Dev" for use when hacking on Three20.
-
-- [BUILD] Reduced include scope of TTDebugFlags.h for faster rebuild times when debugging.
-
-Changes since January 22, 2010
-
-- [NEW] TTURLAction object for TTNavigator.
-
-- [DEPRECATED] openURL methods of TTNavigator.
-
-- [DEPRECATED] TTImageView.URL => TTImageView.urlPath.
-
-- [DOCUMENTATION] Documented TTView, TTImageView, TTScrollView, TTYouTubeView,
-                  TTNavigator and co.
-
-- [MINOR] Cleaned up the debugging documentation.
-
-Changes since December 25, 2009
-
-- [NEW] TTURLRequest didReceiveAuthenticationChallenge for authentication challenges.
-
-- [DEPRECATED] isWhitespace. Use isWhitespaceAndNewlines instead.
-
-- [XCODE] Refactoring problems solved. TTUserInfo weak/strong properties renamed
-          to weakRef/strongRef, respectively.
-
-- [MINOR] Use __PRETTY_FUNCTION__ for debug logs. (@steipete)
-
-Changes from December 18, 2009
-
-- [NEW] TTRecursiveProgress object for recursive progress (go figure!)
-        See TTRecursiveProgress.h for more details
-
-- [LOCALE] Numerous fixes to diffstrings
-
-- [LOCALE] Make --merge in diffstrings actually work
-
-- [LOCALE] Update German, Spanish, Italian, Japanese, Chinese, and Taiwanese
-
-- [NETWORK] TTNetworkRequestStarted/Stopped now threadsafe.
-
-- [CRASHFIX] Synchronous connections modifying non-threadsafe members
-
-Changes from December 11, 2009
-
-- [NEW] -[NSDate formatShortRelativeTime]
-
-- [NEW] Unit tests for most of Core and part of UI
-
-- [APPSTORE] Rename previousViewController to ttPreviousViewController
-
-- [APPSTORE] Rename lineHeight to ttLineHeight
-
-- [APPSTORE] Rename screenX and screenY to ttScreenX and ttScreenY
-
-- [FIXED] diffstrings sorts strings tables to make diffs more sensible
-
-- [DEPRECATED] TTLOG
-
-- [DEPRECATED] TTIsEmpty* methods
-
-- [MINOR] Properly calculate the scroll height in the "Styled Views"
-          example in TTCatalog
-
-Changes from December 5, 2009
-
-- [NEW] TTDCONDITIONLOG added to TTDebug.h
-
-- [NEW] TTDPRINTMETHODNAME added to TTDebug.h
-
-- [NEW] -[NSString versionStringCompare:]
-
-- [NEW] charsetForMultipart added to TTURLRequest
-
-- [FIXED] Table view delete-row animation slides to left, not up
-
-- [FIXED] Potentially uninitialized variable in NSStringAdditions
-
-- [FIXED] Layout problems in TTTextEditor
-
-- [FIXED] github#109 TTScrollView bug: displaying landscape views in
-          landscape orientation have a wrong size
-
-- [MINOR] Stylistic consistency changes
-
-- [MINOR] Duplicate TTIsEmptyArray in TTGlobal.h now TTIsEmptySet
-
-- [MINOR] Reset TTTableMessageItemCell properties when preparing for reuse
-
-- [MINOR] Fix potential crash when asking for a nonexistent
-          previousViewController
-
-- [MINOR] Use the same bytes per row in the destination bitmap for
-          transformWidth
-
-
-Changes from November 27, 2009
-
-- [NEW] loadSynchronous added to TTURLRequest.
-
-- [NEW] TTHighlightBorderStyle New border style with a highlight.
-	http://three20.info/api/TTStyle#TTHighlightBorderStyle
-
-- [NEW] TTReflectiveFillStyle styleWithColor:withBottomHighlight:next:
-        http://three20.info/api/TTStyle#styleWithColor:withBottomHighlight:next:
-
-- [FIXED] TTReflectiveFillStyle's rendering algorithm now works without magic
-          numbers.
-
-- [FIXED] github#108 Show the proper accessoryType for shared URLs.
-
-- [FIXED] github#107 Check for known URL schemes case-insensitively.
-
-- [FIXED] github#106 Update the README to reference the new repo location.
-
-- [FIXED] github#104 Properly show TTTabStrip left/right images.
-
-- [FIXED] github#78 In TTScrollView notify the delegate when the page has
-          changed.
-
-Changes from November 19, 2009
-
-- [FIXED] Revert to previous TTIsKeyboardVisible() check
-
-- [FIXED] Zero no longer signifies "cached object never expires"
-
-
-Changes from November 17, 2009
-
-- [NEW] TTD* logging macros. See TTDebug.h for info.
-
-- [NEW] [NSMutableArray addNonEmptyString:(NSString*)string]
-
-- [NEW] [NSMutableDictionary setNonEmptyString:(NSString*)string forKey:(id)key]
-
-- [NEW] [NSArray containsObject:(id)object withSelector:(SEL)selector]
-
-- [NEW] [NSData md5Hash]
-
-- [DEPRECATED] TTLOG macros should no longer be used, consider switching to TTD* macros.
-
-- [SECURITY] Don't write passwords to the console in TTURLRequests.
-
-- [FIXED] github#67 Set the default cache expiration date for TTURLRequests to
-  TT_DEFAULT_CACHE_EXPIRATION_AGE.
-
-- [FIXED] github#85 Disallow recursive calls to wobble.
-
-- [FIXED] github#92 Fix memory leak in TTViewController.
-
-- [FIXED] github#75 Fix memory leak in UIColorAdditions.
-
-- [FIXED] github#11 Add autoresizingMask to TTActivityLabel.
-
-- [FIXED] references to private APIs: firstResponder, UIView additions

src/Three20/Headers/Three20.h

 
 /*! \mainpage Three20 API Documentation
  *
- * Generated from Three20 Release <a href="http://three20.info/roadmap/v1.0.3">v1.0.3</a>.
+ * Generated from Three20 Release <a href="http://three20.info/roadmap/v1.0.4">v1.0.4</a>.
  *
  */
 

src/extThree20CSSStyle/Sources/CssTokenizer.m

 #if defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
 
 /* C99 says to define __STDC_LIMIT_MACROS before including stdint.h,
- * if you want the limit (max/min) macros for int types. 
+ * if you want the limit (max/min) macros for int types.
  */
 #ifndef __STDC_LIMIT_MACROS
 #define __STDC_LIMIT_MACROS 1
 typedef signed char flex_int8_t;
 typedef short int flex_int16_t;
 typedef int flex_int32_t;
-typedef unsigned char flex_uint8_t; 
+typedef unsigned char flex_uint8_t;
 typedef unsigned short int flex_uint16_t;
 typedef unsigned int flex_uint32_t;
 #endif /* ! C99 */
 #define EOB_ACT_LAST_MATCH 2
 
     #define YY_LESS_LINENO(n)
-    
+
 /* Return all but the first "n" matched characters back to the input stream. */
 #define yyless(n) \
 	do \
 
     int yy_bs_lineno; /**< The line count. */
     int yy_bs_column; /**< The column count. */
-    
+
 	/* Whether to try to fill the input buffer when we reach the
 	 * end of it.
 	 */
 		errno=0; \
 		while ( (result = fread(buf, 1, max_size, cssin))==0 && ferror(cssin)) \
 			{ \
-			if( errno != EINTR) \
+			if ( errno != EINTR) \
 				{ \
 				YY_FATAL_ERROR( "input in flex scanner failed" ); \
 				break; \
 	register yy_state_type yy_current_state;
 	register char *yy_cp, *yy_bp;
 	register int yy_act;
-    
+
 #line 21 "css.grammar"
 
 
 	if ((yy_size_t) ((yy_n_chars) + number_to_move) > YY_CURRENT_BUFFER_LVALUE->yy_buf_size) {
 		/* Extend the array by 50%, plus the number we really need. */
 		yy_size_t new_size = (yy_n_chars) + number_to_move + ((yy_n_chars) >> 1);
-		YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) cssrealloc((void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf,new_size  );
+		YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) cssrealloc((void *)
+                                                              YY_CURRENT_BUFFER_LVALUE->yy_ch_buf,
+                                                              new_size  );
 		if ( ! YY_CURRENT_BUFFER_LVALUE->yy_ch_buf )
 			YY_FATAL_ERROR( "out of dynamic memory in yy_get_next_buffer()" );
 	}
 {
 	register yy_state_type yy_current_state;
 	register char *yy_cp;
-    
+
 	yy_current_state = (yy_start);
 
 	for ( yy_cp = (yytext_ptr) + YY_MORE_ADJ; yy_cp < (yy_c_buf_p); ++yy_cp )
 
 {
 	int c;
-    
+
 	*(yy_c_buf_p) = (yy_hold_char);
 
 	if ( *(yy_c_buf_p) == YY_END_OF_BUFFER_CHAR )
 
 /** Immediately switch to a different input stream.
  * @param input_file A readable stream.
- * 
+ *
  * @note This function does not reset the start condition to @c INITIAL .
  */
     void cssrestart  (FILE * input_file )
 {
-    
+
 	if ( ! YY_CURRENT_BUFFER ){
         cssensure_buffer_stack ();
 		YY_CURRENT_BUFFER_LVALUE =
 
 /** Switch to a different input buffer.
  * @param new_buffer The new input buffer.
- * 
+ *
  */
     void css_switch_to_buffer  (YY_BUFFER_STATE  new_buffer )
 {
-    
+
 	/* TODO. We should be able to replace this entire function body
 	 * with
 	 *		csspop_buffer_state();
 /** Allocate and initialize an input buffer state.
  * @param file A readable stream.
  * @param size The character buffer size in bytes. When in doubt, use @c YY_BUF_SIZE.
- * 
+ *
  * @return the allocated buffer state.
  */
     YY_BUFFER_STATE css_create_buffer  (FILE * file, int  size )
 {
 	YY_BUFFER_STATE b;
-    
+
 	b = (YY_BUFFER_STATE) cssalloc(sizeof( struct yy_buffer_state )  );
 	if ( ! b )
 		YY_FATAL_ERROR( "out of dynamic memory in css_create_buffer()" );
 
 /** Destroy the buffer.
  * @param b a buffer created with css_create_buffer()
- * 
+ *
  */
     void css_delete_buffer (YY_BUFFER_STATE  b )
 {
-    
+
 	if ( ! b )
 		return;
 
 #ifndef __cplusplus
 extern int isatty (int );
 #endif /* __cplusplus */
-    
+
 /* Initializes or reinitializes a buffer.
  * This function is sometimes called more than once on the same buffer,
  * such as during a cssrestart() or at EOF.
 
 {
 	int oerrno = errno;
-    
+
 	css_flush_buffer(b );
 
 	b->yy_input_file = file;
     }
 
         b->yy_is_interactive = file ? (isatty( fileno(file) ) > 0) : 0;
-    
+
 	errno = oerrno;
 }
 
 /** Discard all buffered characters. On the next scan, YY_INPUT will be called.
  * @param b the buffer state to be flushed, usually @c YY_CURRENT_BUFFER.
- * 
+ *
  */
     void css_flush_buffer (YY_BUFFER_STATE  b )
 {
  *  the current state. This function will allocate the stack
  *  if necessary.
  *  @param new_buffer The new state.
- *  
+ *
  */
 void csspush_buffer_state (YY_BUFFER_STATE new_buffer )
 {
 
 /** Removes and deletes the top of the stack, if present.
  *  The next element becomes the new top.
- *  
+ *
  */
 void csspop_buffer_state (void)
 {
 static void cssensure_buffer_stack (void)
 {
 	yy_size_t num_to_alloc;
-    
+
 	if (!(yy_buffer_stack)) {
 
 		/* First allocation is just for 2 elements, since we don't know if this
 								);
 		if ( ! (yy_buffer_stack) )
 			YY_FATAL_ERROR( "out of dynamic memory in cssensure_buffer_stack()" );
-								  
+
 		memset((yy_buffer_stack), 0, num_to_alloc * sizeof(struct yy_buffer_state*));
-				
+
 		(yy_buffer_stack_max) = num_to_alloc;
 		(yy_buffer_stack_top) = 0;
 		return;
 /** Setup the input buffer state to scan directly from a user-specified character buffer.
  * @param base the character buffer
  * @param size the size in bytes of the character buffer
- * 
- * @return the newly allocated buffer state object. 
+ *
+ * @return the newly allocated buffer state object.
  */
 YY_BUFFER_STATE css_scan_buffer  (char * base, yy_size_t  size )
 {
 	YY_BUFFER_STATE b;
-    
+
 	if ( size < 2 ||
 	     base[size-2] != YY_END_OF_BUFFER_CHAR ||
 	     base[size-1] != YY_END_OF_BUFFER_CHAR )
 /** Setup the input buffer state to scan a string. The next call to csslex() will
  * scan from a @e copy of @a str.
  * @param yystr a NUL-terminated string to scan
- * 
+ *
  * @return the newly allocated buffer state object.
  * @note If you want to scan bytes that may contain NUL values, then use
  *       css_scan_bytes() instead.
  */
 YY_BUFFER_STATE css_scan_string (yyconst char * yystr )
 {
-    
+
 	return css_scan_bytes(yystr,strlen(yystr) );
 }
 
  * scan from a @e copy of @a bytes.
  * @param bytes the byte buffer to scan
  * @param len the number of bytes in the buffer pointed to by @a bytes.
- * 
+ *
  * @return the newly allocated buffer state object.
  */
 YY_BUFFER_STATE css_scan_bytes  (yyconst char * yybytes, yy_size_t  _yybytes_len )
 	YY_BUFFER_STATE b;
 	char *buf;
 	yy_size_t n, i;
-    
+
 	/* Get memory for full buffer, including space for trailing EOB's. */
 	n = _yybytes_len + 2;
 	buf = (char *) cssalloc(n  );
 /* Accessor  methods (get/set functions) to struct members. */
 
 /** Get the current line number.
- * 
+ *
  */
 int cssget_lineno  (void)
 {
-        
+
     return csslineno;
 }
 
 /** Get the input stream.
- * 
+ *
  */
 FILE *cssget_in  (void)
 {
 }
 
 /** Get the output stream.
- * 
+ *
  */
 FILE *cssget_out  (void)
 {
 }
 
 /** Get the length of the current token.
- * 
+ *
  */
 yy_size_t cssget_leng  (void)
 {
 }
 
 /** Get the current token.
- * 
+ *
  */
 
 char *cssget_text  (void)
 
 /** Set the current line number.
  * @param line_number
- * 
+ *
  */
 void cssset_lineno (int  line_number )
 {
-    
+
     csslineno = line_number;
 }
 
 /** Set the input stream. This does not discard the current
  * input buffer.
  * @param in_str A readable stream.
- * 
+ *
  * @see css_switch_to_buffer
  */
 void cssset_in (FILE *  in_str )
 /* csslex_destroy is for both reentrant and non-reentrant scanners. */
 int csslex_destroy  (void)
 {
-    
+
     /* Pop the buffer stack, destroying each element. */
-	while(YY_CURRENT_BUFFER){
+	while (YY_CURRENT_BUFFER){
 		css_delete_buffer(YY_CURRENT_BUFFER  );
 		YY_CURRENT_BUFFER_LVALUE = NULL;
 		csspop_buffer_state();

src/extThree20CSSStyle/Sources/TTCSSParser.m

 ///////////////////////////////////////////////////////////////////////////////////////////////////
 @interface TTCSSParser()
 
+/**
+ *
+ */
 - (void)consumeToken:(int)token text:(char*)text;
 
 @end

src/extThree20CSSStyle/Sources/TTExtensionLoader.m

   TTExtensionInfo* extension = [[TTExtensionInfo alloc] init];
 
   extension.name = @"Three20 CSS Styling";
-  extension.description = @"The CSS Styling extension provides support for customizing the style of an app using standard CSS.";
+  extension.description =
+    @"The CSS Styling extension provides support for customizing the style of an app using"
+    @" standard CSS.";
   extension.version = @"1.0";
   extension.copyright = @"Copyright 2009-2010 Facebook";
   extension.license = @"Apache 2.0";

src/extThree20CSSStyle/UnitTests/CssParserTests.m

 // limitations under the License.
 //
 
-// See: http://developer.apple.com/iphone/library/documentation/Xcode/Conceptual/iphone_development/905-A-Unit-Test_Result_Macro_Reference/unit-test_results.html#//apple_ref/doc/uid/TP40007959-CH21-SW2
-// for unit test macros.
-
-// See Also: http://developer.apple.com/iphone/library/documentation/Xcode/Conceptual/iphone_development/135-Unit_Testing_Applications/unit_testing_applications.html
+// See: http://bit.ly/hS5nNh for unit test macros.
+// See Also: http://bit.ly/hgpqd2
 
 #import <SenTestingKit/SenTestingKit.h>
 

src/extThree20CSSStyle/UnitTests/CssStyleSheetTests.m

 // limitations under the License.
 //
 
-// See: http://developer.apple.com/iphone/library/documentation/Xcode/Conceptual/iphone_development/905-A-Unit-Test_Result_Macro_Reference/unit-test_results.html#//apple_ref/doc/uid/TP40007959-CH21-SW2
-// for unit test macros.
-
-// See Also: http://developer.apple.com/iphone/library/documentation/Xcode/Conceptual/iphone_development/135-Unit_Testing_Applications/unit_testing_applications.html
+// See: http://bit.ly/hS5nNh for unit test macros.
+// See Also: http://bit.ly/hgpqd2
 
 #import <SenTestingKit/SenTestingKit.h>
 

src/extThree20JSON/Vendors/JSON/JSON.h

  */
 
 /**
- @mainpage A strict JSON parser and generator for Objective-C
+ A strict JSON parser and generator for Objective-C
 
  JSON (JavaScript Object Notation) is a lightweight data-interchange
  format. This framework provides two apis for parsing and generating

src/extThree20JSON/Vendors/YAJL/YAJL.h

 #import "extThree20JSON/NSBundle+YAJL.h"
 
 /*!
- @mainpage YAJL
+ YAJL
 
  The YAJL framework is an Objective-C wrapper around the http://lloyd.github.com/yajl/ SAX-style JSON parser.
 

src/extThree20JSON/extThree20JSON.xcodeproj/project.pbxproj

 				6E645BA81187751200F08CB1 /* Headers */,
 				6E7F9372118E0EEB00443B46 /* Protect Copied Headers */,
 				6E645BC01187751200F08CB1 /* Sources */,
-				668E669F131AE02600ACE4AB /* Lint */,
 				6E645BD41187751200F08CB1 /* Frameworks */,
 			);
 			buildRules = (
 				BEF31F360F352DF5000DE5D2 /* Headers */,
 				6E3C34C3118807EF0079637E /* Protect Copied Headers */,
 				BEF31F370F352DF5000DE5D2 /* Sources */,
-				668E669D131AE01D00ACE4AB /* Lint */,
 				BEF31F380F352DF5000DE5D2 /* Frameworks */,
 			);
 			buildRules = (
 /* End PBXResourcesBuildPhase section */
 
 /* Begin PBXShellScriptBuildPhase section */
-		668E669D131AE01D00ACE4AB /* Lint */ = {
-			isa = PBXShellScriptBuildPhase;
-			buildActionMask = 2147483647;
-			files = (
-			);
-			inputPaths = (
-			);
-			name = Lint;
-			outputPaths = (
-			);
-			runOnlyForDeploymentPostprocessing = 0;
-			shellPath = "/usr/bin/env python ../scripts/lint";
-			shellScript = "";
-			showEnvVarsInLog = 0;
-		};
-		668E669F131AE02600ACE4AB /* Lint */ = {
-			isa = PBXShellScriptBuildPhase;
-			buildActionMask = 2147483647;
-			files = (
-			);
-			inputPaths = (
-			);
-			name = Lint;
-			outputPaths = (
-			);
-			runOnlyForDeploymentPostprocessing = 0;
-			shellPath = "/usr/bin/env python ../scripts/lint";
-			shellScript = "";
-			showEnvVarsInLog = 0;
-		};
 		6E3C34C3118807EF0079637E /* Protect Copied Headers */ = {
 			isa = PBXShellScriptBuildPhase;
 			buildActionMask = 2147483647;

src/extThree20XML/Source/TTExtensionLoader.m

   TTExtensionInfo* extension = [[TTExtensionInfo alloc] init];
 
   extension.name = @"Three20 XML";
-  extension.description = @"The XML extension provides support for parsing XML data and receiving XML responses.";
+  extension.description =
+  @"The XML extension provides support for parsing XML data and receiving XML responses.";
   extension.version = @"1.0";
   extension.copyright = @"Copyright 2009-2010 Facebook";
   extension.license = @"Apache 2.0";

src/extThree20XML/Source/TTXMLParser.m

           // Collision, check if it's already an array.
           if (TTIsArrayWithItems(entityObject)) {
             [entityObject addObject:childObject];
+
           } else {
             NSMutableArray* array = [[NSMutableArray alloc] init];
             [array addObject:entityObject];
 - (id)objectForXMLNode {
   if ([[self typeForXMLNode] isEqualToString:kCommonXMLType_Array]) {
     return [self objectForKey:kInternalKey_Array];
+
   } else {
     return [self objectForKey:kInternalKey_EntityValue];
   }

src/extThree20XML/UnitTests/extXMLTests.m

 // limitations under the License.
 //
 
-// See: http://developer.apple.com/iphone/library/documentation/Xcode/Conceptual/iphone_development/905-A-Unit-Test_Result_Macro_Reference/unit-test_results.html#//apple_ref/doc/uid/TP40007959-CH21-SW2
-// for unit test macros.
-
-// See Also: http://developer.apple.com/iphone/library/documentation/Xcode/Conceptual/iphone_development/135-Unit_Testing_Applications/unit_testing_applications.html
+// See: http://bit.ly/hS5nNh for unit test macros.
+// See Also: http://bit.ly/hgpqd2
 
 #import <SenTestingKit/SenTestingKit.h>