source: trunk/third/nvi/ip/ip_term.c @ 14302

Revision 14302, 1.9 KB checked in by ghudson, 25 years ago (diff)
This commit was generated by cvs2svn to compensate for changes in r14301, which included commits to RCS files with non-trunk default branches.
Line 
1/*-
2 * Copyright (c) 1996
3 *      Keith Bostic.  All rights reserved.
4 *
5 * See the LICENSE file for redistribution information.
6 */
7
8#include "config.h"
9
10#ifndef lint
11static const char sccsid[] = "@(#)ip_term.c     8.2 (Berkeley) 10/13/96";
12#endif /* not lint */
13
14#include <sys/types.h>
15#include <sys/queue.h>
16
17#include <bitstring.h>
18#include <stdio.h>
19 
20#include "../common/common.h"
21#include "ip.h"
22
23/*
24 * ip_term_init --
25 *      Initialize the terminal special keys.
26 *
27 * PUBLIC: int ip_term_init __P((SCR *));
28 */
29int
30ip_term_init(sp)
31        SCR *sp;
32{
33        SEQ *qp;
34
35        /*
36         * Rework any function key mappings that were set before the
37         * screen was initialized.
38         */
39        for (qp = sp->gp->seqq.lh_first; qp != NULL; qp = qp->q.le_next)
40                if (F_ISSET(qp, SEQ_FUNCMAP))
41                        (void)ip_fmap(sp, qp->stype,
42                            qp->input, qp->ilen, qp->output, qp->olen);
43        return (0);
44}
45
46/*
47 * ip_term_end --
48 *      End the special keys defined by the termcap/terminfo entry.
49 *
50 * PUBLIC: int ip_term_end __P((GS *));
51 */
52int
53ip_term_end(gp)
54        GS *gp;
55{
56        SEQ *qp, *nqp;
57
58        /* Delete screen specific mappings. */
59        for (qp = gp->seqq.lh_first; qp != NULL; qp = nqp) {
60                nqp = qp->q.le_next;
61                if (F_ISSET(qp, SEQ_SCREEN))
62                        (void)seq_mdel(qp);
63        }
64        return (0);
65}
66
67/*
68 * ip_fmap --
69 *      Map a function key.
70 *
71 * PUBLIC: int ip_fmap __P((SCR *, seq_t, CHAR_T *, size_t, CHAR_T *, size_t));
72 */
73int
74ip_fmap(sp, stype, from, flen, to, tlen)
75        SCR *sp;
76        seq_t stype;
77        CHAR_T *from, *to;
78        size_t flen, tlen;
79{
80        /* Bind a function key to a string sequence. */
81        return (1);
82}
83
84/*
85 * ip_optchange --
86 *      IP screen specific "option changed" routine.
87 *
88 * PUBLIC: int ip_optchange __P((SCR *, int, char *, u_long *));
89 */
90int
91ip_optchange(sp, opt, str, valp)
92        SCR *sp;
93        int opt;
94        char *str;
95        u_long *valp;
96{
97        switch (opt) {
98        case O_COLUMNS:
99        case O_LINES:
100                F_SET(sp->gp, G_SRESTART);
101                F_CLR(sp, SC_SCR_EX | SC_SCR_VI);
102                break;
103        case O_TERM:
104                msgq(sp, M_ERR, "The screen type may not be changed");
105                return (1);
106        }
107        return (0);
108}
Note: See TracBrowser for help on using the repository browser.