Mercurial > msvpvf
comparison src/main.c @ 46:7cb9fad3f5ee
Patch a bug that would make files cap at 1.4 MB
seriously. wtf was i thinking?
| author | Paper <37962225+mrpapersonic@users.noreply.github.com> | 
|---|---|
| date | Fri, 20 May 2022 14:41:46 -0400 | 
| parents | d8ac17c6d6f2 | 
| children | 7cb4ca7cf257 | 
   comparison
  equal
  deleted
  inserted
  replaced
| 45:d8ac17c6d6f2 | 46:7cb9fad3f5ee | 
|---|---|
| 38 fputc(magic[i], target); | 38 fputc(magic[i], target); | 
| 39 } | 39 } | 
| 40 } | 40 } | 
| 41 | 41 | 
| 42 int copy_file(char* source_file, char* target_file) { | 42 int copy_file(char* source_file, char* target_file) { | 
| 43 char ch; | |
| 43 FILE *source, *target; | 44 FILE *source, *target; | 
| 44 | 45 | 
| 45 source = fopen(source_file, "rb"); | 46 source = fopen(source_file, "rb"); | 
| 46 | 47 | 
| 47 if (source == NULL) return 1; | 48 if (source == NULL) | 
| 49 return 1; | |
| 48 | 50 | 
| 49 target = fopen(target_file, "wb"); | 51 target = fopen(target_file, "wb"); | 
| 50 | 52 | 
| 51 if (target == NULL) { | 53 if (target == NULL) { | 
| 52 fclose(source); | 54 fclose(source); | 
| 53 return 1; | 55 return 1; | 
| 54 } | 56 } | 
| 55 | 57 | 
| 56 size_t n, m; | 58 while( ( ch = fgetc(source) ) != EOF ) | 
| 57 unsigned char buff[8192]; | 59 fputc(ch, target); | 
| 58 do { | |
| 59 n = fread(buff, 1, sizeof(buff), source); | |
| 60 if (n) m = fwrite(buff, 1, n, target); | |
| 61 else m = 0; | |
| 62 } while ((n > 0) && (n == m)); | |
| 63 | 60 | 
| 64 fclose(target); | 61 fclose(target); | 
| 65 fclose(source); | 62 fclose(source); | 
| 66 return 0; | 63 return 0; | 
| 67 } | 64 } | 
