For a little bit I thought this library might be a subtle joke, seeing the #define _SHITPRESS_H at the start. That combined with the compress() and decompress() not taking any arguments and not having a return value, I thought we were being played. Not to mention the library appears to be plain C rather than C++… surely the author should know the difference?
Then I saw how the interface actually works:
// interface for the library user, implement these in your program:unsignedintSPR_in(); // Return next byte from input or value > 255 on EOF.voidSPR_out(unsignedchar); // Output byte.
This seems extremely poorly thought out. Calling into global functions for input and output means that your library will be a pain to use in any program that has to (de)compress anything more than a single input.
For a little bit I thought this library might be a subtle joke, seeing the
#define _SHITPRESS_H
at the start. That combined with thecompress()
anddecompress()
not taking any arguments and not having a return value, I thought we were being played. Not to mention the library appears to be plain C rather than C++… surely the author should know the difference?Then I saw how the interface actually works:
// interface for the library user, implement these in your program: unsigned int SPR_in(); // Return next byte from input or value > 255 on EOF. void SPR_out(unsigned char); // Output byte.
This seems extremely poorly thought out. Calling into global functions for input and output means that your library will be a pain to use in any program that has to (de)compress anything more than a single input.