hfsutils - tools for reading and writing Macintosh HFS volumes Copyright (C) 1996-1998 Robert Leslie $Id: TODO,v 1.14 1998/11/02 22:08:22 rob Exp $ =============================================================================== General to-do items (aka bugs): libhfs * support HFS+ (aka Sequoia, Extended Format) * don't allow reads from spared blocks * further improve efficiency of b*-tree searches? * concurrency considerations: opening same file multiple times; performing directory manipulations on open files * b*-tree record balancing? * smarter block allocation algorithm * volume full: hfs_write() should return bytes written < len, return -1 on next call? * seek beyond end of file? * touch directory timestamps on file updates? * improve efficiency of bitmap operations * improve efficiency of search operations * CNID wrapping? * bad block sparing by physical block librsrc * determine resource sizes without reading them * support writability hfsck * modify libhfs to support low-level grubbing command-line tools * preserve timestamps (-p) for hcopy * recursive hcopy (-r) * allow hformat to create files and/or set size? * write Linux utilities mkfs.hfs, fsck.hfs * eliminate ftruncate() * more flags for hdel (-i, -r, -f) * glob :*:foo correctly * glob hcopy destination HFS path? * formalize hdisk.pl into the distribution xhfs * open arbitrary partitions * rename volumes * change file type/creator * more support for other platforms (correct device defaults; df output) * graphical partition map editor? * recursive copy: map illegal directory name chars copyin/copyout * finish/fix timestamp preservation * revisit buffer sizes * remember src/dst filenames (for preserve/delete) * allow name mangling to be optional * don't unconditionally clobber * delete incomplete files after failed transfers * AppleSingle, Netatalk-/CAP-style AppleDouble? Future wish-list: * raw SCSI access for hideous platforms * partitioning utility * defragmenting utility Acknowledged limitations: * null characters (ASCII 0x00) not supported in filenames * partition maps not managed with A/UX support