<?xml version="1.0"?>
<rss version="2.0">
	<channel>
		<title>Bash or Shell script to create source and header</title>
		<link>http://www.allegro.cc/forums/view/601030</link>
		<description>Allegro.cc Forum Thread</description>
		<webMaster>matthew@allegro.cc (Matthew Leverton)</webMaster>
		<lastBuildDate>Fri, 24 Jul 2009 10:49:17 +0000</lastBuildDate>
	</channel>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>I often find myself writing the same structure for all of my class headers.  I want to eliminate repetitive tasks, so I&#39;d like to automate this by making it into a shell script.  I&#39;m using a Mac, and I understand there&#39;s something called the Automator, but I&#39;ve never used it before so have no idea what it&#39;s for or how to use it, so thought I&#39;d ask a question that people on OTHER platforms might find in the future and be able to use.</p><p>I&#39;d like to create a shell script that will perform the following:
</p><ol><li><p>Create a filename (case-sensitive) from the supplied argument, plus &quot;.h&quot;</p></li><li><p>Fill the file with this text:
</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="p">#ifndef $(filename)_h</span>
<span class="number">  2</span><span class="p">#define $(filename)_h</span>
<span class="number">  3</span>
<span class="number">  4</span>
<span class="number">  5</span><span class="k1">class</span> $<span class="k2">(</span>filename<span class="k2">)</span>
<span class="number">  6</span><span class="k2">{</span>
<span class="number">  7</span>public:
<span class="number">  8</span>   <span class="c">// Constructor</span>
<span class="number">  9</span>   $<span class="k2">(</span>filename<span class="k2">)</span><span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 10</span>
<span class="number"> 11</span>   <span class="c">// Destructor</span>
<span class="number"> 12</span>   <span class="k1">virtual</span> ~$<span class="k2">(</span>filename<span class="k2">)</span><span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 13</span><span class="k2">}</span><span class="k2">;</span>
<span class="number"> 14</span>
<span class="number"> 15</span>
<span class="number"> 16</span><span class="p">#endif  //  $(filename)_h</span>
</div></div><p>
</p></li><li><p>Create the source file (same filename but with a &quot;.cpp&quot; extension)</p></li><li><p>Fill the file with this text:
</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="p">#include "$(filename).h"</span>
<span class="number">  2</span>
<span class="number">  3</span>
<span class="number">  4</span><span class="c">// Constructor</span>
<span class="number">  5</span>$<span class="k2">(</span>filename<span class="k2">)</span><span class="k2">:</span><span class="k2">:</span>$<span class="k2">(</span>filename<span class="k2">)</span><span class="k2">(</span><span class="k2">)</span>
<span class="number">  6</span><span class="k2">{</span>
<span class="number">  7</span>   <span class="c">// Nothing to do</span>
<span class="number">  8</span><span class="k2">}</span>
<span class="number">  9</span>
<span class="number"> 10</span>
<span class="number"> 11</span><span class="c">// Destructor</span>
<span class="number"> 12</span>$<span class="k2">(</span>filename<span class="k2">)</span><span class="k2">:</span><span class="k2">:</span>~$<span class="k2">(</span>filename<span class="k2">)</span><span class="k2">(</span><span class="k2">)</span>
<span class="number"> 13</span><span class="k2">{</span>
<span class="number"> 14</span>   <span class="c">// Nothing to do</span>
<span class="number"> 15</span><span class="k2">}</span>
</div></div><p>
</p></li></ol><p>

I&#39;m not exactly certain the format (and the whole &quot;$(filename)&quot; format is borrowed from the makefile style), and I don&#39;t know how to supply arguments to shell scripts, so any help is appreciated.  Even if the help is in the form of &quot;RTM found at website ___&quot; <img src="http://www.allegro.cc/forums/smileys/lipsrsealed.gif" alt=":-X" />
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (OnlineCop)</author>
		<pubDate>Thu, 23 Jul 2009 19:28:44 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Try this.
</p><div class="source-code snippet"><div class="inner"><pre><span class="p">#!/bin/sh</span>

<span class="k1">if</span> <span class="k2">[</span> <span class="s">"x$1"</span> <span class="k3">=</span> <span class="s">"x"</span> <span class="k2">]</span><span class="k2">;</span> then
        echo <span class="s">"Supply an argument"</span>
fi

name<span class="k3">=</span>$<span class="n">1</span>

sed template.h <span class="k3">-</span>e <span class="s">"s/\$(filename)/${name}/g"</span> <span class="k3">&gt;</span> $name.h
</pre></div></div><p>
Use:
</p><div class="source-code snippet"><div class="inner"><pre>$ .<span class="k3">/</span>create foo
$ cat foo.h
<span class="p">#ifndef foo_h</span>
<span class="p">#define foo_h</span>

<span class="k1">class</span> foo <span class="k2">{</span>
         public:
         <span class="c">// Constructor</span>
         foo<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
         <span class="c">// Destructor</span>
         <span class="k1">virtual</span> ~foo<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="k2">}</span><span class="k2">;</span>

<span class="p">#endif // foo_h </span>
</pre></div></div><p>
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (kazzmir)</author>
		<pubDate>Thu, 23 Jul 2009 19:34:06 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><div class="source-code"><div class="toolbar"><span class="name">addclass</span><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="p">#!/bin/bash</span>
