Lines Matching defs:fr

94 	struct file_reader		*fr;
406 struct file_reader *fr;
414 fr = file_reader_init(fn);
420 if (fr == NULL) {
425 s1 = file_reader_readline(fr);
432 s2 = file_reader_readline(fr);
479 s2 = file_reader_readline(fr);
506 s2 = file_reader_readline(fr);
513 file_reader_free(fr);
690 file_reader_readline(struct file_reader *fr)
694 if (fr->mmapaddr) {
697 mmapend = fr->mmapaddr + fr->mmapsize;
698 if (fr->mmapptr >= mmapend)
704 sz = mmapend - fr->mmapptr;
705 strend = memchr(fr->mmapptr, fr->elsymb, sz);
708 ret = bwscsbdup(fr->mmapptr, sz);
709 fr->mmapptr = mmapend;
711 ret = bwscsbdup(fr->mmapptr, strend -
712 fr->mmapptr);
713 fr->mmapptr = strend + 1;
717 } else if (fr->file != stdin) {
725 if (fr->bsz > fr->strbeg)
726 remsz = fr->bsz - fr->strbeg;
731 strend = memchr(fr->buffer + fr->strbeg +
732 search_start, fr->elsymb, remsz -
739 if (feof(fr->file))
742 if (fr->bsz != fr->cbsz)
747 search_start = fr->cbsz - fr->strbeg;
748 fr->cbsz += READ_CHUNK;
749 fr->buffer = sort_realloc(fr->buffer,
750 fr->cbsz);
751 bsz1 = fread(fr->buffer + fr->bsz, 1,
752 READ_CHUNK, fr->file);
754 if (ferror(fr->file))
758 fr->bsz += bsz1;
761 if (remsz > 0 && fr->strbeg>0)
762 bcopy(fr->buffer + fr->strbeg,
763 fr->buffer, remsz);
765 fr->strbeg = 0;
767 bsz1 = fread(fr->buffer + remsz, 1,
768 fr->cbsz - remsz, fr->file);
770 if (ferror(fr->file))
774 fr->bsz = remsz + bsz1;
775 remsz = fr->bsz;
780 strend = fr->buffer + fr->bsz;
782 if ((fr->buffer + fr->strbeg <= strend) &&
783 (fr->strbeg < fr->bsz) && (remsz>0))
784 ret = bwscsbdup(fr->buffer + fr->strbeg, strend -
785 fr->buffer - fr->strbeg);
787 fr->strbeg = (strend - fr->buffer) + 1;
792 ret = bwsfgetln(fr->file, &len, sort_opts_vals.zflag,
793 &(fr->rb));
800 file_reader_clean(struct file_reader *fr)
803 if (fr) {
804 if (fr->mmapaddr)
805 munmap(fr->mmapaddr, fr->mmapsize);
807 if (fr->fd)
808 close(fr->fd);
810 if (fr->buffer)
811 sort_free(fr->buffer);
813 if (fr->file)
814 if (fr->file != stdin)
815 closefile(fr->file, fr->fname);
817 if(fr->fname)
818 sort_free(fr->fname);
820 memset(fr, 0, sizeof(struct file_reader));
825 file_reader_free(struct file_reader *fr)
828 if (fr) {
829 file_reader_clean(fr);
830 sort_free(fr);
837 struct file_reader *fr;
839 fr = file_reader_init(fsrc);
840 if (fr == NULL)
847 bws = file_reader_readline(fr);
864 file_reader_free(fr);
879 if (f1->fr == NULL) {
880 return ((f2->fr == NULL) ? 0 : +1);
881 } else if (f2->fr == NULL)
906 (*fh)->fr = file_reader_init(fn);
907 if ((*fh)->fr == NULL) {
911 line = file_reader_readline((*fh)->fr);
913 file_reader_free((*fh)->fr);
914 (*fh)->fr = NULL;
931 if ((*fh)->fr) {
932 file_reader_free((*fh)->fr);
933 (*fh)->fr = NULL;
1044 if (fh && fh->fr && f_out && fh->si && fh->si->str) {
1064 if (fh && fh->fr) {
1067 tmp = file_reader_readline(fh->fr);
1069 file_reader_free(fh->fr);
1070 fh->fr = NULL;
1101 while (fh[0]->fr) { /* unfinished files are always in front */