ASR_BASE

Change-Id: Icf3719cc0afe3eeb3edc7fa80a2eb5199ca9dda1
diff --git a/external/subpack/utils/hfsprogs/patches/0005-Remove-Apple-specific-p-from-strings.patch b/external/subpack/utils/hfsprogs/patches/0005-Remove-Apple-specific-p-from-strings.patch
new file mode 100644
index 0000000..81714e9
--- /dev/null
+++ b/external/subpack/utils/hfsprogs/patches/0005-Remove-Apple-specific-p-from-strings.patch
@@ -0,0 +1,287 @@
+From: =?UTF-8?q?Rog=C3=A9rio=20Brito?= <rbrito@ime.usp.br>
+Date: Thu, 24 Oct 2013 01:11:21 -0200
+Subject: Remove (Apple-specific?) \p from strings
+
+Modify the way that debug messages are sent to the user, by eliminating one
+character of them.
+---
+ fsck_hfs.tproj/dfalib/BTreeTreeOps.c | 48 ++++++++++++++++++------------------
+ fsck_hfs.tproj/dfalib/SBTree.c       | 14 +++++------
+ 2 files changed, 31 insertions(+), 31 deletions(-)
+
+--- a/fsck_hfs.tproj/dfalib/BTreeTreeOps.c
++++ b/fsck_hfs.tproj/dfalib/BTreeTreeOps.c
+@@ -223,7 +223,7 @@ OSStatus	SearchTree	(BTreeControlBlockPt
+         //
+         if (curNodeNum == 0)
+         {
+-//          Panic("\pSearchTree: curNodeNum is zero!");
++            Panic("SearchTree: curNodeNum is zero!");
+             err = fsBTInvalidNodeErr;
+             goto ErrorExit;
+         }
+@@ -433,7 +433,7 @@ OSStatus	InsertLevel (BTreeControlBlockP
+ 		M_ExitOnError (err);
+ 		
+ 		if ( DEBUG_BUILD && updateParent && newRoot )
+-			DebugStr("\p InsertLevel: New root from primary key, update from secondary key...");
++			DebugStr("InsertLevel: New root from primary key, update from secondary key...");
+ 	}
+ 
+ 	//////////////////////// Update Parent(s) ///////////////////////////////
+@@ -448,7 +448,7 @@ OSStatus	InsertLevel (BTreeControlBlockP
+ 		
+ 		secondaryKey = nil;
+ 		
+-		PanicIf ( (level == btreePtr->treeDepth), "\p InsertLevel: unfinished insert!?");
++		PanicIf ( (level == btreePtr->treeDepth), "InsertLevel: unfinished insert!?");
+ 
+ 		++level;
+ 
+@@ -456,7 +456,7 @@ OSStatus	InsertLevel (BTreeControlBlockP
+ 		index = treePathTable [level].index;
+ 		parentNodeNum = treePathTable [level].node;
+ 
+-		PanicIf ( parentNodeNum == 0, "\p InsertLevel: parent node is zero!?");
++		PanicIf ( parentNodeNum == 0, "InsertLevel: parent node is zero!?");
+ 
+ 		err = GetNode (btreePtr, parentNodeNum, &parentNode);	// released as target node in next level up
+ 		M_ExitOnError (err);
+@@ -470,7 +470,7 @@ OSStatus	InsertLevel (BTreeControlBlockP
+ 		{
+ 			//¥¥Êdebug: check if ptr == targetNodeNum
+ 			GetRecordByIndex (btreePtr, parentNode.buffer, index, &keyPtr, &recPtr, &recSize);
+-			PanicIf( (*(UInt32 *) recPtr) != targetNodeNum, "\p InsertLevel: parent ptr doesn't match target node!");
++			PanicIf( (*(UInt32 *) recPtr) != targetNodeNum, "InsertLevel: parent ptr doesn't match target node!");
+ 			
+ 			// need to delete and re-insert this parent key/ptr
+ 			// we delete it here and it gets re-inserted in the
+@@ -532,7 +532,7 @@ ErrorExit:
+ 	(void) ReleaseNode (btreePtr, targetNode);
+ 	(void) ReleaseNode (btreePtr, &siblingNode);
+ 
+-	Panic ("\p InsertLevel: an error occured!");
++	Panic ("InsertLevel: an error occured!");
+ 
+ 	return	err;
+ 
+@@ -566,7 +566,7 @@ static OSErr	InsertNode	(BTreeControlBlo
+ 
+ 	*rootSplit = false;
+ 	
+-	PanicIf ( targetNode->buffer == siblingNode->buffer, "\p InsertNode: targetNode == siblingNode, huh?");
++	PanicIf ( targetNode->buffer == siblingNode->buffer, "InsertNode: targetNode == siblingNode, huh?");
+ 	
+ 	leftNodeNum = ((NodeDescPtr) targetNode->buffer)->bLink;
+ 	rightNodeNum = ((NodeDescPtr) targetNode->buffer)->fLink;
+@@ -606,7 +606,7 @@ static OSErr	InsertNode	(BTreeControlBlo
+ 	
+ 	if ( leftNodeNum > 0 )
+ 	{
+-		PanicIf ( siblingNode->buffer != nil, "\p InsertNode: siblingNode already aquired!");
++		PanicIf ( siblingNode->buffer != nil, "InsertNode: siblingNode already aquired!");
+ 
+ 		if ( siblingNode->buffer == nil )
+ 		{
+@@ -614,7 +614,7 @@ static OSErr	InsertNode	(BTreeControlBlo
+ 			M_ExitOnError (err);
+ 		}
+ 
+-		PanicIf ( ((NodeDescPtr) siblingNode->buffer)->fLink != nodeNum, "\p InsertNode, RotateLeft: invalid sibling link!" );
++		PanicIf ( ((NodeDescPtr) siblingNode->buffer)->fLink != nodeNum, "InsertNode, RotateLeft: invalid sibling link!" );
+ 
+ 		if ( !key->skipRotate )		// are rotates allowed?
+ 		{
+@@ -703,7 +703,7 @@ OSStatus	DeleteTree			(BTreeControlBlock
+ 
+ 	targetNodeNum = treePathTable[level].node;
+ 	targetNodePtr = targetNode->buffer;
+-	PanicIf (targetNodePtr == nil, "\pDeleteTree: targetNode has nil buffer!");
++	PanicIf (targetNodePtr == nil, "DeleteTree: targetNode has nil buffer!");
+ 
+ 	DeleteRecord (btreePtr, targetNodePtr, index);
+ 		
+@@ -797,7 +797,7 @@ OSStatus	DeleteTree			(BTreeControlBlock
+ 			 
+ 			//¥¥Êdebug: check if ptr == targetNodeNum
+ 			GetRecordByIndex (btreePtr, parentNode.buffer, index, &keyPtr, &recPtr, &recSize);
+-			PanicIf( (*(UInt32 *) recPtr) != targetNodeNum, "\p DeleteTree: parent ptr doesn't match targetNodeNum!!");
++			PanicIf( (*(UInt32 *) recPtr) != targetNodeNum, " DeleteTree: parent ptr doesn't match targetNodeNum!!");
+ 			
+ 			// need to delete and re-insert this parent key/ptr
+ 			DeleteRecord (btreePtr, parentNode.buffer, index);
+@@ -1018,7 +1018,7 @@ static OSStatus	RotateLeft		(BTreeContro
+ 										keyPtr, keyLength, recPtr, recSize);
+ 			if ( !didItFit )
+ 			{
+-				Panic ("\pRotateLeft: InsertKeyRecord (left) returned false!");
++				Panic ("RotateLeft: InsertKeyRecord (left) returned false!");
+ 				err = fsBTBadRotateErr;
+ 				goto ErrorExit;
+ 			}
+@@ -1031,7 +1031,7 @@ static OSStatus	RotateLeft		(BTreeContro
+ 			didItFit = RotateRecordLeft (btreePtr, leftNode, rightNode);
+ 			if ( !didItFit )
+ 			{
+-				Panic ("\pRotateLeft: RotateRecordLeft returned false!");
++				Panic ("RotateLeft: RotateRecordLeft returned false!");
+ 				err = fsBTBadRotateErr;
+ 				goto ErrorExit;
+ 			}
+@@ -1048,7 +1048,7 @@ static OSStatus	RotateLeft		(BTreeContro
+ 									keyPtr, keyLength, recPtr, recSize);
+ 		if ( !didItFit )
+ 		{
+-			Panic ("\pRotateLeft: InsertKeyRecord (right) returned false!");
++			Panic ("RotateLeft: InsertKeyRecord (right) returned false!");
+ 			err = fsBTBadRotateErr;
+ 			goto ErrorExit;
+ 		}
+@@ -1117,7 +1117,7 @@ static OSStatus	SplitLeft		(BTreeControl
+ 	right = rightNode->buffer;
+ 	left  = leftNode->buffer;
+ 	
+-	PanicIf ( right->bLink != 0 && left == 0, "\p SplitLeft: left sibling missing!?" );
++	PanicIf ( right->bLink != 0 && left == 0, " SplitLeft: left sibling missing!?" );
+ 	
+ 	//¥¥ type should be kLeafNode or kIndexNode
+ 	
+@@ -1240,8 +1240,8 @@ static OSStatus	AddNewRootNode	(BTreeCon
+ 	Boolean				didItFit;
+ 	UInt16				keyLength;	
+ 	
+-	PanicIf (leftNode == nil, "\pAddNewRootNode: leftNode == nil");
+-	PanicIf (rightNode == nil, "\pAddNewRootNode: rightNode == nil");
++	PanicIf (leftNode == nil, "AddNewRootNode: leftNode == nil");
++	PanicIf (rightNode == nil, "AddNewRootNode: rightNode == nil");
+ 	
+ 	
+ 	/////////////////////// Initialize New Root Node ////////////////////////////
+@@ -1264,7 +1264,7 @@ static OSStatus	AddNewRootNode	(BTreeCon
+ 	didItFit = InsertKeyRecord ( btreePtr, rootNode.buffer, 0, keyPtr, keyLength,
+ 								 (UInt8 *) &rightNode->bLink, 4 );
+ 
+-	PanicIf ( !didItFit, "\pAddNewRootNode:InsertKeyRecord failed for left index record");
++	PanicIf ( !didItFit, "AddNewRootNode:InsertKeyRecord failed for left index record");
+ 
+ 
+ 	//////////////////// Insert Right Node Index Record /////////////////////////
+@@ -1275,7 +1275,7 @@ static OSStatus	AddNewRootNode	(BTreeCon
+ 	didItFit = InsertKeyRecord ( btreePtr, rootNode.buffer, 1, keyPtr, keyLength,
+ 								 (UInt8 *) &leftNode->fLink, 4 );
+ 
+-	PanicIf ( !didItFit, "\pAddNewRootNode:InsertKeyRecord failed for right index record");
++	PanicIf ( !didItFit, "AddNewRootNode:InsertKeyRecord failed for right index record");
+ 
+ 
+ #if DEBUG_TREEOPS
+@@ -1355,7 +1355,7 @@ static OSStatus	SplitRight		(BTreeContro
+ 	}
+ 	rightPtr = rightNodePtr->buffer;
+ 	
+-	PanicIf ( leftPtr->fLink != 0 && rightPtr == 0, "\p SplitRight: right sibling missing!?" );
++	PanicIf ( leftPtr->fLink != 0 && rightPtr == 0, "SplitRight: right sibling missing!?" );
+ 	
+ 	//¥¥ type should be kLeafNode or kIndexNode
+ 	
+@@ -1557,7 +1557,7 @@ static OSStatus	RotateRight		(BTreeContr
+ 									keyPtr, keyLength, recPtr, recSize);
+ 		if ( !didItFit )
+ 		{
+-			Panic ("\pRotateRight: InsertKeyRecord (left) returned false!");
++			Panic ("RotateRight: InsertKeyRecord (left) returned false!");
+ 			err = fsBTBadRotateErr;
+ 			goto ErrorExit;
+ 		}
+@@ -1572,7 +1572,7 @@ static OSStatus	RotateRight		(BTreeContr
+ 		didItFit = RotateRecordRight( btreePtr, leftNodePtr, rightNodePtr );
+ 		if ( !didItFit )
+ 		{
+-			Panic ("\pRotateRight: RotateRecordRight returned false!");
++			Panic ("RotateRight: RotateRecordRight returned false!");
+ 			err = fsBTBadRotateErr;
+ 			goto ErrorExit;
+ 		}
+@@ -1583,7 +1583,7 @@ static OSStatus	RotateRight		(BTreeContr
+ 										keyPtr, keyLength, recPtr, recSize);
+ 			if ( !didItFit )
+ 			{
+-				Panic ("\pRotateRight: InsertKeyRecord (left) returned false!");
++				Panic ("RotateRight: InsertKeyRecord (left) returned false!");
+ 				err = fsBTBadRotateErr;
+ 				goto ErrorExit;
+ 			}
+@@ -1607,7 +1607,7 @@ static OSStatus	RotateRight		(BTreeContr
+ 									keyPtr, keyLength, recPtr, recSize);
+ 		if ( !didItFit )
+ 		{
+-			Panic ("\pRotateRight: InsertKeyRecord (right) returned false!");
++			Panic ("RotateRight: InsertKeyRecord (right) returned false!");
+ 			err = fsBTBadRotateErr;
+ 			goto ErrorExit;
+ 		}
+--- a/fsck_hfs.tproj/dfalib/SBTree.c
++++ b/fsck_hfs.tproj/dfalib/SBTree.c
+@@ -103,7 +103,7 @@ OSErr SearchBTreeRecord(SFCB *fcb, const
+ 			CopyMemory(&resultIterator->key, foundKey, CalcKeySize(btcb, &resultIterator->key));	//¥¥ warning, this could overflow user's buffer!!!
+ 
+ 		if ( DEBUG_BUILD && !ValidHFSRecord(data, btcb, *dataSize) )
+-			DebugStr("\pSearchBTreeRecord: bad record?");
++			DebugStr("SearchBTreeRecord: bad record?");
+ 	}
+ 
+ ErrorExit:
+@@ -211,7 +211,7 @@ OSErr GetBTreeRecord(SFCB *fcb, SInt16 s
+ 		CopyMemory(&iterator->key, key, CalcKeySize(btcb, &iterator->key));	//¥¥ warning, this could overflow user's buffer!!!
+ 		
+ 		if ( DEBUG_BUILD && !ValidHFSRecord(data, btcb, *dataSize) )
+-			DebugStr("\pGetBTreeRecord: bad record?");
++			DebugStr("GetBTreeRecord: bad record?");
+ 
+ 	}
+ 	
+@@ -243,7 +243,7 @@ OSErr InsertBTreeRecord(SFCB *fcb, const
+ 	CopyMemory(key, &iterator.key, CalcKeySize(btcb, (BTreeKey *) key));	//¥¥ should we range check against maxkeylen?
+ 
+ 	if ( DEBUG_BUILD && !ValidHFSRecord(data, btcb, dataSize) )
+-		DebugStr("\pInsertBTreeRecord: bad record?");
++		DebugStr("InsertBTreeRecord: bad record?");
+ 
+ 	result = BTInsertRecord( fcb, &iterator, &btRecord, dataSize );
+ 
+@@ -305,7 +305,7 @@ OSErr ReplaceBTreeRecord(SFCB *fcb, cons
+ 	CopyMemory(key, &iterator.key, CalcKeySize(btcb, (BTreeKey *) key));		//¥¥ should we range check against maxkeylen?
+ 
+ 	if ( DEBUG_BUILD && !ValidHFSRecord(newData, btcb, dataSize) )
+-		DebugStr("\pReplaceBTreeRecord: bad record?");
++		DebugStr("ReplaceBTreeRecord: bad record?");
+ 
+ 	result = BTReplaceRecord( fcb, &iterator, &btRecord, dataSize );
+ 
+@@ -344,7 +344,7 @@ SetEndOfForkProc ( SFCB *filePtr, FSSize
+ 	else
+ 	{
+ 		if ( DEBUG_BUILD )
+-			DebugStr("\pSetEndOfForkProc: minEOF is smaller than current size!");
++			DebugStr("SetEndOfForkProc: minEOF is smaller than current size!");
+ 		return -1;
+ 	}
+ 
+@@ -370,7 +370,7 @@ SetEndOfForkProc ( SFCB *filePtr, FSSize
+ 	//	Make sure we got at least as much space as we needed
+ 	//
+ 	if (filePtr->fcbLogicalSize < minEOF) {
+-		Panic("\pSetEndOfForkProc: disk too full to extend B-tree file");
++		Panic("SetEndOfForkProc: disk too full to extend B-tree file");
+ 		return dskFulErr;
+ 	}
+ 	
+@@ -442,7 +442,7 @@ static OSErr CheckBTreeKey(const BTreeKe
+ 	if ( (keyLen < 6) || (keyLen > btcb->maxKeyLength) )
+ 	{
+ 		if ( DEBUG_BUILD )
+-			DebugStr("\pCheckBTreeKey: bad key length!");
++			DebugStr("CheckBTreeKey: bad key length!");
+ 		return fsBTInvalidKeyLengthErr;
+ 	}
+