- Add ral(4) for Ralink RT2500/RT2501/RT2600 chip based wireless NIC
[dragonfly.git] / contrib / nvi / common / msg.h
1 /*-
2  * Copyright (c) 1993, 1994
3  *      The Regents of the University of California.  All rights reserved.
4  * Copyright (c) 1993, 1994, 1995, 1996
5  *      Keith Bostic.  All rights reserved.
6  *
7  * See the LICENSE file for redistribution information.
8  *
9  *      @(#)msg.h       10.10 (Berkeley) 5/10/96
10  */
11
12 /*
13  * Common messages (continuation or confirmation).
14  */
15 typedef enum {
16         CMSG_CONF, CMSG_CONT, CMSG_CONT_EX,
17         CMSG_CONT_R, CMSG_CONT_S, CMSG_CONT_Q } cmsg_t;
18
19 /*
20  * Message types.
21  *
22  * !!!
23  * In historical vi, O_VERBOSE didn't exist, and O_TERSE made the error
24  * messages shorter.  In this implementation, O_TERSE has no effect and
25  * O_VERBOSE results in informational displays about common errors, for
26  * naive users.
27  *
28  * M_NONE       Display to the user, no reformatting, no nothing.
29  *
30  * M_BERR       Error: M_ERR if O_VERBOSE, else bell.
31  * M_ERR        Error: Display in inverse video.
32  * M_INFO        Info: Display in normal video.
33  * M_SYSERR     Error: M_ERR, using strerror(3) message.
34  * M_VINFO       Info: M_INFO if O_VERBOSE, else ignore.
35  *
36  * The underlying message display routines only need to know about M_NONE,
37  * M_ERR and M_INFO -- all the other message types are converted into one
38  * of them by the message routines.
39  */
40 typedef enum {
41         M_NONE = 1, M_BERR, M_ERR, M_INFO, M_SYSERR, M_VINFO } mtype_t;
42
43 /*
44  * There are major problems with error messages being generated by routines
45  * preparing the screen to display error messages.  It's possible for the
46  * editor to generate messages before we have a screen in which to display
47  * them, or during the transition between ex (and vi startup) and a true vi.
48  * There's a queue in the global area to hold them.
49  *
50  * If SC_EX/SC_VI is set, that's the mode that the editor is in.  If the flag
51  * S_SCREEN_READY is set, that means that the screen is prepared to display
52  * messages.
53  */
54 typedef struct _msgh MSGH;      /* MSGS list head structure. */
55 LIST_HEAD(_msgh, _msg);
56 struct _msg {
57         LIST_ENTRY(_msg) q;     /* Linked list of messages. */
58         mtype_t  mtype;         /* Message type: M_NONE, M_ERR, M_INFO. */
59         char    *buf;           /* Message buffer. */
60         size_t   len;           /* Message length. */
61 };
62
63 /* Flags to msgq_status(). */
64 #define MSTAT_SHOWLAST  0x01    /* Show the line number of the last line. */
65 #define MSTAT_TRUNCATE  0x02    /* Truncate the file name if it's too long. */