Lines Matching refs:lno
44 db_eget(SCR *sp, db_recno_t lno, CHAR_T **pp, size_t *lenp, int *isemptyp)
57 if (!db_get(sp, lno, 0, pp, lenp))
65 if ((lno == 0 || lno == 1) && db_last(sp, &l1))
69 if ((lno != 0 && lno != 1) || l1 != 0) {
70 db_err(sp, lno);
88 db_get(SCR *sp, db_recno_t lno, u_int32_t flags, CHAR_T **pp, size_t *lenp)
107 if (lno == 0)
124 l1 = TAILQ_FIRST(&sp->tiq)->lno;
125 l2 = TAILQ_LAST(&sp->tiq, _texth)->lno;
126 if (l1 <= lno && l2 >= lno) {
129 "retrieve TEXT buffer line %lu\n", (u_long)lno);
132 tp->lno != lno; tp = TAILQ_NEXT(tp, q));
143 if (lno > l2)
144 lno -= l2 - l1;
148 if (lno == sp->c_lno) {
150 vtrace("retrieve cached line %lu\n", (u_long)lno);
162 key.data = &lno;
163 key.size = sizeof(lno);
169 err2: db_err(sp, lno);
183 msgq(sp, M_ERR, "324|Conversion error on line %d", lno);
194 sp->c_lno = lno;
198 vtrace("retrieve DB line %lu\n", (u_long)lno);
214 db_delete(SCR *sp, db_recno_t lno)
220 vtrace("delete line %lu\n", (u_long)lno);
233 if (mark_insdel(sp, LINE_DELETE, lno))
235 if (ex_g_insdel(sp, LINE_DELETE, lno))
239 log_line(sp, lno, LOG_LINE_DELETE_B);
242 key.data = &lno;
243 key.size = sizeof(lno);
250 (u_long)lno);
255 update_cache(sp, LINE_DELETE, lno);
263 log_line(sp, lno, LOG_LINE_DELETE_F);
266 return (scr_update(sp, lno, LINE_DELETE, 1));
276 db_append(SCR *sp, int update, db_recno_t lno, const CHAR_T *p, size_t len)
285 vtrace("append to %lu: len %u {%.*s}\n", lno, len, MIN(len, 20), p);
298 log_line(sp, lno + 1, LOG_LINE_APPEND_B);
303 key.data = &lno;
304 key.size = sizeof(lno);
309 (u_long)lno);
314 update_cache(sp, LINE_INSERT, lno);
322 log_line(sp, lno + 1, LOG_LINE_APPEND_F);
326 if (mark_insdel(sp, LINE_INSERT, lno + 1))
328 if (ex_g_insdel(sp, LINE_INSERT, lno + 1))
341 return (scr_update(sp, lno, LINE_APPEND, update) || rval);
351 db_insert(SCR *sp, db_recno_t lno, CHAR_T *p, size_t len)
361 (u_long)lno, (u_long)len, MIN(len, 20), p);
374 log_line(sp, lno, LOG_LINE_APPEND_B);
379 key.data = &lno;
380 key.size = sizeof(lno);
385 "005|unable to insert at line %lu", (u_long)lno);
390 update_cache(sp, LINE_INSERT, lno);
398 log_line(sp, lno, LOG_LINE_APPEND_F);
402 if (mark_insdel(sp, LINE_INSERT, lno))
404 if (ex_g_insdel(sp, LINE_INSERT, lno))
408 return (scr_update(sp, lno, LINE_INSERT, 1) || rval);
418 db_set(SCR *sp, db_recno_t lno, const CHAR_T *p, size_t len)
427 (u_long)lno, (u_long)len, MIN(len, 20), p);
440 log_line(sp, lno, LOG_LINE_RESET_B);
445 key.data = &lno;
446 key.size = sizeof(lno);
455 msgq(sp, M_DBERR, "006|unable to store line %lu", (u_long)lno);
460 update_cache(sp, LINE_RESET, lno);
468 log_line(sp, lno, LOG_LINE_RESET_F);
471 return (scr_update(sp, lno, LINE_RESET, 1));
481 db_exist(SCR *sp, db_recno_t lno)
491 if (lno == OOBLNO)
499 return (lno <= (F_ISSET(sp, SC_TINPUT) ?
500 ep->c_nlines + (TAILQ_LAST(&sp->tiq, _texth)->lno -
501 TAILQ_FIRST(&sp->tiq)->lno) : ep->c_nlines));
504 return (!db_get(sp, lno, 0, NULL, NULL));
518 db_recno_t lno;
535 *lnop += TAILQ_LAST(&sp->tiq, _texth)->lno -
536 TAILQ_FIRST(&sp->tiq)->lno;
540 key.data = &lno;
541 key.size = sizeof(lno);
558 memcpy(&lno, key.data, sizeof(lno));
560 if (lno != sp->c_lno) {
569 sp->c_lno = lno;
572 ep->c_nlines = lno;
576 TAILQ_LAST(&sp->tiq, _texth)->lno > lno ?
577 TAILQ_LAST(&sp->tiq, _texth)->lno : lno);
588 db_err(SCR *sp, db_recno_t lno)
591 "008|Error: unable to retrieve line %lu", (u_long)lno);
598 * PUBLIC: int scr_update __P((SCR *sp, db_recno_t lno,
602 scr_update(SCR *sp, db_recno_t lno, lnop_t op, int current)
617 if (vs_change(tsp, lno, op))
619 return (current ? vs_change(sp, lno, op) : 0);
623 * PUBLIC: void update_cache __P((SCR *sp, lnop_t op, db_recno_t lno));
626 update_cache(SCR *sp, lnop_t op, db_recno_t lno)
642 if (lno <= scrp->c_lno)
646 if (lno == scrp->c_lno)