Subversion Repositories Kolibri OS

Rev

Rev 300 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
324 serge 1
 
300 serge 2
#include 
324 serge 3
300 serge 4
 
324 serge 5
6
 
300 serge 7
8
 
9
{ size_t req;
10
  size_t cnt;
11
  char *p;
324 serge 12
//  if(!((f->mode & FILE_OPEN_READ)|(f->mode & FILE_OPEN_PLUS)))
13
//                return 0;
14
  req=count*size;
300 serge 15
  p= (char*)dst;
324 serge 16
17
 
300 serge 18
                req=f->filesize-f->filepos-f->strpos;
324 serge 19
  count=0;
20
  while(req)
300 serge 21
  {
22
    if (f->remain)
23
    { cnt= (req > f->remain) ? f->remain : req;
324 serge 24
      memcpy(p,f->stream,cnt);
25
      p+=cnt;
26
      f->stream+=cnt;
27
      f->strpos+=cnt;
28
      f->remain-=cnt;
29
      count+=cnt;
30
      req-=cnt;
31
    }
32
    else
33
    {
34
      f->filepos+=8192;
35
      if(!fill_buff(f))
36
      { printf("error reading file %d=",f->filepos); //eof or error
37
        break;
38
      }
39
    };
40
  };
300 serge 41
  return count/size;
42
}
43
44
 
45
{ int err;
324 serge 46
  size_t bytes;
47
48
 
300 serge 49
                             8192,&bytes);
324 serge 50
  if(bytes == -1)
51
    return 0;
52
//  if(!bytes) return 0;
53
  f->stream = f->buffer;
54
  f->remain = 8192;
55
  f->strpos=0;
56
  return bytes;
300 serge 57
};
324 serge 58