… | |
… | |
100 | { |
100 | { |
101 | char buf [max_sint32_size]; |
101 | char buf [max_sint32_size]; |
102 | char *p = buf + sizeof (buf); |
102 | char *p = buf + sizeof (buf); |
103 | char neg; |
103 | char neg; |
104 | |
104 | |
|
|
105 | uint32 val; |
|
|
106 | |
105 | if (i < 0) |
107 | if (i < 0) |
106 | { |
108 | { |
107 | neg = '-'; |
109 | neg = '-'; |
108 | i = -i; |
110 | val = -i; |
109 | } |
111 | } |
110 | else |
112 | else |
|
|
113 | { |
111 | neg = 0; |
114 | neg = 0; |
112 | |
115 | val = i; |
113 | uint32 val = i; |
116 | } |
114 | |
117 | |
115 | do |
118 | do |
116 | { |
119 | { |
117 | uint32 div = val / 10; |
120 | uint32 div = val / 10; |
118 | *--p = '0' + char (val - div * 10); |
121 | *--p = '0' + char (val - div * 10); |
… | |
… | |
132 | { |
135 | { |
133 | add (sint32 (i)); |
136 | add (sint32 (i)); |
134 | return; |
137 | return; |
135 | } |
138 | } |
136 | |
139 | |
|
|
140 | char buf [max_sint64_size]; |
|
|
141 | char *p = buf + sizeof (buf); |
|
|
142 | char neg; |
|
|
143 | |
137 | uint64 val; |
144 | uint64 val; |
138 | |
145 | |
139 | if (i < 0) |
146 | if (i < 0) |
140 | { |
147 | { |
141 | add ('-'); |
148 | neg = '-'; |
142 | val = -i; |
149 | val = -i; |
143 | } |
150 | } |
144 | else |
151 | else |
145 | val = i; |
|
|
146 | |
|
|
147 | if (val > UINT64_C (1000000000000000)) |
|
|
148 | { |
152 | { |
149 | add (sint32 (val / UINT64_C (1000000000000000))); |
153 | neg = 0; |
150 | val %= UINT64_C (1000000000000000); |
154 | val = i; |
151 | } |
155 | } |
152 | |
156 | |
153 | if (val > 10000000) |
157 | do |
154 | { |
158 | { |
155 | add (sint32 (val / 10000000)); |
159 | uint64 div = val / 10; |
156 | val %= 10000000; |
160 | *--p = '0' + char (val - div * 10); |
|
|
161 | val = div; |
157 | } |
162 | } |
|
|
163 | while (val); |
158 | |
164 | |
159 | add (sint32 (val)); |
165 | if (neg) |
|
|
166 | *--p = neg; |
|
|
167 | |
|
|
168 | add ((void *)p, buf + sizeof (buf) - p); |
160 | } |
169 | } |
161 | |
170 | |