4 * The contents of this file are subject to the terms of the
5 * Common Development and Distribution License, Version 1.0 only
6 * (the "License"). You may not use this file except in compliance
9 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
10 * or http://www.opensolaris.org/os/licensing.
11 * See the License for the specific language governing permissions
12 * and limitations under the License.
14 * When distributing Covered Code, include this CDDL HEADER in each
15 * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
16 * If applicable, add the following below this CDDL HEADER, with the
17 * fields enclosed by brackets "[]" replaced with your own identifying
18 * information: Portions Copyright [yyyy] [name of copyright owner]
23 * Copyright 1997 Sun Microsystems, Inc. All rights reserved.
24 * Use is subject to license terms.
31 #pragma ident "%Z%%M% %I% %E% SMI"
33 #if !defined(lint) && defined(SCCSIDS)
34 static char *sccsid
= "%Z%%M% %I% %E% SMI";
49 char *handle
; /* handle */
53 switch (_code_set_info
.code_id
) {
56 printf ("DEFAULT: mbtowc invoked\n");
59 * This is a default code set
65 *pwc
= (unsigned char)*s
;
71 printf ("EUC: mbtowc invoked\n");
76 return(_mbtowc_euc(pwc
, s
, n
));
81 printf ("XCCS: mbtowc invoked\n");
86 return(_mbtowc_xccs(pwc
, s
, n
));
91 printf ("ISO2022: mbtowc invoked\n");
96 return(_mbtowc_iso(pwc
, s
, n
));
101 * User defined code set
103 handle
= _ml_open_library();
104 if (handle
== (char *)NULL
)
105 return(ERROR_NO_LIB
); /* No user library */
106 p
= (int (*)()) dlsym(handle
, "_mbtowc");
107 if (p
== (int (*)()) NULL
)
108 return(ERROR_NO_SYM
);
109 ret
= (*p
)(pwc
, s
, n
);
117 register char *s
; int n
;
121 if (_code_set_info
.code_id
!= CODESET_ISO2022
)
122 return (mbtowc((wchar_t *)0, s
, n
));
125 * ISO's mbtowc() changes 'states'.
128 val
= mbtowc((wchar_t *)0, s
, n
);