<?xml version="1.0"?>
<rss version="2.0">
	<channel>
		<title>trouble loading config file</title>
		<link>http://www.allegro.cc/forums/view/615390</link>
		<description>Allegro.cc Forum Thread</description>
		<webMaster>matthew@allegro.cc (Matthew Leverton)</webMaster>
		<lastBuildDate>Mon, 18 May 2015 22:47:26 +0000</lastBuildDate>
	</channel>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Hi,</p><p> just trying to get a config file to load.</p><p>Here&#39;s the bit of code which calls the load function :</p><div class="source-code snippet"><div class="inner"><pre><span class="c">/**********************************************************************/</span>
   <span class="c">/**************** Section : load configuration file. ******************/</span>
   <span class="c">/**********************************************************************/</span>
   
   config_manager.load_config_file<span class="k2">(</span><span class="s">"configuration/tpos_configuration_file.cfg"</span>, <a href="http://www.delorie.com/djgpp/doc/libc/libc_542.html" target="_blank">log</a><span class="k2">)</span><span class="k2">;</span>
   
   <span class="k1">if</span><span class="k2">(</span>config_manager.init_okay<span class="k2">(</span><span class="k2">)</span> <span class="k3">!</span><span class="k3">=</span> GREEN_FLAG<span class="k2">)</span>
   <span class="k2">{</span>
     <span class="c">/* add clear up code */</span>
     <span class="k1">return</span> <span class="n">0</span><span class="k2">;</span>
   <span class="k2">}</span>
</pre></div></div><p>



