hfsprogs: initial import
[feed/packages.git] / utils / hfsprogs / patches / 0004-Fix-compilation-on-64-bit-arches.patch
diff --git a/utils/hfsprogs/patches/0004-Fix-compilation-on-64-bit-arches.patch b/utils/hfsprogs/patches/0004-Fix-compilation-on-64-bit-arches.patch
new file mode 100644 (file)
index 0000000..57f6011
--- /dev/null
@@ -0,0 +1,131 @@
+From: =?UTF-8?q?Rog=C3=A9rio=20Brito?= <rbrito@ime.usp.br>
+Date: Thu, 24 Oct 2013 01:11:21 -0200
+Subject: Fix compilation on 64-bit arches
+
+---
+ fsck_hfs.tproj/dfalib/BTreePrivate.h |  5 ++++-
+ fsck_hfs.tproj/dfalib/SControl.c     |  8 ++++----
+ fsck_hfs.tproj/dfalib/SVerify1.c     | 14 +++++++-------
+ fsck_hfs.tproj/dfalib/hfs_endian.c   |  2 +-
+ 4 files changed, 16 insertions(+), 13 deletions(-)
+
+diff --git a/fsck_hfs.tproj/dfalib/BTreePrivate.h b/fsck_hfs.tproj/dfalib/BTreePrivate.h
+index 058c75b..2fc2f28 100644
+--- a/fsck_hfs.tproj/dfalib/BTreePrivate.h
++++ b/fsck_hfs.tproj/dfalib/BTreePrivate.h
+@@ -104,6 +104,9 @@ typedef enum {
+ ///////////////////////////////////// Types /////////////////////////////////////
++// Forward declaration from Scavenger.h
++struct BTreeExtensionsRec;
++
+ typedef struct BTreeControlBlock {                                    // fields specific to BTree CBs
+       UInt8           keyCompareType;   /* Key string Comparison Type */
+@@ -144,7 +147,7 @@ typedef struct BTreeControlBlock {                                 // fields specific to BTree CBs
+       UInt32                                           numPossibleHints;      // Looks like a formated hint
+       UInt32                                           numValidHints;         // Hint used to find correct record.
+       
+-      UInt32                                           refCon;                        //      Used by DFA to point to private data.
++      struct BTreeExtensionsRec                       *refCon;                        //      Used by DFA to point to private data.
+       SFCB                                            *fcbPtr;                // fcb of btree file
+       
+ } BTreeControlBlock, *BTreeControlBlockPtr;
+diff --git a/fsck_hfs.tproj/dfalib/SControl.c b/fsck_hfs.tproj/dfalib/SControl.c
+index 37eb242..4ce9e16 100644
+--- a/fsck_hfs.tproj/dfalib/SControl.c
++++ b/fsck_hfs.tproj/dfalib/SControl.c
+@@ -1034,7 +1034,7 @@ static int ScavTerm( SGlobPtr GPtr )
+               btcbP = (BTreeControlBlock*)fcbP->fcbBtree;
+               if ( btcbP != nil)
+               {
+-                      if( btcbP->refCon != (UInt32)nil )
++                      if( btcbP->refCon != nil )
+                       {
+                               if(((BTreeExtensionsRec*)btcbP->refCon)->BTCBMPtr != nil)
+                               {
+@@ -1043,13 +1043,13 @@ static int ScavTerm( SGlobPtr GPtr )
+                               }
+                               DisposeMemory( (Ptr)btcbP->refCon );
+                               err = MemError();
+-                              btcbP->refCon = (UInt32)nil;
++                              btcbP->refCon = nil;
+                       }
+                               
+                       fcbP = GPtr->calculatedCatalogFCB;      //      release catalog BTree bit map
+                       btcbP = (BTreeControlBlock*)fcbP->fcbBtree;
+                               
+-                      if( btcbP->refCon != (UInt32)nil )
++                      if( btcbP->refCon != nil )
+                       {
+                               if(((BTreeExtensionsRec*)btcbP->refCon)->BTCBMPtr != nil)
+                               {
+@@ -1058,7 +1058,7 @@ static int ScavTerm( SGlobPtr GPtr )
+                               }
+                               DisposeMemory( (Ptr)btcbP->refCon );
+                               err = MemError();
+-                              btcbP->refCon = (UInt32)nil;
++                              btcbP->refCon = nil;
+                       }
+               }
+       }
+diff --git a/fsck_hfs.tproj/dfalib/SVerify1.c b/fsck_hfs.tproj/dfalib/SVerify1.c
+index c272d4d..a273bf3 100644
+--- a/fsck_hfs.tproj/dfalib/SVerify1.c
++++ b/fsck_hfs.tproj/dfalib/SVerify1.c
+@@ -789,8 +789,8 @@ OSErr      CreateExtentsBTreeControlBlock( SGlobPtr GPtr )
+       //
+       //      set up our DFA extended BTCB area.  Will we have enough memory on all HFS+ volumes.
+       //
+-      btcb->refCon = (UInt32) AllocateClearMemory( sizeof(BTreeExtensionsRec) );                      // allocate space for our BTCB extensions
+-      if ( btcb->refCon == (UInt32) nil ) {
++      btcb->refCon = AllocateClearMemory( sizeof(BTreeExtensionsRec) );                       // allocate space for our BTCB extensions
++      if ( btcb->refCon == nil ) {
+               err = R_NoMem;
+               goto exit;
+       }
+@@ -1144,8 +1144,8 @@ OSErr    CreateCatalogBTreeControlBlock( SGlobPtr GPtr )
+       //      set up our DFA extended BTCB area.  Will we have enough memory on all HFS+ volumes.
+       //
+-      btcb->refCon = (UInt32) AllocateClearMemory( sizeof(BTreeExtensionsRec) );                      // allocate space for our BTCB extensions
+-      if ( btcb->refCon == (UInt32)nil ) {
++      btcb->refCon = AllocateClearMemory( sizeof(BTreeExtensionsRec) );                       // allocate space for our BTCB extensions
++      if ( btcb->refCon == nil ) {
+               err = R_NoMem;
+               goto exit;
+       }
+@@ -1779,8 +1779,8 @@ OSErr    CreateAttributesBTreeControlBlock( SGlobPtr GPtr )
+       //
+       //      set up our DFA extended BTCB area.  Will we have enough memory on all HFS+ volumes.
+       //
+-      btcb->refCon = (UInt32) AllocateClearMemory( sizeof(BTreeExtensionsRec) );                      // allocate space for our BTCB extensions
+-      if ( btcb->refCon == (UInt32)nil ) {
++      btcb->refCon = AllocateClearMemory( sizeof(BTreeExtensionsRec) );                       // allocate space for our BTCB extensions
++      if ( btcb->refCon == nil ) {
+               err = R_NoMem;
+               goto exit;
+       }
+@@ -1793,7 +1793,7 @@ OSErr    CreateAttributesBTreeControlBlock( SGlobPtr GPtr )
+       }
+       else
+       {
+-              if ( btcb->refCon == (UInt32)nil ) {
++              if ( btcb->refCon == nil ) {
+                       err = R_NoMem;
+                       goto exit;
+               }
+diff --git a/fsck_hfs.tproj/dfalib/hfs_endian.c b/fsck_hfs.tproj/dfalib/hfs_endian.c
+index 69500c1..3cc9eb4 100755
+--- a/fsck_hfs.tproj/dfalib/hfs_endian.c
++++ b/fsck_hfs.tproj/dfalib/hfs_endian.c
+@@ -437,7 +437,7 @@ hfs_swap_HFSPlusBTInternalNode (
+     BTNodeDescriptor *srcDesc = src->buffer;
+     UInt16 *srcOffs = (UInt16 *)((char *)src->buffer + (src->blockSize - (srcDesc->numRecords * sizeof (UInt16))));
+       char *nextRecord;       /*  Points to start of record following current one */
+-    UInt32 i;
++    int i;
+     UInt32 j;
+     if (fileID == kHFSExtentsFileID) {