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

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

	if (x == ll)
	    break;
	cs = x + 1;
	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
uplineorsearch(void)
{
    int ocs = cs;
    int n = upline();
    if (n) {
	int m = zmult;

	cs = ocs;
	if (virangeflag || in_vared) {
	    feep();
	    return;
	}
	zmult = n;
	historysearchbackward();
	zmult = m;
    }
}
Beispiel #4
0
void
uplineorhistory(void)
{
    int ocs = cs;
    int n = upline();
    if (n) {
	int m = zmult;

	cs = ocs;
	if (virangeflag || in_vared) {
	    feep();
	    return;
	}
	zmult = n;
	uphistory();
	zmult = m;
    }
}
Beispiel #5
0
int kcinth()
{
   u16    segment, offset;
   int    a,b,c,d, r;
   segment = running->uss; 
   offset = running->usp;

   a = get_word(segment, offset + 2*PA);
   b = get_word(segment, offset + 2*PB);
   c = get_word(segment, offset + 2*PC);
   d = get_word(segment, offset + 2*PD);

   switch(a){
       case 0 : r = running->pid;     break;
       case 1 : r = do_ps();          break;
       case 2 : r = chname(b);        break;
       case 3 : r = kmode();          break;
       case 4 : r = tswitch();        break;
       case 5 : r = do_wait(b);       break;
       case 6 : r = do_exit(b);       break;
        
       case 7 : r = fork();           break;
       case 8 : r = exec(b);          break;

       case 9 : r = vfork();          break;

       case 12: r = upline(b); break;
       
       case 90: r =  getc();          break;
       case 91: color=running->pid+11;
                r =  putc(b);         break;       
       case 99: do_exit(b);           break;
       default: printf("invalid syscall # : %d\n", a); 
   }
   put_word(r, segment, offset + 2*AX);
}