<?xml version="1.0"?>
<rss version="2.0">
	<channel>
		<title>extern char and Allegro dialogs</title>
		<link>http://www.allegro.cc/forums/view/585647</link>
		<description>Allegro.cc Forum Thread</description>
		<webMaster>matthew@allegro.cc (Matthew Leverton)</webMaster>
		<lastBuildDate>Sat, 03 Jun 2006 00:03:08 +0000</lastBuildDate>
	</channel>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>I can&#39;t for the life of me figure out exactly what is going on here. Apparently, having an extern char being used in an Allegro dialog is causing a crash. In &quot;main.h&quot; and &quot;mydlg.h&quot;, lets say, I have declared an extern char *. In &quot;main.cpp&quot;, I have something similar to this: char *szString = new char[MAXLEN];. I am sure to strcpy(zsString, &quot;something&quot;), and check to make sure it works as a string. Everything looks ok, even when I use printf in &quot;mydlg.cpp&quot;.</p><p>The problem comes when trying to use that string in the (dp) field of a dialog with do_dialog. The program just crashes. If I replace the string with (void*)&quot;test&quot; in the dialog, it does not crash.</p><p>Some code would probably help, eh? I&#39;ll be excluding any code that seems irrelevant.</p><p>main.h
</p><div class="source-code snippet"><div class="inner"><pre><span class="c">//useless junk here</span>
<span class="p">#include "connect_gui.h"</span>
<span class="k1">extern</span> <span class="k1">char</span> <span class="k3">*</span>connect_ip<span class="k2">;</span>
</pre></div></div><p>

main.cpp
</p><div class="source-code snippet"><div class="inner"><pre><span class="p">#include "main.h"</span>
<span class="k1">char</span> <span class="k3">*</span>connect_ip <span class="k3">=</span> <span class="k1">new</span> <span class="k1">char</span><span class="k2">[</span>IP_MAXLEN<span class="k3">+</span><span class="n">1</span><span class="k2">]</span><span class="k2">;</span>

<span class="k1">int</span> main<span class="k2">(</span><span class="k2">)</span>
<span class="k2">{</span>
  <span class="c">// setup stuff here</span>
   InitConGUI<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
  <a href="http://www.allegro.cc/manual/do_dialog" target="_blank"><span class="a">do_dialog</span></a><span class="k2">(</span>con_dlg, <span class="k3">-</span><span class="n">1</span><span class="k2">)</span><span class="k2">;</span> <span class="c">// &lt;-- crash happens HERE</span>

  <span class="c">// extra, unrelated stuff here</span>
<span class="k2">}</span>
</pre></div></div><p>

connect_gui.h
</p><div class="source-code snippet"><div class="inner"><pre><span class="p">#include "main.h"</span>
<span class="k1">extern</span> <span class="k1">char</span> <span class="k3">*</span>connect_ip<span class="k2">;</span>
</pre></div></div><p>

