xref: /reactos/sdk/tools/fatten/fatfs/00history.txt (revision 1734f297)
1----------------------------------------------------------------------------
2  Revision history of FatFs module
3----------------------------------------------------------------------------
4
5R0.00 (February 26, 2006)
6
7  Prototype.
8
9
10
11R0.01 (April 29, 2006)
12
13  First stable version.
14
15
16
17R0.02 (June 01, 2006)
18
19  Added FAT12 support.
20  Removed unbuffered mode.
21  Fixed a problem on small (<32M) partition.
22
23
24
25R0.02a (June 10, 2006)
26
27  Added a configuration option (_FS_MINIMUM).
28
29
30
31R0.03 (September 22, 2006)
32
33  Added f_rename().
34  Changed option _FS_MINIMUM to _FS_MINIMIZE.
35
36
37
38R0.03a (December 11, 2006)
39
40  Improved cluster scan algorithm to write files fast.
41  Fixed f_mkdir() creates incorrect directory on FAT32.
42
43
44
45R0.04 (February 04, 2007)
46
47  Added f_mkfs().
48  Supported multiple drive system.
49  Changed some interfaces for multiple drive system.
50  Changed f_mountdrv() to f_mount().
51
52
53
54R0.04a (April 01, 2007)
55
56  Supported multiple partitions on a physical drive.
57  Added a capability of extending file size to f_lseek().
58  Added minimization level 3.
59  Fixed an endian sensitive code in f_mkfs().
60
61
62
63R0.04b (May 05, 2007)
64
65  Added a configuration option _USE_NTFLAG.
66  Added FSINFO support.
67  Fixed DBCS name can result FR_INVALID_NAME.
68  Fixed short seek (<= csize) collapses the file object.
69
70
71
72R0.05 (August 25, 2007)
73
74  Changed arguments of f_read(), f_write() and f_mkfs().
75  Fixed f_mkfs() on FAT32 creates incorrect FSINFO.
76  Fixed f_mkdir() on FAT32 creates incorrect directory.
77
78
79
80R0.05a (February 03, 2008)
81
82  Added f_truncate() and f_utime().
83  Fixed off by one error at FAT sub-type determination.
84  Fixed btr in f_read() can be mistruncated.
85  Fixed cached sector is not flushed when create and close without write.
86
87
88
89R0.06 (April 01, 2008)
90
91  Added fputc(), fputs(), fprintf() and fgets().
92  Improved performance of f_lseek() on moving to the same or following cluster.
93
94
95
96R0.07 (April 01, 2009)
97
98  Merged Tiny-FatFs as a configuration option. (_FS_TINY)
99  Added long file name feature. (_USE_LFN)
100  Added multiple code page feature. (_CODE_PAGE)
101  Added re-entrancy for multitask operation. (_FS_REENTRANT)
102  Added auto cluster size selection to f_mkfs().
103  Added rewind option to f_readdir().
104  Changed result code of critical errors.
105  Renamed string functions to avoid name collision.
106
107
108
109R0.07a (April 14, 2009)
110
111  Septemberarated out OS dependent code on reentrant cfg.
112  Added multiple sector size feature.
113
114
115
116R0.07c (June 21, 2009)
117
118  Fixed f_unlink() can return FR_OK on error.
119  Fixed wrong cache control in f_lseek().
120  Added relative path feature.
121  Added f_chdir() and f_chdrive().
122  Added proper case conversion to extended character.
123
124
125
126R0.07e (November 03, 2009)
127
128  Septemberarated out configuration options from ff.h to ffconf.h.
129  Fixed f_unlink() fails to remove a sub-directory on _FS_RPATH.
130  Fixed name matching error on the 13 character boundary.
131  Added a configuration option, _LFN_UNICODE.
132  Changed f_readdir() to return the SFN with always upper case on non-LFN cfg.
133
134
135
136R0.08 (May 15, 2010)
137
138  Added a memory configuration option. (_USE_LFN = 3)
139  Added file lock feature. (_FS_SHARE)
140  Added fast seek feature. (_USE_FASTSEEK)
141  Changed some types on the API, XCHAR->TCHAR.
142  Changed .fname in the FILINFO structure on Unicode cfg.
143  String functions support UTF-8 encoding files on Unicode cfg.
144
145
146
147R0.08a (August 16, 2010)
148
149  Added f_getcwd(). (_FS_RPATH = 2)
150  Added sector erase feature. (_USE_ERASE)
151  Moved file lock semaphore table from fs object to the bss.
152  Fixed f_mkfs() creates wrong FAT32 volume.
153
154
155
156R0.08b (January 15, 2011)
157
158  Fast seek feature is also applied to f_read() and f_write().
159  f_lseek() reports required table size on creating CLMP.
160  Extended format syntax of f_printf().
161  Ignores duplicated directory separators in given path name.
162
163
164
165R0.09 (September 06, 2011)
166
167  f_mkfs() supports multiple partition to complete the multiple partition feature.
168  Added f_fdisk().
169
170
171
172R0.09a (August 27, 2012)
173
174  Changed f_open() and f_opendir() reject null object pointer to avoid crash.
175  Changed option name _FS_SHARE to _FS_LOCK.
176  Fixed assertion failure due to OS/2 EA on FAT12/16 volume.
177
178
179
180R0.09b (January 24, 2013)
181
182  Added f_setlabel() and f_getlabel().
183
184
185
186R0.10 (October 02, 2013)
187
188  Added selection of character encoding on the file. (_STRF_ENCODE)
189  Added f_closedir().
190  Added forced full FAT scan for f_getfree(). (_FS_NOFSINFO)
191  Added forced mount feature with changes of f_mount().
192  Improved behavior of volume auto detection.
193  Improved write throughput of f_puts() and f_printf().
194  Changed argument of f_chdrive(), f_mkfs(), disk_read() and disk_write().
195  Fixed f_write() can be truncated when the file size is close to 4GB.
196  Fixed f_open(), f_mkdir() and f_setlabel() can return incorrect error code.
197
198
199
200R0.10a (January 15, 2014)
201
202  Added arbitrary strings as drive number in the path name. (_STR_VOLUME_ID)
203  Added a configuration option of minimum sector size. (_MIN_SS)
204  2nd argument of f_rename() can have a drive number and it will be ignored.
205  Fixed f_mount() with forced mount fails when drive number is >= 1. (appeared at R0.10)
206  Fixed f_close() invalidates the file object without volume lock.
207  Fixed f_closedir() returns but the volume lock is left acquired. (appeared at R0.10)
208  Fixed creation of an entry with LFN fails on too many SFN collisions. (appeared at R0.07)
209
210
211
212R0.10b (May 19, 2014)
213
214  Fixed a hard error in the disk I/O layer can collapse the directory entry.
215  Fixed LFN entry is not deleted on delete/rename an object with lossy converted SFN. (appeared at R0.07)
216
217
218
219R0.10c (November 09, 2014)
220
221  Added a configuration option for the platforms without RTC. (_FS_NORTC)
222  Changed option name _USE_ERASE to _USE_TRIM.
223  Fixed volume label created by Mac OS X cannot be retrieved with f_getlabel(). (appeared at R0.09b)
224  Fixed a potential problem of FAT access that can appear on disk error.
225  Fixed null pointer dereference on attempting to delete the root direcotry. (appeared at R0.08)
226
227
228
229R0.11 (February 09, 2015)
230
231  Added f_findfirst(), f_findnext() and f_findclose(). (_USE_FIND)
232  Fixed f_unlink() does not remove cluster chain of the file. (appeared at R0.10c)
233  Fixed _FS_NORTC option does not work properly. (appeared at R0.10c)
234
235
236
237R0.11a (September 05, 2015)
238
239  Fixed wrong media change can lead a deadlock at thread-safe configuration.
240  Added code page 771, 860, 861, 863, 864, 865 and 869. (_CODE_PAGE)
241  Removed some code pages actually not exist on the standard systems. (_CODE_PAGE)
242  Fixed errors in the case conversion teble of code page 437 and 850 (ff.c).
243  Fixed errors in the case conversion teble of Unicode (cc*.c).
244
245
246