-
Notifications
You must be signed in to change notification settings - Fork 13
/
Copy pathChangeLog
254 lines (157 loc) · 8.1 KB
/
ChangeLog
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
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