
hfsutils - tools for reading and writing Macintosh HFS volumes
Copyright (C) 1996 Robert Leslie

MODIFIED FOR BeOS (DR8) - Thomas B. White - September 26, 1996

===============================================================================

What is this?

  HFS is the "Hierarchical File System" used on modern Macintosh computers.
  With this package, you can read and write Macintosh-formatted media such as
  floppy disks, CD-ROMs, and SCSI hard disks using the BeOS (DR8). You can
  also format raw media into an HFS volume.

  This package contains a number of different tools:

    * Several command-line programs (hmount, hdir, hcopy, et al.)
    * A C library for low-level access to volumes

How is this different from other HFS packages?

  This package attempts to provide a portable, free implementation of
  routines for accessing HFS volumes. It is implemented as a set of user-level
  tools to provide maximum portability.

  The command-line programs are intended to be used in the same vein as the
  Mtools command-line programs used to access MS-DOS filesystems.

  The C library can be linked with other programs wanting to manipulate
  Macintosh files in their native format. For example, an implementation of
  the Macintosh Resource Manager could be built on top of this library to
  provide seamless access to data objects contained within the resource forks
  of Macintosh files.

How is this BeOS (DR8) version different from the official release?

  The official release of hfsutils-1.17b also includes:

    * A Tk-based front-end for browsing and copying files through a
        variety of transfer modes (MacBinary, BinHex, text, etc.)
    * A Tcl package and interface for scriptable access to volumes

  These tools could not be ported to the BeOS.

  In order to get the Metrowerks C compiler (mwcc) to build the
  command-line tools, many changes were made to the source files:

    * mwcc is rather strict about types, so in numerous places,
      unsigned char/short/long's had to be casted to signed,
      and vice-versa
    * attempts to obtain a lock on a device seem to fail, so the
      l_lockvol() function in libhfs/low.c simply returns 0
    * gmtime() seems to return NULL (?!), so the calctzdiff() procedure
      in libhfs/data.c simply sets tzdiff to 0
    * ftruncate() is not available, so the hcwd_init() and hcwd_finish()
      functions in hcwd.c truncate the ".hcwd" file differently

  The official release builds a large executable, "hfsutil", and then
  creates hard-links ("hmount", "hunmount", "hls", etc.) to "hfsutils".
  The BeOS filesystem doesn't have hard-links, so to try to save hard
  disk space (and to be able to build the tools with the limited linker),
  each individual command is built separately.

  The nroff man pages were converted to HTML format.

  A small utility, "settype", is included to associate the HTML documents
  with the NetPositive browser application.

How do I use these tools with the BeOS (DR8)?

  To mount a Macintosh HFS 1440K (HD) floppy disk:

    $ hmount /dev/floppy_disk

  To mount a Macintosh HFS CD-ROM (assuming SCSI ID 3):

    $ hmount /dev/scsi_cd_030 1

    * substitute the '3' above with the ID of your SCSI CD-ROM
    * note the '1', which specifies the partition number
  
===============================================================================

Notes on this release

  This should be considered beta software. The routines to read and write HFS
  filesystems have been pretty well tested, but feedback is important as
  continued functionality is added. Please write to me with your experiences.

  Please see the COPYRIGHT file for copyright and warranty information.

Contacting the author

  Please send comments, bug reports, suggestions, patches, etc. to:

    * Robert Leslie <rob@mars.org>

  See also the HFS Utilities home page on the Web:

    * http://www.mars.org/home/rob/proj/hfs/

Contacting the BeOS version maintainer

  Please send BeOS-specific comments, bug reports, etc. to:

	* Thomas B. White <tbwhite@hookup.net>

===============================================================================

