Lines Matching refs:sp

36 	SCR *sp;  in screen_init()  local
40 CALLOC_RET(orig, sp, 1, sizeof(SCR)); in screen_init()
41 *spp = sp; in screen_init()
44 sp->id = ++gp->id; in screen_init()
45 sp->refcnt = 1; in screen_init()
47 sp->gp = gp; /* All ref the GS structure. */ in screen_init()
49 sp->ccnt = 2; /* Anything > 1 */ in screen_init()
57 TAILQ_INIT(sp->tiq); in screen_init()
61 sp->searchdir = NOTSET; in screen_init()
65 (sp->alt_name = strdup(orig->alt_name)) == NULL) in screen_init()
70 F_SET(sp, SC_AT_SET); in screen_init()
71 sp->at_lbuf = orig->at_lbuf; in screen_init()
75 sp->searchdir = orig->searchdir == NOTSET ? NOTSET : FORWARD; in screen_init()
76 if (orig->re != NULL && (sp->re = in screen_init()
77 v_wstrdup(sp, orig->re, orig->re_len)) == NULL) in screen_init()
79 sp->re_len = orig->re_len; in screen_init()
80 if (orig->subre != NULL && (sp->subre = in screen_init()
81 v_wstrdup(sp, orig->subre, orig->subre_len)) == NULL) in screen_init()
83 sp->subre_len = orig->subre_len; in screen_init()
84 if (orig->repl != NULL && (sp->repl = in screen_init()
85 v_wstrdup(sp, orig->repl, orig->repl_len)) == NULL) in screen_init()
87 sp->repl_len = orig->repl_len; in screen_init()
90 MALLOC(sp, sp->newl, len); in screen_init()
91 if (sp->newl == NULL) { in screen_init()
95 sp->newl_len = orig->newl_len; in screen_init()
96 sp->newl_cnt = orig->newl_cnt; in screen_init()
97 memcpy(sp->newl, orig->newl, len); in screen_init()
100 if (opts_copy(orig, sp)) in screen_init()
103 F_SET(sp, F_ISSET(orig, SC_EX | SC_VI)); in screen_init()
106 if (ex_screen_copy(orig, sp)) /* Ex. */ in screen_init()
108 if (v_screen_copy(orig, sp)) /* Vi. */ in screen_init()
110 sp->cl_private = 0; /* XXX */ in screen_init()
111 conv_init(orig, sp); /* XXX */ in screen_init()
113 *spp = sp; in screen_init()
116 err: screen_end(sp); in screen_init()
128 screen_end(SCR *sp) in screen_end() argument
133 if (--sp->refcnt != 0) in screen_end()
142 if (TAILQ_ENTRY_ISVALID(sp, q)) in screen_end()
143 TAILQ_REMOVE(sp->gp->dq, sp, q); in screen_end()
146 F_CLR(sp, SC_SCR_EX | SC_SCR_VI); in screen_end()
149 if (v_screen_end(sp)) /* End vi. */ in screen_end()
151 if (ex_screen_end(sp)) /* End ex. */ in screen_end()
156 if (!F_ISSET(sp, SC_ARGNOFREE) && sp->argv != NULL) { in screen_end()
157 for (ap = sp->argv; *ap != NULL; ++ap) in screen_end()
159 free(sp->argv); in screen_end()
164 if (!TAILQ_EMPTY(sp->tiq)) in screen_end()
165 text_lfree(sp->tiq); in screen_end()
168 free(sp->alt_name); in screen_end()
171 free(sp->re); in screen_end()
172 if (F_ISSET(sp, SC_RE_SEARCH)) in screen_end()
173 regfree(&sp->re_c); in screen_end()
174 free(sp->subre); in screen_end()
175 if (F_ISSET(sp, SC_RE_SUBST)) in screen_end()
176 regfree(&sp->subre_c); in screen_end()
177 free(sp->repl); in screen_end()
178 free(sp->newl); in screen_end()
181 conv_end(sp); in screen_end()
184 opts_free(sp); in screen_end()
187 free(sp); in screen_end()
199 screen_next(SCR *sp) in screen_next() argument
205 gp = sp->gp; in screen_next()
207 if (next != sp) in screen_next()