From 00b6d7a4604e759eb3c92b3ecea608d6fe024b81 Mon Sep 17 00:00:00 2001
From: srs5694 <srs5694@users.sourceforge.net>
Date: Sun, 26 Jun 2011 22:40:06 -0400
Subject: [PATCH] 0.7.2 release, includes new Linux type code & true GUID
 generation in Windows

---
 Makefile         | 538 +----------------------------------------------
 Makefile.freebsd |   5 +-
 Makefile.mac     |  11 +-
 Makefile.mingw   |   2 +-
 NEWS             |  27 ++-
 README           |  39 ++--
 basicmbr.cc      |  11 +-
 bsd.cc           |   2 +-
 current.spec     |   8 +-
 diskio-unix.cc   |   3 +-
 fixparts.8       |   4 +-
 gdisk.8          |  30 +--
 gdisk.cc         |  13 +-
 gpt.cc           |   5 +-
 gpt.h            |   5 +-
 gptpart.cc       |  24 ++-
 gptpart.h        |   2 +-
 guid.cc          |  31 ++-
 guid.h           |  10 +-
 parttypes.cc     |  39 ++--
 parttypes.h      |   2 +-
 sgdisk.8         |  24 +--
 support.h        |  33 ++-
 23 files changed, 208 insertions(+), 660 deletions(-)

diff --git a/Makefile b/Makefile
index 66fdc64..4c3271e 100644
--- a/Makefile
+++ b/Makefile
@@ -1,11 +1,11 @@
 CC=gcc
 CXX=g++
 CFLAGS+=-D_FILE_OFFSET_BITS=64
-CXXFLAGS+=-Wall -D_FILE_OFFSET_BITS=64
+CXXFLAGS+=-Wall -D_FILE_OFFSET_BITS=64 -D USE_UTF16
+#CXXFLAGS+=-Wall -D_FILE_OFFSET_BITS=64
 LDFLAGS+=
 LIB_NAMES=crc32 support guid gptpart mbrpart basicmbr mbr gpt bsd parttypes attributes diskio diskio-unix
 MBR_LIBS=support diskio diskio-unix basicmbr mbrpart
-#LIB_SRCS=$(NAMES:=.cc)
 LIB_OBJS=$(LIB_NAMES:=.o)
 MBR_LIB_OBJS=$(MBR_LIBS:=.o)
 LIB_HEADERS=$(LIB_NAMES:=.h)
@@ -14,9 +14,11 @@ DEPEND= makedepend $(CXXFLAGS)
 all:	gdisk sgdisk fixparts
 
 gdisk:	$(LIB_OBJS) gdisk.o gpttext.o
+#	$(CXX) $(LIB_OBJS) gdisk.o gpttext.o $(LDFLAGS) -luuid -o gdisk
 	$(CXX) $(LIB_OBJS) gdisk.o gpttext.o $(LDFLAGS) -licuio -licuuc -luuid -o gdisk
 
 sgdisk: $(LIB_OBJS) sgdisk.o
+#	$(CXX) $(LIB_OBJS) sgdisk.o $(LDFLAGS) -luuid -lpopt -o sgdisk
 	$(CXX) $(LIB_OBJS) sgdisk.o $(LDFLAGS) -licuio -licuuc -luuid -lpopt -o sgdisk
 
 fixparts: $(MBR_LIB_OBJS) fixparts.o
@@ -36,535 +38,3 @@ $(OBJS):
 	$(CRITICAL_CXX_FLAGS) 
 
 # DO NOT DELETE
