~ubuntu-branches/ubuntu/natty/evolution-data-server/natty

« back to all changes in this revision

Viewing changes to docs/reference/libedataserver/html/libedataserver-EFlag.html

  • Committer: Bazaar Package Importer
  • Author(s): Sebastien Bacher
  • Date: 2010-03-01 22:47:15 UTC
  • mfrom: (1.1.77 upstream)
  • Revision ID: james.westby@ubuntu.com-20100301224715-drsxc2y3t8anz3c0
Tags: 2.28.3-0ubuntu1
* New upstream version:
  Bug Fixes:
  - #602723 - Contact list name doesn't get displayed in 'To' dialog 
  - #600322 - assertion failed: (reply == msg) in cs_waitinfo()
              (lp: #455020, #475147)
  - #564727 - Few memory leaks (lp: #305428)
  - #574940 - Always ref returned info from message_info_from_uid 
              (lp: #341909)
  - #429317 - Use the relative URI returned if the server 
              re-directs a request
  - #602820 - Test validity of a book_view before using it in LDAP 
  - #590762 - Recurring google calendar items are not changeable
  - #604236 - Slow GPG processing 
  - #597816 - Do not crash on incorrect parameters used in sexp to SQL 
              (lp: #444177)
  - #604544 - Try Exchange fallback authentication only once 
  - #600778 - Fix --enable-e2k-debug configure option resolution 
  - #260407 - 'endswith' address book search doesn't work 
  - #549221 - (bnc) delete, sync flags immediately
* debian/patches/99_reconfigure.patch:
  - new version update

Show diffs side-by-side

added added

removed removed

Lines of Context:
3
3
<head>
4
4
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
5
5
<title>EFlag</title>
6
 
<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
 
6
<meta name="generator" content="DocBook XSL Stylesheets V1.74.0">
7
7
<link rel="home" href="index.html" title="Evolution-Data-Server Manual: Utilities (libedataserver)">
8
8
<link rel="up" href="ch01.html" title="Evolution-Data-Server Manual: Utilities (libedataserver)">
9
9
<link rel="prev" href="EComponentListener.html" title="EComponentListener">
10
10
<link rel="next" href="libedataserver-e-iconv.html" title="e-iconv">
11
 
<meta name="generator" content="GTK-Doc V1.11 (XML mode)">
 
11
<meta name="generator" content="GTK-Doc V1.14 (XML mode)">
12
12
<link rel="stylesheet" href="style.css" type="text/css">
13
 
<link rel="chapter" href="ch01.html" title="Evolution-Data-Server Manual: Utilities (libedataserver)">
14
 
<link rel="index" href="ix01.html" title="Index">
15
13
</head>
16
14
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
17
15
<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2">
24
22
</tr>
25
23
<tr><td colspan="5" class="shortcuts">
26
24
<a href="#libedataserver-EFlag.synopsis" class="shortcut">Top</a>
27
 
                 | 
28
 
                <a href="#libedataserver-EFlag.description" class="shortcut">Description</a>
 
25
                   | 
 
26
                  <a href="#libedataserver-EFlag.description" class="shortcut">Description</a>
29
27
</td></tr>
30
28
</table>
31
 
<div class="refentry" title="EFlag">
 
29
<div class="refentry" lang="en">
32
30
<a name="libedataserver-EFlag"></a><div class="titlepage"></div>
33
31
<div class="refnamediv"><table width="100%"><tr>
34
32
<td valign="top">
37
35
</td>
38
36
<td valign="top" align="right"></td>
39
37
</tr></table></div>
40
 
<div class="refsynopsisdiv" title="Synopsis">
 
38
<div class="refsynopsisdiv">
41
39
<a name="libedataserver-EFlag.synopsis"></a><h2>Synopsis</h2>
42
 
<pre class="synopsis">
43
 
                    <a class="link" href="libedataserver-EFlag.html#EFlag" title="EFlag">EFlag</a>;
44
 
<a class="link" href="libedataserver-EFlag.html#EFlag" title="EFlag">EFlag</a> *             <a class="link" href="libedataserver-EFlag.html#e-flag-new" title="e_flag_new ()">e_flag_new</a>                          (void);
45
 
<a
46
 
href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gboolean"
47
 
>gboolean</a>            <a class="link" href="libedataserver-EFlag.html#e-flag-is-set" title="e_flag_is_set ()">e_flag_is_set</a>                       (<a class="link" href="libedataserver-EFlag.html#EFlag" title="EFlag">EFlag</a> *flag);
48
 
void                <a class="link" href="libedataserver-EFlag.html#e-flag-set" title="e_flag_set ()">e_flag_set</a>                          (<a class="link" href="libedataserver-EFlag.html#EFlag" title="EFlag">EFlag</a> *flag);
49
 
void                <a class="link" href="libedataserver-EFlag.html#e-flag-clear" title="e_flag_clear ()">e_flag_clear</a>                        (<a class="link" href="libedataserver-EFlag.html#EFlag" title="EFlag">EFlag</a> *flag);
50
 
void                <a class="link" href="libedataserver-EFlag.html#e-flag-wait" title="e_flag_wait ()">e_flag_wait</a>                         (<a class="link" href="libedataserver-EFlag.html#EFlag" title="EFlag">EFlag</a> *flag);
51
 
<a
52
 
href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gboolean"
53
 
>gboolean</a>            <a class="link" href="libedataserver-EFlag.html#e-flag-timed-wait" title="e_flag_timed_wait ()">e_flag_timed_wait</a>                   (<a class="link" href="libedataserver-EFlag.html#EFlag" title="EFlag">EFlag</a> *flag,
54
 
                                                         <a
55
 
href="/usr/share/gtk-doc/html/glib/glib-Date-and-Time-Functions.html#GTimeVal"
56
 
>GTimeVal</a> *abs_time);
57
 
void                <a class="link" href="libedataserver-EFlag.html#e-flag-free" title="e_flag_free ()">e_flag_free</a>                         (<a class="link" href="libedataserver-EFlag.html#EFlag" title="EFlag">EFlag</a> *flag);
 
40
<pre class="synopsis">                    <a class="link" href="libedataserver-EFlag.html#EFlag" title="EFlag">EFlag</a>;
 
41
<a class="link" href="libedataserver-EFlag.html#EFlag" title="EFlag"><span class="returnvalue">EFlag</span></a> *             <a class="link" href="libedataserver-EFlag.html#e-flag-new" title="e_flag_new ()">e_flag_new</a>                          (<em class="parameter"><code><span class="type">void</span></code></em>);
 
42
<span class="returnvalue">gboolean</span>            <a class="link" href="libedataserver-EFlag.html#e-flag-is-set" title="e_flag_is_set ()">e_flag_is_set</a>                       (<em class="parameter"><code><a class="link" href="libedataserver-EFlag.html#EFlag" title="EFlag"><span class="type">EFlag</span></a> *flag</code></em>);
 
43
<span class="returnvalue">void</span>                <a class="link" href="libedataserver-EFlag.html#e-flag-set" title="e_flag_set ()">e_flag_set</a>                          (<em class="parameter"><code><a class="link" href="libedataserver-EFlag.html#EFlag" title="EFlag"><span class="type">EFlag</span></a> *flag</code></em>);
 
44
<span class="returnvalue">void</span>                <a class="link" href="libedataserver-EFlag.html#e-flag-clear" title="e_flag_clear ()">e_flag_clear</a>                        (<em class="parameter"><code><a class="link" href="libedataserver-EFlag.html#EFlag" title="EFlag"><span class="type">EFlag</span></a> *flag</code></em>);
 
45
<span class="returnvalue">void</span>                <a class="link" href="libedataserver-EFlag.html#e-flag-wait" title="e_flag_wait ()">e_flag_wait</a>                         (<em class="parameter"><code><a class="link" href="libedataserver-EFlag.html#EFlag" title="EFlag"><span class="type">EFlag</span></a> *flag</code></em>);
 
46
<span class="returnvalue">gboolean</span>            <a class="link" href="libedataserver-EFlag.html#e-flag-timed-wait" title="e_flag_timed_wait ()">e_flag_timed_wait</a>                   (<em class="parameter"><code><a class="link" href="libedataserver-EFlag.html#EFlag" title="EFlag"><span class="type">EFlag</span></a> *flag</code></em>,
 
47
                                                         <em class="parameter"><code><span class="type">GTimeVal</span> *abs_time</code></em>);
 
48
<span class="returnvalue">void</span>                <a class="link" href="libedataserver-EFlag.html#e-flag-free" title="e_flag_free ()">e_flag_free</a>                         (<em class="parameter"><code><a class="link" href="libedataserver-EFlag.html#EFlag" title="EFlag"><span class="type">EFlag</span></a> *flag</code></em>);
58
49
</pre>
59
50
</div>
60
 
<div class="refsect1" title="Description">
 
51
<div class="refsect1" lang="en">
61
52
<a name="libedataserver-EFlag.description"></a><h2>Description</h2>
62
53
<p>
63
54
An <a class="link" href="libedataserver-EFlag.html#EFlag" title="EFlag"><span class="type">EFlag</span></a> is a simple thread synchronization mechanism. It implements a
64
55
thread-safe flag that can be blocked on.
65
56
</p>
66
57
</div>
67
 
<div class="refsect1" title="Details">
 
58
<div class="refsect1" lang="en">
68
59
<a name="libedataserver-EFlag.details"></a><h2>Details</h2>
69
 
<div class="refsect2" title="EFlag">
 
60
<div class="refsect2" lang="en">
70
61
<a name="EFlag"></a><h3>EFlag</h3>
71
62
<pre class="programlisting">typedef struct _EFlag EFlag;</pre>
72
63
<p>
76
67
</p>
77
68
</div>
78
69
<hr>
79
 
<div class="refsect2" title="e_flag_new ()">
 
70
<div class="refsect2" lang="en">
80
71
<a name="e-flag-new"></a><h3>e_flag_new ()</h3>
81
 
<pre class="programlisting"><a class="link" href="libedataserver-EFlag.html#EFlag" title="EFlag">EFlag</a> *             e_flag_new                          (void);</pre>
 
72
<pre class="programlisting"><a class="link" href="libedataserver-EFlag.html#EFlag" title="EFlag"><span class="returnvalue">EFlag</span></a> *             e_flag_new                          (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
82
73
<p>
83
74
Creates a new <a class="link" href="libedataserver-EFlag.html#EFlag" title="EFlag"><span class="type">EFlag</span></a> object.  It is initially unset.</p>
84
 
<p>
85
 
</p>
86
75
<div class="variablelist"><table border="0">
87
76
<col align="left" valign="top">
88
77
<tbody><tr>
93
82
</table></div>
94
83
</div>
95
84
<hr>
96
 
<div class="refsect2" title="e_flag_is_set ()">
 
85
<div class="refsect2" lang="en">
97
86
<a name="e-flag-is-set"></a><h3>e_flag_is_set ()</h3>
98
 
<pre class="programlisting"><a
99
 
href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gboolean"
100
 
>gboolean</a>            e_flag_is_set                       (<a class="link" href="libedataserver-EFlag.html#EFlag" title="EFlag">EFlag</a> *flag);</pre>
 
87
<pre class="programlisting"><span class="returnvalue">gboolean</span>            e_flag_is_set                       (<em class="parameter"><code><a class="link" href="libedataserver-EFlag.html#EFlag" title="EFlag"><span class="type">EFlag</span></a> *flag</code></em>);</pre>
101
88
<p>
102
89
Returns the state of <em class="parameter"><code>flag</code></em>.</p>
103
 
<p>
104
 
</p>
105
90
<div class="variablelist"><table border="0">
106
91
<col align="left" valign="top">
107
92
<tbody>
108
93
<tr>
109
94
<td><p><span class="term"><em class="parameter"><code>flag</code></em> :</span></p></td>
110
 
<td> an <a class="link" href="libedataserver-EFlag.html#EFlag" title="EFlag"><span class="type">EFlag</span></a>
 
95
<td>an <a class="link" href="libedataserver-EFlag.html#EFlag" title="EFlag"><span class="type">EFlag</span></a>
111
96
</td>
112
97
</tr>
113
98
<tr>
114
99
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
115
 
<td> <a
116
 
href="/usr/share/gtk-doc/html/glib/glib-Standard-Macros.html#TRUE--CAPS"
117
 
><code class="literal">TRUE</code></a> if <em class="parameter"><code>flag</code></em> is set
 
100
<td> <code class="literal">TRUE</code> if <em class="parameter"><code>flag</code></em> is set
118
101
</td>
119
102
</tr>
120
103
</tbody>
121
104
</table></div>
122
105
</div>
123
106
<hr>
124
 
<div class="refsect2" title="e_flag_set ()">
 
107
<div class="refsect2" lang="en">
125
108
<a name="e-flag-set"></a><h3>e_flag_set ()</h3>
126
 
<pre class="programlisting">void                e_flag_set                          (<a class="link" href="libedataserver-EFlag.html#EFlag" title="EFlag">EFlag</a> *flag);</pre>
 
109
<pre class="programlisting"><span class="returnvalue">void</span>                e_flag_set                          (<em class="parameter"><code><a class="link" href="libedataserver-EFlag.html#EFlag" title="EFlag"><span class="type">EFlag</span></a> *flag</code></em>);</pre>
127
110
<p>
128
111
Sets <em class="parameter"><code>flag</code></em>.  All threads waiting on <em class="parameter"><code>flag</code></em> are woken up.  Threads that
129
112
call <a class="link" href="libedataserver-EFlag.html#e-flag-wait" title="e_flag_wait ()"><code class="function">e_flag_wait()</code></a> or <a class="link" href="libedataserver-EFlag.html#e-flag-timed-wait" title="e_flag_timed_wait ()"><code class="function">e_flag_timed_wait()</code></a> once <em class="parameter"><code>flag</code></em> is set will not
130
113
block at all.</p>
131
 
<p>
132
 
</p>
133
114
<div class="variablelist"><table border="0">
134
115
<col align="left" valign="top">
135
116
<tbody><tr>
136
117
<td><p><span class="term"><em class="parameter"><code>flag</code></em> :</span></p></td>
137
 
<td> an <a class="link" href="libedataserver-EFlag.html#EFlag" title="EFlag"><span class="type">EFlag</span></a>
 
118
<td>an <a class="link" href="libedataserver-EFlag.html#EFlag" title="EFlag"><span class="type">EFlag</span></a>
138
119
</td>
139
120
</tr></tbody>
140
121
</table></div>
141
122
</div>
142
123
<hr>
143
 
<div class="refsect2" title="e_flag_clear ()">
 
124
<div class="refsect2" lang="en">
144
125
<a name="e-flag-clear"></a><h3>e_flag_clear ()</h3>
145
 
<pre class="programlisting">void                e_flag_clear                        (<a class="link" href="libedataserver-EFlag.html#EFlag" title="EFlag">EFlag</a> *flag);</pre>
 
126
<pre class="programlisting"><span class="returnvalue">void</span>                e_flag_clear                        (<em class="parameter"><code><a class="link" href="libedataserver-EFlag.html#EFlag" title="EFlag"><span class="type">EFlag</span></a> *flag</code></em>);</pre>
146
127
<p>
147
128
Unsets <em class="parameter"><code>flag</code></em>.  Subsequent calls to <a class="link" href="libedataserver-EFlag.html#e-flag-wait" title="e_flag_wait ()"><code class="function">e_flag_wait()</code></a> or <a class="link" href="libedataserver-EFlag.html#e-flag-timed-wait" title="e_flag_timed_wait ()"><code class="function">e_flag_timed_wait()</code></a>
148
129
will block until <em class="parameter"><code>flag</code></em> is set.</p>
149
 
<p>
150
 
</p>
151
130
<div class="variablelist"><table border="0">
152
131
<col align="left" valign="top">
153
132
<tbody><tr>
154
133
<td><p><span class="term"><em class="parameter"><code>flag</code></em> :</span></p></td>
155
 
<td> an <a class="link" href="libedataserver-EFlag.html#EFlag" title="EFlag"><span class="type">EFlag</span></a>
 
134
<td>an <a class="link" href="libedataserver-EFlag.html#EFlag" title="EFlag"><span class="type">EFlag</span></a>
156
135
</td>
157
136
</tr></tbody>
158
137
</table></div>
159
138
</div>
160
139
<hr>
161
 
<div class="refsect2" title="e_flag_wait ()">
 
140
<div class="refsect2" lang="en">
162
141
<a name="e-flag-wait"></a><h3>e_flag_wait ()</h3>
163
 
<pre class="programlisting">void                e_flag_wait                         (<a class="link" href="libedataserver-EFlag.html#EFlag" title="EFlag">EFlag</a> *flag);</pre>
 
142
<pre class="programlisting"><span class="returnvalue">void</span>                e_flag_wait                         (<em class="parameter"><code><a class="link" href="libedataserver-EFlag.html#EFlag" title="EFlag"><span class="type">EFlag</span></a> *flag</code></em>);</pre>
164
143
<p>
165
144
Blocks until <em class="parameter"><code>flag</code></em> is set.  If <em class="parameter"><code>flag</code></em> is already set, the function returns
166
145
immediately.</p>
167
 
<p>
168
 
</p>
169
146
<div class="variablelist"><table border="0">
170
147
<col align="left" valign="top">
171
148
<tbody><tr>
172
149
<td><p><span class="term"><em class="parameter"><code>flag</code></em> :</span></p></td>
173
 
<td> an <a class="link" href="libedataserver-EFlag.html#EFlag" title="EFlag"><span class="type">EFlag</span></a>
 
150
<td>an <a class="link" href="libedataserver-EFlag.html#EFlag" title="EFlag"><span class="type">EFlag</span></a>
174
151
</td>
175
152
</tr></tbody>
176
153
</table></div>
177
154
</div>
178
155
<hr>
179
 
<div class="refsect2" title="e_flag_timed_wait ()">
 
156
<div class="refsect2" lang="en">
180
157
<a name="e-flag-timed-wait"></a><h3>e_flag_timed_wait ()</h3>
181
 
<pre class="programlisting"><a
182
 
href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gboolean"
183
 
>gboolean</a>            e_flag_timed_wait                   (<a class="link" href="libedataserver-EFlag.html#EFlag" title="EFlag">EFlag</a> *flag,
184
 
                                                         <a
185
 
href="/usr/share/gtk-doc/html/glib/glib-Date-and-Time-Functions.html#GTimeVal"
186
 
>GTimeVal</a> *abs_time);</pre>
 
158
<pre class="programlisting"><span class="returnvalue">gboolean</span>            e_flag_timed_wait                   (<em class="parameter"><code><a class="link" href="libedataserver-EFlag.html#EFlag" title="EFlag"><span class="type">EFlag</span></a> *flag</code></em>,
 
159
                                                         <em class="parameter"><code><span class="type">GTimeVal</span> *abs_time</code></em>);</pre>
187
160
<p>
188
161
Blocks until <em class="parameter"><code>flag</code></em> is set, or until the time specified by <em class="parameter"><code>abs_time</code></em>.
189
162
If <em class="parameter"><code>flag</code></em> is already set, the function returns immediately.  The return
190
163
value indicates the state of <em class="parameter"><code>flag</code></em> after waiting.
191
164
</p>
192
165
<p>
193
 
If <em class="parameter"><code>abs_time</code></em> is <a
194
 
href="/usr/share/gtk-doc/html/glib/glib-Standard-Macros.html#NULL--CAPS"
195
 
><code class="literal">NULL</code></a>, <a class="link" href="libedataserver-EFlag.html#e-flag-timed-wait" title="e_flag_timed_wait ()"><code class="function">e_flag_timed_wait()</code></a> acts like <a class="link" href="libedataserver-EFlag.html#e-flag-wait" title="e_flag_wait ()"><code class="function">e_flag_wait()</code></a>.
196
 
</p>
197
 
<p>
198
 
To easily calculate <em class="parameter"><code>abs_time</code></em>, a combination of <a
199
 
href="/usr/share/gtk-doc/html/glib/glib-Date-and-Time-Functions.html#g-get-current-time"
200
 
><code class="function">g_get_current_time()</code></a> and
201
 
<a
202
 
href="/usr/share/gtk-doc/html/glib/glib-Date-and-Time-Functions.html#g-time-val-add"
203
 
><code class="function">g_time_val_add()</code></a> can be used.</p>
204
 
<p>
205
 
</p>
 
166
If <em class="parameter"><code>abs_time</code></em> is <code class="literal">NULL</code>, <a class="link" href="libedataserver-EFlag.html#e-flag-timed-wait" title="e_flag_timed_wait ()"><code class="function">e_flag_timed_wait()</code></a> acts like <a class="link" href="libedataserver-EFlag.html#e-flag-wait" title="e_flag_wait ()"><code class="function">e_flag_wait()</code></a>.
 
167
</p>
 
168
<p>
 
169
To easily calculate <em class="parameter"><code>abs_time</code></em>, a combination of <code class="function">g_get_current_time()</code> and
 
170
<code class="function">g_time_val_add()</code> can be used.</p>
206
171
<div class="variablelist"><table border="0">
207
172
<col align="left" valign="top">
208
173
<tbody>
209
174
<tr>
210
175
<td><p><span class="term"><em class="parameter"><code>flag</code></em> :</span></p></td>
211
 
<td> an <a class="link" href="libedataserver-EFlag.html#EFlag" title="EFlag"><span class="type">EFlag</span></a>
 
176
<td>an <a class="link" href="libedataserver-EFlag.html#EFlag" title="EFlag"><span class="type">EFlag</span></a>
212
177
</td>
213
178
</tr>
214
179
<tr>
215
180
<td><p><span class="term"><em class="parameter"><code>abs_time</code></em> :</span></p></td>
216
 
<td> a <a
217
 
href="/usr/share/gtk-doc/html/glib/glib-Date-and-Time-Functions.html#GTimeVal"
218
 
><span class="type">GTimeVal</span></a>, determining the final time
 
181
<td>a <span class="type">GTimeVal</span>, determining the final time
219
182
</td>
220
183
</tr>
221
184
<tr>
222
185
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
223
 
<td> <a
224
 
href="/usr/share/gtk-doc/html/glib/glib-Standard-Macros.html#TRUE--CAPS"
225
 
><code class="literal">TRUE</code></a> if <em class="parameter"><code>flag</code></em> is now set
 
186
<td> <code class="literal">TRUE</code> if <em class="parameter"><code>flag</code></em> is now set
226
187
</td>
227
188
</tr>
228
189
</tbody>
229
190
</table></div>
230
191
</div>
231
192
<hr>
232
 
<div class="refsect2" title="e_flag_free ()">
 
193
<div class="refsect2" lang="en">
233
194
<a name="e-flag-free"></a><h3>e_flag_free ()</h3>
234
 
<pre class="programlisting">void                e_flag_free                         (<a class="link" href="libedataserver-EFlag.html#EFlag" title="EFlag">EFlag</a> *flag);</pre>
 
195
<pre class="programlisting"><span class="returnvalue">void</span>                e_flag_free                         (<em class="parameter"><code><a class="link" href="libedataserver-EFlag.html#EFlag" title="EFlag"><span class="type">EFlag</span></a> *flag</code></em>);</pre>
235
196
<p>
236
197
Destroys <em class="parameter"><code>flag</code></em>.</p>
237
 
<p>
238
 
</p>
239
198
<div class="variablelist"><table border="0">
240
199
<col align="left" valign="top">
241
200
<tbody><tr>
242
201
<td><p><span class="term"><em class="parameter"><code>flag</code></em> :</span></p></td>
243
 
<td> an <a class="link" href="libedataserver-EFlag.html#EFlag" title="EFlag"><span class="type">EFlag</span></a>
 
202
<td>an <a class="link" href="libedataserver-EFlag.html#EFlag" title="EFlag"><span class="type">EFlag</span></a>
244
203
</td>
245
204
</tr></tbody>
246
205
</table></div>
249
208
</div>
250
209
<div class="footer">
251
210
<hr>
252
 
          Generated by GTK-Doc V1.11</div>
 
211
          Generated by GTK-Doc V1.14</div>
253
212
</body>
254
 
</html>
 
213
</html>
 
 
b'\\ No newline at end of file'