<span class="number">   2</span>
<span class="number">   3</span>function do_header
<span class="number">   4</span><span class="k2">{</span>
<span class="number">   5</span>    <span class="k1">if</span> <span class="k2">[</span> <span class="k3">-</span>e <span class="s">"$header_path"</span> <span class="k2">]</span><span class="k2">;</span> then
<span class="number">   6</span>        <a href="http://www.delorie.com/djgpp/doc/libc/libc_642.html" target="_blank">read</a> <span class="k3">-</span>p <span class="s">"'$header_path' already exists. Overwrite? (yes/no) "</span><span class="k2">;</span>
<span class="number">   7</span>
<span class="number">   8</span>        <span class="k1">if</span> <span class="k2">[</span> x$REPLY <span class="k3">!</span><span class="k3">=</span> xyes <span class="k2">]</span><span class="k2">;</span> then
<span class="number">   9</span>            <span class="k1">return</span> <span class="n">0</span><span class="k2">;</span>
<span class="number">  10</span>        fi
<span class="number">  11</span>    fi
<span class="number">  12</span>
<span class="number">  13</span>    <span class="p"># --- QnD: Header File ---</span>
<span class="number">  14</span>    echo <span class="s">"#ifndef $header_guard"</span> <span class="k3">&gt;</span> $header_path<span class="k2">;</span>
<span class="number">  15</span>    echo <span class="s">"    #define $header_guard"</span> <span class="k3">&gt;</span><span class="k3">&gt;</span> $header_path<span class="k2">;</span>
<span class="number">  16</span>    echo <span class="k3">&gt;</span><span class="k3">&gt;</span> $header_path<span class="k2">;</span>
<span class="number">  17</span>
<span class="number">  18</span>    <span class="k1">if</span> <span class="k2">[</span> x$<span class="k1">namespace</span> <span class="k3">!</span><span class="k3">=</span> x <span class="k2">]</span><span class="k2">;</span> then
<span class="number">  19</span>        indent<span class="k3">=</span><span class="s">"    "</span><span class="k2">;</span>
<span class="number">  20</span>        echo <span class="s">"namespace $namespace"</span> <span class="k3">&gt;</span><span class="k3">&gt;</span> $header_path<span class="k2">;</span>
<span class="number">  21</span>        echo <span class="s">"{"</span> <span class="k3">&gt;</span><span class="k3">&gt;</span> $header_path<span class="k2">;</span>
<span class="number">  22</span>    fi
<span class="number">  23</span>
<span class="number">  24</span>    echo <span class="s">"${indent}class $name"</span> <span class="k3">&gt;</span><span class="k3">&gt;</span> $header_path<span class="k2">;</span>
<span class="number">  25</span>    echo <span class="s">"${indent}{"</span> <span class="k3">&gt;</span><span class="k3">&gt;</span> $header_path<span class="k2">;</span>
<span class="number">  26</span>    echo <span class="s">"${indent}public:"</span> <span class="k3">&gt;</span><span class="k3">&gt;</span> $header_path<span class="k2">;</span>
<span class="number">  27</span>    echo <span class="s">"${indent}    ${name}(void);"</span> <span class="k3">&gt;</span><span class="k3">&gt;</span> $header_path<span class="k2">;</span>
<span class="number">  28</span>    echo <span class="s">"${indent}    virtual ~${name}(void);"</span> <span class="k3">&gt;</span><span class="k3">&gt;</span> $header_path<span class="k2">;</span>
<span class="number">  29</span>    echo <span class="s">"${indent}};"</span> <span class="k3">&gt;</span><span class="k3">&gt;</span> $header_path<span class="k2">;</span>
<span class="number">  30</span>
<span class="number">  31</span>    <span class="k1">if</span> <span class="k2">[</span> x$<span class="k1">namespace</span> <span class="k3">!</span><span class="k3">=</span> x <span class="k2">]</span><span class="k2">;</span> then
<span class="number">  32</span>        echo <span class="s">"}"</span> <span class="k3">&gt;</span><span class="k3">&gt;</span> $header_path<span class="k2">;</span>
<span class="number">  33</span>    fi
<span class="number">  34</span>
<span class="number">  35</span>    echo <span class="k3">&gt;</span><span class="k3">&gt;</span> $header_path<span class="k2">;</span>
<span class="number">  36</span>    echo <span class="s">"#endif //${header_guard}"</span> <span class="k3">&gt;</span><span class="k3">&gt;</span> $header_path<span class="k2">;</span>
<span class="number">  37</span>    echo <span class="k3">&gt;</span><span class="k3">&gt;</span> $header_path<span class="k2">;</span>
<span class="number">  38</span><span class="k2">}</span>
<span class="number">  39</span>
<span class="number">  40</span>function do_source
<span class="number">  41</span><span class="k2">{</span>
<span class="number">  42</span>    <span class="k1">if</span> <span class="k2">[</span> <span class="k3">-</span>e <span class="s">"$source_path"</span> <span class="k2">]</span><span class="k2">;</span> then
<span class="number">  43</span>        <a href="http://www.delorie.com/djgpp/doc/libc/libc_642.html" target="_blank">read</a> <span class="k3">-</span>p <span class="s">"'$source_path' already exists. Overwrite? (yes/no) "</span><span class="k2">;</span>
<span class="number">  44</span>
<span class="number">  45</span>        <span class="k1">if</span> <span class="k2">[</span> x$REPLY <span class="k3">!</span><span class="k3">=</span> xyes <span class="k2">]</span><span class="k2">;</span> then
<span class="number">  46</span>            <span class="k1">return</span> <span class="n">0</span><span class="k2">;</span>
<span class="number">  47</span>        fi
<span class="number">  48</span>    fi
<span class="number">  49</span>
<span class="number">  50</span>    <span class="p"># QnD --- Source File ---</span>
<span class="number">  51</span>    echo <span class="s">"#include &lt;${header_file}&gt;"</span> <span class="k3">&gt;</span> $source_path<span class="k2">;</span>
<span class="number">  52</span>    echo <span class="k3">&gt;</span><span class="k3">&gt;</span> $source_path<span class="k2">;</span>
<span class="number">  53</span>
<span class="number">  54</span>    <span class="k1">if</span> <span class="k2">[</span> x$<span class="k1">namespace</span> <span class="k3">!</span><span class="k3">=</span> x <span class="k2">]</span><span class="k2">;</span> then
<span class="number">  55</span>        indent<span class="k3">=</span><span class="s">"    "</span><span class="k2">;</span>
<span class="number">  56</span>        echo <span class="s">"namespace $namespace"</span> <span class="k3">&gt;</span><span class="k3">&gt;</span> $source_path<span class="k2">;</span>
<span class="number">  57</span>        echo <span class="s">"{"</span> <span class="k3">&gt;</span><span class="k3">&gt;</span> $source_path<span class="k2">;</span>
<span class="number">  58</span>    fi
<span class="number">  59</span>
<span class="number">  60</span>    echo <span class="s">"${indent}${name}::${name}(void)"</span> <span class="k3">&gt;</span><span class="k3">&gt;</span> $source_path<span class="k2">;</span>
<span class="number">  61</span>    echo <span class="s">"${indent}{"</span> <span class="k3">&gt;</span><span class="k3">&gt;</span> $source_path<span class="k2">;</span>
<span class="number">  62</span>    echo <span class="s">"${indent}    // TODO"</span> <span class="k3">&gt;</span><span class="k3">&gt;</span> $source_path<span class="k2">;</span>
<span class="number">  63</span>    echo <span class="s">"${indent}}"</span> <span class="k3">&gt;</span><span class="k3">&gt;</span> $source_path<span class="k2">;</span>
<span class="number">  64</span>    echo <span class="k3">&gt;</span><span class="k3">&gt;</span> $source_path<span class="k2">;</span>
<span class="number">  65</span>    echo <span class="s">"${indent}${name}::~${name}(void)"</span> <span class="k3">&gt;</span><span class="k3">&gt;</span> $source_path<span class="k2">;</span>
<span class="number">  66</span>    echo <span class="s">"${indent}{"</span> <span class="k3">&gt;</span><span class="k3">&gt;</span> $source_path<span class="k2">;</span>
<span class="number">  67</span>    echo <span class="s">"${indent}    // TODO"</span> <span class="k3">&gt;</span><span class="k3">&gt;</span> $source_path<span class="k2">;</span>
<span class="number">  68</span>    echo <span class="s">"${indent}}"</span> <span class="k3">&gt;</span><span class="k3">&gt;</span> $source_path<span class="k2">;</span>
<span class="number">  69</span>
<span class="number">  70</span>    <span class="k1">if</span> <span class="k2">[</span> x$<span class="k1">namespace</span> <span class="k3">!</span><span class="k3">=</span> x <span class="k2">]</span><span class="k2">;</span> then
<span class="number">  71</span>        echo <span class="s">"}"</span> <span class="k3">&gt;</span><span class="k3">&gt;</span> $source_path<span class="k2">;</span>
<span class="number">  72</span>    fi
<span class="number">  73</span>
<span class="number">  74</span>    echo <span class="k3">&gt;</span><span class="k3">&gt;</span> $source_path<span class="k2">;</span>
<span class="number">  75</span><span class="k2">}</span>
<span class="number">  76</span>
<span class="number">  77</span><span class="k1">if</span> <span class="k2">[</span> x$<span class="n">1</span> <span class="k3">=</span> x <span class="k2">]</span><span class="k2">;</span> then
<span class="number">  78</span>    echo <span class="s">"Usage: $0 NAME [NAMESPACE]"</span><span class="k2">;</span>
<span class="number">  79</span>    echo<span class="k2">;</span>
<span class="number">  80</span>    echo <span class="s">"Where NAME is the name of the file/class and NAMESPACE is the namespace."</span><span class="k2">;</span>
<span class="number">  81</span>
<span class="number">  82</span>    <a href="http://www.delorie.com/djgpp/doc/libc/libc_298.html" target="_blank">exit</a> <span class="k3">-</span><span class="n">1</span><span class="k2">;</span>
<span class="number">  83</span>fi
<span class="number">  84</span>
<span class="number">  85</span>name<span class="k3">=</span><span class="s">"`echo "</span>$<span class="n">1</span><span class="s">" | sed -r 's/\s+//g'`"</span><span class="k2">;</span>
<span class="number">  86</span><span class="k1">namespace</span><span class="k3">=</span><span class="s">"`echo "</span>$<span class="n">2</span><span class="s">" | sed -r 's/\s+//g'`"</span><span class="k2">;</span>
<span class="number">  87</span>header_guard<span class="k3">=</span><span class="s">"`echo "</span>$name<span class="s">" | tr [:lower:] [:upper:]`_HPP"</span><span class="k2">;</span>
<span class="number">  88</span>header_file<span class="k3">=</span><span class="s">"${name}.hpp"</span><span class="k2">;</span>
<span class="number">  89</span>
<span class="number">  90</span><span class="k1">if</span> <span class="k2">[</span> <span class="k3">-</span>d include <span class="k2">]</span><span class="k2">;</span> then
<span class="number">  91</span>    incdir<span class="k3">=</span>include<span class="k3">/</span><span class="k2">;</span>
<span class="number">  92</span>fi
<span class="number">  93</span>
<span class="number">  94</span>header_path<span class="k3">=</span><span class="s">"${incdir}${header_file}"</span><span class="k2">;</span>
<span class="number">  95</span>
<span class="number">  96</span>do_header<span class="k2">;</span>
<span class="number">  97</span>
<span class="number">  98</span>source_file<span class="k3">=</span><span class="s">"${name}.cpp"</span><span class="k2">;</span>
<span class="number">  99</span>
<span class="number"> 100</span><span class="k1">if</span> <span class="k2">[</span> <span class="k3">-</span>d src <span class="k2">]</span><span class="k2">;</span> then
<span class="number"> 101</span>    srcdir<span class="k3">=</span>src<span class="k3">/</span><span class="k2">;</span>
<span class="number"> 102</span>fi
<span class="number"> 103</span>
<span class="number"> 104</span>source_path<span class="k3">=</span><span class="s">"${srcdir}${source_file}"</span><span class="k2">;</span>
<span class="number"> 105</span>
<span class="number"> 106</span>do_source<span class="k2">;</span>
</div></div><p>
</p><pre class="terminal scroll">[bamccaig@sephiroth temp]$ ls -la
total 8
drwxrwxr-x  2 bamccaig bamccaig 4096 2009-07-23 12:09 .
drwxrwxr-x 36 bamccaig bamccaig 4096 2009-07-23 11:10 ..
[bamccaig@sephiroth temp]$ addclass foo
[bamccaig@sephiroth temp]$ ls -la
total 16
drwxrwxr-x  2 bamccaig bamccaig 4096 2009-07-23 12:10 .
drwxrwxr-x 36 bamccaig bamccaig 4096 2009-07-23 11:10 ..
-rw-rw-r--  1 bamccaig bamccaig   85 2009-07-23 12:10 foo.cpp
-rw-rw-r--  1 bamccaig bamccaig  118 2009-07-23 12:10 foo.hpp
[bamccaig@sephiroth temp]$ cat foo.hpp
#ifndef FOO_HPP
    #define FOO_HPP

