May 28th 2023
libansilove 1.4.1 has been released. You can download it here.
ChangeLog:
- Sync embedded Spleen 8x16 version to Spleen 2.0.0 (this swap arrows at positions 1A and 1B)
May 23th 2023
ansilove 4.2.0 has been released. You can download it here.
ChangeLog:
- Add initial RPM spec file
- Add support for the Spleen 8x16 font (requires libansilove >= 1.4.0)
May 23th 2023
libansilove 1.4.0 has been released. You can download it here.
ChangeLog:
- Add initial RPM spec file
- Add font data for Spleen 8x16, it now has full CP437 support
March 30th 2023
ansilove 4.1.7 has been released. You can download it here.
ChangeLog:
- Always print processing time on stderr
- Move manual page to the man directory
April 26th 2022
libansilove 1.3.1 has been released. You can download it here.
ChangeLog:
- Increment pcboard_buffer by more than one element at a time
- Fix XBin font memory leaks
April 14th 2022
libansilove 1.3.0 has been released. You can download it here.
ChangeLog:
- 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
February 10th 2022
ansilove 4.1.6 has been released. You can download it here.
ChangeLog:
- Mention experimental seccomp support availability in README
- Bump CMake minimum required version to 3.1
- Add SPDX short license identifier in source files
- Add a test case for retina output
- Add a test case for SAUCE output
- Use CMAKE_C_STANDARD instead of hardcoding compiler flags
- Stop linking against libm, it's not necessary anymore
February 10th 2022
libansilove 1.2.9 has been released. You can download it here.
ChangeLog:
- 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
February 14th 2021
ansilove 4.1.5 has been released. You can download it here.
ChangeLog:
- Stop forcing FORTIFY_SOURCE=2, it should be package builders decision
- Remove dead increments for argc and argv
- Check strdup() return value when allocating output file name
October 25th 2020
libansilove 1.2.8 has been released. You can download it here.
ChangeLog:
- 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()
October 22th 2020
ansilove 4.1.4 has been released. You can download it here.
ChangeLog:
- Set CMAKE_BUILD_TYPE to "Release" in CMakeLists.txt
- Enable FORTIFY_SOURCE level 2
- Move read_status variable declaration to the top of the function
- Check fread() return values in readComments() and add error handling
- Introduce the READ_RECORD function-like macro, for fread error handling
- Use READ_RECORD in readRecord() to add fread() error handling
- Only call memset() if the malloc call succeeds
- Check strdup() return value and error out on failed allocation
October 21th 2020
libansilove 1.2.7 has been released. You can download it here.
ChangeLog:
- 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
September 30th 2020
libansilove 1.2.6 has been released. You can download it here.
ChangeLog:
- 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
September 24th 2020
libansilove 1.2.5 has been released. You can download it here.
ChangeLog:
- 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
September 18th 2020
ansilove 4.1.3 has been released. You can download it here.
ChangeLog:
- Adjust SAUCE flag output to be binary
- Add -S flag to use SAUCE info for rendering hints. Users must now use -S to get iCE color info. This was previously automatically pulled without any extra options.
- Document the new -S flag, allowing to use SAUCE info for render options
- Add support for seccomp on arm
- Add missing test for __NR_mmap, the mmap syscall doesn't exist on arm
July 4th 2020
ansilove 4.1.2 has been released. You can download it here.
ChangeLog:
- Define _GNU_SOURCE in CMakeLists.txt to avoid cluttering source files
- No need to set HAVE_SECCOMP to 1, defining it is enough
- Remove some unneeded seccomp related includes
- Validate architectures for seccomp
- Add seccomp support on i386, tested on glibc and musl
- Remove extraneous underscore in #if defined check
- Use __NR_ instead of SYS_ prefix in #if defined checks
June 21th 2020
libansilove 1.2.4 has been released. You can download it here.
ChangeLog:
- 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
May 25th 2020
ansilove 4.1.1 has been released. You can download it here.
ChangeLog:
- Various documentation tweaks and improvements
- Define timespecsub macro in compat.h if it doesn't exists
- Use CLOCK_REALTIME if CLOCK_MONOTONIC is not available
- Display processing time on exit
- Fix includes and add forward declarations in various source files
May 25th 2020
libansilove 1.2.3 has been released. You can download it here.
ChangeLog:
- 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
April 30th 2020
libansilove 1.2.2 has been released. You can download it here.
ChangeLog:
- 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
March 17th 2020
libansilove 1.2.1 has been released. You can download it here.
ChangeLog:
- Call memset() to set all fontData struct fields to zero
- Use the ternary operator to simplify character attributes assignments
February 17th 2020
ansilove 4.1.0 has been released. You can download it here.
ChangeLog:
- Add a new '-t' flag (type), allowing to specify input file type and override file type detection
- Various documentation tweaks and improvements
February 17th 2020
libansilove 1.2.0 has been released. You can download it here.
ChangeLog:
- 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
January 20th 2020
libansilove 1.1.9 has been released. You can download it here.
ChangeLog:
- 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
January 18th 2020
ansilove 4.0.7 has been released. You can download it here.
ChangeLog:
- Use OpenBSD style(9) for function prototypes and declarations
- Replace EXIT_SUCCESS by zero in all SAUCE functions
- Do not use typedef for the sauce struct
- Set icecolors to true if defined in SAUCE record ANSiFlags
- Add test cases for most supported formats, missing an IDF file for now
- Sync the description of Retina output capabilities with reality
January 18th 2020
libansilove 1.1.8 has been released. You can download it here.
ChangeLog:
- 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
December 19th 2019
libansilove 1.1.7 has been released. You can download it here.
ChangeLog:
- Rename the alSelectFont() function to select_font()
- Only export symbols which are part of the public API
December 10th 2019
ansilove 4.0.6 has been released. You can download it here.
ChangeLog:
- Remove extraneous sauceReadFileName() call, read from existing SAUCE record
- Use strdup() when assigning fileName and fext fallback values
- Call memset() to set all record struct fields to zero
- Free SAUCE record and comments once and for all when exiting the program
November 19th 2019
ansilove 4.0.5 has been released. You can download it here.
ChangeLog:
- Add ENABLE_SECCOMP build option, to allow building seccomp support conditionally
- Disable seccomp by default, it needs more testing on non !amd64 platforms
- Use ${CMAKE_INSTALL_BINDIR} instead of hardcoding 'bin'
November 18th 2019
libansilove 1.1.6 has been released. You can download it here.
ChangeLog:
- 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
October 28th 2019
ansilove 4.0.4 has been released. You can download it here.
ChangeLog:
- Add initial seccomp support to Ansilove
- Move pledge and seccomp initialization before ansilove_init()
- Move conditional includes for 'pledge' and 'strtonum' in compat.h
October 14th 2019
libansilove 1.1.5 has been released. You can download it here.
ChangeLog:
- 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
September 13th 2019
libansilove 1.1.4 has been released. You can download it here.
ChangeLog:
- Force xbin_fontsize to 16 when using default 80x25 font
- Return ANSILOVE_FORMAT_ERROR if xbin_fontsize > 32
August 23th 2019
libansilove 1.1.3 has been released. You can download it here.
ChangeLog:
- 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)
August 16th 2019
ansilove 4.0.3 has been released. You can download it here.
ChangeLog:
- Use errx() for displaying error messages
- Print information messages on stdout
- Introduce a version() function to display version information
- Add a -q flag (quiet) to allow silencing output messages
August 13th 2019
ansilove 4.0.2 has been released. You can download it here.
ChangeLog:
- Remove most examples from the repository, they continue to live on the website
- Move the remaining examples in per author directories, and add LICENSE files for these artworks, courtesy of their authors
June 25th 2019
ansilove 4.0.1 has been released. You can download it here.
ChangeLog:
- Fix a few typos in README and ansilove.1
- Simplify display of default font when no font option is specified
- Drop the leading dot when saving input file extension
- Fix the check for readComments() return value
April 30th 2019
libansilove 1.1.2 has been released. You can download it here.
ChangeLog:
- 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
February 11th 2019
libansilove 1.1.1 has been released. You can download it here.
ChangeLog:
- 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)
January 16th 2019
Following yesterday release of libansilove 1.1.0, I'm happy to announce that ansilove 4.0.0 has finally been released. You can download it here.
This is the first release of ansilove which is actually using libansilove. This makes the codebase cleaner and much easier to maintain.
ChangeLog:
- Switch to using libansilove
- Add a new switch (-d) to toggle DOS aspect ratio
- Add initial support for PabloDraw 24-bit ANSI sequences
- Ansilove now generates only one output file when -r or -R options are used
- Display scale factor when -r or -R options are used
- Allow to specify the number of columns for ANSI and Tundra files
- Restrict maximum allowed number of columns to 4096
- Check asprintf() return value and error if allocation fails
- Bugfixes and improvements in the SAUCE parser
- Refactor font selection processing
- Refactor rendering mode processing
- Use OpenBSD style(9) for function prototypes and declaration
- Add missing headers and remove unnecessary ones
- Remove versionInfo(), simply print the header with version information when invoked with -v
- Remove showHelp(), show synopsis instead when invoked with -h
- Add a new example ANSi (Thanks Nail)
- Remove -e switch, examples are now listed in the man page instead
- Make synopsis() only display SYNOPSIS, as it should be
- Add an EXAMPLES section in ansilove.1
- PC fonts for code pages other than cp437 are now named using the cpNNN scheme. Albeit not documented anymore, the previously used names will keep working
January 15th 2019
libansilove 1.1.0 has been released. You can download it here.
ChangeLog:
- 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
Happy New Year 2019.
December 7th 2018
Back in October, I received an anonymous mail tipping me about 16colo.rs, a new online ANSI gallery using Ansilove.
It's really fantastic to see Ansilove used at such a scale, and it helped uncover a few rendering issues which have been fixed since.
I strongly encourage you to visit the site, as it is quite an improvement compared to all galleries we've had in the past, and the search functionality actually works well.
November 16th 2018
We are extremely happy to announce that libansilove 1.0.0 has finally been released. You can download it here.
The code was split from Ansilove/C 3.0.9 in December 2017, and almost 200 commits have been made since that release, to transform the conversion code into a reusable C library.
A new version of Ansilove/C will be released soon to take advantage of the library.
April 19th 2017
Ansilove/PHP 1.12 has been released. You can download it here.
Ansilove/PHP is now deprecated, version 1.12 will be the last release.
Users are encouraged to migrate to Ansilove/C which replaces the command line converter, and to Ansilove.js for doing "on the fly" conversions on web pages. See the downloads section for more details.
ChangeLog:
- Adding a new example ANSi (Thanks Otium)
- Adding a new example ASCii (Thanks Konami)
- Adding a new example ANSi (Thanks Andy Herbert)
- Adding a new example ANSi (Thanks TCF)
- Adding a new example XBin (Thanks Enzo)
- Relicensed under the BSD 2-Clause license
- Use env to find PHP
- Switch examples pages to HTML5
- Add deprecation notices
April 18th 2017
After moving to its own domain last year, the site has now also been switched to HTTPS and redesigned. We are now using Stefan's excellent BlockZone font and Luciano's header logo.
Thanks to both of you for making the new version possible.
March 26th 2014
Ansilove/PHP 1.11 has been released. You can download it here.
ChangeLog:
- Fixed a bug in the TUNDRA renderer
- Fixed inconsistency when using Amiga fonts: bold characters are now displayed only in CED and WorkBench modes
- Removing PHP warning about date.timezone settings when logging errors
- Removing PHP warning displayed when input file doesn't exist
- Added 3 example ASCiis (Thanks to: Plur, Spear, Knocturnal, Sk!n)
- Added 9 example ANSis (Thanks to: Knocturnal, Grymmjack, Noches, Avenging Angel, Enzo, BYM, Filth, Rad Man)
December 27th 2013
I'm very pleased to announce that we now have an Ansilove extension for Firefox written by Andrew Herbert which leverages Ansilove.js and allows to view text-mode art directly in Firefox! It is available on the official Firefox Add-ons site, and the source code is published on GitHub. This is especially handy for viewing text files online, on BBS or MS-DOS programs archives.
There is a video showing example usage here. Once again, thanks to Andy for making this happen!
Happy New Year 2014, a bit in advance!
November 24th 2013
Ansilove has been ported to JavaScript by Andrew Herbert, check out the Ansilove.js project page on GitHub.
Ansilove.js allows rendering ANSi art and all the artscene formats supported by Ansilove directly in the browser. On top of that, it also supports ANSi animations rendering, something I always wanted to add in the PHP version but could never achieve due to the fact the GD Library for PHP do not support outputting animated GIF files.
You can try it online by yourself, there is an online converter available and a demo gallery showing the animation capabilities.
This is definitely a fantastic release, and I would like to personally thank Andy for this porting effort.
July 17th 2013
Today marks 10 years since I started working on Ansilove! For the record, it was originally started to convert my ASCii and ANSi artworks to PNG images in order to create the gallery on my artscene and demoscene site which went live in September 2003. It later evolved to be the general purpose converter and library combo it is nowadays, and the first open source release happened in early 2006. Ten years and eleven releases later, I'm still maintaining this codebase and will definitely keep committed to this project.
If you want to keep up to date regarding Ansilove development, please star the repository on GitHub.
Lastly, I would like to take the opportunity to thank all the artists (past, present, and future) who submitted artwork for Ansilove and helped making the releases so colorful :)
Happy Summer 2013, and to the next 10 years! <3
October 8th 2012
Ansilove/PHP 1.10 has been released. You can download it here.
ChangeLog:
- Added new and updated documentation file in AsciiDoc format (Also available in HTML and PDF)
- Using proper bitshift instead of pow for ADF / IDF / XBIN font processing
- Skipping 'Set mode' and 'Reset mode' sequences to correctly render files saved with recent versions of PabloDraw
I'm also very pleased to mention that Ansilove has been ported to C thanks to the efforts of Stefan Vogt, Brian Cassidy, and myself. It is now fully functional and usable as a library or as a command line line converter: check out the Ansilove/C project page on GitHub.
November 22th 2011
Ansilove/PHP 1.09 has been released. You can download it here.
ChangeLog:
- Added functions in the ANSi loader to split the output into several PNG files (SPLIT_* options in the config file)
- Added support for Amiga ANSi (Bold, Italics, and Underlined characters)
- Memory usage optimization (Some data structures modified, support for 65535 lines of text)
- Relicensed under a MIT-style license
- Added Terminus font support (http://terminus-font.sourceforge.net)
Since version 1.09, Ansilove is now licensed under a (more permissive) MIT-style license, please check the LICENSE file included in the source package for more information.
July 12th 2011
Ansilove/PHP 1.08 has been released. You can download it here.
ChangeLog:
- Added new improved Amiga fonts (With corrected aspect ratio and 100% accurate characters)
- Reordered font palettes to follow the ANSi color order rather than the EGA one
- Added an error message logger (ANSILOVE_LOG_FILE option in the config file, default: ansilove.log)
- Added an option to continue rendering input files when the substitute (SUB) character is encountered (SUBSTITUTE_BREAK option in the config file, default: 1 => Stop when encountering SUB character)
- Added an option to allow enabling/disabling 80th column wrapping (WRAP_COLUMN_80 option in the config file, default: 1 => Wrap)
- Changed default background color value for CED mode (170,170,170) instead of (168,168,168)
- Added a transparent rendering mode to produce output files with transparent background (only available in ANSi loader)
- Added Workbench mode to render the input file using Amiga Workbench colors (only available in ANSi loader)
- Added scalable thumbnails support (THUMBNAILS_SIZE option in the config file)
- Added an example file for thumbnails rendering (examples/thumbnails.html)
- Added 3 example ASCiis (Thanks to: Cubon, Spidy and Spot)
On other news, Ansilove is now on GitHub as well, for those who would like to test the development version: https://github.com/ansilove/ansilove-php
Version 1.09 is coming in the following days, stay tuned!
May 27th 2011
Although the site has been updated a few times, I realize it has been a long time since my previous post here: almost two years have gone by...
So what's new, you may ask? The download section now has its own page, instead of the previous redirection to the sourceforge download page. I also added a "BBS Nostalgia" section including some screen captures from some old French BBSes I used to call during the second part of the nineties.
I'm now also hosting an artpacks archive which is a mirror of the Sixteen Colors archive. The synchronization is not an automated process, so I will update the archive from time to time whenever new packs or recovered lost ones are added to the repository. Once again, if you used to be involved in artscene and you happen to have old backups from that era in your possession, please help us recovering any lost gems which are still missing and nowhere to be found online. This would be greatly appreciated, thanks in advance!
Lastly, for those interested in keeping in touch, I'm now present on Twitter.
September 25th 2009
Ansilove/PHP has reached the 5000 downloads milestone this month, which is quite an achievement considering this tool is aimed at a very specified audience. I'm very pleased to see Ansilove getting more widely used and appreciated within the community, and would like to thank everyone who contributed to this project in any way!
I'm currently working on version 1.08, which will include new and improved Amiga fonts as well as a lot of requested features and improvements.
June 16th 2009
Ansilove/PHP 1.07 has been released. You can download it here.
ChangeLog:
- Added support for thumbnails rendering, with configurable maximum height
- Added customizable output color definitions in the configuration file for CED mode rendering
- Modified the ANSi parser to allow ansi sequences with inverted graphic rendition values to render correctly
May 21th 2009
Ansilove/PHP 1.06 has been released. You can download it here.
ChangeLog:
- Dumped all the fonts again to make the font collection more homogeneous and avoid minor character differences between fonts as much as possible
- Added 6 new PC Fonts (Charsets: Armenian, French Canadian, Greek (CP869), Icelandic, Persian, Portuguese)
- Fixed minor color palette problems causing the full intensity value to be 252 instead of 255
- Added customizable file extensions definitions in the configuration file for DIZ mode rendering
- Added filters removing white spaces and empty lines at the beginning and end of DIZ files
May 19th 2009
A new site using Ansilove to render Ascii characters is up at https://www.ascii-codes.com. It is an ASCii table featuring 14 MS-DOS charsets with 100% accurate and pixel precise characters faithful to the original DOS fonts!
Ansilove/PHP 1.06 is also on its way and will be released pretty soon, so be sure to check site updates on a regular basis!
April 29th 2009
Ansilove/PHP 1.05 has been released. You can download it here.
ChangeLog:
- Added support for PCBoard (.PCB) format
- Updated the documentation (README file), to cover options related to the PCBoard loader (PCB codes stripping)
- Fixed a bug preventing the CED rendering mode to operate correctly. Ansi and PCBoard files can now be rendered in CED mode again
- Added 1 example ANSi and 1 example ASCii
April 7th 2009
Ansilove/PHP 1.04 has been released. You can download it here.
ChangeLog:
- Added 9 new PC Fonts (Charsets: Baltic, Cyrillic, Greek, Hebrew, Latin1, Latin2, Nordic, Russian, Turkish)
- Fixed .DIZ file extension detection in the online converter, uploaded .DIZ files are now rendered with the exact needed number of columns
- Fixed some uninitialized variables warnings
- Added 1 example ASCii
- Added a loader (ansilove.bat) for the command line converter under Windows
- Converted the HTML templates to XHTML (ansilove.html and Ansilove online)
- Modified the Ansilove Online upload interface and corrected the maximum length value for the columns argument
- Updated the documentation (README file), which is now providing more detailed examples about all the possible options, and information about command line converter usage under Windows
April 1st 2009
Ansilove site has been redesigned using full CSS and jQuery, and the new version is finally online! Thanks a lot to Fabts for his very precious help and his numerous tips about CSS layouts design. The links section has been updated and is now featuring a list of sites using Ansilove. The online documentation section will be updated soon, please check the README file included in the releases meanwhile.
I'm getting involved in this project again and working on a new version of the program, which will feature 9 new PC fonts and a few minor fixes. Support for PCBoard files (.PCB) is also on its way, as part of the effort to make Ansilove as complete as possible.
February 11th 2006
Ansilove/PHP 1.03 has been released. You can download it here.
MANDATORY UPGRADE! Fixes a serious content disclosure security issue!
ChangeLog:
- Added input sanitization in the loaders (load_*.php) to prevent disclosure of unauthorized content by converting files accessible by the webserver
- Added a .htaccess to restrict access (Deny to all by default) to the 'upload' directory (online converter)
- Adding '.ansilove' at the end of the uploaded filenames to prevent code injection if the upload directory access isn't restricted, and delete the uploaded file after the conversion (online converter)
- The online converter is now using the internal loaders from the library instead of the load_*.php loaders
- Added a config file to define directories path
- Added checks for requires in the online converter and in the loaders
February 9th 2006
Ansilove/PHP 1.02 has been released. You can download it here.
ChangeLog:
- Added support for IDF (.IDF) format
- Added support for TUNDRA (.TND) format
- Added support for XBiN (.XB) format
- Added online file converter
- Added CED mode to render the input file in black on gray (only available in ANSi loader)
- Added topazplus alias for topaz+ so it is possible to use it in urls
- Enforced little-endian byte order instead of machine byte order when unpacking data
- Added 3 example ANSis
- Fixed a bug in ADF converter, color 0 of the palette was set to black instead of the correct value
January 27th 2006
Ansilove/PHP 1.01 has been released. You can download it here.
ChangeLog:
- Added 6 new Amiga Fonts
- Files with a .DIZ extension are now rendered with the exact needed number of columns
- Fixed a background rendering bug in ANSi converter, which caused problems when using Amiga Font (Used font_size_x value for background block size instead of a fixed value)
- Fixed another background bug in ANSi converter (Buffer wasn't filled with black after being allocated, which caused some blocks to have an incorrect background color if nothing was drawn)
January 22th 2006
Opening of the web site and initial release of Ansilove/PHP. You can download it here.