Project

General

Profile

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>gBase: macros.h Source File</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.3 -->
11
<div class="navigation" id="top">
12
  <div class="tabs">
13
    <ul>
14
      <li><a href="main.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
<h1>macros.h</h1><a href="macros_8h.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 
26
<a name="l00005"></a>00005 <span class="comment">/*</span>
27
<a name="l00006"></a>00006 <span class="comment">This source file is part of Scol</span>
28
<a name="l00007"></a>00007 <span class="comment">For the latest info, see http://www.scolring.org</span>
29
<a name="l00008"></a>00008 <span class="comment"></span>
30
<a name="l00009"></a>00009 <span class="comment">Copyright (c) 2010 Stephane Bisaro, aka Iri &lt;iri@irizone.net&gt;</span>
31
<a name="l00010"></a>00010 <span class="comment"></span>
32
<a name="l00011"></a>00011 <span class="comment">This program is free software; you can redistribute it and/or modify it under</span>
33
<a name="l00012"></a>00012 <span class="comment">the terms of the GNU Lesser General Public License as published by the Free Software</span>
34
<a name="l00013"></a>00013 <span class="comment">Foundation; either version 2 of the License, or (at your option) any later</span>
35
<a name="l00014"></a>00014 <span class="comment">version.</span>
36
<a name="l00015"></a>00015 <span class="comment"></span>
37
<a name="l00016"></a>00016 <span class="comment">This program is distributed in the hope that it will be useful, but WITHOUT</span>
38
<a name="l00017"></a>00017 <span class="comment">ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS</span>
39
<a name="l00018"></a>00018 <span class="comment">FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.</span>
40
<a name="l00019"></a>00019 <span class="comment"></span>
41
<a name="l00020"></a>00020 <span class="comment">You should have received a copy of the GNU Lesser General Public License along with</span>
42
<a name="l00021"></a>00021 <span class="comment">this program; if not, write to the Free Software Foundation, Inc., 59 Temple</span>
43
<a name="l00022"></a>00022 <span class="comment">Place - Suite 330, Boston, MA 02111-1307, USA, or go to</span>
44
<a name="l00023"></a>00023 <span class="comment">http://www.gnu.org/copyleft/lesser.txt</span>
45
<a name="l00024"></a>00024 <span class="comment"></span>
46
<a name="l00025"></a>00025 <span class="comment">For others informations, please contact us from http://www.scolring.org/</span>
47
<a name="l00026"></a>00026 <span class="comment">*/</span>
48
<a name="l00027"></a>00027 
49
<a name="l00028"></a>00028 
50
<a name="l00029"></a>00029 
51
<a name="l00030"></a>00030 <span class="comment">/*</span>
52
<a name="l00031"></a>00031 <span class="comment">// File: macros.h</span>
53
<a name="l00032"></a>00032 <span class="comment">// Temporary macros (mostly used by debugger agent)</span>
54
<a name="l00033"></a>00033 <span class="comment">// from F.J. Alberti</span>
55
<a name="l00034"></a>00034 <span class="comment">*/</span>
56
<a name="l00035"></a>00035 
57
<a name="l00036"></a>00036 
58
<a name="l00037"></a>00037 <span class="preprocessor">#ifndef _MACROS_H_</span>
59
<a name="l00038"></a>00038 <span class="preprocessor"></span><span class="preprocessor">#define _MACROS_H_</span>
60
<a name="l00039"></a>00039 <span class="preprocessor"></span>
61
<a name="l00040"></a>00040 <span class="preprocessor">#define SAFEdelete(p)      { if (p) { free (p); (p) = NULL; } }</span>
62
<a name="l00041"></a>00041 <span class="preprocessor"></span>
63
<a name="l00042"></a>00042 
64
<a name="l00043"></a>00043 <span class="preprocessor">#define _SEPTRBIT            0x00000001</span>
65
<a name="l00044"></a>00044 <span class="preprocessor"></span>
66
<a name="l00045"></a>00045 
67
<a name="l00046"></a>00046 <span class="comment">/* SE conversions*/</span>
68
<a name="l00047"></a>00047 <span class="preprocessor">#define SEW2I(w)             ((w)&gt;&gt;1)</span>
69
<a name="l00048"></a>00048 <span class="preprocessor"></span><span class="preprocessor">#define SEW2P(w)             ((w)&gt;&gt;1)</span>
70
<a name="l00049"></a>00049 <span class="preprocessor"></span><span class="preprocessor">#define SEI2W(n)             ((n)&lt;&lt;1)</span>
71
<a name="l00050"></a>00050 <span class="preprocessor"></span><span class="preprocessor">#define SEP2W(p)             ((p)&lt;&lt;1 | _SEPTRBIT)</span>
72
<a name="l00051"></a>00051 <span class="preprocessor"></span>
73
<a name="l00052"></a>00052 <span class="preprocessor">#define MTOI( mot )                      ((mot)&gt;&gt;1)</span>
74
<a name="l00053"></a>00053 <span class="preprocessor"></span><span class="preprocessor">#define MTOP( mot )                  ((mot)&gt;&gt;1)</span>
75
<a name="l00054"></a>00054 <span class="preprocessor"></span><span class="preprocessor">#define ITOM( mot )                      ((mot)&lt;&lt;1)</span>
76
<a name="l00055"></a>00055 <span class="preprocessor"></span><span class="preprocessor">#define PTOM( mot )                      (((mot)&lt;&lt;1)+1)</span>
77
<a name="l00056"></a>00056 <span class="preprocessor"></span><span class="comment">/*#ifndef SCOL_FLOAT_DEFINITION</span>
78
<a name="l00057"></a>00057 <span class="comment">typedef float          float32;</span>
79
<a name="l00058"></a>00058 <span class="comment">#define SCOL_FLOAT_DEFINITION</span>
80
<a name="l00059"></a>00059 <span class="comment">#endif*/</span>
81
<a name="l00060"></a>00060 
82
<a name="l00061"></a>00061 <span class="comment">/* Invert two positions in the stack*/</span>
83
<a name="l00062"></a>00062 <span class="preprocessor">#define INVERT(m, a, b)       {tmp_res=MMget(m,a);MMset(m,a,MMget(m,b));MMset(m,b,tmp_res);}</span>
84
<a name="l00063"></a>00063 <span class="preprocessor"></span>
85
<a name="l00064"></a>00064 <span class="comment">/*Stack management*/</span>
86
<a name="l00065"></a>00065 <span class="preprocessor">#define SEDROP(m, n)         ((m)-&gt;pp += (n))</span>
87
<a name="l00066"></a>00066 <span class="preprocessor"></span>
88
<a name="l00067"></a>00067 <span class="comment">/* String management*/</span>
89
<a name="l00068"></a>00068 <span class="preprocessor">#define SEPUSHSTR(m, s)      (Mpushstrbloc((m), (s)))</span>
90
<a name="l00069"></a>00069 <span class="preprocessor"></span>
91
<a name="l00070"></a>00070 <span class="preprocessor">#define CHECK(m)                        if ((tmp_res=m)) return tmp_res</span>
92
<a name="l00071"></a>00071 <span class="preprocessor"></span>
93
<a name="l00072"></a>00072 <span class="comment">/* #define CHAR2WCHAR(c)        (c == NIL ? NULL : (PtrObjWChar) MMstart (mm,((PtrObjVoid)MMstart(mm,c))-&gt;Buffer&gt;&gt;1))*/</span>
94
<a name="l00073"></a>00073 
95
<a name="l00074"></a>00074 <span class="comment">/* $Iri : convert any string to utf-8 (should be used with gtk ...) Don&#39;t forget to free after used !*/</span>
96
<a name="l00075"></a>00075 <span class="preprocessor">#define SCOLUTF8(string, len) g_locale_to_utf8 (string, len, NULL, NULL, NULL)</span>
97
<a name="l00076"></a>00076 <span class="preprocessor"></span><span class="comment">/* $Iri : convert any string from utf-8 Don&#39;t forget to free after used !*/</span>
98
<a name="l00077"></a>00077 <span class="preprocessor">#define UTF8SCOL(string, len) g_locale_from_utf8 (string, len, NULL, NULL, NULL)</span>
99
<a name="l00078"></a>00078 <span class="preprocessor"></span><span class="comment">/* $Iri : length of the int (234 -&gt; 3)*/</span>
100
<a name="l00079"></a>00079 <span class="preprocessor">#define SIZEINT(x)  floor (log10 (x)) + 1</span>
101
<a name="l00080"></a>00080 <span class="preprocessor"></span><span class="comment">/* $ Iri : float support */</span>
102
<a name="l00081"></a>00081 <span class="preprocessor">#define FSET(val, f)  {                 \</span>
103
<a name="l00082"></a>00082 <span class="preprocessor">  float g = (f);                      \</span>
104
<a name="l00083"></a>00083 <span class="preprocessor">  (val) = (*(int*)&amp;g) &amp; 0xfffffffe;     \</span>
105
<a name="l00084"></a>00084 <span class="preprocessor">}</span>
106
<a name="l00085"></a>00085 <span class="preprocessor"></span><span class="preprocessor">#define FGET(val)     (*(float*)&amp;(val))</span>
107
<a name="l00086"></a>00086 <span class="preprocessor"></span>
108
<a name="l00087"></a>00087 <span class="preprocessor">#endif</span>
109
</pre></div></div>
110
<hr class="footer"/><address style="text-align: right;"><small>Generated on Fri Mar 11 15:06:43 2011 for gBase by&nbsp;
111
<a href="http://www.doxygen.org/index.html">
112
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
113
</body>
114
</html>
(23-23/38)