|
|
1.1 ! root 1: 4d3 ! 2: < #include "fcntl.h" ! 3: 6,8d4 ! 4: < #ifndef O_RDONLY ! 5: < #define O_RDONLY 0 ! 6: < #endif ! 7: 19a16,24 ! 8: > #ifdef NON_UNIX_STDIO ! 9: > #ifndef unlink ! 10: > #define unlink remove ! 11: > #endif ! 12: > #else ! 13: > #ifdef MSDOS ! 14: > #include "io.h" ! 15: > #endif ! 16: > #endif ! 17: 20a26,29 ! 18: > #ifdef NON_UNIX_STDIO ! 19: > extern char *f__r_mode[], *f__w_mode[]; ! 20: > #endif ! 21: > ! 22: 32a42,47 ! 23: > #ifdef NON_UNIX_STDIO ! 24: > { FILE *tf; ! 25: > if (tf = fopen(nbuf, f__w_mode[0])) ! 26: > fclose(tf); ! 27: > } ! 28: > #else ! 29: 33a49 ! 30: > #endif ! 31: 40a57 ! 32: > #ifdef NON_UNIX_STDIO ! 33: 43a61,78 ! 34: > copy(FILE *from, register long len, FILE *to) ! 35: > #endif ! 36: > { ! 37: > int k, len1; ! 38: > char buf[BUFSIZ]; ! 39: > ! 40: > while(fread(buf, len1 = len > BUFSIZ ? BUFSIZ : (int)len, 1, from)) { ! 41: > if (!fwrite(buf, len1, 1, to)) ! 42: > return 1; ! 43: > if ((len -= len1) <= 0) ! 44: > break; ! 45: > } ! 46: > return 0; ! 47: > } ! 48: > #else ! 49: > #ifdef KR_headers ! 50: > copy(from, len, to) char *from, *to; register long len; ! 51: > #else ! 52: 64a100 ! 53: > #endif ! 54: 79a116,120 ! 55: > #ifdef NON_UNIX_STDIO ! 56: > FILE *bf, *tf; ! 57: > #else ! 58: > FILE *bf; ! 59: > #endif ! 60: 83,86c124,128 ! 61: < if(b->url) return(0); /*don't truncate direct files*/ ! 62: < loc=ftell(b->ufd); ! 63: < (void) fseek(b->ufd,0L,SEEK_END); ! 64: < len=ftell(b->ufd); ! 65: --- ! 66: > if(b->url) ! 67: > return(0); /*don't truncate direct files*/ ! 68: > loc=ftell(bf = b->ufd); ! 69: > fseek(bf,0L,SEEK_END); ! 70: > len=ftell(bf); ! 71: 89c131 ! 72: < #ifdef MSDOS ! 73: --- ! 74: > #ifdef NON_UNIX_STDIO ! 75: 94a137,139 ! 76: > #ifdef NON_UNIX_STDIO ! 77: > if (!(bf = fopen(b->ufnm, f__w_mode[b->ufmt]))) ! 78: > #else ! 79: 96c141 ! 80: < #ifdef MSDOS ! 81: --- ! 82: > #endif ! 83: 98,100d142 ! 84: < goto done; ! 85: < #else ! 86: < { rc = 1; goto done; } ! 87: 103,104c145 ! 88: < return 0; ! 89: < #endif ! 90: --- ! 91: > goto done; ! 92: 109,110c150,151 ! 93: < (void) strcpy(nm,"tmp.FXXXXXX"); ! 94: < (void) mktemp(nm); ! 95: --- ! 96: > strcpy(nm,"tmp.FXXXXXX"); ! 97: > mktemp(nm); ! 98: 111a153,182 ! 99: > #ifdef NON_UNIX_STDIO ! 100: > if (!(bf = fopen(b->ufnm, f__r_mode[0]))) { ! 101: > bad: ! 102: > rc = 1; ! 103: > goto done; ! 104: > } ! 105: > if (!(tf = fopen(nm, f__w_mode[0]))) ! 106: > goto bad; ! 107: > if (copy(bf, loc, tf)) { ! 108: > bad1: ! 109: > rc = 1; ! 110: > goto done1; ! 111: > } ! 112: > if (!(bf = freopen(b->ufnm, f__w_mode[0], bf))) ! 113: > goto bad1; ! 114: > if (!(tf = freopen(nm, f__r_mode[0], tf))) ! 115: > goto bad1; ! 116: > if (copy(tf, loc, bf)) ! 117: > goto bad1; ! 118: > if (f__w_mode[0] != f__w_mode[b->ufmt]) { ! 119: > if (!(bf = freopen(b->ufnm, f__w_mode[b->ufmt+2], bf))) ! 120: > goto bad1; ! 121: > fseek(bf, loc, SEEK_SET); ! 122: > } ! 123: > done1: ! 124: > fclose(tf); ! 125: > unlink(nm); ! 126: > done: ! 127: > f__cf = b->ufd = bf; ! 128: > #else ! 129: 115a187 ! 130: > fseek(b->ufd, loc, SEEK_SET); ! 131: 117,124d188 ! 132: < #ifdef MSDOS ! 133: < { ! 134: < extern char *f__r_mode[]; ! 135: < b->uwrt = 0; ! 136: < if (!(b->ufd = fopen(b->ufnm, f__r_mode[b->ufmt]))) ! 137: < rc = 1; ! 138: < } ! 139: < if (loc) ! 140: 126d189 ! 141: < fseek(b->ufd, loc, SEEK_SET);
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.