class foo
{
public:
    foo(void);
    virtual ~foo(void);
};

#endif //FOO_HPP

[bamccaig@sephiroth temp]$ cat foo.cpp
#include &lt;foo.hpp&gt;

foo::foo(void)
{
    // TODO
}

foo::~foo(void)
{
    // TODO
}

[bamccaig@sephiroth temp]$ mkdir include src
[bamccaig@sephiroth temp]$ addclass foo bar
[bamccaig@sephiroth temp]$ ls -Rla
.:
total 24
drwxrwxr-x  4 bamccaig bamccaig 4096 2009-07-23 12:11 .
drwxrwxr-x 36 bamccaig bamccaig 4096 2009-07-23 11:10 ..
-rw-rw-r--  1 bamccaig bamccaig   85 2009-07-23 12:10 foo.cpp
-rw-rw-r--  1 bamccaig bamccaig  118 2009-07-23 12:10 foo.hpp
drwxrwxr-x  2 bamccaig bamccaig 4096 2009-07-23 12:35 include
drwxrwxr-x  2 bamccaig bamccaig 4096 2009-07-23 12:35 src

./include:
total 12
drwxrwxr-x 2 bamccaig bamccaig 4096 2009-07-23 12:35 .
drwxrwxr-x 4 bamccaig bamccaig 4096 2009-07-23 12:11 ..
-rw-rw-r-- 1 bamccaig bamccaig  160 2009-07-23 12:35 foo.hpp