connect_gui.cpp
</p><div class="source-code"><div class="toolbar"></div><div class="inner"><table width="100%"><tbody><tr><td class="number">1</td><td>  <span class="p">#include "connect_gui.h"</span></td></tr><tr><td class="number">2</td><td>  <span class="c">/*NOTE THIS NEXT LINE FOR LATER - commented for now*/</span></td></tr><tr><td class="number">3</td><td>  <span class="c">//char *connect_ip = new char[IP_MAXLEN+1];</span></td></tr><tr><td class="number">4</td><td>&#160;</td></tr><tr><td class="number">5</td><td>  <span class="k1">void</span> InitConGUI<span class="k2">(</span><span class="k2">)</span></td></tr><tr><td class="number">6</td><td>  <span class="k2">{</span></td></tr><tr><td class="number">7</td><td>    <a href="http://www.delorie.com/djgpp/doc/libc/libc_756.html" target="_blank">strcpy</a><span class="k2">(</span>connect_ip, <span class="s">"127.0.0.1"</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">8</td><td>    <a href="http://www.delorie.com/djgpp/doc/libc/libc_756.html" target="_blank">strcpy</a><span class="k2">(</span>connect_port, <span class="s">"1200"</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">9</td><td>  </td></tr><tr><td class="number">10</td><td>    <a href="http://www.delorie.com/djgpp/doc/libc/libc_624.html" target="_blank">printf</a><span class="k2">(</span><span class="s">"connect_ip: %s\nconnect_port: %s\n"</span>, connect_ip, connect_port<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">11</td><td>    <a href="http://www.delorie.com/djgpp/doc/libc/libc_802.html" target="_blank">system</a><span class="k2">(</span><span class="s">"pause"</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">12</td><td>  <span class="k2">}</span></td></tr><tr><td class="number">13</td><td>&#160;</td></tr><tr><td class="number">14</td><td><a href="http://www.allegro.cc/manual/DIALOG" target="_blank"><span class="a">DIALOG</span></a> con_dlg<span class="k2">[</span><span class="k2">]</span> <span class="k3">=</span></td></tr><tr><td class="number">15</td><td><span class="k2">{</span></td></tr><tr><td class="number">16</td><td>   <span class="c">/* (proc)        (x)  (y) (w)  (h) (fg) (bg) (key) (flags) (d1)         (d2) (dp)                    (dp2) (dp3) */</span></td></tr><tr><td class="number">17</td><td>   <span class="k2">{</span> <a href="http://www.allegro.cc/manual/d_text_proc" target="_blank"><span class="a">d_text_proc</span></a>,   <span class="n">48</span>,  <span class="n">40</span>, <span class="n">56</span>,  <span class="n">8</span>,  <span class="n">255</span>, <span class="n">23</span>,  <span class="n">0</span>,    <span class="n">0</span>,      <span class="n">0</span>,           <span class="n">0</span>,   <span class="k2">(</span><span class="k1">void</span><span class="k3">*</span><span class="k2">)</span><span class="s">"IP/hostname: "</span>, NULL, NULL <span class="k2">}</span>,</td></tr><tr><td class="number">18</td><td>   <span class="k2">{</span> <a href="http://www.allegro.cc/manual/d_edit_proc" target="_blank"><span class="a">d_edit_proc</span></a>,   <span class="n">160</span>, <span class="n">40</span>, <span class="n">120</span>, <span class="n">8</span>,  <span class="n">255</span>, <span class="n">23</span>,  <span class="n">0</span>,    <span class="n">0</span>,      IP_MAXLEN,   <span class="n">0</span>,   connect_ip,             NULL, NULL <span class="k2">}</span>,</td></tr><tr><td class="number">19</td><td>   <span class="k2">{</span> NULL,          <span class="n">0</span>,   <span class="n">0</span>,  <span class="n">0</span>,   <span class="n">0</span>,  <span class="n">0</span>,   <span class="n">0</span>,   <span class="n">0</span>,    <span class="n">0</span>,      <span class="n">0</span>,           <span class="n">0</span>,   NULL,                   NULL, NULL <span class="k2">}</span></td></tr><tr><td class="number">20</td><td><span class="k2">}</span><span class="k2">;</span></td></tr></tbody></table></div></div><p>

Now, for that line I made note of in connect_gui.cpp...If I uncomment that line there, and comment out the same line in main.cpp [declaring connect_ip in connect_gui.cpp rather than main.cpp], the program works just fine. Because of this , I believe the problem is due to the externs.</p><p>In InitConGUI, use of the string works just fine no mater where the string is declared. Because of this, I&#39;m quite sure the problem is not with the string itself, but something with the externs and the dialogs in combination.</p><p>As far as fixing this goes, I&#39;m out of ideas. I could declare a temp string in connect_gui.cpp, yes, but I would rather fix the problem at the root rather than hack a cheep fix in there. Any ideas?
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Elverion)</author>
		<pubDate>Sun, 28 May 2006 16:54:45 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>I&#39;m going to assume you are intentionally not showing more code, and that this isn&#39;t all of it.</p><p>The order objects are created/initialized between compilation units isn&#39;t defined. &#39;connect_ip&#39; is probably NULL by the time the DIALOG struct is created, and is later set to something else. Never assume the order of global object initialization.</p><p>It&#39;s typically a bad idea to allocate in global space like that. It might be best of you do the new in InitConGUI:
