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