./src:
total 12
drwxrwxr-x 2 bamccaig bamccaig 4096 2009-07-23 12:35 .
drwxrwxr-x 4 bamccaig bamccaig 4096 2009-07-23 12:11 ..
-rw-rw-r-- 1 bamccaig bamccaig  135 2009-07-23 12:35 foo.cpp
[bamccaig@sephiroth temp]$ cat include/foo.hpp
#ifndef FOO_HPP
    #define FOO_HPP

namespace bar
{
    class foo
    {
    public:
        foo(void);
        virtual ~foo(void);
    };
}

#endif //FOO_HPP

[bamccaig@sephiroth temp]$ cat src/foo.cpp
#include &lt;foo.hpp&gt;

namespace bar
{
    foo::foo(void)
    {
        // TODO
    }

    foo::~foo(void)
    {
        // TODO
    }
}
</pre><p>
That&#39;s actually kind of useful. <img src="http://www.allegro.cc/forums/smileys/cheesy.gif" alt=":D" /> I might just go ahead and try to create a library of bash functions to create file stubs for different types of symbols (<span class="source-code"><span class="k1">enum</span></span>s, <span class="source-code"><span class="k1">struct</span></span>s, <span class="source-code"><span class="k1">class</span></span>es, functions, <span class="source-code">main</span>, etc.).</p><p>Imagine stubbing out a whole project with just a series of commands... <img src="http://www.allegro.cc/forums/smileys/cheesy.gif" alt=":D" />
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (bamccaig)</author>
		<pubDate>Fri, 24 Jul 2009 00:05:01 +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/601030/822867#target">bamccaig</a> said:</div><div class="quote"><p>That&#39;s actually kind of useful.  I might just go ahead and try to create a library of bash functions to create file stubs for different types of symbols (<span class="source-code"><span class="k1">enum</span></span>s, <span class="source-code"><span class="k1">struct</span></span>s, <span class="source-code"><span class="k1">class</span></span>es, functions, <span class="source-code">main</span>, etc.).</p></div></div><p>
When you do, post them here.  I&#39;d certainly be interested in them.</p><p>I can even see derived classes being handy:
</p><div class="source-code snippet"><div class="inner"><pre><span class="p">#ifndef FOO_HPP</span>
<span class="p">#define FOO_HPP</span>

<span class="p">#include "bar.hpp"</span>

<span class="k1">class</span> foo <span class="k2">:</span> <span class="k1">public</span> bar
<span class="k2">{</span>
public:
    foo<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
    <span class="k1">virtual</span> ~foo<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="k2">}</span><span class="k2">;</span>

<span class="p">#endif //FOO_HPP</span>
</pre></div></div><p>
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (OnlineCop)</author>
		<pubDate>Fri, 24 Jul 2009 02:14:56 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>I did something similar with PHP some time ago.<br />Just a text input and a submit button, when you submit it creates .cpp and .h file for you both on screen and links so you can save them to your computer <img src="http://www.allegro.cc/forums/smileys/smiley.gif" alt=":)" />
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (ixilom)</author>
		<pubDate>Fri, 24 Jul 2009 04:24:27 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>I actually hadn&#39;t noticed that, with only minor modifications, <b>bamccaig</b>&#39;s code already DOES have all the necessary support for inheritance.</p><p>Now onto phase 2: the Allegro Timer template.  You know the one... it won&#39;t exceed a certain FPS under light operation, but will start to dynamically skip frames based on refresh preferences under heavy loads.  It also maintains a low CPU usage (around 1%) unless it starts really getting into heavy 3D rendering <img src="http://www.allegro.cc/forums/smileys/shocked.gif" alt=":o" /><img src="http://www.allegro.cc/forums/smileys/tongue.gif" alt=":P" />
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (OnlineCop)</author>
		<pubDate>Fri, 24 Jul 2009 05:06:08 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Updated to include namespace support in header guards and file paths (i.e., <span class="source-code"><span class="k1">namespace</span> foo <span class="k2">{</span> <span class="k1">class</span> bar<span class="k2">;</span> <span class="k2">}</span></span> becomes <span class="source-code">FOO_BAR_HPP</span>, <tt>include/foo/bar.hpp</tt>, and <tt>src/foo/bar.cpp</tt>). Obviously everybody does this a little bit different, but this is how I would do it at this particular point in time. <img src="http://www.allegro.cc/forums/smileys/wink.gif" alt=";)" />
