libansilove

Library for converting ANSI, ASCII, and other formats to PNG
Log | Files | Refs | README | LICENSE

ChangeLog (8033B)


      1 libansilove 1.3.1 (2022-04-26)
      2 
      3 - Increment pcboard_buffer by more than one element at a time
      4 - Fix XBin font memory leaks
      5 
      6 
      7 
      8 libansilove 1.3.0 (2022-04-14)
      9 
     10 - Properly handle 512 characters XBin fonts
     11 - Add a link to the Gentoo package in the README
     12 - Also build and install libansilove as a static library
     13 - List projects using libansilove in the README
     14 
     15 
     16 
     17 libansilove 1.2.9 (2022-02-10)
     18 
     19 - Stop forcing FORTIFY_SOURCE=2, it should be package builders decision
     20 - Bump CMake minimum required version to 3.1
     21 - Add SPDX short license identifier in source files
     22 - Use CMAKE_C_STANDARD instead of hardcoding compiler flags
     23 - Add missing <stdint.h> include
     24 
     25 
     26 
     27 libansilove 1.2.8 (2020-10-25)
     28 
     29 - Add LibFuzzer-based fuzzers for each supported format
     30 - Do not hardcode CMAKE_BUILD_TYPE to "Release" in CMakeLists.txt
     31 - Only enable FORTIFY_SOURCE level 2 for release builds
     32 - Add #ifdef __cplusplus extern "C" to allow calling library functions from C++
     33 - Constify input and output arguments of ansilove_loadfile() and
     34   ansilove_savefile()
     35 
     36 
     37 
     38 libansilove 1.2.7 (2020-10-21)
     39 
     40 - Error out early with ANSILOVE_FORMAT_ERROR in case ctx->length is 0
     41 - Enable FORTIFY_SOURCE level 2
     42 - Set CMAKE_BUILD_TYPE to "Release" in CMakeLists.txt
     43 - Move variables declaration to the top of each loader function
     44 - Initialize ansi_buffer and pcboard_buffer to NULL
     45 - Refactor the IceDraw loader to use a state machine
     46 - Check strndup() return value and error out on failed allocations
     47 - Add some file format integrity checks in the IceDraw loader
     48 - Add range integrity checks for scale_factor values in the output() function
     49 - Return error code directly if ctx->length is 0 in the ANSI and PCBoard loaders
     50 - Add range integrity checks for columns value in relevant loaders
     51 - Add range integrity checks for bits value in relevant loaders
     52 - Add additional file format integrity check in the XBin loader
     53 
     54 
     55 
     56 libansilove 1.2.6 (2020-09-30)
     57 
     58 - Introduce canvas' width/height variables and refactor canvas creation
     59 - Refactor calls to drawchar() in the ANSI loader
     60 - Refactor the ANSI loader to use a state machine
     61 - Remove systematic filtering of Form Feed characters in Amiga mode
     62 - Correct values for TUNDRA_COLOR_FOREGROUND and TUNDRA_COLOR_BACKGROUND
     63 - Switch to using reallocarray(3) in the ANSI and PCBoard loaders
     64 - Add a compat layer for systems which do not have reallocarray(3)
     65 - Refactor canvas allocation for retina output
     66 - Introduce the ANSILOVE_RANGE_ERROR macro, for values out of allowed range
     67 - Error gracefully if canvas' width or height is equal to zero
     68 - Remove an useless comparison in drawchar()
     69 - Add some file format integrity checks in the Tundra loader
     70 - Refactor error handling in several loaders
     71 
     72 
     73 
     74 libansilove 1.2.5 (2020-09-24)
     75 
     76 - Add missing parentheses in an if statement in output()
     77 - Define CR, LF, TAB, SUB, and ESC macros only once
     78 - Refactor error handling in the PCBoard loader
     79 - Stop parsing for PCBoard cursor position sequences
     80 - Add bound checks for {back,fore}ground color values in the PCBoard loader
     81 - Fix default background and foreground colors in the PCBoard loader
     82 - Refactor the PCBoard loader to use a state machine
     83 - Refactor the Binary loader to use a state machine
     84 - Refactor the Artworx loader to use a state machine
     85 - Add some file format integrity checks in the XBin loader
     86 
     87 
     88 
     89 libansilove 1.2.4 (2020-06-21)
     90 
     91 - Use size_t in for loops setting color palettes
     92 - Remove unneeded gdImageFill() call when using Workbench mode
     93 - Define _GNU_SOURCE in CMakeLists.txt to avoid cluttering source files
     94 - Use size_t type for variables used to loop over arrays
     95 - Separate RGB values for palettes, makes color allocation code more
     96   readable and efficient
     97 - Move ADF color mapping array to config.h
     98 
     99 
    100 
    101 libansilove 1.2.3 (2020-05-25)
    102 
    103 - Call memset() to set all fontData struct fields to zero in all loaders
    104 - Refactor error handling in ansilove_savefile()
    105 - Add error handling for fwrite() in ansilove_savefile()
    106 - Fix includes in various source files
    107 
    108 
    109 
    110 libansilove 1.2.2 (2020-04-30)
    111 
    112 - Refactor the output function, to allow combining DOS aspect ratio and Retina
    113 - Remove the im_ prefix for all gdImagePtr variables
    114 - Various README changes and improvements
    115 
    116 
    117 
    118 libansilove 1.2.1 (2020-03-17)
    119 
    120 - Call memset() to set all fontData struct fields to zero
    121 - Use the ternary operator to simplify character attributes assignments
    122 
    123 
    124 
    125 libansilove 1.2.0 (2020-02-17)
    126 
    127 - Correct section number in manual page
    128 - Add initial manual pages for all library functions and file formats renders
    129 - Stop calculating columnMax in the PCBoard loader, it's unused
    130 - Add support for user-specified columns in the PCBoard loader
    131 
    132 
    133 
    134 libansilove 1.1.9 (2020-01-20)
    135 
    136 - Remove unneeded gdImageColorAllocate calls in the ADF and IDF loaders
    137 - Reset background24 to 0 when encountering blink attribute in an SGR sequence,
    138   fixing the remaining rendering bugs for 24-bit ANSI artworks
    139 
    140 
    141 
    142 libansilove 1.1.8 (2020-01-18)
    143 
    144 - Use OpenBSD style(9) for function prototypes and declarations
    145 - Properly reset pcboard buffer when CLS is encountered
    146 - Use memcmp() instead of testing each character one by one in the PCB loader
    147 - Do not use background and foreground variables to handle 24-bit ANSI colors
    148 - Various improvements in the IDF loader
    149 
    150 
    151 
    152 libansilove 1.1.7 (2019-12-19)
    153 
    154 - Rename the alSelectFont() function to select_font()
    155 - Only export symbols which are part of the public API
    156 
    157 
    158 
    159 libansilove 1.1.6 (2019-11-18)
    160 
    161 - Use CMAKE_INSTALL_{LIB,INCLUDE}DIR instead of hardcoding directories
    162 - Introduce a XBIN_PALETTE_LENGTH macro
    163 - Use XBIN_HEADER_LENGTH and XBIN_PALETTE_LENGTH macros instead of magic
    164   numbers
    165 - Add another format validation check (palette size) in the XBin loader
    166 
    167 
    168 
    169 libansilove 1.1.5 (2019-10-14)
    170 
    171 - Move background transparency operations in the output function
    172 - Allow setting transparent background for retina images
    173 - Add extern declaration for fonts data arrays
    174 - Use type size_t for loop and structIndex variables
    175 
    176 
    177 
    178 libansilove 1.1.4 (2019-09-13)
    179 
    180 - Force xbin_fontsize to 16 when using default 80x25 font
    181 - Return ANSILOVE_FORMAT_ERROR if xbin_fontsize > 32
    182 
    183 
    184 
    185 libansilove 1.1.3 (2019-08-23)
    186 
    187 - Omit implicit return in the example program
    188 - Use a switch statement to set 24-bit background and foreground values
    189 - Remove superfluous background color allocations in the Binary, PCBoard
    190   and XBin loaders
    191 - Modify the PCBoard loader to use a cursor pointer to parse input
    192 - Infer font height to 16 in the XBin loader, the default in absence of
    193   font data (Thanks Andrew Herbert)
    194 
    195 
    196 
    197 libansilove 1.1.2 (2019-04-30)
    198 
    199 - Use 'xbin_fontsize' for character height instead of an hardcoded value,
    200   fixes a rendering bug reported by Bart Dumon
    201 - Rename the 'binary_palette' array to 'vga_palette'
    202 - More format validation checks for the XBin loader
    203 
    204 
    205 
    206 libansilove 1.1.1 (2019-02-11)
    207 
    208 - Add install target for man page
    209 - Use the correct idiom for realloc, to avoid leaking memory if allocation
    210   fails
    211 - Fixed memory leak in the output() function, gdImageDestroy() must be
    212   called after gdImagePngPtr() (Thanks Andrew Michaelson)
    213 
    214 
    215 
    216 libansilove 1.1.0 (2019-01-15)
    217 
    218 - Only call gdFree() if the PNG buffer was allocated (Thanks Joris Vink)
    219 - No need for buffer pointers to be const, they're passed to functions
    220   taking non consts (Thanks Joris Vink)
    221 - Introduce a maplen variable to allow tracking mmap size, as we can't
    222   rely on the length variable because of SAUCE
    223 - Unmap ctx->buffer on cleanup (Thanks Joris Vink)
    224 - Check for the TUNDRA24 string in TND files header
    225 - Split fonts data to have one include file per font
    226 - Use macros instead of hardcoded values in the Tundra loader
    227 - Use 'X' instead of integer value for the start of SGR sequences
    228 - Always check that seqTok is not NULL before using it
    229 - Move the include guards to the top of header files
    230 - Add format validation checks for the XBin loader
    231 - Increment ansi_buffer by more than one element at a time when using
    232   realloc
    233 - Add initial man page, documenting the ansilove_ctx and ansilove_options
    234   structures
    235 
    236 
    237 
    238 libansilove 1.0.0 (2018-11-16)
    239 
    240 - Initial release