-
-attributes.o: /usr/include/stdint.h /usr/include/features.h
-attributes.o: /usr/include/sys/cdefs.h /usr/include/bits/wordsize.h
-attributes.o: /usr/include/gnu/stubs.h /usr/include/gnu/stubs-64.h
-attributes.o: /usr/include/bits/wchar.h /usr/include/stdio.h
-attributes.o: /usr/include/bits/types.h /usr/include/bits/typesizes.h
-attributes.o: /usr/include/libio.h /usr/include/_G_config.h
-attributes.o: /usr/include/wchar.h /usr/include/bits/stdio_lim.h
-attributes.o: /usr/include/bits/sys_errlist.h attributes.h support.h
-attributes.o: /usr/include/stdlib.h /usr/include/bits/waitflags.h
-attributes.o: /usr/include/bits/waitstatus.h /usr/include/endian.h
-attributes.o: /usr/include/bits/endian.h /usr/include/bits/byteswap.h
-attributes.o: /usr/include/sys/types.h /usr/include/time.h
-attributes.o: /usr/include/sys/select.h /usr/include/bits/select.h
-attributes.o: /usr/include/bits/sigset.h /usr/include/bits/time.h
-attributes.o: /usr/include/sys/sysmacros.h /usr/include/bits/pthreadtypes.h
-attributes.o: /usr/include/alloca.h
-basicmbr.o: /usr/include/stdio.h /usr/include/features.h
-basicmbr.o: /usr/include/sys/cdefs.h /usr/include/bits/wordsize.h
-basicmbr.o: /usr/include/gnu/stubs.h /usr/include/gnu/stubs-64.h
-basicmbr.o: /usr/include/bits/types.h /usr/include/bits/typesizes.h
-basicmbr.o: /usr/include/libio.h /usr/include/_G_config.h
-basicmbr.o: /usr/include/wchar.h /usr/include/bits/stdio_lim.h
-basicmbr.o: /usr/include/bits/sys_errlist.h /usr/include/stdlib.h
-basicmbr.o: /usr/include/bits/waitflags.h /usr/include/bits/waitstatus.h
-basicmbr.o: /usr/include/endian.h /usr/include/bits/endian.h
-basicmbr.o: /usr/include/bits/byteswap.h /usr/include/sys/types.h
-basicmbr.o: /usr/include/time.h /usr/include/sys/select.h
-basicmbr.o: /usr/include/bits/select.h /usr/include/bits/sigset.h
-basicmbr.o: /usr/include/bits/time.h /usr/include/sys/sysmacros.h
-basicmbr.o: /usr/include/bits/pthreadtypes.h /usr/include/alloca.h
-basicmbr.o: /usr/include/stdint.h /usr/include/bits/wchar.h
-basicmbr.o: /usr/include/fcntl.h /usr/include/bits/fcntl.h
-basicmbr.o: /usr/include/bits/stat.h /usr/include/string.h
-basicmbr.o: /usr/include/xlocale.h /usr/include/sys/stat.h
-basicmbr.o: /usr/include/errno.h /usr/include/bits/errno.h
-basicmbr.o: /usr/include/linux/errno.h /usr/include/asm/errno.h
-basicmbr.o: /usr/include/asm-generic/errno.h
-basicmbr.o: /usr/include/asm-generic/errno-base.h mbr.h gptpart.h support.h
-basicmbr.o: parttypes.h /usr/include/unicode/ustream.h
-basicmbr.o: /usr/include/unicode/unistr.h /usr/include/unicode/utypes.h
-basicmbr.o: /usr/include/unicode/umachine.h /usr/include/unicode/ptypes.h
-basicmbr.o: /usr/include/unicode/platform.h /usr/include/inttypes.h
-basicmbr.o: /usr/include/unicode/urename.h /usr/include/unicode/uvernum.h
-basicmbr.o: /usr/include/unicode/utf.h /usr/include/unicode/utf8.h
-basicmbr.o: /usr/include/unicode/utf16.h /usr/include/unicode/utf_old.h
-basicmbr.o: /usr/include/unicode/uversion.h /usr/include/unicode/uconfig.h
-basicmbr.o: /usr/include/unicode/rep.h /usr/include/unicode/uobject.h
-basicmbr.o: /usr/include/unicode/std_string.h
-basicmbr.o: /usr/include/unicode/stringpiece.h
-basicmbr.o: /usr/include/unicode/bytestream.h guid.h /usr/include/uuid/uuid.h
-basicmbr.o: /usr/include/sys/time.h attributes.h diskio.h
-basicmbr.o: /usr/include/sys/ioctl.h /usr/include/bits/ioctls.h
-basicmbr.o: /usr/include/asm/ioctls.h /usr/include/asm-generic/ioctls.h
-basicmbr.o: /usr/include/linux/ioctl.h /usr/include/asm/ioctl.h
-basicmbr.o: /usr/include/asm-generic/ioctl.h /usr/include/bits/ioctl-types.h
-basicmbr.o: /usr/include/sys/ttydefaults.h basicmbr.h mbrpart.h
-bsd.o: /usr/include/stdio.h /usr/include/features.h /usr/include/sys/cdefs.h
-bsd.o: /usr/include/bits/wordsize.h /usr/include/gnu/stubs.h
-bsd.o: /usr/include/gnu/stubs-64.h /usr/include/bits/types.h
-bsd.o: /usr/include/bits/typesizes.h /usr/include/libio.h
-bsd.o: /usr/include/_G_config.h /usr/include/wchar.h
-bsd.o: /usr/include/bits/stdio_lim.h /usr/include/bits/sys_errlist.h
-bsd.o: /usr/include/stdlib.h /usr/include/bits/waitflags.h
-bsd.o: /usr/include/bits/waitstatus.h /usr/include/endian.h
-bsd.o: /usr/include/bits/endian.h /usr/include/bits/byteswap.h
-bsd.o: /usr/include/sys/types.h /usr/include/time.h /usr/include/sys/select.h
-bsd.o: /usr/include/bits/select.h /usr/include/bits/sigset.h
-bsd.o: /usr/include/bits/time.h /usr/include/sys/sysmacros.h
-bsd.o: /usr/include/bits/pthreadtypes.h /usr/include/alloca.h
-bsd.o: /usr/include/stdint.h /usr/include/bits/wchar.h /usr/include/fcntl.h
-bsd.o: /usr/include/bits/fcntl.h /usr/include/bits/stat.h
-bsd.o: /usr/include/sys/stat.h /usr/include/errno.h /usr/include/bits/errno.h
-bsd.o: /usr/include/linux/errno.h /usr/include/asm/errno.h
-bsd.o: /usr/include/asm-generic/errno.h /usr/include/asm-generic/errno-base.h
-bsd.o: support.h bsd.h gptpart.h parttypes.h /usr/include/unicode/ustream.h
-bsd.o: /usr/include/unicode/unistr.h /usr/include/unicode/utypes.h
-bsd.o: /usr/include/unicode/umachine.h /usr/include/unicode/ptypes.h
-bsd.o: /usr/include/unicode/platform.h /usr/include/inttypes.h
-bsd.o: /usr/include/unicode/urename.h /usr/include/unicode/uvernum.h
-bsd.o: /usr/include/unicode/utf.h /usr/include/unicode/utf8.h
-bsd.o: /usr/include/unicode/utf16.h /usr/include/unicode/utf_old.h
-bsd.o: /usr/include/unicode/uversion.h /usr/include/unicode/uconfig.h
-bsd.o: /usr/include/unicode/rep.h /usr/include/unicode/uobject.h
-bsd.o: /usr/include/unicode/std_string.h /usr/include/unicode/stringpiece.h
-bsd.o: /usr/include/unicode/bytestream.h guid.h /usr/include/uuid/uuid.h
-bsd.o: /usr/include/sys/time.h attributes.h diskio.h /usr/include/sys/ioctl.h
-bsd.o: /usr/include/bits/ioctls.h /usr/include/asm/ioctls.h
-bsd.o: /usr/include/asm-generic/ioctls.h /usr/include/linux/ioctl.h
-bsd.o: /usr/include/asm/ioctl.h /usr/include/asm-generic/ioctl.h
-bsd.o: /usr/include/bits/ioctl-types.h /usr/include/sys/ttydefaults.h
-crc32.o: /usr/include/stdio.h /usr/include/features.h
-crc32.o: /usr/include/sys/cdefs.h /usr/include/bits/wordsize.h
-crc32.o: /usr/include/gnu/stubs.h /usr/include/gnu/stubs-64.h
-crc32.o: /usr/include/bits/types.h /usr/include/bits/typesizes.h
-crc32.o: /usr/include/libio.h /usr/include/_G_config.h /usr/include/wchar.h
-crc32.o: /usr/include/bits/stdio_lim.h /usr/include/bits/sys_errlist.h
-crc32.o: /usr/include/stdlib.h /usr/include/bits/waitflags.h
-crc32.o: /usr/include/bits/waitstatus.h /usr/include/endian.h
-crc32.o: /usr/include/bits/endian.h /usr/include/bits/byteswap.h
-crc32.o: /usr/include/sys/types.h /usr/include/time.h
-crc32.o: /usr/include/sys/select.h /usr/include/bits/select.h
-crc32.o: /usr/include/bits/sigset.h /usr/include/bits/time.h
-crc32.o: /usr/include/sys/sysmacros.h /usr/include/bits/pthreadtypes.h
-crc32.o: /usr/include/alloca.h crc32.h /usr/include/stdint.h
-crc32.o: /usr/include/bits/wchar.h
-diskio.o: /usr/include/sys/ioctl.h /usr/include/features.h
-diskio.o: /usr/include/sys/cdefs.h /usr/include/bits/wordsize.h
-diskio.o: /usr/include/gnu/stubs.h /usr/include/gnu/stubs-64.h
-diskio.o: /usr/include/bits/ioctls.h /usr/include/asm/ioctls.h
-diskio.o: /usr/include/asm-generic/ioctls.h /usr/include/linux/ioctl.h
-diskio.o: /usr/include/asm/ioctl.h /usr/include/asm-generic/ioctl.h
-diskio.o: /usr/include/bits/ioctl-types.h /usr/include/sys/ttydefaults.h
-diskio.o: /usr/include/stdint.h /usr/include/bits/wchar.h
-diskio.o: /usr/include/errno.h /usr/include/bits/errno.h
-diskio.o: /usr/include/linux/errno.h /usr/include/asm/errno.h
-diskio.o: /usr/include/asm-generic/errno.h
-diskio.o: /usr/include/asm-generic/errno-base.h /usr/include/fcntl.h
-diskio.o: /usr/include/bits/fcntl.h /usr/include/sys/types.h
-diskio.o: /usr/include/bits/types.h /usr/include/bits/typesizes.h
-diskio.o: /usr/include/time.h /usr/include/endian.h
-diskio.o: /usr/include/bits/endian.h /usr/include/bits/byteswap.h
-diskio.o: /usr/include/sys/select.h /usr/include/bits/select.h
-diskio.o: /usr/include/bits/sigset.h /usr/include/bits/time.h
-diskio.o: /usr/include/sys/sysmacros.h /usr/include/bits/pthreadtypes.h
-diskio.o: /usr/include/bits/stat.h /usr/include/sys/stat.h support.h
-diskio.o: /usr/include/stdlib.h /usr/include/bits/waitflags.h
-diskio.o: /usr/include/bits/waitstatus.h /usr/include/alloca.h diskio.h
-diskio-unix.o: /usr/include/sys/ioctl.h /usr/include/features.h
-diskio-unix.o: /usr/include/sys/cdefs.h /usr/include/bits/wordsize.h
-diskio-unix.o: /usr/include/gnu/stubs.h /usr/include/gnu/stubs-64.h
-diskio-unix.o: /usr/include/bits/ioctls.h /usr/include/asm/ioctls.h
-diskio-unix.o: /usr/include/asm-generic/ioctls.h /usr/include/linux/ioctl.h
-diskio-unix.o: /usr/include/asm/ioctl.h /usr/include/asm-generic/ioctl.h
-diskio-unix.o: /usr/include/bits/ioctl-types.h /usr/include/sys/ttydefaults.h
-diskio-unix.o: /usr/include/string.h /usr/include/xlocale.h
-diskio-unix.o: /usr/include/stdint.h /usr/include/bits/wchar.h
-diskio-unix.o: /usr/include/errno.h /usr/include/bits/errno.h
-diskio-unix.o: /usr/include/linux/errno.h /usr/include/asm/errno.h
-diskio-unix.o: /usr/include/asm-generic/errno.h
-diskio-unix.o: /usr/include/asm-generic/errno-base.h /usr/include/fcntl.h
-diskio-unix.o: /usr/include/bits/fcntl.h /usr/include/sys/types.h
-diskio-unix.o: /usr/include/bits/types.h /usr/include/bits/typesizes.h
-diskio-unix.o: /usr/include/time.h /usr/include/endian.h
-diskio-unix.o: /usr/include/bits/endian.h /usr/include/bits/byteswap.h
-diskio-unix.o: /usr/include/sys/select.h /usr/include/bits/select.h
-diskio-unix.o: /usr/include/bits/sigset.h /usr/include/bits/time.h
-diskio-unix.o: /usr/include/sys/sysmacros.h /usr/include/bits/pthreadtypes.h
-diskio-unix.o: /usr/include/bits/stat.h /usr/include/sys/stat.h diskio.h
-diskio-unix.o: support.h /usr/include/stdlib.h /usr/include/bits/waitflags.h
-diskio-unix.o: /usr/include/bits/waitstatus.h /usr/include/alloca.h
-diskio-windows.o: /usr/include/stdio.h /usr/include/features.h
-diskio-windows.o: /usr/include/sys/cdefs.h /usr/include/bits/wordsize.h
-diskio-windows.o: /usr/include/gnu/stubs.h /usr/include/gnu/stubs-64.h
-diskio-windows.o: /usr/include/bits/types.h /usr/include/bits/typesizes.h
-diskio-windows.o: /usr/include/libio.h /usr/include/_G_config.h
-diskio-windows.o: /usr/include/wchar.h /usr/include/bits/stdio_lim.h
-diskio-windows.o: /usr/include/bits/sys_errlist.h /usr/include/stdint.h
-diskio-windows.o: /usr/include/bits/wchar.h /usr/include/errno.h
-diskio-windows.o: /usr/include/bits/errno.h /usr/include/linux/errno.h
-diskio-windows.o: /usr/include/asm/errno.h /usr/include/asm-generic/errno.h
-diskio-windows.o: /usr/include/asm-generic/errno-base.h /usr/include/fcntl.h
-diskio-windows.o: /usr/include/bits/fcntl.h /usr/include/sys/types.h
-diskio-windows.o: /usr/include/time.h /usr/include/endian.h
-diskio-windows.o: /usr/include/bits/endian.h /usr/include/bits/byteswap.h
-diskio-windows.o: /usr/include/sys/select.h /usr/include/bits/select.h
-diskio-windows.o: /usr/include/bits/sigset.h /usr/include/bits/time.h
-diskio-windows.o: /usr/include/sys/sysmacros.h
-diskio-windows.o: /usr/include/bits/pthreadtypes.h /usr/include/bits/stat.h
-diskio-windows.o: /usr/include/sys/stat.h support.h /usr/include/stdlib.h
-diskio-windows.o: /usr/include/bits/waitflags.h
-diskio-windows.o: /usr/include/bits/waitstatus.h /usr/include/alloca.h
-diskio-windows.o: diskio.h /usr/include/sys/ioctl.h
-diskio-windows.o: /usr/include/bits/ioctls.h /usr/include/asm/ioctls.h
-diskio-windows.o: /usr/include/asm-generic/ioctls.h
-diskio-windows.o: /usr/include/linux/ioctl.h /usr/include/asm/ioctl.h
-diskio-windows.o: /usr/include/asm-generic/ioctl.h
-diskio-windows.o: /usr/include/bits/ioctl-types.h
-diskio-windows.o: /usr/include/sys/ttydefaults.h
-fixparts.o: /usr/include/stdio.h /usr/include/features.h
-fixparts.o: /usr/include/sys/cdefs.h /usr/include/bits/wordsize.h
-fixparts.o: /usr/include/gnu/stubs.h /usr/include/gnu/stubs-64.h
-fixparts.o: /usr/include/bits/types.h /usr/include/bits/typesizes.h
-fixparts.o: /usr/include/libio.h /usr/include/_G_config.h
-fixparts.o: /usr/include/wchar.h /usr/include/bits/stdio_lim.h
-fixparts.o: /usr/include/bits/sys_errlist.h /usr/include/string.h
-fixparts.o: /usr/include/xlocale.h basicmbr.h /usr/include/stdint.h
-fixparts.o: /usr/include/bits/wchar.h /usr/include/sys/types.h
-fixparts.o: /usr/include/time.h /usr/include/endian.h
-fixparts.o: /usr/include/bits/endian.h /usr/include/bits/byteswap.h
-fixparts.o: /usr/include/sys/select.h /usr/include/bits/select.h
-fixparts.o: /usr/include/bits/sigset.h /usr/include/bits/time.h
-fixparts.o: /usr/include/sys/sysmacros.h /usr/include/bits/pthreadtypes.h
-fixparts.o: diskio.h /usr/include/sys/ioctl.h /usr/include/bits/ioctls.h
-fixparts.o: /usr/include/asm/ioctls.h /usr/include/asm-generic/ioctls.h
-fixparts.o: /usr/include/linux/ioctl.h /usr/include/asm/ioctl.h
-fixparts.o: /usr/include/asm-generic/ioctl.h /usr/include/bits/ioctl-types.h
-fixparts.o: /usr/include/sys/ttydefaults.h support.h /usr/include/stdlib.h
-fixparts.o: /usr/include/bits/waitflags.h /usr/include/bits/waitstatus.h
-fixparts.o: /usr/include/alloca.h mbrpart.h
-gdisk.o: /usr/include/stdio.h /usr/include/features.h
-gdisk.o: /usr/include/sys/cdefs.h /usr/include/bits/wordsize.h
-gdisk.o: /usr/include/gnu/stubs.h /usr/include/gnu/stubs-64.h
-gdisk.o: /usr/include/bits/types.h /usr/include/bits/typesizes.h
-gdisk.o: /usr/include/libio.h /usr/include/_G_config.h /usr/include/wchar.h
-gdisk.o: /usr/include/bits/stdio_lim.h /usr/include/bits/sys_errlist.h
-gdisk.o: /usr/include/string.h /usr/include/xlocale.h mbr.h
-gdisk.o: /usr/include/stdint.h /usr/include/bits/wchar.h
-gdisk.o: /usr/include/sys/types.h /usr/include/time.h /usr/include/endian.h
-gdisk.o: /usr/include/bits/endian.h /usr/include/bits/byteswap.h
-gdisk.o: /usr/include/sys/select.h /usr/include/bits/select.h
-gdisk.o: /usr/include/bits/sigset.h /usr/include/bits/time.h
-gdisk.o: /usr/include/sys/sysmacros.h /usr/include/bits/pthreadtypes.h
-gdisk.o: gptpart.h support.h /usr/include/stdlib.h
-gdisk.o: /usr/include/bits/waitflags.h /usr/include/bits/waitstatus.h
-gdisk.o: /usr/include/alloca.h parttypes.h /usr/include/unicode/ustream.h
-gdisk.o: /usr/include/unicode/unistr.h /usr/include/unicode/utypes.h
-gdisk.o: /usr/include/unicode/umachine.h /usr/include/unicode/ptypes.h
-gdisk.o: /usr/include/unicode/platform.h /usr/include/inttypes.h
-gdisk.o: /usr/include/unicode/urename.h /usr/include/unicode/uvernum.h
-gdisk.o: /usr/include/unicode/utf.h /usr/include/unicode/utf8.h
-gdisk.o: /usr/include/unicode/utf16.h /usr/include/unicode/utf_old.h
-gdisk.o: /usr/include/unicode/uversion.h /usr/include/unicode/uconfig.h
-gdisk.o: /usr/include/unicode/rep.h /usr/include/unicode/uobject.h
-gdisk.o: /usr/include/unicode/std_string.h /usr/include/unicode/stringpiece.h
-gdisk.o: /usr/include/unicode/bytestream.h guid.h /usr/include/uuid/uuid.h
-gdisk.o: /usr/include/sys/time.h attributes.h diskio.h
-gdisk.o: /usr/include/sys/ioctl.h /usr/include/bits/ioctls.h
-gdisk.o: /usr/include/asm/ioctls.h /usr/include/asm-generic/ioctls.h
-gdisk.o: /usr/include/linux/ioctl.h /usr/include/asm/ioctl.h
-gdisk.o: /usr/include/asm-generic/ioctl.h /usr/include/bits/ioctl-types.h
-gdisk.o: /usr/include/sys/ttydefaults.h basicmbr.h mbrpart.h gpttext.h gpt.h
-gdisk.o: bsd.h
-gpt.o: /usr/include/stdio.h /usr/include/features.h /usr/include/sys/cdefs.h
-gpt.o: /usr/include/bits/wordsize.h /usr/include/gnu/stubs.h
-gpt.o: /usr/include/gnu/stubs-64.h /usr/include/bits/types.h
-gpt.o: /usr/include/bits/typesizes.h /usr/include/libio.h
-gpt.o: /usr/include/_G_config.h /usr/include/wchar.h
-gpt.o: /usr/include/bits/stdio_lim.h /usr/include/bits/sys_errlist.h
-gpt.o: /usr/include/stdlib.h /usr/include/bits/waitflags.h
-gpt.o: /usr/include/bits/waitstatus.h /usr/include/endian.h
-gpt.o: /usr/include/bits/endian.h /usr/include/bits/byteswap.h
-gpt.o: /usr/include/sys/types.h /usr/include/time.h /usr/include/sys/select.h
-gpt.o: /usr/include/bits/select.h /usr/include/bits/sigset.h
-gpt.o: /usr/include/bits/time.h /usr/include/sys/sysmacros.h
-gpt.o: /usr/include/bits/pthreadtypes.h /usr/include/alloca.h
-gpt.o: /usr/include/stdint.h /usr/include/bits/wchar.h /usr/include/fcntl.h
-gpt.o: /usr/include/bits/fcntl.h /usr/include/bits/stat.h
-gpt.o: /usr/include/string.h /usr/include/xlocale.h /usr/include/math.h
-gpt.o: /usr/include/bits/huge_val.h /usr/include/bits/huge_valf.h
-gpt.o: /usr/include/bits/huge_vall.h /usr/include/bits/inf.h
-gpt.o: /usr/include/bits/nan.h /usr/include/bits/mathdef.h
-gpt.o: /usr/include/bits/mathcalls.h /usr/include/sys/stat.h
-gpt.o: /usr/include/errno.h /usr/include/bits/errno.h
-gpt.o: /usr/include/linux/errno.h /usr/include/asm/errno.h
-gpt.o: /usr/include/asm-generic/errno.h /usr/include/asm-generic/errno-base.h
-gpt.o: crc32.h gpt.h gptpart.h support.h parttypes.h
-gpt.o: /usr/include/unicode/ustream.h /usr/include/unicode/unistr.h
-gpt.o: /usr/include/unicode/utypes.h /usr/include/unicode/umachine.h
-gpt.o: /usr/include/unicode/ptypes.h /usr/include/unicode/platform.h
-gpt.o: /usr/include/inttypes.h /usr/include/unicode/urename.h
-gpt.o: /usr/include/unicode/uvernum.h /usr/include/unicode/utf.h
-gpt.o: /usr/include/unicode/utf8.h /usr/include/unicode/utf16.h
-gpt.o: /usr/include/unicode/utf_old.h /usr/include/unicode/uversion.h
-gpt.o: /usr/include/unicode/uconfig.h /usr/include/unicode/rep.h
-gpt.o: /usr/include/unicode/uobject.h /usr/include/unicode/std_string.h
-gpt.o: /usr/include/unicode/stringpiece.h /usr/include/unicode/bytestream.h
-gpt.o: guid.h /usr/include/uuid/uuid.h /usr/include/sys/time.h attributes.h
-gpt.o: mbr.h diskio.h /usr/include/sys/ioctl.h /usr/include/bits/ioctls.h
-gpt.o: /usr/include/asm/ioctls.h /usr/include/asm-generic/ioctls.h
-gpt.o: /usr/include/linux/ioctl.h /usr/include/asm/ioctl.h
-gpt.o: /usr/include/asm-generic/ioctl.h /usr/include/bits/ioctl-types.h
-gpt.o: /usr/include/sys/ttydefaults.h basicmbr.h mbrpart.h bsd.h
-gptpart.o: /usr/include/unicode/ustdio.h /usr/include/stdio.h
-gptpart.o: /usr/include/features.h /usr/include/sys/cdefs.h
-gptpart.o: /usr/include/bits/wordsize.h /usr/include/gnu/stubs.h
-gptpart.o: /usr/include/gnu/stubs-64.h /usr/include/bits/types.h
-gptpart.o: /usr/include/bits/typesizes.h /usr/include/libio.h
-gptpart.o: /usr/include/_G_config.h /usr/include/wchar.h
-gptpart.o: /usr/include/bits/stdio_lim.h /usr/include/bits/sys_errlist.h
-gptpart.o: /usr/include/unicode/utypes.h /usr/include/unicode/umachine.h
-gptpart.o: /usr/include/unicode/ptypes.h /usr/include/sys/types.h
-gptpart.o: /usr/include/time.h /usr/include/endian.h
-gptpart.o: /usr/include/bits/endian.h /usr/include/bits/byteswap.h
-gptpart.o: /usr/include/sys/select.h /usr/include/bits/select.h
-gptpart.o: /usr/include/bits/sigset.h /usr/include/bits/time.h
-gptpart.o: /usr/include/sys/sysmacros.h /usr/include/bits/pthreadtypes.h
-gptpart.o: /usr/include/unicode/platform.h /usr/include/inttypes.h
-gptpart.o: /usr/include/stdint.h /usr/include/bits/wchar.h
-gptpart.o: /usr/include/unicode/urename.h /usr/include/unicode/uvernum.h
-gptpart.o: /usr/include/unicode/utf.h /usr/include/unicode/utf8.h
-gptpart.o: /usr/include/unicode/utf16.h /usr/include/unicode/utf_old.h
-gptpart.o: /usr/include/unicode/uversion.h /usr/include/unicode/uconfig.h
-gptpart.o: /usr/include/unicode/ucnv.h /usr/include/unicode/ucnv_err.h
-gptpart.o: /usr/include/unicode/uenum.h /usr/include/unicode/localpointer.h
-gptpart.o: /usr/include/unicode/utrans.h /usr/include/unicode/urep.h
-gptpart.o: /usr/include/unicode/parseerr.h /usr/include/string.h
-gptpart.o: /usr/include/xlocale.h gptpart.h support.h /usr/include/stdlib.h
-gptpart.o: /usr/include/bits/waitflags.h /usr/include/bits/waitstatus.h
-gptpart.o: /usr/include/alloca.h parttypes.h /usr/include/unicode/ustream.h
-gptpart.o: /usr/include/unicode/unistr.h /usr/include/unicode/rep.h
-gptpart.o: /usr/include/unicode/uobject.h /usr/include/unicode/std_string.h
-gptpart.o: /usr/include/unicode/stringpiece.h
-gptpart.o: /usr/include/unicode/bytestream.h guid.h /usr/include/uuid/uuid.h
-gptpart.o: /usr/include/sys/time.h attributes.h
-gpttext.o: /usr/include/string.h /usr/include/features.h
-gpttext.o: /usr/include/sys/cdefs.h /usr/include/bits/wordsize.h
-gpttext.o: /usr/include/gnu/stubs.h /usr/include/gnu/stubs-64.h
-gpttext.o: /usr/include/xlocale.h /usr/include/errno.h
-gpttext.o: /usr/include/bits/errno.h /usr/include/linux/errno.h
-gpttext.o: /usr/include/asm/errno.h /usr/include/asm-generic/errno.h
-gpttext.o: /usr/include/asm-generic/errno-base.h /usr/include/stdint.h
-gpttext.o: /usr/include/bits/wchar.h /usr/include/limits.h
-gpttext.o: /usr/include/bits/posix1_lim.h /usr/include/bits/local_lim.h
-gpttext.o: /usr/include/linux/limits.h /usr/include/bits/posix2_lim.h
-gpttext.o: attributes.h gpttext.h gpt.h /usr/include/sys/types.h
-gpttext.o: /usr/include/bits/types.h /usr/include/bits/typesizes.h
-gpttext.o: /usr/include/time.h /usr/include/endian.h
-gpttext.o: /usr/include/bits/endian.h /usr/include/bits/byteswap.h
-gpttext.o: /usr/include/sys/select.h /usr/include/bits/select.h
-gpttext.o: /usr/include/bits/sigset.h /usr/include/bits/time.h
-gpttext.o: /usr/include/sys/sysmacros.h /usr/include/bits/pthreadtypes.h
-gpttext.o: gptpart.h support.h /usr/include/stdlib.h
-gpttext.o: /usr/include/bits/waitflags.h /usr/include/bits/waitstatus.h
-gpttext.o: /usr/include/alloca.h parttypes.h /usr/include/unicode/ustream.h
-gpttext.o: /usr/include/unicode/unistr.h /usr/include/unicode/utypes.h
-gpttext.o: /usr/include/unicode/umachine.h /usr/include/unicode/ptypes.h
-gpttext.o: /usr/include/unicode/platform.h /usr/include/inttypes.h
-gpttext.o: /usr/include/unicode/urename.h /usr/include/unicode/uvernum.h
-gpttext.o: /usr/include/unicode/utf.h /usr/include/unicode/utf8.h
-gpttext.o: /usr/include/unicode/utf16.h /usr/include/unicode/utf_old.h
-gpttext.o: /usr/include/unicode/uversion.h /usr/include/unicode/uconfig.h
-gpttext.o: /usr/include/unicode/rep.h /usr/include/unicode/uobject.h
-gpttext.o: /usr/include/unicode/std_string.h
-gpttext.o: /usr/include/unicode/stringpiece.h
-gpttext.o: /usr/include/unicode/bytestream.h guid.h /usr/include/uuid/uuid.h
-gpttext.o: /usr/include/sys/time.h mbr.h diskio.h /usr/include/sys/ioctl.h
-gpttext.o: /usr/include/bits/ioctls.h /usr/include/asm/ioctls.h
-gpttext.o: /usr/include/asm-generic/ioctls.h /usr/include/linux/ioctl.h
-gpttext.o: /usr/include/asm/ioctl.h /usr/include/asm-generic/ioctl.h
-gpttext.o: /usr/include/bits/ioctl-types.h /usr/include/sys/ttydefaults.h
-gpttext.o: basicmbr.h mbrpart.h bsd.h
-guid.o: /usr/include/stdio.h /usr/include/features.h /usr/include/sys/cdefs.h
-guid.o: /usr/include/bits/wordsize.h /usr/include/gnu/stubs.h
-guid.o: /usr/include/gnu/stubs-64.h /usr/include/bits/types.h
-guid.o: /usr/include/bits/typesizes.h /usr/include/libio.h
-guid.o: /usr/include/_G_config.h /usr/include/wchar.h
-guid.o: /usr/include/bits/stdio_lim.h /usr/include/bits/sys_errlist.h
-guid.o: /usr/include/time.h /usr/include/string.h /usr/include/xlocale.h
-guid.o: guid.h /usr/include/stdint.h /usr/include/bits/wchar.h
-guid.o: /usr/include/uuid/uuid.h /usr/include/sys/types.h
-guid.o: /usr/include/endian.h /usr/include/bits/endian.h
-guid.o: /usr/include/bits/byteswap.h /usr/include/sys/select.h
-guid.o: /usr/include/bits/select.h /usr/include/bits/sigset.h
-guid.o: /usr/include/bits/time.h /usr/include/sys/sysmacros.h
-guid.o: /usr/include/bits/pthreadtypes.h /usr/include/sys/time.h support.h
-guid.o: /usr/include/stdlib.h /usr/include/bits/waitflags.h
-guid.o: /usr/include/bits/waitstatus.h /usr/include/alloca.h
-mbr.o: /usr/include/stdio.h /usr/include/features.h /usr/include/sys/cdefs.h
-mbr.o: /usr/include/bits/wordsize.h /usr/include/gnu/stubs.h
-mbr.o: /usr/include/gnu/stubs-64.h /usr/include/bits/types.h
-mbr.o: /usr/include/bits/typesizes.h /usr/include/libio.h
-mbr.o: /usr/include/_G_config.h /usr/include/wchar.h
-mbr.o: /usr/include/bits/stdio_lim.h /usr/include/bits/sys_errlist.h
-mbr.o: /usr/include/stdlib.h /usr/include/bits/waitflags.h
-mbr.o: /usr/include/bits/waitstatus.h /usr/include/endian.h
-mbr.o: /usr/include/bits/endian.h /usr/include/bits/byteswap.h
-mbr.o: /usr/include/sys/types.h /usr/include/time.h /usr/include/sys/select.h
-mbr.o: /usr/include/bits/select.h /usr/include/bits/sigset.h
-mbr.o: /usr/include/bits/time.h /usr/include/sys/sysmacros.h
-mbr.o: /usr/include/bits/pthreadtypes.h /usr/include/alloca.h
-mbr.o: /usr/include/stdint.h /usr/include/bits/wchar.h /usr/include/fcntl.h
-mbr.o: /usr/include/bits/fcntl.h /usr/include/bits/stat.h
-mbr.o: /usr/include/string.h /usr/include/xlocale.h /usr/include/sys/stat.h
-mbr.o: /usr/include/errno.h /usr/include/bits/errno.h
-mbr.o: /usr/include/linux/errno.h /usr/include/asm/errno.h
-mbr.o: /usr/include/asm-generic/errno.h /usr/include/asm-generic/errno-base.h
-mbr.o: mbr.h gptpart.h support.h parttypes.h /usr/include/unicode/ustream.h
-mbr.o: /usr/include/unicode/unistr.h /usr/include/unicode/utypes.h
-mbr.o: /usr/include/unicode/umachine.h /usr/include/unicode/ptypes.h
-mbr.o: /usr/include/unicode/platform.h /usr/include/inttypes.h
-mbr.o: /usr/include/unicode/urename.h /usr/include/unicode/uvernum.h
-mbr.o: /usr/include/unicode/utf.h /usr/include/unicode/utf8.h
-mbr.o: /usr/include/unicode/utf16.h /usr/include/unicode/utf_old.h
-mbr.o: /usr/include/unicode/uversion.h /usr/include/unicode/uconfig.h
-mbr.o: /usr/include/unicode/rep.h /usr/include/unicode/uobject.h
-mbr.o: /usr/include/unicode/std_string.h /usr/include/unicode/stringpiece.h
-mbr.o: /usr/include/unicode/bytestream.h guid.h /usr/include/uuid/uuid.h
-mbr.o: /usr/include/sys/time.h attributes.h diskio.h /usr/include/sys/ioctl.h
-mbr.o: /usr/include/bits/ioctls.h /usr/include/asm/ioctls.h
-mbr.o: /usr/include/asm-generic/ioctls.h /usr/include/linux/ioctl.h
-mbr.o: /usr/include/asm/ioctl.h /usr/include/asm-generic/ioctl.h
-mbr.o: /usr/include/bits/ioctl-types.h /usr/include/sys/ttydefaults.h
-mbr.o: basicmbr.h mbrpart.h
-mbrpart.o: /usr/include/stdint.h /usr/include/features.h
-mbrpart.o: /usr/include/sys/cdefs.h /usr/include/bits/wordsize.h
-mbrpart.o: /usr/include/gnu/stubs.h /usr/include/gnu/stubs-64.h
-mbrpart.o: /usr/include/bits/wchar.h support.h /usr/include/stdlib.h
-mbrpart.o: /usr/include/bits/waitflags.h /usr/include/bits/waitstatus.h
-mbrpart.o: /usr/include/endian.h /usr/include/bits/endian.h
-mbrpart.o: /usr/include/bits/byteswap.h /usr/include/sys/types.h
-mbrpart.o: /usr/include/bits/types.h /usr/include/bits/typesizes.h
-mbrpart.o: /usr/include/time.h /usr/include/sys/select.h
-mbrpart.o: /usr/include/bits/select.h /usr/include/bits/sigset.h
-mbrpart.o: /usr/include/bits/time.h /usr/include/sys/sysmacros.h
-mbrpart.o: /usr/include/bits/pthreadtypes.h /usr/include/alloca.h mbrpart.h
-parttypes.o: /usr/include/string.h /usr/include/features.h
-parttypes.o: /usr/include/sys/cdefs.h /usr/include/bits/wordsize.h
-parttypes.o: /usr/include/gnu/stubs.h /usr/include/gnu/stubs-64.h
-parttypes.o: /usr/include/xlocale.h /usr/include/stdint.h
-parttypes.o: /usr/include/bits/wchar.h /usr/include/stdio.h
-parttypes.o: /usr/include/bits/types.h /usr/include/bits/typesizes.h
-parttypes.o: /usr/include/libio.h /usr/include/_G_config.h
-parttypes.o: /usr/include/wchar.h /usr/include/bits/stdio_lim.h
-parttypes.o: /usr/include/bits/sys_errlist.h parttypes.h
-parttypes.o: /usr/include/stdlib.h /usr/include/bits/waitflags.h
-parttypes.o: /usr/include/bits/waitstatus.h /usr/include/endian.h
-parttypes.o: /usr/include/bits/endian.h /usr/include/bits/byteswap.h
-parttypes.o: /usr/include/sys/types.h /usr/include/time.h
-parttypes.o: /usr/include/sys/select.h /usr/include/bits/select.h
-parttypes.o: /usr/include/bits/sigset.h /usr/include/bits/time.h
-parttypes.o: /usr/include/sys/sysmacros.h /usr/include/bits/pthreadtypes.h
-parttypes.o: /usr/include/alloca.h /usr/include/unicode/ustream.h
-parttypes.o: /usr/include/unicode/unistr.h /usr/include/unicode/utypes.h
-parttypes.o: /usr/include/unicode/umachine.h /usr/include/unicode/ptypes.h
-parttypes.o: /usr/include/unicode/platform.h /usr/include/inttypes.h
-parttypes.o: /usr/include/unicode/urename.h /usr/include/unicode/uvernum.h
-parttypes.o: /usr/include/unicode/utf.h /usr/include/unicode/utf8.h
-parttypes.o: /usr/include/unicode/utf16.h /usr/include/unicode/utf_old.h
-parttypes.o: /usr/include/unicode/uversion.h /usr/include/unicode/uconfig.h
-parttypes.o: /usr/include/unicode/rep.h /usr/include/unicode/uobject.h
-parttypes.o: /usr/include/unicode/std_string.h
-parttypes.o: /usr/include/unicode/stringpiece.h
-parttypes.o: /usr/include/unicode/bytestream.h support.h guid.h
-parttypes.o: /usr/include/uuid/uuid.h /usr/include/sys/time.h
-sgdisk.o: /usr/include/stdio.h /usr/include/features.h
-sgdisk.o: /usr/include/sys/cdefs.h /usr/include/bits/wordsize.h
-sgdisk.o: /usr/include/gnu/stubs.h /usr/include/gnu/stubs-64.h
-sgdisk.o: /usr/include/bits/types.h /usr/include/bits/typesizes.h
-sgdisk.o: /usr/include/libio.h /usr/include/_G_config.h /usr/include/wchar.h
-sgdisk.o: /usr/include/bits/stdio_lim.h /usr/include/bits/sys_errlist.h
-sgdisk.o: /usr/include/popt.h /usr/include/errno.h /usr/include/bits/errno.h
-sgdisk.o: /usr/include/linux/errno.h /usr/include/asm/errno.h
-sgdisk.o: /usr/include/asm-generic/errno.h
-sgdisk.o: /usr/include/asm-generic/errno-base.h /usr/include/stdint.h
-sgdisk.o: /usr/include/bits/wchar.h /usr/include/string.h
-sgdisk.o: /usr/include/xlocale.h mbr.h /usr/include/sys/types.h
-sgdisk.o: /usr/include/time.h /usr/include/endian.h
-sgdisk.o: /usr/include/bits/endian.h /usr/include/bits/byteswap.h
-sgdisk.o: /usr/include/sys/select.h /usr/include/bits/select.h
-sgdisk.o: /usr/include/bits/sigset.h /usr/include/bits/time.h
-sgdisk.o: /usr/include/sys/sysmacros.h /usr/include/bits/pthreadtypes.h
-sgdisk.o: gptpart.h support.h /usr/include/stdlib.h
-sgdisk.o: /usr/include/bits/waitflags.h /usr/include/bits/waitstatus.h
-sgdisk.o: /usr/include/alloca.h parttypes.h /usr/include/unicode/ustream.h
-sgdisk.o: /usr/include/unicode/unistr.h /usr/include/unicode/utypes.h
-sgdisk.o: /usr/include/unicode/umachine.h /usr/include/unicode/ptypes.h
-sgdisk.o: /usr/include/unicode/platform.h /usr/include/inttypes.h
-sgdisk.o: /usr/include/unicode/urename.h /usr/include/unicode/uvernum.h
-sgdisk.o: /usr/include/unicode/utf.h /usr/include/unicode/utf8.h
-sgdisk.o: /usr/include/unicode/utf16.h /usr/include/unicode/utf_old.h
-sgdisk.o: /usr/include/unicode/uversion.h /usr/include/unicode/uconfig.h
-sgdisk.o: /usr/include/unicode/rep.h /usr/include/unicode/uobject.h
-sgdisk.o: /usr/include/unicode/std_string.h
-sgdisk.o: /usr/include/unicode/stringpiece.h
-sgdisk.o: /usr/include/unicode/bytestream.h guid.h /usr/include/uuid/uuid.h
-sgdisk.o: /usr/include/sys/time.h attributes.h diskio.h
-sgdisk.o: /usr/include/sys/ioctl.h /usr/include/bits/ioctls.h
-sgdisk.o: /usr/include/asm/ioctls.h /usr/include/asm-generic/ioctls.h
-sgdisk.o: /usr/include/linux/ioctl.h /usr/include/asm/ioctl.h
-sgdisk.o: /usr/include/asm-generic/ioctl.h /usr/include/bits/ioctl-types.h
-sgdisk.o: /usr/include/sys/ttydefaults.h basicmbr.h mbrpart.h gpt.h bsd.h
-support.o: /usr/include/stdio.h /usr/include/features.h
-support.o: /usr/include/sys/cdefs.h /usr/include/bits/wordsize.h
-support.o: /usr/include/gnu/stubs.h /usr/include/gnu/stubs-64.h
-support.o: /usr/include/bits/types.h /usr/include/bits/typesizes.h
-support.o: /usr/include/libio.h /usr/include/_G_config.h /usr/include/wchar.h
-support.o: /usr/include/bits/stdio_lim.h /usr/include/bits/sys_errlist.h
-support.o: /usr/include/stdint.h /usr/include/bits/wchar.h
-support.o: /usr/include/errno.h /usr/include/bits/errno.h
-support.o: /usr/include/linux/errno.h /usr/include/asm/errno.h
-support.o: /usr/include/asm-generic/errno.h
-support.o: /usr/include/asm-generic/errno-base.h /usr/include/fcntl.h
-support.o: /usr/include/bits/fcntl.h /usr/include/sys/types.h
-support.o: /usr/include/time.h /usr/include/endian.h
-support.o: /usr/include/bits/endian.h /usr/include/bits/byteswap.h
-support.o: /usr/include/sys/select.h /usr/include/bits/select.h
-support.o: /usr/include/bits/sigset.h /usr/include/bits/time.h
-support.o: /usr/include/sys/sysmacros.h /usr/include/bits/pthreadtypes.h
-support.o: /usr/include/bits/stat.h /usr/include/string.h
-support.o: /usr/include/xlocale.h /usr/include/sys/stat.h support.h
-support.o: /usr/include/stdlib.h /usr/include/bits/waitflags.h
-support.o: /usr/include/bits/waitstatus.h /usr/include/alloca.h
-test.o: /usr/include/stdio.h /usr/include/features.h /usr/include/sys/cdefs.h
-test.o: /usr/include/bits/wordsize.h /usr/include/gnu/stubs.h
-test.o: /usr/include/gnu/stubs-64.h /usr/include/bits/types.h
-test.o: /usr/include/bits/typesizes.h /usr/include/libio.h
-test.o: /usr/include/_G_config.h /usr/include/wchar.h
-test.o: /usr/include/bits/stdio_lim.h /usr/include/bits/sys_errlist.h
-test.o: support.h /usr/include/stdint.h /usr/include/bits/wchar.h
-test.o: /usr/include/stdlib.h /usr/include/bits/waitflags.h
-test.o: /usr/include/bits/waitstatus.h /usr/include/endian.h
-test.o: /usr/include/bits/endian.h /usr/include/bits/byteswap.h
-test.o: /usr/include/sys/types.h /usr/include/time.h
-test.o: /usr/include/sys/select.h /usr/include/bits/select.h
-test.o: /usr/include/bits/sigset.h /usr/include/bits/time.h
-test.o: /usr/include/sys/sysmacros.h /usr/include/bits/pthreadtypes.h
-test.o: /usr/include/alloca.h
-testguid.o: guid.h /usr/include/stdint.h /usr/include/features.h
-testguid.o: /usr/include/sys/cdefs.h /usr/include/bits/wordsize.h
-testguid.o: /usr/include/gnu/stubs.h /usr/include/gnu/stubs-64.h
-testguid.o: /usr/include/bits/wchar.h /usr/include/uuid/uuid.h
-testguid.o: /usr/include/sys/types.h /usr/include/bits/types.h
-testguid.o: /usr/include/bits/typesizes.h /usr/include/time.h
-testguid.o: /usr/include/endian.h /usr/include/bits/endian.h
-testguid.o: /usr/include/bits/byteswap.h /usr/include/sys/select.h
-testguid.o: /usr/include/bits/select.h /usr/include/bits/sigset.h
-testguid.o: /usr/include/bits/time.h /usr/include/sys/sysmacros.h
-testguid.o: /usr/include/bits/pthreadtypes.h /usr/include/sys/time.h
-testguid.o: parttypes.h /usr/include/stdlib.h /usr/include/bits/waitflags.h
-testguid.o: /usr/include/bits/waitstatus.h /usr/include/alloca.h
-testguid.o: /usr/include/unicode/ustream.h /usr/include/unicode/unistr.h
-testguid.o: /usr/include/unicode/utypes.h /usr/include/unicode/umachine.h
-testguid.o: /usr/include/unicode/ptypes.h /usr/include/unicode/platform.h
-testguid.o: /usr/include/inttypes.h /usr/include/unicode/urename.h
-testguid.o: /usr/include/unicode/uvernum.h /usr/include/unicode/utf.h
-testguid.o: /usr/include/unicode/utf8.h /usr/include/unicode/utf16.h
-testguid.o: /usr/include/unicode/utf_old.h /usr/include/unicode/uversion.h
-testguid.o: /usr/include/unicode/uconfig.h /usr/include/unicode/rep.h
-testguid.o: /usr/include/unicode/uobject.h /usr/include/unicode/std_string.h
-testguid.o: /usr/include/unicode/stringpiece.h
-testguid.o: /usr/include/unicode/bytestream.h support.h
diff --git a/Makefile.freebsd b/Makefile.freebsd
index 783dd7d..b0258f8 100644
--- a/Makefile.freebsd
+++ b/Makefile.freebsd
@@ -1,7 +1,8 @@
 CC=gcc
 CXX=g++
 CFLAGS+=-D_FILE_OFFSET_BITS=64
