1
2/***********************************************************
3Copyright 1990, by Alfalfa Software Incorporated, Cambridge, Massachusetts.
4
5                        All Rights Reserved
6
7Permission to use, copy, modify, and distribute this software and its
8documentation for any purpose and without fee is hereby granted,
9provided that the above copyright notice appear in all copies and that
10both that copyright notice and this permission notice appear in
11supporting documentation, and that Alfalfa's name not be used in
12advertising or publicity pertaining to distribution of the software
13without specific, written prior permission.
14
15ALPHALPHA DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
16ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
17ALPHALPHA BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR
18ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
19WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
20ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
21SOFTWARE.
22
23If you make any modifications, bugfixes or other changes to this software
24we'd appreciate it if you could send a copy to us so we can keep things
25up-to-date.  Many thanks.
26				Kee Hinckley
27				Alfalfa Software, Inc.
28				267 Allston St., #3
29				Cambridge, MA 02139  USA
30				nazgul@alfalfa.com
31
32******************************************************************/
33
34/* Edit History
35
3602/25/91   2 nazgul	Added MCGetByteOrder
3701/18/91   2 hamilton	#if not reparsed
3801/12/91   2 schulert	conditionally use prototypes
3911/03/90   1 hamilton	Alphalpha->Alfalfa & OmegaMail->Poste
4008/13/90   1 schulert	move from ua to omu
41*/
42
43#ifndef gencat_h
44#define gencat_h
45
46/*
47 * $set n comment
48 *	My extension:  If the comment begins with # treat the next string
49 *	 as a constant identifier.
50 * $delset n comment
51 *	n goes from 1 to NL_SETMAX
52 *	Deletes a set from the MC
53 * $ comment
54 *	My extension:  If comment begins with # treat the next string as
55 *	 a constant identifier for the next message.
56 * m message-text
57 *	m goes from 1 to NL_MSGMAX
58 *	If message-text is empty, and a space or tab is present, put
59 *	 empty string in catalog.
60 *	If message-text is empty, delete the message.
61 *	Length of text is 0 to NL_TEXTMAX
62 *	My extension:  If '#' is used instead of a number, the number
63 *	 is generated automatically.  A # followed by anything is an empty message.
64 * $quote c
65 *	Optional quote character which can suround message-text to
66 *	 show where spaces are.
67 *
68 * Escape Characters
69 *	\n (newline), \t (horiz tab), \v (vert tab), \b (backspace),
70 *	\r (carriage return), \f (formfeed), \\ (backslash), \ddd (bitpattern
71 *	in octal).
72 *	Also, \ at end of line is a continuation.
73 *
74 */
75
76#define	MCLangC		0
77#define MCLangCPlusPlus	1
78#define MCLangANSIC	2
79
80#define MAXTOKEN	1024
81
82#if !defined(ANSI_C) && (defined(__STDC__) || defined(_AIX))
83# define ANSI_C 1
84#endif
85
86#if ANSI_C || defined(__cplusplus)
87# define P_(x) x
88#else
89# define P_(x) /**/
90#endif
91
92extern void MCAddSet P_((int setId, char *c));
93extern void MCDelSet P_((int setId));
94extern void MCAddMsg P_((int msgId, char *msg, char *c));
95extern void MCDelMsg P_((int msgId));
96extern void MCParse P_((int fd));
97extern void MCReadCat P_((int fd));
98extern void MCWriteConst P_((int fd, int type, int orConsts));
99extern void MCWriteCat P_((int fd));
100extern long MCGetByteOrder P_((void));
101
102#ifndef True
103# define True 	~0
104# define False	0
105#endif
106
107#endif
108