</p><div class="source-code snippet"><div class="inner"><pre><span class="k1">if</span><span class="k2">(</span><span class="k3">!</span>connect_ip<span class="k2">)</span>
<span class="k2">{</span>
   connect_ip <span class="k3">=</span> <span class="k1">new</span> <span class="k1">char</span><span class="k2">[</span>IP_MAXLEN<span class="k3">+</span><span class="n">1</span><span class="k2">]</span><span class="k2">;</span>
   con_dlg<span class="k2">[</span><span class="n">1</span><span class="k2">]</span>.dp <span class="k3">=</span> <span class="k2">(</span><span class="k1">void</span><span class="k3">*</span><span class="k2">)</span>connect_ip<span class="k2">;</span>
<span class="k2">}</span>
</pre></div></div><p>
Don&#39;t forget to delete[] connect_ip after you&#39;re all done with that dialog and before the program is shutdown.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Kitty Cat)</author>
		<pubDate>Sun, 28 May 2006 18:04:46 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Hmm, you&#39;re right. I never thought about the order of global initialization. I&#39;ve fixed my code based on your input. And, yes, I might not have been clear in my first post(or maybe I said too much and you just skimmed through it), but I did intentionally leave out a lot of code that I thought would have just been cluttering up the post, and was unrelated to the problem.</p><p>For the record, I originally did have the &quot;connect_ip = new char[IP_MAXLEN+1];&quot; part inside a function, but due to moving it around so much trying to fix the crashing leads to a mess till I can get the damn thing working.</p><p>My current, working &quot;connection_gui.cpp&quot; is as follows:
</p><div class="source-code"><div class="toolbar"></div><div class="inner"><table width="100%"><tbody><tr><td class="number">1</td><td><span class="p">#include "connect_gui.h"</span></td></tr><tr><td class="number">2</td><td>&#160;</td></tr><tr><td class="number">3</td><td><span class="k1">char</span> <span class="k3">*</span>connect_ip <span class="k3">=</span> NULL<span class="k2">;</span></td></tr><tr><td class="number">4</td><td><span class="k1">char</span> <span class="k3">*</span>connect_port <span class="k3">=</span> NULL<span class="k2">;</span></td></tr><tr><td class="number">5</td><td><span class="k1">char</span> <span class="k3">*</span>username <span class="k3">=</span> NULL<span class="k2">;</span></td></tr><tr><td class="number">6</td><td>&#160;</td></tr><tr><td class="number">7</td><td><span class="k1">void</span> InitConGUI<span class="k2">(</span><span class="k2">)</span></td></tr><tr><td class="number">8</td><td><span class="k2">{</span></td></tr><tr><td class="number">9</td><td>  <span class="c">// allocate space for these variables</span></td></tr><tr><td class="number">10</td><td>  <span class="k1">if</span><span class="k2">(</span> <span class="k3">!</span>connect_ip <span class="k2">)</span></td></tr><tr><td class="number">11</td><td>    connect_ip <span class="k3">=</span> <span class="k1">new</span> <span class="k1">char</span><span class="k2">[</span>IP_MAXLEN<span class="k3">+</span><span class="n">1</span><span class="k2">]</span><span class="k2">;</span></td></tr><tr><td class="number">12</td><td>  <span class="k1">if</span><span class="k2">(</span> <span class="k3">!</span>connect_port <span class="k2">)</span></td></tr><tr><td class="number">13</td><td>    connect_port <span class="k3">=</span> <span class="k1">new</span> <span class="k1">char</span><span class="k2">[</span>PORT_MAXLEN<span class="k3">+</span><span class="n">1</span><span class="k2">]</span><span class="k2">;</span></td></tr><tr><td class="number">14</td><td>  <span class="k1">if</span><span class="k2">(</span> <span class="k3">!</span>username <span class="k2">)</span></td></tr><tr><td class="number">15</td><td>    username <span class="k3">=</span> <span class="k1">new</span> <span class="k1">char</span><span class="k2">[</span>USERNAME_MAXLEN<span class="k3">+</span><span class="n">1</span><span class="k2">]</span><span class="k2">;</span></td></tr><tr><td class="number">16</td><td>  </td></tr><tr><td class="number">17</td><td>  <span class="c">// set them to their default values</span></td></tr><tr><td class="number">18</td><td>  <a href="http://www.delorie.com/djgpp/doc/libc/libc_756.html" target="_blank">strcpy</a><span class="k2">(</span>connect_ip, <span class="s">"127.0.0.1"</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">19</td><td>  <a href="http://www.delorie.com/djgpp/doc/libc/libc_756.html" target="_blank">strcpy</a><span class="k2">(</span>connect_port, <span class="s">"1200"</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">20</td><td>  <a href="http://www.delorie.com/djgpp/doc/libc/libc_756.html" target="_blank">strcpy</a><span class="k2">(</span>username, <span class="s">"Guest"</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">21</td><td>  </td></tr><tr><td class="number">22</td><td>  <span class="c">// modify the dialog</span></td></tr><tr><td class="number">23</td><td>  con_dlg<span class="k2">[</span><span class="n">0</span><span class="k2">]</span>.dp <span class="k3">=</span> <span class="k2">(</span><span class="k1">void</span><span class="k3">*</span><span class="k2">)</span>connect_ip<span class="k2">;</span></td></tr><tr><td class="number">24</td><td>  con_dlg<span class="k2">[</span><span class="n">1</span><span class="k2">]</span>.dp <span class="k3">=</span> <span class="k2">(</span><span class="k1">void</span><span class="k3">*</span><span class="k2">)</span>connect_port<span class="k2">;</span></td></tr><tr><td class="number">25</td><td>  con_dlg<span class="k2">[</span><span class="n">2</span><span class="k2">]</span>.dp <span class="k3">=</span> <span class="k2">(</span><span class="k1">void</span><span class="k3">*</span><span class="k2">)</span>username<span class="k2">;</span></td></tr><tr><td class="number">26</td><td>  </td></tr><tr><td class="number">27</td><td>  <a href="http://www.allegro.cc/manual/set_dialog_color" target="_blank"><span class="a">set_dialog_color</span></a><span class="k2">(</span>con_dlg, <span class="n">255</span>, <span class="n">23</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">28</td><td><span class="k2">}</span></td></tr><tr><td class="number">29</td><td>&#160;</td></tr><tr><td class="number">30</td><td><a href="http://www.allegro.cc/manual/DIALOG" target="_blank"><span class="a">DIALOG</span></a> con_dlg<span class="k2">[</span><span class="k2">]</span> <span class="k3">=</span></td></tr><tr><td class="number">31</td><td><span class="k2">{</span></td></tr><tr><td class="number">32</td><td>  <span class="c">/* (proc)        (x)  (y) (w)  (h) (fg) (bg) (key) (flags) (d1)         (d2) (dp)                    (dp2) (dp3) */</span></td></tr><tr><td class="number">33</td><td>  <span class="k2">{</span> <a href="http://www.allegro.cc/manual/d_edit_proc" target="_blank"><span class="a">d_edit_proc</span></a>,   <span class="n">160</span>, <span class="n">40</span>, <span class="n">120</span>, <span class="n">8</span>,  <span class="n">255</span>, <span class="n">23</span>,  <span class="n">0</span>,    <span class="n">0</span>,      IP_MAXLEN,   <span class="n">0</span>,   <span class="k2">(</span><span class="k1">void</span><span class="k3">*</span><span class="k2">)</span><span class="s">""</span>,              NULL, NULL <span class="k2">}</span>,</td></tr><tr><td class="number">34</td><td>  <span class="k2">{</span> <a href="http://www.allegro.cc/manual/d_edit_proc" target="_blank"><span class="a">d_edit_proc</span></a>,   <span class="n">160</span>, <span class="n">56</span>, <span class="n">120</span>, <span class="n">8</span>,  <span class="n">255</span>, <span class="n">23</span>,  <span class="n">0</span>,    <span class="n">0</span>,      PORT_MAXLEN, <span class="n">0</span>,   <span class="k2">(</span><span class="k1">void</span><span class="k3">*</span><span class="k2">)</span><span class="s">""</span>,              NULL, NULL <span class="k2">}</span>,</td></tr><tr><td class="number">35</td><td>  <span class="k2">{</span> <a href="http://www.allegro.cc/manual/d_edit_proc" target="_blank"><span class="a">d_edit_proc</span></a>,   <span class="n">160</span>, <span class="n">72</span>, <span class="n">120</span>, <span class="n">8</span>,  <span class="n">255</span>, <span class="n">23</span>,  <span class="n">0</span>,    <span class="n">0</span>,      <span class="n">4</span>,           <span class="n">0</span>,   <span class="k2">(</span><span class="k1">void</span><span class="k3">*</span><span class="k2">)</span><span class="s">""</span>,              NULL, NULL <span class="k2">}</span>,</td></tr><tr><td class="number">36</td><td>  <span class="k2">{</span> <a href="http://www.allegro.cc/manual/d_text_proc" target="_blank"><span class="a">d_text_proc</span></a>,   <span class="n">48</span>,  <span class="n">40</span>, <span class="n">56</span>,  <span class="n">8</span>,  <span class="n">255</span>, <span class="n">23</span>,  <span class="n">0</span>,    <span class="n">0</span>,      <span class="n">0</span>,           <span class="n">0</span>,   <span class="k2">(</span><span class="k1">void</span><span class="k3">*</span><span class="k2">)</span><span class="s">"IP/hostname: "</span>, NULL, NULL <span class="k2">}</span>,</td></tr><tr><td class="number">37</td><td>  <span class="k2">{</span> <a href="http://www.allegro.cc/manual/d_text_proc" target="_blank"><span class="a">d_text_proc</span></a>,   <span class="n">48</span>,  <span class="n">56</span>, <span class="n">104</span>, <span class="n">8</span>,  <span class="n">255</span>, <span class="n">23</span>,  <span class="n">0</span>,    <span class="n">0</span>,      <span class="n">0</span>,           <span class="n">0</span>,   <span class="k2">(</span><span class="k1">void</span><span class="k3">*</span><span class="k2">)</span><span class="s">"Port: "</span>,        NULL, NULL <span class="k2">}</span>,</td></tr><tr><td class="number">38</td><td>  <span class="k2">{</span> <a href="http://www.allegro.cc/manual/d_text_proc" target="_blank"><span class="a">d_text_proc</span></a>,   <span class="n">48</span>,  <span class="n">72</span>, <span class="n">104</span>, <span class="n">8</span>,  <span class="n">255</span>, <span class="n">23</span>,  <span class="n">0</span>,    <span class="n">0</span>,      <span class="n">0</span>,           <span class="n">0</span>,   <span class="k2">(</span><span class="k1">void</span><span class="k3">*</span><span class="k2">)</span><span class="s">"Nick: "</span>,        NULL, NULL <span class="k2">}</span>,</td></tr><tr><td class="number">39</td><td>  <span class="k2">{</span> <a href="http://www.allegro.cc/manual/d_button_proc" target="_blank"><span class="a">d_button_proc</span></a>, <span class="n">48</span>,  <span class="n">96</span>, <span class="n">96</span>,  <span class="n">16</span>, <span class="n">255</span>, <span class="n">30</span>,  <span class="n">0</span>,    D_EXIT, <span class="n">0</span>,           <span class="n">0</span>,   <span class="k2">(</span><span class="k1">void</span><span class="k3">*</span><span class="k2">)</span><span class="s">"Connect"</span>,       NULL, NULL <span class="k2">}</span>,</td></tr><tr><td class="number">40</td><td>  <span class="k2">{</span> NULL,          <span class="n">0</span>,   <span class="n">0</span>,  <span class="n">0</span>,   <span class="n">0</span>,  <span class="n">0</span>,   <span class="n">0</span>,   <span class="n">0</span>,    <span class="n">0</span>,      <span class="n">0</span>,           <span class="n">0</span>,   NULL,                   NULL, NULL <span class="k2">}</span></td></tr><tr><td class="number">41</td><td><span class="k2">}</span><span class="k2">;</span></td></tr><tr><td class="number">42</td><td>&#160;</td></tr><tr><td class="number">43</td><td><span class="k1">void</span> CleanupConGUI<span class="k2">(</span><span class="k2">)</span></td></tr><tr><td class="number">44</td><td><span class="k2">{</span></td></tr><tr><td class="number">45</td><td>  <span class="c">// delete our variables to prevent leakage</span></td></tr><tr><td class="number">46</td><td>  <span class="k1">delete</span><span class="k2">[</span><span class="k2">]</span> connect_ip<span class="k2">;</span></td></tr><tr><td class="number">47</td><td>  <span class="k1">delete</span><span class="k2">[</span><span class="k2">]</span> connect_port<span class="k2">;</span></td></tr><tr><td class="number">48</td><td>  <span class="k1">delete</span><span class="k2">[</span><span class="k2">]</span> username<span class="k2">;</span></td></tr><tr><td class="number">49</td><td>  </td></tr><tr><td class="number">50</td><td>  <span class="c">// set them all back to NULL</span></td></tr><tr><td class="number">51</td><td>  connect_ip <span class="k3">=</span> connect_port <span class="k3">=</span> username <span class="k3">=</span> NULL<span class="k2">;</span></td></tr><tr><td class="number">52</td><td><span class="k2">}</span></td></tr></tbody></table></div></div><p>