Here&#39;s the class with the load function :</p><div class="source-code"><div class="toolbar"><span class="button numbers"><b>#</b></span><span class="button select">Select</span><span class="button expand">Expand</span></div><div class="inner"><span class="number">  1</span><span class="k1">class</span> ConfigManagerClass
<span class="number">  2</span><span class="k2">{</span>
<span class="number">  3</span>   
<span class="number">  4</span>   <a href="http://www.allegro.cc/manual/ALLEGRO_CONFIG"><span class="a">ALLEGRO_CONFIG</span></a> <span class="k3">*</span>cfg<span class="k2">;</span>
<span class="number">  5</span>   
<span class="number">  6</span>   <span class="k1">int</span> init_okay_flag<span class="k2">;</span>
<span class="number">  7</span>   
<span class="number">  8</span>   public:
<span class="number">  9</span>
<span class="number"> 10</span>   ConfigManagerClass<span class="k2">(</span><span class="k2">)</span> <span class="k2">:</span> cfg<span class="k2">(</span>NULL<span class="k2">)</span>
<span class="number"> 11</span>   <span class="k2">{</span>
<span class="number"> 12</span>      
<span class="number"> 13</span>
<span class="number"> 14</span>   <span class="k2">}</span>
<span class="number"> 15</span>   
<span class="number"> 16</span>   <span class="k1">void</span> load_config_file<span class="k2">(</span><span class="k1">const</span> <span class="k1">char</span> <span class="k3">*</span>filename, Rabbit_Log<span class="k3">&amp;</span> <a href="http://www.delorie.com/djgpp/doc/libc/libc_542.html" target="_blank">log</a><span class="k2">)</span>
<span class="number"> 17</span>   <span class="k2">{</span>
<span class="number"> 18</span>      cfg <span class="k3">=</span> <a href="http://www.allegro.cc/manual/al_load_config_file"><span class="a">al_load_config_file</span></a><span class="k2">(</span>filename<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 19</span>     
<span class="number"> 20</span>    log.write_message_number<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 21</span>    log.write_string<span class="k2">(</span><span class="s">"About to load configuration file ("</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 22</span>    log.write_string<span class="k2">(</span>filename<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 23</span>    log.write_string<span class="k2">(</span><span class="s">")."</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 24</span>    log.end_message<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 25</span>    
<span class="number"> 26</span>    log.write_message_number<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 27</span>    <span class="k1">if</span><span class="k2">(</span> cfg <span class="k3">=</span><span class="k3">=</span> NULL <span class="k2">)</span>
<span class="number"> 28</span>    <span class="k2">{</span>
<span class="number"> 29</span>     log.write_string<span class="k2">(</span><span class="s">"Failed to load it."</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 30</span>     init_okay_flag <span class="k3">=</span> RED_FLAG<span class="k2">;</span>
<span class="number"> 31</span>     
<span class="number"> 32</span>    <span class="k2">}</span>
<span class="number"> 33</span>      <span class="k1">else</span> 
<span class="number"> 34</span>    <span class="k2">{</span>
<span class="number"> 35</span>     log.write_string<span class="k2">(</span><span class="s">"Loaded it successfully."</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 36</span>     init_okay_flag <span class="k3">=</span> GREEN_FLAG<span class="k2">;</span>
<span class="number"> 37</span>    
<span class="number"> 38</span>    <span class="k2">}</span>
<span class="number"> 39</span>    log.end_message<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 40</span>     
<span class="number"> 41</span>   <span class="k2">}</span>
<span class="number"> 42</span>   
<span class="number"> 43</span>   <span class="k1">int</span> get_integer<span class="k2">(</span><span class="k1">const</span> <span class="k1">char</span> <span class="k3">*</span><a href="http://www.allegro.cc/manual/key"><span class="a">key</span></a>, <span class="k1">int</span> <span class="k3">*</span>integer_to_get<span class="k2">)</span>
<span class="number"> 44</span>   <span class="k2">{</span>
<span class="number"> 45</span>      <span class="k1">const</span> <span class="k1">char</span> <span class="k3">*</span>string <span class="k3">=</span> NULL<span class="k2">;</span>
<span class="number"> 46</span>    
<span class="number"> 47</span>      string <span class="k3">=</span> <a href="http://www.allegro.cc/manual/al_get_config_value"><span class="a">al_get_config_value</span></a><span class="k2">(</span> cfg, NULL, <span class="s">"p1"</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 48</span>    
<span class="number"> 49</span>    <span class="k1">if</span><span class="k2">(</span>string <span class="k3">=</span><span class="k3">=</span> NULL<span class="k2">)</span>
<span class="number"> 50</span>    <span class="k2">{</span>
<span class="number"> 51</span>         <span class="k1">return</span> ERROR_1<span class="k2">;</span>
<span class="number"> 52</span>      <span class="k2">}</span>
<span class="number"> 53</span>      <span class="k1">else</span>
<span class="number"> 54</span>    <span class="k2">{</span>
<span class="number"> 55</span>       <span class="k1">return</span> <a href="http://www.delorie.com/djgpp/doc/libc/libc_54.html" target="_blank">atoi</a><span class="k2">(</span>string<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 56</span>    <span class="k2">}</span>
<span class="number"> 57</span>    
<span class="number"> 58</span>   <span class="k2">}</span>
<span class="number"> 59</span>   
<span class="number"> 60</span>   
<span class="number"> 61</span>   <span class="k1">int</span> init_okay<span class="k2">(</span><span class="k2">)</span>
<span class="number"> 62</span>   <span class="k2">{</span>
<span class="number"> 63</span>     <span class="k1">return</span> init_okay_flag<span class="k2">;</span>
<span class="number"> 64</span>   <span class="k2">}</span>
<span class="number"> 65</span>   
<span class="number"> 66</span><span class="k2">}</span><span class="k2">;</span>
</div></div><p>

Here&#39;s the log file :</p><div class="source-code snippet"><div class="inner"><pre>MESSAGE <span class="k2">:</span>    <span class="n">0</span>   <span class="k2">:</span> Log file opened
MESSAGE <span class="k2">:</span>    <span class="n">1</span>   <span class="k2">:</span> Initialised Allegro System.
MESSAGE <span class="k2">:</span>    <span class="n">2</span>   <span class="k2">:</span> Initialised <span class="k1">true</span> type <a href="http://www.allegro.cc/manual/font"><span class="a">font</span></a> addon.
MESSAGE <span class="k2">:</span>    <span class="n">3</span>   <span class="k2">:</span> Finished initialising InitialisationClass.
MESSAGE <span class="k2">:</span>    <span class="n">4</span>   <span class="k2">:</span> Initialising Primes_Manager class.
MESSAGE <span class="k2">:</span>    <span class="n">5</span>   <span class="k2">:</span> Initialised PhysFS successfully.
MESSAGE <span class="k2">:</span>    <span class="n">6</span>   <span class="k2">:</span> Initialising Display.
MESSAGE <span class="k2">:</span>    <span class="n">7</span>   <span class="k2">:</span> Unable to load <a href="http://www.allegro.cc/manual/font"><span class="a">font</span></a> SIRCLIVE.ttf.
MESSAGE <span class="k2">:</span>    <span class="n">8</span>   <span class="k2">:</span> Successfully initialised the Display.
MESSAGE <span class="k2">:</span>    <span class="n">9</span>   <span class="k2">:</span> About to load configuration file <span class="k2">(</span>configuration<span class="k3">/</span>tpos_configuration_file.cfg<span class="k2">)</span>.
MESSAGE <span class="k2">:</span>   <span class="n">10</span>   <span class="k2">:</span> Failed to load it.
</pre></div></div><p>


Here&#39;s my directory structure (for some evidence so you&#39;ve something to go on) :<br /><a href="https://www.allegro.cc/files/attachment/609444">https://www.allegro.cc/files/attachment/609444</a><br /><span class="remote-thumbnail"><span class="json">{"name":"609444","src":"\/\/djungxnpq2nug.cloudfront.net\/image\/cache\/f\/c\/fc0677891bf25af8316192bc2ff131f7.png","w":400,"h":256,"tn":"\/\/djungxnpq2nug.cloudfront.net\/image\/cache\/f\/c\/fc0677891bf25af8316192bc2ff131f7"}</span><img src="http://www.allegro.cc//djungxnpq2nug.cloudfront.net/image/cache/f/c/fc0677891bf25af8316192bc2ff131f7-240.jpg" alt="609444" width="240" height="153" /></span></p><p><span class="remote-thumbnail"><span class="json">{"name":"609445","src":"\/\/djungxnpq2nug.cloudfront.net\/image\/cache\/2\/d\/2d4eeb6dbf45968c2460959871e262c4.png","w":400,"h":149,"tn":"\/\/djungxnpq2nug.cloudfront.net\/image\/cache\/2\/d\/2d4eeb6dbf45968c2460959871e262c4"}</span><img src="http://www.allegro.cc//djungxnpq2nug.cloudfront.net/image/cache/2/d/2d4eeb6dbf45968c2460959871e262c4-240.jpg" alt="609445" width="240" height="89" /></span></p><p>Any allegro code detectives fancy helping me work out why the cfg file won&#39;t load??
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (William Labbett)</author>
		<pubDate>Sun, 17 May 2015 20:51:17 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Windows uses</p><p>folder\myfoler</p><p>*NIX uses:</p><p>folder/subfolder</p><p>So for windows you would write &quot;folder\\myfolder&quot; in the c string (two \\ = one because you&#39;re escaping the first backslash, IIRC)
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Chris Katko)</author>
		<pubDate>Sun, 17 May 2015 22:07:58 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Cheers Chris <img src="http://www.allegro.cc/forums/smileys/smiley.gif" alt=":)" />
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (William Labbett)</author>
		<pubDate>Sun, 17 May 2015 22:31:05 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>It&#39;s Allegro he&#39;s passing the string to, and it understands both separators I believe. Windows does too. *nix is case-sensitive, but that doesn&#39;t look like the problem either.</p><p>You can try posting your cfg file and we can look at it and try loading it ourselves, because your tpos_001 exe is in the directory above your config file, and so it looks like it should work. Oh yeah, please stop hiding your file name extensions, and attach the full size image next time, it&#39;s too hard to read.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Edgar Reynaldo)</author>
		<pubDate>Mon, 18 May 2015 00:46:49 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><div class="quote_container"><div class="title"><a href="http://www.allegro.cc/forums/thread/615390/1013334#target">Edgar Reynaldo</a> said:</div><div class="quote"><p>
It&#39;s Allegro he&#39;s passing the string to, and it understands both separators I believe. Windows does too. *nix is case-sensitive, but that doesn&#39;t look like the problem either.
</p></div></div><p>
You sure about that? I&#39;m pretty sure I&#39;ve had (back)slashes, and &quot;./subdirectory/file&quot; vs /subdirectory/file&quot; (no dot) both cause me problems in A4 and A5 before.</p><p>Otherwise, why would this exist?
</p><div class="source-code snippet"><div class="inner"><pre><span class="k1">char</span> <span class="k3">*</span><a href="http://www.allegro.cc/manual/fix_filename_slashes"><span class="a">fix_filename_slashes</span></a><span class="k2">(</span><span class="k1">char</span> <span class="k3">*</span>path<span class="k2">)</span><span class="k2">;</span>
</pre></div></div><p>
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Chris Katko)</author>
		<pubDate>Mon, 18 May 2015 21:43:52 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>I always use forward slahes on Windows and never had problems with this before. Most native Windows C and C++ functions should treat / and \\ equally for pathes.</p><div class="quote_container"><div class="title"><a href="http://www.allegro.cc/forums/thread/615390/1013363#target">Chris Katko</a> said:</div><div class="quote"><p> I&#39;m pretty sure I&#39;ve had (back)slashes, and &quot;./subdirectory/file&quot; vs /subdirectory/file&quot; (no dot) both cause me problems in A4 and A5 before.</p></div></div><p>The problem here, I believe, is that any path starting with a / is interpreted as an absolute path on Unix. Using &quot;subdirectory/file&quot; should work on all systems and represent a relative path.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (RPG Hacker)</author>
		<pubDate>Mon, 18 May 2015 22:47:26 +0000</pubDate>
	</item>
</rss>
