- version 1.1.4: kevin - remove gfopen function copied from GLib 2.6 and use g_fopen instead, we stopped supporting GLib 2.4 eons ago - fix handling of "archived" and "version" bytes for 83+ family files (Lionel Debroux): 1) ti8x_file_write_regular: the "archived" and "version" bytes used to be swapped compared to the official proprietary linking software; 2) ti8x_file_read_regular: likewise, but also accept files created by older versions of libtifiles or libcalcfiles; (reported by DJ_Omnimaga & snjwffl) 3) ti8x_file_write_regular: the "archived" and "version" bytes need to be part of the checksum as well. - support files with no or nonstandard extensions on the Nspire / Nspire CAS: make calcfiles_vartype2fext return "" instead of "v2?" for the Nspire / Nspire CAS, add NSP_OTHER alias for NSP_MAXTYPES - fixed some strings and translations (Lionel Debroux) - 2009-11-07, version 1.1.3: kevin - fixed failure to send some 83+ FlashApps (TiLP #2792446, Benjamin Moody) - don't use ti*_error, which unconditionally abruptly aborts the program (Lionel Debroux) - don't call abort() in rwfiles.c (Lionel Debroux) - renamed to libcalcfiles and implemented related API changes, see: https://www.calcforge.org/trac/calcforgelp/wiki/LibraryRenameApiChanges - fixed array overflows in check_device_type and check_data_type in files8x.c and files9x.c - 29/05/2009, version 1.1.2: roms - fixed possible buffer overflow - 11/03/2007, version 1.1.1: roms - added NSpire CAS OS file support - 04/10/2007, version 1.1.0: roms - adding NSpire support... - TiConnect compresses application in TiGroup; does (almost) the same - increased string size of VarEntry structure from 33 to 1024 for NSpire - typesXX.c: are icon & desc fields swapped? (icon should not be localized) - 18/09/2007, version 1.0.8: roms - added file extension for GRP variables - 20/06/2007, version 1.0.7: roms - replaced malloc/free by g_malloc/g_free - slightly modified TigContent structure - fixed ti8x_file_write_read (better end of file check) - fixed some TI-86 types (Window Settings) - fixed names of TI83+/84+/86 types - updated to follow some ticonv API changes - 10/06/2007, version 1.0.6: roms - fixed sending of TIG files: set model as TI84P_USB to enable UTF8 conversion - fixed TI83 types: WINDW, ZSTO and TAB were missing - some functions (tifiles_content_dup_XXX) were present and exported but didn't appear in tifiles.h header - 16/04/2007, version 1.0.5: kevin - requires glib >= 2.6.0 rather than 2.4.0 because libticonv requires it anyway - 23/02/2007, version 1.0.4: roms - enabled i18n - 08/12/2006, version 1.0.3: - added new values to FileClass enumeration (os, app and tib) and added the following convenient functions: tifiles_file_is_os and tifiles_file_is_app. - added tifiles_file_test function which was planned for a while. - fixed tifiles_file_write_tigroup which deleted the output file! - fixed tifiles_file_test (some copy&paste errors) - added missing type (TI83_ASM) - implemented matching check for TiGroup in tifiles_file_test - 12/11/2006, version 1.0.2: - don't check device_type if data_type is TI89_LICENSE, old 89u files use DEVICE_TYPE_73 (kevin) - 21/09/2006, version 1.0.1: - fixed miniunz.c and minizip.c trying to include DOS/Win32 headers under OS X (kevin) - changed TIEXPORT into TIEXPORT2 - again, disabled file checksum verification - 17/09/2006, tagged as version 1.0.0: roms - added support for TILIBS_DEPRECATED (exports symbols which have been tagged as deprecated) - 16/09/2006, version 0.2.9: roms - added hw_id field to FlashContent structure - 08/09/2006, version 0.2.8: roms - fixed tifiles_ve_dup - fixed grouped.c: check for NULL pointer - tigroup.c: use #ifndef __WIN32__ instead of #ifdef __LINUX__ to check for strcasecmp vs. stricmp (kevin) - tigroup.c: fixed code typos (missing asterisk, m instead of n)(kevin) - fixed computation of checksum with TI8x files - fixed tigroup.c: check for NULL pointer - check for device/data type in FLASH file - 25/08/2006, version 0.2.7: roms - checked with Valgrind, tested and validated. - 17/08/2006, version 0.2.6: roms - added grouping/ungrouping support for TiGroup (eg tigroup.c provides the same API as grouped.c) => note: no functions removed/renamed; just added new ones - added tifiles_file_write_flash2 in order not to break API - added tifiles_content_dup_regular/flash (not exported) - fixed TI8x file support (introduced bug with fortification) - added tifiles_build_filename function (which replaces built-in/static code in various places and some built-in code in TiLP). - tifiles_content_write_flash: build filename from the last header (=data). - fortified group.c: release memory on error exit - 10/08/2006, version 0.2.5: roms - improved TiGroup support API - fixed Travis Evans' bug: can't read some TI86 files due to bad padding of varname => there are 4 TI-86 file format! - set model_dst to model if dst is not specified (=CALC_NONE) - fixed tifiles_has_backup (don't include USB hand-helds) - 07/08/2006, version 0.2.4: roms - fortified rwfile.c - fortified files8x.c - fortified files9x.c - 06/08/2006, version 0.2.3: roms - target hand-held is passed by tifiles_content_create_xxxx - fortified tigroup.c - 12/07/2006, version 0.2.2: roms - variables like 'beta' can't be handled by TiGroup file nor ZIP archives. Translate filenames again! - for now, use this naming scheme for TI9x var filenames: folder.var.extension - look for the correct module file name on MinGW in tifiles_library_init (kevin) - fixed _FORTIFY_SOURCE and strict-aliasing (and a few harmless) warnings (kevin) - 06/07/2006, version 0.2.1: roms - bug #1499672: every edit-locked BASIC and AMS program is marked ASM and received as *.8xz, of course this has to be *.8xp for both locked BASIC and ASM. - reverted back changes made on tifile encoding <-> raw varname encoding (v0.1.2) because this code had no effect. Moreover, it will imply to pass target hand-held to convert varname in the right encoding. For now, this step is postponed on ticalcs2 library. - reverted back again - replaced fopen by gfopen in ZIP I/O callbacks (locale/utf8) - 17/06/2006, version 0.2.0: roms - full TiGroup support (both regular & flash with deflate compression) - 05/06/2006, version 0.1.5: roms - renamed stdints.h into stdints2.h - 16/05/2006, version 0.1.4: roms - fixed bug in tifiles_file_is_tib which didn't detect TIB files. - 16/04/2006, version 0.1.3: roms - thanks to O. Armand, fixed a bug in the file attribute (archived flag) - ti8x_read_flash now returns in FlashContent.data_length the length of pure data instead of file size (TI8x FLASH file format) - 07/04/2006, version 0.1.2: roms - increased buffer length of variable & folder names (9 -> 36) due to TI-UTF-8 - checked for usb calcs support - fixed warnings - 16/03/2006, version 0.1.1: roms - free the block itself in tifiles_content_delete_xxxxx - clean-up (removed dead code) - 23/02/2006, version 0.1.0: roms - removed deprecated functions - 21/02/2006, version 0.0.9: roms - moved transcode support as deprecated (superseded by ticonv libary) - switched to ticonv - 20/02/2006, version 0.0.8: roms - error message is a glib allocated string for now. - 08/02/2006, version 0.0.7: roms - added tifiles_varname_to_filename which converts varname with sepcial characters (like alpha, beta, ...) into valid filename according to locale - tifiles_file_write_regular can now auto-saves files with greek characters - 02/02/2006, version 0.0.6: roms - replaced fopen calls by g_fopen calls: the library uses GLib encoding on filenames for now (UTF-8 on Windows, locale on Linux (usually UTF-8, too)). - optimized tifiles_file_is_ti() - fixed tifiles_file_get_type for TiGroup support - 22/01/2006, version 0.0.5: roms - removed 'tifiles_create_table_of_entries' from export - pass CalcModel to 'tifiles_content_create_xxxx' => increased so major number - added functions for adding/removing entr(y)ies in regular file => the last two changes have been done to avoid/minimize manipulation of internal fields in FileContent structure (make them opaque/private) - added full TiGroup (*.tig) support: read, write, list - removed a limitation in 'tifiles_group_contents': the src content is now fully copied (not limited to first element like single file) - reverted back the changes made on 'fopen' and 'UTF-8' - 14/01/2006, version 0.0.4: roms - replaced assertion checks by warnings in the typesXX.c modules. - support UTF-8 filenames - added tifiles_file_is_tig function - the content->comment field is now initialized in tifiles_content_create_xxx - 15/09/2005, version 0.0.3: roms - fixed reading of TIB files. - 14/09/2005, version 0.0.2: roms - file checksums - buffer overflow in tixx_translate functions - fixed build of docs/ (Tijl) - export missing macros.h - 04/06/2005, version 0.0.1: roms - added transcode function to API for future implementation - removed 'name' field of VarEntry: make confusion - changed 'var_name' into name and 'fld_name' into 'folder' - added checksum verification - 14/05/2005, version 0.0.1: roms - merged some types into a single type - common file handling API - 10/04/2005, version 0.0.1: roms - rewritten TI8X+ FLASH support - fixed memory errors at: * test_tifiles_2.c:168 * realloc in ti8x_file_read_flash * free in ti8x_content_free_flash - new valgrind check: no errors ! Add TiGroup (*.tig) support which is a kind of file container. - 26/03/2005, version 0.0.1: roms - error management left untouched - logging reworked (use glib) - a single public header with functions & defs, others are private - slightly fixed namespace sheme - use strong types such as TiCalcModel, ... - glib is used for logging (not very much for strings) - documentation system has been changed - functions pointers have been removed - library has been fully documented - decreased number of headers to include (1 or 3) - fixed tifiles_file_is_ti and argument passing to transcode functions - added fread_n_bytes adn fwrite_n_bytes which replaces fwrite_n_chars - fixed many missing fclose() => file truncated... - fixed fsignature in TI8x support - checked with valgrind: few allocations errors with test_tifiles_2.c - added a new convenient function: tifiles_content_free_group - tifiles_ungroup_file now returns a list of files extracted from group file - fixed few memory allocation issues with ValGrind. ====[ Version II ]==== - 05/03/2005, version 0.6.3: roms Added gcc 4.0 -fvisibility flag support. - 03/11/2004, version 0.6.2: roms Fixed and tested TIB file support (read only). - 18/09/2004, version 0.6.1: roms Added TI89 Titanium support. File format seems to be the same as TI89. Added TI84+ (SE) support. File format seems to be the same as TI83+. - 02/07/2004, version 0.6.0: roms Loading of TI9x flash upgrades is less restrictive now. It can accept badly formatted files. Added checking for TI89 Titanium but FLASH upgrades have same extension and same header. - 22/04/2004, version 0.5.9: roms Patch from Adrian Mettler merged. His patch fixes some TI85/86 file handling issues about varname (padded, not padded). Patch from Benjamin Moody <> merged. His patch fixes a crash when TiLP is parsing a file which contains the TI signature but has no extension. - 08/04/2004, version 0.5.8: roms Redirection of stdout/stderr. Fixed TI85/TI86 varname encoding bug. Added/improved TIB file support. - 27/08/2003, version 0.5.7: maintenance release by JB. Use AM_MAINTAINER_MODE in configure.in Upgraded to automake 1.7 Upgraded to libtool 1.5 - 01/05/2003, version 0.5.6: Added 'mu' char to TI89..V200. Unicode translation was missing for TI92(+)/V200. trans.c has been hugely reworked: - varname detokenization - TI-charset to user-selected charset transcoding - 19/04/2003, version 0.5.5: Added various varname translations (ASCII, ISO8859-1 and UTF-8). Some fields have been extended (trans[9] -> trans[17]) to store Unicode strings. tifiles_vartype2icon was missing. Some icons name was internationalized. - 15/04/2003, version 0.5.4: Interface reworked for better consistency. Returns int instead of uint8_t for tifiles_folder/flash/idlist_type. - 05/04/2003, version 0.5.3: Added a column to the TI73_CONST[] array (localized). The previous column is used as icon name (non localized). i18n enabled for Windows. indent -kr -i2 - 30/03/2003, version 0.5.2: i18n updated. Included French translations. Code source parsed for _() occurences. - 18/03/2003, version 0.5.1 (testing phase): Fixed V200 types. Fixed TI83+ types (> instead of <). - 09/03/2003, version 0.5.0: Added type to string conversion functions. - 08/03/2003, version 0.4.9: Group files from FLASH calculators are not considered as backup any longer. - 23/02/2003, version 0.4.8: Bug fix thanks to Kevin McCormick : << ] |5D00000000000000|L1 |0 |01 |0000006E| ] |5D01000000000000|L2 |0 |41 |00000146|>> there was no out-of-bounds protection in ti83p_byte2desc() and others. Tijl's workaround added about this (AND with 0x1f). - 08/02/2003, version 0.4.7: Removed glib dependancy. tifiles library does not have any dep ! Fixed macros.h for BSD. - 08/02/2003, version 0.4.6: Bug report from Thomas Otto <3.1415926535897932384626433832@gmx.net>: <<$ mkdir testink $ mkfifo testink/fifo $ tilp #(gtk mode) and chanke into this dir -> freeze.>> Fixed by checking file type before opening the file in typesxx.c. Added .89y/.9xy extension for ppg variables (ebook). - 03/02/2003, version 0.4.5: Some #define have been changed into enum (make code & doc better). - 23/01/2003, version 0.4.4: stdint.h encapsulated for Win32 & BSD ports. Added BSD target to configure.ac and Tijl's patches merged. - 18/01/2003, version 0.4.3: configure.ac cleaned-up. Compilable with MinGW (under MSYS and CygWin). - 23/12/2002, version 0.4.2: Added pkg-config support. - 22/12/2002, version 0.4.1b: Doc added. - 08/12/2002, version 0.4.1: Modified to be (cross-)compilable with MinGW. - 15/11/2002, version 0.4.0: configure.ac improved. - 26/09/2002, version 0.3.9: Some functions added for Win32 (calloc/malloc/realloc/free). - 26/09/2002, version 0.3.8: Win32 port & fixes. - 16/09/2002, version 0.3.7: Win32 port. - 08/09/2002, version 0.3.6: tifiles_translate_varname modified. - 04/09/2002, version 0.3.5: The trans field (TiVarEntry) was not filled ! Added 2 new functions: tifiles_get_fldname & tifiles_get_varname - 01/09/2002, version 0.3.4: Added tifiles_idlist_type function. Added new type: clock ! - 31/08/2002, version 0.3.3: Testing phase: little fix in read_regular_file for TI83+ and group files. - 26/08/2002, version 0.3.2: Added V200 support (same file format as TI92+). - 23/08/2002, version 0.3.1: Added a descriptive for each TI file extension. - 21/08/2002, version 0.3.0: TI83+ FLASH support fixed. TI89 FLASH support in writing fixed. - 18/08/2002, version 0.2.9: some TI73 fixes. - 15/08/2002, version 0.2.8: added some functions for allocating & initializing structures. - 14/08/2002, version 0.2.7: added a new header (wrapper): tifiles.h - 11/08/2002, version 0.2.6: TiVarEntry modified (some names of field) - 09/08/2002, version 0.2.5: Little fix in TI9x support. - 27/07/2002, version 0.2.4: TI83+ FLASH support updated. Little bug fix in typesxx.c (TIXX_FLASH) - 22/07/2002, version 0.2.3: A fix in Ti8x (86) support (backup, part3 mey be NULL). - 20/07/2002, version 0.2.2: Some functions added. - 19/07/2002, version 0.2.1: Built under win32 -> some incompatible changes. - 18/07/2002, version 0.2.0: Compiled under Win32. Added a more robust error checking. Can be considered as stable. - 15/07/2002, version 0.1.1: TI8X/9X share a common Regular structure... - 14/07/2002, version 0.1.0: Grouping/Ungrouping support finished & tested. TI9x support has been extensively tested (with FLASH support): OK ! - 12/07/2002, version 0.0.9: TI8x support has been extensively tested (except FLASH support): OK ! - 10/07/2002, version 0.0.8: Some headers moved from libticables to libtifiles. - 05/07/2002, version 0.0.7: TI9x support added. - 04/07/2002, version 0.0.6: Merged concurrent modifications. - 30/06/2002, version 0.0.5: Some defs changed (CALC_...) but not enabled yet. - 26/06/2002, version 0.0.4: Win32 port and bug fixes. - 24/06/2002, version 0.0.3: TI82 grouping/ungrouping added. - 23/06/2002, version 0.0.2: TI82 support finished. - 10/06/2002, version 0.0.1: First version.