add a .gitignore file
[nvi.git] / common / msg.h
blob779d170a9b36e000f7b30dd26c0983e1a7ae9a7a
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.
7 * See the LICENSE file for redistribution information.
9 * $Id: msg.h,v 10.11 2000/04/21 21:26:19 skimo Exp $ (Berkeley) $Date: 2000/04/21 21:26:19 $
13 * Common messages (continuation or confirmation).
15 typedef enum {
16 CMSG_CONF, CMSG_CONT, CMSG_CONT_EX,
17 CMSG_CONT_R, CMSG_CONT_S, CMSG_CONT_Q } cmsg_t;
20 * Message types.
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.
28 * M_NONE Display to the user, no reformatting, no nothing.
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.
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.
40 typedef enum {
41 M_NONE = 1, M_BERR, M_ERR, M_INFO, M_SYSERR, M_VINFO, M_DBERR } mtype_t;
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.
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.
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. */
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. */