-CXXFLAGS+=-Wall -D_FILE_OFFSET_BITS=64 -I/usr/local/include
+CXXFLAGS+=-Wall -D_FILE_OFFSET_BITS=64 -D USE_UTF16 -I/usr/local/include
+#CXXFLAGS+=-Wall -D_FILE_OFFSET_BITS=64 -I /usr/local/include 
 LDFLAGS+=
 LIB_NAMES=crc32 support guid gptpart mbrpart basicmbr mbr gpt bsd parttypes attributes diskio diskio-unix
 MBR_LIBS=support diskio diskio-unix basicmbr mbrpart
@@ -14,9 +15,11 @@ all:	gdisk sgdisk fixparts
 
 gdisk:	$(LIB_OBJS) gdisk.o gpttext.o
 	$(CXX) $(LIB_OBJS) gdisk.o gpttext.o -L/usr/local/lib $(LDFLAGS) -licuio -luuid -o gdisk
+#	$(CXX) $(LIB_OBJS) gdisk.o gpttext.o -L/usr/local/lib $(LDFLAGS) -luuid -o gdisk
 
 sgdisk: $(LIB_OBJS) sgdisk.o
 	$(CXX) $(LIB_OBJS) sgdisk.o -L/usr/local/lib $(LDFLAGS) -luuid -licuio -lpopt -o sgdisk
