Annotation of researchv10no/ncurses/screen/_init_cost.c, revision 1.1

1.1     ! root        1: #include "curses.ext"
        !             2: /*     @(#) _init_cost.c: 1.1 10/17/83 (1.13   8/20/82)        */
        !             3: 
        !             4: /*
        !             5:  * Figure out (roughly) how much each of these capabilities costs.
        !             6:  * In the parameterized cases, we just take a typical case and
        !             7:  * use that value.  This is done only once at startup, since it
        !             8:  * would be too expensive for intensive use.
        !             9:  */
        !            10: _init_costs()
        !            11: {
        !            12:        int c_il0, c_il100;
        !            13:        char *tparm();
        !            14: 
        !            15:        /*
        !            16:         * Insert line costs.  These are a mess, they do not take into
        !            17:         * account parameterized insert line, but rather assume 1 at a time.
        !            18:         * Cost is # chars to insert one line k lines from bottom of screen.
        !            19:         */
        !            20:        if (insert_line) {
        !            21: #ifdef DEBUG
        !            22:                if(outf) fprintf(outf, "real insert line\n");
        !            23: #endif
        !            24:                c_il0 = _cost_fn(insert_line,0);
        !            25:                c_il100 = _cost_fn(insert_line,100);
        !            26:        } else if (change_scroll_region && save_cursor && restore_cursor) {
        !            27: #ifdef DEBUG
        !            28:                if(outf) fprintf(outf, "use scrolling region\n");
        !            29: #endif
        !            30:                c_il0 = 2*_cost_fn(change_scroll_region,lines-1) +
        !            31:                        2*_cost_fn(restore_cursor,0) +
        !            32:                        _cost_fn(save_cursor,0) + _cost_fn(scroll_reverse,0);
        !            33:                c_il100 = c_il0;
        !            34:        } else {
        !            35: #ifdef DEBUG
        !            36:                if(outf) fprintf(outf, "no insert line\n");
        !            37: #endif
        !            38:                c_il0 = c_il100 = INFINITY;
        !            39:        }
        !            40:        _cost(ilfixed) = c_il0;
        !            41:        _cost(ilvar) = ((long)(c_il100 - c_il0)<<32) / 100 ;
        !            42: #ifdef DEBUG
        !            43:        if(outf) fprintf(outf,"_init_costs, ilfixed %d, ilvar %d/32,\
        !            44:  c_il0 %d, c_il100 %d\n", _cost(ilfixed), _cost(ilvar), c_il0, c_il100);
        !            45: #endif
        !            46: 
        !            47:        /* This is also a botch: treated as _cost to insert k characters */
        !            48:        _cost(icvar) = _cost(icfixed) = 0;
        !            49:        if (enter_insert_mode && exit_insert_mode)
        !            50:                _cost(icfixed) += _cost_fn(enter_insert_mode,0) +
        !            51:                               _cost_fn(exit_insert_mode,0);
        !            52:        if (parm_ich)
        !            53:                _cost(icfixed) = _cost_fn(tparm(parm_ich, 10), 10);
        !            54:        else if (insert_character)
        !            55:                _cost(icfixed) = 0;
        !            56:        else if (_cost(icfixed) == 0)
        !            57:                _cost(icfixed) = INFINITY;
        !            58:        _cost(icvar) = 1<<5;    /* for the character itself */
        !            59:        if (!parm_ich) {
        !            60:                if (insert_character)
        !            61:                        _cost(icvar) += _cost_fn(insert_character,1)<<5;
        !            62:                if (insert_padding)
        !            63:                        _cost(icvar) += _cost_fn(insert_padding,1)<<5;
        !            64:        }
        !            65: #ifdef DEBUG
        !            66:        if (outf) fprintf(outf, "icfixed %d=%d+%d, icvar=%d/32\n",
        !            67:                _cost(icfixed), _cost_fn(enter_insert_mode,0),
        !            68:                _cost_fn(exit_insert_mode,0), _cost(icvar));
        !            69:        if (outf) fprintf(outf, "from ich1 %x '%s' %d\n",
        !            70:                insert_character, insert_character,
        !            71:                _cost_fn(insert_character,1));
        !            72:        if (outf) fprintf(outf, "ip %x '%s' %d\n", insert_padding,
        !            73:                insert_padding, _cost_fn(insert_padding));
        !            74: #endif
        !            75: 
        !            76:        _cost(Cursor_address)   = _cost_fn(tparm(cursor_address,8,10),1);
        !            77:        _cost(Cursor_home)      = _cost_fn(cursor_home,1);
        !            78:        _cost(Carriage_return)  = _cost_fn(carriage_return,1);
        !            79:        _cost(Tab)              = _cost_fn(tab,1);
        !            80:        _cost(Back_tab)         = _cost_fn(back_tab,1);
        !            81:        _cost(Cursor_left)      = _cost_fn(cursor_left,1);
        !            82:        _cost(Cursor_right)     = _cost_fn(cursor_right,1);
        !            83:        _cost(Right_base)       = _cost(Cursor_right);
        !            84:        _cost(Cursor_down)      = _cost_fn(cursor_down,1);
        !            85:        _cost(Cursor_up)        = _cost_fn(cursor_up,1);
        !            86:        _cost(Parm_left_cursor) = _cost_fn(tparm(parm_left_cursor, 10),1);
        !            87:        _cost(Parm_right_cursor)= _cost_fn(tparm(parm_right_cursor, 10),1);
        !            88:        _cost(Parm_up_cursor)   = _cost_fn(tparm(parm_up_cursor, 10),1);
        !            89:        _cost(Parm_down_cursor) = _cost_fn(tparm(parm_down_cursor, 10),1);
        !            90:        _cost(Column_address)   = _cost_fn(tparm(column_address, 10),1);
        !            91:        _cost(Row_address)      = _cost_fn(tparm(row_address, 8),1);
        !            92: }

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.