Revision history for Perl extension D64::Disk::Image. 0.05 2018-12-01 - fix randomly occurring "panic: XSUB failed to extend arg stack" error by properly using "EXTEND" macro to make room on the argument stack for the return values before they are pushed onto the stack with the "PUSHs" macro 0.04 2018-11-29 - properly return an empty list from the following method calls: "read", "status", "rawname_from_name", and "name_from_rawname" (remove an invalid use of "XSRETURN_UNDEF" macro, which may only be used in a "CODE" block, while "PPCODE" implicitly returns an empty list when nothing is pushed on stack) 0.03 2018-11-24 - remove hard-coded file names in tests and replace them with a File::Temp's "tmpnam" function call that returns the full name of a temporary file - fix XS interface compilation warnings, e.g. "pointer targets in passing argument 2 of 'Perl_newSVpv' differ in signedness" 0.02 2013-01-12 - Fixed "Segmentation fault" exception on OpenBSD and alikes, which was originally caused by closing an opened file without having written any data into it. Such operation had resulted in creating a new diskfile with track and sector values both initialized to $00. When trying to open such a saved file in OpenBSD environment by getting a pointer to block data (with "get_ts_addr" function) an illegal address had actually been retrieved, which was causing "Segmentation fault" exception while attempted to be read from. The reason why this bug has manifested itself on OpenBSD systems lays in the memory management specifics of OpenBSD. Apparently reading from an invalid address on Linux and alikes results in retrieving a "(nil)" value, which then gets successfully assigned to a char variable. The final fix was very simple and included an attempt to write a single byte of data into each file that was opened for writing and closed before any actual data has been actually written into it, and thus making sure that both track and sector values will get correctly initialized on a new disk directory item creation. Of course the ultimate fix would be to implement proper file save operation in the "diskimage.c" library, however creation of an empty file with no single byte of data is not only very unlikely, but also quite useless for any practical purpose (since the entire 254-bytes sector will always get allocated anyway). 0.01 2010-10-10 - initial version (provides Perl interface to Per Olofsson's "diskimage.c", supports manipulating Commodore disk images using functions implemented in diskimage.c)