</p><div class="source-code"><div class="toolbar"><span class="name">addclass</span><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="p">#!/bin/bash</span>
<span class="number">   2</span>
<span class="number">   3</span>function do_header
<span class="number">   4</span><span class="k2">{</span>
<span class="number">   5</span>    <span class="k1">if</span> <span class="k2">[</span> <span class="k3">-</span>e <span class="s">"$header_path"</span> <span class="k2">]</span><span class="k2">;</span> then
<span class="number">   6</span>        <a href="http://www.delorie.com/djgpp/doc/libc/libc_642.html" target="_blank">read</a> <span class="k3">-</span>p <span class="s">"'$header_path' already exists. Overwrite? (yes/no) "</span><span class="k2">;</span>
<span class="number">   7</span>
<span class="number">   8</span>        <span class="k1">if</span> <span class="k2">[</span> x$REPLY <span class="k3">!</span><span class="k3">=</span> xyes <span class="k2">]</span><span class="k2">;</span> then
<span class="number">   9</span>            <span class="k1">return</span> <span class="n">0</span><span class="k2">;</span>
<span class="number">  10</span>        fi
<span class="number">  11</span>    fi
<span class="number">  12</span>
<span class="number">  13</span>    <span class="p"># --- QnD: Header File ---</span>
<span class="number">  14</span>    echo <span class="s">"#ifndef $header_guard"</span> <span class="k3">&gt;</span> $header_path<span class="k2">;</span>
<span class="number">  15</span>    echo <span class="s">"    #define $header_guard"</span> <span class="k3">&gt;</span><span class="k3">&gt;</span> $header_path<span class="k2">;</span>
<span class="number">  16</span>    echo <span class="k3">&gt;</span><span class="k3">&gt;</span> $header_path<span class="k2">;</span>
<span class="number">  17</span>
<span class="number">  18</span>    <span class="k1">if</span> <span class="k2">[</span> x$<span class="k1">namespace</span> <span class="k3">!</span><span class="k3">=</span> x <span class="k2">]</span><span class="k2">;</span> then
<span class="number">  19</span>        indent<span class="k3">=</span><span class="s">"    "</span><span class="k2">;</span>
<span class="number">  20</span>        echo <span class="s">"namespace $namespace"</span> <span class="k3">&gt;</span><span class="k3">&gt;</span> $header_path<span class="k2">;</span>
<span class="number">  21</span>        echo <span class="s">"{"</span> <span class="k3">&gt;</span><span class="k3">&gt;</span> $header_path<span class="k2">;</span>
<span class="number">  22</span>    fi
<span class="number">  23</span>
<span class="number">  24</span>    echo <span class="s">"${indent}class $name"</span> <span class="k3">&gt;</span><span class="k3">&gt;</span> $header_path<span class="k2">;</span>
<span class="number">  25</span>    echo <span class="s">"${indent}{"</span> <span class="k3">&gt;</span><span class="k3">&gt;</span> $header_path<span class="k2">;</span>
<span class="number">  26</span>    echo <span class="s">"${indent}public:"</span> <span class="k3">&gt;</span><span class="k3">&gt;</span> $header_path<span class="k2">;</span>
<span class="number">  27</span>    echo <span class="s">"${indent}    ${name}(void);"</span> <span class="k3">&gt;</span><span class="k3">&gt;</span> $header_path<span class="k2">;</span>
<span class="number">  28</span>    echo <span class="s">"${indent}    virtual ~${name}(void);"</span> <span class="k3">&gt;</span><span class="k3">&gt;</span> $header_path<span class="k2">;</span>
<span class="number">  29</span>    echo <span class="s">"${indent}};"</span> <span class="k3">&gt;</span><span class="k3">&gt;</span> $header_path<span class="k2">;</span>
<span class="number">  30</span>
<span class="number">  31</span>    <span class="k1">if</span> <span class="k2">[</span> x$<span class="k1">namespace</span> <span class="k3">!</span><span class="k3">=</span> x <span class="k2">]</span><span class="k2">;</span> then
<span class="number">  32</span>        echo <span class="s">"}"</span> <span class="k3">&gt;</span><span class="k3">&gt;</span> $header_path<span class="k2">;</span>
<span class="number">  33</span>    fi
<span class="number">  34</span>
<span class="number">  35</span>    echo <span class="k3">&gt;</span><span class="k3">&gt;</span> $header_path<span class="k2">;</span>
<span class="number">  36</span>    echo <span class="s">"#endif //${header_guard}"</span> <span class="k3">&gt;</span><span class="k3">&gt;</span> $header_path<span class="k2">;</span>
<span class="number">  37</span>    echo <span class="k3">&gt;</span><span class="k3">&gt;</span> $header_path<span class="k2">;</span>
<span class="number">  38</span><span class="k2">}</span>
<span class="number">  39</span>
<span class="number">  40</span>function do_source
<span class="number">  41</span><span class="k2">{</span>
<span class="number">  42</span>    <span class="k1">if</span> <span class="k2">[</span> <span class="k3">-</span>e <span class="s">"$source_path"</span> <span class="k2">]</span><span class="k2">;</span> then
<span class="number">  43</span>        <a href="http://www.delorie.com/djgpp/doc/libc/libc_642.html" target="_blank">read</a> <span class="k3">-</span>p <span class="s">"'$source_path' already exists. Overwrite? (yes/no) "</span><span class="k2">;</span>
<span class="number">  44</span>
<span class="number">  45</span>        <span class="k1">if</span> <span class="k2">[</span> x$REPLY <span class="k3">!</span><span class="k3">=</span> xyes <span class="k2">]</span><span class="k2">;</span> then
<span class="number">  46</span>            <span class="k1">return</span> <span class="n">0</span><span class="k2">;</span>
<span class="number">  47</span>        fi
<span class="number">  48</span>    fi
<span class="number">  49</span>
<span class="number">  50</span>    <span class="p"># QnD --- Source File ---</span>
<span class="number">  51</span>    echo <span class="s">"#include &lt;${nsdir}${header_file}&gt;"</span> <span class="k3">&gt;</span> $source_path<span class="k2">;</span>
<span class="number">  52</span>    echo <span class="k3">&gt;</span><span class="k3">&gt;</span> $source_path<span class="k2">;</span>
<span class="number">  53</span>
<span class="number">  54</span>    <span class="k1">if</span> <span class="k2">[</span> x$<span class="k1">namespace</span> <span class="k3">!</span><span class="k3">=</span> x <span class="k2">]</span><span class="k2">;</span> then
<span class="number">  55</span>        indent<span class="k3">=</span><span class="s">"    "</span><span class="k2">;</span>
<span class="number">  56</span>        echo <span class="s">"namespace $namespace"</span> <span class="k3">&gt;</span><span class="k3">&gt;</span> $source_path<span class="k2">;</span>
<span class="number">  57</span>        echo <span class="s">"{"</span> <span class="k3">&gt;</span><span class="k3">&gt;</span> $source_path<span class="k2">;</span>
<span class="number">  58</span>    fi
<span class="number">  59</span>
<span class="number">  60</span>    echo <span class="s">"${indent}${name}::${name}(void)"</span> <span class="k3">&gt;</span><span class="k3">&gt;</span> $source_path<span class="k2">;</span>
<span class="number">  61</span>    echo <span class="s">"${indent}{"</span> <span class="k3">&gt;</span><span class="k3">&gt;</span> $source_path<span class="k2">;</span>
<span class="number">  62</span>    echo <span class="s">"${indent}    // TODO"</span> <span class="k3">&gt;</span><span class="k3">&gt;</span> $source_path<span class="k2">;</span>
<span class="number">  63</span>    echo <span class="s">"${indent}}"</span> <span class="k3">&gt;</span><span class="k3">&gt;</span> $source_path<span class="k2">;</span>
<span class="number">  64</span>    echo <span class="k3">&gt;</span><span class="k3">&gt;</span> $source_path<span class="k2">;</span>
<span class="number">  65</span>    echo <span class="s">"${indent}${name}::~${name}(void)"</span> <span class="k3">&gt;</span><span class="k3">&gt;</span> $source_path<span class="k2">;</span>
<span class="number">  66</span>    echo <span class="s">"${indent}{"</span> <span class="k3">&gt;</span><span class="k3">&gt;</span> $source_path<span class="k2">;</span>
<span class="number">  67</span>    echo <span class="s">"${indent}    // TODO"</span> <span class="k3">&gt;</span><span class="k3">&gt;</span> $source_path<span class="k2">;</span>
<span class="number">  68</span>    echo <span class="s">"${indent}}"</span> <span class="k3">&gt;</span><span class="k3">&gt;</span> $source_path<span class="k2">;</span>
<span class="number">  69</span>
<span class="number">  70</span>    <span class="k1">if</span> <span class="k2">[</span> x$<span class="k1">namespace</span> <span class="k3">!</span><span class="k3">=</span> x <span class="k2">]</span><span class="k2">;</span> then
<span class="number">  71</span>        echo <span class="s">"}"</span> <span class="k3">&gt;</span><span class="k3">&gt;</span> $source_path<span class="k2">;</span>
<span class="number">  72</span>    fi
<span class="number">  73</span>
<span class="number">  74</span>    echo <span class="k3">&gt;</span><span class="k3">&gt;</span> $source_path<span class="k2">;</span>
<span class="number">  75</span><span class="k2">}</span>
<span class="number">  76</span>
<span class="number">  77</span><span class="k1">if</span> <span class="k2">[</span> x$<span class="n">1</span> <span class="k3">=</span> x <span class="k2">]</span><span class="k2">;</span> then
<span class="number">  78</span>    echo <span class="s">"Usage: $0 NAME [NAMESPACE]"</span><span class="k2">;</span>
<span class="number">  79</span>    echo<span class="k2">;</span>
<span class="number">  80</span>    echo <span class="s">"Where NAME is the name of the file/class and NAMESPACE is the namespace."</span><span class="k2">;</span>
<span class="number">  81</span>
<span class="number">  82</span>    <a href="http://www.delorie.com/djgpp/doc/libc/libc_298.html" target="_blank">exit</a> <span class="k3">-</span><span class="n">1</span><span class="k2">;</span>
<span class="number">  83</span>fi
<span class="number">  84</span>
<span class="number">  85</span>name<span class="k3">=</span><span class="s">"`echo "</span>$<span class="n">1</span><span class="s">" | sed -r 's/\s+//g'`"</span><span class="k2">;</span>
<span class="number">  86</span><span class="k1">namespace</span><span class="k3">=</span><span class="s">"`echo "</span>$<span class="n">2</span><span class="s">" | sed -r 's/\s+//g'`"</span><span class="k2">;</span>
<span class="number">  87</span>
<span class="number">  88</span><span class="k1">if</span> <span class="k2">[</span> x$<span class="k1">namespace</span> <span class="k3">=</span> x <span class="k2">]</span><span class="k2">;</span> then
<span class="number">  89</span>    header_guard<span class="k3">=</span><span class="s">"`echo "</span>$name<span class="s">" | tr [:lower:] [:upper:]`_HPP"</span><span class="k2">;</span>
<span class="number">  90</span><span class="k1">else</span>
<span class="number">  91</span>    header_guard<span class="k3">=</span><span class="s">"`echo "</span>\`echo <span class="s">"${namespace}"</span> <span class="k3">|</span> sed <span class="k3">-</span>r <span class="s">'s/::/_/g'</span>\`_$<span class="k2">{</span>name<span class="k2">}</span><span class="s">" | tr [:lower:] [:upper:]`_HPP"</span><span class="k2">;</span>
<span class="number">  92</span>fi
<span class="number">  93</span>
<span class="number">  94</span>header_file<span class="k3">=</span><span class="s">"${name}.hpp"</span><span class="k2">;</span>
<span class="number">  95</span>
<span class="number">  96</span><span class="k1">if</span> <span class="k2">[</span> <span class="k3">-</span>d include <span class="k2">]</span><span class="k2">;</span> then
<span class="number">  97</span>    incdir<span class="k3">=</span>include<span class="k3">/</span><span class="k2">;</span>
<span class="number">  98</span>fi
<span class="number">  99</span>
<span class="number"> 100</span><span class="k1">if</span> <span class="k2">[</span> x$<span class="k1">namespace</span> <span class="k3">!</span><span class="k3">=</span> x <span class="k2">]</span><span class="k2">;</span> then
<div class="highlight"><span class="number"> 101</span>    nsdir<span class="k3">=</span><span class="s">"`echo "</span>$<span class="k1">namespace</span><span class="s">" | sed -r 's/::/\//g'`/"</span><span class="k2">;</span> </div><span class="number"> 102</span>    <a href="http://www.delorie.com/djgpp/doc/libc/libc_570.html" target="_blank">mkdir</a> <span class="k3">-</span>p <span class="s">"${incdir}${nsdir}"</span><span class="k2">;</span>
<span class="number"> 103</span>fi
<span class="number"> 104</span>
<span class="number"> 105</span>header_path<span class="k3">=</span><span class="s">"${incdir}${nsdir}${header_file}"</span><span class="k2">;</span>
<span class="number"> 106</span>
<span class="number"> 107</span>do_header<span class="k2">;</span>
<span class="number"> 108</span>
<span class="number"> 109</span>source_file<span class="k3">=</span><span class="s">"${name}.cpp"</span><span class="k2">;</span>
<span class="number"> 110</span>
<span class="number"> 111</span><span class="k1">if</span> <span class="k2">[</span> <span class="k3">-</span>d src <span class="k2">]</span><span class="k2">;</span> then
<span class="number"> 112</span>    srcdir<span class="k3">=</span>src<span class="k3">/</span><span class="k2">;</span>
<span class="number"> 113</span>fi
<span class="number"> 114</span>
<span class="number"> 115</span><span class="k1">if</span> <span class="k2">[</span> x$<span class="k1">namespace</span> <span class="k3">!</span><span class="k3">=</span> x <span class="k2">]</span><span class="k2">;</span> then
<span class="number"> 116</span>    <a href="http://www.delorie.com/djgpp/doc/libc/libc_570.html" target="_blank">mkdir</a> <span class="k3">-</span>p <span class="s">"${srcdir}${nsdir}"</span><span class="k2">;</span>
<span class="number"> 117</span>fi
<span class="number"> 118</span>
<span class="number"> 119</span>source_path<span class="k3">=</span><span class="s">"${srcdir}${nsdir}${source_file}"</span><span class="k2">;</span>
<span class="number"> 120</span>
<span class="number"> 121</span>do_source<span class="k2">;</span>
</div></div><p>
</p><pre class="terminal scroll">[bamccaig@sephiroth temp]$ ls -la
total 8
drwxrwxr-x  2 bamccaig bamccaig 4096 2009-07-23 23:48 .
drwxrwxr-x 36 bamccaig bamccaig 4096 2009-07-23 15:28 ..
[bamccaig@sephiroth temp]$ mkdir include src
[bamccaig@sephiroth temp]$ addclass foo bar::baz
[bamccaig@sephiroth temp]$ ls -Rla
.:
total 16
drwxrwxr-x  4 bamccaig bamccaig 4096 2009-07-23 23:48 .
drwxrwxr-x 36 bamccaig bamccaig 4096 2009-07-23 15:28 ..
drwxrwxr-x  3 bamccaig bamccaig 4096 2009-07-23 23:48 include
drwxrwxr-x  3 bamccaig bamccaig 4096 2009-07-23 23:48 src