+#	$(CXX) $(LIB_OBJS) sgdisk.o -L/usr/local/lib $(LDFLAGS) -luuid -lpopt -o sgdisk
 
 fixparts: $(MBR_LIB_OBJS) fixparts.o
 	$(CXX) $(MBR_LIB_OBJS) fixparts.o -L/usr/local/lib $(LDFLAGS) -o fixparts
diff --git a/Makefile.mac b/Makefile.mac
index 3793624..4ab08e1 100644
--- a/Makefile.mac
+++ b/Makefile.mac
@@ -1,7 +1,8 @@
 CC=gcc
 CXX=g++
 CFLAGS=-O2 -D_FILE_OFFSET_BITS=64 -g
-CXXFLAGS=-O2 -Wall -D_FILE_OFFSET_BITS=64 -I /usr/local/include -I/opt/local/include -g
+CXXFLAGS=-O2 -Wall -D_FILE_OFFSET_BITS=64 -D USE_UTF16 -I/sw/include -I/usr/local/include -I/opt/local/include -g
+#CXXFLAGS=-O2 -Wall -D_FILE_OFFSET_BITS=64 -I /usr/local/include -I/opt/local/include -g
 LIB_NAMES=crc32 support guid gptpart mbrpart basicmbr mbr gpt bsd parttypes attributes diskio diskio-unix
 MBR_LIBS=support diskio diskio-unix basicmbr mbrpart
 #LIB_SRCS=$(NAMES:=.cc)
