By default it is not supposed to affect binary files.
I tested it in a folder with images and although most images were not affected, a few were. If dos2unix
cannot tell a binary file from a text file, must I resort to specifically including and/or excluding certain file extensions for it to work properly?
NOTE: when I run file image.jpg
on any of the jpgs, whether it got modified or not, the result is:
JPEG image data, JFIF standard 1.01
This is a relevant part of the source code of dos2unix program:
if ((ipFlag->Force == 0) &&
(TempChar < 32) &&
(TempChar != 0x0a) && /* Not an LF */
(TempChar != 0x0d) && /* Not a CR */
(TempChar != 0x09) && /* Not a TAB */
(TempChar != 0x0c)) { /* Not a form feed */
RetVal = -1;
ipFlag->status |= BINARY_FILE ;
if (ipFlag->verbose) {
if ((ipFlag->stdio_mode) && (!ipFlag->error)) ipFlag->error = 1;
d2u_fprintf(stderr, "%s: ", progname);
d2u_fprintf(stderr, _("Binary symbol 0x00%02X found at line %u\n"),TempChar, line_nr);
}
break;
}
It seems that if the file has other control character it is considered as a binary file and is skipped, otherwise it is processed as a text file. So if the binary file (e.g. an image) doesn't contain these characters, it will be corrupted.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With