./include:
total 12
drwxrwxr-x 3 bamccaig bamccaig 4096 2009-07-23 23:48 .
drwxrwxr-x 4 bamccaig bamccaig 4096 2009-07-23 23:48 ..
drwxrwxr-x 3 bamccaig bamccaig 4096 2009-07-23 23:48 bar

./include/bar:
total 12
drwxrwxr-x 3 bamccaig bamccaig 4096 2009-07-23 23:48 .
drwxrwxr-x 3 bamccaig bamccaig 4096 2009-07-23 23:48 ..
drwxrwxr-x 2 bamccaig bamccaig 4096 2009-07-23 23:48 baz

./include/bar/baz:
total 12
drwxrwxr-x 2 bamccaig bamccaig 4096 2009-07-23 23:48 .
drwxrwxr-x 3 bamccaig bamccaig 4096 2009-07-23 23:48 ..
-rw-rw-r-- 1 bamccaig bamccaig  189 2009-07-23 23:48 foo.hpp

./src:
total 12
drwxrwxr-x 3 bamccaig bamccaig 4096 2009-07-23 23:48 .
drwxrwxr-x 4 bamccaig bamccaig 4096 2009-07-23 23:48 ..
drwxrwxr-x 3 bamccaig bamccaig 4096 2009-07-23 23:48 bar

