/ vendor / fatfs / documents / updates.txt
updates.txt
  1  R0.14 (October 14, 2019)
  2    Added support for 64-bit LBA and GUID partition table (FF_LBA64 = 1)
  3    Changed some API functions, f_mkfs() and f_fdisk().
  4    Fixed f_open() function cannot find the file with file name in length of FF_MAX_LFN characters.
  5    Fixed f_readdir() function cannot retrieve long file names in length of FF_MAX_LFN - 1 characters.
  6    Fixed f_readdir() function returns file names with wrong case conversion. (appeared at R0.12)
  7    Fixed f_mkfs() function can fail to create exFAT volume in the second partition. (appeared at R0.12)
  8  
  9  R0.13c (October 14, 2018)
 10    Supported stdint.h for C99 and later. (integer.h was included in ff.h)
 11    Fixed reading a directory gets infinite loop when the last directory entry is not empty. (appeared at R0.12)
 12    Fixed creating a sub-directory in the fragmented sub-directory on the exFAT volume collapses FAT chain of the parent directory. (appeared at R0.12)
 13    Fixed f_getcwd() cause output buffer overrun when the buffer has a valid drive number. (appeared at R0.13b)
 14  
 15  R0.13b (April 07, 2018)
 16    Added support for UTF-32 encoding on the API. (FF_LFN_UNICODE = 3)
 17    Added support for Unix style volume prefix. (FF_STR_VOLUME_ID = 2)
 18    Fixed accesing any object on the exFAT root directory beyond the cluster boundary can fail. (appeared at R0.12c)
 19    Fixed f_setlabel() does not reject some invalid characters. (appeared at R0.09b)
 20  
 21  R0.13a (October 14, 2017)
 22    Added support for UTF-8 encoding on the API. (FF_LFN_UNICODE = 2)
 23    Added options for file name output buffer. (FF_LFN_BUF, FF_SFN_BUF).
 24    Added dynamic memory allocation option for working buffer of f_mkfs() and f_fdisk().
 25    Fixed f_fdisk() and f_mkfs() create the partition table with wrong CHS parameters. (appeared at R0.09)
 26    Fixed f_unlink() can cause lost clusters at fragmented file on the exFAT volume. (appeared at R0.12c)
 27    Fixed f_setlabel() rejects some valid characters for exFAT volume. (appeared at R0.12)
 28  
 29  R0.13 (May 21, 2017)
 30    Changed heading character of configuration keywords "_" to "FF_".
 31    Removed ASCII-only configuration, FF_CODE_PAGE = 1. Use FF_CODE_PAGE = 437 instead.
 32    Added f_setcp(), run-time code page configuration. (FF_CODE_PAGE = 0)
 33    Improved cluster allocation time on stretch a deep buried cluster chain.
 34    Improved processing time of f_mkdir() with large cluster size by using FF_USE_LFN = 3.
 35    Improved NoFatChain flag of the fragmented file to be set after it is truncated and got contiguous.
 36    Fixed archive attribute is left not set when a file on the exFAT volume is renamed. (appeared at R0.12)
 37    Fixed exFAT FAT entry can be collapsed when write or lseek operation to the existing file is done. (appeared at R0.12c)
 38    Fixed creating a file can fail when a new cluster allocation to the exFAT directory occures. (appeared at R0.12c)
 39  
 40  R0.12c (March 04, 2017)
 41    Improved write throughput at the fragmented file on the exFAT volume.
 42    Made memory usage for exFAT be able to be reduced as decreasing _MAX_LFN.
 43    Fixed successive f_getfree() can return wrong count on the FAT12/16 volume. (appeared at R0.12)
 44    Fixed configuration option _VOLUMES cannot be set 10. (appeared at R0.10c)
 45  
 46  R0.12b (September 4, 2016)
 47    Made f_rename() be able to rename objects with the same name but case.
 48    Fixed an error in the case conversion teble of code page 866. (ff.c)
 49    Fixed writing data is truncated at the file offset 4GiB on the exFAT volume. (appeared at R0.12)
 50    Fixed creating a file in the root directory of exFAT volume can fail. (appeared at R0.12)
 51    Fixed f_mkfs() creating exFAT volume with too small cluster size can collapse unallocated memory. (appeared at R0.12a)
 52    Fixed wrong object name can be returned when read directory at Unicode cfg. (appeared at R0.12)
 53    Fixed large file allocation/removing on the exFAT volume collapses allocation bitmap. (appeared at R0.12)
 54    Fixed some internal errors in f_expand() and f_lseek(). (appeared at R0.12)
 55  
 56  R0.12a (July 10, 2016)
 57    Added support for creating exFAT volume with some changes of f_mkfs().
 58    Added a file open method FA_OPEN_APPEND. An f_lseek() following f_open() is no longer needed.
 59    f_forward() is available regardless of _FS_TINY.
 60    Fixed f_mkfs() creates wrong volume. (appeared at R0.12)
 61    Fixed wrong memory read in create_name(). (appeared at R0.12)
 62    Fixed compilation fails at some configurations, _USE_FASTSEEK and _USE_FORWARD.
 63  
 64  R0.12 (April 12, 2016)
 65    Added support for exFAT file system. (_FS_EXFAT)
 66    Added f_expand(). (_USE_EXPAND)
 67    Changed some members in FINFO structure and behavior of f_readdir().
 68    Added an option _USE_CHMOD and removed an option _WORD_ACCESS.
 69    Fixed errors in the case conversion teble of Unicode (cc*.c).
 70  
 71  R0.11a (September 5, 2015)
 72    Fixed wrong media change can lead a deadlock at thread-safe configuration.
 73    Added code page 771, 860, 861, 863, 864, 865 and 869. (_CODE_PAGE)
 74    Removed some code pages actually not exist on the standard systems. (_CODE_PAGE)
 75    Fixed errors in the case conversion teble of code page 437 and 850 (ff.c).
 76    Fixed errors in the case conversion teble of Unicode (cc*.c).
 77  
 78  R0.11 (February 9, 2015)
 79    Added f_findfirst() and f_findnext(). (_USE_FIND)
 80    Fixed f_unlink() does not remove cluster chain of the file. (appeared at R0.10c)
 81    Fixed _FS_NORTC option does not work properly. (appeared at R0.10c)
 82  
 83  R0.10c (November 9, 2014)
 84    Added a configuration option for the platforms without RTC. (_FS_NORTC)
 85    Fixed volume label created by Mac OS X cannot be retrieved with f_getlabel(). (appeared at R0.09b)
 86    Fixed a potential problem of FAT access that can appear on disk error.
 87    Fixed null pointer dereference on attempting to delete the root direcotry. (appeared at R0.08)
 88  
 89  R0.10b (May 19, 2014)
 90    Fixed a hard error in the disk I/O layer can collapse the directory entry.
 91    Fixed LFN entry is not deleted on delete/rename an object with its lossy converted SFN. (appeared at R0.07)
 92  
 93  R0.10a (January 15, 2014)
 94    Added arbitrary strings as drive number in the path name. (_STR_VOLUME_ID)
 95    Added an option for minimum sector size. (_MIN_SS)
 96    2nd argument of f_rename() can have a drive number and it will be ignored.
 97    Fixed f_mount() with forced mount fails when drive number is larger than 0. (appeared at R0.10)
 98    Fixed f_close() invalidates the file object without volume lock.
 99    Fixed volume lock is left acquired after return from f_closedir(). (appeared at R0.10)
