static char * get_cutbuffer(UNUSED(Param pm)) { if (cutbuf.buf) return zlelineasstring(cutbuf.buf, cutbuf.len, 0, NULL, NULL, 1); return ""; }
static char * get_lbuffer(UNUSED(Param pm)) { if (zlemetaline != NULL) return dupstrpfx(zlemetaline, zlemetacs); return zlelineasstring(zleline, zlecs, 0, NULL, NULL, 1); }
static char * get_buffer(UNUSED(Param pm)) { if (zlemetaline != 0) return dupstring(zlemetaline); return zlelineasstring(zleline, zlell, 0, NULL, NULL, 1); }
int acceptandhold(UNUSED(char **args)) { zpushnode(bufstack, zlelineasstring(zleline, zlell, 0, NULL, NULL, 0)); stackcs = zlecs; done = 1; return 0; }
mod_export char * zlegetline(int *ll, int *cs) { if (zlemetaline != NULL) { *ll = zlemetall; *cs = zlemetacs; return ztrdup(zlemetaline); } if (zleline) return zlelineasstring(zleline, zlell, zlecs, ll, cs, 0); *ll = *cs = 0; return ztrdup(""); }
int whatcursorposition(UNUSED(char **args)) { char msg[100]; char *s = msg, *mbstr; int bol = findbol(), len; ZLE_CHAR_T c = zleline[zlecs]; if (zlecs == zlell) strucpy(&s, "EOF"); else { strucpy(&s, "Char: "); switch (c) { case ZWC(' '): strucpy(&s, "SPC"); break; case ZWC('\t'): strucpy(&s, "TAB"); break; case ZWC('\n'): strucpy(&s, "LFD"); break; default: /* * convert a single character, remembering it may * turn into a multibyte string or be metafied. */ mbstr = zlelineasstring(zleline+zlecs, 1, 0, &len, NULL, 1); strcpy(s, mbstr); s += len; } sprintf(s, " (0%o, %u, 0x%x)", (unsigned int)c, (unsigned int)c, (unsigned int)c); s += strlen(s); } sprintf(s, " point %d of %d(%d%%) column %d", zlecs+1, zlell+1, zlell ? 100 * zlecs / zlell : 0, zlecs - bol); showmsg(msg); return 0; }
static char * get_prepost(ZLE_STRING_T text, int len) { return zlelineasstring(text, len, 0, NULL, NULL, 1); }