./src/bar:
total 12
drwxrwxr-x 3 bamccaig bamccaig 4096 2009-07-23 23:48 .
drwxrwxr-x 3 bamccaig bamccaig 4096 2009-07-23 23:48 ..
drwxrwxr-x 2 bamccaig bamccaig 4096 2009-07-23 23:48 baz

./src/bar/baz:
total 12
drwxrwxr-x 2 bamccaig bamccaig 4096 2009-07-23 23:48 .
drwxrwxr-x 3 bamccaig bamccaig 4096 2009-07-23 23:48 ..
-rw-rw-r-- 1 bamccaig bamccaig  140 2009-07-23 23:48 foo.cpp
[bamccaig@sephiroth temp]$ cat */*/*/*
#ifndef BAR_BAZ_FOO_HPP
    #define BAR_BAZ_FOO_HPP

namespace bar::baz
{
    class foo
    {
    public:
        foo(void);
        virtual ~foo(void);
    };
}

#endif //BAR_BAZ_FOO_HPP

#include &lt;bar/baz/foo.hpp&gt;

namespace bar::baz
{
    foo::foo(void)
    {
        // TODO
    }

    foo::~foo(void)
    {
        // TODO
    }
}

[bamccaig@sephiroth temp]$ </pre><p>
I probably find nested namespaces more structurally obvious than qualified ones, but that would require more manipulation of arguments so I just settled for QnD right now. <img src="http://www.allegro.cc/forums/smileys/tongue.gif" alt=":P" /></p><p><i>** EDIT **</i></p><p><b>Note:</b> One of the <tt>&lt;code&gt;</tt> lines (the highlighted line) apparently lost a backslash in the parsing stage. I think I fixed it by escaping it, but there could be more so I&#39;m going to <a href="http://www.allegro.cc/files/attachment/599141">attach the script</a> to make sure the code is available. <img src="http://www.allegro.cc/forums/smileys/lipsrsealed.gif" alt=":-X" />
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (bamccaig)</author>
		<pubDate>Fri, 24 Jul 2009 08:37:14 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Don&#39;t forget here documents.</p><div class="source-code snippet"><div class="inner"><pre><span class="p">#!/bin/sh</span>