@@ -12,11 +13,13 @@ DEPEND= makedepend $(CFLAGS)
 
 all:	gdisk sgdisk fixparts
 
-gdisk:	$(LIB_OBJS) gpttext.o gdisk.o 
-	$(CXX) $(LIB_OBJS) -L/usr/local/lib -licuuc -licuio -licudata gpttext.o gdisk.o -o gdisk
+gdisk:	$(LIB_OBJS) gpttext.o gdisk.o
+#	$(CXX) $(LIB_OBJS) gpttext.o gdisk.o -o gdisk
+	$(CXX) $(LIB_OBJS) -L/usr/lib -licucore gpttext.o gdisk.o -o gdisk
 
 sgdisk: $(LIB_OBJS) sgdisk.o
-	$(CXX) $(LIB_OBJS) sgdisk.o -L/opt/local/lib -L/usr/local/lib -licudata -licuio -licuuc -lpopt -o sgdisk
+#	$(CXX) $(LIB_OBJS) sgdisk.o -L/sw/lib -lpopt -o sgdisk
+	$(CXX) $(LIB_OBJS) sgdisk.o -L/sw/lib -licucore -lpopt -o sgdisk
 
 fixparts: $(MBR_LIB_OBJS) fixparts.o
 	$(CXX) $(MBR_LIB_OBJS) fixparts.o $(LDFLAGS) -o fixparts
diff --git a/Makefile.mingw b/Makefile.mingw
index 70c8eda..e6da082 100644
--- a/Makefile.mingw
+++ b/Makefile.mingw
@@ -15,7 +15,7 @@ DEPEND= makedepend $(CFLAGS)
 all:	gdisk fixparts
 
 gdisk:	$(LIB_OBJS) gdisk.o gpttext.o
-	$(CXX) $(LIB_OBJS) gdisk.o gpttext.o -luuid -static-libgcc -o gdisk.exe
+	$(CXX) $(LIB_OBJS) gdisk.o gpttext.o -lrpcrt4 -static-libgcc -o gdisk.exe
 
 sgdisk: $(LIB_OBJS) sgdisk.o
 	$(CXX) $(LIB_OBJS) sgdisk.o -lpopt -static-libgcc -o sgdisk.exe
diff --git a/NEWS b/NEWS
index b0815fa..07dd807 100644
--- a/NEWS
+++ b/NEWS
@@ -1,6 +1,31 @@
-0.7.2 (?/??/2011):
+0.7.2 (6/26/2011):
 ------------------
 
+- The Windows version now (finally!) generates proper GUIDs rather than a
+  purely random number. This fixes a bug that caused Windows 7 to crash
+  when converting a disk from MBR format (but, oddly, not when creating a
+  fresh partition table or doing various other things).
+
+- Added a warning when an MBR partition is discarded because it's too
+  big for the disk.
+
+- Changed warning to Windows users about the dangers of converting to GPT
+  so that it appears only on disks that aren't already in GPT form.
+
+- Fixed bug that caused bogus "3" values to pad the ends of partition names
+  on some disks (particularly those created by Microsoft's disk
+  partitioning tools).
+
+- Made compilation without Unicode support possible (see README file)
+
+- Made default filesystem type code OS-dependent (based on the compilation
+  platform).
+
+- Added new Linux-only filesystem partition type GUID code,
+  0FC63DAF-8483-4772-8E79-3D69D8477DE4 (8300 entry code). Also changed name
+  of the EBD0A0A2-B9E5-4433-87C0-68B6B72699C7 (0700 entry code) to
+  "Microsoft basic data").
+
 - Fixed a bug that caused an incorrect code to be set for active/bootable
   partitions when generating a hybrid MBR.
 
diff --git a/README b/README
index 3449210..e818c2c 100644
--- a/README
+++ b/README
@@ -160,19 +160,26 @@ used.) In addition, note these requirements:
   called uuid-dev or something similar to get the headers. On FreeBSD, the
   e2fsprogs-libuuid port must be installed.
 
