Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP
Posting-Version: version B 2.10 5/3/83; site umcp-cs.UUCP
Path: utzoo!linus!philabs!seismo!rlgvax!cvl!umcp-cs!chris
From: chris@umcp-cs.UUCP
Newsgroups: net.sources
Subject: Window doc #2 [of 0-2]
Message-ID: <506@umcp-cs.UUCP>
Date: Wed, 6-Jul-83 09:16:39 EDT
Article-I.D.: umcp-cs.506
Posted: Wed Jul  6 09:16:39 1983
Date-Received: Thu, 7-Jul-83 20:57:16 EDT
Organization: Univ. of Maryland, Computer Science Dept.
Lines: 708

: Run this shell script with "sh" not "csh"
PATH=:/bin:/usr/bin:/usr/ucb
export PATH
all=FALSE
if [ $1x = -ax ]; then
	all=TRUE
fi
/bin/echo 'Extracting xac'
sed 's/^X//' <<'//go.sysin dd *' >xac
X.\"Wood.R.J.-1982-05-3
X.ds [F Wood 82
X.]-
X.ds [L Wood 82
X.ds [A Wood, R.J.
X.ds [T A Window Based Display Management System
X.ds [R Univ. of Maryland, TR (in preparation)
X.ds [D May 1982
X.nr [T 0
X.nr [A 1
X.nr [O 0
X.][ 4 tech-report
X.]>
X.ls 2
X.AP "Technical description"
X.pp
XThese are listings of the files that are to be #\fIinclude\fRd to use the
Xwindow library.  The first file should be included in any program using
Xwindows; it includes the second file automatically.
X.sp
X.ce
X\fB\fR
X.sp
X.nf
X.ls 1
X#include 
X
X#define Wwrap(w,on)     ((w)->w_status &= ~WWRAPOFF,    \\
X                         (w)->w_status |= (on)?0:WWRAPOFF, 0)
X#define Wnewline(w,on)  ((w)->w_status &= ~WNEWLINE,    \\
X                         (w)->w_status |= (on)?WNEWLINE:0, 0)
X#define Wsetmode(w,m)   ((w)->w_mode &= ~MODEMASK,      \\
X                         (w)->w_mode |= m & MODEMASK, 0)
X#define Wsetpopup(w,p)  ((w)->w_popup = (p), 0)
X#define Wcurup(w,n)     (WAcursor (w,                   \\
X                         (w)->w_cursor.row+(w)->w_bstart.row-(n),\\
X                         (w)->w_cursor.col+(w)->w_bstart.col))
X#define Wcurdown(w,n)   (WAcursor (w,                   \\
X                         (w)->w_cursor.row+(w)->w_bstart.row+(n),\\
X                         (w)->w_cursor.col+(w)->w_bstart.col))
X#define Wcurleft(w,n)   (WAcursor (w,                   \\
X                         (w)->w_cursor.row+(w)->w_bstart.row,\\
X                         (w)->w_cursor.col+(w)->w_bstart.col-(n)))
X#define Wcurright(w,n)  (WAcursor (w,                   \\
X                         (w)->w_cursor.row+(w)->w_bstart.row,\\
X                         (w)->w_cursor.col+(w)->w_bstart.col+(n)))
X#define WWtoBcursor(w)  (WAcursor (w,                   \\
X                         (w)->w_textbuf->b_cursor.row,  \\
X                         (w)->w_textbuf->b_cursor.col))
X
X/* NOTE: THESE MACROS MAY BE SYSTEM DEPENDENT */
X#define WCHAROF(c)      ((c)&0377)
X#define WMODEOF(c)      ((c)>>NBPB)
X
X/* Function types for non-integer functions */
XWin *Wopen (), *Wlink (), *Wfind (), *Wboxfind ();
X.ls
X.fi
X.bp
X.ce
X\fB\fR
X.sp
X.nf
X.ls 1
X#define NBPB    8               /* Number of bits per byte */
X
Xunion chr {
X        struct {
X                char ch;        /* NOTE: this is known to be low byte */
X                char mode;
X        } ch_two;
X        short   ch_all;
X};
X
X/* ch_all is set to ' ' or (' '|(WBUF<