<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>fmslogo Code changes</title><link>https://sourceforge.net/p/fmslogo/source/</link><description>Recent changes to Code repository in fmslogo project</description><atom:link href="https://sourceforge.net/p/fmslogo/source/feed" rel="self"/><language>en</language><lastBuildDate>Mon, 06 Apr 2026 00:45:36 -0000</lastBuildDate><atom:link href="https://sourceforge.net/p/fmslogo/source/feed" rel="self" type="application/rss+xml"/><item><title>Update logic that checks if FMSLogo is running on startup to use wxSingleInstanceChecker on Windows.</title><link>https://sourceforge.net/p/fmslogo/source/6142/</link><description>&lt;div class="markdown_content"&gt;&lt;p&gt;Update logic that checks if FMSLogo is running on startup to use wxSingleInstanceChecker on Windows. Before, it called ::CreateMutex() directly. Using the wxWidgets class increased the compiled binary size by ~1KB, which is worth the benefit of not having conditional compilation. There is still Windows-specific logic for naming the mutex and for showing the existing application.&lt;br/&gt;&lt;a href="/p/fmslogo/source/6142/"&gt;View Changes&lt;/a&gt;&lt;/p&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">david_costanzo</dc:creator><pubDate>Mon, 06 Apr 2026 00:45:36 -0000</pubDate><guid>https://sourceforge.net/p/fmslogo/source/6142/</guid></item><item><title>Apply the fix for Bug #598 to NAME.</title><link>https://sourceforge.net/p/fmslogo/source/6141/</link><description>&lt;div class="markdown_content"&gt;&lt;p&gt;Apply the fix for Bug #598 to NAME. This fixes a bug where NAME didn't behave correctly if the input variable name is name.variable.input or name.value.input. As for QUEUE and DEQUEUE, the common case (when the procedure's parameter's don't shadow the variable to be assigned) is executed within the procedure, not as the macro's output list.&lt;br/&gt;&lt;a href="/p/fmslogo/source/6141/"&gt;View Changes&lt;/a&gt;&lt;/p&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">david_costanzo</dc:creator><pubDate>Sat, 04 Apr 2026 01:24:10 -0000</pubDate><guid>https://sourceforge.net/p/fmslogo/source/6141/</guid></item><item><title>Remove what may be redundant logic in begin_apply.</title><link>https://sourceforge.net/p/fmslogo/source/6140/</link><description>&lt;div class="markdown_content"&gt;&lt;p&gt;Remove what may be redundant logic in begin_apply. If I'm correct, this makes the complicated evaluator code a little simpler without introducing a regression.&lt;br/&gt;&lt;a href="/p/fmslogo/source/6140/"&gt;View Changes&lt;/a&gt;&lt;/p&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">david_costanzo</dc:creator><pubDate>Fri, 03 Apr 2026 03:14:49 -0000</pubDate><guid>https://sourceforge.net/p/fmslogo/source/6140/</guid></item><item><title>Refactoring: Replace a for loop with no initialization statement with a while loop.</title><link>https://sourceforge.net/p/fmslogo/source/6139/</link><description>&lt;div class="markdown_content"&gt;&lt;p&gt;Refactoring: Replace a for loop with no initialization statement with a while loop. This makes the code structure clearer.&lt;br/&gt;&lt;a href="/p/fmslogo/source/6139/"&gt;View Changes&lt;/a&gt;&lt;/p&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">david_costanzo</dc:creator><pubDate>Fri, 03 Apr 2026 02:36:08 -0000</pubDate><guid>https://sourceforge.net/p/fmslogo/source/6139/</guid></item><item><title>Refactoring: Move a local variable declaration and assignment closer to where the variable is first used.</title><link>https://sourceforge.net/p/fmslogo/source/6138/</link><description>&lt;div class="markdown_content"&gt;&lt;p&gt;Refactoring: Move a local variable declaration and assignment closer to where the variable is first used. This makes the code easier to read.&lt;br/&gt;&lt;a href="/p/fmslogo/source/6138/"&gt;View Changes&lt;/a&gt;&lt;/p&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">david_costanzo</dc:creator><pubDate>Fri, 03 Apr 2026 02:28:02 -0000</pubDate><guid>https://sourceforge.net/p/fmslogo/source/6138/</guid></item><item><title>Update test log with output from new tests.</title><link>https://sourceforge.net/p/fmslogo/source/6137/</link><description>&lt;div class="markdown_content"&gt;&lt;p&gt;Update test log with output from new tests.&lt;br/&gt;&lt;a href="/p/fmslogo/source/6137/"&gt;View Changes&lt;/a&gt;&lt;/p&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">david_costanzo</dc:creator><pubDate>Fri, 03 Apr 2026 02:02:08 -0000</pubDate><guid>https://sourceforge.net/p/fmslogo/source/6137/</guid></item><item><title>Fix Bug #600; A procedure which runs a tail-called APPLY no longer leaks its parameters into the caller's scope.</title><link>https://sourceforge.net/p/fmslogo/source/6136/</link><description>&lt;div class="markdown_content"&gt;&lt;p&gt;Fix Bug #600; A procedure which runs a tail-called APPLY no longer leaks its parameters into the caller's scope.&lt;br/&gt;&lt;a href="/p/fmslogo/source/6136/"&gt;View Changes&lt;/a&gt;&lt;/p&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">david_costanzo</dc:creator><pubDate>Thu, 02 Apr 2026 03:33:20 -0000</pubDate><guid>https://sourceforge.net/p/fmslogo/source/6136/</guid></item><item><title>Add a bad input test to APPLY that crashes UCBLogo but not FMSLogo.</title><link>https://sourceforge.net/p/fmslogo/source/6135/</link><description>&lt;div class="markdown_content"&gt;&lt;p&gt;Add a bad input test to APPLY that crashes UCBLogo but not FMSLogo. This is important, in case I cherry-pick changes from UCBLogo to fix problems in FMSLogo.&lt;br/&gt;&lt;a href="/p/fmslogo/source/6135/"&gt;View Changes&lt;/a&gt;&lt;/p&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">david_costanzo</dc:creator><pubDate>Thu, 02 Apr 2026 03:03:10 -0000</pubDate><guid>https://sourceforge.net/p/fmslogo/source/6135/</guid></item><item><title>Rewrite some tests which log very long lines to instead log short lines.</title><link>https://sourceforge.net/p/fmslogo/source/6134/</link><description>&lt;div class="markdown_content"&gt;&lt;p&gt;Rewrite some tests which log very long lines to instead log short lines. This addresses a problem when using a side-by-side differ to compare the test log to the baseline test log. Notably, meld has a limit of 8K characters per line.&lt;br/&gt;&lt;a href="/p/fmslogo/source/6134/"&gt;View Changes&lt;/a&gt;&lt;/p&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">david_costanzo</dc:creator><pubDate>Wed, 01 Apr 2026 02:10:52 -0000</pubDate><guid>https://sourceforge.net/p/fmslogo/source/6134/</guid></item><item><title>Use wxSingleInstanceChecker to detect if another instance of FMSLogo is running on startup.</title><link>https://sourceforge.net/p/fmslogo/source/6133/</link><description>&lt;div class="markdown_content"&gt;&lt;p&gt;Use wxSingleInstanceChecker to detect if another instance of FMSLogo is running on startup. This prevents multiple instances of FMSLogo from running on GNU/Linux unless to they were given a specific program to run. The CreateMutex logic on Windows was preserved until it can be confirmed that wxSingleInstanceChecker can grab the exact same mutex. Otherwise, FMSLogo 8.5.0 couldn't detect if FMSLogo 8.4.0, the installer, or the uninstaller is running, and vice versa.&lt;br/&gt;&lt;a href="/p/fmslogo/source/6133/"&gt;View Changes&lt;/a&gt;&lt;/p&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">david_costanzo</dc:creator><pubDate>Tue, 31 Mar 2026 02:32:07 -0000</pubDate><guid>https://sourceforge.net/p/fmslogo/source/6133/</guid></item></channel></rss>