<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Biplab's Blog &#187; Free/Open Source</title>
	<atom:link href="http://biplab.in/category/freeopen-source/feed/" rel="self" type="application/rss+xml" />
	<link>http://biplab.in</link>
	<description>About My Passion</description>
	<lastBuildDate>Sun, 26 Apr 2009 03:37:05 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>GCC-4.4.0-MinGW Binary</title>
		<link>http://biplab.in/2009/04/gcc-440-mingw-binary/</link>
		<comments>http://biplab.in/2009/04/gcc-440-mingw-binary/#comments</comments>
		<pubDate>Sun, 26 Apr 2009 03:31:22 +0000</pubDate>
		<dc:creator>biplab</dc:creator>
				<category><![CDATA[Free/Open Source]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[Software Development]]></category>

		<guid isPermaLink="false">http://biplab.in/?p=87</guid>
		<description><![CDATA[GCC-4.4.0 has been released recently. I have managed to compile it as a MinGW build and I want to share that with others. The package can be downloaded from the following links. Please download both the files and extract them to C:\MinGW folder. Then extract Win32API, MinGW Runtime, pthreads-win (If you want to use OpenMP) [...]]]></description>
			<content:encoded><![CDATA[<p>GCC-4.4.0 has been released recently. I have managed to compile it as a MinGW build and I want to share that with others. The package can be downloaded from the following links. Please download both the files and extract them to <tt>C:\MinGW</tt> folder. Then extract Win32API, MinGW Runtime, pthreads-win (If you want to use OpenMP) package to the same folder. Now you&#8217;ll be able to use gcc-4.4 on Windows.</p>
<p>Download Links:<span id="more-87"></span></p>
<p><a href="http://files.filefront.com/binutils+2191+bintarbz2/;13651013;/fileinfo.html" target="_blank">http://files.filefront.com/binutils+2191+bintarbz2/;13651013;/fileinfo.html</a></p>
<p><a href="http://files.filefront.com/MinGW+gcc+440+bkm+1tarbz2/;13650648;/fileinfo.html" target="_blank">http://files.filefront.com/MinGW+gcc+440+bkm+1tarbz2/;13650648;/fileinfo.html</a></p>
<p>Package Details:</p>
<ol>
<li>Cross-compiled binary from vanilla GCC source.</li>
<li>Only one patch was applied to fix GCC build errors. No other patch has been applied to GCC source.</li>
<li>Binutils has also been cross-compiled from vanilla BinUtils (Release 2.19.1) package</li>
<li>I&#8217;ve put my Blog url and my initial in the compiled binary to differentiate it from other builds.</li>
<li><em>gcc</em>,<em> g++</em> and <em>gfortran</em> binary are available. Other language compilers are not included. They are mixed together as I don&#8217;t know how to create individual packages.</li>
</ol>
<p><br class="spacer_" /></p>
<p><strong>Important Notes</strong>:</p>
<ol>
<li>This is completely <strong>Unsupported binary</strong> as I&#8217;ve little spare time to support it. So <em>use it at your own risk</em>.</li>
<li>I did few tests by compiling some of my projects. However do note that no bootstrapping and make check was done</li>
<li>Notably Code::Blocks source builds with this gcc binary without any issues (but with some warning messages).</li>
</ol>
<p><br class="spacer_" /></p>
<p>Patch:<br />
 Attached patch was applied to complete the build. But it&#8217;s side-effects are not explored (hope there isn&#8217;t any). Following patch is required if you are cross-compiling for MinGW from Linux.</p>
<p><a href="http://biplab.in/wp-content/uploads/2009/04/gcc.patch">gcc.patch</a></p>
<p>GCC Source: <a href="ftp://ftp.gnu.org/gnu/gcc/gcc-4.4.0/gcc-4.4.0.tar.bz2" target="_blank">ftp://ftp.gnu.org/gnu/gcc/gcc-4.4.0/gcc-4.4.0.tar.bz2</a></p>
<p>Binutils Source: <a href="ftp://ftp.gnu.org/gnu/binutils/binutils-2.19.1.tar.bz2" target="_blank">ftp://ftp.gnu.org/gnu/binutils/binutils-2.19.1.tar.bz2</a></p>
<p>Or alternatively you can download above sources from any GNU mirrors.</p>
<p>Happy Coding!</p>
]]></content:encoded>
			<wfw:commentRss>http://biplab.in/2009/04/gcc-440-mingw-binary/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Creating Portable Code::Blocks: Part 2</title>
		<link>http://biplab.in/2009/04/creating-portable-codeblocks-part-2/</link>
		<comments>http://biplab.in/2009/04/creating-portable-codeblocks-part-2/#comments</comments>
		<pubDate>Mon, 13 Apr 2009 15:07:41 +0000</pubDate>
		<dc:creator>biplab</dc:creator>
				<category><![CDATA[C++]]></category>
		<category><![CDATA[Code::Blocks]]></category>
		<category><![CDATA[Free/Open Source]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[Software Development]]></category>

		<guid isPermaLink="false">http://biplab.in/?p=83</guid>
		<description><![CDATA[To update all I have committed patch in trunk (in revision 5334). It should be available with the next nightly. To run Code::Blocks portably you can write a batch file, set APPDATA variable to any directory you want and then launch Code::Blocks. Alternatively you can download the CbLauncher v0.1.1 from my blog to run Code::Blocks [...]]]></description>
			<content:encoded><![CDATA[<p>To update all I have committed patch in trunk (in revision 5334). It should be available with the next nightly.</p>
<p>To run Code::Blocks portably you can write a batch file, set <strong>APPDATA</strong> variable to any directory you want and then launch Code::Blocks.</p>
<p>Alternatively you can download the <strong>CbLauncher v0.1.1</strong> from my blog to run Code::Blocks portably.</p>
<p>Steps to use Cblauncher:<span id="more-83"></span></p>
<ol>
<li>Download a nightly build with revision > 5334.</li>
<li>Extract them to a folder.</li>
<li>Extract CbLauncher.exe to  same folder. After extraction CbLauncher.exe and codeblocks.exe should be in same folder.</li>
<li>Now double click on on CbLauncher.exe file to run Code::Blocks in a portable manner.</li>
</ol>
<p>I&#8217;ve uploaded a binary package to the following link to try out Code::Blocks in a portable manner.</p>
<p><a href="http://files.filefront.com/Portable+CB+5526+bin7z/;13582845;/fileinfo.html" target="_blank">http://files.filefront.com/Portable+CB+5526+bin7z/;13582845;/fileinfo.html</a></p>
<p>CbLauncher package can be downloaded from this post&#8217;s attachment.</p>
<p><br class="spacer_" /></p>
<p>Known Issues:</p>
<ol>
<li>Code::Blocks still creates an empty folder inside USERPROFILE folder.</li>
</ol>
<p>Download link: <a href="http://biplab.in/wp-content/uploads/2009/04/cblauncher_v_0_1_1.7z">cblauncher_v_0_1_1</a></p>
]]></content:encoded>
			<wfw:commentRss>http://biplab.in/2009/04/creating-portable-codeblocks-part-2/feed/</wfw:commentRss>
		<slash:comments>15</slash:comments>
		</item>
		<item>
		<title>Creating Portable Version of Code::Blocks</title>
		<link>http://biplab.in/2009/04/creating-portable-version-of-codeblocks/</link>
		<comments>http://biplab.in/2009/04/creating-portable-version-of-codeblocks/#comments</comments>
		<pubDate>Sun, 05 Apr 2009 11:54:25 +0000</pubDate>
		<dc:creator>Biplab</dc:creator>
				<category><![CDATA[C++]]></category>
		<category><![CDATA[Code::Blocks]]></category>
		<category><![CDATA[Free/Open Source]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[Software Development]]></category>

		<guid isPermaLink="false">http://biplab.in/?p=62</guid>
		<description><![CDATA[Recently I was irritated by the fact that Code::Blocks is not truly portable on Windows. Usually I keep two versions of Code::Blocks in my PC. One is the last released nightly and the other one is the one that I build from trunk. I use last released nightly to write code. However as Code::Blocks is [...]]]></description>
			<content:encoded><![CDATA[<p>Recently I was irritated by the fact that Code::Blocks is not truly portable on Windows. Usually I keep two versions of Code::Blocks in my PC. One is the last released nightly and the other one is the one that I build from trunk. I use last released nightly to write code. However as Code::Blocks is not truly portable, these two versions of Code::Blocks share same configuration file.  Sometimes I run my newly built Code::Blocks from trunk, it crashes and corrupts my customised configuration file. And this irritates me a lot.</p>
<p>Other than this, you really can&#8217;t copy your configuration folder in a portable drive and expect entire Code::Blocks installation to behave as a truly portable software. There is one way; using personality feature of Code::Blocks. but that solves only one half of the problem. Yes, this makes your Code::Blocks portable. But your plugins are not! They still read their own settings from the default folder which is <strong>%APPDATA%\CodeBlocks</strong> folder.<span id="more-62"></span></p>
<p>So I started to investigate it. To give you a peek of Code::Blocks internals, ConfigManager uses <tt>wxStandardPathsBase::Get().GetUserConfigDir()</tt> to determine it&#8217;s configuration directory. wxWidgets internally uses <tt>SHGetFolderPath()</tt> function to resolve this call.<strong> </strong>This function call has higher precedence over environment variables. Thus if you try to set APPDATA before launching Code::Blocks it has no effects.</p>
<p>Now coming to a solution (you may call it a hack, too!), following patch fixes this issue. It reads APPDATA Environment variable first. If it fails to do so, it falls back to wxWidgets based implementation. In this way you can temporarily set APPDATA variable before launching Code::Blocks. You can point to any directory using APPDATA variable and Code::Blocks will use it to save settings.</p>

<div class="wp_syntax"><div class="code"><pre class="cpp" style="font-family:monospace;">Index<span style="color: #008080;">:</span> src<span style="color: #000040;">/</span>sdk<span style="color: #000040;">/</span>configmanager.<span style="color: #007788;">cpp</span>
<span style="color: #000080;">===================================================================</span>
<span style="color: #000040;">---</span> src<span style="color: #000040;">/</span>sdk<span style="color: #000040;">/</span>configmanager.<span style="color: #007788;">cpp</span>	<span style="color: #008000;">&#40;</span>revision <span style="color: #0000dd;">5519</span><span style="color: #008000;">&#41;</span>
<span style="color: #000040;">+++</span> src<span style="color: #000040;">/</span>sdk<span style="color: #000040;">/</span>configmanager.<span style="color: #007788;">cpp</span>	<span style="color: #008000;">&#40;</span>working copy<span style="color: #008000;">&#41;</span>
@@ <span style="color: #000040;">-</span><span style="color: #0000dd;">60</span>,<span style="color: #0000dd;">6</span> <span style="color: #000040;">+</span><span style="color: #0000dd;">60</span>,<span style="color: #0000dd;">23</span> @@
 wxString ConfigManager<span style="color: #008080;">::</span><span style="color: #007788;">temp_folder</span><span style="color: #008080;">;</span>
 <span style="color: #0000ff;">bool</span> ConfigManager<span style="color: #008080;">::</span><span style="color: #007788;">relo</span> <span style="color: #000080;">=</span> <span style="color: #0000dd;">0</span><span style="color: #008080;">;</span>
&nbsp;
<span style="color: #000040;">+</span><span style="color: #339900;">#ifdef __WINDOWS__</span>
<span style="color: #000040;">+</span>wxString GetPortableConfigDir<span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span>
<span style="color: #000040;">+</span><span style="color: #008000;">&#123;</span>
<span style="color: #000040;">+</span>    DWORD bufLen <span style="color: #000080;">=</span> <span style="color: #0000dd;">32780</span><span style="color: #008080;">;</span>
<span style="color: #000040;">+</span>    TCHAR buffer<span style="color: #008000;">&#91;</span><span style="color: #0000dd;">32780</span><span style="color: #008000;">&#93;</span><span style="color: #008080;">;</span>
<span style="color: #000040;">+</span>    <span style="color: #0000ff;">int</span> ret <span style="color: #000080;">=</span> GetEnvironmentVariable<span style="color: #008000;">&#40;</span>_T<span style="color: #008000;">&#40;</span><span style="color: #FF0000;">&quot;APPDATA&quot;</span><span style="color: #008000;">&#41;</span>, buffer, bufLen<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
<span style="color: #000040;">+</span>    <span style="color: #0000ff;">if</span> <span style="color: #008000;">&#40;</span>ret <span style="color: #000080;">==</span> <span style="color: #0000dd;">0</span><span style="color: #008000;">&#41;</span>
<span style="color: #000040;">+</span>    <span style="color: #008000;">&#123;</span>
<span style="color: #000040;">+</span>        <span style="color: #0000ff;">return</span> wxStandardPathsBase<span style="color: #008080;">::</span><span style="color: #007788;">Get</span><span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span>.<span style="color: #007788;">GetUserDataDir</span><span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
<span style="color: #000040;">+</span>    <span style="color: #008000;">&#125;</span>
<span style="color: #000040;">+</span>    <span style="color: #0000ff;">else</span>
<span style="color: #000040;">+</span>    <span style="color: #008000;">&#123;</span>
<span style="color: #000040;">+</span>        <span style="color: #0000ff;">return</span> wxString<span style="color: #008080;">::</span><span style="color: #007788;">Format</span><span style="color: #008000;">&#40;</span>_T<span style="color: #008000;">&#40;</span><span style="color: #FF0000;">&quot;%s<span style="color: #000099; font-weight: bold;">\\</span>codeblocks&quot;</span><span style="color: #008000;">&#41;</span>, buffer<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
<span style="color: #000040;">+</span>    <span style="color: #008000;">&#125;</span>
<span style="color: #000040;">+</span><span style="color: #008000;">&#125;</span>
<span style="color: #000040;">+</span><span style="color: #339900;">#endif</span>
<span style="color: #000040;">+</span>
 <span style="color: #0000ff;">namespace</span> CfgMgrConsts
 <span style="color: #008000;">&#123;</span>
     <span style="color: #0000ff;">const</span> wxString app_path<span style="color: #008000;">&#40;</span>_T<span style="color: #008000;">&#40;</span><span style="color: #FF0000;">&quot;app_path&quot;</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
@@ <span style="color: #000040;">-</span><span style="color: #0000dd;">172</span>,<span style="color: #0000dd;">7</span> <span style="color: #000040;">+</span><span style="color: #0000dd;">189</span>,<span style="color: #0000dd;">11</span> @@
&nbsp;
     <span style="color: #0000ff;">if</span><span style="color: #008000;">&#40;</span>cfg.<span style="color: #007788;">IsEmpty</span><span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">&#41;</span>
     <span style="color: #008000;">&#123;</span>
<span style="color: #000040;">+</span>        <span style="color: #339900;">#ifdef __WINDOWS__</span>
<span style="color: #000040;">+</span>        cfg <span style="color: #000080;">=</span> GetPortableConfigDir<span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span> <span style="color: #000040;">+</span> wxFILE_SEP_PATH <span style="color: #000040;">+</span> personality <span style="color: #000040;">+</span> _T<span style="color: #008000;">&#40;</span><span style="color: #FF0000;">&quot;.conf&quot;</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
<span style="color: #000040;">+</span>        <span style="color: #339900;">#else</span>
         cfg <span style="color: #000080;">=</span> wxStandardPathsBase<span style="color: #008080;">::</span><span style="color: #007788;">Get</span><span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span>.<span style="color: #007788;">GetUserDataDir</span><span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span> <span style="color: #000040;">+</span> wxFILE_SEP_PATH <span style="color: #000040;">+</span> personality <span style="color: #000040;">+</span> _T<span style="color: #008000;">&#40;</span><span style="color: #FF0000;">&quot;.conf&quot;</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
<span style="color: #000040;">+</span>        <span style="color: #339900;">#endif</span>
         doc <span style="color: #000080;">=</span> <span style="color: #0000dd;">new</span> TiXmlDocument<span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
         doc<span style="color: #000040;">-</span><span style="color: #000040;">&amp;</span>gt<span style="color: #008080;">;</span>InsertEndChild<span style="color: #008000;">&#40;</span>TiXmlDeclaration<span style="color: #008000;">&#40;</span><span style="color: #FF0000;">&quot;1.0&quot;</span>, <span style="color: #FF0000;">&quot;UTF-8&quot;</span>, <span style="color: #FF0000;">&quot;yes&quot;</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
         doc<span style="color: #000040;">-</span><span style="color: #000040;">&amp;</span>gt<span style="color: #008080;">;</span>InsertEndChild<span style="color: #008000;">&#40;</span>TiXmlElement<span style="color: #008000;">&#40;</span><span style="color: #FF0000;">&quot;CodeBlocksConfig&quot;</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
@@ <span style="color: #000040;">-</span><span style="color: #0000dd;">187</span>,<span style="color: #0000dd;">7</span> <span style="color: #000040;">+</span><span style="color: #0000dd;">208</span>,<span style="color: #0000dd;">11</span> @@
 <span style="color: #008000;">&#123;</span>
     wxPathList searchPaths<span style="color: #008080;">;</span>
&nbsp;
<span style="color: #000040;">+</span><span style="color: #339900;">#ifdef __WINDOWS__</span>
<span style="color: #000040;">+</span>    wxString u<span style="color: #008000;">&#40;</span>GetPortableConfigDir<span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span> <span style="color: #000040;">+</span> wxFILE_SEP_PATH <span style="color: #000040;">+</span> filename<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
<span style="color: #000040;">+</span><span style="color: #339900;">#else</span>
     wxString u<span style="color: #008000;">&#40;</span>wxStandardPathsBase<span style="color: #008080;">::</span><span style="color: #007788;">Get</span><span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span>.<span style="color: #007788;">GetUserDataDir</span><span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span> <span style="color: #000040;">+</span> wxFILE_SEP_PATH <span style="color: #000040;">+</span> filename<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
<span style="color: #000040;">+</span><span style="color: #339900;">#endif</span>
     wxString e<span style="color: #008000;">&#40;</span><span style="color: #008080;">::</span><span style="color: #007788;">DetermineExecutablePath</span><span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span> <span style="color: #000040;">+</span> wxFILE_SEP_PATH <span style="color: #000040;">+</span>filename<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
&nbsp;
     <span style="color: #0000ff;">if</span><span style="color: #008000;">&#40;</span><span style="color: #008080;">::</span><span style="color: #007788;">wxFileExists</span><span style="color: #008000;">&#40;</span>u<span style="color: #008000;">&#41;</span><span style="color: #008000;">&#41;</span>
@@ <span style="color: #000040;">-</span><span style="color: #0000dd;">1369</span>,<span style="color: #0000dd;">7</span> <span style="color: #000040;">+</span><span style="color: #0000dd;">1394</span>,<span style="color: #0000dd;">11</span> @@
&nbsp;
 <span style="color: #0000ff;">void</span> ConfigManager<span style="color: #008080;">::</span><span style="color: #007788;">InitPaths</span><span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span>
 <span style="color: #008000;">&#123;</span>
<span style="color: #000040;">+</span><span style="color: #339900;">#ifdef __WINDOWS__</span>
<span style="color: #000040;">+</span>    ConfigManager<span style="color: #008080;">::</span><span style="color: #007788;">config_folder</span> <span style="color: #000080;">=</span> GetPortableConfigDir<span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
<span style="color: #000040;">+</span><span style="color: #339900;">#else</span>
     ConfigManager<span style="color: #008080;">::</span><span style="color: #007788;">config_folder</span> <span style="color: #000080;">=</span> wxStandardPathsBase<span style="color: #008080;">::</span><span style="color: #007788;">Get</span><span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span>.<span style="color: #007788;">GetUserDataDir</span><span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
<span style="color: #000040;">+</span><span style="color: #339900;">#endif</span>
     ConfigManager<span style="color: #008080;">::</span><span style="color: #007788;">home_folder</span> <span style="color: #000080;">=</span> wxStandardPathsBase<span style="color: #008080;">::</span><span style="color: #007788;">Get</span><span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span>.<span style="color: #007788;">GetUserConfigDir</span><span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
     ConfigManager<span style="color: #008080;">::</span><span style="color: #007788;">app_path</span> <span style="color: #000080;">=</span> <span style="color: #008080;">::</span><span style="color: #007788;">DetermineExecutablePath</span><span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
     wxString res_path <span style="color: #000080;">=</span> <span style="color: #008080;">::</span><span style="color: #007788;">DetermineResourcesPath</span><span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span></pre></div></div>

<p>So far the result is good enough. Core code::Blocks is portable. I&#8217;ve checked few plugins. They are now portable too. I&#8217;ve written a small launcher. This launcher will run Code::Blocks from the local directory. An AppData folder will be created which Code::Blocks will use to save it&#8217;s settings.</p>
<p>Please note following points.</p>
<ol>
<li>Patch is meant for Windows only.</li>
<li>Patch is made against latest svn revision. Patch may not work with 8.02 release.</li>
<li>A launcher is made available to launch Code::Blocks in a portable way.</li>
</ol>
<p>Portable Code::Blocks Launcher Source &amp; Binary Download link: <a rel="attachment wp-att-71" href="http://biplab.in/2009/04/creating-portable-version-of-codeblocks/cblauncher-01/"></a><a href="http://biplab.in/wp-content/uploads/2009/04/cblauncher-v0_1.7z">cblauncher-v0_1</a></p>
<p>Have fun!</p>
]]></content:encoded>
			<wfw:commentRss>http://biplab.in/2009/04/creating-portable-version-of-codeblocks/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>File permission bug of C::B</title>
		<link>http://biplab.in/2008/06/file-permission-bug-of-cb/</link>
		<comments>http://biplab.in/2008/06/file-permission-bug-of-cb/#comments</comments>
		<pubDate>Sun, 22 Jun 2008 16:11:07 +0000</pubDate>
		<dc:creator>Biplab</dc:creator>
				<category><![CDATA[C++]]></category>
		<category><![CDATA[Code::Blocks]]></category>
		<category><![CDATA[Free/Open Source]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[Software Development]]></category>
		<category><![CDATA[wxWidgets]]></category>

		<guid isPermaLink="false">http://biplab.in/?p=58</guid>
		<description><![CDATA[A nasty bug was discovered by one of our user couple of months ago. The bug was affecting our last stable release as well as our latest nightly. The bug was due to the way a file was being saved by C::B to avoid corrupting the existing file. C::B used to write the new contents [...]]]></description>
			<content:encoded><![CDATA[<p>A nasty bug was discovered by one of our user couple of months ago. The bug was affecting our last stable release as well as our latest nightly.</p>
<p>The bug was due to the way a file was being saved by C::B to avoid corrupting the existing file. C::B used to write the new contents to a temporary file before deleting the old one and then renaming the temp file to new file. But this created a bug as the temporary file may/may not get the file permission attributes of the original.<span id="more-58"></span></p>
<p>Following patch has been committed into latest svn trunk which fixes this issue.</p>

<div class="wp_syntax"><div class="code"><pre class="cpp" style="font-family:monospace;"><span style="color: #000040;">---</span> <span style="color: #000040;">/</span>trunk<span style="color: #000040;">/</span>src<span style="color: #000040;">/</span>sdk<span style="color: #000040;">/</span>filemanager.<span style="color: #007788;">cpp</span>	<span style="color: #0000dd;">2008</span><span style="color: #000040;">/</span><span style="color: #208080;">06</span><span style="color: #000040;">/</span><span style="color: #0000dd;">22</span> <span style="color: #0000dd;">11</span><span style="color: #008080;">:</span><span style="color: #208080;">05</span><span style="color: #008080;">:</span><span style="color: #0000dd;">11</span>	<span style="color: #0000dd;">5103</span>
<span style="color: #000040;">+++</span> trunk<span style="color: #000040;">/</span>src<span style="color: #000040;">/</span>sdk<span style="color: #000040;">/</span>filemanager.<span style="color: #007788;">cpp</span>	<span style="color: #0000dd;">2008</span><span style="color: #000040;">/</span><span style="color: #208080;">06</span><span style="color: #000040;">/</span><span style="color: #0000dd;">22</span> <span style="color: #0000dd;">15</span><span style="color: #008080;">:</span><span style="color: #0000dd;">57</span><span style="color: #008080;">:</span><span style="color:#800080;">09</span>	<span style="color: #0000dd;">5104</span>
@@ <span style="color: #000040;">-</span><span style="color: #0000dd;">58</span>,<span style="color: #0000dd;">7</span> <span style="color: #000040;">+</span><span style="color: #0000dd;">58</span>,<span style="color: #0000dd;">7</span> @@
     len <span style="color: #000080;">=</span> file.<span style="color: #007788;">Length</span><span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
&nbsp;
     data <span style="color: #000080;">=</span> <span style="color: #0000dd;">new</span> <span style="color: #0000ff;">char</span><span style="color: #008000;">&#91;</span>len<span style="color: #000040;">+</span><span style="color: #0000dd;">4</span><span style="color: #008000;">&#93;</span><span style="color: #008080;">;</span>
<span style="color: #000040;">-</span>	<span style="color: #0000ff;">char</span> <span style="color: #000040;">*</span>dp <span style="color: #000080;">=</span> data <span style="color: #000040;">+</span> len<span style="color: #008080;">;</span>
<span style="color: #000040;">+</span>    <span style="color: #0000ff;">char</span> <span style="color: #000040;">*</span>dp <span style="color: #000080;">=</span> data <span style="color: #000040;">+</span> len<span style="color: #008080;">;</span>
     <span style="color: #000040;">*</span>dp<span style="color: #000040;">++</span> <span style="color: #000080;">=</span> <span style="color: #FF0000;">'<span style="color: #006699; font-weight: bold;">\0</span>'</span><span style="color: #008080;">;</span>
     <span style="color: #000040;">*</span>dp<span style="color: #000040;">++</span> <span style="color: #000080;">=</span> <span style="color: #FF0000;">'<span style="color: #006699; font-weight: bold;">\0</span>'</span><span style="color: #008080;">;</span>
     <span style="color: #000040;">*</span>dp<span style="color: #000040;">++</span> <span style="color: #000080;">=</span> <span style="color: #FF0000;">'<span style="color: #006699; font-weight: bold;">\0</span>'</span><span style="color: #008080;">;</span>
@@ <span style="color: #000040;">-</span><span style="color: #0000dd;">100</span>,<span style="color: #0000dd;">7</span> <span style="color: #000040;">+</span><span style="color: #0000dd;">100</span>,<span style="color: #0000dd;">7</span> @@
&nbsp;
     data <span style="color: #000080;">=</span> buffer.<span style="color: #007788;">Data</span><span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
     len <span style="color: #000080;">=</span> buffer.<span style="color: #007788;">Length</span><span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
<span style="color: #000040;">-</span>	buffer.<span style="color: #007788;">Append</span><span style="color: #008000;">&#40;</span><span style="color: #FF0000;">&quot;<span style="color: #006699; font-weight: bold;">\0</span><span style="color: #006699; font-weight: bold;">\0</span><span style="color: #006699; font-weight: bold;">\0</span><span style="color: #006699; font-weight: bold;">\0</span>&quot;</span>, <span style="color: #0000dd;">4</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
<span style="color: #000040;">+</span>    buffer.<span style="color: #007788;">Append</span><span style="color: #008000;">&#40;</span><span style="color: #FF0000;">&quot;<span style="color: #006699; font-weight: bold;">\0</span><span style="color: #006699; font-weight: bold;">\0</span><span style="color: #006699; font-weight: bold;">\0</span><span style="color: #006699; font-weight: bold;">\0</span>&quot;</span>, <span style="color: #0000dd;">4</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
     Ready<span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
 <span style="color: #008000;">&#125;</span>
&nbsp;
@@ <span style="color: #000040;">-</span><span style="color: #0000dd;">274</span>,<span style="color: #0000dd;">19</span> <span style="color: #000040;">+</span><span style="color: #0000dd;">274</span>,<span style="color: #0000dd;">40</span> @@
     wxString tempName<span style="color: #008000;">&#40;</span>name <span style="color: #000040;">+</span> _T<span style="color: #008000;">&#40;</span><span style="color: #FF0000;">&quot;.cbTemp&quot;</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
     <span style="color: #0000ff;">do</span>
     <span style="color: #008000;">&#123;</span>
<span style="color: #000040;">-</span>        wxFile f<span style="color: #008000;">&#40;</span>tempName, wxFile<span style="color: #008080;">::</span><span style="color: #007788;">write</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
<span style="color: #000040;">-</span>        <span style="color: #0000ff;">if</span><span style="color: #008000;">&#40;</span><span style="color: #000040;">!</span>f.<span style="color: #007788;">IsOpened</span><span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">&#41;</span>
<span style="color: #000040;">+</span>        <span style="color: #0000ff;">if</span><span style="color: #008000;">&#40;</span> <span style="color: #000040;">!</span>wxCopyFile<span style="color: #008000;">&#40;</span>name, tempName<span style="color: #008000;">&#41;</span> <span style="color: #008000;">&#41;</span>
<span style="color: #000040;">+</span>        <span style="color: #008000;">&#123;</span>
             <span style="color: #0000ff;">return</span> <span style="color: #0000ff;">false</span><span style="color: #008080;">;</span>
<span style="color: #000040;">+</span>        <span style="color: #008000;">&#125;</span>
&nbsp;
<span style="color: #000040;">+</span>        wxFile f<span style="color: #008000;">&#40;</span>name, wxFile<span style="color: #008080;">::</span><span style="color: #007788;">write</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
<span style="color: #000040;">+</span>        <span style="color: #0000ff;">if</span> <span style="color: #008000;">&#40;</span> <span style="color: #000040;">!</span>f.<span style="color: #007788;">IsOpened</span><span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span> <span style="color: #008000;">&#41;</span>
<span style="color: #000040;">+</span>        <span style="color: #008000;">&#123;</span>
<span style="color: #000040;">+</span>            <span style="color: #0000ff;">return</span> <span style="color: #0000ff;">false</span><span style="color: #008080;">;</span>
<span style="color: #000040;">+</span>        <span style="color: #008000;">&#125;</span>
         <span style="color: #0000ff;">if</span><span style="color: #008000;">&#40;</span>f.<span style="color: #007788;">Write</span><span style="color: #008000;">&#40;</span>data, len<span style="color: #008000;">&#41;</span> <span style="color: #000040;">!</span><span style="color: #000080;">=</span> len<span style="color: #008000;">&#41;</span>
         <span style="color: #008000;">&#123;</span>
             f.<span style="color: #007788;">Close</span><span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
<span style="color: #000040;">-</span>            wxRemoveFile<span style="color: #008000;">&#40;</span>tempName<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
<span style="color: #000040;">+</span>            <span style="color: #666666;">// Keep the backup file as the original file has been destroyed</span>
<span style="color: #000040;">+</span>            <span style="color: #666666;">//wxRemoveFile(tempName);</span>
             <span style="color: #0000ff;">return</span> <span style="color: #0000ff;">false</span><span style="color: #008080;">;</span>
         <span style="color: #008000;">&#125;</span>
<span style="color: #000040;">+</span>
<span style="color: #000040;">+</span>        f.<span style="color: #007788;">Close</span><span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
<span style="color: #000040;">+</span>
     <span style="color: #008000;">&#125;</span><span style="color: #0000ff;">while</span><span style="color: #008000;">&#40;</span><span style="color: #0000ff;">false</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
&nbsp;
<span style="color: #000040;">-</span>    <span style="color: #0000ff;">return</span> ReplaceFile<span style="color: #008000;">&#40;</span>name, tempName<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
<span style="color: #000040;">+</span>    <span style="color: #0000ff;">if</span> <span style="color: #008000;">&#40;</span>Manager<span style="color: #008080;">::</span><span style="color: #007788;">IsAppShuttingDown</span><span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">&#41;</span>
<span style="color: #000040;">+</span>    <span style="color: #008000;">&#123;</span>
<span style="color: #000040;">+</span>        <span style="color: #666666;">// app shut down, forget delayed deletion</span>
<span style="color: #000040;">+</span>        wxRemoveFile<span style="color: #008000;">&#40;</span>tempName<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
<span style="color: #000040;">+</span>    <span style="color: #008000;">&#125;</span>
<span style="color: #000040;">+</span>    <span style="color: #0000ff;">else</span>
<span style="color: #000040;">+</span>    <span style="color: #008000;">&#123;</span>
<span style="color: #000040;">+</span>        <span style="color: #666666;">// issue a delayed deletion of the back'd up (old) file</span>
<span style="color: #000040;">+</span>        delayedDeleteThread.<span style="color: #007788;">Queue</span><span style="color: #008000;">&#40;</span><span style="color: #0000dd;">new</span> DelayedDelete<span style="color: #008000;">&#40;</span>tempName<span style="color: #008000;">&#41;</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
<span style="color: #000040;">+</span>    <span style="color: #008000;">&#125;</span>
<span style="color: #000040;">+</span>
<span style="color: #000040;">+</span>    <span style="color: #0000ff;">return</span> <span style="color: #0000ff;">true</span><span style="color: #008080;">;</span>
 <span style="color: #008000;">&#125;</span>
&nbsp;
 <span style="color: #0000ff;">bool</span> FileManager<span style="color: #008080;">::</span><span style="color: #007788;">Save</span><span style="color: #008000;">&#40;</span><span style="color: #0000ff;">const</span> wxString<span style="color: #000040;">&amp;</span>amp<span style="color: #008080;">;</span> name, <span style="color: #0000ff;">const</span> wxString<span style="color: #000040;">&amp;</span>amp<span style="color: #008080;">;</span> data, wxFontEncoding encoding, <span style="color: #0000ff;">bool</span> bom<span style="color: #008000;">&#41;</span>
@@ <span style="color: #000040;">-</span><span style="color: #0000dd;">309</span>,<span style="color: #0000dd;">19</span> <span style="color: #000040;">+</span><span style="color: #0000dd;">330</span>,<span style="color: #0000dd;">39</span> @@
     wxString tempName<span style="color: #008000;">&#40;</span>name <span style="color: #000040;">+</span> _T<span style="color: #008000;">&#40;</span><span style="color: #FF0000;">&quot;.cbTemp&quot;</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
     <span style="color: #0000ff;">do</span>
     <span style="color: #008000;">&#123;</span>
<span style="color: #000040;">-</span>        wxFile f<span style="color: #008000;">&#40;</span>tempName, wxFile<span style="color: #008080;">::</span><span style="color: #007788;">write</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
<span style="color: #000040;">-</span>        <span style="color: #0000ff;">if</span><span style="color: #008000;">&#40;</span><span style="color: #000040;">!</span>f.<span style="color: #007788;">IsOpened</span><span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">&#41;</span>
<span style="color: #000040;">+</span>        <span style="color: #0000ff;">if</span> <span style="color: #008000;">&#40;</span><span style="color: #000040;">!</span>wxCopyFile<span style="color: #008000;">&#40;</span>name, tempName<span style="color: #008000;">&#41;</span><span style="color: #008000;">&#41;</span>
<span style="color: #000040;">+</span>        <span style="color: #008000;">&#123;</span>
             <span style="color: #0000ff;">return</span> <span style="color: #0000ff;">false</span><span style="color: #008080;">;</span>
<span style="color: #000040;">+</span>        <span style="color: #008000;">&#125;</span>
&nbsp;
<span style="color: #000040;">+</span>        wxFile f<span style="color: #008000;">&#40;</span>name, wxFile<span style="color: #008080;">::</span><span style="color: #007788;">write</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
<span style="color: #000040;">+</span>        <span style="color: #0000ff;">if</span> <span style="color: #008000;">&#40;</span> <span style="color: #000040;">!</span>f.<span style="color: #007788;">IsOpened</span><span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span> <span style="color: #008000;">&#41;</span>
<span style="color: #000040;">+</span>        <span style="color: #008000;">&#123;</span>
<span style="color: #000040;">+</span>            <span style="color: #0000ff;">return</span> <span style="color: #0000ff;">false</span><span style="color: #008080;">;</span>
<span style="color: #000040;">+</span>        <span style="color: #008000;">&#125;</span>
         <span style="color: #0000ff;">if</span><span style="color: #008000;">&#40;</span>WriteWxStringToFile<span style="color: #008000;">&#40;</span>f, data, encoding, bom<span style="color: #008000;">&#41;</span> <span style="color: #000080;">==</span> <span style="color: #0000ff;">false</span><span style="color: #008000;">&#41;</span>
         <span style="color: #008000;">&#123;</span>
             f.<span style="color: #007788;">Close</span><span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
<span style="color: #000040;">-</span>            wxRemoveFile<span style="color: #008000;">&#40;</span>tempName<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
<span style="color: #000040;">+</span>            <span style="color: #666666;">// Keep the backup file as the original file has been destroyed</span>
<span style="color: #000040;">+</span>            <span style="color: #666666;">//wxRemoveFile(tempName);</span>
             <span style="color: #0000ff;">return</span> <span style="color: #0000ff;">false</span><span style="color: #008080;">;</span>
         <span style="color: #008000;">&#125;</span>
<span style="color: #000040;">+</span>
<span style="color: #000040;">+</span>        f.<span style="color: #007788;">Close</span><span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
<span style="color: #000040;">+</span>
     <span style="color: #008000;">&#125;</span><span style="color: #0000ff;">while</span><span style="color: #008000;">&#40;</span><span style="color: #0000ff;">false</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
&nbsp;
<span style="color: #000040;">-</span>    <span style="color: #0000ff;">return</span> ReplaceFile<span style="color: #008000;">&#40;</span>name, tempName<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
<span style="color: #000040;">+</span>    <span style="color: #0000ff;">if</span> <span style="color: #008000;">&#40;</span>Manager<span style="color: #008080;">::</span><span style="color: #007788;">IsAppShuttingDown</span><span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">&#41;</span>
<span style="color: #000040;">+</span>    <span style="color: #008000;">&#123;</span>
<span style="color: #000040;">+</span>        <span style="color: #666666;">// app shut down, forget delayed deletion</span>
<span style="color: #000040;">+</span>        wxRemoveFile<span style="color: #008000;">&#40;</span>tempName<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
<span style="color: #000040;">+</span>    <span style="color: #008000;">&#125;</span>
<span style="color: #000040;">+</span>    <span style="color: #0000ff;">else</span>
<span style="color: #000040;">+</span>    <span style="color: #008000;">&#123;</span>
<span style="color: #000040;">+</span>        <span style="color: #666666;">// issue a delayed deletion of the back'd up (old) file</span>
<span style="color: #000040;">+</span>        delayedDeleteThread.<span style="color: #007788;">Queue</span><span style="color: #008000;">&#40;</span><span style="color: #0000dd;">new</span> DelayedDelete<span style="color: #008000;">&#40;</span>tempName<span style="color: #008000;">&#41;</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
<span style="color: #000040;">+</span>    <span style="color: #008000;">&#125;</span>
<span style="color: #000040;">+</span>    <span style="color: #0000ff;">return</span> <span style="color: #0000ff;">true</span><span style="color: #008080;">;</span>
 <span style="color: #008000;">&#125;</span>
&nbsp;
 <span style="color: #0000ff;">bool</span> FileManager<span style="color: #008080;">::</span><span style="color: #007788;">ReplaceFile</span><span style="color: #008000;">&#40;</span><span style="color: #0000ff;">const</span> wxString<span style="color: #000040;">&amp;</span>amp<span style="color: #008080;">;</span> old_file, <span style="color: #0000ff;">const</span> wxString<span style="color: #000040;">&amp;</span>amp<span style="color: #008080;">;</span> new_file<span style="color: #008000;">&#41;</span></pre></div></div>

<p><br class="spacer_" /></p>
<p>The patch is required for our last release (version 8.02).</p>
<p>Thanks for the bug report.</p>
]]></content:encoded>
			<wfw:commentRss>http://biplab.in/2008/06/file-permission-bug-of-cb/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Vote for us at SF.net</title>
		<link>http://biplab.in/2008/05/vote-for-us-at-sfnet/</link>
		<comments>http://biplab.in/2008/05/vote-for-us-at-sfnet/#comments</comments>
		<pubDate>Sun, 25 May 2008 16:19:32 +0000</pubDate>
		<dc:creator>Biplab</dc:creator>
				<category><![CDATA[Code::Blocks]]></category>
		<category><![CDATA[Free/Open Source]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[Software Development]]></category>

		<guid isPermaLink="false">http://biplab.in/?p=57</guid>
		<description><![CDATA[Last year we went to the finals of SourceForge.net Community Choice Awards 2007. But we could not win it. This year we have another chance. The nomination for the SourceForge.net Community Choice Awards 2008 are now open. If you love Code::Blocks, please nominate us by clicking the following link. You can nominate us under Best [...]]]></description>
			<content:encoded><![CDATA[<p>Last year we went to the finals of SourceForge.net Community Choice Awards 2007. But we could not win it.</p>
<p>This year we have another chance. The nomination for the SourceForge.net Community Choice Awards 2008 are now open. If you love Code::Blocks, please nominate us by clicking the following link.</p>
<p><center><a href="http://sourceforge.net/awards/cca/?group_id=126998"><img src="http://sourceforge.net/awards/cca/badge_img.php?group_id=126998&#038;style=5" border="0" /></a></center></p>
<p>You can nominate us under <strong>Best Project</strong>, <strong>Best Project for the Enterprise</strong> or <strong>Best Tool or Utility for Developers</strong> category. Please note that you can <strong>nominate us in multiple categories</strong>. Also you would need a SourceForge.net account to nominate us.</p>
<p>Thanks for your support. <img src='http://biplab.in/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://biplab.in/2008/05/vote-for-us-at-sfnet/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Unicode Support in Code::Blocks</title>
		<link>http://biplab.in/2007/10/unicode-support-in-codeblocks/</link>
		<comments>http://biplab.in/2007/10/unicode-support-in-codeblocks/#comments</comments>
		<pubDate>Thu, 25 Oct 2007 16:08:08 +0000</pubDate>
		<dc:creator>Biplab</dc:creator>
				<category><![CDATA[C++]]></category>
		<category><![CDATA[Code::Blocks]]></category>
		<category><![CDATA[Free/Open Source]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[Software Development]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[wxWidgets]]></category>

		<guid isPermaLink="false">http://biplab.in/2007/10/26/unicode-support-in-codeblocks/</guid>
		<description><![CDATA[Code::Blocks (C::B) had a long known problem of crashing / locking up while an accented character is used in the code. Or even worse when the encoding of a file is changed from one encoding to another. It was able to support upto UTF-8 encoding with occasional lock-up. I started working on this around 2-3 [...]]]></description>
			<content:encoded><![CDATA[<p>Code::Blocks (C::B) had a long known problem of crashing / locking up while an accented character is used in the code. Or even worse when the encoding of a file is changed from one encoding to another. It was able to support upto UTF-8 encoding with occasional lock-up.</p>
<p>I started working on this around 2-3 months back. But during testing we found that C::B still hangs and it is due to Code-Completion (CC) plugin. The issue was due to the presence of some ANSI functions in Code-Completion parser. Morten then started his work to fix this. It almost resulted to a small re-write of Code-Completion. And we could finally test our Unicode changes with CC enabled.</p>
<p>We tested it for couple of weeks before we found it to be stable enough for further real-life testing by our users. In revision 4548, the first collection of patches were committed (including Morten&#8217;s patch on CC). Few users posted some issues which were then quickly resolved. As of writing, the code seems to be quite stable.</p>
<p><strong>So what are the changes that have been made??</strong></p>
<p>There were a number of changes that has been made.</p>
<ol>
<li>Encoding detection code has been improved by using a portion of MadEdit&#8217;s encoding detection code. Currently it can detect, UTF-8, UTF-16 BE/LE, UTF-32 BE/LE with/without BOM. The fall back code has been kept to ANSI (CP-1252 on Windows).</li>
<li>Encoding conversion routine has been overhauled. Now it converts back and forth all supported encodings flawlessly.</li>
<li>Now all the encoding detection and conversion code is much more efficient as it involves minimum disk reads and most of the operation is done in memory buffers (Thanks Thomas for keeping this strict criteria).</li>
<li>The file load routine has been moved from a all in one load-plus-encoding detection code to efficiently distributed code.</li>
<li>File save routine was overhauled to save files with all supported encodings.</li>
<li>Project load routine has been tweaked to reduce the stalling while opening a large project with a large number of open files in it.</li>
<li>Morten made CC parser Unicode compliant so that it can now parse any files without a single lock-up.</li>
</ol>
<p>I would request users to use Build Revision 4553 onwards to get the most benefit out of it. Please post any related issues in the forum itself. <img src='http://biplab.in/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://biplab.in/2007/10/unicode-support-in-codeblocks/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Code::Blocks August-September Month Update Summary</title>
		<link>http://biplab.in/2007/10/codeblocks-august-september-month-update-summary/</link>
		<comments>http://biplab.in/2007/10/codeblocks-august-september-month-update-summary/#comments</comments>
		<pubDate>Sat, 13 Oct 2007 16:30:30 +0000</pubDate>
		<dc:creator>Biplab</dc:creator>
				<category><![CDATA[Code::Blocks]]></category>
		<category><![CDATA[Free/Open Source]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[Software Development]]></category>
		<category><![CDATA[Technology]]></category>

		<guid isPermaLink="false">http://biplab.in/2007/10/14/codeblocks-august-september-month-update-summary/</guid>
		<description><![CDATA[As usual the update summary is full of new changes made to Code::Blocks and lot of bug fixes. Summary: Help plugin now supports browsing of Man pages. wxSmith got number of new features including support to visually edit layouts, add events, etc. Support for generated source files in build system. Few critical bugs have been [...]]]></description>
			<content:encoded><![CDATA[<p>As usual the update summary is full of new changes made to Code::Blocks and lot of bug fixes.</p>
<p><strong>Summary</strong>:</p>
<ul>
<li>Help plugin now supports browsing of Man pages.</li>
<li>wxSmith got number of new features including support to visually edit layouts, add events, etc.</li>
<li>Support for generated source files in build system.</li>
<li>Few critical bugs have been fixed. This included a well known DDE bug, crash at close bug, project file corruption in some cases bug, etc.</li>
</ul>
<p>Please note that the following changelog is based on SVN commit history of past two months. Detailed and organised changelog is as follows. <span id="more-55"></span></p>
<p><strong>Core</strong></p>
<p>* Restructured update.bat a little bit and minor fix.<br />
* wxFNB : fixed overflow of tabs too early and applied patch to allow backward compatibility with 2.6.x<br />
* Fixed: [Bug #11585] Extra file relative paths are wrong in exported plugin.<br />
* Fixed: Extra paths are not processed in some cases.<br />
* Cleaned up the autorevision stuff, less dependencies.<br />
* Added: Code-statistics for *.cc, *.cxx files in project file options dialog.<br />
* Fixed: MSVC Project import bug where &#8216;-g&#8217; was getting added to Release target.<br />
* Now *.cc files would be recognized as C++ files.<br />
* One code-cleanup in DLL wizard generated source.<br />
* Added cbProject::GetExtensionsNode() and cbProject::AddToExtensions(). The latter is exposed to scripts. Read the function docs on how to use it.<br />
* Added &#8211;safe-mode command-line option (all plugins are disabled on startup).<br />
* Fixed out-of-place builds with autotools (bug #11607).<br />
* Fixed: [Bug #11720] Standard Header Highlighting problem<br />
* Fixed: Highlight mode was not applied when highlight mode is changed from a mode to &#8216;Plain text&#8217;.<br />
* Added IsOpened() check to locale loading<br />
* Add Mach IPC typedefs for Darwin<br />
* Fixed: Out-of-place build fix for Todo plugin.<br />
* Fixed: Couple of assertion failures associated with wxDir.<br />
* Some clean up in Intel compiler detection code.<br />
* make dist fix.<br />
* console-main.c.cpp : no need to include stdlib.h<br />
* wxFNB : fixed: popup dialog not focused on linux (ctrl+tab &amp; smart tabbing)<br />
* autorevision : const correctness and use TiXml handles in QuerySvn<br />
* Fixed: C::B can&#8217;t detect a file with UTF-32LE (with BOM) encoding.<br />
* Include fixes and separation between Manager::GetAppWindow() and Manager::GetAppFrame(), SDK bump to 1.11.12 (could be a few follow up include fixes might follow)<br />
* Replaced &#8220;Log&#8221; with &#8220;Logger&#8221; where it should be<br />
* Did some tuning on the existing loggers<br />
* Added startup code to turn off app logging<br />
* InfoPane can now properly show/hide panels, delete Loggers and non-Loggers<br />
* Moved GUI-Initialisation out of CreateIDE, and after plugin loading, so plugins can add loggers at startup<br />
* Include fixes (this concludes patch 2139)<br />
* Re-added r4272, but without overload operators (should not cause ambiguity now)<br />
* Fixed all SDK documentation errors<br />
* Fixed crash in compiler plugin under certain circumstances (when selecting another target in the combo box).<br />
* All wizards: Do not put output file name in root folder of drive if no path provided<br />
* Made .java files recognized as compileabe sources (no Java support!)<br />
* Backtick&#8217;d expressions cache is not cleared anymore (severe performance hit if many of them are used). Restarting C::B is the only way to clear it.<br />
* Added debugger option not to auto-build before launching.<br />
* Improved Java support any further<br />
* Added &#8220;set default&#8221; for file groups and masks<br />
* Exposed Java binding to scripts<br />
* Minor fixed for Fortran 77/90/95 support<br />
* Improved SDK documentation and documentation of C::B resources<br />
* Add GetCompilerVersionString() to the CompilerFactory and export it for the scripts<br />
* Assembler files support (*.asm)<br />
* Added support for assembler sources (*.s;*.ss)<br />
* Exposed assembler sources to scripts<br />
* Fixed: Crash at Start-up if clicked on the Splash Screen.<br />
* Fixed wrong layout for editor abbreviations causing the Add/Delete keys to be invisible.<br />
* Fixed: Crash in ProjectFileOptions dialog, when the project uses an unavailable compiler.<br />
* Fixed: [Bug #11698] Silent close on multiple instance<br />
* Object files of source files on different drive will now be created inside the Project object directory itself.<br />
* Fixed: [Bug #11785] Tooltip/Function info window does not go away<br />
* Fixed: [Bug #11929] Crash when moving a virtual folder to its subfolder<br />
* Add workspace extension on &#8220;save as&#8221; if none given<br />
* Add support for TriCore, MSP430 and PowerPC<br />
* Fixed: Project file is removed while Rebuilding / Cleaning a Dynamic Library Project.<br />
* Updated: Update script for Linux/Unix to exclude .svn, Makefile and other garbage files.<br />
* cbEVT_APP_STARTUP_DONE is now fired *after* the app has loaded and fully displayed its windows.<br />
* Added configuration options for which lexer keyword sets to be included in code-completion results.<br />
* Display size of generated file after linking.<br />
* Fixed some UI layout errors in project and editor options. Say &#8216;no&#8217; to huge dialogs <img src='http://biplab.in/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> .<br />
* Added event cbEVT_QUERY_VIEW_LAYOUT (queries the current view layout).<br />
* Removed debugger options for automatic layout switching. It is all handled automatically now.<br />
* Fixed: Project created from a user-template contains old output file name.<br />
* Fixed: C::B title not updated after creating a project from user-template.<br />
* Fixed a few problems found by Valgrind.<br />
* Fixed: A bug in SetVersionString() which could not detect the version string of MinGW compilers installed in an arbitrary folder.<br />
* Applied: [Patch #2135] MinGW autodetection searching in $PATH<br />
* Fixed another small memory leak found by Valgrind.<br />
* Fixed: Source/Project file open command is sent Twice while opening it through DDE.<br />
* Fixed: [Bug #12014] CodeCompletion doesn&#8217;t start on Code::Blocks startup<br />
* wxFNB and wxAUINotebook selectable via compile time switch<br />
* Removed close button that doesn&#8217;t belong there<br />
* Added: Atmel AVR project wizard (Thanks to BrianSidebotham).<br />
* Applied: [Patch #2191] Patch for Bug #11979 (in modified form)<br />
* Fixed: File association detection code not detecting the files associated.<br />
* Fixed: Wrong pop-up menu in Project Tree.</p>
<p><strong>Core Plugins</strong></p>
<p><strong>AStyle</strong><br />
* Fixed bug 011860: Mouse cursor changes.</p>
<p><strong>Code Completion</strong><br />
* Code-completion now provides support for language keywords, based on the current editor&#8217;s language (only C++ was supported until now).<br />
* ClassBrowserBuilderThread is now a joinable thread. ClassBrowser will now Wait for it to exit before invalidating &#8220;shared&#8221; data.</p>
<p><strong>Compiler</strong><br />
* Support for adding custom files to the build system</p>
<p><strong>Debugger</strong><br />
* Set max value for &#8220;Ignore count before break&#8221;.<br />
* Fixed unable to detect cygwin prefix under HKCU (instead of only HKLM)</p>
<p><strong>Contrib Plugins</strong></p>
<p><strong>CodeSnippets</strong><br />
* Added check for possible garbage window ptr in OnTreeCtrlEvent() and other assorted wxGTK284 fixes<br />
* Fixed TextToFilenames() for list/text containing \r &amp; \n<br />
* Codesnippets uses GDK functions directly on wGTK, so it needs to link with the GTK2_LIBS too</p>
<p><strong>Envvars</strong><br />
* Fixed choicebox GUI bug under Linux</p>
<p><strong>Help plugin</strong><br />
* Added support to display man pages.<br />
* Converted the MANFrame into a dockable thingy.<br />
* If a man page cannot be found then report it.<br />
* Clicking on links for man pages that provide them will take you to that man page (if found).<br />
* Bugfix: displaying man pages with tables (e.g. find.1) crashes the application (must check if it&#8217;s generating the right output)<br />
* Fixed implementation of QListIterator&lt;T&gt; (the output should be right now)<br />
* Do not show the man page viewer by default<br />
* Bugfix: editing help entries add extra &#8220;Man Pages Viewer&#8221; to the View menu.<br />
* Implemented zoom in and zoom out for the Man Pages Viewer.<br />
* If more than one match is found, let the user choose (tip: use file wildcards).<br />
* Bugfix: bz2 decompression adds garbage at the end of the file (fixed in DevPak plugin too).<br />
* Try to follow .so links in man pages to other man pages.</p>
<p><strong>KeyBinder</strong><br />
* Change AddPendingEvent() to ProcessEvent() in wxMenuCmd::Exec() to avoid crashes when secondary command key would close editors wx284</p>
<p><strong>Source Exporter:</strong><br />
* PDF exporter: fixed crash when the file to be exported had non-ASCII characters.<br />
* Updated wxPdfDocument to version 0.8.0<br />
* Remove warnings from Exporter plugin (wxPdfDocument part)</p>
<p><strong>wxSmith</strong><br />
* Icon property is now used inside generated code and preview<br />
* Added insert-by-pointing-with-mouse mode<br />
* Code generated when adding sizers now contains spaces to be more readable<br />
* Implemented grid for sizer-less resources<br />
* Added border for wxPanel items added into other resources<br />
* Fixed background colour for wxFrame<br />
* Preview for wxPanel resources are now using resizable dialog<br />
* Fixes for few segfaults discovered on linux<br />
* DELETE key now deletes current selection in editor<br />
* Fixed bug #10964<br />
* Update to base properties (cleaned some things up and added ability to fetch position / size of resource from constructor&#8217;s argument)<br />
* Updated new resource generator &#8211; it now gives much more options<br />
* Fixed crash when adding new resource on linux<br />
* Fixed size of new-resource dialog with hidden advanced options on linux<br />
* Added some stubs to support read-only files<br />
* Added include file properties for custom widget (only when using source mode)<br />
* Implemented sorting of properties<br />
* Double click on some item now adds event handler (if there&#8217;s none) of it&#8217;s first event<br />
* Implemented jumping to event handler function body when changing handler / double clicking on item that has main handler set<br />
* Added pop-up menu on right click on resource in resource browser<br />
* Implemented deleting resources (accessible through pop-up menu)<br />
* Fixed crash in wxSmith when closing any open XRC file<br />
* Changed default scopes of ids (now protected) / members (now public) / handlers (now private) in new resources<br />
* Scopes can be customized in Advanced options while generating new resource<br />
* Added cols / rows for wxGrid when editing in source mode (Grom: you owe me a beer <img src='http://biplab.in/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' />  )<br />
* Added customized popup menu for wxNotebook (other x-book classes soon, after wxNotebook is finished)<br />
* Added &#8220;Bring to front&#8221; / &#8220;Send to back&#8221; popup menu for items which are not managed inside sizers &#8211; available in right-click popup menu in editor (this can be used to set correct tab order)<br />
* Fixed issues with wxArtProvider<br />
* Fixed some issues with wxNotebook (and probably other ..book classes)</p>
]]></content:encoded>
			<wfw:commentRss>http://biplab.in/2007/10/codeblocks-august-september-month-update-summary/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Save Bandwidth &#8211; Download Delta-ISO</title>
		<link>http://biplab.in/2007/08/save-bandwidth-download-delta-iso/</link>
		<comments>http://biplab.in/2007/08/save-bandwidth-download-delta-iso/#comments</comments>
		<pubDate>Tue, 14 Aug 2007 18:28:15 +0000</pubDate>
		<dc:creator>Biplab</dc:creator>
				<category><![CDATA[Free/Open Source]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[Technology]]></category>

		<guid isPermaLink="false">http://biplab.in/2007/08/15/save-bandwidth-dowload-delta-iso/</guid>
		<description><![CDATA[If you love to try latest GNU/Linux distributions then you may save yourself from downloading full Linux ISO everytime a new version has released. As the Linux ISOs are large in size, downloading them burns a huge amount of bandwidth both for the publisher and the end-user. Couple of GNU/Linux distributors including OpenSUSE, Sabayon have [...]]]></description>
			<content:encoded><![CDATA[<p>If you love to try latest GNU/Linux distributions then you may save yourself from downloading full Linux ISO everytime a new version has released. As the Linux ISOs are large in size, downloading them burns a huge amount of bandwidth both for the publisher and the end-user.</p>
<p>Couple of GNU/Linux distributors including OpenSUSE, Sabayon have started publishing <strong>Delta-ISO</strong>. This is basically an ISO file containing only the additions/updates/changes with respect to an old version. It contains binary diff of all the distributed packages. Thus the ISO is smaller to download.</p>
<p>On 9th August, 2007 OpenSUSE-10.3 Beta 1 was released. In the next few paragraphs, you&#8217;ll learn to convert the delta-iso to a full iso. I had downloaded OpenSUSE-10.3 Alpha 7 iso (<strong>openSUSE-10.3-Alpha7-GNOME-i386.iso</strong>) earlier. To create a New ISO of OpenSUSE-10.3-Beta 1, we need a delta ISO. Now browse to the following folder in any OpenSUSE mirror and download the appropriate delta iso.</p>

<div class="wp_syntax"><div class="code"><pre class="text" style="font-family:monospace;">/pub/opensuse/distribution/10.3-Alpha7/iso/delta/</pre></div></div>

<p>For me, <strong>openSUSE-10.3-Alpha7_Beta1-GNOME-i386.delta.iso</strong>, is the appropriate one.</p>
<p>Now download <a href="http://gifuyana.com/wapplydeltaiso/wapplydeltaiso.html" target="_blank">applydeltaiso</a> utility (for Windows). Then in the command line issue the following command. There&#8217;s a bare minimum GUI of applydeltaiso utility at the same link. You may wish to use the graphical utility, too.</p>

<div class="wp_syntax"><div class="code"><pre class="text" style="font-family:monospace;">applydeltaiso openSUSE-10.3-Alpha7-GNOME-i386.iso
              openSUSE-10.3-Alpha7_Beta1-GNOME-i386.delta.iso
              openSUSE-10.3-Beta1-GNOME-i386.delta.iso</pre></div></div>

<p>Voila!! After 5-10 minutes (depending upon your hard-disc speed) you&#8217;ll get a new ISO by downloading just 189 MB of data!!</p>
<p>But please keep the following points in mind.</p>
<ol>
<li>Your hard disc should have enough space to create the new iso.</li>
<li>If you are using FAT32, then 2GB limit will be applicable to you.</li>
<li>Don&#8217;t forget to verify the new ISO by comparing it&#8217;s MD5 checksum with the one published by publisher (in this case OpenSUSE).</li>
</ol>
<p>So keep enjoying latest changes in GNU/Linux world!</p>
]]></content:encoded>
			<wfw:commentRss>http://biplab.in/2007/08/save-bandwidth-download-delta-iso/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Code::Blocks July Month Update Summary</title>
		<link>http://biplab.in/2007/08/codeblocks-july-month-update-summary/</link>
		<comments>http://biplab.in/2007/08/codeblocks-july-month-update-summary/#comments</comments>
		<pubDate>Fri, 10 Aug 2007 07:08:27 +0000</pubDate>
		<dc:creator>Biplab</dc:creator>
				<category><![CDATA[Code::Blocks]]></category>
		<category><![CDATA[Free/Open Source]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[Software Development]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[wxWidgets]]></category>

		<guid isPermaLink="false">http://biplab.in/2007/08/10/codeblocks-july-month-update-summary/</guid>
		<description><![CDATA[After another month long development of Code::Blocks (C::B) by the C::B Dev Team (including me), we made the following modification / improvements. Apart from adding couple of newer features we&#8217;ve fixed a number of annoying bugs, improved the stability and usability of it. The following changelog is based on SVN Commit History of July 2007. [...]]]></description>
			<content:encoded><![CDATA[<p>After another month long development of Code::Blocks (C::B) by the C::B Dev Team (including me), we made the following modification / improvements. Apart from adding couple of newer features we&#8217;ve fixed a number of annoying bugs, improved the stability and usability of it.</p>
<p>The following changelog is based on SVN Commit History of July 2007. Please note that this is not a Release Announcement and the changelog contains the commit made by <em>entire C::B Dev Team</em> in July 2007.</p>
<p>BTW, C::B has not won the <em>SourceForge.net 2007 Community Choice Award</em> as a <em>Best Tool or Utility for Developers</em>. I would like to thank you all on behalf of C::B team for supporting &amp; voting us and putting us in the final list.</p>
<p><strong>Summary</strong></p>
<ul>
<li>Added support for additional resource files to be added in resource package. This means now plugins can freely install extra icons and other resource files to the share folder of C::B.</li>
<li>Added support for version detection of compilers during runtime. This is currently used for GCC (MinGW) compiler. This adds the possibility to detect a compiler version and appropriately turn off incompatible/deprecated compiler options between versions.</li>
<li>Code-completion got a number of updates. It&#8217;s parser received some long-demanded updates and fixes.</li>
<li>Added support for Tooltips of variable, objects in the editor.</li>
<li>Project import code has been moved from SDK to a new plugin &#8220;Projects Importer&#8221;.</li>
<li>Added support for Remote Debugging.</li>
</ul>
<p>Detailed changelog is as follows.<span id="more-51"></span></p>
<p><strong> Core</strong><br />
* Create locale subfolder at startup, turn off wxWidgets message<br />
* Removed unneeded global variables<br />
* Binary .cbplugin files can now contain icons for the &#8220;Settings&#8221; dialogs. The two supported icon files should be named &lt;plugin_name&gt;.png and &lt;plugin_name&gt;-off.png.<br />
* Updated all settings dialogs to locate icons through configmanager.<br />
* If a settings icon for a plugin cannot be located, the generic-plugin icon will be used.<br />
* Fix in annoying dialog: do not use wxStdDialogButtonSizer if using custom button IDs (they are not accepted and the dialog layout is screwed).<br />
* Plugins manifest XML expanded to allow for extra files being installed/exported/uninstalled.<br />
* Fixed crash in symbols browser under certain circumstances (bug #11433).<br />
* Exposed to scripts CompileTargetBase::SetTargetFilenameGenerationPolicy (bug #11019).<br />
* Display replace-operation summary (bug #11472, patch #2083).<br />
* Exposed _() to scripts for translated strings (bug #10297, patch #2020).<br />
* Fixed bug with &#8220;pause when execution ends&#8221; target checkbox (bug #11235).<br />
* Added &#8220;File-&gt;Save all&#8221; which saves everything: files, projects and workspace (patch #2044).<br />
* Open Files List items &#8211; read-only file icon added<br />
* Find, Find Next/Previous results shown centered on screen<br />
* Respect projects modification flag when closing workspace and ask to save modified projects.<br />
* Dynamic linker&#8217;s path is now set correctly again for executing.<br />
* Added EscapeSpaces() global function and exposed it to scripts along with a few other functions from globals.h.<br />
* Updated debugger plugin to correctly set the dynamic linker&#8217;s path.<br />
* Fixed running console-based programs in windows.<br />
* Removed all wxLogNull, disabled log messages globally<br />
* Added a null pointer check (probably unneeded)<br />
* The &#8220;Save all&#8221; button on the toolbar is now &#8220;Save all files&#8221; to avoid problems with accidental clicking (&#8220;Save all&#8221; is an irreversible action).<br />
* Updated sdk doxygen file to latest doxygen revision<br />
* Fixed bug under wx26 that path for wizards was calculated wrong (without drive letter)<br />
* Implemented: [FR #3524] &#8220;Remove all breakpoints&#8221; option<br />
* Changed the SDK events handling system (see http://wiki.codeblocks.org/index.php?title=Code::Blocks_SDK_events).<br />
* While I was at it, I implemented sending the cbEVT_APP_START_SHUTDOWN event.<br />
* Fixed: plugin installation wouldn&#8217;t create directories on windows (thanks dje).<br />
* Fixed crash when using &#8220;Close&#8221; or &#8220;Close all&#8221; in open files list context menu (bug #11508).<br />
* Backticked expressions in build options are now parsed for compiler/linker search dirs. Code-completion benefits greatly from this (locating files to parse, opening #include files, etc).<br />
* The CC DebugInfo dialog now displays the parser&#8217;s search dirs too.<br />
* Fixed: [Bug #11548] &#8220;Recent projects&#8221; tries to open already open project<br />
* Added the following SDK functions. Use them for compiler version detection.<br />
- Compiler::SetVersionString()<br />
- Compiler::GetVersionString()<br />
* Debian dir updated to create the following packages:<br />
- libcodeblocks0 (codeblocks shared lib)<br />
- codeblocks (main app and core plugins)<br />
- codeblocks-contrib (contrib plugins)<br />
- codeblocks-dbg (debugging symbols)<br />
- codeblocks-devel (SDK headers)<br />
- libwxsmithlib0 (wxSmith shared lib)<br />
- libwxsmithlib0-devel (wxSmith development shared lib)<br />
* Added rudimentary man pages for cb_share_config and codesnippets.<br />
* Resource zip-files are now automatically generated when their dependencies change (no more need for &#8220;make clean-zipfiles&#8221;).<br />
* update-revision.sh now updates debian/changelog too so generated packages will contain correct version info.<br />
* Renamed -devel debian packages to -dev<br />
* Bug-fix in CompilerMINGW::SetVersionString.<br />
* Applied patch #2040 to fix Home key bug (#11234)<br />
* Fixed bug #11574 (comment code doesn&#8217;t work on PHP files)<br />
* Sorted items in &#8220;search internet&#8221; popup correctly (nobody ever noticed?)<br />
* Fixed: Crash while compiling a single file with OpenWatcom compiler.<br />
* Fixed: [Bug #11599] Saving a file crashes in a special case<br />
* Applied:<br />
- [Patch #2066] updates to python lexer<br />
- [Patch #2091] Documention only fix on file propgrid/CHANGES-propgrid.txt<br />
* Applied: [Patch #2067] &#8216;Highlight mode&#8217; reflects current syntax highlighting<br />
* Fixed: Compilation error (related to wxCharBuffer::==) in certain build configurations.<br />
* Incremental search dialog now supports the * and ? wildcards (patch #2046).<br />
* Switched to wxFlatNotebook 2.2 + 1 little change<br />
* Fixed &#8220;debugger won&#8217;t start&#8221; bug introduced yesterday.<br />
* Event cbEVT_COMPILER_STARTED is now emitted.<br />
* applied [ Patch #2105 ] Fix ugly 22&#215;22 searchreplace.png<br />
* Stopped Update.bat from copying Makefile.am to few directories.<br />
* Fixed: Clicking &#8220;Properties&#8221; option from Notebook menu doesn&#8217;t show proper file properties if it&#8217;s part of a project.<br />
* Added SDK events for build targets:<br />
- cbEVT_BUILDTARGET_ADDED<br />
- cbEVT_BUILDTARGET_REMOVED<br />
- cbEVT_BUILDTARGET_RENAMED<br />
- cbEVT_BUILDTARGET_SELECTED<br />
* Added Get/SetBuildTargetName() and Get/SetOldBuildTargetName() in CodeBlocksEvent, for the new events (the latter two functions only apply for cbEVT_BUILDTARGET_RENAMED and cbEVT_BUILDTARGET_SELECTED events).<br />
* The &lt;Extensions&gt; node (in .cbp files) is now preserved through project saves, even if the plugins using it are disabled/uninstalled. All relevant code in our repository has been updated.<br />
* Fixed: [Bug #11656] windows plugin wizard defaults to linking to wxmsw26u</p>
<p><strong>Plugins</strong>:</p>
<p><strong>AStyle</strong><br />
* Updated to AStyle 1.21, applying changes provided by Jim Pattee.</p>
<p><strong>Code-Completion</strong><br />
* Bug fix in CC tokenizer.<br />
* CC parser now supports &#8220;typedef [class|struct] {&#8230;} id&#8221; constructs.<br />
* Fixed [bug #11533] (class browser crash on windows)<br />
* Fixed [bug #11460] &#8220;Switching to current file&#8217;s symbols delays class browser for ~ 4 secs&#8221;<br />
* CC parser now supports &#8220;typedef enum {&#8230;} id&#8221; constructs.<br />
* Fixed 2-second freeze every time a file was saved (winxp)<br />
* Bug-fix in CC tokenizer.<br />
* When hovering the mouse over a word in the editor, a tooltip is displayed describing the token under the mouse (relevant option added in CC settings so it can be disabled/enabled at will).<br />
* Fixed minor issues with CC tooltips.<br />
* Fixed code-completion not launching for empty search strings (bug #11630).<br />
* Fixed code-completion handling of preprocessor directives in class definitions (bug #11626).<br />
* Bug fix in tokenizer wrt &lt;&lt; operator.</p>
<p><strong>CodeSnippets</strong><br />
* Get temp directory name from system; don&#8217;t assume /temp or /tmp.<br />
* Invoke properties dialog on &#8220;new snippet&#8221;<br />
* Do not copy removed snippet to .trash when shift key down<br />
* Fixed missing window when switching layouts<br />
* Auto show window when switching between window types<br />
* Don&#8217;t save snippets xml when no changes made in order to avoid file time change and annoying reload msg in secondary CB.</p>
<p><strong>Compiler</strong><br />
* Use more comfortable way to choose extra toolchain path&#8217;s (this also allows the use of GCV&#8217;s and improves consitency)<br />
* Now deprecated compiler option, &#8216;-I-&#8217;, wouldn&#8217;t be used for GCC 4.x series. Fixed(Partially): [Bug #10624] gcc: faulty/deprecated/ default options<br />
* Some code-cleanup and improvements in OpenWatcom option generation code.<br />
* Added experimental support of creating Linux executables on Windows using OpenWatcom. Please note that an additional **Library directory** has to be added manually.<br />
* Updated: Regex in CompilerMINGW::SetVersionString() to a foolproof one.<br />
* Fixed: Couple of issues with DMD compiler.<br />
* Applied: [Patch #2015] To create a lib using lib.exe in DMD tools??<br />
* Fixed: Run-time error message in CompilerMINGW::SetVersionString() when gcc binary is not found.<br />
* On Windows the search in PATH environment variable, in CompilerGCC::SetEnvironmentForCompiler(), would now be case-insensitive. This would help avoid adding duplicate entries in PATH.<br />
* Update -mmcu options for GNUAVR (patch #2071).<br />
* If getting the timestamp for a file fails check its existence to decide if it should be built or just ignored.<br />
* Fixed: [Bug #11600] compiler plugin works only with admin rights</p>
<p><strong>Debugger</strong><br />
* Fixed display of watches for CDB (MSVC executables).<br />
* Fixed: Layout issues in DataBreakpointDlg.<br />
* Added preliminary support for remote debugging with gdb (only). Check the &#8220;Debugger&#8221; page in project&#8217;s properties&#8230;<br />
* Clean-up in remote debugging code.<br />
* Added baud setting for remote debugging through the serial port.<br />
* Fixed deadlock while debugger was waiting for compiler to finish (at least in linux).<br />
* Starting the debugger should work correctly again in all cases.<br />
* Per-target extra debugger commands are now sent after connection to remote target (if any).<br />
* Debugger no longer tries to launch 2 times if the first try failed.</p>
<p><strong>Envvars</strong><br />
* Fixed &#8220;envvars not unset on project close&#8221; bug (thanks Yiannis)<br />
* Added &#8220;nicer&#8221; image for config icon<br />
* Added possibility to clone an envvar set<br />
* GUI enhancement for Linux, code cleanup</p>
<p><strong>KeyBinder</strong><br />
* Check for numeric menu items that start with &#8220;_&#8221; wxGTK 2.8.4<br />
* Fixed disappearing/reappearing command keys on wxGTK 2.8.4 by trimming all menu items and conf strings before comparing.</p>
<p><strong>Projects Importer</strong><br />
* Added: Support for $(PlatformName) macro in MSVC 7+ project file import.<br />
* Some code cleanup.</p>
<p><strong>Scripted Wizard</strong><br />
* wxWidgets wizard:<br />
- Default wxwidgets configurations will now be added at project level.<br />
* Win32GUI Wizard:<br />
- Added support for Dialog based app creation. (Thanks Skirby for the sample code)<br />
* Updated: DLL and Win32 GUI wizard to latest changes in OpenWatcom compiler support.</p>
<p><strong>Share-config</strong><br />
* Implemented &#8220;uncheck all&#8221;; made dlg resizable<br />
* Added support for editor colour_sets</p>
<p><strong>Source Exporter</strong><br />
* Bugfix: Wrong output of tabs in ODT.<br />
* Tabs are now converted to spaces using the current editor settings (tab size in spaces) in the PDF exporter.</p>
<p><strong>To-Do</strong><br />
* ToDo plugin now uses the correct image in the settings dialog.</p>
<p><strong>wxSmith</strong><br />
* Big update to wxsDrawingWindow class<br />
- It uses wxClientDC instead of wxScreenDC (which is not supported on MAC now)<br />
- Removed internal &#8220;drawing panel&#8221; &#8211; everything is done on wxsDrawingWindow now (event flow is much better now)<br />
- Got rid of all Yields during fetch sequence (may improve stability)<br />
- First results on MAC (still there&#8217;s much to be done but at least there&#8217;s some starting point)<br />
* Fixed wx2.6 issues in wxToolbar<br />
* Increase readability of generated code</p>
]]></content:encoded>
			<wfw:commentRss>http://biplab.in/2007/08/codeblocks-july-month-update-summary/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Code::Blocks June Month Update Summary</title>
		<link>http://biplab.in/2007/07/codeblocks-june-month-update-summary/</link>
		<comments>http://biplab.in/2007/07/codeblocks-june-month-update-summary/#comments</comments>
		<pubDate>Wed, 11 Jul 2007 12:04:08 +0000</pubDate>
		<dc:creator>Biplab</dc:creator>
				<category><![CDATA[Code::Blocks]]></category>
		<category><![CDATA[Free/Open Source]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[Software Development]]></category>

		<guid isPermaLink="false">http://biplab.in/2007/07/11/codeblocks-june-month-update-summary/</guid>
		<description><![CDATA[We made a lot of improvements in Code::Blocks last month. As usual the list contains a large number of bug-fixes, new additions / improvements made to Code::Blocks. Summary: Scripted wizards&#8217; layout problem has been fixed. This bug was affecting Linux users with wx-2.8.x runtime. A large number of compilation warnings were fixed. Now C::B would [...]]]></description>
			<content:encoded><![CDATA[<p>We made a lot of improvements in Code::Blocks last month. As usual the list contains a large number of bug-fixes, new additions / improvements made to Code::Blocks.</p>
<p><strong>Summary</strong>:</p>
<ul>
<li>Scripted wizards&#8217; layout problem has been fixed. This bug was affecting Linux users with wx-2.8.x runtime.</li>
<li>A large number of compilation warnings were fixed. Now C::B would compile with wx-2.6.x or wx-2.8.x without annoying warnings. These warnings were popping up due to the code changes in wxWidgets 2.8.x.</li>
<li>Fixed major memory leak.</li>
<li>Code-completion got a lot of improvements.</li>
<li>Code of Internationalization of C::B has been changed. Please visit the forum for more details.</li>
<li>wxSmith got some huge update.</li>
</ul>
<p><strong>Detailed changelog is as follows</strong>:<span id="more-50"></span></p>
<p>Core<br />
&#8212;-<br />
* Fixed: Wizard.GetProjectTitle() should now work properly according to new changes made in ProjectPathPanel.<br />
* Fixed: [Bug #11214] No cursor on Fine-in-files when no file open<br />
* Removed remaining wx26 artefacts from project files<br />
* Fixed: A Number of Compilation Warnings in SDK.<br />
* Fixed: [Bug #10527] Search in modified files (By applying [Patch #2028], Thanks to pauliusz)<br />
* Applied: [Patch #2025] relative paths fix for findinfiles<br />
* Fixed: [Bug #11148] Can&#8217;t compile using files on different drives<br />
* Removed various &#8220;variable might be uninitialized&#8221; warnings from pluginmanager.cpp (lns 918-921), sqapi.cpp (ln 49), app.cpp (ln 496) and main.cpp (ln 661)<br />
* Managed to get rid of various wx2.8 DEPRECATED warnings from the wxScintilla class.<br />
* Removed wx2.8 deprecated warnings from wxFlatNotebook<br />
* Fixed: Search string in Find/Find-in-files dialog Search history is duplicated.<br />
* Fixed: On Windows, Object files are created in same directory where source files exist.<br />
* Fixed: [Bug #11229] Sdk never issues cbEVT_EDITOR_DEACTIVATED (By applying [Patch #2034], Thanks pauliusz)<br />
* Fixed: New search item not stored in Search history of Find/Find-in-files dialog.<br />
* Applied: [Patch #2027] Patch for bug 10992<br />
* Fixed: [Bug #11250] Scripting settings -&gt; Main Security Settings Dialog<br />
* Fixed: If an editor is closed &amp; reopened during an active debugging session, last execution line was not highlighted.<br />
* Fixed: [Bug #10881] Advanced Regexes not available on some versions of wx lib<br />
* Fixed: [Bug #11007] Too small list windows in &#8220;New FLTK/wxWidgets project&#8221;<br />
* Fixed: [Bug #11270] Missing focus on &#8220;Goto Function&#8221; dialog<br />
* Fixed: [Bug #11284] &#8211;personality=ask does not work<br />
* Applied an reworked fix of [Bug #9438] View menu check error<br />
* Exposed ttNative target type to scripts (thx to Christoph for spotting this).<br />
* Added &#8220;kernel-mode driver&#8221; wizard (windows only). Contributed by Timo Kreuzer.<br />
* Added in project tree in the right click menus : Find File : allows you to find and focus in the tree on the file you specify<br />
* Fixed: Possible crash while closing C::B.<br />
* Fixed: [Bug #11334] configure help text incorrect<br />
* Fixed: [Bug #11347] Configure tools then keyboard shortcuts is gone<br />
* Added GetID() utility function<br />
* Changed default TargetGenerationPolicy to platform_default in *Project Options-&gt;Build Target* dialog.<br />
* Added: The following SDK functions.<br />
- ProjectManager::IsLoadingProject()<br />
- ProjectManager::IsLoadingWorkspace()<br />
- ProjectManager::IsClosingProject()<br />
- ProjectManager::IsClosingWorkspace()<br />
* HUGE Memory leak (hundreds of megabytes) fixed!<br />
* SDK: Added static ProjectManager::IsBusy() for plugins development.<br />
* Fixed: DLL and import library name becomes same if Target Output name generation policy is set to User-specified. (Thanks Tim S.)<br />
* Fixed: Crash while loading a Project/Workspace with a Unicode character in File Name/Path.<br />
* Reduced startup time by only calling the cbEditor hooks after project has finished loading (thanks dmoore).<br />
* SDK: Added new event type: EVT_WORKSPACE_LOADED. It&#8217;s triggered when the project or workspace finishes loading.<br />
* Added Delete() member function to AbstractJob. Ownership of jobs is no longer in user hands.<br />
* Added Loader class<br />
* SDK: Fixed ProjectManager::m_IsClosingProject for the case of closing all projects.<br />
* SDK: Updated EVT_WORKSPACE_LOADED to handle closing of projects. Now it gets triggered at the end of ANY workspace modification (loading workspace, opening project, closing, closing all projects, closing workspace). Very useful for plugins.<br />
* The linker search paths are now also used as search paths for the dynamic linker automatically (LD_LIBRARY_PATH for unices, DYLD_LIBRARY_PATH for Mac and PATH for windows).<br />
* Replace $PATH with %PATH% for windows in dynamic linker search paths.<br />
* Added $WORKDIR variable substitution in terminal command line (non-windows platforms only).<br />
* SDK (ProjectManager): Fixed (yes, for real now) annoying random crash on startup.<br />
* SDK (ProjectManager): Renamed EVT_WORKSPACE_LOADED to EVT_WORKSPACE_CHANGED to reflect more clearly its behavior<br />
* Fixed: Couldn&#8217;t compile on MSW without PCH (applied patch #1992 &#8211; thanks stahta01)<br />
* Applied: [Patch #2081] Project properties -&gt; line counter fix<br />
* Internationalisation works</p>
<p>Compiler<br />
&#8212;&#8212;&#8211;<br />
* Massive (but safe) macro-to-template update, mainly for compiler plugins<br />
* Fixed annoying warning messages for access to registry keys that are not available<br />
* Rewritten portion of OpenWatcom linker command generation code. Now the order of options will be maintained.<br />
* Added RegExp for auto-import info from linker of GCC based compilers<br />
* Added new compiler output parsing level: cltInfo (fixes info&#8217;s treated as warnings).<br />
* Added new parsing line &#8220;In function: &#8221; for GNU Compiler.<br />
* Compiler Settings now at version 0.0.2.<br />
* Fixed nasty crash in OW compiler (command generator)</p>
<p>Code-Completion<br />
&#8212;&#8212;&#8212;&#8212;&#8212;<br />
* Added support for moving to the previous/next function using CTRL+PgUp/PgDn (just like in Visual Studio)<br />
* Fixed: [Bug #11205] Code Completion toolbar &#8211; not loading functions<br />
* Now Code-Completion plugin would not parse editor files during Project Loading/Closing or App closing.<br />
* Fixed tiny memory leak in CodeCompletion plugin<br />
* CodeCompletion&#8217;s function toolbar speedup. Now it only parses each file only once.<br />
* Fixed possibly huge memory leak in code-completion (patch #2075, thanks dmoore).<br />
* Fixed bug [ Bug #11443 ] Insert all class methods without implementation fails const</p>
<p>Scripted Wizard<br />
&#8212;&#8212;&#8212;&#8212;&#8212;<br />
* Some code clean up<br />
* Fixed: DLL linking issue with Borland compilers.<br />
* DLL Wizard:<br />
- Fixed: Generated DLL not exporting function(s).<br />
- Added: Borland, MSVC, OpenWatcom, Digital Mars C compiler support.<br />
- Added: Wizard will now create a header to use exported function(s).<br />
* Scripted wizard pages are now resizable. If you can&#8217;t see a control, please resize the page.<br />
* Fixed: Scripted wizard pages&#8217; minimal size is not computed properly (Thanks wxLearner).<br />
* Added wxSmith files for scripted wizard&#8217;s embedded panels (i.e. those panels can now be edited again using wxSmith).<br />
* Also fixed some wx2.8 layout issues with the wizards.<br />
* DLL Wizard:<br />
- Now wizard will setup post-build commands (for VC 8.0) to embed manifest in a dll.<br />
- DLL will now be generated in respective target output directories.<br />
* Fixed: wxWidgets wizard source generation bug.<br />
* wxWidgets Wizard:<br />
- Now Empty project creation and adding pch support options are available separately on Linux.<br />
- User selections will now be stored on Linux.<br />
* Fixed some issues for non-pch project using wxSmith generated by wizard</p>
<p>To-Do<br />
&#8212;&#8211;<br />
* TODO list: Applied patch #2082 to fix bug #10783 (ToDo list too big)</p>
<p>Contrib Plugins<br />
&#8212;&#8212;&#8212;&#8212;&#8212;</p>
<p>Astyle<br />
&#8212;&#8212;<br />
* Bugfix: Crash when file to be formatted had lines with more than 2047 characters.</p>
<p>CodeSnippets<br />
&#8212;&#8212;&#8212;&#8212;<br />
* Prepend CodeBlocks &#8211;personality= argument to codesnippets.ini<br />
* Use text, up to first &#8216;\r&#8217; or &#8216;\n&#8217; to determine if snippet is file link. This Allows notes to accompany file link.<br />
* Added MIME open support using Alt-double-click &amp; &#8220;Open File&#8221; context menu<br />
* Refactored EditSnippet and OpenFileLink<br />
* Added &#8220;Open Url&#8221; support<br />
* ReInstated ToolTips for wx284 using first line of snippet<br />
* Fixed: Index might not be saved when changing category label</p>
<p>CodeStat<br />
&#8212;&#8212;&#8211;<br />
* wxTextFile::Open() error bugfix</p>
<p>Dragscroll<br />
&#8212;&#8212;&#8212;-<br />
* Prepend &#8211;personality arg to .ini filename<br />
* Add non-pch header<br />
* Reduce minimum Unix Context menu sentry delay<br />
* Clean up configuration panel</p>
<p>Devpak<br />
&#8212;&#8212;<br />
* Fixed minor memory leak</p>
<p>Envvars<br />
&#8212;&#8212;-<br />
* Added support for envvars per project<br />
* Added support for recursion and C::B macro expansion<br />
* Made debug output to debug console optional<br />
* Fixed C::B freeze due to unresolvable recursion (limitation -but not a bug!- of MacrosManager)</p>
<p>KeyBinder<br />
&#8212;&#8212;&#8212;<br />
* Re-enabled dynamic merge eliminating consideration of duplicates<br />
* Prepend &#8211;personality arg to cbKeybinder.ini filename<br />
* Use full menu paths as key value in external storage<br />
* Resolve unmatched menu id&#8217;s with full menu paths<br />
* Add Tool menu shortcut preservation via cbEVT_MENUBAR_CREATE_BEGIN/END events</p>
<p>Libfinder<br />
&#8212;&#8212;&#8212;<br />
* Updated to new wxSmith</p>
<p>wxSmith<br />
&#8212;&#8212;-<br />
* Fixed bug in long string properties (multiline editor was not shown)<br />
* Fixed wxSmith extensions in RegExTestbed plugin<br />
* Applied patch (made by Biplab) to make wxCustomButton more wx2.8 compatible<br />
* Added missing EVT_INIT_DIALOG into wxDialog<br />
* When saving string into xml files, &amp; is now stored as &amp; &#8211; this prevents a little bit incompatibilities between XRC file versions<br />
* Restored wxSmith bindings in main C::B project<br />
* Internal update of resources<br />
* Unsupported items (in XRC-based resources) are now removed from palette (they were only disabled before)<br />
* Added few NULL-pointer checks into wxsDrawingPanel to improve stability<br />
* Updated refreshing system in editor<br />
* Added &#8220;Extra code&#8221; property based on patch by #2029 by Raph, some small bug fixed by the way<br />
* Applied patch #2032 by Raph: wxSmith: prevent menueditor crash<br />
* Applied patch #2031 by raph &#8211; added missing icons in art provider, combo boxes in image editor are now sorted<br />
* Applied patch #2030 by raph &#8211; added missing icon property for menus<br />
* Fixed problems with generated code using wxFontEnumerator (it was incompatible with wx 2.8)<br />
* Applied patch #1994 by stahta01: Enable wxSmith build using wxMSW without PCH<br />
* Removed flickering of editor when there&#8217;s some dialog opened in C::B<br />
* Fixed updating position when using drag&amp;drop in editor inside items without sizers<br />
* Another anti-artifact fix (prevent fetching screen content when preview is being shown/hidden)<br />
* Applied patches #2041 (wxSmith: wxsItemResData doesn&#8217;t store tool children ids fix) and #2042 (wxSmith: &#8220;Resource already exists&#8221;) made by Raph:<br />
* wxHtmlWindow tries to load html page when it&#8217;s shown in preview<br />
* Small update to wxsDrawingWindow<br />
* Update to code generating new event handler &#8211; it now shows new handler property inside editor<br />
* Fixed bug #10980: Reproducible crash with Cut/Paste<br />
* Fixed bug  #10680: Pasting controls ignores insertion point<br />
* Fixed: [Bug #11188] Dialogs Incorrectly Assign wxWS_EX_VALIDATE_RECURSIVELY<br />
* Yield delay method is now selected for Mac when fetching editor content, added Refresh before Update.<br />
* Fixed sizing for childless sizers (static box in wxStaticBox sizer did not expand)<br />
* Updated xml loading routines so they support unicode paths now<br />
* Massive NULL-&gt;0 udpate (in both generated code and wxSmith&#8217;s code)<br />
* Updated function operating on files to use Encoding / BOM.<br />
* Applied fix that will probably prevent some rare crashes when closing editor<br />
* Fixed many issues with wxWidgets wizard when project name was not build from alphanumeric characters only<br />
* Applied some advises by killerbot (http://forums.codeblocks.org/index.php/topic,6235.msg47719.html#msg47719) related to wxWidgets wizard and wxSmith-generated code<br />
* Fixed bug which caused project name to be empty in resource tree after creating it with wizard<br />
* Added PCH support for new resources<br />
* Switched naming of new sources / wxs files to CamelCase<br />
* Added &lt;wx/string.h&gt; to list of includes added by default<br />
* Small update to wizard-generated files (no need to guard #include &#8220;wx_pch.h&#8221;)<br />
* Automatically switch to Resources tab when resource is opened<br />
* Fix bug in splitter between resource tree and property browser &#8211; it&#8217;s now properly centered in case it&#8217;s position is not stored in configuration<br />
* Fixed synchronization issues between editor and resource tree selection<br />
* Fixed: [Bug #11454] wxDatePickerCtrl: wxDataEvent instead of wxDateEvent<br />
* Added few missing icons and fixed small bug in property editor (it didn&#8217;t clear events page after closing editor)<br />
* Fixed bug #11274 &#8211; Double click item in Resources tree, 2 editor tabs opened<br />
* Synced style lists with XRC sources (it may add extra styles for most components but at least it will prevent missing ones)</p>
<p>Have a nice experience with the newer Nightlies. <img src='http://biplab.in/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://biplab.in/2007/07/codeblocks-june-month-update-summary/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

