Lines Matching defs:ep

92 log_init(SCR *sp, EXF *ep)
96 * ep MAY NOT BE THE SAME AS sp->ep, DON'T USE THE LATTER.
102 ep->l_lp = NULL;
103 ep->l_len = 0;
104 ep->l_cursor.lno = 1; /* XXX Any valid recno. */
105 ep->l_cursor.cno = 0;
106 ep->l_high = ep->l_cur = 1;
108 ep->log = dbopen(NULL, O_CREAT | O_NONBLOCK | O_RDWR,
110 if (ep->log == NULL) {
112 F_SET(ep, F_NOLOG);
126 log_end(SCR *sp, EXF *ep)
130 * ep MAY NOT BE THE SAME AS sp->ep, DON'T USE THE LATTER.
132 if (ep->log != NULL) {
133 (void)(ep->log->close)(ep->log);
134 ep->log = NULL;
136 free(ep->l_lp);
137 ep->l_lp = NULL;
138 ep->l_len = 0;
139 ep->l_cursor.lno = 1; /* XXX Any valid recno. */
140 ep->l_cursor.cno = 0;
141 ep->l_high = ep->l_cur = 1;
154 EXF *ep;
156 ep = sp->ep;
157 if (F_ISSET(ep, F_NOLOG))
164 if (ep->l_cursor.lno == OOBLNO) {
165 ep->l_cursor.lno = sp->lno;
166 ep->l_cursor.cno = sp->cno;
169 ep->l_cursor.lno = sp->lno;
170 ep->l_cursor.cno = sp->cno;
182 EXF *ep;
184 ep = sp->ep;
186 BINC_RETC(sp, ep->l_lp, ep->l_len, sizeof(u_char) + sizeof(MARK));
187 ep->l_lp[0] = type;
188 memmove(ep->l_lp + sizeof(u_char), &ep->l_cursor, sizeof(MARK));
190 key.data = &ep->l_cur;
192 data.data = ep->l_lp;
194 if (ep->log->put(ep->log, &key, &data, 0) == -1)
198 TRACE(sp, "%lu: %s: %u/%u\n", ep->l_cur,
203 ep->l_high = ++ep->l_cur;
218 EXF *ep;
223 ep = sp->ep;
224 if (F_ISSET(ep, F_NOLOG))
233 F_CLR(ep, F_UNDO);
236 if (ep->l_cursor.lno != OOBLNO) {
239 ep->l_cursor.lno = OOBLNO;
261 ep->l_lp, ep->l_len,
263 ep->l_lp[0] = action;
264 memmove(ep->l_lp + sizeof(u_char), &lno, sizeof(recno_t));
265 memmove(ep->l_lp + CHAR_T_OFFSET, lp, len * sizeof(CHAR_T));
267 lcur = ep->l_cur;
270 data.data = ep->l_lp;
272 if (ep->log->put(ep->log, &key, &data, 0) == -1)
279 ep->l_cur, lno, len);
283 ep->l_cur, lno, len);
287 ep->l_cur, lno, len);
291 ep->l_cur, lno, len);
295 ep->l_cur, lno, len);
300 ep->l_high = ++ep->l_cur;
318 EXF *ep;
320 ep = sp->ep;
321 if (F_ISSET(ep, F_NOLOG))
325 if (ep->l_cursor.lno != OOBLNO) {
328 ep->l_cursor.lno = OOBLNO;
331 BINC_RETC(sp, ep->l_lp,
332 ep->l_len, sizeof(u_char) + sizeof(LMARK));
333 ep->l_lp[0] = LOG_MARK;
334 memmove(ep->l_lp + sizeof(u_char), lmp, sizeof(LMARK));
336 key.data = &ep->l_cur;
338 data.data = ep->l_lp;
340 if (ep->log->put(ep->log, &key, &data, 0) == -1)
345 ep->l_cur, lmp->name, lmp->lno, lmp->cno);
348 ep->l_high = ++ep->l_cur;
362 EXF *ep;
369 ep = sp->ep;
370 if (F_ISSET(ep, F_NOLOG)) {
376 if (ep->l_cur == 1) {
381 F_SET(ep, F_NOLOG); /* Turn off logging. */
383 key.data = &ep->l_cur; /* Initialize db request. */
386 --ep->l_cur;
387 if (ep->log->get(ep->log, &key, &data, 0))
390 log_trace(sp, "log_backward", ep->l_cur, data.data);
396 F_CLR(ep, F_NOLOG);
444 err: F_CLR(ep, F_NOLOG);
464 EXF *ep;
470 ep = sp->ep;
471 if (F_ISSET(ep, F_NOLOG)) {
477 if (ep->l_cur == 1)
480 F_SET(ep, F_NOLOG); /* Turn off logging. */
482 key.data = &ep->l_cur; /* Initialize db request. */
485 --ep->l_cur;
486 if (ep->log->get(ep->log, &key, &data, 0))
489 log_trace(sp, "log_setline", ep->l_cur, data.data);
494 if (m.lno != sp->lno || ep->l_cur == 1) {
495 F_CLR(ep, F_NOLOG);
502 ++ep->l_cur;
503 F_CLR(ep, F_NOLOG);
534 err: F_CLR(ep, F_NOLOG);
548 EXF *ep;
555 ep = sp->ep;
556 if (F_ISSET(ep, F_NOLOG)) {
562 if (ep->l_cur == ep->l_high) {
567 F_SET(ep, F_NOLOG); /* Turn off logging. */
569 key.data = &ep->l_cur; /* Initialize db request. */
572 ++ep->l_cur;
573 if (ep->log->get(ep->log, &key, &data, 0))
576 log_trace(sp, "log_forward", ep->l_cur, data.data);
581 ++ep->l_cur;
583 F_CLR(ep, F_NOLOG);
631 err: F_CLR(ep, F_NOLOG);
642 EXF *ep;
645 ep = sp->ep;
646 (void)ep->log->close(ep->log);
647 if (!log_init(sp, ep))