Lines Matching refs:obj

34     DIALOG_CALLBACK obj;  member
53 lseek_obj(MY_OBJ * obj, long offset, int mode) in lseek_obj() argument
56 if ((fpos = (long) lseek(obj->fd, (off_t) offset, mode)) == -1) { in lseek_obj()
74 ftell_obj(MY_OBJ * obj) in ftell_obj() argument
76 return lseek_obj(obj, 0L, SEEK_CUR); in ftell_obj()
80 lseek_set(MY_OBJ * obj, long offset) in lseek_set() argument
82 long actual = lseek_obj(obj, offset, SEEK_SET); in lseek_set()
91 lseek_end(MY_OBJ * obj, long offset) in lseek_end() argument
93 long actual = lseek_obj(obj, offset, SEEK_END); in lseek_end()
96 obj->file_size = actual; in lseek_end()
101 lseek_cur(MY_OBJ * obj, long offset) in lseek_cur() argument
103 long actual = lseek_obj(obj, offset, SEEK_CUR); in lseek_cur()
128 read_high(MY_OBJ * obj, size_t size_read) in read_high() argument
135 if ((obj->fd_bytes_read = read(obj->fd, buftab, size_read)) != -1) { in read_high()
139 buftab[obj->fd_bytes_read] = '\0'; /* mark end of valid data */ in read_high()
144 obj->bytes_read = begin_line = 0; in read_high()
145 for (j = 0; j < obj->fd_bytes_read; j++) in read_high()
147 obj->bytes_read += dialog_state.tab_len in read_high()
148 - ((obj->bytes_read - begin_line) in read_high()
151 obj->bytes_read++; in read_high()
152 begin_line = obj->bytes_read; in read_high()
154 obj->bytes_read++; in read_high()
156 if (obj->bytes_read > obj->buffer_len) { in read_high()
157 if (obj->buffer_first) in read_high()
158 obj->buffer_first = FALSE; /* disp = 0 */ in read_high()
160 free(obj->buf); in read_high()
163 obj->buffer_len = obj->bytes_read; in read_high()
166 obj->buf = xalloc((size_t) obj->buffer_len + 1); in read_high()
170 if (obj->buffer_first) { in read_high()
171 obj->buffer_first = FALSE; in read_high()
174 obj->buf = xalloc(size_read + 1); in read_high()
177 obj->bytes_read = obj->fd_bytes_read; in read_high()
182 if (obj->buf != NULL) { in read_high()
185 while (j < obj->fd_bytes_read) { in read_high()
194 obj->buf[i++] = ' '; in read_high()
198 obj->buf[i++] = ch; in read_high()
202 obj->buf[i] = '\0'; /* mark end of valid data */ in read_high()
206 if (obj->bytes_read == -1) in read_high()
212 find_first(MY_OBJ * obj, char *buffer, long length) in find_first() argument
217 long recount = obj->page_length; in find_first()
232 tabize(MY_OBJ * obj, long val, long *first_pos) in tabize() argument
241 fpos = ftell_obj(obj); in tabize()
243 lseek_set(obj, fpos - obj->fd_bytes_read); in tabize()
248 if ((read(obj->fd, buftab, (size_t) val)) == -1) in tabize()
257 *first_pos = find_first(obj, buftab, i); in tabize()
270 lseek_set(obj, fpos); in tabize()
280 get_line(MY_OBJ * obj) in get_line() argument
284 obj->end_reached = FALSE; in get_line()
285 if (obj->buf != NULL) { in get_line()
286 while (obj->buf[obj->in_buf] != '\n') { in get_line()
287 if (obj->buf[obj->in_buf] == '\0') { /* Either end of file or end of buffer reached */ in get_line()
288 long fpos = ftell_obj(obj); in get_line()
290 if (fpos < obj->file_size) { /* Not end of file yet */ in get_line()
294 read_high(obj, BUF_SIZE); in get_line()
295 obj->in_buf = 0; in get_line()
297 if (!obj->end_reached) in get_line()
298 obj->end_reached = TRUE; in get_line()
302 obj->line[i++] = obj->buf[obj->in_buf++]; in get_line()
305 obj->line[i++] = '\0'; in get_line()
306 obj->in_buf++; in get_line()
311 obj->line[i] = '\0'; in get_line()
312 if (!obj->end_reached) in get_line()
313 obj->in_buf++; /* move past '\n' */ in get_line()
315 return obj->line; in get_line()
319 match_string(MY_OBJ * obj, char *string) in match_string() argument
321 char *match = get_line(obj); in match_string()
330 back_lines(MY_OBJ * obj, long n) in back_lines() argument
336 obj->begin_reached = FALSE; in back_lines()
341 if (!obj->end_reached) { in back_lines()
344 if (obj->in_buf == 0) { in back_lines()
345 fpos = ftell_obj(obj); in back_lines()
347 if (fpos > obj->fd_bytes_read) { /* Not beginning of file yet */ in back_lines()
354 if (fpos < BUF_SIZE / 2 + obj->fd_bytes_read) { in back_lines()
356 lseek_set(obj, 0L); in back_lines()
357 val_to_tabize = fpos - obj->fd_bytes_read; in back_lines()
359 lseek_cur(obj, -(BUF_SIZE / 2 + obj->fd_bytes_read)); in back_lines()
362 read_high(obj, BUF_SIZE); in back_lines()
364 obj->in_buf = tabize(obj, val_to_tabize, (long *) 0); in back_lines()
367 obj->begin_reached = TRUE; in back_lines()
371 obj->in_buf--; in back_lines()
372 if (obj->buf == NULL in back_lines()
373 || obj->in_buf < 0 in back_lines()
374 || obj->in_buf >= obj->bytes_read in back_lines()
375 || obj->buf[obj->in_buf] != '\n') in back_lines()
383 if (obj->in_buf == 0) { in back_lines()
384 fpos = ftell_obj(obj); in back_lines()
386 if (fpos > obj->fd_bytes_read) { in back_lines()
388 if (fpos < BUF_SIZE / 2 + obj->fd_bytes_read) { in back_lines()
390 lseek_set(obj, 0L); in back_lines()
391 val_to_tabize = fpos - obj->fd_bytes_read; in back_lines()
393 lseek_cur(obj, -(BUF_SIZE / 2 + obj->fd_bytes_read)); in back_lines()
396 read_high(obj, BUF_SIZE); in back_lines()
398 obj->in_buf = tabize(obj, val_to_tabize, (long *) 0); in back_lines()
401 obj->begin_reached = TRUE; in back_lines()
405 } while (obj->buf[--(obj->in_buf)] != '\n'); in back_lines()
407 obj->in_buf++; in back_lines()
414 print_line(MY_OBJ * obj, int row, int width) in print_line() argument
416 if (wmove(obj->text, row, 0) != ERR) { in print_line()
418 char *line = get_line(obj); in print_line()
425 if (width > getmaxx(obj->text)) in print_line()
426 width = getmaxx(obj->text); in print_line()
429 for (i = 0; i <= limit && cols[i] < obj->hscroll; ++i) in print_line()
435 (void) waddch(obj->text, ' '); in print_line()
436 (void) waddnstr(obj->text, line + indx[first], indx[last] - indx[first]); in print_line()
438 getyx(obj->text, y, x); in print_line()
441 (void) waddch(obj->text, ' '); in print_line()
451 print_page(MY_OBJ * obj, int height, int width) in print_page() argument
455 obj->page_length = 0; in print_page()
457 print_line(obj, i, width); in print_page()
459 obj->page_length++; in print_page()
460 if (obj->end_reached && !passed_end) in print_page()
463 (void) wnoutrefresh(obj->text); in print_page()
464 dlg_trace_win(obj->text); in print_page()
471 print_position(MY_OBJ * obj, WINDOW *win, int height, int width) in print_position() argument
477 fpos = ftell_obj(obj); in print_position()
479 size = tabize(obj, obj->in_buf, &first); in print_position()
481 first = find_first(obj, obj->buf, size = obj->in_buf); in print_position()
485 fpos - obj->fd_bytes_read + size, in print_position()
486 fpos - obj->fd_bytes_read + size, in print_position()
487 obj->file_size, in print_position()
586 perform_search(MY_OBJ * obj, int height, int width, int key, char *search_term) in perform_search() argument
593 if (dir ? !obj->end_reached : !obj->begin_reached) { in perform_search()
606 } else if ((result = get_search_term(obj->text, search_term, in perform_search()
620 dlg_attrset(obj->text, dialog_attr); in perform_search()
621 back_lines(obj, obj->page_length); in perform_search()
625 tempinx = obj->in_buf; in perform_search()
626 temp = obj->begin_reached; in perform_search()
627 temp1 = obj->end_reached; in perform_search()
628 fpos = ftell_obj(obj) - obj->fd_bytes_read; in perform_search()
631 back_lines(obj, (dir in perform_search()
632 ? obj->page_length - 1 in perform_search()
633 : obj->page_length + 1)); in perform_search()
635 while ((found = match_string(obj, search_term)) == FALSE) { in perform_search()
636 if (obj->end_reached) in perform_search()
640 while ((found = match_string(obj, search_term)) == FALSE) { in perform_search()
641 if (obj->begin_reached) in perform_search()
643 back_lines(obj, 2L); in perform_search()
649 lseek_set(obj, fpos); in perform_search()
651 read_high(obj, BUF_SIZE); in perform_search()
653 obj->in_buf = tempinx; in perform_search()
654 obj->begin_reached = temp; in perform_search()
655 obj->end_reached = temp1; in perform_search()
660 back_lines(obj, obj->page_length); in perform_search()
662 back_lines(obj, 1L); in perform_search()
665 dlg_attrset(obj->text, dialog_attr); in perform_search()
723 MY_OBJ obj; in dialog_textbox() local
738 memset(&obj, 0, sizeof(obj)); in dialog_textbox()
740 obj.begin_reached = TRUE; in dialog_textbox()
741 obj.buffer_first = TRUE; in dialog_textbox()
742 obj.end_reached = FALSE; in dialog_textbox()
743 obj.buttons = dlg_exit_label(); in dialog_textbox()
746 if ((obj.fd = open(filename, O_RDONLY)) == -1) in dialog_textbox()
751 lseek_end(&obj, 0L); in dialog_textbox()
754 lseek_set(&obj, 0L); in dialog_textbox()
756 read_high(&obj, BUF_SIZE); in dialog_textbox()
758 dlg_button_layout(obj.buttons, &min_width); in dialog_textbox()
774 dlg_register_buttons(dialog, "textbox", obj.buttons); in dialog_textbox()
779 obj.text = dlg_sub_window(dialog, PAGE_LENGTH, PAGE_WIDTH, y + 1, x + 1); in dialog_textbox()
787 dlg_draw_buttons(dialog, PAGE_LENGTH + 2, 0, obj.buttons, button, FALSE, width); in dialog_textbox()
791 dlg_attr_clear(obj.text, PAGE_LENGTH, PAGE_WIDTH, dialog_attr); in dialog_textbox()
802 (void) scrollok(obj.text, TRUE); in dialog_textbox()
803 (void) scroll(obj.text); /* Scroll text region up one line */ in dialog_textbox()
804 (void) scrollok(obj.text, FALSE); in dialog_textbox()
805 print_line(&obj, PAGE_LENGTH - 1, PAGE_WIDTH); in dialog_textbox()
806 (void) wnoutrefresh(obj.text); in dialog_textbox()
815 (void) scrollok(obj.text, TRUE); in dialog_textbox()
816 (void) wscrl(obj.text, -1); /* Scroll text region down one line */ in dialog_textbox()
817 (void) scrollok(obj.text, FALSE); in dialog_textbox()
818 obj.page_length = 0; in dialog_textbox()
822 print_line(&obj, 0, PAGE_WIDTH); /* print first line of page */ in dialog_textbox()
823 (void) wnoutrefresh(obj.text); in dialog_textbox()
825 (void) get_line(&obj); /* Called to update 'end_reached' and 'in_buf' */ in dialog_textbox()
827 obj.page_length++; in dialog_textbox()
828 if (obj.end_reached && !passed_end) in dialog_textbox()
832 print_page(&obj, PAGE_LENGTH, PAGE_WIDTH); in dialog_textbox()
834 print_position(&obj, dialog, height, width); in dialog_textbox()
847 if (!fkey && (code = dlg_char_to_button(key, obj.buttons)) >= 0) { in dialog_textbox()
864 button = dlg_next_button(obj.buttons, button); in dialog_textbox()
869 obj.buttons, button, in dialog_textbox()
873 button = dlg_prev_button(obj.buttons, button); in dialog_textbox()
878 obj.buttons, button, in dialog_textbox()
888 if (!obj.begin_reached) { in dialog_textbox()
889 obj.begin_reached = 1; in dialog_textbox()
891 fpos = ftell_obj(&obj); in dialog_textbox()
893 if (fpos > obj.fd_bytes_read) { in dialog_textbox()
895 lseek_set(&obj, 0L); in dialog_textbox()
897 read_high(&obj, BUF_SIZE); in dialog_textbox()
899 obj.in_buf = 0; in dialog_textbox()
904 obj.end_reached = TRUE; in dialog_textbox()
906 fpos = ftell_obj(&obj); in dialog_textbox()
908 if (fpos < obj.file_size) { in dialog_textbox()
910 lseek_end(&obj, -BUF_SIZE); in dialog_textbox()
912 read_high(&obj, BUF_SIZE); in dialog_textbox()
914 obj.in_buf = obj.bytes_read; in dialog_textbox()
915 back_lines(&obj, (long) PAGE_LENGTH); in dialog_textbox()
919 if (!obj.begin_reached) { in dialog_textbox()
920 back_lines(&obj, obj.page_length + 1); in dialog_textbox()
927 if (!obj.begin_reached) { in dialog_textbox()
928 back_lines(&obj, obj.page_length + PAGE_LENGTH); in dialog_textbox()
933 if (!obj.end_reached) { in dialog_textbox()
934 obj.begin_reached = 0; in dialog_textbox()
941 if (!obj.end_reached) { in dialog_textbox()
942 obj.begin_reached = 0; in dialog_textbox()
947 if (obj.hscroll > 0) { in dialog_textbox()
948 obj.hscroll = 0; in dialog_textbox()
950 back_lines(&obj, obj.page_length); in dialog_textbox()
955 if (obj.hscroll > 0) { in dialog_textbox()
956 obj.hscroll--; in dialog_textbox()
958 back_lines(&obj, obj.page_length); in dialog_textbox()
963 if (obj.hscroll < MAX_LEN) { in dialog_textbox()
964 obj.hscroll++; in dialog_textbox()
966 back_lines(&obj, obj.page_length); in dialog_textbox()
976 back_lines(&obj, obj.page_length); in dialog_textbox()
988 moved = perform_search(&obj, height, width, key, search_term); in dialog_textbox()
1000 free(obj.buf); in dialog_textbox()
1001 (void) close(obj.fd); in dialog_textbox()