# 2.11BSD#431 - /usr/src/ucb/window/cmd5.c

##### Functions

    c_move            X
    getminmax         X
    movewin           X

       1: #ifndef lint
       2: static char sccsid[] = "@(#)cmd5.c	3.14 4/24/85";
       3: #endif
       4:
       5: /*
       6:  * Copyright (c) 1983 Regents of the University of California,
       7:  * All rights reserved.  Redistribution permitted subject to
       8:  * the terms of the Berkeley Software License Agreement.
       9:  */
      10:
      11: #include "defs.h"
      12:
      13: /*
      14:  * Window movement.
      15:  */
      16:
      17: c_move(w)
      18: register struct ww *w;
      19: {
      20:     int col, row;
      21:     int mincol, minrow;
      22:     int maxcol, maxrow;
      23:     int curcol, currow;
      24:
      25:     if (!terse)
      26:         wwputs("New window position: ", cmdwin);
      27:     col = w->ww_w.l;
      28:     row = w->ww_w.t;
      29:     wwadd(boxwin, framewin->ww_back);
      30:     for (;;) {
      31:         wwbox(boxwin, row - 1, col - 1, w->ww_w.nr + 2, w->ww_w.nc + 2);
      32:         getminmax(row, w->ww_w.nr, 1, wwnrow,
      33:             &currow, &minrow, &maxrow);
      34:         getminmax(col, w->ww_w.nc, 0, wwncol,
      35:             &curcol, &mincol, &maxcol);
      36:         wwsetcursor(currow, curcol);
      37:         while (wwpeekc() < 0)
      38:             wwiomux();
      39:         switch (getpos(&row, &col, minrow, mincol, maxrow, maxcol)) {
      40:         case 3:
      41:             wwunbox(boxwin);
      42:             wwdelete(boxwin);
      43:             return;
      44:         case 2:
      45:             wwunbox(boxwin);
      46:             break;
      47:         case 1:
      48:             wwunbox(boxwin);
      49:         case 0:
      50:             continue;
      51:         }
      52:         break;
      53:     }
      54:     wwdelete(boxwin);
      55:     if (!terse)
      56:         wwputc('\n', cmdwin);
      57:     wwcurtowin(cmdwin);
      58:     movewin(w, row, col);
      59: }
      60:
      61: movewin(w, row, col)
      62: register struct ww *w;
      63: {
      64:     struct ww *back = w->ww_back;
      65:
      66:     w->ww_alt.t = w->ww_w.t;
      67:     w->ww_alt.l = w->ww_w.l;
      68:     wwdelete(w);
      69:     wwmove(w, row, col);
      70:     wwadd(w, back);
      71:     reframe();
      72: }
      73:
      74: /*
      75:  * Weird stufff, don't ask.
      76:  */
      77: getminmax(x, n, a, b, curx, minx, maxx)
      78: register x, n, a, b;
      79: int *curx, *minx, *maxx;
      80: {
      81:     if (x < 0)
      82:         *curx = x + n - 1;
      83:     else
      84:         *curx = x;
      85:
      86:     if (x <= a)
      87:         *minx = 1 - n;
      88:     else if (x <= b - n)
      89:         *minx = a;
      90:     else
      91:         *minx = b - n;
      92:
      93:     if (x >= b - n)
      94:         *maxx = b - 1;
      95:     else if (x >= a)
      96:         *maxx = b - n;
      97:     else
      98:         *maxx = a;
      99: }

#### Defined functions

c_move defined in line 17; used 1 times

- in /usr/src/ucb/window/cmd.c line 77

getminmax defined in line 77; used 2 times

- in line 32-34(2)

movewin defined in line 61; used 2 times

- in line 58
- in /usr/src/ucb/window/cmd.c line 81

#### Defined variables

sccsid defined in line 2; never used

Last modified: 1987-02-17 Generated: 2016-12-26 | Generated by src2html V0.67 page hit count: 542 |