Beispiel #1
0
int
upline(void)
{
    int n = zmult;

    if (n < 0) {
	zmult = -zmult;
	n = downline();
	zmult = -zmult;
	return n;
    }
    if ((lastcmd & ZLE_LINEMOVE) != ZLE_LINEMOVE)
	lastcol = cs - findbol();
    cs = findbol();
    while (n) {
	if (!cs)
	    break;
	cs--;
	cs = findbol();
	n--;
    }
    if (!n) {
	int x = findeol();

	if ((cs += lastcol) >= x) {
	    cs = x;
	    if (cs > findbol() && bindtab == altbindtab)
		cs--;
	}
    }
    return n;
}
Beispiel #2
0
    int minDistance(string word1, string word2) {
        vector<int> upline(word1.size() + 1, 0);
        vector<int> downline(word1.size() + 1, 0);
        for(int i = 0; i <= word1.size(); ++i)
            upline[i] = i;

        for(int i = 1; i <= word2.size(); ++i){
            downline[0] = i;
            for(int j = 1; j <= word1.size(); ++j){
                downline[j] = min(min(downline[j - 1] + 1, upline[j] + 1),
                                    (word1[j - 1] == word2[i - 1]) ? upline[j - 1] : upline[j - 1] + 1);
            }
            swap(upline, downline);
        }

        return upline.back();
    }
Beispiel #3
0
void
downlineorsearch(void)
{
    int ocs = cs;
    int n = downline();
    if (n) {
	int m = zmult;

	cs = ocs;
	if (virangeflag || in_vared) {
	    feep();
	    return;
	}
	zmult = n;
	historysearchforward();
	zmult = m;
    }
}
Beispiel #4
0
void
downlineorhistory(void)
{
    int ocs = cs;
    int n = downline();
    if (n) {
	int m = zmult;

	cs = ocs;
	if (virangeflag || in_vared) {
	    feep();
	    return;
	}
	zmult = n;
	downhistory();
	zmult = m;
    }
}