base<span class="k3">=</span>$<span class="k2">(</span><a href="http://www.delorie.com/djgpp/doc/libc/libc_58.html" target="_blank">basename</a> $<span class="n">1</span> .c<span class="k2">)</span>

cat <span class="k3">&lt;</span><span class="k3">&lt;</span>EOF

<span class="p">#include "${base}.h"</span>

<span class="c">/* blah blah */</span>

EOF
</pre></div></div><p>
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Peter Wang)</author>
		<pubDate>Fri, 24 Jul 2009 10:01:04 +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/601030/822983#target">I</a> said:</div><div class="quote"><pre class="terminal">...
namespace bar::baz
{
...</pre><p>

I probably find nested namespaces more structurally obvious than qualified ones, but that would require more manipulation of arguments so I just settled for QnD right now. <img src="http://www.allegro.cc/forums/smileys/tongue.gif" alt=":P" /></p></div></div><p>
Hmmm, wait, maybe I&#39;m confusing C# syntax with C++ syntax. Is this legal in C++? <img src="http://www.allegro.cc/forums/smileys/huh.gif" alt="???" />
</p><div class="source-code snippet"><div class="inner"><pre><span class="k1">namespace</span> bar::baz
<span class="k2">{</span>
<span class="k2">}</span>
</pre></div></div><p>
It isn&#39;t compiling...
</p><pre class="terminal">[bamccaig@sephiroth temp]$ g++ -Iinclude src/bar/baz/foo.cpp -c
In file included from src/bar/baz/foo.cpp:2:
include/bar/baz/foo.hpp:4: error: expected `{&#39; before ‘::’ token
include/bar/baz/foo.hpp:4: error: function definition does not declare parameters
src/bar/baz/foo.cpp:3: error: expected `{&#39; before ‘::’ token
src/bar/baz/foo.cpp:3: error: function definition does not declare parameters
src/bar/baz/foo.cpp:14: error: expected `}&#39; at end of input
src/bar/baz/foo.cpp:14: error: expected `}&#39; at end of input
[bamccaig@sephiroth temp]$ </pre><p>
...and I can&#39;t find any tutorials or guides that suggest this syntax is supported. <img src="http://www.allegro.cc/forums/smileys/lipsrsealed.gif" alt=":-X" />
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (bamccaig)</author>
		<pubDate>Fri, 24 Jul 2009 10:12:14 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>The following is me trying to type out from scratch my &#39;mksfp&#39; (make single-file project) script:
</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="p">#!/bin/bash</span>
<span class="number">  2</span>
<span class="number">  3</span>cp ~<span class="k3">/</span>.mksfp<span class="k3">/</span>Makefile.template .<span class="k3">/</span>Makefile
<span class="number">  4</span>
<span class="number">  5</span>pcmd<span class="k3">=</span><span class="s">"'s/EXENAME/"</span>$<span class="n">1</span><span class="s">"/g;'"</span><span class="k2">;</span>
<span class="number">  6</span>
<span class="number">  7</span>perl <span class="k3">-</span>pie $pcmd Makefile
<span class="number">  8</span>
<span class="number">  9</span>cat <span class="k3">&gt;</span>main.c <span class="k3">&lt;</span><span class="k3">&lt;</span>EOF
<span class="number"> 10</span><span class="p">#include &lt;stdio.h&gt;</span>
<span class="number"> 11</span><span class="p">#include &lt;stdlib.h&gt;</span>
<span class="number"> 12</span>
<span class="number"> 13</span><span class="k1">int</span> main<span class="k2">(</span><span class="k1">int</span> argc, <span class="k1">char</span> <span class="k3">*</span><span class="k3">*</span>argv<span class="k2">)</span> <span class="k2">{</span>
<span class="number"> 14</span>  <span class="c">// insert program here</span>
<span class="number"> 15</span><span class="k2">}</span>
<span class="number"> 16</span>
<span class="number"> 17</span>EOF
</div></div><p>
The Makefile.template:
</p><div class="source-code snippet"><div class="inner"><pre>EXE<span class="k3">=</span> EXENAME
OFILES<span class="k3">=</span> main.o

$<span class="k2">(</span>EXE<span class="k2">)</span><span class="k2">:</span> $<span class="k2">(</span>OFILES<span class="k2">)</span>
        $<span class="k2">(</span>CC<span class="k2">)</span> <span class="k3">-</span>o $@ $<span class="k2">(</span>OFILES<span class="k2">)</span>

.o.c:
        $<span class="k2">(</span>CC<span class="k2">)</span> <span class="k3">-</span>c <span class="k3">-</span>Wall $<span class="k3">&lt;</span>

clean:
        <span class="k3">-</span>rm <span class="k3">*</span>.o $<span class="k2">(</span>EXE<span class="k2">)</span>
</pre></div></div><p>
I probably made some mistake or other typing it.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (alethiophile)</author>
		<pubDate>Fri, 24 Jul 2009 10:49:17 +0000</pubDate>
	</item>
</rss>
