Lines Matching refs:state
621 qf_grow_linebuf(qfstate_T *state, int newsz) in qf_grow_linebuf() argument
627 state->linelen = newsz > LINE_MAXLEN ? LINE_MAXLEN - 1 : newsz; in qf_grow_linebuf()
628 if (state->growbuf == NULL) in qf_grow_linebuf()
630 state->growbuf = alloc(state->linelen + 1); in qf_grow_linebuf()
631 if (state->growbuf == NULL) in qf_grow_linebuf()
633 state->growbufsiz = state->linelen; in qf_grow_linebuf()
635 else if (state->linelen > state->growbufsiz) in qf_grow_linebuf()
637 if ((p = vim_realloc(state->growbuf, state->linelen + 1)) == NULL) in qf_grow_linebuf()
639 state->growbuf = p; in qf_grow_linebuf()
640 state->growbufsiz = state->linelen; in qf_grow_linebuf()
642 return state->growbuf; in qf_grow_linebuf()
649 qf_get_next_str_line(qfstate_T *state) in qf_get_next_str_line() argument
652 char_u *p_str = state->p_str; in qf_get_next_str_line()
667 state->linebuf = qf_grow_linebuf(state, len); in qf_get_next_str_line()
668 if (state->linebuf == NULL) in qf_get_next_str_line()
673 state->linebuf = IObuff; in qf_get_next_str_line()
674 state->linelen = len; in qf_get_next_str_line()
676 vim_strncpy(state->linebuf, p_str, state->linelen); in qf_get_next_str_line()
681 state->p_str = p_str; in qf_get_next_str_line()
690 qf_get_next_list_line(qfstate_T *state) in qf_get_next_list_line() argument
692 listitem_T *p_li = state->p_li; in qf_get_next_list_line()
702 state->p_li = NULL; in qf_get_next_list_line()
709 state->linebuf = qf_grow_linebuf(state, len); in qf_get_next_list_line()
710 if (state->linebuf == NULL) in qf_get_next_list_line()
715 state->linebuf = IObuff; in qf_get_next_list_line()
716 state->linelen = len; in qf_get_next_list_line()
719 vim_strncpy(state->linebuf, p_li->li_tv.vval.v_string, state->linelen); in qf_get_next_list_line()
721 state->p_li = p_li->li_next; // next item in qf_get_next_list_line()
729 qf_get_next_buf_line(qfstate_T *state) in qf_get_next_buf_line() argument
735 if (state->buflnum > state->lnumlast) in qf_get_next_buf_line()
738 p_buf = ml_get_buf(state->buf, state->buflnum, FALSE); in qf_get_next_buf_line()
739 state->buflnum += 1; in qf_get_next_buf_line()
744 state->linebuf = qf_grow_linebuf(state, len); in qf_get_next_buf_line()
745 if (state->linebuf == NULL) in qf_get_next_buf_line()
750 state->linebuf = IObuff; in qf_get_next_buf_line()
751 state->linelen = len; in qf_get_next_buf_line()
753 vim_strncpy(state->linebuf, p_buf, state->linelen); in qf_get_next_buf_line()
762 qf_get_next_file_line(qfstate_T *state) in qf_get_next_file_line() argument
767 if (fgets((char *)IObuff, IOSIZE, state->fd) == NULL) in qf_get_next_file_line()
771 state->linelen = (int)STRLEN(IObuff); in qf_get_next_file_line()
772 if (state->linelen == IOSIZE - 1 && !(IObuff[state->linelen - 1] == '\n')) in qf_get_next_file_line()
776 if (state->growbuf == NULL) in qf_get_next_file_line()
778 state->growbufsiz = 2 * (IOSIZE - 1); in qf_get_next_file_line()
779 state->growbuf = alloc(state->growbufsiz); in qf_get_next_file_line()
780 if (state->growbuf == NULL) in qf_get_next_file_line()
785 memcpy(state->growbuf, IObuff, IOSIZE - 1); in qf_get_next_file_line()
786 growbuflen = state->linelen; in qf_get_next_file_line()
792 if (fgets((char *)state->growbuf + growbuflen, in qf_get_next_file_line()
793 state->growbufsiz - growbuflen, state->fd) == NULL) in qf_get_next_file_line()
795 state->linelen = (int)STRLEN(state->growbuf + growbuflen); in qf_get_next_file_line()
796 growbuflen += state->linelen; in qf_get_next_file_line()
797 if ((state->growbuf)[growbuflen - 1] == '\n') in qf_get_next_file_line()
799 if (state->growbufsiz == LINE_MAXLEN) in qf_get_next_file_line()
805 state->growbufsiz = 2 * state->growbufsiz < LINE_MAXLEN in qf_get_next_file_line()
806 ? 2 * state->growbufsiz : LINE_MAXLEN; in qf_get_next_file_line()
807 if ((p = vim_realloc(state->growbuf, state->growbufsiz)) == NULL) in qf_get_next_file_line()
809 state->growbuf = p; in qf_get_next_file_line()
817 if (fgets((char *)IObuff, IOSIZE, state->fd) == NULL in qf_get_next_file_line()
823 state->linebuf = state->growbuf; in qf_get_next_file_line()
824 state->linelen = growbuflen; in qf_get_next_file_line()
827 state->linebuf = IObuff; in qf_get_next_file_line()
830 if (state->vc.vc_type != CONV_NONE && has_non_ascii(state->linebuf)) in qf_get_next_file_line()
834 line = string_convert(&state->vc, state->linebuf, &state->linelen); in qf_get_next_file_line()
837 if (state->linelen < IOSIZE) in qf_get_next_file_line()
839 STRCPY(state->linebuf, line); in qf_get_next_file_line()
844 vim_free(state->growbuf); in qf_get_next_file_line()
845 state->linebuf = state->growbuf = line; in qf_get_next_file_line()
846 state->growbufsiz = state->linelen < LINE_MAXLEN in qf_get_next_file_line()
847 ? state->linelen : LINE_MAXLEN; in qf_get_next_file_line()
859 qf_get_nextline(qfstate_T *state) in qf_get_nextline() argument
863 if (state->fd == NULL) in qf_get_nextline()
865 if (state->tv != NULL) in qf_get_nextline()
867 if (state->tv->v_type == VAR_STRING) in qf_get_nextline()
869 status = qf_get_next_str_line(state); in qf_get_nextline()
870 else if (state->tv->v_type == VAR_LIST) in qf_get_nextline()
872 status = qf_get_next_list_line(state); in qf_get_nextline()
876 status = qf_get_next_buf_line(state); in qf_get_nextline()
880 status = qf_get_next_file_line(state); in qf_get_nextline()
886 if (state->linelen > 0 && state->linebuf[state->linelen - 1] == '\n') in qf_get_nextline()
888 state->linebuf[state->linelen - 1] = NUL; in qf_get_nextline()
890 if (state->linelen > 1 && state->linebuf[state->linelen - 2] == '\r') in qf_get_nextline()
891 state->linebuf[state->linelen - 2] = NUL; in qf_get_nextline()
895 remove_bom(state->linebuf); in qf_get_nextline()
1616 qfstate_T *state, in qf_init_process_nextline() argument
1622 status = qf_get_nextline(state); in qf_init_process_nextline()
1626 status = qf_parse_line(qfl, state->linebuf, state->linelen, in qf_init_process_nextline()
1676 qfstate_T state; in qf_init_ext() local
1689 CLEAR_FIELD(state); in qf_init_ext()
1692 (qf_setup_state(&state, enc, efile, tv, buf, in qf_init_ext()
1743 status = qf_init_process_nextline(qfl, fmt_first, &state, &fields); in qf_init_ext()
1753 if (state.fd == NULL || !ferror(state.fd)) in qf_init_ext()
1785 qf_cleanup_state(&state); in qf_init_ext()