]> git.sven.stormbind.net Git - sven/exfat-utils.git/commitdiff
Imported Upstream version 1.2.4 upstream/1.2.4
authorSven Hoexter <sven@timegate.de>
Sat, 25 Jun 2016 12:12:44 +0000 (14:12 +0200)
committerSven Hoexter <sven@timegate.de>
Sat, 25 Jun 2016 12:12:44 +0000 (14:12 +0200)
52 files changed:
ChangeLog
Makefile.am
Makefile.in
README
configure
configure.ac
dump/Makefile.am
dump/Makefile.in
dump/dumpexfat.8
dump/main.c
fsck/Makefile.am
fsck/Makefile.in
fsck/exfatfsck.8
fsck/main.c
label/Makefile.am
label/Makefile.in
label/exfatlabel.8
label/main.c
libexfat/Makefile.am
libexfat/Makefile.in
libexfat/byteorder.h
libexfat/cluster.c
libexfat/compiler.h
libexfat/exfat.h
libexfat/exfatfs.h
libexfat/io.c
libexfat/log.c
libexfat/lookup.c
libexfat/mount.c
libexfat/node.c
libexfat/platform.h
libexfat/time.c
libexfat/utf.c
libexfat/utils.c
mkfs/Makefile.am
mkfs/Makefile.in
mkfs/cbm.c
mkfs/cbm.h
mkfs/fat.c
mkfs/fat.h
mkfs/main.c
mkfs/mkexfat.c
mkfs/mkexfat.h
mkfs/mkexfatfs.8
mkfs/rootdir.c
mkfs/rootdir.h
mkfs/uct.c
mkfs/uct.h
mkfs/uctc.c
mkfs/uctc.h
mkfs/vbr.c
mkfs/vbr.h

index 05cd191e38a23154ae4cbd23ee3c2096b3d75532..78268258bc6092c644e4ad2da24e4d94f6294e12 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+1.2.4 (2016-06-03)
+
+* Fixed wrong files names hashes when upper case table is compressed.
+* Man pages are now installed by default.
+* Commas and backslashes in device names are now escaped.
+
 1.2.3 (2015-12-19)
 
 * Fixed clusters loss when file renaming replaces target.
 1.2.3 (2015-12-19)
 
 * Fixed clusters loss when file renaming replaces target.
index 54d2ae210f565507ca264196da3626b52a817822..1fe87badc9c41b4b217bd50db6646f531d56d80d 100644 (file)
@@ -3,7 +3,7 @@
 #      Automake source.
 #
 #      Free exFAT implementation.
 #      Automake source.
 #
 #      Free exFAT implementation.
-#      Copyright (C) 2010-2015  Andrew Nayenko
+#      Copyright (C) 2010-2016  Andrew Nayenko
 #
 #      This program is free software; you can redistribute it and/or modify
 #      it under the terms of the GNU General Public License as published by
 #
 #      This program is free software; you can redistribute it and/or modify
 #      it under the terms of the GNU General Public License as published by
index 0ccad1f3c4be5d9004645a0fcefe640f589d24df..06190f8134af76f628bf48ca0bfe894d4940a941 100644 (file)
@@ -19,7 +19,7 @@
 #      Automake source.
 #
 #      Free exFAT implementation.
 #      Automake source.
 #
 #      Free exFAT implementation.
-#      Copyright (C) 2010-2015  Andrew Nayenko
+#      Copyright (C) 2010-2016  Andrew Nayenko
 #
 #      This program is free software; you can redistribute it and/or modify
 #      it under the terms of the GNU General Public License as published by
 #
 #      This program is free software; you can redistribute it and/or modify
 #      it under the terms of the GNU General Public License as published by
diff --git a/README b/README
index 8f2fe85cb9a9689824098855ce027a9bc8a93f7b..500d72234ab2037b78c908b71f7b07ccf0bf8640 100644 (file)
--- a/README
+++ b/README
@@ -7,7 +7,6 @@ Supported operating systems:
 
 * GNU/Linux
 * Mac OS X 10.5 or later
 
 * GNU/Linux
 * Mac OS X 10.5 or later
-* FreeBSD
 * OpenBSD
 
 Most GNU/Linux distributions already have fuse-exfat and exfat-utils in their repositories, so you can just install and use them. The next chapter describes how to compile them from source.
 * OpenBSD
 
 Most GNU/Linux distributions already have fuse-exfat and exfat-utils in their repositories, so you can just install and use them. The next chapter describes how to compile them from source.
@@ -15,40 +14,56 @@ Most GNU/Linux distributions already have fuse-exfat and exfat-utils in their re
 Compiling
 ---------
 
 Compiling
 ---------
 
-To build this project under GNU/Linux you need to install the following packages:
+To build this project on GNU/Linux you need to install the following packages:
 
 
-* pkg-config
+* [pkg-config][7]
 * fuse-devel (or libfuse-dev)
 * fuse-devel (or libfuse-dev)
-* gcc
-* make
+* [gcc][8]
+* [make][9]
+
+On Mac OS X:
+
+* pkg-config
+* [OSXFUSE][10]
+* [Xcode][11] (legacy versions include autotools but their versions are too old)
+
+On OpenBSD:
+
 
 Get the source code, change directory and compile:
 
 
 Get the source code, change directory and compile:
 
-    ./configure --prefix=/usr
+    ./configure
     make
 
     make
 
-Then install driver and utilities:
+Then install driver and utilities (from root):
 
 
-    sudo make install
+    make install
 
 
-You can remove them using this command:
+You can remove them using this command (from root):
 
 
-    sudo make uninstall
+    make uninstall
 
 Mounting
 --------
 
 
 Mounting
 --------
 
-Modern GNU/Linux distributions will mount exFAT volumes automatically—util-linux-ng 2.18 (was renamed to util-linux in 2.19) is required for this. Anyway, you can mount manually (you will need root privileges):
+Modern GNU/Linux distributions (with [util-linux][12] 2.18 or later) will mount exFAT volumes automatically. Anyway, you can mount manually (from root):
 
 
-    sudo mount.exfat-fuse /dev/sdXn /mnt/exfat
+    mount.exfat-fuse /dev/spec /mnt/exfat
 
 
-where /dev/sdXn is the partition special file, /mnt/exfat is a mountpoint.
+where /dev/spec is the [device file][13], /mnt/exfat is a mountpoint.
 
 Feedback
 --------
 
 If you have any questions, issues, suggestions, bug reports, etc. please create an [issue][3]. Pull requests are also welcome!
 
 
 Feedback
 --------
 
 If you have any questions, issues, suggestions, bug reports, etc. please create an [issue][3]. Pull requests are also welcome!
 
-[1]: http://en.wikipedia.org/wiki/ExFAT
-[2]: http://en.wikipedia.org/wiki/Filesystem_in_Userspace
+[1]: https://en.wikipedia.org/wiki/ExFAT
+[2]: https://en.wikipedia.org/wiki/Filesystem_in_Userspace
 [3]: https://github.com/relan/exfat/issues
 [3]: https://github.com/relan/exfat/issues
+[7]: http://www.freedesktop.org/wiki/Software/pkg-config/
+[8]: https://gcc.gnu.org/
+[9]: https://www.gnu.org/software/make/
+[10]: https://osxfuse.github.io/
+[11]: https://en.wikipedia.org/wiki/Xcode
+[12]: https://www.kernel.org/pub/linux/utils/util-linux/
+[13]: https://en.wikipedia.org/wiki/Device_file
index f60568157cf90b394a030146a9f99e0d649a6853..3c3b3abca4a49443fac91c592fe93cfdb2e1d55c 100755 (executable)
--- a/configure
+++ b/configure
@@ -1,6 +1,6 @@
 #! /bin/sh
 # Guess values for system-dependent variables and create Makefiles.
 #! /bin/sh
 # Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.69 for Free exFAT implementation 1.2.3.
+# Generated by GNU Autoconf 2.69 for Free exFAT implementation 1.2.4.
 #
 # Report bugs to <relan@users.noreply.github.com>.
 #
 #
 # Report bugs to <relan@users.noreply.github.com>.
 #
@@ -579,8 +579,8 @@ MAKEFLAGS=
 # Identity of this package.
 PACKAGE_NAME='Free exFAT implementation'
 PACKAGE_TARNAME='exfat-utils'
 # Identity of this package.
 PACKAGE_NAME='Free exFAT implementation'
 PACKAGE_TARNAME='exfat-utils'
-PACKAGE_VERSION='1.2.3'
-PACKAGE_STRING='Free exFAT implementation 1.2.3'
+PACKAGE_VERSION='1.2.4'
+PACKAGE_STRING='Free exFAT implementation 1.2.4'
 PACKAGE_BUGREPORT='relan@users.noreply.github.com'
 PACKAGE_URL='https://github.com/relan/exfat'
 
 PACKAGE_BUGREPORT='relan@users.noreply.github.com'
 PACKAGE_URL='https://github.com/relan/exfat'
 
@@ -1228,7 +1228,7 @@ if test "$ac_init_help" = "long"; then
   # Omit some internal or obsolete options to make the list less imposing.
   # This message is too long to be a string in the A/UX 3.1 sh.
   cat <<_ACEOF
   # Omit some internal or obsolete options to make the list less imposing.
   # This message is too long to be a string in the A/UX 3.1 sh.
   cat <<_ACEOF
