• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
2<html xmlns="http://www.w3.org/1999/xhtml">
3<head>
4<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
5<title>libmangle: src/m_ms.h File Reference</title>
6<link href="tabs.css" rel="stylesheet" type="text/css"/>
7<link href="doxygen.css" rel="stylesheet" type="text/css"/>
8</head>
9<body>
10<!-- Generated by Doxygen 1.6.1 -->
11<div class="navigation" id="top">
12  <div class="tabs">
13    <ul>
14      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
15      <li><a href="annotated.html"><span>Data&nbsp;Structures</span></a></li>
16      <li class="current"><a href="files.html"><span>Files</span></a></li>
17    </ul>
18  </div>
19  <div class="tabs">
20    <ul>
21      <li><a href="files.html"><span>File&nbsp;List</span></a></li>
22      <li><a href="globals.html"><span>Globals</span></a></li>
23    </ul>
24  </div>
25</div>
26<div class="contents">
27<h1>src/m_ms.h File Reference</h1><code>#include &quot;<a class="el" href="m__token_8h_source.html">m_token.h</a>&quot;</code><br/>
28
29<p><a href="m__ms_8h_source.html">Go to the source code of this file.</a></p>
30<table border="0" cellpadding="0" cellspacing="0">
31<tr><td colspan="2"><h2>Data Structures</h2></td></tr>
32<tr><td class="memItemLeft" align="right" valign="top">struct &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structs_cached.html">sCached</a></td></tr>
33<tr><td class="memItemLeft" align="right" valign="top">struct &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structs_m_s_ctx.html">sMSCtx</a></td></tr>
34<tr><td colspan="2"><h2>Defines</h2></td></tr>
35<tr><td class="memItemLeft" align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="m__ms_8h.html#aef5f6ad4353a2cf2321c074dbfaa9aac">ENCODING_TYPE_MS</a>&nbsp;&nbsp;&nbsp;1</td></tr>
36<tr><td class="memItemLeft" align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="m__ms_8h.html#a0abbf2a725f45243f4292bf3e764973c">GET_CHAR</a>(CTX)&nbsp;&nbsp;&nbsp;((CTX)-&gt;pos == (CTX)-&gt;end ? 0 : (CTX)-&gt;pos[0])</td></tr>
37<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get currently marked character from <em>CTX</em>.  <a href="#a0abbf2a725f45243f4292bf3e764973c"></a><br/></td></tr>
38<tr><td class="memItemLeft" align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="m__ms_8h.html#adfca56cc6bed709fa84cc0b26430100d">INC_CHAR</a>(CTX)&nbsp;&nbsp;&nbsp;do { if ((CTX)-&gt;pos != (CTX)-&gt;end) (CTX)-&gt;pos++; } while (0)</td></tr>
39<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Increments <em>ctx</em> position.  <a href="#adfca56cc6bed709fa84cc0b26430100d"></a><br/></td></tr>
40<tr><td class="memItemLeft" align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="m__ms_8h.html#aac4ed973666f5f09c3e866666326fb05">DEC_CHAR</a>(CTX)&nbsp;&nbsp;&nbsp;do { if ((CTX)-&gt;pos != (CTX)-&gt;name) (CTX)-&gt;pos--; } while (0)</td></tr>
41<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Decrements <em>ctx</em> position.  <a href="#aac4ed973666f5f09c3e866666326fb05"></a><br/></td></tr>
42<tr><td class="memItemLeft" align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="m__ms_8h.html#a1a18b928484e6e93526a252d4b7e3532">SKIP_CHAR</a>(CTX, LEN)&nbsp;&nbsp;&nbsp;do { (CTX)-&gt;pos += (LEN); if ((CTX)-&gt;pos &gt; (CTX)-&gt;end) (CTX)-&gt;pos=(CTX)-&gt;end; } while (0)</td></tr>
43<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Increments <em>CTX</em> position by LEN.  <a href="#a1a18b928484e6e93526a252d4b7e3532"></a><br/></td></tr>
44<tr><td colspan="2"><h2>Functions</h2></td></tr>
45<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="unionu_m_token.html">uMToken</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="m__ms_8h.html#a53be44f77ef7b80bfc16250da927a99e">libmangle_decode_ms_name</a> (<a class="el" href="structlibmangle__gc__context__t.html">libmangle_gc_context_t</a> *gc, const char *name)</td></tr>
46<tr><td class="memItemLeft" align="right" valign="top">char *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="m__ms_8h.html#a0872a8e6f16a49ccfc3e8663ed003354">libmangle_encode_ms_name</a> (<a class="el" href="structlibmangle__gc__context__t.html">libmangle_gc_context_t</a> *gc, <a class="el" href="unionu_m_token.html">uMToken</a> *tok)</td></tr>
47</table>
48<hr/><h2>Define Documentation</h2>
49<a class="anchor" id="aac4ed973666f5f09c3e866666326fb05"></a><!-- doxytag: member="m_ms.h::DEC_CHAR" ref="aac4ed973666f5f09c3e866666326fb05" args="(CTX)" -->
50<div class="memitem">
51<div class="memproto">
52      <table class="memname">
53        <tr>
54          <td class="memname">#define DEC_CHAR</td>
55          <td>(</td>
56          <td class="paramtype">CTX&nbsp;</td>
57          <td class="paramname"></td>
58          <td>&nbsp;)&nbsp;</td>
59          <td>&nbsp;&nbsp;&nbsp;do { if ((CTX)-&gt;pos != (CTX)-&gt;name) (CTX)-&gt;pos--; } while (0)</td>
60        </tr>
61      </table>
62</div>
63<div class="memdoc">
64
65<p>Decrements <em>ctx</em> position. </p>
66<p>Move marker to previous character if it is currently not the first via <em>CTX</em>. </p>
67
68</div>
69</div>
70<a class="anchor" id="aef5f6ad4353a2cf2321c074dbfaa9aac"></a><!-- doxytag: member="m_ms.h::ENCODING_TYPE_MS" ref="aef5f6ad4353a2cf2321c074dbfaa9aac" args="" -->
71<div class="memitem">
72<div class="memproto">
73      <table class="memname">
74        <tr>
75          <td class="memname">#define ENCODING_TYPE_MS&nbsp;&nbsp;&nbsp;1</td>
76        </tr>
77      </table>
78</div>
79<div class="memdoc">
80
81</div>
82</div>
83<a class="anchor" id="a0abbf2a725f45243f4292bf3e764973c"></a><!-- doxytag: member="m_ms.h::GET_CHAR" ref="a0abbf2a725f45243f4292bf3e764973c" args="(CTX)" -->
84<div class="memitem">
85<div class="memproto">
86      <table class="memname">
87        <tr>
88          <td class="memname">#define GET_CHAR</td>
89          <td>(</td>
90          <td class="paramtype">CTX&nbsp;</td>
91          <td class="paramname"></td>
92          <td>&nbsp;)&nbsp;</td>
93          <td>&nbsp;&nbsp;&nbsp;((CTX)-&gt;pos == (CTX)-&gt;end ? 0 : (CTX)-&gt;pos[0])</td>
94        </tr>
95      </table>
96</div>
97<div class="memdoc">
98
99<p>Get currently marked character from <em>CTX</em>. </p>
100<p>Get character from at current possition via <em>CTX</em>. </p>
101
102</div>
103</div>
104<a class="anchor" id="adfca56cc6bed709fa84cc0b26430100d"></a><!-- doxytag: member="m_ms.h::INC_CHAR" ref="adfca56cc6bed709fa84cc0b26430100d" args="(CTX)" -->
105<div class="memitem">
106<div class="memproto">
107      <table class="memname">
108        <tr>
109          <td class="memname">#define INC_CHAR</td>
110          <td>(</td>
111          <td class="paramtype">CTX&nbsp;</td>
112          <td class="paramname"></td>
113          <td>&nbsp;)&nbsp;</td>
114          <td>&nbsp;&nbsp;&nbsp;do { if ((CTX)-&gt;pos != (CTX)-&gt;end) (CTX)-&gt;pos++; } while (0)</td>
115        </tr>
116      </table>
117</div>
118<div class="memdoc">
119
120<p>Increments <em>ctx</em> position. </p>
121<p>Move marker to next character if it is currently not the last via <em>CTX</em>. </p>
122
123</div>
124</div>
125<a class="anchor" id="a1a18b928484e6e93526a252d4b7e3532"></a><!-- doxytag: member="m_ms.h::SKIP_CHAR" ref="a1a18b928484e6e93526a252d4b7e3532" args="(CTX, LEN)" -->
126<div class="memitem">
127<div class="memproto">
128      <table class="memname">
129        <tr>
130          <td class="memname">#define SKIP_CHAR</td>
131          <td>(</td>
132          <td class="paramtype">CTX, </td>
133        </tr>
134        <tr>
135          <td class="paramkey"></td>
136          <td></td>
137          <td class="paramtype">LEN&nbsp;</td>
138          <td class="paramname"></td>
139          <td>&nbsp;)&nbsp;</td>
140          <td>&nbsp;&nbsp;&nbsp;do { (CTX)-&gt;pos += (LEN); if ((CTX)-&gt;pos &gt; (CTX)-&gt;end) (CTX)-&gt;pos=(CTX)-&gt;end; } while (0)</td>
141        </tr>
142      </table>
143</div>
144<div class="memdoc">
145
146<p>Increments <em>CTX</em> position by LEN. </p>
147<p>Increments <em>CTX</em> marker by LEN characters, points to last character if marker is moved out of bounds. </p>
148
149</div>
150</div>
151<hr/><h2>Function Documentation</h2>
152<a class="anchor" id="a53be44f77ef7b80bfc16250da927a99e"></a><!-- doxytag: member="m_ms.h::libmangle_decode_ms_name" ref="a53be44f77ef7b80bfc16250da927a99e" args="(libmangle_gc_context_t *gc, const char *name)" -->
153<div class="memitem">
154<div class="memproto">
155      <table class="memname">
156        <tr>
157          <td class="memname"><a class="el" href="unionu_m_token.html">uMToken</a>* libmangle_decode_ms_name </td>
158          <td>(</td>
159          <td class="paramtype"><a class="el" href="structlibmangle__gc__context__t.html">libmangle_gc_context_t</a> *&nbsp;</td>
160          <td class="paramname"> <em>gc</em>, </td>
161        </tr>
162        <tr>
163          <td class="paramkey"></td>
164          <td></td>
165          <td class="paramtype">const char *&nbsp;</td>
166          <td class="paramname"> <em>name</em></td><td>&nbsp;</td>
167        </tr>
168        <tr>
169          <td></td>
170          <td>)</td>
171          <td></td><td></td><td></td>
172        </tr>
173      </table>
174</div>
175<div class="memdoc">
176<p>Decodes an MSVC export name. </p>
177<dl><dt><b>Parameters:</b></dt><dd>
178  <table border="0" cellspacing="2" cellpadding="0">
179    <tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>gc</em>&nbsp;</td><td>sGcCtx pointer for collecting memory allocations. </td></tr>
180    <tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>name</em>&nbsp;</td><td>MSVC C++ mangled export string. </td></tr>
181  </table>
182  </dd>
183</dl>
184<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="libmangle_8h.html#abf4af1b2e483a32beb147474853e696b">libmangle_sprint_decl()</a> </dd>
185<dd>
186<a class="el" href="libmangle_8h.html#ac6f10b5d722b67adc42b2efaf4683dc1">libmangle_release_gc()</a> </dd>
187<dd>
188<a class="el" href="unionu_m_token.html">uMToken</a> </dd></dl>
189<dl class="return"><dt><b>Returns:</b></dt><dd>Token containing information about the mangled string, use <a class="el" href="libmangle_8h.html#ac6f10b5d722b67adc42b2efaf4683dc1">libmangle_release_gc()</a> to free after use.</dd></dl>
190<p>Decodes an MSVC export name. </p>
191<dl><dt><b>Parameters:</b></dt><dd>
192  <table border="0" cellspacing="2" cellpadding="0">
193    <tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>gc</em>&nbsp;</td><td><a class="el" href="structlibmangle__gc__context__t.html">libmangle_gc_context_t</a> pointer for collecting memory allocations. </td></tr>
194    <tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>name</em>&nbsp;</td><td>MSVC C++ mangled export string. </td></tr>
195  </table>
196  </dd>
197</dl>
198<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="libmangle_8h.html#abf4af1b2e483a32beb147474853e696b">libmangle_sprint_decl()</a> </dd>
199<dd>
200<a class="el" href="libmangle_8h.html#ac6f10b5d722b67adc42b2efaf4683dc1">libmangle_release_gc()</a> </dd>
201<dd>
202<a class="el" href="libmangle_8h.html#a7c9c7d368eb1f52cac14457766a01cc7">libmangle_tokens_t</a> </dd></dl>
203<dl class="return"><dt><b>Returns:</b></dt><dd>Token containing information about the mangled string, use <a class="el" href="libmangle_8h.html#ac6f10b5d722b67adc42b2efaf4683dc1">libmangle_release_gc()</a> to free after use. </dd></dl>
204
205</div>
206</div>
207<a class="anchor" id="a0872a8e6f16a49ccfc3e8663ed003354"></a><!-- doxytag: member="m_ms.h::libmangle_encode_ms_name" ref="a0872a8e6f16a49ccfc3e8663ed003354" args="(libmangle_gc_context_t *gc, uMToken *tok)" -->
208<div class="memitem">
209<div class="memproto">
210      <table class="memname">
211        <tr>
212          <td class="memname">char* libmangle_encode_ms_name </td>
213          <td>(</td>
214          <td class="paramtype"><a class="el" href="structlibmangle__gc__context__t.html">libmangle_gc_context_t</a> *&nbsp;</td>
215          <td class="paramname"> <em>gc</em>, </td>
216        </tr>
217        <tr>
218          <td class="paramkey"></td>
219          <td></td>
220          <td class="paramtype"><a class="el" href="unionu_m_token.html">uMToken</a> *&nbsp;</td>
221          <td class="paramname"> <em>tok</em></td><td>&nbsp;</td>
222        </tr>
223        <tr>
224          <td></td>
225          <td>)</td>
226          <td></td><td></td><td></td>
227        </tr>
228      </table>
229</div>
230<div class="memdoc">
231
232</div>
233</div>
234</div>
235<hr size="1"/><address style="text-align: right;"><small>Generated on 23 Jul 2010 for libmangle by&nbsp;
236<a href="http://www.doxygen.org/index.html">
237<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.1 </small></address>
238</body>
239</html>
240