Annotation of researchv10dc/630/man/src/p_man/man3/peel.3r, revision 1.1

1.1     ! root        1: .ds ZZ DEVELOPMENT PACKAGE
        !             2: .TH PEEL 3R "630 MTG"
        !             3: .XE "peel()"
        !             4: .SH NAME
        !             5: peel \- make process local and create new process
        !             6: .SH SYNOPSIS
        !             7: .B #include <dmd.h>
        !             8: .sp
        !             9: .B Proc \(**peel (dstrect, flag)
        !            10: .br
        !            11: .B Rectangle dstrect;
        !            12: .br
        !            13: .B int flag;
        !            14: .SH DESCRIPTION
        !            15: .PP
        !            16: The \fIpeel\fP function is an uncommon feature that allows a process
        !            17: to be made local and reshaped (or moved). The  \f2peel\f1
        !            18: function then creates a new
        !            19: process that uses the previous process's window and host connection.
        !            20: The rectangle \fIdstrect\fP defines the new window (display) to be used by
        !            21: the peeled local process.  The
        !            22: remaining window is associated with a new process that takes on the
        !            23: status of the connection of the previous process.
        !            24: .PP
        !            25: If argument \f2flag\f1 is zero, the terminal's default process
        !            26: is started in the old window.
        !            27: If argument \f2flag\f1 has a non-zero value, the process that is
        !            28: used to replace the peeled process is another invocation of
        !            29: the same process. 
        !            30: The process must be cached to do this.
        !            31: .PP
        !            32: The peeled process will have its \fIP->state\fP variable updated.
        !            33: If the \fIdstrect\fP rectangle is the same size
        !            34: as the original window, both the MOVED and RESHAPED bits
        !            35: will be set; otherwise, just the RESHAPED bit is set.  If the MOVED bit
        !            36: is set, the new window will have the contents of the old window
        !            37: copied into it.
        !            38: Otherwise, it is the responsibility of the peeled process to draw the new window's
        !            39: contents.
        !            40: The old window is always cleared.
        !            41: .PP
        !            42: The function will return -1 if it failed due to a lack of memory.
        !            43: It will return 0 if it failed because dstrect is smaller than 32x32.
        !            44: Otherwise, it will return a pointer to the newly created process
        !            45: running in the old window.
        !            46: .SH EXAMPLE
        !            47: .PP
        !            48: The following example shows how a process can peel itself and
        !            49: leave behind the default terminal process.
        !            50: The rectangle \fIdstrect\fP is specified through the mouse interface
        !            51: that allows the user to position or sweep out a rectangle using a
        !            52: default size as specified by the rectangle of the window or a new size
        !            53: using the mouse and button 2.
        !            54: .PP
        !            55: .RS 3
        !            56: .nf
        !            57: .ft CM
        !            58: #include <dmd.h>
        !            59: Proc *peel();
        !            60: Rectangle newrect();
        !            61: 
        !            62: int
        !            63: peelme()
        !            64: {
        !            65:    Proc *p;
        !            66: 
        !            67:    p = peel(newrect(2, display.rect), 0);
        !            68:    if(p == (Proc *)-1)
        !            69:       msgbox("no memory", (char *)0);
        !            70:    else if(p == (Proc *)0)
        !            71:       msgbox("swept window too small", (char *)0);
        !            72:    return((long)p > 0);
        !            73: }
        !            74: \fR
        !            75: .fi
        !            76: .RE
        !            77: \s+1
        !            78: .SH SEE ALSO
        !            79: cache(3L), local(3R), state(3R).

unix.superglobalmegacorp.com

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