Please consider a donation to the Higher Intellect project. See https://preterhuman.net/donate.php or the Donate to Higher Intellect page for more info. |
UNIX2DOS.C
From Higher Intellect Vintage Wiki
/* Converts UNIX type text file to DOS format by adding CR's to the LF's */ #include <stdio.h> #include <conio.h> #include <dir.h> #include <alloc.h> #include <io.h> char *fnames[1024]; main(int argc,char **argv) { static struct ffblk ffblk; int i, done, num_found = 0; if(argc < 2) { printf("UNIX2DOS converts UNIX/Amiga type textfiles to DOS format\n"); printf("usage: unix2dos <UNIXFile>\n"); printf("Wildcards allowed\n"); exit(0); } done = findfirst(argv[1], &ffblk, 0); while (done == 0) { fnames[num_found] = malloc(strlen(ffblk.ff_name) + 1); strcpy(fnames[num_found++], ffblk.ff_name); done = findnext(&ffblk); } for(i = 0; i < num_found; i++) convert(fnames[i]); printf("OK.\n"); for(i = 0; i < num_found; i++) free(fnames[i]); } convert(char *unixfname) { static unsigned char buffer[32768]; FILE *unixf, *dosf; unsigned i, numread; unixf = fopen(unixfname, "rb"); dosf = fopen("DOSTEMP.$$$","wb"); printf("Converting %s...\n", unixfname); do { numread = fread(buffer,1,sizeof(buffer),unixf); for(i = 0; i < numread; i++) { if(buffer[i] == 0x0A) fwrite("\x0D", 1, 1, dosf); fwrite(&buffer[i], 1, 1, dosf); } } while(numread == sizeof(buffer)); fclose(unixf); fclose(dosf); remove(unixfname); rename("DOSTEMP.$$$", unixfname); }