-* The ICU library (http://site.icu-project.org) is required on all
-  platforms except Windows. This library is normally installed in Linux,
-  but you may need to install the development headers (libicu-dev or
-  something similar).
+* The ICU library (http://site.icu-project.org), which provides support for
+  Unicode partition names, is recommended on all
+  platforms except Windows. This library is normally installed in Linux and
+  OS X, but you may need to install the development headers (libicu-dev or
+  something similar in Linux; or the libicu36-dev Fink package in OS X). To
+  compile without ICU support, you must modify the Makefile: Remove the
+  "-D USE_UTF16" part from the CXXFLAGS line and remove references to
+  -licuio, -licuuc, -licudata, and -licucore (details vary between
+  platforms) from the compilation options. Suitable lines are present, but
+  commented out, in the Makefile, Makefile.mac, and Makefile.bsd files.
 
 * The sgdisk program also requires the popt library and its development
   files (headers). Most Linux distributions install popt by default, but
   you may need to install a package called popt-dev, popt-devel, or
   something similar to obtain the header files. Mac OS users can find a
-  version of popt for Mac OS from http://popt.darwinports.com; however,
-  you'll first need to install DarwinPorts (instructions exist on the
-  preceding page). Alternatively, you can compile gdisk alone, without
-  sgdisk; gdisk doesn't require popt.
+  version of popt for Mac OS from Drawin Ports (http://popt.darwinports.com)
+  or Fink (http://www.finkproject.org); however, you'll first need to
+  install DarwinPorts or Fink (instructions exist on the relevant projects'
+  pages). Alternatively, you can compile gdisk alone, without sgdisk; gdisk
+  doesn't require popt.
 
 When all the necessary development tools and libraries are installed, you
 can uncompress the package and type "make" at the command prompt in the
@@ -192,17 +199,17 @@ Caveats
 
 THIS SOFTWARE IS BETA SOFTWARE! IF IT WIPES OUT YOUR HARD DISK OR EATS YOUR
 CAT, DON'T BLAME ME! To date, I've tested the software on several USB flash
-drives, a handful of PATA and SATA hard disks, and several virtual disks in
-the QEMU and VirtualBox environments. Many others have now used the
-software on their computers, as well. I believe all data-corruption bugs to
-be squashed, but I know full well that the odds of my missing something are
-high. This is particularly true for large drives; my only direct testing
-with such disks is with virtual QEMU disks. I've received user reports of
-success with RAID arrays over 2TiB in size, though.
+drives, physical hard disks, and virtual disks in the QEMU and VirtualBox
+environments. Many others have now used the software on their computers, as
+well. I believe all data-corruption bugs to be squashed, but I know full well
+that the odds of my missing something are high. This is particularly true for
+large (over-2TiB) drives; my only direct testing with such disks is with
+virtual QEMU and VirtualBox disks. I've received user reports of success with
+RAID arrays over 2TiB in size, though.
 
 My main development platform is a system running the 64-bit version of
 Gentoo Linux (previously Ubuntu 8.04). I've also tested on several other
-32- and 64-bit Linux distributions Intel-based Mac OS X 10.5 and 10.6,
+32- and 64-bit Linux distributions, Intel-based Mac OS X 10.5 and 10.6,
 64-bit FreeBSD 7.1, and Windows 7.
 
 Redistribution
diff --git a/basicmbr.cc b/basicmbr.cc
index 54b4809..4f193e2 100644
--- a/basicmbr.cc
+++ b/basicmbr.cc
@@ -130,9 +130,9 @@ int BasicMBRData::ReadMBRData(const string & deviceFilename) {
 
 // Read data from MBR. If checkBlockSize == 1 (the default), the block
 // size is checked; otherwise it's set to the default (512 bytes).
-// Note that any extended partition(s) present will be explicitly stored
-// in the partitions[] array, along with their contained partitions; the
-// extended container partition(s) should be ignored by other functions.
+// Note that any extended partition(s) present will be omitted from
+// in the partitions[] array; these partitions must be re-created when
+// the partition table is saved in MBR format.
 int BasicMBRData::ReadMBRData(DiskIO * theDisk, int checkBlockSize) {
    int allOK = 1, i, logicalNum = 0;
    int err = 1;
@@ -1100,7 +1100,8 @@ void BasicMBRData::SortMBR(int start) {
 
 // Delete any partitions that are too big to fit on the disk
 // or that are too big for MBR (32-bit limits).
-// This really deletes the partitions by setting values to 0.
+// This deletes the partitions by setting values to 0, not just
+// by setting them as being omitted.
 // Returns the number of partitions deleted in this way.
 int BasicMBRData::DeleteOversizedParts() {
    int num = 0, i;
@@ -1108,6 +1109,8 @@ int BasicMBRData::DeleteOversizedParts() {
    for (i = 0; i < MAX_MBR_PARTS; i++) {
       if ((partitions[i].GetStartLBA() > diskSize) || (partitions[i].GetLastLBA() > diskSize) ||
           (partitions[i].GetStartLBA() > UINT32_MAX) || (partitions[i].GetLengthLBA() > UINT32_MAX)) {
+         cerr << "\aWarning: Deleting oversized partition #" << i + 1 << "! Start = "
+              << partitions[i].GetStartLBA() << ", length = " << partitions[i].GetLengthLBA() << "\n";
          partitions[i].Empty();
          num++;
       } // if
diff --git a/bsd.cc b/bsd.cc
index 8524d5b..f487f18 100644
--- a/bsd.cc
+++ b/bsd.cc
@@ -323,7 +323,7 @@ GPTPart BSDData::AsGPT(int i) {
          case 27: // FreeBSD ZFS
             guid.SetType(0xa504); break;
          default:
-            guid.SetType(0x0700); break;
+            guid.SetType(0xa503); break;
       } // switch
       // Set the partition name to the name of the type code....
       guid.SetName(guid.GetTypeName());
diff --git a/current.spec b/current.spec
index b0fa691..109285c 100644
--- a/current.spec
+++ b/current.spec
@@ -1,11 +1,11 @@
 Summary: GPT partitioning and MBR repair software
 Name: gptfdisk
-Version: 0.7.1
+Version: 0.7.2
 Release: 1%{?dist}
 License: GPLv2
 URL: http://www.rodsbooks.com/gdisk
 Group: Applications/System
-Source: http://www.rodsbooks.com/gdisk/gptfdisk-0.7.1.tgz
+Source: http://www.rodsbooks.com/gdisk/gptfdisk-0.7.2.tar.gz
 BuildRoot: %(mktemp -ud %{_tmppath}/%{name}-%{version}-%{release}-XXXXXX)
 
 %description
@@ -77,5 +77,5 @@ provides a few additional partition manipulation features.
 
 
 %changelog
-* Mon Mar 21 2011 R Smith <rodsmith@rodsbooks.com> - 0.7.1
-- Created spec file for 0.7.1 release
+* Sun Jun 26 2011 R Smith <rodsmith@rodsbooks.com> - 0.7.2
+- Created spec file for 0.7.2 release
diff --git a/diskio-unix.cc b/diskio-unix.cc
index 327a498..03fc3c8 100644
--- a/diskio-unix.cc
+++ b/diskio-unix.cc
@@ -230,7 +230,8 @@ void DiskIO::DiskSync(void) {
       platformFound++;
 #endif
 #ifdef __linux__
-      sleep(2);
+      sleep(1); // Theoretically unnecessary, but ioctl() fails sometimes if omitted....
+      fsync(fd);
       i = ioctl(fd, BLKRRPART);
       if (i)
          cout << "Warning: The kernel is still using the old partition table.\n"
diff --git a/fixparts.8 b/fixparts.8
index 23970fb..e8bd74f 100644
--- a/fixparts.8
+++ b/fixparts.8
@@ -1,6 +1,6 @@
 .\" Copyright 2011 Roderick W. Smith (rodsmith@rodsbooks.com)
 .\" May be distributed under the GNU General Public License
-.TH "FIXPARTS" "8" "0.7.1" "Roderick W. Smith" "FixParts Manual"
+.TH "FIXPARTS" "8" "0.7.2" "Roderick W. Smith" "FixParts Manual"
 .SH "NAME"
 fixparts \- MBR partition table repair utility
 .SH "SYNOPSIS"
@@ -202,7 +202,7 @@ see a summary of available options.
 .PP 
 
 .SH "BUGS"
-As of March 2011 (version 0.7.1), \fBfixparts\fR
+As of June 2011 (version 0.7.2), \fBfixparts\fR
 should be considered beta software. Known bugs and limitations include:
 
 .TP 
diff --git a/gdisk.8 b/gdisk.8
index 3368c71..850b459 100644
--- a/gdisk.8
+++ b/gdisk.8
@@ -1,6 +1,6 @@
 .\" Copyright 2011 Roderick W. Smith (rodsmith@rodsbooks.com)
 .\" May be distributed under the GNU General Public License
-.TH "GDISK" "8" "0.7.1" "Roderick W. Smith" "GPT fdisk Manual"
+.TH "GDISK" "8" "0.7.2" "Roderick W. Smith" "GPT fdisk Manual"
 .SH "NAME"
 gdisk \- Interactive GUID partition table (GPT) manipulator
 .SH "SYNOPSIS"
@@ -177,19 +177,19 @@ displays this information for a single partition.
 
 .TP 
 .B l
-Display a summary of partition types. GPT uses a GUID to identify
-partition types for particular OSes and purposes. For ease of data entry,
-\fBgdisk\fR compresses these into two\-byte (four\-digit hexadecimal)
-values that are related to their equivalent MBR codes. Specifically, the
-MBR code is multiplied by hexadecimal 0x0100. For instance, the code for
-Linux swap space in MBR is 0x82, and it's 0x8200 in \fBgdisk\fR.
-A one\-to\-one correspondence is impossible, though. Most notably, many DOS,
-Windows, and Linux data partition codes correspond to a single GPT code
-(entered as 0x0700 in \fBgdisk\fR). Some OSes use a single MBR code but
-employ many more codes in GPT. For these, \fBgdisk\fR
-adds code numbers sequentially, such as 0xa500 for a FreeBSD disklabel,
-0xa501 for FreeBSD boot, 0xa502 for FreeBSD swap, and so on. Note that
-these two\-byte codes are unique to \fBgdisk\fR.
+Display a summary of partition types. GPT uses a GUID to identify partition
+types for particular OSes and purposes. For ease of data entry, \fBgdisk\fR
+compresses these into two\-byte (four\-digit hexadecimal) values that are
+related to their equivalent MBR codes. Specifically, the MBR code is
+multiplied by hexadecimal 0x0100. For instance, the code for Linux swap
+space in MBR is 0x82, and it's 0x8200 in \fBgdisk\fR. A one\-to\-one
+correspondence is impossible, though. Most notably, the codes for all
+varieties of FAT and NTFS partition correspond to a single GPT code
+(entered as 0x0700 in \fBsgdisk\fR). Some OSes use a single MBR code but
+employ many more codes in GPT. For these, \fBgdisk\fR adds code numbers
+sequentially, such as 0xa500 for a FreeBSD disklabel, 0xa501 for FreeBSD
+boot, 0xa502 for FreeBSD swap, and so on. Note that these two\-byte codes
+are unique to \fBgdisk\fR.
 
 .TP 
 .B n
@@ -561,7 +561,7 @@ entering data. When only one option is possible, \fBgdisk\fR
 usually bypasses the prompt entirely.
 
 .SH "BUGS"
-As of March 2011 (version 0.7.1), \fBgdisk\fR
+As of June 2011 (version 0.7.2), \fBgdisk\fR
 should be considered beta software. Known bugs and limitations include:
 
 .TP 
diff --git a/gdisk.cc b/gdisk.cc
index 22de86b..98d4980 100644
--- a/gdisk.cc
+++ b/gdisk.cc
@@ -38,19 +38,22 @@ int main(int argc, char* argv[]) {
 
    switch (argc) {
       case 1:
-         WinWarning();
          cout << "Type device filename, or press <Enter> to exit: ";
          device = ReadString();
          if (device.length() == 0)
             exit(0);
          else if (theGPT.LoadPartitions(device)) {
+            if (theGPT.GetState() != use_gpt)
+               WinWarning();
             MainMenu(device, &theGPT);
          } // if/elseif
          break;
       case 2: // basic usage
-         WinWarning();
-         if (theGPT.LoadPartitions(argv[1]))
+         if (theGPT.LoadPartitions(argv[1])) {
+            if (theGPT.GetState() != use_gpt)
+               WinWarning();
             MainMenu(argv[1], &theGPT);
+         } // if
          break;
       case 3: // usage with "-l" option
          if (strcmp(argv[1], "-l") == 0) {
@@ -433,8 +436,8 @@ void WinWarning(void) {
    cout << "\a************************************************************************\n"
    << "Most versions of Windows cannot boot from a GPT disk, and most varieties\n"
    << "prior to Vista cannot read GPT disks. Therefore, you should exit now\n"
-   << "unless you understand the implications of converting MBR to GPT, editing\n"
-   << "an existing GPT disk, or creating a new GPT disk layout!\n"
+   << "unless you understand the implications of converting MBR to GPT or creating\n"
+   << "a new GPT disk layout!\n"
    << "************************************************************************\n\n";
    cout << "Are you SURE you want to continue? ";
    if (GetYN() != 'Y')
diff --git a/gpt.cc b/gpt.cc
index 4889c37..c28e39d 100644
--- a/gpt.cc
+++ b/gpt.cc
@@ -1669,7 +1669,7 @@ uint32_t GPTData::CreatePartition(uint32_t partNum, uint64_t startSector, uint64
          if (FindLastInFree(startSector) >= endSector) {
             partitions[partNum].SetFirstLBA(startSector);
             partitions[partNum].SetLastLBA(endSector);
-            partitions[partNum].SetType(0x0700);
+            partitions[partNum].SetType(DEFAULT_TYPE);
             partitions[partNum].RandomizeUniqueGUID();
          } else retval = 0; // if free space until endSector
       } else retval = 0; // if startSector is free
@@ -1858,10 +1858,9 @@ void GPTData::RecomputeCHS(void) {
 // was unchanged.
 int GPTData::Align(uint64_t* sector) {
    int retval = 0, sectorOK = 0;
-   uint64_t earlier, later, testSector, original;
+   uint64_t earlier, later, testSector;
 
    if ((*sector % sectorAlignment) != 0) {
-      original = *sector;
       earlier = (*sector / sectorAlignment) * sectorAlignment;
       later = earlier + (uint64_t) sectorAlignment;
 
diff --git a/gpt.h b/gpt.h
index c4c5881..d8c2a43 100644
--- a/gpt.h
+++ b/gpt.h
@@ -155,9 +155,10 @@ public:
    void MakeProtectiveMBR(void) {protectiveMBR.MakeProtectiveMBR();}
    void RecomputeCHS(void);
    int Align(uint64_t* sector);
-
-   // Return data about the GPT structures....
    void SetProtectiveMBR(BasicMBRData & newMBR) {protectiveMBR = newMBR;}
+   
+   // Return data about the GPT structures....
+   WhichToUse GetState(void) {return whichWasUsed;}
    int GetPartRange(uint32_t* low, uint32_t* high);
    int FindFirstFreePart(void);
    uint32_t GetNumParts(void) {return mainHeader.numParts;}
diff --git a/gptpart.cc b/gptpart.cc
index 838680b..130add0 100644
--- a/gptpart.cc
+++ b/gptpart.cc
@@ -15,7 +15,7 @@
 #define __STDC_LIMIT_MACROS
 #define __STDC_CONSTANT_MACROS
 
-#ifndef _WIN32
+#ifdef USE_UTF16
 #include <unicode/ustdio.h>
 #else
 #define UnicodeString string
@@ -68,7 +68,7 @@ uint64_t GPTPart::GetLengthLBA(void) const {
    return length;
 } // GPTPart::GetLengthLBA()
 
-#ifndef _WIN32
+#ifdef USE_UTF16
 // Return partition's name field, converted to a Unicode string
 UnicodeString GPTPart::GetDescription(void) {
    return (UChar*) name;
@@ -77,13 +77,13 @@ UnicodeString GPTPart::GetDescription(void) {
 // Return partition's name field, converted to a C++ ASCII string
 string GPTPart::GetDescription(void) {
    string theName;
-   int i;
+   int i = 0;
 
    theName = "";
-   for (i = 0; i < NAME_SIZE; i += 2) {
-      if (name[i] != '\0')
-         theName += name[i];
-   } // for
+   while ((i < NAME_SIZE) && (name[i] != '\0')) {
+      theName += name[i];
+      i+=2;
+   } // while
    return theName;
 } // GPTPart::GetDescription() (Windows version)
 #endif
@@ -103,7 +103,7 @@ void GPTPart::SetType(PartType t) {
    partitionType = t;
 } // GPTPart::SetType()
 
-#ifndef _WIN32
+#ifdef USE_UTF16
 // Set the name for a partition to theName, using a C++-style string as
 // input.
 void GPTPart::SetName(const string & theName) {
@@ -120,7 +120,9 @@ void GPTPart::SetName(const UnicodeString & theName) {
       theName.extractBetween(0, NAME_SIZE / 2 - 1, (UChar*) name);
    } // if/else
 } // GPTPart::SetName()
+
 #else
+
 // Set the name for a partition to theName. Note that theName is a
 // standard C++-style ASCII string, although the GUID partition definition
 // requires a UTF-16LE string. This function creates a simple-minded copy
@@ -190,7 +192,7 @@ void GPTPart::ShowSummary(int partNum, uint32_t blockSize) {
       cout.setf(ios::uppercase);
       cout << hex << partitionType.GetHexType() << "  " << dec;
       cout.fill(' ');
-#ifndef _WIN32
+#ifdef USE_UTF16
       GetDescription().extractBetween(0, 23, description);
       cout << description << "\n";
 #else
@@ -273,13 +275,13 @@ void GPTPart::ChangeType(void) {
 
    cout << "Current type is '" << GetTypeName() << "'\n";
    do {
-      cout << "Hex code or GUID (L to show codes, Enter = 0700): ";
+      cout << "Hex code or GUID (L to show codes, Enter = " << hex << DEFAULT_TYPE << dec << "): ";
       line = ReadString();
       if ((line[0] == 'L') || (line[0] == 'l')) {
          partitionType.ShowAllTypes();
       } else {
          if (line.length() == 0)
-            tempType = 0x0700;
+            tempType= DEFAULT_TYPE;
          else
             tempType = line;
       } // if/else
diff --git a/gptpart.h b/gptpart.h
index 2686229..cdfce2a 100644
--- a/gptpart.h
+++ b/gptpart.h
@@ -74,7 +74,7 @@ class GPTPart {
       void SetAttributes(uint64_t a) {attributes = a;}
       void SetAttributes(void) {attributes.ChangeAttributes();}
       void SetName(const string & theName);
-#ifndef _WIN32
+#ifdef USE_UTF16
       void SetName(const UnicodeString & theName);
 #endif
       void SetDefaultDescription(void);
diff --git a/guid.cc b/guid.cc
index 4073375..6abc16e 100644
--- a/guid.cc
+++ b/guid.cc
@@ -128,20 +128,35 @@ void GUIDData::Zero(void) {
 // Set a completely random GUID value....
 // The uuid_generate() function returns a value that needs to have its
 // first three fields byte-reversed to conform to Intel's GUID layout.
-// If that function isn't defined (e.g., on Windows), set a completely
-// random GUID -- not completely kosher, but it doesn't seem to cause
-// any problems (so far...)
+// The Windows UuidCreate() function doesn't need this adjustment. If
+// neither function is defined, or if UuidCreate() fails, set a completely
+// random GUID -- not completely kosher, but it works on most platforms
+// (immediately after creating the UUID on Windows 7 being an important
+// exception).
 void GUIDData::Randomize(void) {
+   int i, uuidGenerated = 0;
+
 #ifdef _UUID_UUID_H
    uuid_generate(uuidData);
    ReverseBytes(&uuidData[0], 4);
    ReverseBytes(&uuidData[4], 2);
    ReverseBytes(&uuidData[6], 2);
-#else
-   int i;
-   for (i = 0; i < 16; i++)
-      uuidData[i] = (unsigned char) (256.0 * (rand() / (RAND_MAX + 1.0)));
+   uuidGenerated = 1;
+#endif
+#if defined (_RPC_H) || defined (__RPC_H__)
+   UUID MsUuid;
+   if (UuidCreate(&MsUuid) == RPC_S_OK) {
+      memcpy(uuidData, &MsUuid, 16);
+      uuidGenerated = 1;
+   } // if
 #endif
+
+   if (!uuidGenerated) {
+      cerr << "Warning! Unable to generate a proper UUID! Creating an improper one as a last\n"
+           << "resort! Windows 7 may crash if you save this partition table!\a\n";
+      for (i = 0; i < 16; i++)
+         uuidData[i] = (unsigned char) (256.0 * (rand() / (RAND_MAX + 1.0)));
+   } // if
 } // GUIDData::Randomize
 
 // Equality operator; returns 1 if the GUIDs are equal, 0 if they're unequal
@@ -194,4 +209,4 @@ ostream & operator<<(ostream & os, const GUIDData & data) {
 
    os << data.AsString();
    return os;
-} // GUIDData::operator<<()
\ No newline at end of file
+} // GUIDData::operator<<()
diff --git a/guid.h b/guid.h
index 59e1bc9..6eb6ebf 100644
--- a/guid.h
+++ b/guid.h
@@ -5,7 +5,7 @@
 // Implements the GUIDData data structure and support methods
 //
 //
-// Author: Rod Smith <rodsmith@rodsbooks.com>, (C) 2010
+// Author: Rod Smith <rodsmith@rodsbooks.com>, (C) 2010-2011
 //
 // Copyright: See COPYING file that comes with this distribution
 //
@@ -18,10 +18,14 @@
 #include <string>
 
 // Have to play games with uuid_t since it's defined in incompatible ways
-// for Unix (libuuid) vs. Windows
+// for Unix (libuuid) vs. Windows (in rpc.h)
 #ifdef _WIN32
+#include <rpc.h>
+   #ifdef _MSC_VER
+   #pragma comment(lib, "Rpcrt4.lib")
+   #endif
 typedef unsigned char my_uuid_t[16];
-#else
+#else // Not Windows
 #include <uuid/uuid.h>
 typedef uuid_t my_uuid_t;
 #endif
diff --git a/parttypes.cc b/parttypes.cc
index 8ccc482..d77774d 100644
--- a/parttypes.cc
+++ b/parttypes.cc
@@ -73,21 +73,21 @@ void PartType::AddAllTypes(void) {
    AddType(0x0000, "00000000-0000-0000-0000-000000000000", "Unused entry", 0);
 
    // DOS/Windows partition types, which confusingly Linux also uses in GPT
-   AddType(0x0100, "EBD0A0A2-B9E5-4433-87C0-68B6B72699C7", "Linux/Windows data", 0); // FAT-12
-   AddType(0x0400, "EBD0A0A2-B9E5-4433-87C0-68B6B72699C7", "Linux/Windows data", 0); // FAT-16 < 32M
-   AddType(0x0600, "EBD0A0A2-B9E5-4433-87C0-68B6B72699C7", "Linux/Windows data", 0); // FAT-16
-   AddType(0x0700, "EBD0A0A2-B9E5-4433-87C0-68B6B72699C7", "Linux/Windows data", 1); // NTFS (or HPFS)
-   AddType(0x0b00, "EBD0A0A2-B9E5-4433-87C0-68B6B72699C7", "Linux/Windows data", 0); // FAT-32
-   AddType(0x0c00, "EBD0A0A2-B9E5-4433-87C0-68B6B72699C7", "Linux/Windows data", 0); // FAT-32 LBA
+   AddType(0x0100, "EBD0A0A2-B9E5-4433-87C0-68B6B72699C7", "Microsoft basic data", 0); // FAT-12
+   AddType(0x0400, "EBD0A0A2-B9E5-4433-87C0-68B6B72699C7", "Microsoft basic data", 0); // FAT-16 < 32M
+   AddType(0x0600, "EBD0A0A2-B9E5-4433-87C0-68B6B72699C7", "Microsoft basic data", 0); // FAT-16
+   AddType(0x0700, "EBD0A0A2-B9E5-4433-87C0-68B6B72699C7", "Microsoft basic data", 1); // NTFS (or HPFS)
+   AddType(0x0b00, "EBD0A0A2-B9E5-4433-87C0-68B6B72699C7", "Microsoft basic data", 0); // FAT-32
+   AddType(0x0c00, "EBD0A0A2-B9E5-4433-87C0-68B6B72699C7", "Microsoft basic data", 0); // FAT-32 LBA
    AddType(0x0c01, "E3C9E316-0B5C-4DB8-817D-F92DF00215AE", "Microsoft reserved");
-   AddType(0x0e00, "EBD0A0A2-B9E5-4433-87C0-68B6B72699C7", "Linux/Windows data", 0); // FAT-16 LBA
-   AddType(0x1100, "EBD0A0A2-B9E5-4433-87C0-68B6B72699C7", "Linux/Windows data", 0); // Hidden FAT-12
-   AddType(0x1400, "EBD0A0A2-B9E5-4433-87C0-68B6B72699C7", "Linux/Windows data", 0); // Hidden FAT-16 < 32M
-   AddType(0x1600, "EBD0A0A2-B9E5-4433-87C0-68B6B72699C7", "Linux/Windows data", 0); // Hidden FAT-16
-   AddType(0x1700, "EBD0A0A2-B9E5-4433-87C0-68B6B72699C7", "Linux/Windows data", 0); // Hidden NTFS (or HPFS)
-   AddType(0x1b00, "EBD0A0A2-B9E5-4433-87C0-68B6B72699C7", "Linux/Windows data", 0); // Hidden FAT-32
-   AddType(0x1c00, "EBD0A0A2-B9E5-4433-87C0-68B6B72699C7", "Linux/Windows data", 0); // Hidden FAT-32 LBA
-   AddType(0x1e00, "EBD0A0A2-B9E5-4433-87C0-68B6B72699C7", "Linux/Windows data", 0); // Hidden FAT-16 LBA
+   AddType(0x0e00, "EBD0A0A2-B9E5-4433-87C0-68B6B72699C7", "Microsoft basic data", 0); // FAT-16 LBA
+   AddType(0x1100, "EBD0A0A2-B9E5-4433-87C0-68B6B72699C7", "Microsoft basic data", 0); // Hidden FAT-12
+   AddType(0x1400, "EBD0A0A2-B9E5-4433-87C0-68B6B72699C7", "Microsoft basic data", 0); // Hidden FAT-16 < 32M
+   AddType(0x1600, "EBD0A0A2-B9E5-4433-87C0-68B6B72699C7", "Microsoft basic data", 0); // Hidden FAT-16
+   AddType(0x1700, "EBD0A0A2-B9E5-4433-87C0-68B6B72699C7", "Microsoft basic data", 0); // Hidden NTFS (or HPFS)
+   AddType(0x1b00, "EBD0A0A2-B9E5-4433-87C0-68B6B72699C7", "Microsoft basic data", 0); // Hidden FAT-32
+   AddType(0x1c00, "EBD0A0A2-B9E5-4433-87C0-68B6B72699C7", "Microsoft basic data", 0); // Hidden FAT-32 LBA
+   AddType(0x1e00, "EBD0A0A2-B9E5-4433-87C0-68B6B72699C7", "Microsoft basic data", 0); // Hidden FAT-16 LBA
    AddType(0x2700, "DE94BBA4-06D1-4D40-A16A-BFD50179D6AC", "Windows RE");
    AddType(0x4200, "AF9B60A0-1431-4F62-BC68-3311714A69AD", "Windows LDM data"); // Logical disk manager
    AddType(0x4201, "5808C8AA-7E8F-42E0-85D2-E1E90434CFB3", "Windows LDM metadata"); // Logical disk manager
@@ -107,7 +107,8 @@ void PartType::AddAllTypes(void) {
 
    // Linux-specific partition types....
    AddType(0x8200, "0657FD6D-A4AB-43C4-84E5-0933C84B4F4F", "Linux swap"); // Linux swap (or Solaris)
-   AddType(0x8300, "EBD0A0A2-B9E5-4433-87C0-68B6B72699C7", "Linux/Windows data", 0); // Linux native
+   AddType(0x8300, "0FC63DAF-8483-4772-8E79-3D69D8477DE4", "Linux filesystem"); // Linux native
+//   AddType(0x8300, "EBD0A0A2-B9E5-4433-87C0-68B6B72699C7", "Linux/Windows data", 0); // Linux native
    AddType(0x8301, "8DA63339-0007-60C0-C436-083AC8230908", "Linux reserved");
    AddType(0x8e00, "E6D6D379-F507-44C2-A23C-238F2A3DF928", "Linux LVM");
 
@@ -241,18 +242,18 @@ PartType & PartType::operator=(uint16_t ID) {
    } // while
    if (!found) {
       // Assign a default value....
-      GUIDData::operator=("EBD0A0A2-B9E5-4433-87C0-68B6B72699C7"); // 0700, Linux/Windows data
+      operator=(DEFAULT_TYPE);
       cout.setf(ios::uppercase);
       cout.fill('0');
       cout << "Exact type match not found for type code ";
       cout.width(4);
-      cout << hex << ID << "; assigning type code for\n'Linux/Windows data'\n" << dec;
+      cout << hex << ID << "; assigning type code for\n'" << TypeName() << "'\n" << dec;
       cout.fill(' ');
    } // if (!found)
    return *this;
 } // PartType::operator=(uint16_t ID)
 
-// Return the English description of the partition type (e.g., "Linux/Windows data")
+// Return the English description of the partition type (e.g., "Linux filesystem")
 string PartType::TypeName(void) const {
    AType* theItem = allTypes;
    int found = 0;
@@ -272,7 +273,7 @@ string PartType::TypeName(void) const {
    return typeName;
 } // PartType::TypeName()
 
-// Return the Unicode description of the partition type (e.g., "Linux/Windows data")
+// Return the Unicode description of the partition type (e.g., "Linux filesystem")
 UnicodeString PartType::UTypeName(void) const {
    AType* theItem = allTypes;
    int found = 0;
diff --git a/parttypes.h b/parttypes.h
index 73c66e2..c45d8e4 100644
--- a/parttypes.h
+++ b/parttypes.h
@@ -3,7 +3,7 @@
 
 #include <stdint.h>
 #include <stdlib.h>
-#ifndef _WIN32
+#ifdef USE_UTF16
 #include <unicode/ustream.h>
 #else
 #define UnicodeString string
diff --git a/sgdisk.8 b/sgdisk.8
index 8dbbab5..1fa5f77 100644
--- a/sgdisk.8
+++ b/sgdisk.8
@@ -1,6 +1,6 @@
 .\" Copyright 2011 Roderick W. Smith (rodsmith@rodsbooks.com)
 .\" May be distributed under the GNU General Public License
-.TH "SGDISK" "8" "0.7.1" "Roderick W. Smith" "GPT fdisk Manual"
+.TH "SGDISK" "8" "0.7.2" "Roderick W. Smith" "GPT fdisk Manual"
 .SH "NAME"
 sgdisk \- Command\-line GUID partition table (GPT) manipulator for Linux and Unix
 .SH "SYNOPSIS"
@@ -286,20 +286,20 @@ but the original disk is not recommended.
 
 .TP 
 .B \-L, \-\-list\-types
-Display a summary of partition types. GPT uses a GUID to identify
-partition types for particular OSes and purposes. For ease of data entry,
+Display a summary of partition types. GPT uses a GUID to identify partition
+types for particular OSes and purposes. For ease of data entry,
 \fBsgdisk\fR compresses these into two\-byte (four\-digit hexadecimal)
 values that are related to their equivalent MBR codes. Specifically, the
 MBR code is multiplied by hexadecimal 0x0100. For instance, the code for
-Linux swap space in MBR is 0x82, and it's 0x8200 in \fBgdisk\fR.
-A one\-to\-one correspondence is impossible, though. Most notably, many DOS,
-Windows, and Linux data partition codes correspond to a single GPT code
+Linux swap space in MBR is 0x82, and it's 0x8200 in \fBgdisk\fR. A
+one\-to\-one correspondence is impossible, though. Most notably, the codes
+for all varieties of FAT and NTFS partition correspond to a single GPT code
 (entered as 0x0700 in \fBsgdisk\fR). Some OSes use a single MBR code but
-employ many more codes in GPT. For these, \fBsgdisk\fR
-adds code numbers sequentially, such as 0xa500 for a FreeBSD disklabel,
-0xa501 for FreeBSD boot, 0xa502 for FreeBSD swap, and so on. Note that
-these two\-byte codes are unique to \fBgdisk\fR and \fBsgdisk\fR. This
-option does not require you to specify a valid disk device filename.
+employ many more codes in GPT. For these, \fBsgdisk\fR adds code numbers
+sequentially, such as 0xa500 for a FreeBSD disklabel, 0xa501 for FreeBSD
+boot, 0xa502 for FreeBSD swap, and so on. Note that these two\-byte codes
+are unique to \fBgdisk\fR and \fBsgdisk\fR. This option does not require
+you to specify a valid disk device filename.
 
 .TP 
 .B \-m, \-\-gpttombr
@@ -470,7 +470,7 @@ Non\-GPT disk detected and no \fI\-g\fR option
 .B 4
 An error prevented saving changes
 .SH "BUGS"
-As of March 2011 (version 0.7.1), \fBsgdisk\fR
+As of June 2011 (version 0.7.2), \fBsgdisk\fR
 should be considered beta software. Known bugs and limitations include:
 
 .TP 
diff --git a/support.h b/support.h
index da09cc9..edae3dd 100644
--- a/support.h
+++ b/support.h
@@ -8,20 +8,24 @@
 #ifndef __GPTSUPPORT
 #define __GPTSUPPORT
 
-#define GPTFDISK_VERSION "0.7.1.1"
+#define GPTFDISK_VERSION "0.7.2"
 
 #if defined (__FreeBSD__) || defined (__FreeBSD_kernel__) || defined (__APPLE__)
-// Darwin (Mac OS) only: disk IOCTLs are different, and there is no lseek64
-// This used to use __DARWIN_UNIX03 rather than __APPLE__, but __APPLE__
-// is more general. If the code fails to work on older versions of OS X/
-// Darwin, this may need to be changed back (and in various .cc files).
+// Darwin (Mac OS) & FreeBSD: disk IOCTLs are different, and there is no lseek64
 #include <sys/disk.h>
 #define lseek64 lseek
 #endif
 
-// Linux only....
-#ifdef __linux__
-#include <linux/fs.h>
+#if defined (__FreeBSD__) || defined (__FreeBSD_kernel__)
+#define DEFAULT_TYPE 0xA503
+#endif
+
+#ifdef __APPLE__
+#define DEFAULT_TYPE 0xAF00
+#endif
+
+#ifdef _WIN32
+#define DEFAULT_TYPE 0x0700
 #endif
 
 // Microsoft Visual C++ only
@@ -31,6 +35,16 @@
 #define sprintf sprintf_s
 #endif
 
+// Linux only....
+#ifdef __linux__
+#include <linux/fs.h>
+#define DEFAULT_TYPE 0x8300
+#endif
+
+#ifndef DEFAULT_TYPE
+#define DEFAULT_TYPE 0x8300
+#endif
+
 // Set this as a default
 #define SECTOR_SIZE UINT32_C(512)
 
@@ -38,9 +52,6 @@
 #define APM_SIGNATURE1 UINT64_C(0x00004D5000000000)
 #define APM_SIGNATURE2 UINT64_C(0x0000535400000000)
 
-// Maximum line length on some input functions
-#define MAX_LINE_LENGTH 255
-
 /**************************
  * Some GPT constants.... *
  **************************/
-- 
GitLab