-\`configure' configures Free exFAT implementation 1.2.3 to adapt to many kinds of systems.
+\`configure' configures Free exFAT implementation 1.2.4 to adapt to many kinds of systems.
 
 Usage: $0 [OPTION]... [VAR=VALUE]...
 
 
 Usage: $0 [OPTION]... [VAR=VALUE]...
 
@@ -1294,7 +1294,7 @@ fi
 
 if test -n "$ac_init_help"; then
   case $ac_init_help in
 
 if test -n "$ac_init_help"; then
   case $ac_init_help in
-     short | recursive ) echo "Configuration of Free exFAT implementation 1.2.3:";;
+     short | recursive ) echo "Configuration of Free exFAT implementation 1.2.4:";;
    esac
   cat <<\_ACEOF
 
    esac
   cat <<\_ACEOF
 
@@ -1386,7 +1386,7 @@ fi
 test -n "$ac_init_help" && exit $ac_status
 if $ac_init_version; then
   cat <<\_ACEOF
 test -n "$ac_init_help" && exit $ac_status
 if $ac_init_version; then
   cat <<\_ACEOF
-Free exFAT implementation configure 1.2.3
+Free exFAT implementation configure 1.2.4
 generated by GNU Autoconf 2.69
 
 Copyright (C) 2012 Free Software Foundation, Inc.
 generated by GNU Autoconf 2.69
 
 Copyright (C) 2012 Free Software Foundation, Inc.
@@ -1441,7 +1441,7 @@ cat >config.log <<_ACEOF
 This file contains any messages produced by compilers while
 running configure, to aid debugging if configure makes a mistake.
 
 This file contains any messages produced by compilers while
 running configure, to aid debugging if configure makes a mistake.
 
-It was created by Free exFAT implementation $as_me 1.2.3, which was
+It was created by Free exFAT implementation $as_me 1.2.4, which was
 generated by GNU Autoconf 2.69.  Invocation command line was
 
   $ $0 $@
 generated by GNU Autoconf 2.69.  Invocation command line was
 
   $ $0 $@
@@ -2304,7 +2304,7 @@ fi
 
 # Define the identity of the package.
  PACKAGE='exfat-utils'
 
 # Define the identity of the package.
  PACKAGE='exfat-utils'
- VERSION='1.2.3'
+ VERSION='1.2.4'
 
 
 cat >>confdefs.h <<_ACEOF
 
 
 cat >>confdefs.h <<_ACEOF
@@ -4611,7 +4611,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
 # report actual input values of CONFIG_FILES etc. instead of their
 # values after options handling.
 ac_log="
 # report actual input values of CONFIG_FILES etc. instead of their
 # values after options handling.
 ac_log="
-This file was extended by Free exFAT implementation $as_me 1.2.3, which was
+This file was extended by Free exFAT implementation $as_me 1.2.4, which was
 generated by GNU Autoconf 2.69.  Invocation command line was
 
   CONFIG_FILES    = $CONFIG_FILES
 generated by GNU Autoconf 2.69.  Invocation command line was
 
   CONFIG_FILES    = $CONFIG_FILES
@@ -4678,7 +4678,7 @@ _ACEOF
 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
 ac_cs_version="\\
 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
 ac_cs_version="\\
-Free exFAT implementation config.status 1.2.3
+Free exFAT implementation config.status 1.2.4
 configured by $0, generated by GNU Autoconf 2.69,
   with options \\"\$ac_cs_config\\"
 
 configured by $0, generated by GNU Autoconf 2.69,
   with options \\"\$ac_cs_config\\"
 
index a1dcd8766e50e144173e949295628e503dfe4895..20160ee6fbba00647d816384983f60d9f7d9f4fb 100644 (file)
@@ -3,7 +3,7 @@
 #      Autoconf source.
 #
 #      Free exFAT implementation.
 #      Autoconf source.
 #
 #      Free exFAT implementation.
-#      Copyright (C) 2010-2015  Andrew Nayenko
+#      Copyright (C) 2010-2016  Andrew Nayenko
 #
 #      This program is free software; you can redistribute it and/or modify
 #      it under the terms of the GNU General Public License as published by
 #
 #      This program is free software; you can redistribute it and/or modify
 #      it under the terms of the GNU General Public License as published by
 #
 
 AC_INIT([Free exFAT implementation],
 #
 
 AC_INIT([Free exFAT implementation],
-       [1.2.3],
+       [1.2.4],
        [relan@users.noreply.github.com],
        [exfat-utils],
        [https://github.com/relan/exfat])
        [relan@users.noreply.github.com],
        [exfat-utils],
        [https://github.com/relan/exfat])
-AM_INIT_AUTOMAKE([1.11.2 -Wall -Werror foreign subdir-objects no-installman])
+AM_INIT_AUTOMAKE([1.11.2 -Wall -Werror foreign subdir-objects])
 AC_PROG_CC
 AC_PROG_CC_C99
 AC_PROG_RANLIB
 AC_PROG_CC
 AC_PROG_CC_C99
 AC_PROG_RANLIB
index 340ac0ca0c73951cc732f9e4ba295675268832f1..f9a79dd8dd59b8f74ebd546dbb9407d61bcee490 100644 (file)
@@ -3,7 +3,7 @@
 #      Automake source.
 #
 #      Free exFAT implementation.
 #      Automake source.
 #
 #      Free exFAT implementation.
-#      Copyright (C) 2011-2015  Andrew Nayenko
+#      Copyright (C) 2011-2016  Andrew Nayenko
 #
 #      This program is free software; you can redistribute it and/or modify
 #      it under the terms of the GNU General Public License as published by
 #
 #      This program is free software; you can redistribute it and/or modify
 #      it under the terms of the GNU General Public License as published by
index d92facfb4e7c0080f706614c55d988a2f957a554..b85985ca056f868b6874ca4879d96676d800aa26 100644 (file)
@@ -19,7 +19,7 @@
 #      Automake source.
 #
 #      Free exFAT implementation.
 #      Automake source.
 #
 #      Free exFAT implementation.
-#      Copyright (C) 2011-2015  Andrew Nayenko
+#      Copyright (C) 2011-2016  Andrew Nayenko
 #
 #      This program is free software; you can redistribute it and/or modify
 #      it under the terms of the GNU General Public License as published by
 #
 #      This program is free software; you can redistribute it and/or modify
 #      it under the terms of the GNU General Public License as published by
@@ -119,7 +119,7 @@ mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/libexfat/config.h
 CONFIG_CLEAN_FILES =
 CONFIG_CLEAN_VPATH_FILES =
 CONFIG_HEADER = $(top_builddir)/libexfat/config.h
 CONFIG_CLEAN_FILES =
 CONFIG_CLEAN_VPATH_FILES =
-am__installdirs = "$(DESTDIR)$(sbindir)"
+am__installdirs = "$(DESTDIR)$(sbindir)" "$(DESTDIR)$(man8dir)"
 PROGRAMS = $(sbin_PROGRAMS)
 am_dumpexfat_OBJECTS = dumpexfat-main.$(OBJEXT)
 dumpexfat_OBJECTS = $(am_dumpexfat_OBJECTS)
 PROGRAMS = $(sbin_PROGRAMS)
 am_dumpexfat_OBJECTS = dumpexfat-main.$(OBJEXT)
 dumpexfat_OBJECTS = $(am_dumpexfat_OBJECTS)
@@ -423,7 +423,6 @@ dumpexfat-main.obj: main.c
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='main.c' object='dumpexfat-main.obj' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 @am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(dumpexfat_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o dumpexfat-main.obj `if test -f 'main.c'; then $(CYGPATH_W) 'main.c'; else $(CYGPATH_W) '$(srcdir)/main.c'; fi`
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='main.c' object='dumpexfat-main.obj' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 @am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(dumpexfat_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o dumpexfat-main.obj `if test -f 'main.c'; then $(CYGPATH_W) 'main.c'; else $(CYGPATH_W) '$(srcdir)/main.c'; fi`
-
 install-man8: $(dist_man8_MANS)
        @$(NORMAL_INSTALL)
        @list1='$(dist_man8_MANS)'; \
 install-man8: $(dist_man8_MANS)
        @$(NORMAL_INSTALL)
        @list1='$(dist_man8_MANS)'; \
@@ -550,9 +549,9 @@ distdir: $(DISTFILES)
        done
 check-am: all-am
 check: check-am
        done
 check-am: all-am
 check: check-am
-all-am: Makefile $(PROGRAMS)
+all-am: Makefile $(PROGRAMS) $(MANS)
 installdirs:
 installdirs:
-       for dir in "$(DESTDIR)$(sbindir)"; do \
+       for dir in "$(DESTDIR)$(sbindir)" "$(DESTDIR)$(man8dir)"; do \
          test -z "$$dir" || $(MKDIR_P) "$$dir"; \
        done
 install: install-am
          test -z "$$dir" || $(MKDIR_P) "$$dir"; \
        done
 install: install-am
@@ -607,7 +606,7 @@ info: info-am
 
 info-am:
 
 
 info-am:
 
-install-data-am:
+install-data-am: install-man
 
 install-dvi: install-dvi-am
 
 
 install-dvi: install-dvi-am
 
@@ -652,7 +651,7 @@ ps: ps-am
 
 ps-am:
 
 
 ps-am:
 
-uninstall-am: uninstall-sbinPROGRAMS
+uninstall-am: uninstall-man uninstall-sbinPROGRAMS
 
 uninstall-man: uninstall-man8
 
 
 uninstall-man: uninstall-man8
 
index 5cf3995ed0adc9a002b85524b828ea74ef619f54..31c7dcab8ad4331db4bfca925b4e55cf2678086d 100644 (file)
@@ -1,4 +1,4 @@
-.\" Copyright (C) 2011-2015  Andrew Nayenko
+.\" Copyright (C) 2011-2016  Andrew Nayenko
 .\"
 .TH DUMPEXFAT 8 "February 2011"
 .SH NAME
 .\"
 .TH DUMPEXFAT 8 "February 2011"
 .SH NAME
index b6e04094771a5f6dd063166222fbd2d7c69d6669..75f7ff19c3680b24fe7c46c36c84176f58573238 100644 (file)
@@ -3,7 +3,7 @@
        Prints detailed information about exFAT volume.
 
        Free exFAT implementation.
        Prints detailed information about exFAT volume.
 
        Free exFAT implementation.
-       Copyright (C) 2011-2015  Andrew Nayenko
+       Copyright (C) 2011-2016  Andrew Nayenko
 
        This program is free software; you can redistribute it and/or modify
        it under the terms of the GNU General Public License as published by
 
        This program is free software; you can redistribute it and/or modify
        it under the terms of the GNU General Public License as published by
@@ -166,7 +166,7 @@ int main(int argc, char* argv[])
                        used_sectors = true;
                        break;
                case 'V':
                        used_sectors = true;
                        break;
                case 'V':
-                       puts("Copyright (C) 2011-2015  Andrew Nayenko");
+                       puts("Copyright (C) 2011-2016  Andrew Nayenko");
                        return 0;
                default:
                        usage(argv[0]);
                        return 0;
                default:
                        usage(argv[0]);
index 5901ae211321abe28e26d91780ef640f993c6eb4..dbb8121fbf8c201b628d47ba864cdc8a255014a8 100644 (file)
@@ -3,7 +3,7 @@
 #      Automake source.
 #
 #      Free exFAT implementation.
 #      Automake source.
 #
 #      Free exFAT implementation.
-#      Copyright (C) 2011-2015  Andrew Nayenko
+#      Copyright (C) 2011-2016  Andrew Nayenko
 #
 #      This program is free software; you can redistribute it and/or modify
 #      it under the terms of the GNU General Public License as published by
 #
 #      This program is free software; you can redistribute it and/or modify
 #      it under the terms of the GNU General Public License as published by
index 970e944538edf185c26e42aa69ebf63908128df3..e45c02fbad9a7e866516b854ba9b6711ea62a5a4 100644 (file)
@@ -19,7 +19,7 @@
 #      Automake source.
 #
 #      Free exFAT implementation.
 #      Automake source.
 #
 #      Free exFAT implementation.
-#      Copyright (C) 2011-2015  Andrew Nayenko
+#      Copyright (C) 2011-2016  Andrew Nayenko
 #
 #      This program is free software; you can redistribute it and/or modify
 #      it under the terms of the GNU General Public License as published by
 #
 #      This program is free software; you can redistribute it and/or modify
 #      it under the terms of the GNU General Public License as published by
@@ -119,7 +119,7 @@ mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/libexfat/config.h
 CONFIG_CLEAN_FILES =
 CONFIG_CLEAN_VPATH_FILES =
 CONFIG_HEADER = $(top_builddir)/libexfat/config.h
 CONFIG_CLEAN_FILES =
 CONFIG_CLEAN_VPATH_FILES =
-am__installdirs = "$(DESTDIR)$(sbindir)"
+am__installdirs = "$(DESTDIR)$(sbindir)" "$(DESTDIR)$(man8dir)"
 PROGRAMS = $(sbin_PROGRAMS)
 am_exfatfsck_OBJECTS = exfatfsck-main.$(OBJEXT)
 exfatfsck_OBJECTS = $(am_exfatfsck_OBJECTS)
 PROGRAMS = $(sbin_PROGRAMS)
 am_exfatfsck_OBJECTS = exfatfsck-main.$(OBJEXT)
 exfatfsck_OBJECTS = $(am_exfatfsck_OBJECTS)
@@ -423,7 +423,6 @@ exfatfsck-main.obj: main.c
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='main.c' object='exfatfsck-main.obj' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 @am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(exfatfsck_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o exfatfsck-main.obj `if test -f 'main.c'; then $(CYGPATH_W) 'main.c'; else $(CYGPATH_W) '$(srcdir)/main.c'; fi`
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='main.c' object='exfatfsck-main.obj' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 @am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(exfatfsck_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o exfatfsck-main.obj `if test -f 'main.c'; then $(CYGPATH_W) 'main.c'; else $(CYGPATH_W) '$(srcdir)/main.c'; fi`
-
 install-man8: $(dist_man8_MANS)
        @$(NORMAL_INSTALL)
        @list1='$(dist_man8_MANS)'; \
 install-man8: $(dist_man8_MANS)
        @$(NORMAL_INSTALL)
        @list1='$(dist_man8_MANS)'; \
@@ -550,9 +549,9 @@ distdir: $(DISTFILES)
        done
 check-am: all-am
 check: check-am
        done
 check-am: all-am
 check: check-am
-all-am: Makefile $(PROGRAMS)
+all-am: Makefile $(PROGRAMS) $(MANS)
 installdirs:
 installdirs:
-       for dir in "$(DESTDIR)$(sbindir)"; do \
+       for dir in "$(DESTDIR)$(sbindir)" "$(DESTDIR)$(man8dir)"; do \
          test -z "$$dir" || $(MKDIR_P) "$$dir"; \
        done
 install: install-am
          test -z "$$dir" || $(MKDIR_P) "$$dir"; \
        done
 install: install-am
@@ -607,7 +606,7 @@ info: info-am
 
 info-am:
 
 
 info-am:
 
-install-data-am:
+install-data-am: install-man
 
 install-dvi: install-dvi-am
 
 
 install-dvi: install-dvi-am
 
@@ -653,7 +652,7 @@ ps: ps-am
 
 ps-am:
 
 
 ps-am:
 
-uninstall-am: uninstall-sbinPROGRAMS
+uninstall-am: uninstall-man uninstall-sbinPROGRAMS
        @$(NORMAL_INSTALL)
        $(MAKE) $(AM_MAKEFLAGS) uninstall-hook
 uninstall-man: uninstall-man8
        @$(NORMAL_INSTALL)
        $(MAKE) $(AM_MAKEFLAGS) uninstall-hook
 uninstall-man: uninstall-man8
index e950488457af475a3c742ca5ec96d326e0accce5..b0a788ab7827c92e3afec8aec3fa41429ee762ce 100644 (file)
@@ -1,4 +1,4 @@
-.\" Copyright (C) 2011-2015  Andrew Nayenko
+.\" Copyright (C) 2011-2016  Andrew Nayenko
 .\"
 .TH EXFATFSCK 8 "February 2011"
 .SH NAME
 .\"
 .TH EXFATFSCK 8 "February 2011"
 .SH NAME
index ded76b20c2ef78bda2ccebf5f0455db03e8b30fa..a72d74cf2de8528ee3ca04ab0649e48223dacfe3 100644 (file)
@@ -3,7 +3,7 @@
        exFAT file system checker.
 
        Free exFAT implementation.
        exFAT file system checker.
 
        Free exFAT implementation.
-       Copyright (C) 2011-2015  Andrew Nayenko
+       Copyright (C) 2011-2016  Andrew Nayenko
 
        This program is free software; you can redistribute it and/or modify
        it under the terms of the GNU General Public License as published by
 
        This program is free software; you can redistribute it and/or modify
        it under the terms of the GNU General Public License as published by
@@ -147,7 +147,7 @@ int main(int argc, char* argv[])
                switch (opt)
                {
                case 'V':
                switch (opt)
                {
                case 'V':
-                       puts("Copyright (C) 2011-2015  Andrew Nayenko");
+                       puts("Copyright (C) 2011-2016  Andrew Nayenko");
                        return 0;
                default:
                        usage(argv[0]);
                        return 0;
                default:
                        usage(argv[0]);
index a2bf9c8f12416420886e02b80fe21ecd15a2ea8e..c610f2ffa7594c1043a25bb7417f328b166db2fd 100644 (file)
@@ -3,7 +3,7 @@
 #      Automake source.
 #
 #      Free exFAT implementation.
 #      Automake source.
 #
 #      Free exFAT implementation.
-#      Copyright (C) 2011-2015  Andrew Nayenko
+#      Copyright (C) 2011-2016  Andrew Nayenko
 #
 #      This program is free software; you can redistribute it and/or modify
 #      it under the terms of the GNU General Public License as published by
 #
 #      This program is free software; you can redistribute it and/or modify
 #      it under the terms of the GNU General Public License as published by
index 4a3c124ff1c2a185395f3b29f10dc04edf8f61d3..df1438724f05d2836e925f37c51ae2087e4c9c8a 100644 (file)
@@ -19,7 +19,7 @@
 #      Automake source.
 #
 #      Free exFAT implementation.
 #      Automake source.
 #
 #      Free exFAT implementation.
-#      Copyright (C) 2011-2015  Andrew Nayenko
+#      Copyright (C) 2011-2016  Andrew Nayenko
 #
 #      This program is free software; you can redistribute it and/or modify
 #      it under the terms of the GNU General Public License as published by
 #
 #      This program is free software; you can redistribute it and/or modify
 #      it under the terms of the GNU General Public License as published by
@@ -119,7 +119,7 @@ mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/libexfat/config.h
 CONFIG_CLEAN_FILES =
 CONFIG_CLEAN_VPATH_FILES =
 CONFIG_HEADER = $(top_builddir)/libexfat/config.h
 CONFIG_CLEAN_FILES =
 CONFIG_CLEAN_VPATH_FILES =
-am__installdirs = "$(DESTDIR)$(sbindir)"
+am__installdirs = "$(DESTDIR)$(sbindir)" "$(DESTDIR)$(man8dir)"
 PROGRAMS = $(sbin_PROGRAMS)
 am_exfatlabel_OBJECTS = exfatlabel-main.$(OBJEXT)
 exfatlabel_OBJECTS = $(am_exfatlabel_OBJECTS)
 PROGRAMS = $(sbin_PROGRAMS)
 am_exfatlabel_OBJECTS = exfatlabel-main.$(OBJEXT)
 exfatlabel_OBJECTS = $(am_exfatlabel_OBJECTS)
@@ -423,7 +423,6 @@ exfatlabel-main.obj: main.c
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='main.c' object='exfatlabel-main.obj' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 @am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(exfatlabel_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o exfatlabel-main.obj `if test -f 'main.c'; then $(CYGPATH_W) 'main.c'; else $(CYGPATH_W) '$(srcdir)/main.c'; fi`
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='main.c' object='exfatlabel-main.obj' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 @am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(exfatlabel_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o exfatlabel-main.obj `if test -f 'main.c'; then $(CYGPATH_W) 'main.c'; else $(CYGPATH_W) '$(srcdir)/main.c'; fi`
-
 install-man8: $(dist_man8_MANS)
        @$(NORMAL_INSTALL)
        @list1='$(dist_man8_MANS)'; \
 install-man8: $(dist_man8_MANS)
        @$(NORMAL_INSTALL)
        @list1='$(dist_man8_MANS)'; \
@@ -550,9 +549,9 @@ distdir: $(DISTFILES)
        done
 check-am: all-am
 check: check-am
        done
 check-am: all-am
 check: check-am
-all-am: Makefile $(PROGRAMS)
+all-am: Makefile $(PROGRAMS) $(MANS)
 installdirs:
 installdirs:
-       for dir in "$(DESTDIR)$(sbindir)"; do \
+       for dir in "$(DESTDIR)$(sbindir)" "$(DESTDIR)$(man8dir)"; do \
          test -z "$$dir" || $(MKDIR_P) "$$dir"; \
        done
 install: install-am
          test -z "$$dir" || $(MKDIR_P) "$$dir"; \
        done
 install: install-am
@@ -607,7 +606,7 @@ info: info-am
 
 info-am:
 
 
 info-am:
 
-install-data-am:
+install-data-am: install-man
 
 install-dvi: install-dvi-am
 
 
 install-dvi: install-dvi-am
 
@@ -652,7 +651,7 @@ ps: ps-am
 
 ps-am:
 
 
 ps-am:
 
-uninstall-am: uninstall-sbinPROGRAMS
+uninstall-am: uninstall-man uninstall-sbinPROGRAMS
 
 uninstall-man: uninstall-man8
 
 
 uninstall-man: uninstall-man8
 
index bff6e7996d2026687fed7ad5de713069c3a374e8..429f9f9b9c289d4d398ab4fc532c54739722ca34 100644 (file)
@@ -1,4 +1,4 @@
-.\" Copyright (C) 2011-2015  Andrew Nayenko
+.\" Copyright (C) 2011-2016  Andrew Nayenko
 .\"
 .TH EXFATLABEL 8 "February 2011"
 .SH NAME
 .\"
 .TH EXFATLABEL 8 "February 2011"
 .SH NAME
index b219d4e658c3e56e797310f16dc5dda66745cf83..a083f3018965e2f9a8e8e7dba7c19908a3c2fcb2 100644 (file)
@@ -3,7 +3,7 @@
        Prints or changes exFAT volume label.
 
        Free exFAT implementation.
        Prints or changes exFAT volume label.
 
        Free exFAT implementation.
-       Copyright (C) 2011-2015  Andrew Nayenko
+       Copyright (C) 2011-2016  Andrew Nayenko
 
        This program is free software; you can redistribute it and/or modify
        it under the terms of the GNU General Public License as published by
 
        This program is free software; you can redistribute it and/or modify
        it under the terms of the GNU General Public License as published by
@@ -34,7 +34,7 @@ int main(int argc, char* argv[])
                if (strcmp(*pp, "-V") == 0)
                {
                        printf("exfatlabel %s\n", VERSION);
                if (strcmp(*pp, "-V") == 0)
                {
                        printf("exfatlabel %s\n", VERSION);
-                       puts("Copyright (C) 2011-2015  Andrew Nayenko");
+                       puts("Copyright (C) 2011-2016  Andrew Nayenko");
                        return 0;
                }
 
                        return 0;
                }
 
index f9067e98c5a33ee085e9297c34628b1422b914c4..102d89d6b14a3aa6e7bd75b36df9fc1cab093c27 100644 (file)
@@ -3,7 +3,7 @@
 #      Automake source.
 #
 #      Free exFAT implementation.
 #      Automake source.
 #
 #      Free exFAT implementation.
-#      Copyright (C) 2010-2015  Andrew Nayenko
+#      Copyright (C) 2010-2016  Andrew Nayenko
 #
 #      This program is free software; you can redistribute it and/or modify
 #      it under the terms of the GNU General Public License as published by
 #
 #      This program is free software; you can redistribute it and/or modify
 #      it under the terms of the GNU General Public License as published by
index 9d8a0c1173dcfa62fd537d4c861cda425a7fdc42..164e661e7750fccd51472df741fcaaf98a8fa56b 100644 (file)
@@ -19,7 +19,7 @@
 #      Automake source.
 #
 #      Free exFAT implementation.
 #      Automake source.
 #
 #      Free exFAT implementation.
-#      Copyright (C) 2010-2015  Andrew Nayenko
+#      Copyright (C) 2010-2016  Andrew Nayenko
 #
 #      This program is free software; you can redistribute it and/or modify
 #      it under the terms of the GNU General Public License as published by
 #
 #      This program is free software; you can redistribute it and/or modify
 #      it under the terms of the GNU General Public License as published by
index 472cb487cd838cc88d356032726b723a121bf7a5..e417ad6a3fb424a2728e74e3625784321a75268c 100644 (file)
@@ -3,7 +3,7 @@
        Endianness stuff. exFAT uses little-endian byte order.
 
        Free exFAT implementation.
        Endianness stuff. exFAT uses little-endian byte order.
 
        Free exFAT implementation.
-       Copyright (C) 2010-2015  Andrew Nayenko
+       Copyright (C) 2010-2016  Andrew Nayenko
 
        This program is free software; you can redistribute it and/or modify
        it under the terms of the GNU General Public License as published by
 
        This program is free software; you can redistribute it and/or modify
        it under the terms of the GNU General Public License as published by
index fc3657b53f62e0ba101d6ed2be35b36ca87f8d38..13bc6ce90616b679a379c1f4e3d4ff47471a85d9 100644 (file)
@@ -3,7 +3,7 @@
        exFAT file system implementation library.
 
        Free exFAT implementation.
        exFAT file system implementation library.
 
        Free exFAT implementation.
-       Copyright (C) 2010-2015  Andrew Nayenko
+       Copyright (C) 2010-2016  Andrew Nayenko
 
        This program is free software; you can redistribute it and/or modify
        it under the terms of the GNU General Public License as published by
 
        This program is free software; you can redistribute it and/or modify
        it under the terms of the GNU General Public License as published by
index 1a4742e56f3fa6ae0d4474bdf3139f90ad59d154..b590d01902637271a774da3f798427a6ee18e1bd 100644 (file)
@@ -4,7 +4,7 @@
        showstopper.
 
        Free exFAT implementation.
        showstopper.
 
        Free exFAT implementation.
-       Copyright (C) 2010-2015  Andrew Nayenko
+       Copyright (C) 2010-2016  Andrew Nayenko
 
        This program is free software; you can redistribute it and/or modify
        it under the terms of the GNU General Public License as published by
 
        This program is free software; you can redistribute it and/or modify
        it under the terms of the GNU General Public License as published by
index 97d3692b0a08decd527a9850dfab37cdf0a38aab..75cb6e674ca415151e6ce7c74fefbc65b2e6b6c6 100644 (file)
@@ -4,7 +4,7 @@
        implementation.
 
        Free exFAT implementation.
        implementation.
 
        Free exFAT implementation.
-       Copyright (C) 2010-2015  Andrew Nayenko
+       Copyright (C) 2010-2016  Andrew Nayenko
 
        This program is free software; you can redistribute it and/or modify
        it under the terms of the GNU General Public License as published by
 
        This program is free software; you can redistribute it and/or modify
        it under the terms of the GNU General Public License as published by
@@ -97,8 +97,7 @@ struct exfat
 {
        struct exfat_dev* dev;
        struct exfat_super_block* sb;
 {
        struct exfat_dev* dev;
        struct exfat_super_block* sb;
-       le16_t* upcase;
-       size_t upcase_chars;
+       uint16_t* upcase;
        struct exfat_node* root;
        struct
        {
        struct exfat_node* root;
        struct
        {
index eca2cacea15613b11a53b623691f2decccee091e..c155312e15ed928430fc6cf24ced8aadd38a6dbd 100644 (file)
@@ -3,7 +3,7 @@
        Definitions of structures and constants used in exFAT file system.
 
        Free exFAT implementation.
        Definitions of structures and constants used in exFAT file system.
 
        Free exFAT implementation.
-       Copyright (C) 2010-2015  Andrew Nayenko
+       Copyright (C) 2010-2016  Andrew Nayenko
 
        This program is free software; you can redistribute it and/or modify
        it under the terms of the GNU General Public License as published by
 
        This program is free software; you can redistribute it and/or modify
        it under the terms of the GNU General Public License as published by
@@ -99,6 +99,8 @@ struct exfat_entry_bitmap                     /* allocated clusters bitmap */
 PACKED;
 STATIC_ASSERT(sizeof(struct exfat_entry_bitmap) == 32);
 
 PACKED;
 STATIC_ASSERT(sizeof(struct exfat_entry_bitmap) == 32);
 
+#define EXFAT_UPCASE_CHARS 0x10000
+
 struct exfat_entry_upcase                      /* upper case translation table */
 {
        uint8_t type;                                   /* EXFAT_ENTRY_UPCASE */
 struct exfat_entry_upcase                      /* upper case translation table */
 {
        uint8_t type;                                   /* EXFAT_ENTRY_UPCASE */
index 3d7aaad2e903db2f2dbacd56d8bac62816560f46..60f28e2b88ac42740fc709fe4fb8e0673ae2f035 100644 (file)
@@ -3,7 +3,7 @@
        exFAT file system implementation library.
 
        Free exFAT implementation.
        exFAT file system implementation library.
 
        Free exFAT implementation.
-       Copyright (C) 2010-2015  Andrew Nayenko
+       Copyright (C) 2010-2016  Andrew Nayenko
 
        This program is free software; you can redistribute it and/or modify
        it under the terms of the GNU General Public License as published by
 
        This program is free software; you can redistribute it and/or modify
        it under the terms of the GNU General Public License as published by
 #include <sys/ioctl.h>
 #endif
 #include <sys/mount.h>
 #include <sys/ioctl.h>
 #endif
 #include <sys/mount.h>
-#ifdef USE_UBLIO
-#include <sys/uio.h>
-#include <ublio.h>
-#endif
 
 struct exfat_dev
 {
        int fd;
        enum exfat_mode mode;
        off_t size; /* in bytes */
 
 struct exfat_dev
 {
        int fd;
        enum exfat_mode mode;
        off_t size; /* in bytes */
-#ifdef USE_UBLIO
-       off_t pos;
-       ublio_filehandle_t ufh;
-#endif
 };
 
 static int open_ro(const char* spec)
 };
 
 static int open_ro(const char* spec)
@@ -82,9 +74,6 @@ struct exfat_dev* exfat_open(const char* spec, enum exfat_mode mode)
 {
        struct exfat_dev* dev;
        struct stat stbuf;
 {
        struct exfat_dev* dev;
        struct stat stbuf;
-#ifdef USE_UBLIO
-       struct ublio_param up;
-#endif
 
        dev = malloc(sizeof(struct exfat_dev));
        if (dev == NULL)
 
        dev = malloc(sizeof(struct exfat_dev));
        if (dev == NULL)
@@ -222,24 +211,6 @@ struct exfat_dev* exfat_open(const char* spec, enum exfat_mode mode)
                }
        }
 
                }
        }
 
-#ifdef USE_UBLIO
-       memset(&up, 0, sizeof(struct ublio_param));
-       up.up_blocksize = 256 * 1024;
-       up.up_items = 64;
-       up.up_grace = 32;
-       up.up_priv = &dev->fd;
-
-       dev->pos = 0;
-       dev->ufh = ublio_open(&up);
-       if (dev->ufh == NULL)
-       {
-               close(dev->fd);
-               free(dev);
-               exfat_error("failed to initialize ublio");
-               return NULL;
-       }
-#endif
-
        return dev;
 }
 
        return dev;
 }
 
@@ -247,13 +218,6 @@ int exfat_close(struct exfat_dev* dev)
 {
        int rc = 0;
 
 {
        int rc = 0;
 
-#ifdef USE_UBLIO
-       if (ublio_close(dev->ufh) != 0)
-       {
-               exfat_error("failed to close ublio");
-               rc = -EIO;
-       }
-#endif
        if (close(dev->fd) != 0)
        {
                exfat_error("failed to close device: %s", strerror(errno));
        if (close(dev->fd) != 0)
        {
                exfat_error("failed to close device: %s", strerror(errno));
@@ -267,13 +231,6 @@ int exfat_fsync(struct exfat_dev* dev)
 {
        int rc = 0;
 
 {
        int rc = 0;
 
-#ifdef USE_UBLIO
-       if (ublio_fsync(dev->ufh) != 0)
-       {
-               exfat_error("ublio fsync failed");
-               rc = -EIO;
-       }
-#endif
        if (fsync(dev->fd) != 0)
        {
                exfat_error("fsync failed: %s", strerror(errno));
        if (fsync(dev->fd) != 0)
        {
                exfat_error("fsync failed: %s", strerror(errno));
@@ -294,56 +251,29 @@ off_t exfat_get_size(const struct exfat_dev* dev)
 
 off_t exfat_seek(struct exfat_dev* dev, off_t offset, int whence)
 {
 
 off_t exfat_seek(struct exfat_dev* dev, off_t offset, int whence)
 {
-#ifdef USE_UBLIO
-       /* XXX SEEK_CUR will be handled incorrectly */
-       return dev->pos = lseek(dev->fd, offset, whence);
-#else
        return lseek(dev->fd, offset, whence);
        return lseek(dev->fd, offset, whence);
-#endif
 }
 
 ssize_t exfat_read(struct exfat_dev* dev, void* buffer, size_t size)
 {
 }
 
 ssize_t exfat_read(struct exfat_dev* dev, void* buffer, size_t size)
 {
-#ifdef USE_UBLIO
-       ssize_t result = ublio_pread(dev->ufh, buffer, size, dev->pos);
-       if (result >= 0)
-               dev->pos += size;
-       return result;
-#else
        return read(dev->fd, buffer, size);
        return read(dev->fd, buffer, size);
-#endif
 }
 
 ssize_t exfat_write(struct exfat_dev* dev, const void* buffer, size_t size)
 {
 }
 
 ssize_t exfat_write(struct exfat_dev* dev, const void* buffer, size_t size)
 {
-#ifdef USE_UBLIO
-       ssize_t result = ublio_pwrite(dev->ufh, buffer, size, dev->pos);
-       if (result >= 0)
-               dev->pos += size;
-       return result;
-#else
        return write(dev->fd, buffer, size);
        return write(dev->fd, buffer, size);
-#endif
 }
 
 ssize_t exfat_pread(struct exfat_dev* dev, void* buffer, size_t size,
                off_t offset)
 {
 }
 
 ssize_t exfat_pread(struct exfat_dev* dev, void* buffer, size_t size,
                off_t offset)
 {
-#ifdef USE_UBLIO
-       return ublio_pread(dev->ufh, buffer, size, offset);
-#else
        return pread(dev->fd, buffer, size, offset);
        return pread(dev->fd, buffer, size, offset);
-#endif
 }
 
 ssize_t exfat_pwrite(struct exfat_dev* dev, const void* buffer, size_t size,
                off_t offset)
 {
 }
 
 ssize_t exfat_pwrite(struct exfat_dev* dev, const void* buffer, size_t size,
                off_t offset)
 {
-#ifdef USE_UBLIO
-       return ublio_pwrite(dev->ufh, buffer, size, offset);
-#else
        return pwrite(dev->fd, buffer, size, offset);
        return pwrite(dev->fd, buffer, size, offset);
-#endif
 }
 
 ssize_t exfat_generic_pread(const struct exfat* ef, struct exfat_node* node,
 }
 
 ssize_t exfat_generic_pread(const struct exfat* ef, struct exfat_node* node,
index fd8982bff7430901114ea4bbea428240c8a822bb..e37b0d8d6f5dfe89dba9bf26bfdeedd1b1fb0066 100644 (file)
@@ -3,7 +3,7 @@
        exFAT file system implementation library.
 
        Free exFAT implementation.
        exFAT file system implementation library.
 
        Free exFAT implementation.
-       Copyright (C) 2010-2015  Andrew Nayenko
+       Copyright (C) 2010-2016  Andrew Nayenko
 
        This program is free software; you can redistribute it and/or modify
        it under the terms of the GNU General Public License as published by
 
        This program is free software; you can redistribute it and/or modify
        it under the terms of the GNU General Public License as published by
index d5bb3899bd152ed16b07ed725a1fa3090249f833..30b64108df127d8b112de346fa019cf1e51b36d7 100644 (file)
@@ -3,7 +3,7 @@
        exFAT file system implementation library.
 
        Free exFAT implementation.
        exFAT file system implementation library.
 
        Free exFAT implementation.
-       Copyright (C) 2010-2015  Andrew Nayenko
+       Copyright (C) 2010-2016  Andrew Nayenko
 
        This program is free software; you can redistribute it and/or modify
        it under the terms of the GNU General Public License as published by
 
        This program is free software; you can redistribute it and/or modify
        it under the terms of the GNU General Public License as published by
@@ -61,10 +61,7 @@ struct exfat_node* exfat_readdir(struct exfat* ef, struct exfat_iterator* it)
 
 static int compare_char(struct exfat* ef, uint16_t a, uint16_t b)
 {
 
 static int compare_char(struct exfat* ef, uint16_t a, uint16_t b)
 {
-       if (a >= ef->upcase_chars || b >= ef->upcase_chars)
-               return (int) a - (int) b;
-
-       return (int) le16_to_cpu(ef->upcase[a]) - (int) le16_to_cpu(ef->upcase[b]);
+       return (int) ef->upcase[a] - (int) ef->upcase[b];
 }
 
 static int compare_name(struct exfat* ef, const le16_t* a, const le16_t* b)
 }
 
 static int compare_name(struct exfat* ef, const le16_t* a, const le16_t* b)
index 0d6ce9ead7514b08283d1e0fe8f58b6edcec3fdc..b1ce6543884d3155b4552863781e3c79c4c2bba2 100644 (file)
@@ -3,7 +3,7 @@
        exFAT file system implementation library.
 
        Free exFAT implementation.
        exFAT file system implementation library.
 
        Free exFAT implementation.
-       Copyright (C) 2010-2015  Andrew Nayenko
+       Copyright (C) 2010-2016  Andrew Nayenko
 
        This program is free software; you can redistribute it and/or modify
        it under the terms of the GNU General Public License as published by
 
        This program is free software; you can redistribute it and/or modify
        it under the terms of the GNU General Public License as published by
@@ -376,5 +376,4 @@ void exfat_unmount(struct exfat* ef)
        ef->sb = NULL;
        free(ef->upcase);
        ef->upcase = NULL;
        ef->sb = NULL;
        free(ef->upcase);
        ef->upcase = NULL;
-       ef->upcase_chars = 0;
 }
 }
index 4dd4dc6a4c6085a8a8f3622609951451aa7b2d87..fa04e257709eb8d5e949c74ab22d19c8738fd000 100644 (file)
@@ -3,7 +3,7 @@
        exFAT file system implementation library.
 
        Free exFAT implementation.
        exFAT file system implementation library.
 
        Free exFAT implementation.
-       Copyright (C) 2010-2015  Andrew Nayenko
+       Copyright (C) 2010-2016  Andrew Nayenko
 
        This program is free software; you can redistribute it and/or modify
        it under the terms of the GNU General Public License as published by
 
        This program is free software; you can redistribute it and/or modify
        it under the terms of the GNU General Public License as published by
@@ -227,6 +227,26 @@ static bool check_node(const struct exfat_node* node, uint16_t actual_checksum,
        return true;
 }
 
        return true;
 }
 
+static void decompress_upcase(uint16_t* output, const le16_t* source,
+               size_t size)
+{
+       size_t si;
+       size_t oi;
+
+       for (oi = 0; oi < EXFAT_UPCASE_CHARS; oi++)
+               output[oi] = oi;
+
+       for (si = 0, oi = 0; si < size && oi < EXFAT_UPCASE_CHARS; si++)
+       {
+               uint16_t ch = le16_to_cpu(source[si]);
+
+               if (ch == 0xffff && si + 1 < size)      /* indicates a run */
+                       oi += le16_to_cpu(source[++si]);
+               else
+                       output[oi++] = ch;
+       }
+}
+
 /*
  * Reads one entry in directory at position pointed by iterator and fills
  * node structure.
 /*
  * Reads one entry in directory at position pointed by iterator and fills
  * node structure.
@@ -247,6 +267,8 @@ static int readdir(struct exfat* ef, const struct exfat_node* parent,
        uint16_t reference_checksum = 0;
        uint16_t actual_checksum = 0;
        uint64_t valid_size = 0;
        uint16_t reference_checksum = 0;
        uint16_t actual_checksum = 0;
        uint64_t valid_size = 0;
+       uint64_t upcase_size = 0;
+       le16_t* upcase_comp = NULL;
 
        *node = NULL;
 
 
        *node = NULL;
 
@@ -371,33 +393,48 @@ static int readdir(struct exfat* ef, const struct exfat_node* parent,
                                                le32_to_cpu(upcase->start_cluster));
                                goto error;
                        }
                                                le32_to_cpu(upcase->start_cluster));
                                goto error;
                        }
-                       if (le64_to_cpu(upcase->size) == 0 ||
-                               le64_to_cpu(upcase->size) > 0xffff * sizeof(uint16_t) ||
-                               le64_to_cpu(upcase->size) % sizeof(uint16_t) != 0)
+                       upcase_size = le64_to_cpu(upcase->size);
+                       if (upcase_size == 0 ||
+                               upcase_size > EXFAT_UPCASE_CHARS * sizeof(uint16_t) ||
+                               upcase_size % sizeof(uint16_t) != 0)
                        {
                                exfat_error("bad upcase table size (%"PRIu64" bytes)",
                        {
                                exfat_error("bad upcase table size (%"PRIu64" bytes)",
-                                               le64_to_cpu(upcase->size));
+                                               upcase_size);
                                goto error;
                        }
                                goto error;
                        }
-                       ef->upcase = malloc(le64_to_cpu(upcase->size));
-                       if (ef->upcase == NULL)
+                       upcase_comp = malloc(upcase_size);
+                       if (upcase_comp == NULL)
                        {
                                exfat_error("failed to allocate upcase table (%"PRIu64" bytes)",
                        {
                                exfat_error("failed to allocate upcase table (%"PRIu64" bytes)",
-                                               le64_to_cpu(upcase->size));
+                                               upcase_size);
                                rc = -ENOMEM;
                                goto error;
                        }
                                rc = -ENOMEM;
                                goto error;
                        }
-                       ef->upcase_chars = le64_to_cpu(upcase->size) / sizeof(le16_t);
 
 
-                       if (exfat_pread(ef->dev, ef->upcase, le64_to_cpu(upcase->size),
+                       /* read compressed upcase table */
+                       if (exfat_pread(ef->dev, upcase_comp, upcase_size,
                                        exfat_c2o(ef, le32_to_cpu(upcase->start_cluster))) < 0)
                        {
                                        exfat_c2o(ef, le32_to_cpu(upcase->start_cluster))) < 0)
                        {
+                               free(upcase_comp);
                                exfat_error("failed to read upper case table "
                                                "(%"PRIu64" bytes starting at cluster %#x)",
                                exfat_error("failed to read upper case table "
                                                "(%"PRIu64" bytes starting at cluster %#x)",
-                                               le64_to_cpu(upcase->size),
+                                               upcase_size,
                                                le32_to_cpu(upcase->start_cluster));
                                goto error;
                        }
                                                le32_to_cpu(upcase->start_cluster));
                                goto error;
                        }
+
+                       /* decompress upcase table */
+                       ef->upcase = calloc(EXFAT_UPCASE_CHARS, sizeof(uint16_t));
+                       if (ef->upcase == NULL)
+                       {
+                               free(upcase_comp);
+                               exfat_error("failed to allocate decompressed upcase table");
+                               rc = -ENOMEM;
+                               goto error;
+                       }
+                       decompress_upcase(ef->upcase, upcase_comp,
+                                       upcase_size / sizeof(uint16_t));
+                       free(upcase_comp);
                        break;
 
                case EXFAT_ENTRY_BITMAP:
                        break;
 
                case EXFAT_ENTRY_BITMAP:
index 99fe507af3c429ec83768196ece1435a4727c564..4c5a0df59d42a9b3add8a6a888088a0e9a2aeae9 100644 (file)
@@ -4,7 +4,7 @@
        same kernel can use different libc implementations.
 
        Free exFAT implementation.
        same kernel can use different libc implementations.
 
        Free exFAT implementation.
-       Copyright (C) 2010-2015  Andrew Nayenko
+       Copyright (C) 2010-2016  Andrew Nayenko
 
        This program is free software; you can redistribute it and/or modify
        it under the terms of the GNU General Public License as published by
 
        This program is free software; you can redistribute it and/or modify
        it under the terms of the GNU General Public License as published by
index 45c4aff65d605f7081c2d060b96bf0d786a4ea00..7d2becdae68871c756731e94471f71295a14d351 100644 (file)
@@ -3,7 +3,7 @@
        exFAT file system implementation library.
 
        Free exFAT implementation.
        exFAT file system implementation library.
 
        Free exFAT implementation.
-       Copyright (C) 2010-2015  Andrew Nayenko
+       Copyright (C) 2010-2016  Andrew Nayenko
 
        This program is free software; you can redistribute it and/or modify
        it under the terms of the GNU General Public License as published by
 
        This program is free software; you can redistribute it and/or modify
        it under the terms of the GNU General Public License as published by
index 6f14882e8a4694f98820d61d718c3fcceb653ce9..98ae52dbebc19445048025e39304ce719584581d 100644 (file)
@@ -3,7 +3,7 @@
        exFAT file system implementation library.
 
        Free exFAT implementation.
        exFAT file system implementation library.
 
        Free exFAT implementation.
-       Copyright (C) 2010-2015  Andrew Nayenko
+       Copyright (C) 2010-2016  Andrew Nayenko
 
        This program is free software; you can redistribute it and/or modify
        it under the terms of the GNU General Public License as published by
 
        This program is free software; you can redistribute it and/or modify
        it under the terms of the GNU General Public License as published by
index 388f360d975af01cfd479a64e5220fbf0f18e53d..0d3b809218c37acd4c347bfd86614dd97997b49f 100644 (file)
@@ -3,7 +3,7 @@
        exFAT file system implementation library.
 
        Free exFAT implementation.
        exFAT file system implementation library.
 
        Free exFAT implementation.
-       Copyright (C) 2010-2015  Andrew Nayenko
+       Copyright (C) 2010-2016  Andrew Nayenko
 
        This program is free software; you can redistribute it and/or modify
        it under the terms of the GNU General Public License as published by
 
        This program is free software; you can redistribute it and/or modify
        it under the terms of the GNU General Public License as published by
@@ -124,8 +124,7 @@ le16_t exfat_calc_name_hash(const struct exfat* ef, const le16_t* name)
                uint16_t c = le16_to_cpu(name[i]);
 
                /* convert to upper case */
                uint16_t c = le16_to_cpu(name[i]);
 
                /* convert to upper case */
-               if (c < ef->upcase_chars)
-                       c = le16_to_cpu(ef->upcase[c]);
+               c = ef->upcase[c];
 
                hash = ((hash << 15) | (hash >> 1)) + (c & 0xff);
                hash = ((hash << 15) | (hash >> 1)) + (c >> 8);
 
                hash = ((hash << 15) | (hash >> 1)) + (c & 0xff);
                hash = ((hash << 15) | (hash >> 1)) + (c >> 8);
index ea97a1f9e6f88c655662c1ad32a5d8a26b65a6d8..b411a96e0051923d3c578569a14b15d01f1524a2 100644 (file)
@@ -3,7 +3,7 @@
 #      Automake source.
 #
 #      Free exFAT implementation.
 #      Automake source.
 #
 #      Free exFAT implementation.
-#      Copyright (C) 2011-2015  Andrew Nayenko
+#      Copyright (C) 2011-2016  Andrew Nayenko
 #
 #      This program is free software; you can redistribute it and/or modify
 #      it under the terms of the GNU General Public License as published by
 #
 #      This program is free software; you can redistribute it and/or modify
 #      it under the terms of the GNU General Public License as published by
index 64864a46553746900187e849d7ce6c4ab741aa97..0e4840f00439f205cc8cceb6865fc627e30975b4 100644 (file)
@@ -19,7 +19,7 @@
 #      Automake source.
 #
 #      Free exFAT implementation.
 #      Automake source.
 #
 #      Free exFAT implementation.
-#      Copyright (C) 2011-2015  Andrew Nayenko
+#      Copyright (C) 2011-2016  Andrew Nayenko
 #
 #      This program is free software; you can redistribute it and/or modify
 #      it under the terms of the GNU General Public License as published by
 #
 #      This program is free software; you can redistribute it and/or modify
 #      it under the terms of the GNU General Public License as published by
@@ -119,7 +119,7 @@ mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/libexfat/config.h
 CONFIG_CLEAN_FILES =
 CONFIG_CLEAN_VPATH_FILES =
 CONFIG_HEADER = $(top_builddir)/libexfat/config.h
 CONFIG_CLEAN_FILES =
 CONFIG_CLEAN_VPATH_FILES =
-am__installdirs = "$(DESTDIR)$(sbindir)"
+am__installdirs = "$(DESTDIR)$(sbindir)" "$(DESTDIR)$(man8dir)"
 PROGRAMS = $(sbin_PROGRAMS)
 am_mkexfatfs_OBJECTS = mkexfatfs-cbm.$(OBJEXT) mkexfatfs-fat.$(OBJEXT) \
        mkexfatfs-main.$(OBJEXT) mkexfatfs-mkexfat.$(OBJEXT) \
 PROGRAMS = $(sbin_PROGRAMS)
 am_mkexfatfs_OBJECTS = mkexfatfs-cbm.$(OBJEXT) mkexfatfs-fat.$(OBJEXT) \
        mkexfatfs-main.$(OBJEXT) mkexfatfs-mkexfat.$(OBJEXT) \
@@ -547,7 +547,6 @@ mkexfatfs-vbr.obj: vbr.c
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='vbr.c' object='mkexfatfs-vbr.obj' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 @am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mkexfatfs_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mkexfatfs-vbr.obj `if test -f 'vbr.c'; then $(CYGPATH_W) 'vbr.c'; else $(CYGPATH_W) '$(srcdir)/vbr.c'; fi`
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='vbr.c' object='mkexfatfs-vbr.obj' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 @am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mkexfatfs_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mkexfatfs-vbr.obj `if test -f 'vbr.c'; then $(CYGPATH_W) 'vbr.c'; else $(CYGPATH_W) '$(srcdir)/vbr.c'; fi`
-
 install-man8: $(dist_man8_MANS)
        @$(NORMAL_INSTALL)
        @list1='$(dist_man8_MANS)'; \
 install-man8: $(dist_man8_MANS)
        @$(NORMAL_INSTALL)
        @list1='$(dist_man8_MANS)'; \
@@ -674,9 +673,9 @@ distdir: $(DISTFILES)
        done
 check-am: all-am
 check: check-am
        done
 check-am: all-am
 check: check-am
-all-am: Makefile $(PROGRAMS)
+all-am: Makefile $(PROGRAMS) $(MANS)
 installdirs:
 installdirs:
-       for dir in "$(DESTDIR)$(sbindir)"; do \
+       for dir in "$(DESTDIR)$(sbindir)" "$(DESTDIR)$(man8dir)"; do \
          test -z "$$dir" || $(MKDIR_P) "$$dir"; \
        done
 install: install-am
          test -z "$$dir" || $(MKDIR_P) "$$dir"; \
        done
 install: install-am
@@ -731,7 +730,7 @@ info: info-am
 
 info-am:
 
 
 info-am:
 
-install-data-am:
+install-data-am: install-man
 
 install-dvi: install-dvi-am
 
 
 install-dvi: install-dvi-am
 
@@ -777,7 +776,7 @@ ps: ps-am
 
 ps-am:
 
 
 ps-am:
 
-uninstall-am: uninstall-sbinPROGRAMS
+uninstall-am: uninstall-man uninstall-sbinPROGRAMS
        @$(NORMAL_INSTALL)
        $(MAKE) $(AM_MAKEFLAGS) uninstall-hook
 uninstall-man: uninstall-man8
        @$(NORMAL_INSTALL)
        $(MAKE) $(AM_MAKEFLAGS) uninstall-hook
 uninstall-man: uninstall-man8
index 025057132912c727be12071441fc570ee2413724..57e57845f541d21f2e3598098dc1b8d6204bf134 100644 (file)
@@ -3,7 +3,7 @@
        Clusters Bitmap creation code.
 
        Free exFAT implementation.
        Clusters Bitmap creation code.
 
        Free exFAT implementation.
-       Copyright (C) 2011-2015  Andrew Nayenko
+       Copyright (C) 2011-2016  Andrew Nayenko
 
        This program is free software; you can redistribute it and/or modify
        it under the terms of the GNU General Public License as published by
 
        This program is free software; you can redistribute it and/or modify
        it under the terms of the GNU General Public License as published by
index 414b0d72273efe07ef6deb5e4d39fd33ffbe14f5..cc5a7db35e04fa70129a1392aa547a2ccc94ef89 100644 (file)
@@ -3,7 +3,7 @@
        Clusters Bitmap creation code.
 
        Free exFAT implementation.
        Clusters Bitmap creation code.
 
        Free exFAT implementation.
-       Copyright (C) 2011-2015  Andrew Nayenko
+       Copyright (C) 2011-2016  Andrew Nayenko
 
        This program is free software; you can redistribute it and/or modify
        it under the terms of the GNU General Public License as published by
 
        This program is free software; you can redistribute it and/or modify
        it under the terms of the GNU General Public License as published by
index c70dc863705d1463a9c37f02afce248c8537254b..0ca3f3a4770bf11ae98caa6fa4c2a796e089e0e4 100644 (file)
@@ -3,7 +3,7 @@
        File Allocation Table creation code.
 
        Free exFAT implementation.
        File Allocation Table creation code.
 
        Free exFAT implementation.
-       Copyright (C) 2011-2015  Andrew Nayenko
+       Copyright (C) 2011-2016  Andrew Nayenko
 
        This program is free software; you can redistribute it and/or modify
        it under the terms of the GNU General Public License as published by
 
        This program is free software; you can redistribute it and/or modify
        it under the terms of the GNU General Public License as published by
index 9370cf3991e9aed47914673870971d19ee7783fd..fce809c085d61fb3b97faf418f01b6d781f69410 100644 (file)
@@ -3,7 +3,7 @@
        File Allocation Table creation code.
 
        Free exFAT implementation.
        File Allocation Table creation code.
 
        Free exFAT implementation.
-       Copyright (C) 2011-2015  Andrew Nayenko
+       Copyright (C) 2011-2016  Andrew Nayenko
 
        This program is free software; you can redistribute it and/or modify
        it under the terms of the GNU General Public License as published by
 
        This program is free software; you can redistribute it and/or modify
        it under the terms of the GNU General Public License as published by
index 2ee6da6ac2b27890d647108302c6c91107f25ed8..a164eebf82826b49af31a21bc0f54d7af1191172 100644 (file)
@@ -3,7 +3,7 @@
        Creates exFAT file system.
 
        Free exFAT implementation.
        Creates exFAT file system.
 
        Free exFAT implementation.
-       Copyright (C) 2011-2015  Andrew Nayenko
+       Copyright (C) 2011-2016  Andrew Nayenko
 
        This program is free software; you can redistribute it and/or modify
        it under the terms of the GNU General Public License as published by
 
        This program is free software; you can redistribute it and/or modify
        it under the terms of the GNU General Public License as published by
@@ -228,7 +228,7 @@ int main(int argc, char* argv[])
                        }
                        break;
                case 'V':
                        }
                        break;
                case 'V':
-                       puts("Copyright (C) 2011-2015  Andrew Nayenko");
+                       puts("Copyright (C) 2011-2016  Andrew Nayenko");
                        return 0;
                default:
                        usage(argv[0]);
                        return 0;
                default:
                        usage(argv[0]);
index 4b7a344c8005b2452ff93fddfdc653163c068473..07a48d2eeb4c358735abc4e27393607527196519 100644 (file)
@@ -3,7 +3,7 @@
        FS creation engine.
 
        Free exFAT implementation.
        FS creation engine.
 
        Free exFAT implementation.
-       Copyright (C) 2011-2015  Andrew Nayenko
+       Copyright (C) 2011-2016  Andrew Nayenko
 
        This program is free software; you can redistribute it and/or modify
        it under the terms of the GNU General Public License as published by
 
        This program is free software; you can redistribute it and/or modify
        it under the terms of the GNU General Public License as published by
index 8d2b5e393a5a54f2c0a5f16806b0ad3143abe0bb..b15922c37eb4ddce672ad3539a260a8e70fbcd2c 100644 (file)
@@ -3,7 +3,7 @@
        FS creation engine.
 
        Free exFAT implementation.
        FS creation engine.
 
        Free exFAT implementation.
-       Copyright (C) 2011-2015  Andrew Nayenko
+       Copyright (C) 2011-2016  Andrew Nayenko
 
        This program is free software; you can redistribute it and/or modify
        it under the terms of the GNU General Public License as published by
 
        This program is free software; you can redistribute it and/or modify
        it under the terms of the GNU General Public License as published by
index e3394688dbab509d4765654925a8797338118e29..74e0bfed308dec8864d02a3a06055f9ff7ea5ad3 100644 (file)
@@ -1,4 +1,4 @@
-.\" Copyright (C) 2011-2015  Andrew Nayenko
+.\" Copyright (C) 2011-2016  Andrew Nayenko
 .\"
 .TH MKEXFATFS 8 "January 2011"
 .SH NAME
 .\"
 .TH MKEXFATFS 8 "January 2011"
 .SH NAME
index 84fa31f40f2438ed3a4765046a41adaae24b3453..8341039924194127fc07c7fd911935dc3be2f6f4 100644 (file)
@@ -3,7 +3,7 @@
        Root directory creation code.
 
        Free exFAT implementation.
        Root directory creation code.
 
        Free exFAT implementation.
-       Copyright (C) 2011-2015  Andrew Nayenko
+       Copyright (C) 2011-2016  Andrew Nayenko
 
        This program is free software; you can redistribute it and/or modify
        it under the terms of the GNU General Public License as published by
 
        This program is free software; you can redistribute it and/or modify
        it under the terms of the GNU General Public License as published by
index 56db5b0260d81052ffdd3aa9790864e272ddcb5e..26be1d6c3478ac437f06ba899dfa85785af24f4f 100644 (file)
@@ -3,7 +3,7 @@
        Root directory creation code.
 
        Free exFAT implementation.
        Root directory creation code.
 
        Free exFAT implementation.
-       Copyright (C) 2011-2015  Andrew Nayenko
+       Copyright (C) 2011-2016  Andrew Nayenko
 
        This program is free software; you can redistribute it and/or modify
        it under the terms of the GNU General Public License as published by
 
        This program is free software; you can redistribute it and/or modify
        it under the terms of the GNU General Public License as published by
index d1deb2d0227a05656851ee98960bb746d0fa87d7..7d708fb2ae3d8dbb4fe149546edd5d7a9f46977e 100644 (file)
@@ -3,7 +3,7 @@
        Upper Case Table creation code.
 
        Free exFAT implementation.
        Upper Case Table creation code.
 
        Free exFAT implementation.
-       Copyright (C) 2011-2015  Andrew Nayenko
+       Copyright (C) 2011-2016  Andrew Nayenko
 
        This program is free software; you can redistribute it and/or modify
        it under the terms of the GNU General Public License as published by
 
        This program is free software; you can redistribute it and/or modify
        it under the terms of the GNU General Public License as published by
index 3a08db967beb1ae1dd467bd8b5d21ee3ad1f3e33..731f0cbc1fe66f99f1f736b336b1c7cba469c66e 100644 (file)
@@ -3,7 +3,7 @@
        Upper Case Table creation code.
 
        Free exFAT implementation.
        Upper Case Table creation code.
 
        Free exFAT implementation.
-       Copyright (C) 2011-2015  Andrew Nayenko
+       Copyright (C) 2011-2016  Andrew Nayenko
 
        This program is free software; you can redistribute it and/or modify
        it under the terms of the GNU General Public License as published by
 
        This program is free software; you can redistribute it and/or modify
        it under the terms of the GNU General Public License as published by
index 5849f3777ae128df76bc7942ec45ae7ab3152e3f..08da19c39d4f30886103c1477e8e1d066a9cfff0 100644 (file)
@@ -3,7 +3,7 @@
        Upper Case Table contents.
 
        Free exFAT implementation.
        Upper Case Table contents.
 
        Free exFAT implementation.
-       Copyright (C) 2011-2015  Andrew Nayenko
+       Copyright (C) 2011-2016  Andrew Nayenko
 
        This program is free software; you can redistribute it and/or modify
        it under the terms of the GNU General Public License as published by
 
        This program is free software; you can redistribute it and/or modify
        it under the terms of the GNU General Public License as published by
index 3e200f1542dd410dd61d580e144bde5c003eb74f..7ca31e7575b3fcb5db2704fdceedc48c94b3ed3b 100644 (file)
@@ -3,7 +3,7 @@
        Upper Case Table declaration.
 
        Free exFAT implementation.
        Upper Case Table declaration.
 
        Free exFAT implementation.
-       Copyright (C) 2011-2015  Andrew Nayenko
+       Copyright (C) 2011-2016  Andrew Nayenko
 
        This program is free software; you can redistribute it and/or modify
        it under the terms of the GNU General Public License as published by
 
        This program is free software; you can redistribute it and/or modify
        it under the terms of the GNU General Public License as published by
index 702aa6d1466fee540bbbbc5f5cbd75c9c369cbde..481fd63241e0cb7f17217d7820bd571f73d5109e 100644 (file)
@@ -3,7 +3,7 @@
        Volume Boot Record creation code.
 
        Free exFAT implementation.
        Volume Boot Record creation code.
 
        Free exFAT implementation.
-       Copyright (C) 2011-2015  Andrew Nayenko
+       Copyright (C) 2011-2016  Andrew Nayenko
 
        This program is free software; you can redistribute it and/or modify
        it under the terms of the GNU General Public License as published by
 
        This program is free software; you can redistribute it and/or modify
        it under the terms of the GNU General Public License as published by
index 74e60e50c1ce075a860344b7233c88be5cc57e73..9cc038f78a26702ac22b1be30521f94983ebd60d 100644 (file)
@@ -3,7 +3,7 @@
        Volume Boot Record creation code.
 
        Free exFAT implementation.
        Volume Boot Record creation code.
 
        Free exFAT implementation.
-       Copyright (C) 2011-2015  Andrew Nayenko
+       Copyright (C) 2011-2016  Andrew Nayenko
 
        This program is free software; you can redistribute it and/or modify
        it under the terms of the GNU General Public License as published by
 
        This program is free software; you can redistribute it and/or modify
        it under the terms of the GNU General Public License as published by