--- libhfsp/src/btreecheck.c | 98 +++++++++++++++++++++++------------------------ libhfsp/src/fscheck.c | 51 ++++++++++++------------ libhfsp/src/os.c | 13 +++--- libhfsp/src/partitions.c | 1 libhfsp/src/record.c | 6 +- libhfsp/src/swab.h | 20 ++++----- libhfsp/src/unicode.c | 4 - src/copyout.c | 6 +- src/hpcache.c | 5 +- src/hpls.c | 9 ++-- 11 files changed, 112 insertions(+), 103 deletions(-)
Index: hfsplus-1.0.4/libhfsp/src/btreecheck.c =================================================================== --- hfsplus-1.0.4.orig/libhfsp/src/btreecheck.c 2009-09-24 23:30:16.000000000 +0200 +++ hfsplus-1.0.4/libhfsp/src/btreecheck.c 2009-09-24 23:31:27.000000000 +0200 @@ -34,6 +34,7 @@ # include <limits.h> # include <errno.h> # include <time.h> +# include <inttypes.h> # include "libhfsp.h" # include "volume.h" @@ -57,7 +58,7 @@ { char buf[255]; // mh this _might_ overflow unicode_uni2asc(buf, &key->name, 255); - printf("parent cnid : %ld\n", key->parent_cnid); + printf("parent cnid : %" PRIu32 "\n", key->parent_cnid); printf("name : %s\n", buf); } @@ -87,19 +88,19 @@ */ if (head->root >= node_count) { - printf("root node out of range %lX >= %lX\n", + printf("root node out of range %" PRIX32 " >= %" PRIX32 "\n", head->root, node_count); result |= FSCK_ERR; // This is really evil } if (head->leaf_head >= node_count) { - printf("leaf_head out of range %lX >= %lX\n", + printf("leaf_head out of range %" PRIX32 " >= %" PRIX32 "\n", head->leaf_head, node_count); result |= FSCK_ERR; // dont know how to fix that by now } if (head->leaf_tail >= node_count) { - printf("leaf_head out of range %lX >= %lX\n", + printf("leaf_head out of range %" PRIX32 " >= %" PRIX32 "\n", head->leaf_tail, node_count); result |= FSCK_ERR; // dont know how to fix that by now } @@ -117,14 +118,14 @@ } if (head->free_nodes >= node_count) { - printf("free_nodes out of range %lX >= %lX\n", + printf("free_nodes out of range %" PRIX32 " >= %" PRIX32 "\n", head->free_nodes, node_count); result |= FSCK_ERR; // dont know how to fix that by now } // head->reserved1 nothing to check here if (head->clump_size % blocksize) { - printf("clump_size %ld not a multiple of blocksize %ld\n", + printf("clump_size %" PRIu32 " not a multiple of blocksize %" PRIu32 "\n", head->free_nodes, blocksize); result |= FSCK_ERR; // dont know how to fix that by now } @@ -136,7 +137,7 @@ // head->reserved2 nothing to check here if (head->attributes & HFSPLUS_TREE_RESERVED) { - printf("Unexpected bits in btree header node attributes %lX\n", + printf("Unexpected bits in btree header node attributes %" PRIX32 "\n", head->attributes); result |= FSCK_ERR; // dont know how to fix that by now } @@ -149,16 +150,16 @@ { UInt32 attr; printf(" depth : %#X\n", head->depth); - printf(" root : %#lX\n", head->root); - printf(" leaf_count : %#lX\n", head->leaf_count); - printf(" leaf_head : %#lX\n", head->leaf_head); - printf(" leaf_tail : %#lX\n", head->leaf_tail); + printf(" root : %#" PRIX32 "\n", head->root); + printf(" leaf_count : %#" PRIX32 "\n", head->leaf_count); + printf(" leaf_head : %#" PRIX32 "\n", head->leaf_head); + printf(" leaf_tail : %#" PRIX32 "\n", head->leaf_tail); printf(" node_size : %#X\n", head->node_size); printf(" max_key_len : %#X\n", head->max_key_len); - printf(" node_count : %#lX\n", head->node_count); - printf(" free_nodes : %#lX\n", head->free_nodes); + printf(" node_count : %#" PRIX32 "\n", head->node_count); + printf(" free_nodes : %#" PRIX32 "\n", head->free_nodes); printf(" reserved1 : %#X\n", head->reserved1); - printf(" clump_size : %#lX\n", head->clump_size); + printf(" clump_size : %#" PRIX32 "\n", head->clump_size); printf(" btree_type : %#X\n", head->btree_type); attr = head->attributes; printf(" reserved2 : %#X\n", head->reserved2); @@ -183,9 +184,9 @@ static void print_node_desc(UInt32 nodeIndex, btree_node_desc* node) { - printf("Node descriptor for Node %ld\n", nodeIndex); - printf("next : %#lX\n", node->next); - printf("prev : %#lX\n", node->prev); + printf("Node descriptor for Node %" PRIu32 "\n", nodeIndex); + printf("next : %#" PRIX32 "\n", node->next); + printf("prev : %#" PRIX32 "\n", node->prev); printf("height : %#X\n", node->height); printf("num_rec : %d\n", node->num_rec); printf("reserved : %#X\n", node->reserved); @@ -225,13 +226,14 @@ HFSP_EXTENT_DATA, bt->cnid); if (!p) { - printf("Unable to read block 1 of b*tree for cnid:%ld\n", bt->cnid); + printf("Unable to read block 1 of b*tree for cnid:%" PRIu32 "\n", + bt->cnid); return FSCK_ERR; } p = btree_readnode(node, p); if (node->prev != 0) { - printf("Backlink of header node is not zero (%lX) \n", node->prev); + printf("Backlink of header node is not zero (%" PRIX32 ") \n", node->prev); return FSCK_ERR; // ToDo: We might ignore it but ??? } if (node->kind != HFSP_NODE_HEAD) @@ -363,7 +365,7 @@ } if (fsck_data.verbose) { - printf("Node %4ld, Record %2d is at pos %04X," + printf("Node %4" PRIu32 ", Record %2d is at pos %04X," "Backptr is at offset %04X\n", node, index, offset, off_pos); } // now we have the offset and can read the key ... @@ -392,7 +394,7 @@ void* current = node->node + 0x0E; // sizeof (btree_node_desc) char kbuf[bt->head.max_key_len]; // dummy key to skip over char buf[bt->max_rec_size]; - fprintf(stderr, "Node %lu with %u records is damaged trying to fix ***\n", + fprintf(stderr, "Node %" PRIu32 " with %u records is damaged trying to fix ***\n", nodeIndex, num_rec); for (i=0; i < num_rec; i++) { @@ -402,7 +404,7 @@ if (p != current) { fprintf(stderr, - "Key %u in Node %lu is damaged " + "Key %u in Node %" PRIu32 " is damaged " "rest of keys will be droppend ***\n", i,nodeIndex); break; } @@ -450,7 +452,7 @@ if (p < previous) { // This may happen when the cache entry was flushed, but per // design of the cache this should not happen, mmh - printf("Backpointers in Node %ld index %d out of order " + printf("Backpointers in Node %" PRIu32 " index %d out of order " "(%p >= %p)\n", nodeIndex, i, p, previous); result |= FSCK_FSCORR; // Hope we can correct that later } @@ -471,7 +473,7 @@ int comp = bt->kcomp(*key1, *key2); if (comp > 0) { - printf("Invalid key order in node %ld record %d\n key1=", + printf("Invalid key order in node %" PRIu32 " record %d\n key1=", nodeIndex, i); record_print_key((hfsp_cat_key*) *key1); printf("Invalid key order key2=\n"); @@ -480,7 +482,7 @@ } if (comp == 0 && i > 0) // equal to key in parent node is ok { - printf("Duplicate key in node %ld record %d key1=\n", + printf("Duplicate key in node %" PRIu32 " record %d key1=\n", nodeIndex, i); record_print_key((hfsp_cat_key*) *key1); printf("Duplicate key key2=\n"); @@ -535,10 +537,10 @@ /* print permissions */ static void record_print_perm(hfsp_perm* perm) { - printf("owner : %ld\n", perm->owner); - printf("group : %ld\n", perm->group); - printf("perm : 0x%lX\n",perm->mode); - printf("dev : %ld\n", perm->dev); + printf("owner : %" PRIu32 "\n", perm->owner); + printf("group : %" PRIu32 "\n", perm->group); + printf("perm : 0x%" PRIX32 "\n",perm->mode); + printf("dev : %" PRIu32 "\n", perm->dev); } /* print Directory info */ @@ -554,17 +556,17 @@ static void record_print_DXInfo(DXInfo* xinfo) { printf( "frScroll : "); record_print_Point(&xinfo->frScroll); - printf("\nfrOpenChain : %ld\n", xinfo->frOpenChain); + printf("\nfrOpenChain : %" PRIu32 "\n", xinfo->frOpenChain); printf( "frUnused : %d\n", xinfo->frUnused); printf( "frComment : %d\n", xinfo->frComment); - printf( "frPutAway : %ld\n", xinfo->frPutAway); + printf( "frPutAway : %" PRIu32 "\n", xinfo->frPutAway); } static void record_print_folder(hfsp_cat_folder* folder) { printf("flags : 0x%X\n", folder->flags); - printf("valence : 0x%lX\n", folder->valence); - printf("id : %ld\n", folder->id); + printf("valence : 0x%" PRIX32 "\n", folder->valence); + printf("id : %" PRIu32 "\n", folder->id); printf("create_date : %s", get_atime(folder->create_date)); printf("content_mod_date : %s", get_atime(folder->content_mod_date)); printf("attribute_mod_date : %s", get_atime(folder->attribute_mod_date)); @@ -573,8 +575,8 @@ record_print_perm (&folder->permissions); record_print_DInfo (&folder->user_info); record_print_DXInfo (&folder->finder_info); - printf("text_encoding : 0x%lX\n", folder->text_encoding); - printf("reserved : 0x%lX\n", folder->reserved); + printf("text_encoding : 0x%" PRIX32 "\n", folder->text_encoding); + printf("reserved : 0x%" PRIX32 "\n", folder->reserved); } /* print File info */ @@ -593,15 +595,15 @@ printf( "fdIconID : %d\n", xinfo->fdIconID); // xinfo -> fdUnused; printf( "fdComment : %d\n", xinfo->fdComment); - printf( "fdPutAway : %ld\n", xinfo->fdPutAway); + printf( "fdPutAway : %" PRIu32 "\n", xinfo->fdPutAway); } /* print file entry */ static void record_print_file(hfsp_cat_file* file) { printf("flags : 0x%X\n", file->flags); - printf("reserved1 : 0x%lX\n", file->reserved1); - printf("id : %ld\n", file->id); + printf("reserved1 : 0x%" PRIX32 "\n", file->reserved1); + printf("id : %" PRIu32 "\n", file->id); printf("create_date : %s", get_atime(file->create_date)); printf("content_mod_date : %s", get_atime(file->content_mod_date)); printf("attribute_mod_date : %s", get_atime(file->attribute_mod_date)); @@ -610,8 +612,8 @@ record_print_perm (&file->permissions); record_print_FInfo (&file->user_info); record_print_FXInfo (&file->finder_info); - printf("text_encoding : 0x%lX\n", file->text_encoding); - printf("reserved : 0x%lX\n", file->reserved2); + printf("text_encoding : 0x%" PRIX32 "\n", file->text_encoding); + printf("reserved : 0x%" PRIX32 "\n", file->reserved2); printf("Datafork:\n"); print_fork (&file->data_fork); printf("Rsrcfork:\n"); @@ -623,7 +625,7 @@ { char buf[255]; // mh this _might_ overflow unicode_uni2asc(buf, &entry->nodeName, 255); - printf("parent cnid : %ld\n", entry->parentID); + printf("parent cnid : %" PRIu32 "\n", entry->parentID); printf("name : %s\n" , buf); } @@ -691,7 +693,7 @@ if (key->parent_cnid >= cnid) { - printf("parent_cnid %ld >= volume next cnid %ld\n", + printf("parent_cnid %" PRIu32 " >= volume next cnid %" PRIu32 "\n", key->parent_cnid, cnid); result |= FSCK_FSCORR; // hope we can fix that some time } @@ -710,7 +712,7 @@ printf("Warning %s is 0\n", errname); */ if (time > fsck_data.macNow) - printf("Warning %21.21s is in the future: (%lX) %s", + printf("Warning %21.21s is in the future: (%" PRIX32 ") %s", errname, time, get_atime(time)); return FSCK_NOERR; // Those are not really bad, just annoying @@ -732,7 +734,7 @@ // file->reserved1 // Nothing to check here if (file->id >= cnid) { - printf("file id %ld >= volume next cnid %ld\n", + printf("file id %" PRIu32 " >= volume next cnid %" PRIu32 "\n", file->id, cnid); result |= FSCK_FSCORR; // hope we can fix that some time } @@ -769,7 +771,7 @@ // folder->valence // to be checked later if (folder->id >= cnid) { - printf("Folder id %ld >= volume next cnid %ld\n", + printf("Folder id %" PRIu32 " >= volume next cnid %" PRIu32 "\n", folder->id, cnid); result |= FSCK_FSCORR; // hope we can fix that some time } @@ -798,7 +800,7 @@ if (thread->parentID >= cnid) { - printf("Thread parentID %ld >= volume next cnid %ld\n", + printf("Thread parentID %" PRIu32 " >= volume next cnid %" PRIu32 "\n", thread->parentID, cnid); result |= FSCK_FSCORR; // hope we can fix that some time } @@ -899,7 +901,7 @@ { // structure (should happen while debugging only) fprintf(stderr, "Unexpected difference in Node %d, Record %d " - ": %d (%d/%d) (%p,%p)\n", + ": %d (%ld/%ld) (%p,%p)\n", r->node_index, index, diff , p - p1, p2 - p1, p, p2); record_print(r); } @@ -947,7 +949,7 @@ if (!btree_check_nodealloc(catalog, catalog->head.leaf_head)) { - printf("leaf_head %ld not allocated in node Map\n", + printf("leaf_head %" PRIu32 " not allocated in node Map\n", catalog->head.leaf_head); result |= FSCK_FSCORR; /* Maybe we can correct that one time */ } Index: hfsplus-1.0.4/libhfsp/src/os.c =================================================================== --- hfsplus-1.0.4.orig/libhfsp/src/os.c 2002-03-25 16:48:37.000000000 +0100 +++ hfsplus-1.0.4/libhfsp/src/os.c 2009-09-24 23:31:27.000000000 +0200 @@ -46,6 +46,7 @@ # endif # include <stdio.h> +# include <stdlib.h> # include <errno.h> @@ -66,7 +67,7 @@ */ int os_open(void **priv, const char *path, int mode) { - int fd; + long fd; struct flock lock; int c; @@ -123,7 +124,7 @@ */ int os_close(void **priv) { - int fd = (int) *priv; + long fd = (long) *priv; *priv = (void *) -1; @@ -142,7 +143,7 @@ */ int os_same(void **priv, const char *path) { - int fd = (int) *priv; + long fd = (long) *priv; struct stat fdev, dev; if (fstat(fd, &fdev) == -1 || @@ -163,7 +164,7 @@ */ unsigned long os_seek(void **priv, unsigned long offset, int blksize_bits) { - int fd = (int) *priv; + long fd = (long) *priv; off_t result, where = offset; where = os_offset + (where << blksize_bits); @@ -186,7 +187,7 @@ */ unsigned long os_read(void **priv, void *buf, unsigned long len, int blksize_bits) { - int fd = (int) *priv; + long fd = (long) *priv; size_t result= 0; int num= len << blksize_bits; @@ -208,7 +209,7 @@ */ unsigned long os_write(void **priv, const void *buf, unsigned long len, int blksize_bits) { - int fd = (int) *priv; + long fd = (long) *priv; size_t result; result = write(fd, buf, len << blksize_bits); Index: hfsplus-1.0.4/libhfsp/src/partitions.c =================================================================== --- hfsplus-1.0.4.orig/libhfsp/src/partitions.c 2002-03-26 19:00:29.000000000 +0100 +++ hfsplus-1.0.4/libhfsp/src/partitions.c 2009-09-24 23:31:27.000000000 +0200 @@ -32,6 +32,7 @@ #include "libhfsp.h" #include <stdlib.h> +#include <string.h> /* * Returns the number of partitions in the given partition map. Index: hfsplus-1.0.4/libhfsp/src/record.c =================================================================== --- hfsplus-1.0.4.orig/libhfsp/src/record.c 2009-09-24 23:30:16.000000000 +0200 +++ hfsplus-1.0.4/libhfsp/src/record.c 2009-09-24 23:31:27.000000000 +0200 @@ -31,7 +31,9 @@ # endif #include <errno.h> +#include <string.h> #include <stdio.h> +#include <stdlib.h> #include "libhfsp.h" #include "hfstime.h" @@ -1260,7 +1262,7 @@ // Find out where to insert the record if (record_find_key(bt, &r->key, &keyind, &nodeind)) HFSP_ERROR(EEXIST, - hfsp_error = "File/Folder already exists"); + "File/Folder already exists"); // Create memory image p = record_writekey (p, &r->key); @@ -1273,7 +1275,7 @@ len = p - buf; if (len > bt->max_rec_size) // Emergency bail out, sorry { - fprintf(stderr,"Unexpected Buffer overflow in record_insert %d > %d", + fprintf(stderr,"Unexpected Buffer overflow in record_insert %d > %ld", len, sizeof(bt->max_rec_size)); exit(-1); } Index: hfsplus-1.0.4/libhfsp/src/unicode.c =================================================================== --- hfsplus-1.0.4.orig/libhfsp/src/unicode.c 2009-09-24 23:30:16.000000000 +0200 +++ hfsplus-1.0.4/libhfsp/src/unicode.c 2009-09-24 23:31:27.000000000 +0200 @@ -102,8 +102,8 @@ register UInt16 length1 = ustr1->strlen; register UInt16 length2 = ustr2->strlen; register UInt16* lowerCaseTable = gLowerCaseTable; - register UInt16* str1 = ustr1->name; - register UInt16* str2 = ustr2->name; + register UInt16* str1 = (UInt16*)ustr1->name; + register UInt16* str2 = (UInt16*)ustr2->name; while (1) { // Set default values for c1, c2 in case there are no more valid chars Index: hfsplus-1.0.4/src/copyout.c =================================================================== --- hfsplus-1.0.4.orig/src/copyout.c 2002-03-05 20:50:29.000000000 +0100 +++ hfsplus-1.0.4/src/copyout.c 2009-09-24 23:31:27.000000000 +0200 @@ -144,7 +144,7 @@ void *p; /* Mhh, this limits filenames to 63 characters */ - buf[1] = unicode_uni2asc(&buf[2], &ifile->key.name, 63); + buf[1] = (unsigned char)unicode_uni2asc((char*)&buf[2], &ifile->key.name, 63); p = &buf[65]; bstoreU32_inc(p, file->user_info.fdType); // 65 @@ -270,7 +270,7 @@ UInt64 hsize; // huge , HFS+ size UInt32 bsize; // size supported by Macbinary - byte = unicode_uni2asc(name, &ifile->key.name, 255); + byte = unicode_uni2asc((char*)name, &ifile->key.name, 255); if (binhex_insert(&byte, 1) == -1 || binhex_insert(name, byte + 1) == -1) { @@ -365,7 +365,7 @@ { UInt32 block = blockiter_curr(&iter); int result = volume_readinbuf(vol, buf, block); - size_t size = total > blksize ? blksize : total; + int size = total > blksize ? blksize : total; size_t bytes; char *latin1, *ptr, *ptrend; if (result) Index: hfsplus-1.0.4/src/hpcache.c =================================================================== --- hfsplus-1.0.4.orig/src/hpcache.c 2002-03-16 09:16:14.000000000 +0100 +++ hfsplus-1.0.4/src/hpcache.c 2009-09-24 23:31:27.000000000 +0200 @@ -34,6 +34,7 @@ # include <string.h> # include <errno.h> # include <unistd.h> +# include <inttypes.h> #include "libhfsp.h" #include "volume.h" @@ -102,7 +103,7 @@ return -1; } - params = fscanf(fd, "%255[^:]:%lu:%u", + params = fscanf(fd, "%255[^:]:%" PRIu32 ":%u", volume_cache.vname, &volume_cache.cnid, &volume_cache.partition); if (params < 2) { @@ -128,7 +129,7 @@ return -1; } - fprintf(fd, "%s:%lu:%u", + fprintf(fd, "%s:%" PRIu32 ":%u", volume_cache.vname, volume_cache.cnid, volume_cache.partition); return 0; Index: hfsplus-1.0.4/src/hpls.c =================================================================== --- hfsplus-1.0.4.orig/src/hpls.c 2002-03-17 18:20:39.000000000 +0100 +++ hfsplus-1.0.4/src/hpls.c 2009-09-24 23:31:27.000000000 +0200 @@ -47,6 +47,7 @@ # include <string.h> # include <time.h> # include <ctype.h> +# include <inttypes.h> # include <errno.h> # include "libhfsp.h" @@ -332,7 +333,7 @@ { const unsigned char *ptr; - for (ptr = path; *ptr; ++ptr) + for (ptr = (const unsigned char*)path; *ptr; ++ptr) { char buf[5]; const char *add = buf; @@ -408,9 +409,9 @@ if (flags & HPLS_CATIDS) { if (ent->record.type < HFSP_FOLDER_THREAD) - printf("%7lu ", ent->record.u.file.id); + printf("%7" PRIu32 " ", ent->record.u.file.id); else - printf("%7lu ", ent->record.u.thread.parentID); + printf("%7" PRIu32 " ", ent->record.u.thread.parentID); } if (flags & HPLS_SIZE && ent->record.type == HFSP_FILE) @@ -476,7 +477,7 @@ if (ent->record.type == HFSP_FOLDER) { hfsp_cat_folder* f = &ent->record.u.folder; - printf("d%c %9lu item%c %s %s\n", + printf("d%c %9" PRIu32 " item%c %s %s\n", f->user_info.frFlags & HFS_FNDR_ISINVISIBLE ? 'i' : ' ', f->valence, f->valence == 1 ? ' ' : 's', timebuf + 4, strs[i]); Index: hfsplus-1.0.4/libhfsp/src/fscheck.c =================================================================== --- hfsplus-1.0.4.orig/libhfsp/src/fscheck.c 2009-09-24 23:30:16.000000000 +0200 +++ hfsplus-1.0.4/libhfsp/src/fscheck.c 2009-09-24 23:31:27.000000000 +0200 @@ -36,6 +36,7 @@ # include <limits.h> # include <errno.h> # include <time.h> +# include <inttypes.h> # include "libhfsp.h" # include "fscheck.h" @@ -53,13 +54,13 @@ int i; hfsp_extent* e; printf("total_size : %#LX\n" , f->total_size); - printf("clump_size : %#lX\n" , f->clump_size); - printf("total_blocks : %#lX\n" , f->total_blocks); + printf("clump_size : %#" PRIX32 "\n" , f->clump_size); + printf("total_blocks : %#" PRIX32 "\n" , f->total_blocks); printf("extents : "); for (i=0; i < 8; i++) { e = &f->extents[i]; - printf("(%#lX+%#lX) " , e->start_block,e->block_count); + printf("(%#" PRIX32 "+%#" PRIX32 ") " , e->start_block,e->block_count); } printf("\n"); } @@ -78,24 +79,24 @@ printf("signature : %c%c\n" , ((char*)&vh->signature)[0], ((char*)&vh->signature)[1]); printf("version : %u\n" , vh->version); - printf("attributes : %#lX\n" , vh->attributes); + printf("attributes : %#" PRIX32 "\n" , vh->attributes); printf("last_mount_vers : "); print_sig(vh->last_mount_vers); - printf("\nreserved : %lu\n" , vh->reserved); + printf("\nreserved : %" PRIu32 "\n" , vh->reserved); /* Hmm this is in local, apple time ... */ printf("create_date : %s" , get_atime(vh->create_date)); printf("modify_date : %s" , get_atime(vh->modify_date)); printf("backup_date : %s" , get_atime(vh->backup_date)); printf("checked_date : %s" , get_atime(vh->checked_date)); - printf("file_count : %lu\n" , vh->file_count); - printf("folder_count : %lu\n" , vh->folder_count); - printf("blocksize : %lX\n" , vh->blocksize); - printf("total_blocks : %lu\n" , vh->total_blocks); - printf("free_blocks : %lu\n" , vh->free_blocks); - printf("next_alloc : %lu\n" , vh->next_alloc); - printf("rsrc_clump_sz : %lu\n" , vh->rsrc_clump_sz); - printf("data_clump_sz : %lu\n" , vh->data_clump_sz); - printf("next_cnid : %lu\n" , vh->next_cnid); - printf("write_count : %lu\n" , vh->write_count); + printf("file_count : %" PRIu32 "\n" , vh->file_count); + printf("folder_count : %" PRIu32 "\n" , vh->folder_count); + printf("blocksize : %" PRIX32 "\n" , vh->blocksize); + printf("total_blocks : %" PRIu32 "\n" , vh->total_blocks); + printf("free_blocks : %" PRIu32 "\n" , vh->free_blocks); + printf("next_alloc : %" PRIu32 "\n" , vh->next_alloc); + printf("rsrc_clump_sz : %" PRIu32 "\n" , vh->rsrc_clump_sz); + printf("data_clump_sz : %" PRIu32 "\n" , vh->data_clump_sz); + printf("next_cnid : %" PRIu32 "\n" , vh->next_cnid); + printf("write_count : %" PRIu32 "\n" , vh->write_count); printf("encodings_bmp : %#LX\n" , vh->encodings_bmp); /* vv->finder_info, p, 32); */ printf(" Allocation file\n"); @@ -119,7 +120,7 @@ // vh->signature // already checked in read // vh->version // Current is 4 but I wont check that if (attributes & HFSPLUS_VOL_RESERVED1) - printf("Reserved attribute in use: %lX\n", + printf("Reserved attribute in use: %" PRIX32 "\n", vh->attributes & HFSPLUS_VOL_RESERVED1); if (! (attributes & HFSPLUS_VOL_UNMNT)) printf("Volume was not cleanly unmounted\n"); @@ -130,12 +131,12 @@ if (attributes & HFSPLUS_VOL_INCNSTNT) printf("Volume is inconsistent\n"); if (attributes & HFSPLUS_VOL_RESERVED2) - printf("Reserved attribute in use: %lX\n", + printf("Reserved attribute in use: %" PRIX32 "\n", vh->attributes & HFSPLUS_VOL_RESERVED2); if (fsck_data.verbose && (attributes & HFSPLUS_VOL_SOFTLOCK)) printf("Volume is soft locked"); if (attributes & HFSPLUS_VOL_RESERVED3) - printf("Reserved attribute in use: %lX\n", + printf("Reserved attribute in use: %" PRIX32 "\n", vh->attributes & HFSPLUS_VOL_RESERVED3); switch (vh->last_mount_vers) { @@ -169,25 +170,25 @@ // vh->folder_count // To be checked later if (0 != (vh->blocksize % HFSP_BLOCKSZ)) // must be multiple of BLKSZ { - printf("Invalid Blocksize %lX\n", vh->blocksize); + printf("Invalid Blocksize %" PRIX32 "\n", vh->blocksize); result = FSCK_ERR; // Wont try to correct that, yet. } { UInt64 totalbytes = vh->total_blocks * vh->blocksize; UInt64 expectedbytes = vol->maxblocks << vol->blksize_bits; if (totalbytes > expectedbytes) - printf("\nInvalid total blocks %lX, expected %lX", + printf("\nInvalid total blocks %" PRIX32 ", expected %" PRIX32, vh->total_blocks, (UInt32)(expectedbytes / vh->blocksize)); } if (vh->free_blocks > vh->total_blocks) - printf("More free blocks (%lX) than total (%lX) ?\n", + printf("More free blocks (%" PRIX32 ") than total (%" PRIX32 ") ?\n", vh->free_blocks, vh->total_blocks); // Check more later // vh->next_alloc // to be checked later // vh->rsrc_clump_sz // no check needed, is a hint only // vh->data_clump_sz // no check needed, is a hint only if (vh->next_cnid <= HFSP_MIN_CNID) // wil hopefully be fixed later - printf("Invalid next_cnid: %ld\n", vh->next_cnid); + printf("Invalid next_cnid: %" PRIu32 "\n", vh->next_cnid); // Check more later // vh->write_count // no check possible // vh->encodings_bmp // no check needed, is a hint only @@ -292,7 +293,7 @@ sect_per_block = (drAlBlkSiz / HFSP_BLOCKSZ); if ((sect_per_block * HFSP_BLOCKSZ) != drAlBlkSiz) { - printf("HFS Blocksize %lX is not multiple of %X\n", + printf("HFS Blocksize %" PRIX32 " is not multiple of %X\n", drAlBlkSiz, HFSP_BLOCKSZ); return FSCK_ERR; // Cant help it (for now) } @@ -302,7 +303,7 @@ << HFS_BLOCKSZ_BITS; /* Now we can try to read the embedded HFS+ volume header */ if (fsck_data.verbose) - printf("Embedded HFS+ volume at 0x%LX (0x%lX) of 0x%X sized Blocks\n", + printf("Embedded HFS+ volume at 0x%LX (0x%" PRIX32 ") of 0x%X sized Blocks\n", os_offset, vol->maxblocks, HFSP_BLOCKSZ); return fscheck_volume_read(vol,vh,2); } @@ -340,7 +341,7 @@ { if (!volume_allocated(vol, block)) { - printf("Warning block %lX not marked as allocated\n",block); + printf("Warning block %" PRIX32 " not marked as allocated\n",block); errcount++; } count --; Index: hfsplus-1.0.4/libhfsp/src/swab.h =================================================================== --- hfsplus-1.0.4.orig/libhfsp/src/swab.h 2009-09-24 23:30:16.000000000 +0200 +++ hfsplus-1.0.4/libhfsp/src/swab.h 2009-09-24 23:35:03.000000000 +0200 @@ -36,13 +36,13 @@ #define bswabU16(val) bswap_16(val) -#define bswabU16_inc(ptr) bswap_16(*((UInt16*) (ptr))); ptr = (UInt16*)ptr + 1 -#define bswabU32_inc(ptr) bswap_32(*((UInt32*) (ptr))); ptr = (UInt32*)ptr + 1 -#define bswabU64_inc(ptr) bswap_64(*((UInt64*) (ptr))); ptr = (UInt64*)ptr + 1 - -#define bstoreU16_inc(ptr, val) *((UInt16*) (ptr)) = bswap_16(val); ptr = (UInt16*)ptr + 1 -#define bstoreU32_inc(ptr, val) *((UInt32*) (ptr)) = bswap_32(val); ptr = (UInt32*)ptr + 1; -#define bstoreU64_inc(ptr, val) *((UInt64*) (ptr)) = bswap_64(val); ptr = (UInt32*)ptr + 1; +#define bswabU16_inc(ptr) bswap_16(*((UInt16*) (ptr))); ptr = (void*)((UInt16*)ptr + 1) +#define bswabU32_inc(ptr) bswap_32(*((UInt32*) (ptr))); ptr = (void*)((UInt32*)ptr + 1) +#define bswabU64_inc(ptr) bswap_64(*((UInt64*) (ptr))); ptr = (void*)((UInt64*)ptr + 1) + +#define bstoreU16_inc(ptr, val) *((UInt16*) (ptr)) = bswap_16(val); ptr = (void*)((UInt16*)ptr + 1) +#define bstoreU32_inc(ptr, val) *((UInt32*) (ptr)) = bswap_32(val); ptr = (void*)((UInt32*)ptr + 1) +#define bstoreU64_inc(ptr, val) *((UInt64*) (ptr)) = bswap_64(val); ptr = (void*)((UInt32*)ptr + 1) #else // BYTE_ORDER == BIG_ENDIAN @@ -69,9 +69,9 @@ #define bswabU64_inc(ptr) *((UInt64*) (ptr)); ptr = (UInt64*)ptr + 1 #endif -#define bstoreU16_inc(ptr, val) *((UInt16*) (ptr)) = val; ptr = (UInt16*)ptr + 1 -#define bstoreU32_inc(ptr, val) *((UInt32*) (ptr)) = val; ptr = (UInt32*)ptr + 1 -#define bstoreU64_inc(ptr, val) *((UInt64*) (ptr)) = val; ptr = (UInt64*)ptr + 1 +#define bstoreU16_inc(ptr, val) *((UInt16*) (ptr)) = val; ptr = (void*)((UInt16*)ptr + 1) +#define bstoreU32_inc(ptr, val) *((UInt32*) (ptr)) = val; ptr = (void*)((UInt32*)ptr + 1) +#define bstoreU64_inc(ptr, val) *((UInt64*) (ptr)) = val; ptr = (void*)((UInt64*)ptr + 1) #endif