100    Fixed creation of a directory entry with LFN fails on too many SFN collisions. (appeared at R0.07)
101  
102  R0.10 (October 2, 2013)
103    Added an option for character encoding on the file. (_STRF_ENCODE)
104    Added f_closedir().
105    Added forced full FAT scan option for f_getfree(). (_FS_NOFSINFO)
106    Added forced mount option with changes of f_mount().
107    Improved behavior of volume auto detection.
108    Improved write throughput of f_puts() and f_printf().
109    Changed argument of f_chdrive(), f_mkfs(), disk_read() and disk_write().
110    Fixed f_write() can be truncated when the file size is close to 4GB.
111    Fixed f_open(), f_mkdir() and f_setlabel() can return incorrect result code on error.
112  
113  R0.09b (January 24, 2013)
114    Added f_getlabel() and f_setlabel(). (_USE_LABEL = 1)
115  
116  R0.09a (August 27, 2012)
117    Fixed assertion failure due to OS/2 EA on FAT12/16 volume.
118    Changed file functions reject null object pointer to avoid crash.
119    Changed option name _FS_SHARE to _FS_LOCK.
120  
121  R0.09 (September 6, 2011)
122    f_mkfs() supports multiple partition on a physical drive.
123    Added f_fdisk(). (_MULTI_PARTITION = 2)
124  
125  R0.08b (January 15, 2011)
126    Fast seek function is also applied to f_read() and f_write().
127    f_lseek() reports required table size on creating CLMP.
128    Extended format syntax of f_printf().
129    Ignores duplicated directory separators in given path names.
130  
131  R0.08a (August 16, 2010)
132    Added f_getcwd(). (_FS_RPATH = 2)
133    Added sector erase function. (_USE_ERASE)
134    Moved file lock semaphore table from fs object to the bss.
135    Fixed a wrong directory entry is created on non-LFN cfg when the given name contains ';'.
136    Fixed f_mkfs() creates wrong FAT32 volume.
137  
138  R0.08 (May 15, 2010)
139    Added a memory configuration option. (_USE_LFN)
140    Added support of file lock. (_FS_SHARE)
141    Added fast seek function. (_USE_FASTSEEK)
142    Changed some types on the API, XCHAR->TCHAR.
143    Changed fname member in the FILINFO structure on Unicode cfg.
144    String functions support UTF-8 encoding files on Unicode cfg.
145  
146  R0.07e (November 3, 2009)
147    Separated out configuration options from ff.h to ffconf.h.
148    Added a configuration option, _LFN_UNICODE.
149    Fixed f_unlink() fails to remove a sub-dir on _FS_RPATH.
150    Fixed name matching error on the 13 char boundary.
151    Changed f_readdir() to return the SFN with always upper case on non-LFN cfg.
152  
153  R0.07c (Junuary 21, 2009)
154    Fixed f_unlink() may return FR_OK on error.
155    Fixed wrong cache control in f_lseek().
156    Added support of relative path.
157    Added f_chdir().
158    Added f_chdrive().
159    Added proper case conversion to extended characters.
160  
161  R0.07a (April 14, 2009)
162    Separated out OS dependent code on re-entrant configuration.
163    Added multiple sector size support.
164  
165  R0.07 (April 1, 2009)
166    Merged Tiny-FatFs into FatFs as a buffer configuration option.
167    Added long file name support.
168    Added multiple code page support.
169    Added re-entrancy for multitask operation.
170    Added auto cluster size selection to f_mkfs().
171    Added rewind option to f_readdir().
172    Changed result code of critical errors.
173    Renamed string functions to avoid name collision.
174  
175  R0.06 (April 1, 2008)
176    Added f_forward. (Tiny-FatFs)
177    Added string functions: fgets, fputc, fputs and fprintf.
178    Improved performance of f_lseek on moving to the same or following cluster.
179  
180  R0.05a (February 3, 2008)
181    Added f_truncate.
182    Added f_utime.
183    Fixed off by one error at FAT sub-type determination.
184    Fixed btr in f_read can be mistruncated.
185    Fixed cached sector is left not flushed when create and close without write.
186  
187  R0.05 (August 26, 2007)
188    Changed arguments of f_read, f_write.
189    Changed arguments of f_mkfs. (FatFs)
190    Fixed f_mkfs on FAT32 creates incorrect FSInfo. (FatFs)
191    Fixed f_mkdir on FAT32 creates incorrect directory. (FatFs)
192  
193  R0.04b (May 5, 2007)
194    Added _USE_NTFLAG option.
195    Added FSInfo support.
196    Fixed some problems corresponds to FAT32. (Tiny-FatFs)
197    Fixed DBCS name can result FR_INVALID_NAME.
198    Fixed short seek (<= csize) collapses the file object.
199  
200  R0.04a (April 1, 2007)
201    Supported multiple partitions on a plysical drive. (FatFs)
202    Added minimization level 3.
203    Added a capability of extending file size to f_lseek.
204    Fixed an endian sensitive code in f_mkfs. (FatFs)
205    Fixed a problem corresponds to FAT32 support. (Tiny-FatFs)
206  
207  R0.04 (February 4, 2007)
208    Supported multiple drive system. (FatFs)
209    Changed some APIs for multiple drive system.
210    Added f_mkfs. (FatFs)
211    Added _USE_FAT32 option. (Tiny-FatFs)
212  
213  R0.03a (December 11, 2006)
214    Improved cluster scan algolithm to write files fast.
215    Fixed f_mkdir creates incorrect directory on FAT32.
216  
217  R0.03 (September 22, 2006)
218    Added f_rename.
219    Changed option _FS_MINIMUM to _FS_MINIMIZE.
220  
221  R0.02a (June 10, 2006)
222    Added a configuration option _FS_MINIMUM.
223  
224  R0.02 (Jun 01, 2006)
225    Added FAT12.
226    Removed unbuffered mode.
227    Fixed a problem on small (<32M) patition.
228  
229  R0.01 (April 29, 2006)
230    First release
231  
232  R0.00 (February 26, 2006)
233    Prototype (not released)
234