You&#39;re suggestion for the InitConGUI really helped clean things up a bit and makes it easier to work with. Thanks.</p><p>Now that I&#39;ve got it working, I just need to figure out how I want to remedy the fact that my dialog is blue and black, rather than white and gray. Looks completely different in the program than it does in the DLG editor found in the Utils section of this site. I suppose using 8bit color would work.</p><p>I would give you a cookie, but it appears that I created the topic wrong and cannot. It&#39;s the thought that counts, right?
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Elverion)</author>
		<pubDate>Sun, 28 May 2006 18:46:09 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><div class="quote_container"><div class="title">Quote:</div><div class="quote"><p>
</p><div class="source-code snippet"><div class="inner"><pre><a href="http://www.allegro.cc/manual/set_dialog_color" target="_blank"><span class="a">set_dialog_color</span></a><span class="k2">(</span>con_dlg, <span class="n">255</span>, <span class="n">23</span><span class="k2">)</span><span class="k2">;</span>
</pre></div></div><p>
Now that I&#39;ve got it working, I just need to figure out how I want to remedy the fact that my dialog is blue and black, rather than white and gray.
</p></div></div><p>
Must be because of the values you pass there for foreground and background color.<br />They seem to refer to indices in some palette.<br />If your programme is ran in high or truecolor, then those values are interpreted as pixelcolor values, hence 255 could give 0000FF(rrggbb)==&gt; blue and 23 could give 000017(rrggbb)==&gt;extremely dark blue(might appear black).<br />Try: set_dialog_color(con_dlg,makecol(255,255,255),makecol(128,128,128));<br />Just make sure that you set those colors after setting the graphic mode, since makecol returns different values, depending on the current mode.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Dennis)</author>
		<pubDate>Sun, 28 May 2006 22:03:37 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>I don&#39;t have a clue if this helps, but I usually have a d_clear_proc as the first object in my dialogs, I don&#39;t know if you&#39;d left it out as it&#39;s irrelevant. I don&#39;t know, really. I know this doesn&#39;t make any difference at all, but why do use (void*) as the type for the strings? I&#39;ve used (char*) in all of mine. Does the Allegro Documentation say my way is bad or does it make no difference?
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (James Stanley)</author>
		<pubDate>Sat, 03 Jun 2006 00:03:08 +0000</pubDate>
	</item>
</rss>
