author | Craig Mohrman <craig.mohrman@oracle.com> |
Mon, 27 Jul 2015 16:33:17 -0700 | |
changeset 4700 | 3e0131debf7c |
parent 4196 | d697072a92f5 |
permissions | -rw-r--r-- |
789
5f074ca23733
7106955 move ksh93 from ON to userland
Edwin Beasant <Edwin.Beasant@oracle.com>
parents:
diff
changeset
|
1 |
--- a/src/lib/libast/comp/setlocale.c Mon Dec 27 04:23:49 2010 |
5f074ca23733
7106955 move ksh93 from ON to userland
Edwin Beasant <Edwin.Beasant@oracle.com>
parents:
diff
changeset
|
2 |
+++ b/src/lib/libast/comp/setlocale.c Fri Jul 22 00:30:31 2011 |
5f074ca23733
7106955 move ksh93 from ON to userland
Edwin Beasant <Edwin.Beasant@oracle.com>
parents:
diff
changeset
|
3 |
@@ -19,6 +19,9 @@ |
5f074ca23733
7106955 move ksh93 from ON to userland
Edwin Beasant <Edwin.Beasant@oracle.com>
parents:
diff
changeset
|
4 |
* Phong Vo <[email protected]> * |
5f074ca23733
7106955 move ksh93 from ON to userland
Edwin Beasant <Edwin.Beasant@oracle.com>
parents:
diff
changeset
|
5 |
* * |
5f074ca23733
7106955 move ksh93 from ON to userland
Edwin Beasant <Edwin.Beasant@oracle.com>
parents:
diff
changeset
|
6 |
***********************************************************************/ |
5f074ca23733
7106955 move ksh93 from ON to userland
Edwin Beasant <Edwin.Beasant@oracle.com>
parents:
diff
changeset
|
7 |
+/* |
5f074ca23733
7106955 move ksh93 from ON to userland
Edwin Beasant <Edwin.Beasant@oracle.com>
parents:
diff
changeset
|
8 |
+ * Copyright (c) 2007, 2012, Oracle and/or its affiliates. All rights reserved. |
5f074ca23733
7106955 move ksh93 from ON to userland
Edwin Beasant <Edwin.Beasant@oracle.com>
parents:
diff
changeset
|
9 |
+ */ |
5f074ca23733
7106955 move ksh93 from ON to userland
Edwin Beasant <Edwin.Beasant@oracle.com>
parents:
diff
changeset
|
10 |
#pragma prototyped |
5f074ca23733
7106955 move ksh93 from ON to userland
Edwin Beasant <Edwin.Beasant@oracle.com>
parents:
diff
changeset
|
11 |
|
5f074ca23733
7106955 move ksh93 from ON to userland
Edwin Beasant <Edwin.Beasant@oracle.com>
parents:
diff
changeset
|
12 |
/* |
5f074ca23733
7106955 move ksh93 from ON to userland
Edwin Beasant <Edwin.Beasant@oracle.com>
parents:
diff
changeset
|
13 |
@@ -2236,6 +2239,24 @@ |
5f074ca23733
7106955 move ksh93 from ON to userland
Edwin Beasant <Edwin.Beasant@oracle.com>
parents:
diff
changeset
|
14 |
|
5f074ca23733
7106955 move ksh93 from ON to userland
Edwin Beasant <Edwin.Beasant@oracle.com>
parents:
diff
changeset
|
15 |
typedef int (*Isw_f)(wchar_t); |
5f074ca23733
7106955 move ksh93 from ON to userland
Edwin Beasant <Edwin.Beasant@oracle.com>
parents:
diff
changeset
|
16 |
|
5f074ca23733
7106955 move ksh93 from ON to userland
Edwin Beasant <Edwin.Beasant@oracle.com>
parents:
diff
changeset
|
17 |
+static int |
5f074ca23733
7106955 move ksh93 from ON to userland
Edwin Beasant <Edwin.Beasant@oracle.com>
parents:
diff
changeset
|
18 |
+wide_wctomb(char* u, wchar_t w) |
5f074ca23733
7106955 move ksh93 from ON to userland
Edwin Beasant <Edwin.Beasant@oracle.com>
parents:
diff
changeset
|
19 |
+{ |
5f074ca23733
7106955 move ksh93 from ON to userland
Edwin Beasant <Edwin.Beasant@oracle.com>
parents:
diff
changeset
|
20 |
+ int size = 0; |
5f074ca23733
7106955 move ksh93 from ON to userland
Edwin Beasant <Edwin.Beasant@oracle.com>
parents:
diff
changeset
|
21 |
+ |
5f074ca23733
7106955 move ksh93 from ON to userland
Edwin Beasant <Edwin.Beasant@oracle.com>
parents:
diff
changeset
|
22 |
+ if (u) |
5f074ca23733
7106955 move ksh93 from ON to userland
Edwin Beasant <Edwin.Beasant@oracle.com>
parents:
diff
changeset
|
23 |
+ { |
5f074ca23733
7106955 move ksh93 from ON to userland
Edwin Beasant <Edwin.Beasant@oracle.com>
parents:
diff
changeset
|
24 |
+ size = wctomb(u, w); |
5f074ca23733
7106955 move ksh93 from ON to userland
Edwin Beasant <Edwin.Beasant@oracle.com>
parents:
diff
changeset
|
25 |
+ if (size < 0) |
5f074ca23733
7106955 move ksh93 from ON to userland
Edwin Beasant <Edwin.Beasant@oracle.com>
parents:
diff
changeset
|
26 |
+ { |
5f074ca23733
7106955 move ksh93 from ON to userland
Edwin Beasant <Edwin.Beasant@oracle.com>
parents:
diff
changeset
|
27 |
+ *u = (char)(w & 0xff); |
5f074ca23733
7106955 move ksh93 from ON to userland
Edwin Beasant <Edwin.Beasant@oracle.com>
parents:
diff
changeset
|
28 |
+ size = 1; |
5f074ca23733
7106955 move ksh93 from ON to userland
Edwin Beasant <Edwin.Beasant@oracle.com>
parents:
diff
changeset
|
29 |
+ } |
5f074ca23733
7106955 move ksh93 from ON to userland
Edwin Beasant <Edwin.Beasant@oracle.com>
parents:
diff
changeset
|
30 |
+ } |
5f074ca23733
7106955 move ksh93 from ON to userland
Edwin Beasant <Edwin.Beasant@oracle.com>
parents:
diff
changeset
|
31 |
+ |
5f074ca23733
7106955 move ksh93 from ON to userland
Edwin Beasant <Edwin.Beasant@oracle.com>
parents:
diff
changeset
|
32 |
+ return size; |
5f074ca23733
7106955 move ksh93 from ON to userland
Edwin Beasant <Edwin.Beasant@oracle.com>
parents:
diff
changeset
|
33 |
+} |
5f074ca23733
7106955 move ksh93 from ON to userland
Edwin Beasant <Edwin.Beasant@oracle.com>
parents:
diff
changeset
|
34 |
+ |
5f074ca23733
7106955 move ksh93 from ON to userland
Edwin Beasant <Edwin.Beasant@oracle.com>
parents:
diff
changeset
|
35 |
/* |
5f074ca23733
7106955 move ksh93 from ON to userland
Edwin Beasant <Edwin.Beasant@oracle.com>
parents:
diff
changeset
|
36 |
* called when LC_CTYPE initialized or changes |
5f074ca23733
7106955 move ksh93 from ON to userland
Edwin Beasant <Edwin.Beasant@oracle.com>
parents:
diff
changeset
|
37 |
*/ |
5f074ca23733
7106955 move ksh93 from ON to userland
Edwin Beasant <Edwin.Beasant@oracle.com>
parents:
diff
changeset
|
38 |
@@ -2280,7 +2301,7 @@ |
5f074ca23733
7106955 move ksh93 from ON to userland
Edwin Beasant <Edwin.Beasant@oracle.com>
parents:
diff
changeset
|
39 |
{ |
5f074ca23733
7106955 move ksh93 from ON to userland
Edwin Beasant <Edwin.Beasant@oracle.com>
parents:
diff
changeset
|
40 |
if (!(ast.mb_width = wcwidth)) |
5f074ca23733
7106955 move ksh93 from ON to userland
Edwin Beasant <Edwin.Beasant@oracle.com>
parents:
diff
changeset
|
41 |
ast.mb_width = default_wcwidth; |
5f074ca23733
7106955 move ksh93 from ON to userland
Edwin Beasant <Edwin.Beasant@oracle.com>
parents:
diff
changeset
|
42 |
- ast.mb_conv = wctomb; |
5f074ca23733
7106955 move ksh93 from ON to userland
Edwin Beasant <Edwin.Beasant@oracle.com>
parents:
diff
changeset
|
43 |
+ ast.mb_conv = wide_wctomb; |
5f074ca23733
7106955 move ksh93 from ON to userland
Edwin Beasant <Edwin.Beasant@oracle.com>
parents:
diff
changeset
|
44 |
#ifdef mb_state |
5f074ca23733
7106955 move ksh93 from ON to userland
Edwin Beasant <Edwin.Beasant@oracle.com>
parents:
diff
changeset
|
45 |
{ |
5f074ca23733
7106955 move ksh93 from ON to userland
Edwin Beasant <Edwin.Beasant@oracle.com>
parents:
diff
changeset
|
46 |
/* |