1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
|
/*
* CDDL HEADER START
*
* The contents of this file are subject to the terms of the
* Common Development and Distribution License, Version 1.0 only
* (the "License"). You may not use this file except in compliance
* with the License.
*
* You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
* or http://www.opensolaris.org/os/licensing.
* See the License for the specific language governing permissions
* and limitations under the License.
*
* When distributing Covered Code, include this CDDL HEADER in each
* file and include the License file at usr/src/OPENSOLARIS.LICENSE.
* If applicable, add the following below this CDDL HEADER, with the
* fields enclosed by brackets "[]" replaced with your own identifying
* information: Portions Copyright [yyyy] [name of copyright owner]
*
* CDDL HEADER END
*/
/*
* <mkslocal.h>, Solaris2 Version - local <mks.h> requirements
*
* Copyright 1995-1996 (c) Sun Microsystems Inc.
* All rights reserved.
*
*/
#pragma ident "%Z%%M% %I% %E% SMI"
#define _ALL_SOURCE
#include <sys/types.h>
#include <stdlib.h>
#include <limits.h>
#include <wchar.h>
#include <widec.h>
#include <wctype.h>
typedef unsigned char uchar;
#define SYSV 1 /* System V compatible */
#ifndef VERSION
/* Used for in sh, vi ... */
#define VERSION "MKS InterOpen IXCU 4.3 MB - SUN/SOLARIS2"
#endif
/*
* Assume that rootname() is called to prepend the proper path prefix
*/
#define M_CS_PATH "/usr/xpg4/bin" /* posix.2 utilities */
#define M_CS_SHELL "/usr/xpg4/bin/sh" /* posix.2 sh */
#define M_CS_BINDIR "/usr/bin"
#define M_CS_ETCDIR "/etc"
#define M_CS_LIBDIR "/usr/lib"
#define M_CS_SPOOLDIR "/var/spool"
#define M_CS_MANPATH "/usr/man"
#define M_CS_TMPDIR "/tmp"
#define M_CS_NLSDIR "/usr/lib/locale"
#define M_BINDIR(path) M_CS_BINDIR"/" #path
#define M_ETCDIR(path) M_CS_ETCDIR"/" #path
#define M_LIBDIR(path) M_CS_LIBDIR"/" #path
#define M_SPOOLDIR(path) M_CS_SPOOLDIR"/" #path
#define M_NLSDIR(path) M_CS_NLSDIR"/" #path
/*
* M_MANPATH - list of pathnames to be used by man utility
* M_TMPDIR - pathname of temporary
*/
#define M_MANPATH M_CS_MANPATH"/"
#define M_TMPDIR M_CS_TMPDIR"/"
#define M_SYSTEM_TMPDIR "/tmp"
#define M_NL_DOM "mks"
#define DEF_NLSPATH "/usr/lib/locale/%L/LC_MESSAGES"
#define M_RCS_NORCSLIB 1 /* don't use rcslib or its includes */
#define M_MALLOC 1
#define M_REALLOC 1
#ifdef M_REALLOC
#define M_WANT_ANSI_REALLOC 1
#endif
#define __LDATA__ 1 /* Deprecated */
#define M_LDATA 1
#define halloc(n, s) malloc((size_t)((n)*(s)))
#define hfree(ptr) free(ptr)
#define M_FSDELIM(c) ((c) == '/')
/* On POSIX and UNIX there is nothing special to do */
#define m_cp(src, dest, ssb, flags) (M_CP_NOOP)
#define __POSIX_JOB_CONTROL /* POSIX.1 job control */
#define __POSIX_WAIT_NOHANG /* waitpid WNOHANG available */
#define __POSIX_SAVED_IDS _POSIX_SAVED_IDS
#define __POSIX_NO_TRUNC -1 /* automatic truncation */
#define __POSIX_VDISABLE 0x00 /* Disable function in termios.h */
/*
* added for optional facility configuration values
*/
#define M_POSIX2_C_BIND 1
#define M_POSIX2_C_DEV 1
#define M_POSIX2_FORT_DEV 1
#undef M_POSIX2_FORT_RUN
#define M_POSIX2_LOCALEDEF 1
#define M_POSIX2_SW_DEV 1
#define M_POSIX2_UPE 1
#define M_POSIX2_CHAR_TERM 1
#undef M_FCLOSE_NOT_POSIX_1 /* Not POSIX.1 section 8.2 */
#undef M_FFLUSH_NOT_POSIX_1 /* Not POSIX.1 section 8.2 */
#define M_BSD_SPRINTF 0 /* sprintf on this system has BSD */
/* semantics, does not return length */
#define M_ENDPWENT 1 /* set to 1 if system provides a */
/* getpwent() routine */
#define M_MATHERR 1 /* math library supports matherr() */
#define M_LOGGER_CONSOLE "/dev/console"
#define M_SVFS_INO 1
/*
* Set I18N flags
*/
#define M_I18N 1 /* turn on internationalizaion */
#define I18N 1 /* OBSOLESCENT version of M_I18N */
#define M_I18N_M_ 1 /* Uses m_ on MKS i18n extension routines */
#define M_I18N_MKS_XPG 1 /* Use NL info from XPG4 */
#define M_I18N_MKS_FULL 0 /* Full mks extensions */
#define M_I18N_MB 1 /* Enable multibyte compilation */
#undef M_I18N_LOCKING_SHIFT /* No locking-shift character sets. */
#undef M_VARIANTS /* Invariant characters are */
/*
* Interopen Curses for Solaris2
*/
#undef M_CURSES_MEMMAPPED
#define M_TERM_NAME "vt100"
#define M_TERMINFO_DIR "/usr/share/lib/terminfo"
#define M_CURSES_VERSION "MKS I/XCU 4.3 Curses"
#define M_ULIMIT_AVAIL 1 /* <ulimit.h> file available */
#define M_EXPR_POSIX 1 /* decimal only on the expr command line */
#define M_PATH_MAX PATH_MAX
/*
* Solaris 2 does not use stateful encoding, so we will just convert these
* to their stateless equivalent.
*/
#ifndef _MBSTATE_T
#define _MBSTATE_T
typedef int mbstate_t;
#endif /* ! _MBSTATE_T */
#define mbrlen(c, n, ps) mblen(c, n)
#define wcrtomb(c, w, s) wctomb(c, w)
#define mbrtowc(p, w, n, s) mbtowc(p, w, n)
#define wcsrtombs(w, c, n, s) wcstombs(w, c, n)
#define mbsrtowcs(c, w, n, s) mbstowcs(c, w, n)
|