int vibackwardwordend(char **args) { int n = zmult; if (n < 0) { int ret; zmult = -n; ret = viforwardwordend(args); zmult = n; return ret; } while (n-- && zlecs > 1) { int cc = wordclass(zleline[zlecs]); DECCS(); while (zlecs) { if (wordclass(zleline[zlecs]) != cc || ZC_iblank(zleline[zlecs])) break; DECCS(); } while (zlecs && ZC_iblank(zleline[zlecs])) DECCS(); } return 0; }
int vibackwardwordend(char **args) { int n = zmult; if (n < 0) { int ret; zmult = -n; ret = viforwardwordend(args); zmult = n; return ret; } while (n-- && zlecs > 1) { int start = 0; if (Z_vialnum(zleline[zlecs])) start = 1; else if (!ZC_inblank(zleline[zlecs])) start = 2; DECCS(); while (zlecs) { int same = (start != 1) && ZC_iblank(zleline[zlecs]); if (start) same |= Z_vialnum(zleline[zlecs]); if (same == (start == 2)) break; DECCS(); } while (zlecs && ZC_iblank(zleline[zlecs])) DECCS(); } return 0; }