void setline(char const *s) { sizeline(strlen(s)); strcpy((char *) line, s); unmetafy((char *) line, &ll); if ((cs = ll) && bindtab == altbindtab) cs--; clearlist = 1; }
int quoteline(UNUSED(char **args)) { ZLE_STRING_T str; size_t len = zlell; str = makequote(zleline, &len); sizeline(len); ZS_memcpy(zleline, str, len); zlecs = zlell = len; return 0; }
void spaceinline(int ct) { int i; sizeline(ct + ll); for (i = ll; --i >= cs;) line[i + ct] = line[i]; ll += ct; line[ll] = '\0'; if (mark > cs) mark += ct; }
static void set_rbuffer(UNUSED(Param pm), char *x) { ZLE_STRING_T y; int len; if (x && *x != ZWC('\0')) y = stringaszleline(x, 0, &len, NULL, NULL); else y = ZWS(""), len = 0; sizeline(zlell = zlecs + len); ZS_memcpy(zleline + zlecs, y, len); zsfree(x); if (len) free(y); fixsuffix(); menucmp = 0; }
void undo() /**/ { char *s; struct undoent *ue; ue = undos+undoct; if (!ue->change) { feep(); return; } line[ll] = '\0'; s = ztrdup((char *) line+ll-ue->suff); sizeline((ll = ue->pref+ue->suff+ue->len)+1); strncpy((char *) line+ue->pref,ue->change,ue->len); strcpy((char *) line+ue->pref+ue->len,s); free(s); ue->change = NULL; undoct = (undoct-1) & (UNDOCT-1); cs = ue->cs; }
void pushlineoredit(void) { int ics; unsigned char *s; char *hline = hgetline(); if (zmult < 0) return; if (hline && *hline) { ics = ztrlen(hline); sizeline(ics + ll + 1); for (s = line + ll; --s >= line; *(s + ics) = *s); for (s = line; *hline; hline++) *s++ = *hline == Meta ? *++hline ^ 32 : *hline; ll += ics; cs += ics; } pushline(); if (!isfirstln) { errflag = done = 1; } clearlist = 1; }
mod_export void spaceinline(int ct) { int i, sub; struct region_highlight *rhp; if (zlemetaline) { sizeline(ct + zlemetall); for (i = zlemetall; --i >= zlemetacs;) zlemetaline[i + ct] = zlemetaline[i]; zlemetall += ct; zlemetaline[zlemetall] = '\0'; if (mark > zlemetacs) mark += ct; if (region_highlights) { for (rhp = region_highlights + N_SPECIAL_HIGHLIGHTS; rhp < region_highlights + n_region_highlights; rhp++) { if (rhp->flags & ZRH_PREDISPLAY) sub = predisplaylen; else sub = 0; if (rhp->start_meta - sub >= zlemetacs) { rhp->start_meta += ct; } if (rhp->end_meta - sub >= zlemetacs) { rhp->end_meta += ct; } } } } else { sizeline(ct + zlell); for (i = zlell; --i >= zlecs;) zleline[i + ct] = zleline[i]; zlell += ct; zleline[zlell] = ZWC('\0'); if (mark > zlecs) mark += ct; if (region_highlights) { for (rhp = region_highlights + N_SPECIAL_HIGHLIGHTS; rhp < region_highlights + n_region_highlights; rhp++) { if (rhp->flags & ZRH_PREDISPLAY) sub = predisplaylen; else sub = 0; if (rhp->start - sub >= zlecs) { rhp->start += ct; } if (rhp->end - sub >= zlecs) { rhp->end += ct; } } } } region_active = 0; }