<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://scarlet.deltasoft.com/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Glenb</id>
	<title>ScarletDME - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://scarlet.deltasoft.com/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Glenb"/>
	<link rel="alternate" type="text/html" href="https://scarlet.deltasoft.com/index.php/Special:Contributions/Glenb"/>
	<updated>2026-08-23T02:46:13Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.46.0</generator>
	<entry>
		<id>https://scarlet.deltasoft.com/index.php?title=Installers&amp;diff=506</id>
		<title>Installers</title>
		<link rel="alternate" type="text/html" href="https://scarlet.deltasoft.com/index.php?title=Installers&amp;diff=506"/>
		<updated>2010-02-14T23:02:55Z</updated>

		<summary type="html">&lt;p&gt;Glenb: /* Deb */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Development of installation assiters or binary distribution packages.&lt;br /&gt;
&lt;br /&gt;
===RPM===&lt;br /&gt;
It exists, it need documenting and making into a auto build process on the gpl.openqm server. Contact [[User:Diccon|Diccon]] for info.&lt;br /&gt;
&lt;br /&gt;
===Deb===&lt;br /&gt;
For Ubuntu, Debian, and other debian based distros.&lt;br /&gt;
&lt;br /&gt;
Debian package, a classic one exists. It can be done again. [[User:GlenB|GlenB]] is the contact for this.&lt;br /&gt;
&lt;br /&gt;
A bundle of build and publish scripts, repository formats/files, and various source files can be found [http://www.scarletdme.org/downloads/qmdeb-pkg-files.tgz here]. This bundle includes the source releases of the OpenQM project and all of the files must be rebranded to reflect the ScarletDME project name.&lt;br /&gt;
&lt;br /&gt;
===Distro neutral script===&lt;br /&gt;
This is an idea at the moment, mainley aimed at developers. If you have an install of QM already you might want to quickly setup multiple QM directorys/version on one server, to allow you to play around. &lt;br /&gt;
&lt;br /&gt;
To achieve this a distro neutral script could be written to se the current dir of QM to be the current running one.&lt;br /&gt;
*Move out QM.config in /etc, place an apropriate one for current dir&lt;br /&gt;
*check for groups, qm, and qmdev, create if missing. &lt;br /&gt;
*move or link to /usr/bin/qm (and other binarys)&lt;br /&gt;
&lt;br /&gt;
This should be non destructive and able allow reinstantiation of previous installs.&lt;/div&gt;</summary>
		<author><name>Glenb</name></author>
	</entry>
	<entry>
		<id>https://scarlet.deltasoft.com/index.php?title=Installers&amp;diff=505</id>
		<title>Installers</title>
		<link rel="alternate" type="text/html" href="https://scarlet.deltasoft.com/index.php?title=Installers&amp;diff=505"/>
		<updated>2010-02-14T22:58:43Z</updated>

		<summary type="html">&lt;p&gt;Glenb: /* Deb */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Development of installation assiters or binary distribution packages.&lt;br /&gt;
&lt;br /&gt;
===RPM===&lt;br /&gt;
It exists, it need documenting and making into a auto build process on the gpl.openqm server. Contact [[User:Diccon|Diccon]] for info.&lt;br /&gt;
&lt;br /&gt;
===Deb===&lt;br /&gt;
For Ubuntu, Debian, and other debian based distros.&lt;br /&gt;
&lt;br /&gt;
Debian package, a classic one exists. It can be done again. [http://www.scarletdme.org/wiki/User:GlenB GlenB] is the contact for this.&lt;br /&gt;
&lt;br /&gt;
===Distro neutral script===&lt;br /&gt;
This is an idea at the moment, mainley aimed at developers. If you have an install of QM already you might want to quickly setup multiple QM directorys/version on one server, to allow you to play around. &lt;br /&gt;
&lt;br /&gt;
To achieve this a distro neutral script could be written to se the current dir of QM to be the current running one.&lt;br /&gt;
*Move out QM.config in /etc, place an apropriate one for current dir&lt;br /&gt;
*check for groups, qm, and qmdev, create if missing. &lt;br /&gt;
*move or link to /usr/bin/qm (and other binarys)&lt;br /&gt;
&lt;br /&gt;
This should be non destructive and able allow reinstantiation of previous installs.&lt;/div&gt;</summary>
		<author><name>Glenb</name></author>
	</entry>
	<entry>
		<id>https://scarlet.deltasoft.com/index.php?title=User:GlenB&amp;diff=504</id>
		<title>User:GlenB</title>
		<link rel="alternate" type="text/html" href="https://scarlet.deltasoft.com/index.php?title=User:GlenB&amp;diff=504"/>
		<updated>2010-02-14T22:57:45Z</updated>

		<summary type="html">&lt;p&gt;Glenb: New page: Glen Batchelor: [mailto:batchelg@bellsouth.net E-Mail] [http://twitter.com/pickcoder Twitter]&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Glen Batchelor: [mailto:batchelg@bellsouth.net E-Mail] [http://twitter.com/pickcoder Twitter]&lt;/div&gt;</summary>
		<author><name>Glenb</name></author>
	</entry>
	<entry>
		<id>https://scarlet.deltasoft.com/index.php?title=Custom_Compiler_Modes&amp;diff=403</id>
		<title>Custom Compiler Modes</title>
		<link rel="alternate" type="text/html" href="https://scarlet.deltasoft.com/index.php?title=Custom_Compiler_Modes&amp;diff=403"/>
		<updated>2009-04-26T04:21:06Z</updated>

		<summary type="html">&lt;p&gt;Glenb: /* OpenQM GPL Custom Compiler Modes */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
== OpenQM GPL Compatibility Compiler Modes ==&lt;br /&gt;
&lt;br /&gt;
===HEADING.NO.EJECT===&lt;br /&gt;
This is provided to function the same as the commercial HEADING.NO.EJECT. When this mode is enabled, the NO.EJECT mode of the QMBasic HEADING statement is set as the default. Automatic page throw, on setting a new heading, is suppressed.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===NO.ECHO.DATA=== &lt;br /&gt;
This is provided to function the same as the commercial NO.ECHO.DATA. When this mode is enabled, the application will not echo characters to standard out/terminal when being used as a data input method.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== OpenQM GPL Custom Compiler Modes ==&lt;br /&gt;
&lt;br /&gt;
===NO.CASE.INVERT=== &lt;br /&gt;
This mode will cause INPUT and INPUT@ to ignore the case inversion state of PTERM, when the application executes. The state of PTERM is reserved during execution of _INPUT, so the session operates normally outside of the code which has &amp;quot;$mode no.case.invert&amp;quot; specified.&lt;/div&gt;</summary>
		<author><name>Glenb</name></author>
	</entry>
	<entry>
		<id>https://scarlet.deltasoft.com/index.php?title=Custom_Compiler_Modes&amp;diff=402</id>
		<title>Custom Compiler Modes</title>
		<link rel="alternate" type="text/html" href="https://scarlet.deltasoft.com/index.php?title=Custom_Compiler_Modes&amp;diff=402"/>
		<updated>2009-04-26T04:20:46Z</updated>

		<summary type="html">&lt;p&gt;Glenb: /* OpenQM GPL Compatibility Compiler Modes */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
== OpenQM GPL Compatibility Compiler Modes ==&lt;br /&gt;
&lt;br /&gt;
===HEADING.NO.EJECT===&lt;br /&gt;
This is provided to function the same as the commercial HEADING.NO.EJECT. When this mode is enabled, the NO.EJECT mode of the QMBasic HEADING statement is set as the default. Automatic page throw, on setting a new heading, is suppressed.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===NO.ECHO.DATA=== &lt;br /&gt;
This is provided to function the same as the commercial NO.ECHO.DATA. When this mode is enabled, the application will not echo characters to standard out/terminal when being used as a data input method.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== OpenQM GPL Custom Compiler Modes ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;NO.CASE.INVERT&#039;&#039;&#039; - This mode will cause INPUT and INPUT@ to ignore the case inversion state of PTERM, when the application executes. The state of PTERM is reserved during execution of _INPUT, so the session operates normally outside of the code which has &amp;quot;$mode no.case.invert&amp;quot; specified.&lt;/div&gt;</summary>
		<author><name>Glenb</name></author>
	</entry>
	<entry>
		<id>https://scarlet.deltasoft.com/index.php?title=Custom_Compiler_Modes&amp;diff=401</id>
		<title>Custom Compiler Modes</title>
		<link rel="alternate" type="text/html" href="https://scarlet.deltasoft.com/index.php?title=Custom_Compiler_Modes&amp;diff=401"/>
		<updated>2009-04-26T04:20:29Z</updated>

		<summary type="html">&lt;p&gt;Glenb: /* OpenQM GPL Compatibility Compiler Modes */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
== OpenQM GPL Compatibility Compiler Modes ==&lt;br /&gt;
&lt;br /&gt;
===HEADING.NO.EJECT=== - This is provided to function the same as the commercial HEADING.NO.EJECT. When this mode is enabled, the NO.EJECT mode of the QMBasic HEADING statement is set as the default. Automatic page throw, on setting a new heading, is suppressed.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===NO.ECHO.DATA=== - This is provided to function the same as the commercial NO.ECHO.DATA. When this mode is enabled, the application will not echo characters to standard out/terminal when being used as a data input method.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== OpenQM GPL Custom Compiler Modes ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;NO.CASE.INVERT&#039;&#039;&#039; - This mode will cause INPUT and INPUT@ to ignore the case inversion state of PTERM, when the application executes. The state of PTERM is reserved during execution of _INPUT, so the session operates normally outside of the code which has &amp;quot;$mode no.case.invert&amp;quot; specified.&lt;/div&gt;</summary>
		<author><name>Glenb</name></author>
	</entry>
	<entry>
		<id>https://scarlet.deltasoft.com/index.php?title=Custom_QMBASIC_Options&amp;diff=400</id>
		<title>Custom QMBASIC Options</title>
		<link rel="alternate" type="text/html" href="https://scarlet.deltasoft.com/index.php?title=Custom_QMBASIC_Options&amp;diff=400"/>
		<updated>2009-04-26T04:05:20Z</updated>

		<summary type="html">&lt;p&gt;Glenb: /* QMBASIC Command Options (By Name) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== QMBASIC Command Options (By Name) ==&lt;br /&gt;
&lt;br /&gt;
===INPUT===&lt;br /&gt;
 &amp;lt;b&amp;gt;NOCASEINVERT&amp;lt;/b&amp;gt; - This option ignores the case inversion state of PTERM during the single execution of the statement.&lt;br /&gt;
     &amp;lt;br /&amp;gt;Example Code:&amp;lt;br /&amp;gt;&lt;br /&gt;
     INPUT MYVAR NOCASEINVERT&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===INPUT@===&lt;br /&gt;
 &amp;lt;b&amp;gt;NOCASEINVERT&amp;lt;/b&amp;gt; - This option ignores the case inversion state of PTERM during the single execution of the statement.&lt;br /&gt;
     &amp;lt;br /&amp;gt;Example Code:&amp;lt;br /&amp;gt;&lt;br /&gt;
     INPUT@(0,0) MYVAR NOCASEINVERT&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===SOCKET.INFO===&lt;br /&gt;
 &amp;lt;b&amp;gt;SKT$INFO.FAMILY&amp;lt;/b&amp;gt; - This key was added to support the identification of IPv4 and IPv6 family types on an open socket handle.&lt;br /&gt;
        SKT$INFO.FAMILY.IPV4 - This value means the open socket is IPv4&lt;br /&gt;
        SKT$INFO.FAMILY.IPV6 - This value means the open socket is IPv6&lt;br /&gt;
     &amp;lt;br /&amp;gt;Example Code:&amp;lt;br /&amp;gt;&lt;br /&gt;
     SKTFAMILYTYPE = SOCKET.INFO(SKTHANDLE,SKT$INFO.FAMILY)&lt;br /&gt;
     BEGIN CASE&lt;br /&gt;
       CASE SKTFAMILYTYPE = SKT$INFO.FAMILY.IPV4; CRT &amp;quot;This is an IPv4 socket!&amp;quot;&lt;br /&gt;
       CASE SKTFAMILYTYPE = SKT$INFO.FAMILY.IPV6; CRT &amp;quot;This is an IPv6 socket!&amp;quot;&lt;br /&gt;
     END CASE&lt;/div&gt;</summary>
		<author><name>Glenb</name></author>
	</entry>
	<entry>
		<id>https://scarlet.deltasoft.com/index.php?title=Custom_QMBASIC_Options&amp;diff=399</id>
		<title>Custom QMBASIC Options</title>
		<link rel="alternate" type="text/html" href="https://scarlet.deltasoft.com/index.php?title=Custom_QMBASIC_Options&amp;diff=399"/>
		<updated>2009-04-26T04:05:06Z</updated>

		<summary type="html">&lt;p&gt;Glenb: /* INPUT */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== QMBASIC Command Options (By Name) ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Table of Contents&#039;&#039;&#039;&lt;br /&gt;
[[#INPUT]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===INPUT===&lt;br /&gt;
 &amp;lt;b&amp;gt;NOCASEINVERT&amp;lt;/b&amp;gt; - This option ignores the case inversion state of PTERM during the single execution of the statement.&lt;br /&gt;
     &amp;lt;br /&amp;gt;Example Code:&amp;lt;br /&amp;gt;&lt;br /&gt;
     INPUT MYVAR NOCASEINVERT&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===INPUT@===&lt;br /&gt;
 &amp;lt;b&amp;gt;NOCASEINVERT&amp;lt;/b&amp;gt; - This option ignores the case inversion state of PTERM during the single execution of the statement.&lt;br /&gt;
     &amp;lt;br /&amp;gt;Example Code:&amp;lt;br /&amp;gt;&lt;br /&gt;
     INPUT@(0,0) MYVAR NOCASEINVERT&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===SOCKET.INFO===&lt;br /&gt;
 &amp;lt;b&amp;gt;SKT$INFO.FAMILY&amp;lt;/b&amp;gt; - This key was added to support the identification of IPv4 and IPv6 family types on an open socket handle.&lt;br /&gt;
        SKT$INFO.FAMILY.IPV4 - This value means the open socket is IPv4&lt;br /&gt;
        SKT$INFO.FAMILY.IPV6 - This value means the open socket is IPv6&lt;br /&gt;
     &amp;lt;br /&amp;gt;Example Code:&amp;lt;br /&amp;gt;&lt;br /&gt;
     SKTFAMILYTYPE = SOCKET.INFO(SKTHANDLE,SKT$INFO.FAMILY)&lt;br /&gt;
     BEGIN CASE&lt;br /&gt;
       CASE SKTFAMILYTYPE = SKT$INFO.FAMILY.IPV4; CRT &amp;quot;This is an IPv4 socket!&amp;quot;&lt;br /&gt;
       CASE SKTFAMILYTYPE = SKT$INFO.FAMILY.IPV6; CRT &amp;quot;This is an IPv6 socket!&amp;quot;&lt;br /&gt;
     END CASE&lt;/div&gt;</summary>
		<author><name>Glenb</name></author>
	</entry>
	<entry>
		<id>https://scarlet.deltasoft.com/index.php?title=Custom_QMBASIC_Options&amp;diff=398</id>
		<title>Custom QMBASIC Options</title>
		<link rel="alternate" type="text/html" href="https://scarlet.deltasoft.com/index.php?title=Custom_QMBASIC_Options&amp;diff=398"/>
		<updated>2009-04-26T04:04:41Z</updated>

		<summary type="html">&lt;p&gt;Glenb: /* QMBASIC Command Options (By Name) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== QMBASIC Command Options (By Name) ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Table of Contents&#039;&#039;&#039;&lt;br /&gt;
[[#INPUT]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===INPUT===&lt;br /&gt;
 &amp;lt;b&amp;gt;NOCASEINVERT&amp;lt;/b&amp;gt; - This option ignores the case inversion state of PTERM during the single execution of the statement.&lt;br /&gt;
     &amp;lt;br /&amp;gt;Example Code:&amp;lt;br /&amp;gt;&lt;br /&gt;
     INPUT MYVAR NOCASEINVERT&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;INPUT@&#039;&#039;&#039;&lt;br /&gt;
 &amp;lt;b&amp;gt;NOCASEINVERT&amp;lt;/b&amp;gt; - This option ignores the case inversion state of PTERM during the single execution of the statement.&lt;br /&gt;
     &amp;lt;br /&amp;gt;Example Code:&amp;lt;br /&amp;gt;&lt;br /&gt;
     INPUT@(0,0) MYVAR NOCASEINVERT&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;SOCKET.INFO&#039;&#039;&#039;&lt;br /&gt;
 &amp;lt;b&amp;gt;SKT$INFO.FAMILY&amp;lt;/b&amp;gt; - This key was added to support the identification of IPv4 and IPv6 family types on an open socket handle.&lt;br /&gt;
        SKT$INFO.FAMILY.IPV4 - This value means the open socket is IPv4&lt;br /&gt;
        SKT$INFO.FAMILY.IPV6 - This value means the open socket is IPv6&lt;br /&gt;
     &amp;lt;br /&amp;gt;Example Code:&amp;lt;br /&amp;gt;&lt;br /&gt;
     SKTFAMILYTYPE = SOCKET.INFO(SKTHANDLE,SKT$INFO.FAMILY)&lt;br /&gt;
     BEGIN CASE&lt;br /&gt;
       CASE SKTFAMILYTYPE = SKT$INFO.FAMILY.IPV4; CRT &amp;quot;This is an IPv4 socket!&amp;quot;&lt;br /&gt;
       CASE SKTFAMILYTYPE = SKT$INFO.FAMILY.IPV6; CRT &amp;quot;This is an IPv6 socket!&amp;quot;&lt;br /&gt;
     END CASE&lt;/div&gt;</summary>
		<author><name>Glenb</name></author>
	</entry>
	<entry>
		<id>https://scarlet.deltasoft.com/index.php?title=Custom_QMBASIC_Options&amp;diff=397</id>
		<title>Custom QMBASIC Options</title>
		<link rel="alternate" type="text/html" href="https://scarlet.deltasoft.com/index.php?title=Custom_QMBASIC_Options&amp;diff=397"/>
		<updated>2009-04-26T04:03:14Z</updated>

		<summary type="html">&lt;p&gt;Glenb: /* QMBASIC Command Options (By Name) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== QMBASIC Command Options (By Name) ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Table of Contents&#039;&#039;&#039;&lt;br /&gt;
[[#INPUT]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;INPUT&#039;&#039;&#039;&lt;br /&gt;
 &amp;lt;b&amp;gt;NOCASEINVERT&amp;lt;/b&amp;gt; - This option ignores the case inversion state of PTERM during the single execution of the statement.&lt;br /&gt;
     &amp;lt;br /&amp;gt;Example Code:&amp;lt;br /&amp;gt;&lt;br /&gt;
     INPUT MYVAR NOCASEINVERT&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;INPUT@&#039;&#039;&#039;&lt;br /&gt;
 &amp;lt;b&amp;gt;NOCASEINVERT&amp;lt;/b&amp;gt; - This option ignores the case inversion state of PTERM during the single execution of the statement.&lt;br /&gt;
     &amp;lt;br /&amp;gt;Example Code:&amp;lt;br /&amp;gt;&lt;br /&gt;
     INPUT@(0,0) MYVAR NOCASEINVERT&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;SOCKET.INFO&#039;&#039;&#039;&lt;br /&gt;
 &amp;lt;b&amp;gt;SKT$INFO.FAMILY&amp;lt;/b&amp;gt; - This key was added to support the identification of IPv4 and IPv6 family types on an open socket handle.&lt;br /&gt;
        SKT$INFO.FAMILY.IPV4 - This value means the open socket is IPv4&lt;br /&gt;
        SKT$INFO.FAMILY.IPV6 - This value means the open socket is IPv6&lt;br /&gt;
     &amp;lt;br /&amp;gt;Example Code:&amp;lt;br /&amp;gt;&lt;br /&gt;
     SKTFAMILYTYPE = SOCKET.INFO(SKTHANDLE,SKT$INFO.FAMILY)&lt;br /&gt;
     BEGIN CASE&lt;br /&gt;
       CASE SKTFAMILYTYPE = SKT$INFO.FAMILY.IPV4; CRT &amp;quot;This is an IPv4 socket!&amp;quot;&lt;br /&gt;
       CASE SKTFAMILYTYPE = SKT$INFO.FAMILY.IPV6; CRT &amp;quot;This is an IPv6 socket!&amp;quot;&lt;br /&gt;
     END CASE&lt;/div&gt;</summary>
		<author><name>Glenb</name></author>
	</entry>
	<entry>
		<id>https://scarlet.deltasoft.com/index.php?title=Custom_QMBASIC_Options&amp;diff=396</id>
		<title>Custom QMBASIC Options</title>
		<link rel="alternate" type="text/html" href="https://scarlet.deltasoft.com/index.php?title=Custom_QMBASIC_Options&amp;diff=396"/>
		<updated>2009-04-26T04:00:54Z</updated>

		<summary type="html">&lt;p&gt;Glenb: /* QMBASIC Command Options (By Name) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== QMBASIC Command Options (By Name) ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;INPUT@&#039;&#039;&#039;&lt;br /&gt;
 &amp;lt;b&amp;gt;NOCASEINVERT&amp;lt;/b&amp;gt; - This option ignores the case inversion state of PTERM during the single execution of the statement.&lt;br /&gt;
     &amp;lt;br /&amp;gt;Example Code:&amp;lt;br /&amp;gt;&lt;br /&gt;
     INPUT MYVAR NOCASEINVERT&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;INPUT@&#039;&#039;&#039;&lt;br /&gt;
 &amp;lt;b&amp;gt;NOCASEINVERT&amp;lt;/b&amp;gt; - This option ignores the case inversion state of PTERM during the single execution of the statement.&lt;br /&gt;
     &amp;lt;br /&amp;gt;Example Code:&amp;lt;br /&amp;gt;&lt;br /&gt;
     INPUT@(0,0) MYVAR NOCASEINVERT&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;SOCKET.INFO&#039;&#039;&#039;&lt;br /&gt;
 &amp;lt;b&amp;gt;SKT$INFO.FAMILY&amp;lt;/b&amp;gt; - This key was added to support the identification of IPv4 and IPv6 family types on an open socket handle.&lt;br /&gt;
        SKT$INFO.FAMILY.IPV4 - This value means the open socket is IPv4&lt;br /&gt;
        SKT$INFO.FAMILY.IPV6 - This value means the open socket is IPv6&lt;br /&gt;
     &amp;lt;br /&amp;gt;Example Code:&amp;lt;br /&amp;gt;&lt;br /&gt;
     SKTFAMILYTYPE = SOCKET.INFO(SKTHANDLE,SKT$INFO.FAMILY)&lt;br /&gt;
     BEGIN CASE&lt;br /&gt;
       CASE SKTFAMILYTYPE = SKT$INFO.FAMILY.IPV4; CRT &amp;quot;This is an IPv4 socket!&amp;quot;&lt;br /&gt;
       CASE SKTFAMILYTYPE = SKT$INFO.FAMILY.IPV6; CRT &amp;quot;This is an IPv6 socket!&amp;quot;&lt;br /&gt;
     END CASE&lt;/div&gt;</summary>
		<author><name>Glenb</name></author>
	</entry>
	<entry>
		<id>https://scarlet.deltasoft.com/index.php?title=Custom_QMBASIC_Options&amp;diff=395</id>
		<title>Custom QMBASIC Options</title>
		<link rel="alternate" type="text/html" href="https://scarlet.deltasoft.com/index.php?title=Custom_QMBASIC_Options&amp;diff=395"/>
		<updated>2009-04-26T04:00:25Z</updated>

		<summary type="html">&lt;p&gt;Glenb: /* QMBASIC Command Options (By Name) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== QMBASIC Command Options (By Name) ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Table Of Contents&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;nowiki&amp;gt; &lt;br /&gt;
 &amp;lt;a href=&amp;quot;#input&amp;quot;&amp;gt;INPUT&amp;lt;/a&amp;gt;&lt;br /&gt;
 &amp;lt;a href=&amp;quot;#inputat&amp;quot;&amp;gt;INPUT@&amp;lt;/a&amp;gt;&lt;br /&gt;
 &amp;lt;a href=&amp;quot;#socket.info&amp;quot;&amp;gt;SOCKET.INFO&amp;lt;/a&amp;gt;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;a name=&amp;quot;#inputat&amp;quot;&amp;gt;&#039;&#039;&#039;INPUT@&#039;&#039;&#039;&amp;lt;/a&amp;gt;&lt;br /&gt;
 &amp;lt;b&amp;gt;NOCASEINVERT&amp;lt;/b&amp;gt; - This option ignores the case inversion state of PTERM during the single execution of the statement.&lt;br /&gt;
     &amp;lt;br /&amp;gt;Example Code:&amp;lt;br /&amp;gt;&lt;br /&gt;
     INPUT MYVAR NOCASEINVERT&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;a name=&amp;quot;#inputat&amp;quot;&amp;gt;&#039;&#039;&#039;INPUT@&#039;&#039;&#039;&amp;lt;/a&amp;gt;&lt;br /&gt;
 &amp;lt;b&amp;gt;NOCASEINVERT&amp;lt;/b&amp;gt; - This option ignores the case inversion state of PTERM during the single execution of the statement.&lt;br /&gt;
     &amp;lt;br /&amp;gt;Example Code:&amp;lt;br /&amp;gt;&lt;br /&gt;
     INPUT@(0,0) MYVAR NOCASEINVERT&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;a name=&amp;quot;#socket.info&amp;quot;&amp;gt;&#039;&#039;&#039;SOCKET.INFO&#039;&#039;&#039;&amp;lt;/a&amp;gt;&lt;br /&gt;
 &amp;lt;b&amp;gt;SKT$INFO.FAMILY&amp;lt;/b&amp;gt; - This key was added to support the identification of IPv4 and IPv6 family types on an open socket handle.&lt;br /&gt;
        SKT$INFO.FAMILY.IPV4 - This value means the open socket is IPv4&lt;br /&gt;
        SKT$INFO.FAMILY.IPV6 - This value means the open socket is IPv6&lt;br /&gt;
     &amp;lt;br /&amp;gt;Example Code:&amp;lt;br /&amp;gt;&lt;br /&gt;
     SKTFAMILYTYPE = SOCKET.INFO(SKTHANDLE,SKT$INFO.FAMILY)&lt;br /&gt;
     BEGIN CASE&lt;br /&gt;
       CASE SKTFAMILYTYPE = SKT$INFO.FAMILY.IPV4; CRT &amp;quot;This is an IPv4 socket!&amp;quot;&lt;br /&gt;
       CASE SKTFAMILYTYPE = SKT$INFO.FAMILY.IPV6; CRT &amp;quot;This is an IPv6 socket!&amp;quot;&lt;br /&gt;
     END CASE&lt;/div&gt;</summary>
		<author><name>Glenb</name></author>
	</entry>
	<entry>
		<id>https://scarlet.deltasoft.com/index.php?title=Custom_QMBASIC_Options&amp;diff=394</id>
		<title>Custom QMBASIC Options</title>
		<link rel="alternate" type="text/html" href="https://scarlet.deltasoft.com/index.php?title=Custom_QMBASIC_Options&amp;diff=394"/>
		<updated>2009-04-26T03:59:44Z</updated>

		<summary type="html">&lt;p&gt;Glenb: /* QMBASIC Command Options (By Name) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== QMBASIC Command Options (By Name) ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Table Of Contents&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;nowiki&amp;gt; &lt;br /&gt;
 &amp;lt;a href=&amp;quot;#input&amp;quot;&amp;gt;INPUT&amp;lt;/a&amp;gt;&lt;br /&gt;
 &amp;lt;a href=&amp;quot;#inputat&amp;quot;&amp;gt;INPUT@&amp;lt;/a&amp;gt;&lt;br /&gt;
 &amp;lt;a href=&amp;quot;#socket.info&amp;quot;&amp;gt;SOCKET.INFO&amp;lt;/a&amp;gt;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;b&amp;gt;NOCASEINVERT&amp;lt;/b&amp;gt; - This option ignores the case inversion state of PTERM during the single execution of the statement.&lt;br /&gt;
     &amp;lt;br /&amp;gt;Example Code:&amp;lt;br /&amp;gt;&lt;br /&gt;
     INPUT MYVAR NOCASEINVERT&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;a name=&amp;quot;#inputat&amp;quot;&amp;gt;&#039;&#039;&#039;INPUT@&#039;&#039;&#039;&amp;lt;/a&amp;gt;&lt;br /&gt;
 &amp;lt;b&amp;gt;NOCASEINVERT&amp;lt;/b&amp;gt; - This option ignores the case inversion state of PTERM during the single execution of the statement.&lt;br /&gt;
     &amp;lt;br /&amp;gt;Example Code:&amp;lt;br /&amp;gt;&lt;br /&gt;
     INPUT@(0,0) MYVAR NOCASEINVERT&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;a name=&amp;quot;#socket.info&amp;quot;&amp;gt;&#039;&#039;&#039;SOCKET.INFO&#039;&#039;&#039;&amp;lt;/a&amp;gt;&lt;br /&gt;
 &amp;lt;b&amp;gt;SKT$INFO.FAMILY&amp;lt;/b&amp;gt; - This key was added to support the identification of IPv4 and IPv6 family types on an open socket handle.&lt;br /&gt;
        SKT$INFO.FAMILY.IPV4 - This value means the open socket is IPv4&lt;br /&gt;
        SKT$INFO.FAMILY.IPV6 - This value means the open socket is IPv6&lt;br /&gt;
     &amp;lt;br /&amp;gt;Example Code:&amp;lt;br /&amp;gt;&lt;br /&gt;
     SKTFAMILYTYPE = SOCKET.INFO(SKTHANDLE,SKT$INFO.FAMILY)&lt;br /&gt;
     BEGIN CASE&lt;br /&gt;
       CASE SKTFAMILYTYPE = SKT$INFO.FAMILY.IPV4; CRT &amp;quot;This is an IPv4 socket!&amp;quot;&lt;br /&gt;
       CASE SKTFAMILYTYPE = SKT$INFO.FAMILY.IPV6; CRT &amp;quot;This is an IPv6 socket!&amp;quot;&lt;br /&gt;
     END CASE&lt;/div&gt;</summary>
		<author><name>Glenb</name></author>
	</entry>
	<entry>
		<id>https://scarlet.deltasoft.com/index.php?title=Custom_QMBASIC_Options&amp;diff=393</id>
		<title>Custom QMBASIC Options</title>
		<link rel="alternate" type="text/html" href="https://scarlet.deltasoft.com/index.php?title=Custom_QMBASIC_Options&amp;diff=393"/>
		<updated>2009-04-26T03:58:12Z</updated>

		<summary type="html">&lt;p&gt;Glenb: /* QMBASIC Command Options (By Name) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== QMBASIC Command Options (By Name) ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Table Of Contents&#039;&#039;&#039;&lt;br /&gt;
 [#input INPUT]&lt;br /&gt;
 [#inputat INPUT@]&lt;br /&gt;
 [#socket.info SOCKET.INFO]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;a name=&amp;quot;#input&amp;quot;&amp;gt;&#039;&#039;&#039;INPUT&#039;&#039;&#039;&amp;lt;/a&amp;gt;&lt;br /&gt;
 &amp;lt;b&amp;gt;NOCASEINVERT&amp;lt;/b&amp;gt; - This option ignores the case inversion state of PTERM during the single execution of the statement.&lt;br /&gt;
     &amp;lt;br /&amp;gt;Example Code:&amp;lt;br /&amp;gt;&lt;br /&gt;
     INPUT MYVAR NOCASEINVERT&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;a name=&amp;quot;#inputat&amp;quot;&amp;gt;&#039;&#039;&#039;INPUT@&#039;&#039;&#039;&amp;lt;/a&amp;gt;&lt;br /&gt;
 &amp;lt;b&amp;gt;NOCASEINVERT&amp;lt;/b&amp;gt; - This option ignores the case inversion state of PTERM during the single execution of the statement.&lt;br /&gt;
     &amp;lt;br /&amp;gt;Example Code:&amp;lt;br /&amp;gt;&lt;br /&gt;
     INPUT@(0,0) MYVAR NOCASEINVERT&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;a name=&amp;quot;#socket.info&amp;quot;&amp;gt;&#039;&#039;&#039;SOCKET.INFO&#039;&#039;&#039;&amp;lt;/a&amp;gt;&lt;br /&gt;
 &amp;lt;b&amp;gt;SKT$INFO.FAMILY&amp;lt;/b&amp;gt; - This key was added to support the identification of IPv4 and IPv6 family types on an open socket handle.&lt;br /&gt;
        SKT$INFO.FAMILY.IPV4 - This value means the open socket is IPv4&lt;br /&gt;
        SKT$INFO.FAMILY.IPV6 - This value means the open socket is IPv6&lt;br /&gt;
     &amp;lt;br /&amp;gt;Example Code:&amp;lt;br /&amp;gt;&lt;br /&gt;
     SKTFAMILYTYPE = SOCKET.INFO(SKTHANDLE,SKT$INFO.FAMILY)&lt;br /&gt;
     BEGIN CASE&lt;br /&gt;
       CASE SKTFAMILYTYPE = SKT$INFO.FAMILY.IPV4; CRT &amp;quot;This is an IPv4 socket!&amp;quot;&lt;br /&gt;
       CASE SKTFAMILYTYPE = SKT$INFO.FAMILY.IPV6; CRT &amp;quot;This is an IPv6 socket!&amp;quot;&lt;br /&gt;
     END CASE&lt;/div&gt;</summary>
		<author><name>Glenb</name></author>
	</entry>
	<entry>
		<id>https://scarlet.deltasoft.com/index.php?title=Custom_QMBASIC_Options&amp;diff=392</id>
		<title>Custom QMBASIC Options</title>
		<link rel="alternate" type="text/html" href="https://scarlet.deltasoft.com/index.php?title=Custom_QMBASIC_Options&amp;diff=392"/>
		<updated>2009-04-26T03:52:28Z</updated>

		<summary type="html">&lt;p&gt;Glenb: /* QMBASIC Command Options (By Name) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== QMBASIC Command Options (By Name) ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Table Of Contents&#039;&#039;&#039;&lt;br /&gt;
 &amp;lt;a href=&amp;quot;#input&amp;quot;&amp;gt;INPUT&amp;lt;/a&amp;gt;&lt;br /&gt;
 &amp;lt;a href=&amp;quot;#inputat&amp;quot;&amp;gt;INPUT@&amp;lt;/a&amp;gt;&lt;br /&gt;
 &amp;lt;a href=&amp;quot;#socket.info&amp;quot;&amp;gt;SOCKET.INFO&amp;lt;/a&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;a name=&amp;quot;#input&amp;quot;&amp;gt;&#039;&#039;&#039;INPUT&#039;&#039;&#039;&amp;lt;/a&amp;gt;&lt;br /&gt;
 &amp;lt;b&amp;gt;NOCASEINVERT&amp;lt;/b&amp;gt; - This option ignores the case inversion state of PTERM during the single execution of the statement.&lt;br /&gt;
     &amp;lt;br /&amp;gt;Example Code:&amp;lt;br /&amp;gt;&lt;br /&gt;
     INPUT MYVAR NOCASEINVERT&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;a name=&amp;quot;#inputat&amp;quot;&amp;gt;&#039;&#039;&#039;INPUT@&#039;&#039;&#039;&amp;lt;/a&amp;gt;&lt;br /&gt;
 &amp;lt;b&amp;gt;NOCASEINVERT&amp;lt;/b&amp;gt; - This option ignores the case inversion state of PTERM during the single execution of the statement.&lt;br /&gt;
     &amp;lt;br /&amp;gt;Example Code:&amp;lt;br /&amp;gt;&lt;br /&gt;
     INPUT@(0,0) MYVAR NOCASEINVERT&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;a name=&amp;quot;#socket.info&amp;quot;&amp;gt;&#039;&#039;&#039;SOCKET.INFO&#039;&#039;&#039;&amp;lt;/a&amp;gt;&lt;br /&gt;
 &amp;lt;b&amp;gt;SKT$INFO.FAMILY&amp;lt;/b&amp;gt; - This key was added to support the identification of IPv4 and IPv6 family types on an open socket handle.&lt;br /&gt;
        SKT$INFO.FAMILY.IPV4 - This value means the open socket is IPv4&lt;br /&gt;
        SKT$INFO.FAMILY.IPV6 - This value means the open socket is IPv6&lt;br /&gt;
     &amp;lt;br /&amp;gt;Example Code:&amp;lt;br /&amp;gt;&lt;br /&gt;
     SKTFAMILYTYPE = SOCKET.INFO(SKTHANDLE,SKT$INFO.FAMILY)&lt;br /&gt;
     BEGIN CASE&lt;br /&gt;
       CASE SKTFAMILYTYPE = SKT$INFO.FAMILY.IPV4; CRT &amp;quot;This is an IPv4 socket!&amp;quot;&lt;br /&gt;
       CASE SKTFAMILYTYPE = SKT$INFO.FAMILY.IPV6; CRT &amp;quot;This is an IPv6 socket!&amp;quot;&lt;br /&gt;
     END CASE&lt;/div&gt;</summary>
		<author><name>Glenb</name></author>
	</entry>
	<entry>
		<id>https://scarlet.deltasoft.com/index.php?title=Custom_QMBASIC_Options&amp;diff=391</id>
		<title>Custom QMBASIC Options</title>
		<link rel="alternate" type="text/html" href="https://scarlet.deltasoft.com/index.php?title=Custom_QMBASIC_Options&amp;diff=391"/>
		<updated>2009-04-26T03:51:00Z</updated>

		<summary type="html">&lt;p&gt;Glenb: /* QMBASIC Command Options (By Name) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== QMBASIC Command Options (By Name) ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;INPUT&#039;&#039;&#039;&lt;br /&gt;
 &amp;lt;b&amp;gt;NOCASEINVERT&amp;lt;/b&amp;gt; - This option ignores the case inversion state of PTERM during the single execution of the statement.&lt;br /&gt;
     &amp;lt;br /&amp;gt;Example Code:&amp;lt;br /&amp;gt;&lt;br /&gt;
     INPUT MYVAR NOCASEINVERT&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;INPUT@&#039;&#039;&#039;&lt;br /&gt;
 &amp;lt;b&amp;gt;NOCASEINVERT&amp;lt;/b&amp;gt; - This option ignores the case inversion state of PTERM during the single execution of the statement.&lt;br /&gt;
     &amp;lt;br /&amp;gt;Example Code:&amp;lt;br /&amp;gt;&lt;br /&gt;
     INPUT@(0,0) MYVAR NOCASEINVERT&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;SOCKET.INFO&#039;&#039;&#039;&lt;br /&gt;
 &amp;lt;b&amp;gt;SKT$INFO.FAMILY&amp;lt;/b&amp;gt; - This key was added to support the identification of IPv4 and IPv6 family types on an open socket handle.&lt;br /&gt;
        SKT$INFO.FAMILY.IPV4 - This value means the open socket is IPv4&lt;br /&gt;
        SKT$INFO.FAMILY.IPV6 - This value means the open socket is IPv6&lt;br /&gt;
     &amp;lt;br /&amp;gt;Example Code:&amp;lt;br /&amp;gt;&lt;br /&gt;
     SKTFAMILYTYPE = SOCKET.INFO(SKTHANDLE,SKT$INFO.FAMILY)&lt;br /&gt;
     BEGIN CASE&lt;br /&gt;
       CASE SKTFAMILYTYPE = SKT$INFO.FAMILY.IPV4; CRT &amp;quot;This is an IPv4 socket!&amp;quot;&lt;br /&gt;
       CASE SKTFAMILYTYPE = SKT$INFO.FAMILY.IPV6; CRT &amp;quot;This is an IPv6 socket!&amp;quot;&lt;br /&gt;
     END CASE&lt;/div&gt;</summary>
		<author><name>Glenb</name></author>
	</entry>
	<entry>
		<id>https://scarlet.deltasoft.com/index.php?title=Custom_QMBASIC_Options&amp;diff=390</id>
		<title>Custom QMBASIC Options</title>
		<link rel="alternate" type="text/html" href="https://scarlet.deltasoft.com/index.php?title=Custom_QMBASIC_Options&amp;diff=390"/>
		<updated>2009-04-26T03:50:29Z</updated>

		<summary type="html">&lt;p&gt;Glenb: /* QMBASIC Command Options (By Name) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== QMBASIC Command Options (By Name) ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;INPUT&#039;&#039;&#039;&lt;br /&gt;
     &amp;lt;b&amp;gt;NOCASEINVERT&amp;lt;/b&amp;gt; - This option ignores the case inversion state of PTERM during the single execution of the statement.&lt;br /&gt;
     &amp;lt;br /&amp;gt;Example Code:&amp;lt;br /&amp;gt;&lt;br /&gt;
     INPUT MYVAR NOCASEINVERT&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;INPUT@&#039;&#039;&#039;&lt;br /&gt;
     &amp;lt;b&amp;gt;NOCASEINVERT&amp;lt;/b&amp;gt; - This option ignores the case inversion state of PTERM during the single execution of the statement.&lt;br /&gt;
     &amp;lt;br /&amp;gt;Example Code:&amp;lt;br /&amp;gt;&lt;br /&gt;
     INPUT@(0,0) MYVAR NOCASEINVERT&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;SOCKET.INFO&#039;&#039;&#039;&lt;br /&gt;
     &amp;lt;b&amp;gt;SKT$INFO.FAMILY&amp;lt;/b&amp;gt; - This key was added to support the identification of IPv4 and IPv6 family types on an open socket handle.&lt;br /&gt;
        SKT$INFO.FAMILY.IPV4 - This value means the open socket is IPv4&lt;br /&gt;
        SKT$INFO.FAMILY.IPV6 - This value means the open socket is IPv6&lt;br /&gt;
     &amp;lt;br /&amp;gt;Example Code:&amp;lt;br /&amp;gt;&lt;br /&gt;
     SKTFAMILYTYPE = SOCKET.INFO(SKTHANDLE,SKT$INFO.FAMILY)&lt;br /&gt;
     BEGIN CASE&lt;br /&gt;
       CASE SKTFAMILYTYPE = SKT$INFO.FAMILY.IPV4; CRT &amp;quot;This is an IPv4 socket!&amp;quot;&lt;br /&gt;
       CASE SKTFAMILYTYPE = SKT$INFO.FAMILY.IPV6; CRT &amp;quot;This is an IPv6 socket!&amp;quot;&lt;br /&gt;
     END CASE&lt;/div&gt;</summary>
		<author><name>Glenb</name></author>
	</entry>
	<entry>
		<id>https://scarlet.deltasoft.com/index.php?title=Custom_QMBASIC_Options&amp;diff=389</id>
		<title>Custom QMBASIC Options</title>
		<link rel="alternate" type="text/html" href="https://scarlet.deltasoft.com/index.php?title=Custom_QMBASIC_Options&amp;diff=389"/>
		<updated>2009-04-26T03:50:02Z</updated>

		<summary type="html">&lt;p&gt;Glenb: /* QMBASIC Command Options (By Name) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== QMBASIC Command Options (By Name) ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;INPUT&#039;&#039;&#039;&lt;br /&gt;
     &amp;lt;b&amp;gt;NOCASEINVERT&amp;lt;/b&amp;gt; - This option ignores the case inversion state of PTERM during the single execution of the statement.&lt;br /&gt;
     &amp;lt;br /&amp;gt;&amp;lt;b&amp;gt;Example Code:&amp;lt;/b&amp;gt;&lt;br /&gt;
     INPUT MYVAR NOCASEINVERT&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;INPUT@&#039;&#039;&#039;&lt;br /&gt;
     &amp;lt;b&amp;gt;NOCASEINVERT&amp;lt;/b&amp;gt; - This option ignores the case inversion state of PTERM during the single execution of the statement.&lt;br /&gt;
     &amp;lt;br /&amp;gt;&amp;lt;b&amp;gt;Example Code:&amp;lt;/b&amp;gt;&lt;br /&gt;
     INPUT@(0,0) MYVAR NOCASEINVERT&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;SOCKET.INFO&#039;&#039;&#039;&lt;br /&gt;
     &amp;lt;b&amp;gt;SKT$INFO.FAMILY&amp;lt;/b&amp;gt; - This key was added to support the identification of IPv4 and IPv6 family types on an open socket handle.&lt;br /&gt;
        SKT$INFO.FAMILY.IPV4 - This value means the open socket is IPv4&lt;br /&gt;
        SKT$INFO.FAMILY.IPV6 - This value means the open socket is IPv6&lt;br /&gt;
     &amp;lt;br /&amp;gt;&amp;lt;b&amp;gt;Example Code:&amp;lt;/b&amp;gt;&lt;br /&gt;
     SKTFAMILYTYPE = SOCKET.INFO(SKTHANDLE,SKT$INFO.FAMILY)&lt;br /&gt;
     BEGIN CASE&lt;br /&gt;
       CASE SKTFAMILYTYPE = SKT$INFO.FAMILY.IPV4; CRT &amp;quot;This is an IPv4 socket!&amp;quot;&lt;br /&gt;
       CASE SKTFAMILYTYPE = SKT$INFO.FAMILY.IPV6; CRT &amp;quot;This is an IPv6 socket!&amp;quot;&lt;br /&gt;
     END CASE&lt;/div&gt;</summary>
		<author><name>Glenb</name></author>
	</entry>
	<entry>
		<id>https://scarlet.deltasoft.com/index.php?title=Custom_QMBASIC_Options&amp;diff=388</id>
		<title>Custom QMBASIC Options</title>
		<link rel="alternate" type="text/html" href="https://scarlet.deltasoft.com/index.php?title=Custom_QMBASIC_Options&amp;diff=388"/>
		<updated>2009-04-26T03:49:45Z</updated>

		<summary type="html">&lt;p&gt;Glenb: /* QMBASIC Command Options (By Name) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== QMBASIC Command Options (By Name) ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;INPUT&#039;&#039;&#039;&lt;br /&gt;
     &amp;lt;b&amp;gt;NOCASEINVERT&amp;lt;/b&amp;gt; - This option ignores the case inversion state of PTERM during the single execution of the statement.&lt;br /&gt;
     &amp;lt;br /&amp;gt;&amp;lt;b&amp;gt;Example Code:&amp;lt;/b&amp;gt;&lt;br /&gt;
     INPUT MYVAR NOCASEINVERT&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;INPUT@&#039;&#039;&#039;&lt;br /&gt;
     &amp;lt;b&amp;gt;NOCASEINVERT&amp;lt;/b&amp;gt; - This option ignores the case inversion state of PTERM during the single execution of the statement.&lt;br /&gt;
     &amp;lt;br /&amp;gt;&amp;lt;b&amp;gt;Example Code:&amp;lt;/b&amp;gt;&lt;br /&gt;
     INPUT@(0,0) MYVAR NOCASEINVERT&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;SOCKET.INFO&#039;&#039;&#039;&lt;br /&gt;
     &amp;lt;b&amp;gt;SKT$INFO.FAMILY&amp;lt;/b&amp;gt; - This key was added to support the identification of IPv4 and IPv6 family types on an open socket handle.&lt;br /&gt;
        SKT$INFO.FAMILY.IPV4 - This value means the open socket is IPv4&lt;br /&gt;
        SKT$INFO.FAMILY.IPV6 - This value means the open socket is IPv6&lt;br /&gt;
     &amp;lt;hr /&amp;gt;&amp;lt;b&amp;gt;Example Code:&amp;lt;/b&amp;gt;&lt;br /&gt;
     SKTFAMILYTYPE = SOCKET.INFO(SKTHANDLE,SKT$INFO.FAMILY)&lt;br /&gt;
     BEGIN CASE&lt;br /&gt;
       CASE SKTFAMILYTYPE = SKT$INFO.FAMILY.IPV4; CRT &amp;quot;This is an IPv4 socket!&amp;quot;&lt;br /&gt;
       CASE SKTFAMILYTYPE = SKT$INFO.FAMILY.IPV6; CRT &amp;quot;This is an IPv6 socket!&amp;quot;&lt;br /&gt;
     END CASE&lt;/div&gt;</summary>
		<author><name>Glenb</name></author>
	</entry>
	<entry>
		<id>https://scarlet.deltasoft.com/index.php?title=Custom_QMBASIC_Options&amp;diff=387</id>
		<title>Custom QMBASIC Options</title>
		<link rel="alternate" type="text/html" href="https://scarlet.deltasoft.com/index.php?title=Custom_QMBASIC_Options&amp;diff=387"/>
		<updated>2009-04-26T03:49:32Z</updated>

		<summary type="html">&lt;p&gt;Glenb: /* QMBASIC Command Options (By Name) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== QMBASIC Command Options (By Name) ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;INPUT&#039;&#039;&#039;&lt;br /&gt;
     &amp;lt;b&amp;gt;NOCASEINVERT&amp;lt;/b&amp;gt; - This option ignores the case inversion state of PTERM during the single execution of the statement.&lt;br /&gt;
     &amp;lt;br /&amp;gt;&amp;lt;b&amp;gt;Example Code:&amp;lt;/b&amp;gt;&lt;br /&gt;
     INPUT MYVAR NOCASEINVERT&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;INPUT@&#039;&#039;&#039;&lt;br /&gt;
     &amp;lt;b&amp;gt;NOCASEINVERT&amp;lt;/b&amp;gt; - This option ignores the case inversion state of PTERM during the single execution of the statement.&lt;br /&gt;
     &amp;lt;br /&amp;gt;&amp;lt;b&amp;gt;Example Code:&amp;lt;/b&amp;gt;&lt;br /&gt;
     INPUT@(0,0) MYVAR NOCASEINVERT&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;SOCKET.INFO&#039;&#039;&#039;&lt;br /&gt;
     &amp;lt;b&amp;gt;SKT$INFO.FAMILY&amp;lt;/b&amp;gt; - This key was added to support the identification of IPv4 and IPv6 family types on an open socket handle.&lt;br /&gt;
        SKT$INFO.FAMILY.IPV4 - This value means the open socket is IPv4&lt;br /&gt;
        SKT$INFO.FAMILY.IPV6 - This value means the open socket is IPv6&lt;br /&gt;
---&lt;br /&gt;
     &amp;lt;b&amp;gt;Example Code:&amp;lt;/b&amp;gt;&lt;br /&gt;
     SKTFAMILYTYPE = SOCKET.INFO(SKTHANDLE,SKT$INFO.FAMILY)&lt;br /&gt;
     BEGIN CASE&lt;br /&gt;
       CASE SKTFAMILYTYPE = SKT$INFO.FAMILY.IPV4; CRT &amp;quot;This is an IPv4 socket!&amp;quot;&lt;br /&gt;
       CASE SKTFAMILYTYPE = SKT$INFO.FAMILY.IPV6; CRT &amp;quot;This is an IPv6 socket!&amp;quot;&lt;br /&gt;
     END CASE&lt;/div&gt;</summary>
		<author><name>Glenb</name></author>
	</entry>
	<entry>
		<id>https://scarlet.deltasoft.com/index.php?title=Custom_QMBASIC_Options&amp;diff=386</id>
		<title>Custom QMBASIC Options</title>
		<link rel="alternate" type="text/html" href="https://scarlet.deltasoft.com/index.php?title=Custom_QMBASIC_Options&amp;diff=386"/>
		<updated>2009-04-26T03:48:52Z</updated>

		<summary type="html">&lt;p&gt;Glenb: /* QMBASIC Command Options (By Name) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== QMBASIC Command Options (By Name) ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;INPUT&#039;&#039;&#039;&lt;br /&gt;
     &amp;lt;b&amp;gt;NOCASEINVERT&amp;lt;/b&amp;gt; - This option ignores the case inversion state of PTERM during the single execution of the statement.&lt;br /&gt;
     &amp;lt;br /&amp;gt;&amp;lt;b&amp;gt;Example Code:&amp;lt;/b&amp;gt;&lt;br /&gt;
     INPUT MYVAR NOCASEINVERT&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;INPUT@&#039;&#039;&#039;&lt;br /&gt;
     &amp;lt;b&amp;gt;NOCASEINVERT&amp;lt;/b&amp;gt; - This option ignores the case inversion state of PTERM during the single execution of the statement.&lt;br /&gt;
     &amp;lt;br /&amp;gt;&amp;lt;b&amp;gt;Example Code:&amp;lt;/b&amp;gt;&lt;br /&gt;
     INPUT@(0,0) MYVAR NOCASEINVERT&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;SOCKET.INFO&#039;&#039;&#039;&lt;br /&gt;
     &amp;lt;b&amp;gt;SKT$INFO.FAMILY&amp;lt;/b&amp;gt; - This key was added to support the identification of IPv4 and IPv6 family types on an open socket handle.&lt;br /&gt;
           SKT$INFO.FAMILY.IPV4 - This value means the open socket is IPv4&lt;br /&gt;
           SKT$INFO.FAMILY.IPV6 - This value means the open socket is IPv6&lt;br /&gt;
     &amp;lt;br /&amp;gt;&amp;lt;b&amp;gt;Example Code:&amp;lt;/b&amp;gt;&lt;br /&gt;
     SKTFAMILYTYPE = SOCKET.INFO(SKTHANDLE,SKT$INFO.FAMILY)&lt;br /&gt;
     BEGIN CASE&lt;br /&gt;
       CASE SKTFAMILYTYPE = SKT$INFO.FAMILY.IPV4; CRT &amp;quot;This is an IPv4 socket!&amp;quot;&lt;br /&gt;
       CASE SKTFAMILYTYPE = SKT$INFO.FAMILY.IPV6; CRT &amp;quot;This is an IPv6 socket!&amp;quot;&lt;br /&gt;
     END CASE&lt;/div&gt;</summary>
		<author><name>Glenb</name></author>
	</entry>
	<entry>
		<id>https://scarlet.deltasoft.com/index.php?title=Custom_QMBASIC_Options&amp;diff=385</id>
		<title>Custom QMBASIC Options</title>
		<link rel="alternate" type="text/html" href="https://scarlet.deltasoft.com/index.php?title=Custom_QMBASIC_Options&amp;diff=385"/>
		<updated>2009-04-26T03:47:55Z</updated>

		<summary type="html">&lt;p&gt;Glenb: /* QMBASIC Command Options (By Name) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== QMBASIC Command Options (By Name) ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;INPUT&#039;&#039;&#039;&lt;br /&gt;
     &#039;&#039;NOCASEINVERT&#039;&#039; - This option ignores the case inversion state of PTERM during the single execution of the statement.&lt;br /&gt;
     &amp;lt;br /&amp;gt;&amp;lt;b&amp;gt;Example Code:&amp;lt;/b&amp;gt;&lt;br /&gt;
     INPUT MYVAR NOCASEINVERT&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;INPUT@&#039;&#039;&#039;&lt;br /&gt;
     &#039;&#039;NOCASEINVERT&#039;&#039; - This option ignores the case inversion state of PTERM during the single execution of the statement.&lt;br /&gt;
     &amp;lt;br /&amp;gt;&amp;lt;b&amp;gt;Example Code:&amp;lt;/b&amp;gt;&lt;br /&gt;
     INPUT@(0,0) MYVAR NOCASEINVERT&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;SOCKET.INFO&#039;&#039;&#039;&lt;br /&gt;
     &#039;&#039;SKT$INFO.FAMILY&#039;&#039; - This key was added to support the identification of IPv4 and IPv6 family types on an open socket handle.&lt;br /&gt;
           SKT$INFO.FAMILY.IPV4 - This value means the open socket is IPv4&lt;br /&gt;
           SKT$INFO.FAMILY.IPV6 - This value means the open socket is IPv6&lt;br /&gt;
     &amp;lt;br /&amp;gt;&amp;lt;b&amp;gt;Example Code:&amp;lt;/b&amp;gt;&lt;br /&gt;
     SKTFAMILYTYPE = SOCKET.INFO(SKTHANDLE,SKT$INFO.FAMILY)&lt;br /&gt;
     BEGIN CASE&lt;br /&gt;
       CASE SKTFAMILYTYPE = SKT$INFO.FAMILY.IPV4; CRT &amp;quot;This is an IPv4 socket!&amp;quot;&lt;br /&gt;
       CASE SKTFAMILYTYPE = SKT$INFO.FAMILY.IPV6; CRT &amp;quot;This is an IPv6 socket!&amp;quot;&lt;br /&gt;
     END CASE&lt;/div&gt;</summary>
		<author><name>Glenb</name></author>
	</entry>
	<entry>
		<id>https://scarlet.deltasoft.com/index.php?title=Custom_QMBASIC_Options&amp;diff=384</id>
		<title>Custom QMBASIC Options</title>
		<link rel="alternate" type="text/html" href="https://scarlet.deltasoft.com/index.php?title=Custom_QMBASIC_Options&amp;diff=384"/>
		<updated>2009-04-26T03:47:24Z</updated>

		<summary type="html">&lt;p&gt;Glenb: /* QMBASIC Command Options (By Name) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== QMBASIC Command Options (By Name) ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;INPUT&#039;&#039;&#039;&lt;br /&gt;
     &#039;&#039;NOCASEINVERT&#039;&#039; - This option ignores the case inversion state of PTERM during the single execution of the statement.&lt;br /&gt;
&lt;br /&gt;
     &amp;lt;b&amp;gt;Example Code:&amp;lt;/b&amp;gt;&lt;br /&gt;
     INPUT MYVAR NOCASEINVERT&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;INPUT@&#039;&#039;&#039;&lt;br /&gt;
     &#039;&#039;NOCASEINVERT&#039;&#039; - This option ignores the case inversion state of PTERM during the single execution of the statement.&lt;br /&gt;
&lt;br /&gt;
     Example Code:&lt;br /&gt;
     INPUT@(0,0) MYVAR NOCASEINVERT&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;SOCKET.INFO&#039;&#039;&#039;&lt;br /&gt;
     &#039;&#039;SKT$INFO.FAMILY&#039;&#039; - This key was added to support the identification of IPv4 and IPv6 family types on an open socket handle.&lt;br /&gt;
           SKT$INFO.FAMILY.IPV4 - This value means the open socket is IPv4&lt;br /&gt;
           SKT$INFO.FAMILY.IPV6 - This value means the open socket is IPv6&lt;br /&gt;
&lt;br /&gt;
     Example Code:&lt;br /&gt;
     SKTFAMILYTYPE = SOCKET.INFO(SKTHANDLE,SKT$INFO.FAMILY)&lt;br /&gt;
     BEGIN CASE&lt;br /&gt;
       CASE SKTFAMILYTYPE = SKT$INFO.FAMILY.IPV4; CRT &amp;quot;This is an IPv4 socket!&amp;quot;&lt;br /&gt;
       CASE SKTFAMILYTYPE = SKT$INFO.FAMILY.IPV6; CRT &amp;quot;This is an IPv6 socket!&amp;quot;&lt;br /&gt;
     END CASE&lt;/div&gt;</summary>
		<author><name>Glenb</name></author>
	</entry>
	<entry>
		<id>https://scarlet.deltasoft.com/index.php?title=Custom_QMBASIC_Options&amp;diff=383</id>
		<title>Custom QMBASIC Options</title>
		<link rel="alternate" type="text/html" href="https://scarlet.deltasoft.com/index.php?title=Custom_QMBASIC_Options&amp;diff=383"/>
		<updated>2009-04-26T03:46:46Z</updated>

		<summary type="html">&lt;p&gt;Glenb: /* QMBASIC Command Options (By Name) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== QMBASIC Command Options (By Name) ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;INPUT&#039;&#039;&#039;&lt;br /&gt;
     &#039;&#039;NOCASEINVERT&#039;&#039; - This option ignores the case inversion state of PTERM during the single execution of the statement.&lt;br /&gt;
&lt;br /&gt;
     &#039;&#039;&#039;Example Code:&#039;&#039;&#039;&lt;br /&gt;
     INPUT MYVAR NOCASEINVERT&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;INPUT@&#039;&#039;&#039;&lt;br /&gt;
     &#039;&#039;NOCASEINVERT&#039;&#039; - This option ignores the case inversion state of PTERM during the single execution of the statement.&lt;br /&gt;
&lt;br /&gt;
     &#039;&#039;&#039;Example Code:&#039;&#039;&#039;&lt;br /&gt;
     INPUT@(0,0) MYVAR NOCASEINVERT&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;SOCKET.INFO&#039;&#039;&#039;&lt;br /&gt;
     &#039;&#039;SKT$INFO.FAMILY&#039;&#039; - This key was added to support the identification of IPv4 and IPv6 family types on an open socket handle.&lt;br /&gt;
           SKT$INFO.FAMILY.IPV4 - This value means the open socket is IPv4&lt;br /&gt;
           SKT$INFO.FAMILY.IPV6 - This value means the open socket is IPv6&lt;br /&gt;
&lt;br /&gt;
     &#039;&#039;&#039;Example Code:&#039;&#039;&#039;&lt;br /&gt;
     SKTFAMILYTYPE = SOCKET.INFO(SKTHANDLE,SKT$INFO.FAMILY)&lt;br /&gt;
     BEGIN CASE&lt;br /&gt;
       CASE SKTFAMILYTYPE = SKT$INFO.FAMILY.IPV4; CRT &amp;quot;This is an IPv4 socket!&amp;quot;&lt;br /&gt;
       CASE SKTFAMILYTYPE = SKT$INFO.FAMILY.IPV6; CRT &amp;quot;This is an IPv6 socket!&amp;quot;&lt;br /&gt;
     END CASE&lt;/div&gt;</summary>
		<author><name>Glenb</name></author>
	</entry>
	<entry>
		<id>https://scarlet.deltasoft.com/index.php?title=Custom_QMBASIC_Options&amp;diff=382</id>
		<title>Custom QMBASIC Options</title>
		<link rel="alternate" type="text/html" href="https://scarlet.deltasoft.com/index.php?title=Custom_QMBASIC_Options&amp;diff=382"/>
		<updated>2009-04-26T03:46:12Z</updated>

		<summary type="html">&lt;p&gt;Glenb: /* QMBASIC Command Options (By Name) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== QMBASIC Command Options (By Name) ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;INPUT&#039;&#039;&#039;&lt;br /&gt;
     &#039;&#039;NOCASEINVERT&#039;&#039; - This option ignores the case inversion state of PTERM during the single execution of the statement.&lt;br /&gt;
     Example Code:&lt;br /&gt;
     INPUT MYVAR NOCASEINVERT&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;INPUT@&#039;&#039;&#039;&lt;br /&gt;
     &#039;&#039;NOCASEINVERT&#039;&#039; - This option ignores the case inversion state of PTERM during the single execution of the statement.&lt;br /&gt;
     Example Code:&lt;br /&gt;
     INPUT@(0,0) MYVAR NOCASEINVERT&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;SOCKET.INFO&#039;&#039;&#039;&lt;br /&gt;
     &#039;&#039;SKT$INFO.FAMILY&#039;&#039; - This key was added to support the identification of IPv4 and IPv6 family types on an open socket handle.&lt;br /&gt;
           SKT$INFO.FAMILY.IPV4 - This value means the open socket is IPv4&lt;br /&gt;
           SKT$INFO.FAMILY.IPV6 - This value means the open socket is IPv6&lt;br /&gt;
     Example Code:&lt;br /&gt;
     SKTFAMILYTYPE = SOCKET.INFO(SKTHANDLE,SKT$INFO.FAMILY)&lt;br /&gt;
     BEGIN CASE&lt;br /&gt;
       CASE SKTFAMILYTYPE = SKT$INFO.FAMILY.IPV4; CRT &amp;quot;This is an IPv4 socket!&amp;quot;&lt;br /&gt;
       CASE SKTFAMILYTYPE = SKT$INFO.FAMILY.IPV6; CRT &amp;quot;This is an IPv6 socket!&amp;quot;&lt;br /&gt;
     END CASE&lt;/div&gt;</summary>
		<author><name>Glenb</name></author>
	</entry>
	<entry>
		<id>https://scarlet.deltasoft.com/index.php?title=Custom_QMBASIC_Options&amp;diff=381</id>
		<title>Custom QMBASIC Options</title>
		<link rel="alternate" type="text/html" href="https://scarlet.deltasoft.com/index.php?title=Custom_QMBASIC_Options&amp;diff=381"/>
		<updated>2009-04-26T03:43:26Z</updated>

		<summary type="html">&lt;p&gt;Glenb: /* QMBASIC Command Options (By Name) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== QMBASIC Command Options (By Name) ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;INPUT&#039;&#039;&#039;&lt;br /&gt;
     &#039;&#039;NOCASEINVERT&#039;&#039; - This option ignores the case inversion state of PTERM during the single execution of the statement.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;INPUT@&#039;&#039;&#039;&lt;br /&gt;
     &#039;&#039;NOCASEINVERT&#039;&#039; - This option ignores the case inversion state of PTERM during the single execution of the statement.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;SOCKET.INFO&#039;&#039;&#039;&lt;br /&gt;
     &#039;&#039;SKT$INFO.FAMILY&#039;&#039; - This key was added to support the identification of IPv4 and IPv6 family types on an open socket handle.&lt;br /&gt;
           SKT@$INFO.FAMILY.IPV4 - This value means the open socket is IPv4&lt;br /&gt;
           SKT@$INFO.FAMILY.IPV6 - This value means the open socket is IPv6&lt;/div&gt;</summary>
		<author><name>Glenb</name></author>
	</entry>
	<entry>
		<id>https://scarlet.deltasoft.com/index.php?title=Downloads&amp;diff=380</id>
		<title>Downloads</title>
		<link rel="alternate" type="text/html" href="https://scarlet.deltasoft.com/index.php?title=Downloads&amp;diff=380"/>
		<updated>2009-04-25T03:24:30Z</updated>

		<summary type="html">&lt;p&gt;Glenb: /* Packages */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Files, sources, packages and apps for OpenQM&lt;br /&gt;
&lt;br /&gt;
==Packages==&lt;br /&gt;
*RPM package - [http://gpl.openqm.com/downloads/openqm-2.6-6.i386.rpm openqm-2.6-6.i386.rpm]&lt;br /&gt;
*Debian Package - [http://gpl.openqm.com/downloads/openqm_2.4.17_all.deb openqm_2.4.17_all.deb] (Note 2-4-4 built only atm)&lt;br /&gt;
*Debian Package - [http://gpl.openqm.com/downloads/openqm-gpl_2.6.6_all.deb openqm-gpl_2.6.6_all.deb] (Note: this needs testing for upgrades)&lt;br /&gt;
&lt;br /&gt;
==Source==&lt;br /&gt;
Original Ladybridge Source Tarballs&lt;br /&gt;
&lt;br /&gt;
*[http://gpl.openqm.com/downloads/qmsrc_2-6-6.tgz qmsrc_2-6-6.tgz]&lt;br /&gt;
*[http://gpl.openqm.com/downloads/qmsrc_2-4-4.tgz qmsrc_2-4-4.tgz]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
For latest build, issue this command in Linux for OpenQMVDB build (&#039;&#039;&#039;&#039;&#039;Recommended&#039;&#039;&#039;&#039;&#039;)&lt;br /&gt;
  svn checkout https://gpl.openqm.com/svn/qmvdb&lt;br /&gt;
&#039;&#039;(Requires subversion client)&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Applications==&lt;br /&gt;
*Coyote PICK webserver - [http://gpl.openqm.com/downloads/qmweb-gpl-2006-03-11.tar.gz qmweb-gpl-2006-03-11.tar.gz] - N.B. The source code for the daemon is missing.&lt;/div&gt;</summary>
		<author><name>Glenb</name></author>
	</entry>
	<entry>
		<id>https://scarlet.deltasoft.com/index.php?title=Downloads&amp;diff=379</id>
		<title>Downloads</title>
		<link rel="alternate" type="text/html" href="https://scarlet.deltasoft.com/index.php?title=Downloads&amp;diff=379"/>
		<updated>2009-04-25T03:24:15Z</updated>

		<summary type="html">&lt;p&gt;Glenb: /* Packages */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Files, sources, packages and apps for OpenQM&lt;br /&gt;
&lt;br /&gt;
==Packages==&lt;br /&gt;
*RPM package - [http://gpl.openqm.com/downloads/openqm-2.6-6.i386.rpm openqm-2.6-6.i386.rpm]&lt;br /&gt;
*Debian Package - [http://gpl.openqm.com/downloads/openqm_2.4.17_all.deb openqm_2.4.17_all.deb] (Note 2-4-4 built only atm)&lt;br /&gt;
*Debian Package - [http://gpl.openqm.com/downloads/openqm-gpl_2.6.6_all.deb] openqm-gpl_2.6.6_all.deb (Note: this needs testing for upgrades)&lt;br /&gt;
&lt;br /&gt;
==Source==&lt;br /&gt;
Original Ladybridge Source Tarballs&lt;br /&gt;
&lt;br /&gt;
*[http://gpl.openqm.com/downloads/qmsrc_2-6-6.tgz qmsrc_2-6-6.tgz]&lt;br /&gt;
*[http://gpl.openqm.com/downloads/qmsrc_2-4-4.tgz qmsrc_2-4-4.tgz]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
For latest build, issue this command in Linux for OpenQMVDB build (&#039;&#039;&#039;&#039;&#039;Recommended&#039;&#039;&#039;&#039;&#039;)&lt;br /&gt;
  svn checkout https://gpl.openqm.com/svn/qmvdb&lt;br /&gt;
&#039;&#039;(Requires subversion client)&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Applications==&lt;br /&gt;
*Coyote PICK webserver - [http://gpl.openqm.com/downloads/qmweb-gpl-2006-03-11.tar.gz qmweb-gpl-2006-03-11.tar.gz] - N.B. The source code for the daemon is missing.&lt;/div&gt;</summary>
		<author><name>Glenb</name></author>
	</entry>
	<entry>
		<id>https://scarlet.deltasoft.com/index.php?title=User:Glenb&amp;diff=376</id>
		<title>User:Glenb</title>
		<link rel="alternate" type="text/html" href="https://scarlet.deltasoft.com/index.php?title=User:Glenb&amp;diff=376"/>
		<updated>2009-04-23T02:42:03Z</updated>

		<summary type="html">&lt;p&gt;Glenb: New page: Just another geek that loves Pick.  I&amp;#039;m into small scale R/C and have a tricked HPI RS4 M/T and a HeliMax CPv3 heli(which I still can&amp;#039;t fly well) I used to run PickSource, but it failed du...&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Just another geek that loves Pick.&lt;br /&gt;
&lt;br /&gt;
I&#039;m into small scale R/C and have a tricked HPI RS4 M/T and a HeliMax CPv3 heli(which I still can&#039;t fly well)&lt;br /&gt;
I used to run PickSource, but it failed due to a lack of decent content contributions other than my own. This is my last attempt at a GPL project so I hope it succeeds.&lt;br /&gt;
Employed by All-Spec Industries since Dec 1996 as IT Director, CIO, network admin, etc et all. http://www.all-spec.com&lt;br /&gt;
Married to a great wife/mom, April, with fraternal twin daughters Sarah and Naomi.&lt;br /&gt;
&lt;br /&gt;
My background is in EE(digital circuit design), but I never had a chance to apply it. I obtained an ASEE, transferred to UNC Charlotte and got burned out my senior year. I went to work at All-Spec during that time and have been growing with the company since then. I plan on obtaining my CS degree when time allows.&lt;/div&gt;</summary>
		<author><name>Glenb</name></author>
	</entry>
	<entry>
		<id>https://scarlet.deltasoft.com/index.php?title=Wish_list&amp;diff=375</id>
		<title>Wish list</title>
		<link rel="alternate" type="text/html" href="https://scarlet.deltasoft.com/index.php?title=Wish_list&amp;diff=375"/>
		<updated>2009-04-23T02:23:18Z</updated>

		<summary type="html">&lt;p&gt;Glenb: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Things we need or want.&lt;br /&gt;
&lt;br /&gt;
If you can do this for the project pop your name by it to claim the job, and contact the Dev mailing list.&lt;br /&gt;
&lt;br /&gt;
To keep in touch with this slowly evolving agenda register, making sure your preferences[http://gpl.openqm.com/wiki/Special:Preferences] include &amp;quot;E-mail me when a page on my watchlist is changed&amp;quot;, and that you are logged in, and click the &amp;quot;watch&amp;quot; tab at the top of this page.&lt;br /&gt;
&lt;br /&gt;
==Development==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Wished&lt;br /&gt;
! Diccon&lt;br /&gt;
! Karaken12&lt;br /&gt;
! Ashley&lt;br /&gt;
! DanW&lt;br /&gt;
! SteveB&lt;br /&gt;
! Geneb&lt;br /&gt;
! 7&lt;br /&gt;
! 8&lt;br /&gt;
! 9&lt;br /&gt;
! 0&lt;br /&gt;
! 1&lt;br /&gt;
! 2&lt;br /&gt;
! 3&lt;br /&gt;
! 4&lt;br /&gt;
! 5&lt;br /&gt;
! 6&lt;br /&gt;
! 7&lt;br /&gt;
! 8&lt;br /&gt;
! 9&lt;br /&gt;
! 0&lt;br /&gt;
|-&lt;br /&gt;
|Accumulate Existing bugfixes into subversion - &#039;&#039;&#039;IMPORTANT&#039;&#039;&#039;; Can anyone with existing bug fixes please email [[Admin Team]] or commit them into our subversion trunk [[HOWTO]]. (1 Done Thanks Ashley)&lt;br /&gt;
! 1 || 2 || 3 || 4 || 5 || 6 || 7 || 8 || 9 || 0&lt;br /&gt;
! 1 || 2 || 3 || 4 || 5 || 6 || 7 || 8 || 9 || 0&lt;br /&gt;
|-&lt;br /&gt;
|Makefile - &#039;&#039;&#039;TAKEN&#039;&#039;&#039; - [[User:Diccon|Diccon]] (Thanks to Andruk Tatum for the Original on Google group, only minor tweaks to get working on our source)&lt;br /&gt;
! 1 || 2 || 3 || 4 || 5 || 6 || 7 || 8 || 9 || 0&lt;br /&gt;
! 1 || 2 || 3 || 4 || 5 || 6 || 7 || 8 || 9 || 0&lt;br /&gt;
|-&lt;br /&gt;
|Lastest version DEB package&lt;br /&gt;
! 1 || 2 || 3 || 4 || 5 || 6 || 7 || 8 || 9 || 0&lt;br /&gt;
! 1 || 2 || 3 || 4 || 5 || 6 || 7 || 8 || 9 || 0&lt;br /&gt;
|-&lt;br /&gt;
|QM API list compression&lt;br /&gt;
! 1 || 2 || 3 || 4 || 5 || 6 || 7 || 8 || 9 || 0&lt;br /&gt;
! 1 || 2 || 3 || 4 || 5 || 6 || 7 || 8 || 9 || 0&lt;br /&gt;
|-&lt;br /&gt;
|XML Database layer&lt;br /&gt;
! 1 || 2 || 3 || 4 || 5 || 6 || 7 || 8 || 9 || 0&lt;br /&gt;
! 1 || 2 || 3 || 4 || 5 || 6 || 7 || 8 || 9 || 0&lt;br /&gt;
|-&lt;br /&gt;
|XQuery Engine&lt;br /&gt;
! 1 || 2 || 3 || 4 || 5 || 6 || 7 || 8 || 9 || 0&lt;br /&gt;
! 1 || 2 || 3 || 4 || 5 || 6 || 7 || 8 || 9 || 0&lt;br /&gt;
|-&lt;br /&gt;
|Interface to Maverick running inside a JVM in a web-browser so as to implement client-side form processing in multivalue BASIC.&lt;br /&gt;
! 1 || 2 || 3 || 4 || 5 || 6 || 7 || 8 || 9 || 0&lt;br /&gt;
! 1 || 2 || 3 || 4 || 5 || 6 || 7 || 8 || 9 || 0&lt;br /&gt;
|-&lt;br /&gt;
|Specific flavoured compatibility modes (eg D3 mode, Sequoia mode)&lt;br /&gt;
! 1 || 2 || 3 || 4 || 5 || 6 || 7 || 8 || 9 || 0&lt;br /&gt;
! 1 || 2 || 3 || 4 || 5 || 6 || 7 || 8 || 9 || 0&lt;br /&gt;
|-&lt;br /&gt;
|Code porting program, similar to jBase&#039;s PORT.BAS (ideal for Perl regexp?)&lt;br /&gt;
! 1 || 2 || 3 || 4 || 5 || 6 || 7 || 8 || 9 || 0&lt;br /&gt;
! 1 || 2 || 3 || 4 || 5 || 6 || 7 || 8 || 9 || 0&lt;br /&gt;
|-&lt;br /&gt;
|QM BASIC Subversion client wrapper - Simple way to get Pickies onboard. - &#039;&#039;&#039;TAKEN&#039;&#039;&#039; - [[User:Karaken12|Karaken12]] I&#039;ve already done this, although it does need some cleaning up.&lt;br /&gt;
! 1 || 2 || 3 || 4 || 5 || 6 || 7 || 8 || 9 || 0&lt;br /&gt;
! 1 || 2 || 3 || 4 || 5 || 6 || 7 || 8 || 9 || 0&lt;br /&gt;
|-&lt;br /&gt;
|QM Virtual File System (VFS) for some SQL database(s)&lt;br /&gt;
! 1 || 2 || 3 || 4 || 5 || 6 || 7 || 8 || 9 || 0&lt;br /&gt;
! 1 || 2 || 3 || 4 || 5 || 6 || 7 || 8 || 9 || 0&lt;br /&gt;
|-&lt;br /&gt;
|Pref to set SCROLL option as default ON for all access statements&lt;br /&gt;
! 1 || 2 || 3 || 4 || 5 || 6 || 7 || 8 || 9 || 0&lt;br /&gt;
! 1 || 2 || 3 || 4 || 5 || 6 || 7 || 8 || 9 || 0&lt;br /&gt;
|-&lt;br /&gt;
|&amp;quot;FOR EACH&amp;quot; BASIC syntax (Like perl and other languages)&lt;br /&gt;
! 1 || 2 || 3 || 4 || 5 || 6 || 7 || 8 || 9 || 0&lt;br /&gt;
! 1 || 2 || 3 || 4 || 5 || 6 || 7 || 8 || 9 || 0&lt;br /&gt;
|-&lt;br /&gt;
|Utility to use dictionary names for handling a record instead of direct AM addressing (possibly using OO QM) - &#039;&#039;&#039;In-Dev&#039;&#039;&#039; - [[User:Glenb|Glenb]] - workdevbranch1 GPL.BP has a DICT.TOOLS.CLS QMOO class for testing and development. Writing via dicts is not yet functional; discussion needed on I-types.&lt;br /&gt;
! 1 || 2 || 3 || 4 || 5 || 6 || 7 || 8 || 9 || 0&lt;br /&gt;
! 1 || 2 || 3 || 4 || 5 || 6 || 7 || 8 || 9 || 0&lt;br /&gt;
|-&lt;br /&gt;
|Enhancment to the Cygwin Windows port to address poor IPC performance.&lt;br /&gt;
! 1 || 2 || 3 || 4 || 5 || 6 || 7 || 8 || 9 || 0&lt;br /&gt;
! 1 || 2 || 3 || 4 || 5 || 6 || 7 || 8 || 9 || 0&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Notes:&lt;br /&gt;
#Digits mean nothing and are just to make it easier to edit the weird wiki table format.&lt;br /&gt;
#If you have a column, please change your digit to indicate any preferences eg + ++ ++ - -- ---. You can use empty columns and add your name in the column heading or add more columns.&lt;br /&gt;
&lt;br /&gt;
==Sysadmin==&lt;br /&gt;
*Sort /var/www or Apache so we dont have to multi sym link to get dirs visible. - &#039;&#039;&#039;TAKEN&#039;&#039;&#039; - [[User:DanW|DanW]] I&#039;ll sort this, I think a simple landing page with links to the various bits of the system will simplify our directory structure somewhat.&lt;br /&gt;
&amp;lt;strike&amp;gt;*ftp access? (not sure if we need this) &#039;&#039;&#039;TAKEN&#039;&#039;&#039; -  [[User:DanW|DanW]] - I can set up SFTP access, somewhat more secure than FTP&amp;lt;/strike&amp;gt; See [[SFTP]]&lt;br /&gt;
*SVN compatibility/capability with hashed files&lt;br /&gt;
&amp;lt;strike&amp;gt;*A proper Bug Tracker.  This page will do for now, but it would be much better to have a real tool.&amp;lt;/strike&amp;gt; - [http://gpl.openqm.com/bugzilla Bugzilla up]&lt;br /&gt;
&lt;br /&gt;
==Bugfixes==&lt;br /&gt;
[[List of fixed bugs in the commercial version of OpenQM (Current as of 2.8-10)]]&lt;br /&gt;
&lt;br /&gt;
==General Bright Ideas==&lt;br /&gt;
* point SORTWORK to a RAMFS mount, would provide very fast sort handling. (Ashley notes:  Altering the SORTMEM parameter does the same)&lt;br /&gt;
* A bit blue-sky, but something I&#039;ve wanted to work on for ages: full Unicode support.&lt;br /&gt;
* Construct a &amp;quot;High performance&amp;quot; benchmark and tuning section&lt;br /&gt;
*Define a &amp;quot;core&amp;quot; of standardised multivalue capabilities that is implemented in all systems, so porting between systems requires zero modifications.&lt;/div&gt;</summary>
		<author><name>Glenb</name></author>
	</entry>
	<entry>
		<id>https://scarlet.deltasoft.com/index.php?title=Wish_list&amp;diff=374</id>
		<title>Wish list</title>
		<link rel="alternate" type="text/html" href="https://scarlet.deltasoft.com/index.php?title=Wish_list&amp;diff=374"/>
		<updated>2009-04-23T02:22:44Z</updated>

		<summary type="html">&lt;p&gt;Glenb: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Things we need or want.&lt;br /&gt;
&lt;br /&gt;
If you can do this for the project pop your name by it to claim the job, and contact the Dev mailing list.&lt;br /&gt;
&lt;br /&gt;
To keep in touch with this slowly evolving agenda register, making sure your preferences[http://gpl.openqm.com/wiki/Special:Preferences] include &amp;quot;E-mail me when a page on my watchlist is changed&amp;quot;, and that you are logged in, and click the &amp;quot;watch&amp;quot; tab at the top of this page.&lt;br /&gt;
&lt;br /&gt;
==Development==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Wished&lt;br /&gt;
! Diccon&lt;br /&gt;
! Karaken12&lt;br /&gt;
! Ashley&lt;br /&gt;
! DanW&lt;br /&gt;
! SteveB&lt;br /&gt;
! Geneb&lt;br /&gt;
! 7&lt;br /&gt;
! 8&lt;br /&gt;
! 9&lt;br /&gt;
! 0&lt;br /&gt;
! 1&lt;br /&gt;
! 2&lt;br /&gt;
! 3&lt;br /&gt;
! 4&lt;br /&gt;
! 5&lt;br /&gt;
! 6&lt;br /&gt;
! 7&lt;br /&gt;
! 8&lt;br /&gt;
! 9&lt;br /&gt;
! 0&lt;br /&gt;
|-&lt;br /&gt;
|Accumulate Existing bugfixes into subversion - &#039;&#039;&#039;IMPORTANT&#039;&#039;&#039;; Can anyone with existing bug fixes please email [[Admin Team]] or commit them into our subversion trunk [[HOWTO]]. (1 Done Thanks Ashley)&lt;br /&gt;
! 1 || 2 || 3 || 4 || 5 || 6 || 7 || 8 || 9 || 0&lt;br /&gt;
! 1 || 2 || 3 || 4 || 5 || 6 || 7 || 8 || 9 || 0&lt;br /&gt;
|-&lt;br /&gt;
|Makefile - &#039;&#039;&#039;TAKEN&#039;&#039;&#039; - [[User:Diccon|Diccon]] (Thanks to Andruk Tatum for the Original on Google group, only minor tweaks to get working on our source)&lt;br /&gt;
! 1 || 2 || 3 || 4 || 5 || 6 || 7 || 8 || 9 || 0&lt;br /&gt;
! 1 || 2 || 3 || 4 || 5 || 6 || 7 || 8 || 9 || 0&lt;br /&gt;
|-&lt;br /&gt;
|Lastest version DEB package&lt;br /&gt;
! 1 || 2 || 3 || 4 || 5 || 6 || 7 || 8 || 9 || 0&lt;br /&gt;
! 1 || 2 || 3 || 4 || 5 || 6 || 7 || 8 || 9 || 0&lt;br /&gt;
|-&lt;br /&gt;
|QM API list compression&lt;br /&gt;
! 1 || 2 || 3 || 4 || 5 || 6 || 7 || 8 || 9 || 0&lt;br /&gt;
! 1 || 2 || 3 || 4 || 5 || 6 || 7 || 8 || 9 || 0&lt;br /&gt;
|-&lt;br /&gt;
|XML Database layer&lt;br /&gt;
! 1 || 2 || 3 || 4 || 5 || 6 || 7 || 8 || 9 || 0&lt;br /&gt;
! 1 || 2 || 3 || 4 || 5 || 6 || 7 || 8 || 9 || 0&lt;br /&gt;
|-&lt;br /&gt;
|XQuery Engine&lt;br /&gt;
! 1 || 2 || 3 || 4 || 5 || 6 || 7 || 8 || 9 || 0&lt;br /&gt;
! 1 || 2 || 3 || 4 || 5 || 6 || 7 || 8 || 9 || 0&lt;br /&gt;
|-&lt;br /&gt;
|Interface to Maverick running inside a JVM in a web-browser so as to implement client-side form processing in multivalue BASIC.&lt;br /&gt;
! 1 || 2 || 3 || 4 || 5 || 6 || 7 || 8 || 9 || 0&lt;br /&gt;
! 1 || 2 || 3 || 4 || 5 || 6 || 7 || 8 || 9 || 0&lt;br /&gt;
|-&lt;br /&gt;
|Specific flavoured compatibility modes (eg D3 mode, Sequoia mode)&lt;br /&gt;
! 1 || 2 || 3 || 4 || 5 || 6 || 7 || 8 || 9 || 0&lt;br /&gt;
! 1 || 2 || 3 || 4 || 5 || 6 || 7 || 8 || 9 || 0&lt;br /&gt;
|-&lt;br /&gt;
|Code porting program, similar to jBase&#039;s PORT.BAS (ideal for Perl regexp?)&lt;br /&gt;
! 1 || 2 || 3 || 4 || 5 || 6 || 7 || 8 || 9 || 0&lt;br /&gt;
! 1 || 2 || 3 || 4 || 5 || 6 || 7 || 8 || 9 || 0&lt;br /&gt;
|-&lt;br /&gt;
|QM BASIC Subversion client wrapper - Simple way to get Pickies onboard. - &#039;&#039;&#039;TAKEN&#039;&#039;&#039; - [[User:Karaken12|Karaken12]] I&#039;ve already done this, although it does need some cleaning up.&lt;br /&gt;
! 1 || 2 || 3 || 4 || 5 || 6 || 7 || 8 || 9 || 0&lt;br /&gt;
! 1 || 2 || 3 || 4 || 5 || 6 || 7 || 8 || 9 || 0&lt;br /&gt;
|-&lt;br /&gt;
|QM Virtual File System (VFS) for some SQL database(s)&lt;br /&gt;
! 1 || 2 || 3 || 4 || 5 || 6 || 7 || 8 || 9 || 0&lt;br /&gt;
! 1 || 2 || 3 || 4 || 5 || 6 || 7 || 8 || 9 || 0&lt;br /&gt;
|-&lt;br /&gt;
|Pref to set SCROLL option as default ON for all access statements&lt;br /&gt;
! 1 || 2 || 3 || 4 || 5 || 6 || 7 || 8 || 9 || 0&lt;br /&gt;
! 1 || 2 || 3 || 4 || 5 || 6 || 7 || 8 || 9 || 0&lt;br /&gt;
|-&lt;br /&gt;
|&amp;quot;FOR EACH&amp;quot; BASIC syntax (Like perl and other languages)&lt;br /&gt;
! 1 || 2 || 3 || 4 || 5 || 6 || 7 || 8 || 9 || 0&lt;br /&gt;
! 1 || 2 || 3 || 4 || 5 || 6 || 7 || 8 || 9 || 0&lt;br /&gt;
|-&lt;br /&gt;
|Utility to use dictionary names for handling a record instead of direct AM addressing (possibly using OO QM) - &#039;&#039;&#039;In-Dev&#039;&#039;&#039; - [[User:GlenB|GlenB]] - workdevbranch1 GPL.BP has a DICT.TOOLS.CLS QMOO class for testing and development. Writing via dicts is not yet functional; discussion needed on I-types.&lt;br /&gt;
! 1 || 2 || 3 || 4 || 5 || 6 || 7 || 8 || 9 || 0&lt;br /&gt;
! 1 || 2 || 3 || 4 || 5 || 6 || 7 || 8 || 9 || 0&lt;br /&gt;
|-&lt;br /&gt;
|Enhancment to the Cygwin Windows port to address poor IPC performance.&lt;br /&gt;
! 1 || 2 || 3 || 4 || 5 || 6 || 7 || 8 || 9 || 0&lt;br /&gt;
! 1 || 2 || 3 || 4 || 5 || 6 || 7 || 8 || 9 || 0&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Notes:&lt;br /&gt;
#Digits mean nothing and are just to make it easier to edit the weird wiki table format.&lt;br /&gt;
#If you have a column, please change your digit to indicate any preferences eg + ++ ++ - -- ---. You can use empty columns and add your name in the column heading or add more columns.&lt;br /&gt;
&lt;br /&gt;
==Sysadmin==&lt;br /&gt;
*Sort /var/www or Apache so we dont have to multi sym link to get dirs visible. - &#039;&#039;&#039;TAKEN&#039;&#039;&#039; - [[User:DanW|DanW]] I&#039;ll sort this, I think a simple landing page with links to the various bits of the system will simplify our directory structure somewhat.&lt;br /&gt;
&amp;lt;strike&amp;gt;*ftp access? (not sure if we need this) &#039;&#039;&#039;TAKEN&#039;&#039;&#039; -  [[User:DanW|DanW]] - I can set up SFTP access, somewhat more secure than FTP&amp;lt;/strike&amp;gt; See [[SFTP]]&lt;br /&gt;
*SVN compatibility/capability with hashed files&lt;br /&gt;
&amp;lt;strike&amp;gt;*A proper Bug Tracker.  This page will do for now, but it would be much better to have a real tool.&amp;lt;/strike&amp;gt; - [http://gpl.openqm.com/bugzilla Bugzilla up]&lt;br /&gt;
&lt;br /&gt;
==Bugfixes==&lt;br /&gt;
[[List of fixed bugs in the commercial version of OpenQM (Current as of 2.8-10)]]&lt;br /&gt;
&lt;br /&gt;
==General Bright Ideas==&lt;br /&gt;
* point SORTWORK to a RAMFS mount, would provide very fast sort handling. (Ashley notes:  Altering the SORTMEM parameter does the same)&lt;br /&gt;
* A bit blue-sky, but something I&#039;ve wanted to work on for ages: full Unicode support.&lt;br /&gt;
* Construct a &amp;quot;High performance&amp;quot; benchmark and tuning section&lt;br /&gt;
*Define a &amp;quot;core&amp;quot; of standardised multivalue capabilities that is implemented in all systems, so porting between systems requires zero modifications.&lt;/div&gt;</summary>
		<author><name>Glenb</name></author>
	</entry>
	<entry>
		<id>https://scarlet.deltasoft.com/index.php?title=List_of_fixed_bugs_in_the_commercial_version_of_OpenQM_(Current_as_of_2.8-10)&amp;diff=373</id>
		<title>List of fixed bugs in the commercial version of OpenQM (Current as of 2.8-10)</title>
		<link rel="alternate" type="text/html" href="https://scarlet.deltasoft.com/index.php?title=List_of_fixed_bugs_in_the_commercial_version_of_OpenQM_(Current_as_of_2.8-10)&amp;diff=373"/>
		<updated>2009-04-16T03:42:54Z</updated>

		<summary type="html">&lt;p&gt;Glenb: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The list of fixed issues below are in reverse version order.  If one is fixed, please use the &amp;lt;nowiki&amp;gt;&amp;lt;strike&amp;gt;&amp;lt;/strike&amp;gt;&amp;lt;/nowiki&amp;gt; html command to block out the fixed bug.&lt;br /&gt;
&lt;br /&gt;
*2.8-10&lt;br /&gt;
 The QMBasic compiler allowed use of EQ as an alternative to the = symbol as an&lt;br /&gt;
 assignment operator.&lt;br /&gt;
 &lt;br /&gt;
 Query commands that used closed range tests (e.g. A &amp;gt; 5 and &amp;lt; 8) with fields&lt;br /&gt;
 for which an alternate key index was present could return incorrect data.&lt;br /&gt;
&lt;br /&gt;
*2.8-9&lt;br /&gt;
 The N() funcion in an A-correlative did not allow for field names that did not&lt;br /&gt;
 comply with QM&#039;s naming rules.&lt;br /&gt;
 &lt;br /&gt;
 Where a file had multiple alternate key indices, if an index was built from a&lt;br /&gt;
 calculated value that used a T-conversion or a TRANS() function to reference a&lt;br /&gt;
 record that did not exist, all later index updates for the same write would&lt;br /&gt;
 damage the index.&lt;br /&gt;
 &lt;br /&gt;
 Use of PSTAT could cause the process being queried to crash if it had a very&lt;br /&gt;
 deep execution stack or was executing a very long command.  &lt;br /&gt;
 &lt;br /&gt;
 A phantom would fail to start correctly if the parent process terminated before&lt;br /&gt;
 it had commenced its initialisation.&lt;br /&gt;
 &lt;br /&gt;
 The Proc A command did not treat semicolons in the source data as a special&lt;br /&gt;
 character separating multiple items.&lt;br /&gt;
 &lt;br /&gt;
 A Proc with a command of H with no qualifying text caused the Proc processor&lt;br /&gt;
 to loop.&lt;br /&gt;
 &lt;br /&gt;
 The LPTR keyword was not recognised by the FILE.STAT command.&lt;br /&gt;
 &lt;br /&gt;
 The WHEN clause of the query processor was not handling some complex conditions&lt;br /&gt;
 correctly.&lt;br /&gt;
 &lt;br /&gt;
 A Pick style qualified display clause on a multivalued field was equivalent to&lt;br /&gt;
 use of WITH when it should have been equivalent to use of WHEN.&lt;br /&gt;
 &lt;br /&gt;
 Quitting out of a PSTAT command could result in not being able to start pahntom&lt;br /&gt;
 processes.&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;strike&amp;gt;The @FILENAME synonym for @FILE.NAME was not recognised by the QMBasic&lt;br /&gt;
 compiler.&amp;lt;/strike&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 The QMBasic OPENSEQ statement did not return the blocking user number via the&lt;br /&gt;
 STATUS() function if the record was locked by another user.&lt;br /&gt;
 &lt;br /&gt;
 Some PDA devices would report errors on access to files on the removeable&lt;br /&gt;
 memory card if the PDA had powered down while the file was open.&lt;br /&gt;
 &lt;br /&gt;
*2.8-8&lt;br /&gt;
 Relational operators in correlatives were not implying use of the reuse option.&lt;br /&gt;
 &lt;br /&gt;
 The C operation in F-correlatives did not handle negative numbers.&lt;br /&gt;
 &lt;br /&gt;
 Format codes applied to integer numeric values when non-default NLS delimiters&lt;br /&gt;
 were selected returned an incorrect result.&lt;br /&gt;
 &lt;br /&gt;
 The SET.FILE command did not handle multi-files correctly.&lt;br /&gt;
 &lt;br /&gt;
 Use of the NEXT qualifer to SETPTR or SET.QUEUE could cause QM to terminate&lt;br /&gt;
 abnormally on subsequent use of the CAPTURING clause to EXECUTE.&lt;br /&gt;
 &lt;br /&gt;
 The QMBasic CLEAR statement caused updates to subroutine argument variables&lt;br /&gt;
 that were passed by reference not to be treated as though they were passed by&lt;br /&gt;
 value, not returning the new value to the calling program.&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;strike&amp;gt;The QMBasic SUM() and SUMMATION() functions should ignore non-numeric elements&lt;br /&gt;
 in the dynamic array that they are summing.&amp;lt;/strike&amp;gt;&lt;br /&gt;
*2.8-7&lt;br /&gt;
 Deleting a record from a file that used record level encryption could fail to&lt;br /&gt;
 remove the record from an alternate key index.&lt;br /&gt;
&lt;br /&gt;
 The SED editor hung when trying to delete a record via the explore buffer if&lt;br /&gt;
 that record was locked by another user.&lt;br /&gt;
 &lt;br /&gt;
 The query processor treated Fn field references as being single valued.&lt;br /&gt;
 &lt;br /&gt;
 Reference to a dimensioned matrix on a QMBasic source line above the&lt;br /&gt;
 corresponding DIM statement generated a compilation error.&lt;br /&gt;
 &lt;br /&gt;
 A performance optimisation in the QMBasic LOCATE statement could result in the&lt;br /&gt;
 incorrect field position being returned or a QM fatal error. Also, LOCATE could&lt;br /&gt;
 incorrectly report an item as found if the leading characters matched the final&lt;br /&gt;
 item in the dynamci array being searched.&lt;br /&gt;
*2.8-6&lt;br /&gt;
 The installer on some Linux systems could fail to set permissions correctly.&lt;br /&gt;
 &lt;br /&gt;
 There was an assumption that $HOLD was always in its default location.&lt;br /&gt;
 &lt;br /&gt;
 FORMAT was creating a VOC record named X.&lt;br /&gt;
*2.8-5&lt;br /&gt;
 The init.d scripts on Linux and FreeBSD did not allow for installation with the&lt;br /&gt;
 QMSYS directory in a non-default location.&lt;br /&gt;
 &lt;br /&gt;
 The -R option of qmfix could report that the file was unusable.&lt;br /&gt;
*2.8-4&lt;br /&gt;
 A direct network connection to QM using ports 4242 (telnet) or 4243 (QMClient)&lt;br /&gt;
 would fail on some versions of the network management software used by Linux&lt;br /&gt;
 and the PowerPC version of the Mac.&lt;br /&gt;
 &lt;br /&gt;
 Attempting to open a file that uses record level encryption was causing an&lt;br /&gt;
 abort for users with no access to the encryption key. This should have taken&lt;br /&gt;
 the ELSE clause of the open.&lt;br /&gt;
 &lt;br /&gt;
 FILE.SAVE was ignoring any account name given on the command line and saving&lt;br /&gt;
 all accounts.&lt;br /&gt;
 &lt;br /&gt;
 Using SEL.RESTORE to restore the VOC needed the file name to be entered as&lt;br /&gt;
 VOC-RESTORE. &lt;br /&gt;
 &lt;br /&gt;
 A QMBasic source line that generate a very large volume of object code could&lt;br /&gt;
 result in the program terminating unexpectedly.&lt;br /&gt;
 &lt;br /&gt;
 AccuSoft have supplied a correction to the terminfo definition for F5 in the&lt;br /&gt;
 vt100-at, vt220-at, vt320-at and vt420-at terminal types.&lt;br /&gt;
*2.8-3&lt;br /&gt;
 Attempting to access a hashed file for which a user was locked out by file&lt;br /&gt;
 permissions could appear to open it as a directory file though it would not be&lt;br /&gt;
 possible to read or write records.&lt;br /&gt;
 &lt;br /&gt;
 Creating an alternate key index with an I-type, C-type or correlative that&lt;br /&gt;
 compiles to more than 512 bytes caused QM to terminate with a fatal error and&lt;br /&gt;
 left the index file corrupt.&lt;br /&gt;
 &lt;br /&gt;
 QM could terminate with a fatal error if a command executed using OS.EXECUTE&lt;br /&gt;
 with the CAPTURING clause returned only a newline.&lt;br /&gt;
 &lt;br /&gt;
 Use of an invalid pathname with the QMBasic OSWRITE statement did not take the&lt;br /&gt;
 ON ERROR clause.&lt;br /&gt;
*2.8-2&lt;br /&gt;
 The ANALYSE.FILE command could wrongly report a file as having resizing&lt;br /&gt;
 disabled when it did not, or vice versa.&lt;br /&gt;
 &lt;br /&gt;
 The CREATE.INDEX and MAKE.INDEX commands did not always correctly recognise&lt;br /&gt;
 equivalent indices, resulting an an extra index being created where another&lt;br /&gt;
 that already existed could be used instead.&lt;br /&gt;
 &lt;br /&gt;
 Deleting all lines below the current position in ED and then saving the item&lt;br /&gt;
 could sometimes add a blank line to the end of the data.&lt;br /&gt;
 &lt;br /&gt;
 The query processor did not apply CSV quoting rules to column headings when&lt;br /&gt;
 creating comma separated output. &lt;br /&gt;
 &lt;br /&gt;
 A QMBasic class module with more than 255 entry points would appear to compile&lt;br /&gt;
 correctly but would produce run time errors.&lt;br /&gt;
 &lt;br /&gt;
 The QMBasic READCSV statement could cause a fatal error that terminated the&lt;br /&gt;
 QM session. &lt;br /&gt;
 &lt;br /&gt;
 A QMBasic class module in which a public function or subroutine aborted and the&lt;br /&gt;
 destructor routine then also aborted did not clean up correctly from the first&lt;br /&gt;
 abort.&lt;br /&gt;
*2.8-1&lt;br /&gt;
 ACCOUNT.RESTORE could restore data to an incorrectly formed file name.&lt;br /&gt;
 &lt;br /&gt;
 The query processor BY.EXP.DSND operator was sorting in ascending order.&lt;br /&gt;
*2.7-1&lt;br /&gt;
 The account restore tools did not handle filenames containing illegal&lt;br /&gt;
 characters correctly.&lt;br /&gt;
*2.6-14&lt;br /&gt;
 The VOC $RELEASE record command editor control flags (field 3) were lost when&lt;br /&gt;
 installing a new release.&lt;br /&gt;
 &lt;br /&gt;
 The CODEPAGE option of the PTERM command was rejected.&lt;br /&gt;
 &lt;br /&gt;
 The QMBasic compiler could report an error if an include item had the same name&lt;br /&gt;
 as an equated token.&lt;br /&gt;
*2.6-13&lt;br /&gt;
 A QMBasic indirect call where the indirection variable as an equated token&lt;br /&gt;
 failed to compile correctly.&lt;br /&gt;
 &lt;br /&gt;
 A QMBasic expression containing a Pick style implicit format element could&lt;br /&gt;
 sometimes be interpreted as a dimensioned matrix reference.&lt;br /&gt;
  &lt;br /&gt;
 The MT conversion code was returning 00:00 for a null input value.&lt;br /&gt;
*2.6-12&lt;br /&gt;
 &amp;lt;strike&amp;gt;The FORMAT command reported an internal data mismatch if the program being&lt;br /&gt;
 formatted started with a blank line.&amp;lt;/strike&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 The QMBasic SELECTV statement generated a run time error if the source and&lt;br /&gt;
 target variables were the same.&lt;br /&gt;
 &lt;br /&gt;
 SELECTV &amp;quot;&amp;quot; TO VAR created a list with a single item named &amp;quot;__&amp;quot;.  &amp;lt;strong&amp;gt;--Unable to replicate. Need source code example--&amp;lt;/strong&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 The mc4 and mc5 terminfo keys were incorrect for some AccuTerm terminal types&lt;br /&gt;
 causing use of auxiliary port printing to display the data at the same time as&lt;br /&gt;
 it was printed. Also, pagination prompts could appear while the data was sent&lt;br /&gt;
 to the terminal.&lt;br /&gt;
 &lt;br /&gt;
 The QMCall() function of the qmclilib library on PPC Mac systems did not&lt;br /&gt;
 update returned argument values correctly.&lt;br /&gt;
*2.6-11&lt;br /&gt;
 Use of an equate token that matched the alphabetic part of an @-variable name&lt;br /&gt;
 caused compilation errors. &amp;lt;strong&amp;gt;--Unable to replicate. Need source code example--&amp;lt;/strong&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 A null string in the data supplied to the !SORT() subroutine could cause QM&lt;br /&gt;
 to crash.&lt;br /&gt;
*2.6-10&lt;br /&gt;
 Phantom processes failed to start when launched from sessions logged in as&lt;br /&gt;
 specific user numbers by use of the PORTMAP configuration parameter.&lt;br /&gt;
 &lt;br /&gt;
 The Hot Spot Monitor (HSM) did not count direct calls correctly.&lt;br /&gt;
 &lt;br /&gt;
 QMBasic programs accepted a string containing only a period as being a valid&lt;br /&gt;
 number and treated it as zero.&lt;/div&gt;</summary>
		<author><name>Glenb</name></author>
	</entry>
	<entry>
		<id>https://scarlet.deltasoft.com/index.php?title=List_of_fixed_bugs_in_the_commercial_version_of_OpenQM_(Current_as_of_2.8-10)&amp;diff=372</id>
		<title>List of fixed bugs in the commercial version of OpenQM (Current as of 2.8-10)</title>
		<link rel="alternate" type="text/html" href="https://scarlet.deltasoft.com/index.php?title=List_of_fixed_bugs_in_the_commercial_version_of_OpenQM_(Current_as_of_2.8-10)&amp;diff=372"/>
		<updated>2009-04-16T03:37:53Z</updated>

		<summary type="html">&lt;p&gt;Glenb: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The list of fixed issues below are in reverse version order.  If one is fixed, please use the &amp;lt;nowiki&amp;gt;&amp;lt;strike&amp;gt;&amp;lt;/strike&amp;gt;&amp;lt;/nowiki&amp;gt; html command to block out the fixed bug.&lt;br /&gt;
&lt;br /&gt;
*2.8-10&lt;br /&gt;
 The QMBasic compiler allowed use of EQ as an alternative to the = symbol as an&lt;br /&gt;
 assignment operator.&lt;br /&gt;
 &lt;br /&gt;
 Query commands that used closed range tests (e.g. A &amp;gt; 5 and &amp;lt; 8) with fields&lt;br /&gt;
 for which an alternate key index was present could return incorrect data.&lt;br /&gt;
&lt;br /&gt;
*2.8-9&lt;br /&gt;
 The N() funcion in an A-correlative did not allow for field names that did not&lt;br /&gt;
 comply with QM&#039;s naming rules.&lt;br /&gt;
 &lt;br /&gt;
 Where a file had multiple alternate key indices, if an index was built from a&lt;br /&gt;
 calculated value that used a T-conversion or a TRANS() function to reference a&lt;br /&gt;
 record that did not exist, all later index updates for the same write would&lt;br /&gt;
 damage the index.&lt;br /&gt;
 &lt;br /&gt;
 Use of PSTAT could cause the process being queried to crash if it had a very&lt;br /&gt;
 deep execution stack or was executing a very long command.  &lt;br /&gt;
 &lt;br /&gt;
 A phantom would fail to start correctly if the parent process terminated before&lt;br /&gt;
 it had commenced its initialisation.&lt;br /&gt;
 &lt;br /&gt;
 The Proc A command did not treat semicolons in the source data as a special&lt;br /&gt;
 character separating multiple items.&lt;br /&gt;
 &lt;br /&gt;
 A Proc with a command of H with no qualifying text caused the Proc processor&lt;br /&gt;
 to loop.&lt;br /&gt;
 &lt;br /&gt;
 The LPTR keyword was not recognised by the FILE.STAT command.&lt;br /&gt;
 &lt;br /&gt;
 The WHEN clause of the query processor was not handling some complex conditions&lt;br /&gt;
 correctly.&lt;br /&gt;
 &lt;br /&gt;
 A Pick style qualified display clause on a multivalued field was equivalent to&lt;br /&gt;
 use of WITH when it should have been equivalent to use of WHEN.&lt;br /&gt;
 &lt;br /&gt;
 Quitting out of a PSTAT command could result in not being able to start pahntom&lt;br /&gt;
 processes.&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;strike&amp;gt;The @FILENAME synonym for @FILE.NAME was not recognised by the QMBasic&lt;br /&gt;
 compiler.&amp;lt;/strike&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 The QMBasic OPENSEQ statement did not return the blocking user number via the&lt;br /&gt;
 STATUS() function if the record was locked by another user.&lt;br /&gt;
 &lt;br /&gt;
 Some PDA devices would report errors on access to files on the removeable&lt;br /&gt;
 memory card if the PDA had powered down while the file was open.&lt;br /&gt;
 &lt;br /&gt;
*2.8-8&lt;br /&gt;
 Relational operators in correlatives were not implying use of the reuse option.&lt;br /&gt;
 &lt;br /&gt;
 The C operation in F-correlatives did not handle negative numbers.&lt;br /&gt;
 &lt;br /&gt;
 Format codes applied to integer numeric values when non-default NLS delimiters&lt;br /&gt;
 were selected returned an incorrect result.&lt;br /&gt;
 &lt;br /&gt;
 The SET.FILE command did not handle multi-files correctly.&lt;br /&gt;
 &lt;br /&gt;
 Use of the NEXT qualifer to SETPTR or SET.QUEUE could cause QM to terminate&lt;br /&gt;
 abnormally on subsequent use of the CAPTURING clause to EXECUTE.&lt;br /&gt;
 &lt;br /&gt;
 The QMBasic CLEAR statement caused updates to subroutine argument variables&lt;br /&gt;
 that were passed by reference not to be treated as though they were passed by&lt;br /&gt;
 value, not returning the new value to the calling program.&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;strike&amp;gt;The QMBasic SUM() and SUMMATION() functions should ignore non-numeric elements&lt;br /&gt;
 in the dynamic array that they are summing.&amp;lt;/strike&amp;gt;&lt;br /&gt;
*2.8-7&lt;br /&gt;
 Deleting a record from a file that used record level encryption could fail to&lt;br /&gt;
 remove the record from an alternate key index.&lt;br /&gt;
&lt;br /&gt;
 The SED editor hung when trying to delete a record via the explore buffer if&lt;br /&gt;
 that record was locked by another user.&lt;br /&gt;
 &lt;br /&gt;
 The query processor treated Fn field references as being single valued.&lt;br /&gt;
 &lt;br /&gt;
 Reference to a dimensioned matrix on a QMBasic source line above the&lt;br /&gt;
 corresponding DIM statement generated a compilation error.&lt;br /&gt;
 &lt;br /&gt;
 A performance optimisation in the QMBasic LOCATE statement could result in the&lt;br /&gt;
 incorrect field position being returned or a QM fatal error. Also, LOCATE could&lt;br /&gt;
 incorrectly report an item as found if the leading characters matched the final&lt;br /&gt;
 item in the dynamci array being searched.&lt;br /&gt;
*2.8-6&lt;br /&gt;
 The installer on some Linux systems could fail to set permissions correctly.&lt;br /&gt;
 &lt;br /&gt;
 There was an assumption that $HOLD was always in its default location.&lt;br /&gt;
 &lt;br /&gt;
 FORMAT was creating a VOC record named X.&lt;br /&gt;
*2.8-5&lt;br /&gt;
 The init.d scripts on Linux and FreeBSD did not allow for installation with the&lt;br /&gt;
 QMSYS directory in a non-default location.&lt;br /&gt;
 &lt;br /&gt;
 The -R option of qmfix could report that the file was unusable.&lt;br /&gt;
*2.8-4&lt;br /&gt;
 A direct network connection to QM using ports 4242 (telnet) or 4243 (QMClient)&lt;br /&gt;
 would fail on some versions of the network management software used by Linux&lt;br /&gt;
 and the PowerPC version of the Mac.&lt;br /&gt;
 &lt;br /&gt;
 Attempting to open a file that uses record level encryption was causing an&lt;br /&gt;
 abort for users with no access to the encryption key. This should have taken&lt;br /&gt;
 the ELSE clause of the open.&lt;br /&gt;
 &lt;br /&gt;
 FILE.SAVE was ignoring any account name given on the command line and saving&lt;br /&gt;
 all accounts.&lt;br /&gt;
 &lt;br /&gt;
 Using SEL.RESTORE to restore the VOC needed the file name to be entered as&lt;br /&gt;
 VOC-RESTORE. &lt;br /&gt;
 &lt;br /&gt;
 A QMBasic source line that generate a very large volume of object code could&lt;br /&gt;
 result in the program terminating unexpectedly.&lt;br /&gt;
 &lt;br /&gt;
 AccuSoft have supplied a correction to the terminfo definition for F5 in the&lt;br /&gt;
 vt100-at, vt220-at, vt320-at and vt420-at terminal types.&lt;br /&gt;
*2.8-3&lt;br /&gt;
 Attempting to access a hashed file for which a user was locked out by file&lt;br /&gt;
 permissions could appear to open it as a directory file though it would not be&lt;br /&gt;
 possible to read or write records.&lt;br /&gt;
 &lt;br /&gt;
 Creating an alternate key index with an I-type, C-type or correlative that&lt;br /&gt;
 compiles to more than 512 bytes caused QM to terminate with a fatal error and&lt;br /&gt;
 left the index file corrupt.&lt;br /&gt;
 &lt;br /&gt;
 QM could terminate with a fatal error if a command executed using OS.EXECUTE&lt;br /&gt;
 with the CAPTURING clause returned only a newline.&lt;br /&gt;
 &lt;br /&gt;
 Use of an invalid pathname with the QMBasic OSWRITE statement did not take the&lt;br /&gt;
 ON ERROR clause.&lt;br /&gt;
*2.8-2&lt;br /&gt;
 The ANALYSE.FILE command could wrongly report a file as having resizing&lt;br /&gt;
 disabled when it did not, or vice versa.&lt;br /&gt;
 &lt;br /&gt;
 The CREATE.INDEX and MAKE.INDEX commands did not always correctly recognise&lt;br /&gt;
 equivalent indices, resulting an an extra index being created where another&lt;br /&gt;
 that already existed could be used instead.&lt;br /&gt;
 &lt;br /&gt;
 Deleting all lines below the current position in ED and then saving the item&lt;br /&gt;
 could sometimes add a blank line to the end of the data.&lt;br /&gt;
 &lt;br /&gt;
 The query processor did not apply CSV quoting rules to column headings when&lt;br /&gt;
 creating comma separated output. &lt;br /&gt;
 &lt;br /&gt;
 A QMBasic class module with more than 255 entry points would appear to compile&lt;br /&gt;
 correctly but would produce run time errors.&lt;br /&gt;
 &lt;br /&gt;
 The QMBasic READCSV statement could cause a fatal error that terminated the&lt;br /&gt;
 QM session. &lt;br /&gt;
 &lt;br /&gt;
 A QMBasic class module in which a public function or subroutine aborted and the&lt;br /&gt;
 destructor routine then also aborted did not clean up correctly from the first&lt;br /&gt;
 abort.&lt;br /&gt;
*2.8-1&lt;br /&gt;
 ACCOUNT.RESTORE could restore data to an incorrectly formed file name.&lt;br /&gt;
 &lt;br /&gt;
 The query processor BY.EXP.DSND operator was sorting in ascending order.&lt;br /&gt;
*2.7-1&lt;br /&gt;
 The account restore tools did not handle filenames containing illegal&lt;br /&gt;
 characters correctly.&lt;br /&gt;
*2.6-14&lt;br /&gt;
 The VOC $RELEASE record command editor control flags (field 3) were lost when&lt;br /&gt;
 installing a new release.&lt;br /&gt;
 &lt;br /&gt;
 The CODEPAGE option of the PTERM command was rejected.&lt;br /&gt;
 &lt;br /&gt;
 The QMBasic compiler could report an error if an include item had the same name&lt;br /&gt;
 as an equated token.&lt;br /&gt;
*2.6-13&lt;br /&gt;
 A QMBasic indirect call where the indirection variable as an equated token&lt;br /&gt;
 failed to compile correctly.&lt;br /&gt;
 &lt;br /&gt;
 A QMBasic expression containing a Pick style implicit format element could&lt;br /&gt;
 sometimes be interpreted as a dimensioned matrix reference.&lt;br /&gt;
  &lt;br /&gt;
 The MT conversion code was returning 00:00 for a null input value.&lt;br /&gt;
*2.6-12&lt;br /&gt;
 &amp;lt;strike&amp;gt;The FORMAT command reported an internal data mismatch if the program being&lt;br /&gt;
 formatted started with a blank line.&amp;lt;/strike&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 The QMBasic SELECTV statement generated a run time error if the source and&lt;br /&gt;
 target variables were the same.&lt;br /&gt;
 &lt;br /&gt;
 SELECTV &amp;quot;&amp;quot; TO VAR created a list with a single item named &amp;quot;__&amp;quot;.&lt;br /&gt;
 &lt;br /&gt;
 The mc4 and mc5 terminfo keys were incorrect for some AccuTerm terminal types&lt;br /&gt;
 causing use of auxiliary port printing to display the data at the same time as&lt;br /&gt;
 it was printed. Also, pagination prompts could appear while the data was sent&lt;br /&gt;
 to the terminal.&lt;br /&gt;
 &lt;br /&gt;
 The QMCall() function of the qmclilib library on PPC Mac systems did not&lt;br /&gt;
 update returned argument values correctly.&lt;br /&gt;
*2.6-11&lt;br /&gt;
 Use of an equate token that matched the alphabetic part of an @-variable name&lt;br /&gt;
 caused compilation errors. &amp;lt;strong&amp;gt;--Unable to replicate. Need source code example--&amp;lt;/strong&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 A null string in the data supplied to the !SORT() subroutine could cause QM&lt;br /&gt;
 to crash.&lt;br /&gt;
*2.6-10&lt;br /&gt;
 Phantom processes failed to start when launched from sessions logged in as&lt;br /&gt;
 specific user numbers by use of the PORTMAP configuration parameter.&lt;br /&gt;
 &lt;br /&gt;
 The Hot Spot Monitor (HSM) did not count direct calls correctly.&lt;br /&gt;
 &lt;br /&gt;
 QMBasic programs accepted a string containing only a period as being a valid&lt;br /&gt;
 number and treated it as zero.&lt;/div&gt;</summary>
		<author><name>Glenb</name></author>
	</entry>
	<entry>
		<id>https://scarlet.deltasoft.com/index.php?title=List_of_fixed_bugs_in_the_commercial_version_of_OpenQM_(Current_as_of_2.8-10)&amp;diff=371</id>
		<title>List of fixed bugs in the commercial version of OpenQM (Current as of 2.8-10)</title>
		<link rel="alternate" type="text/html" href="https://scarlet.deltasoft.com/index.php?title=List_of_fixed_bugs_in_the_commercial_version_of_OpenQM_(Current_as_of_2.8-10)&amp;diff=371"/>
		<updated>2009-04-15T03:43:19Z</updated>

		<summary type="html">&lt;p&gt;Glenb: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The list of fixed issues below are in reverse version order.  If one is fixed, please use the &amp;lt;nowiki&amp;gt;&amp;lt;strike&amp;gt;&amp;lt;/strike&amp;gt;&amp;lt;/nowiki&amp;gt; html command to block out the fixed bug.&lt;br /&gt;
&lt;br /&gt;
*2.8-10&lt;br /&gt;
 The QMBasic compiler allowed use of EQ as an alternative to the = symbol as an&lt;br /&gt;
 assignment operator.&lt;br /&gt;
 &lt;br /&gt;
 Query commands that used closed range tests (e.g. A &amp;gt; 5 and &amp;lt; 8) with fields&lt;br /&gt;
 for which an alternate key index was present could return incorrect data.&lt;br /&gt;
&lt;br /&gt;
*2.8-9&lt;br /&gt;
 The N() funcion in an A-correlative did not allow for field names that did not&lt;br /&gt;
 comply with QM&#039;s naming rules.&lt;br /&gt;
 &lt;br /&gt;
 Where a file had multiple alternate key indices, if an index was built from a&lt;br /&gt;
 calculated value that used a T-conversion or a TRANS() function to reference a&lt;br /&gt;
 record that did not exist, all later index updates for the same write would&lt;br /&gt;
 damage the index.&lt;br /&gt;
 &lt;br /&gt;
 Use of PSTAT could cause the process being queried to crash if it had a very&lt;br /&gt;
 deep execution stack or was executing a very long command.  &lt;br /&gt;
 &lt;br /&gt;
 A phantom would fail to start correctly if the parent process terminated before&lt;br /&gt;
 it had commenced its initialisation.&lt;br /&gt;
 &lt;br /&gt;
 The Proc A command did not treat semicolons in the source data as a special&lt;br /&gt;
 character separating multiple items.&lt;br /&gt;
 &lt;br /&gt;
 A Proc with a command of H with no qualifying text caused the Proc processor&lt;br /&gt;
 to loop.&lt;br /&gt;
 &lt;br /&gt;
 The LPTR keyword was not recognised by the FILE.STAT command.&lt;br /&gt;
 &lt;br /&gt;
 The WHEN clause of the query processor was not handling some complex conditions&lt;br /&gt;
 correctly.&lt;br /&gt;
 &lt;br /&gt;
 A Pick style qualified display clause on a multivalued field was equivalent to&lt;br /&gt;
 use of WITH when it should have been equivalent to use of WHEN.&lt;br /&gt;
 &lt;br /&gt;
 Quitting out of a PSTAT command could result in not being able to start pahntom&lt;br /&gt;
 processes.&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;strike&amp;gt;The @FILENAME synonym for @FILE.NAME was not recognised by the QMBasic&lt;br /&gt;
 compiler.&amp;lt;/strike&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 The QMBasic OPENSEQ statement did not return the blocking user number via the&lt;br /&gt;
 STATUS() function if the record was locked by another user.&lt;br /&gt;
 &lt;br /&gt;
 Some PDA devices would report errors on access to files on the removeable&lt;br /&gt;
 memory card if the PDA had powered down while the file was open.&lt;br /&gt;
 &lt;br /&gt;
*2.8-8&lt;br /&gt;
 Relational operators in correlatives were not implying use of the reuse option.&lt;br /&gt;
 &lt;br /&gt;
 The C operation in F-correlatives did not handle negative numbers.&lt;br /&gt;
 &lt;br /&gt;
 Format codes applied to integer numeric values when non-default NLS delimiters&lt;br /&gt;
 were selected returned an incorrect result.&lt;br /&gt;
 &lt;br /&gt;
 The SET.FILE command did not handle multi-files correctly.&lt;br /&gt;
 &lt;br /&gt;
 Use of the NEXT qualifer to SETPTR or SET.QUEUE could cause QM to terminate&lt;br /&gt;
 abnormally on subsequent use of the CAPTURING clause to EXECUTE.&lt;br /&gt;
 &lt;br /&gt;
 The QMBasic CLEAR statement caused updates to subroutine argument variables&lt;br /&gt;
 that were passed by reference not to be treated as though they were passed by&lt;br /&gt;
 value, not returning the new value to the calling program.&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;strike&amp;gt;The QMBasic SUM() and SUMMATION() functions should ignore non-numeric elements&lt;br /&gt;
 in the dynamic array that they are summing.&amp;lt;/strike&amp;gt;&lt;br /&gt;
*2.8-7&lt;br /&gt;
 Deleting a record from a file that used record level encryption could fail to&lt;br /&gt;
 remove the record from an alternate key index.&lt;br /&gt;
&lt;br /&gt;
 The SED editor hung when trying to delete a record via the explore buffer if&lt;br /&gt;
 that record was locked by another user.&lt;br /&gt;
 &lt;br /&gt;
 The query processor treated Fn field references as being single valued.&lt;br /&gt;
 &lt;br /&gt;
 Reference to a dimensioned matrix on a QMBasic source line above the&lt;br /&gt;
 corresponding DIM statement generated a compilation error.&lt;br /&gt;
 &lt;br /&gt;
 A performance optimisation in the QMBasic LOCATE statement could result in the&lt;br /&gt;
 incorrect field position being returned or a QM fatal error. Also, LOCATE could&lt;br /&gt;
 incorrectly report an item as found if the leading characters matched the final&lt;br /&gt;
 item in the dynamci array being searched.&lt;br /&gt;
*2.8-6&lt;br /&gt;
 The installer on some Linux systems could fail to set permissions correctly.&lt;br /&gt;
 &lt;br /&gt;
 There was an assumption that $HOLD was always in its default location.&lt;br /&gt;
 &lt;br /&gt;
 FORMAT was creating a VOC record named X.&lt;br /&gt;
*2.8-5&lt;br /&gt;
 The init.d scripts on Linux and FreeBSD did not allow for installation with the&lt;br /&gt;
 QMSYS directory in a non-default location.&lt;br /&gt;
 &lt;br /&gt;
 The -R option of qmfix could report that the file was unusable.&lt;br /&gt;
*2.8-4&lt;br /&gt;
 A direct network connection to QM using ports 4242 (telnet) or 4243 (QMClient)&lt;br /&gt;
 would fail on some versions of the network management software used by Linux&lt;br /&gt;
 and the PowerPC version of the Mac.&lt;br /&gt;
 &lt;br /&gt;
 Attempting to open a file that uses record level encryption was causing an&lt;br /&gt;
 abort for users with no access to the encryption key. This should have taken&lt;br /&gt;
 the ELSE clause of the open.&lt;br /&gt;
 &lt;br /&gt;
 FILE.SAVE was ignoring any account name given on the command line and saving&lt;br /&gt;
 all accounts.&lt;br /&gt;
 &lt;br /&gt;
 Using SEL.RESTORE to restore the VOC needed the file name to be entered as&lt;br /&gt;
 VOC-RESTORE. &lt;br /&gt;
 &lt;br /&gt;
 A QMBasic source line that generate a very large volume of object code could&lt;br /&gt;
 result in the program terminating unexpectedly.&lt;br /&gt;
 &lt;br /&gt;
 AccuSoft have supplied a correction to the terminfo definition for F5 in the&lt;br /&gt;
 vt100-at, vt220-at, vt320-at and vt420-at terminal types.&lt;br /&gt;
*2.8-3&lt;br /&gt;
 Attempting to access a hashed file for which a user was locked out by file&lt;br /&gt;
 permissions could appear to open it as a directory file though it would not be&lt;br /&gt;
 possible to read or write records.&lt;br /&gt;
 &lt;br /&gt;
 Creating an alternate key index with an I-type, C-type or correlative that&lt;br /&gt;
 compiles to more than 512 bytes caused QM to terminate with a fatal error and&lt;br /&gt;
 left the index file corrupt.&lt;br /&gt;
 &lt;br /&gt;
 QM could terminate with a fatal error if a command executed using OS.EXECUTE&lt;br /&gt;
 with the CAPTURING clause returned only a newline.&lt;br /&gt;
 &lt;br /&gt;
 Use of an invalid pathname with the QMBasic OSWRITE statement did not take the&lt;br /&gt;
 ON ERROR clause.&lt;br /&gt;
*2.8-2&lt;br /&gt;
 The ANALYSE.FILE command could wrongly report a file as having resizing&lt;br /&gt;
 disabled when it did not, or vice versa.&lt;br /&gt;
 &lt;br /&gt;
 The CREATE.INDEX and MAKE.INDEX commands did not always correctly recognise&lt;br /&gt;
 equivalent indices, resulting an an extra index being created where another&lt;br /&gt;
 that already existed could be used instead.&lt;br /&gt;
 &lt;br /&gt;
 Deleting all lines below the current position in ED and then saving the item&lt;br /&gt;
 could sometimes add a blank line to the end of the data.&lt;br /&gt;
 &lt;br /&gt;
 The query processor did not apply CSV quoting rules to column headings when&lt;br /&gt;
 creating comma separated output. &lt;br /&gt;
 &lt;br /&gt;
 A QMBasic class module with more than 255 entry points would appear to compile&lt;br /&gt;
 correctly but would produce run time errors.&lt;br /&gt;
 &lt;br /&gt;
 The QMBasic READCSV statement could cause a fatal error that terminated the&lt;br /&gt;
 QM session. &lt;br /&gt;
 &lt;br /&gt;
 A QMBasic class module in which a public function or subroutine aborted and the&lt;br /&gt;
 destructor routine then also aborted did not clean up correctly from the first&lt;br /&gt;
 abort.&lt;br /&gt;
*2.8-1&lt;br /&gt;
 ACCOUNT.RESTORE could restore data to an incorrectly formed file name.&lt;br /&gt;
 &lt;br /&gt;
 The query processor BY.EXP.DSND operator was sorting in ascending order.&lt;br /&gt;
*2.7-1&lt;br /&gt;
 The account restore tools did not handle filenames containing illegal&lt;br /&gt;
 characters correctly.&lt;br /&gt;
*2.6-14&lt;br /&gt;
 The VOC $RELEASE record command editor control flags (field 3) were lost when&lt;br /&gt;
 installing a new release.&lt;br /&gt;
 &lt;br /&gt;
 The CODEPAGE option of the PTERM command was rejected.&lt;br /&gt;
 &lt;br /&gt;
 The QMBasic compiler could report an error if an include item had the same name&lt;br /&gt;
 as an equated token.&lt;br /&gt;
*2.6-13&lt;br /&gt;
 A QMBasic indirect call where the indirection variable as an equated token&lt;br /&gt;
 failed to compile correctly.&lt;br /&gt;
 &lt;br /&gt;
 A QMBasic expression containing a Pick style implicit format element could&lt;br /&gt;
 sometimes be interpreted as a dimensioned matrix reference.&lt;br /&gt;
  &lt;br /&gt;
 The MT conversion code was returning 00:00 for a null input value.&lt;br /&gt;
*2.6-12&lt;br /&gt;
 &amp;lt;strike&amp;gt;The FORMAT command reported an internal data mismatch if the program being&lt;br /&gt;
 formatted started with a blank line.&amp;lt;/strike&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 The QMBasic SELECTV statement generated a run time error if the source and&lt;br /&gt;
 target variables were the same.&lt;br /&gt;
 &lt;br /&gt;
 SELECTV &amp;quot;&amp;quot; TO VAR created a list with a single item named &amp;quot;__&amp;quot;.&lt;br /&gt;
 &lt;br /&gt;
 The mc4 and mc5 terminfo keys were incorrect for some AccuTerm terminal types&lt;br /&gt;
 causing use of auxiliary port printing to display the data at the same time as&lt;br /&gt;
 it was printed. Also, pagination prompts could appear while the data was sent&lt;br /&gt;
 to the terminal.&lt;br /&gt;
 &lt;br /&gt;
 The QMCall() function of the qmclilib library on PPC Mac systems did not&lt;br /&gt;
 update returned argument values correctly.&lt;br /&gt;
*2.6-11&lt;br /&gt;
 Use of an equate token that matched the alphabetic part of an @-variable name&lt;br /&gt;
 caused compilation errors.&lt;br /&gt;
 &lt;br /&gt;
 A null string in the data supplied to the !SORT() subroutine could cause QM&lt;br /&gt;
 to crash.&lt;br /&gt;
*2.6-10&lt;br /&gt;
 Phantom processes failed to start when launched from sessions logged in as&lt;br /&gt;
 specific user numbers by use of the PORTMAP configuration parameter.&lt;br /&gt;
 &lt;br /&gt;
 The Hot Spot Monitor (HSM) did not count direct calls correctly.&lt;br /&gt;
 &lt;br /&gt;
 QMBasic programs accepted a string containing only a period as being a valid&lt;br /&gt;
 number and treated it as zero.&lt;/div&gt;</summary>
		<author><name>Glenb</name></author>
	</entry>
	<entry>
		<id>https://scarlet.deltasoft.com/index.php?title=List_of_fixed_bugs_in_the_commercial_version_of_OpenQM_(Current_as_of_2.8-10)&amp;diff=370</id>
		<title>List of fixed bugs in the commercial version of OpenQM (Current as of 2.8-10)</title>
		<link rel="alternate" type="text/html" href="https://scarlet.deltasoft.com/index.php?title=List_of_fixed_bugs_in_the_commercial_version_of_OpenQM_(Current_as_of_2.8-10)&amp;diff=370"/>
		<updated>2009-04-15T03:42:39Z</updated>

		<summary type="html">&lt;p&gt;Glenb: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The list of fixed issues below are in reverse version order.  If one is fixed, please use the &amp;lt;nowiki&amp;gt;&amp;lt;strike&amp;gt;&amp;lt;/strike&amp;gt;&amp;lt;/nowiki&amp;gt; html command to block out the fixed bug.&lt;br /&gt;
&lt;br /&gt;
*2.8-10&lt;br /&gt;
 The QMBasic compiler allowed use of EQ as an alternative to the = symbol as an&lt;br /&gt;
 assignment operator.&lt;br /&gt;
 &lt;br /&gt;
 Query commands that used closed range tests (e.g. A &amp;gt; 5 and &amp;lt; 8) with fields&lt;br /&gt;
 for which an alternate key index was present could return incorrect data.&lt;br /&gt;
&lt;br /&gt;
*2.8-9&lt;br /&gt;
 The N() funcion in an A-correlative did not allow for field names that did not&lt;br /&gt;
 comply with QM&#039;s naming rules.&lt;br /&gt;
 &lt;br /&gt;
 Where a file had multiple alternate key indices, if an index was built from a&lt;br /&gt;
 calculated value that used a T-conversion or a TRANS() function to reference a&lt;br /&gt;
 record that did not exist, all later index updates for the same write would&lt;br /&gt;
 damage the index.&lt;br /&gt;
 &lt;br /&gt;
 Use of PSTAT could cause the process being queried to crash if it had a very&lt;br /&gt;
 deep execution stack or was executing a very long command.  &lt;br /&gt;
 &lt;br /&gt;
 A phantom would fail to start correctly if the parent process terminated before&lt;br /&gt;
 it had commenced its initialisation.&lt;br /&gt;
 &lt;br /&gt;
 The Proc A command did not treat semicolons in the source data as a special&lt;br /&gt;
 character separating multiple items.&lt;br /&gt;
 &lt;br /&gt;
 A Proc with a command of H with no qualifying text caused the Proc processor&lt;br /&gt;
 to loop.&lt;br /&gt;
 &lt;br /&gt;
 The LPTR keyword was not recognised by the FILE.STAT command.&lt;br /&gt;
 &lt;br /&gt;
 The WHEN clause of the query processor was not handling some complex conditions&lt;br /&gt;
 correctly.&lt;br /&gt;
 &lt;br /&gt;
 A Pick style qualified display clause on a multivalued field was equivalent to&lt;br /&gt;
 use of WITH when it should have been equivalent to use of WHEN.&lt;br /&gt;
 &lt;br /&gt;
 Quitting out of a PSTAT command could result in not being able to start pahntom&lt;br /&gt;
 processes.&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;strike&amp;gt;The @FILENAME synonym for @FILE.NAME was not recognised by the QMBasic&lt;br /&gt;
 compiler.&amp;lt;/strike&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 The QMBasic OPENSEQ statement did not return the blocking user number via the&lt;br /&gt;
 STATUS() function if the record was locked by another user.&lt;br /&gt;
 &lt;br /&gt;
 Some PDA devices would report errors on access to files on the removeable&lt;br /&gt;
 memory card if the PDA had powered down while the file was open.&lt;br /&gt;
 &lt;br /&gt;
*2.8-8&lt;br /&gt;
 Relational operators in correlatives were not implying use of the reuse option.&lt;br /&gt;
 &lt;br /&gt;
 The C operation in F-correlatives did not handle negative numbers.&lt;br /&gt;
 &lt;br /&gt;
 Format codes applied to integer numeric values when non-default NLS delimiters&lt;br /&gt;
 were selected returned an incorrect result.&lt;br /&gt;
 &lt;br /&gt;
 The SET.FILE command did not handle multi-files correctly.&lt;br /&gt;
 &lt;br /&gt;
 Use of the NEXT qualifer to SETPTR or SET.QUEUE could cause QM to terminate&lt;br /&gt;
 abnormally on subsequent use of the CAPTURING clause to EXECUTE.&lt;br /&gt;
 &lt;br /&gt;
 The QMBasic CLEAR statement caused updates to subroutine argument variables&lt;br /&gt;
 that were passed by reference not to be treated as though they were passed by&lt;br /&gt;
 value, not returning the new value to the calling program.&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;strike&amp;gt;The QMBasic SUM() and SUMMATION() functions should ignore non-numeric elements&lt;br /&gt;
 in the dynamic array that they are summing.&amp;lt;/strike&amp;gt;&lt;br /&gt;
*2.8-7&lt;br /&gt;
 Deleting a record from a file that used record level encryption could fail to&lt;br /&gt;
 remove the record from an alternate key index.&lt;br /&gt;
&lt;br /&gt;
 The SED editor hung when trying to delete a record via the explore buffer if&lt;br /&gt;
 that record was locked by another user.&lt;br /&gt;
 &lt;br /&gt;
 The query processor treated Fn field references as being single valued.&lt;br /&gt;
 &lt;br /&gt;
 Reference to a dimensioned matrix on a QMBasic source line above the&lt;br /&gt;
 corresponding DIM statement generated a compilation error.&lt;br /&gt;
 &lt;br /&gt;
 A performance optimisation in the QMBasic LOCATE statement could result in the&lt;br /&gt;
 incorrect field position being returned or a QM fatal error. Also, LOCATE could&lt;br /&gt;
 incorrectly report an item as found if the leading characters matched the final&lt;br /&gt;
 item in the dynamci array being searched.&lt;br /&gt;
*2.8-6&lt;br /&gt;
 The installer on some Linux systems could fail to set permissions correctly.&lt;br /&gt;
 &lt;br /&gt;
 There was an assumption that $HOLD was always in its default location.&lt;br /&gt;
 &lt;br /&gt;
 FORMAT was creating a VOC record named X.&lt;br /&gt;
*2.8-5&lt;br /&gt;
 The init.d scripts on Linux and FreeBSD did not allow for installation with the&lt;br /&gt;
 QMSYS directory in a non-default location.&lt;br /&gt;
 &lt;br /&gt;
 The -R option of qmfix could report that the file was unusable.&lt;br /&gt;
*2.8-4&lt;br /&gt;
 A direct network connection to QM using ports 4242 (telnet) or 4243 (QMClient)&lt;br /&gt;
 would fail on some versions of the network management software used by Linux&lt;br /&gt;
 and the PowerPC version of the Mac.&lt;br /&gt;
 &lt;br /&gt;
 Attempting to open a file that uses record level encryption was causing an&lt;br /&gt;
 abort for users with no access to the encryption key. This should have taken&lt;br /&gt;
 the ELSE clause of the open.&lt;br /&gt;
 &lt;br /&gt;
 FILE.SAVE was ignoring any account name given on the command line and saving&lt;br /&gt;
 all accounts.&lt;br /&gt;
 &lt;br /&gt;
 Using SEL.RESTORE to restore the VOC needed the file name to be entered as&lt;br /&gt;
 VOC-RESTORE. &lt;br /&gt;
 &lt;br /&gt;
 A QMBasic source line that generate a very large volume of object code could&lt;br /&gt;
 result in the program terminating unexpectedly.&lt;br /&gt;
 &lt;br /&gt;
 AccuSoft have supplied a correction to the terminfo definition for F5 in the&lt;br /&gt;
 vt100-at, vt220-at, vt320-at and vt420-at terminal types.&lt;br /&gt;
*2.8-3&lt;br /&gt;
 Attempting to access a hashed file for which a user was locked out by file&lt;br /&gt;
 permissions could appear to open it as a directory file though it would not be&lt;br /&gt;
 possible to read or write records.&lt;br /&gt;
 &lt;br /&gt;
 Creating an alternate key index with an I-type, C-type or correlative that&lt;br /&gt;
 compiles to more than 512 bytes caused QM to terminate with a fatal error and&lt;br /&gt;
 left the index file corrupt.&lt;br /&gt;
 &lt;br /&gt;
 QM could terminate with a fatal error if a command executed using OS.EXECUTE&lt;br /&gt;
 with the CAPTURING clause returned only a newline.&lt;br /&gt;
 &lt;br /&gt;
 Use of an invalid pathname with the QMBasic OSWRITE statement did not take the&lt;br /&gt;
 ON ERROR clause.&lt;br /&gt;
*2.8-2&lt;br /&gt;
 The ANALYSE.FILE command could wrongly report a file as having resizing&lt;br /&gt;
 disabled when it did not, or vice versa.&lt;br /&gt;
 &lt;br /&gt;
 The CREATE.INDEX and MAKE.INDEX commands did not always correctly recognise&lt;br /&gt;
 equivalent indices, resulting an an extra index being created where another&lt;br /&gt;
 that already existed could be used instead.&lt;br /&gt;
 &lt;br /&gt;
 Deleting all lines below the current position in ED and then saving the item&lt;br /&gt;
 could sometimes add a blank line to the end of the data.&lt;br /&gt;
 &lt;br /&gt;
 The query processor did not apply CSV quoting rules to column headings when&lt;br /&gt;
 creating comma separated output. &lt;br /&gt;
 &lt;br /&gt;
 A QMBasic class module with more than 255 entry points would appear to compile&lt;br /&gt;
 correctly but would produce run time errors.&lt;br /&gt;
 &lt;br /&gt;
 The QMBasic READCSV statement could cause a fatal error that terminated the&lt;br /&gt;
 QM session. &lt;br /&gt;
 &lt;br /&gt;
 A QMBasic class module in which a public function or subroutine aborted and the&lt;br /&gt;
 destructor routine then also aborted did not clean up correctly from the first&lt;br /&gt;
 abort.&lt;br /&gt;
*2.8-1&lt;br /&gt;
 ACCOUNT.RESTORE could restore data to an incorrectly formed file name.&lt;br /&gt;
 &lt;br /&gt;
 The query processor BY.EXP.DSND operator was sorting in ascending order.&lt;br /&gt;
*2.7-1&lt;br /&gt;
 The account restore tools did not handle filenames containing illegal&lt;br /&gt;
 characters correctly.&lt;br /&gt;
*2.6-14&lt;br /&gt;
 The VOC $RELEASE record command editor control flags (field 3) were lost when&lt;br /&gt;
 installing a new release.&lt;br /&gt;
 &lt;br /&gt;
 The CODEPAGE option of the PTERM command was rejected.&lt;br /&gt;
 &lt;br /&gt;
 The QMBasic compiler could report an error if an include item had the same name&lt;br /&gt;
 as an equated token.&lt;br /&gt;
*2.6-13&lt;br /&gt;
 A QMBasic indirect call where the indirection variable as an equated token&lt;br /&gt;
 failed to compile correctly.&lt;br /&gt;
 &lt;br /&gt;
 A QMBasic expression containing a Pick style implicit format element could&lt;br /&gt;
 sometimes be interpreted as a dimensioned matrix reference.&lt;br /&gt;
  &lt;br /&gt;
 The MT conversion code was returning 00:00 for a null input value.&lt;br /&gt;
*2.6-12&lt;br /&gt;
 &amp;lt;strike&amp;gt;The FORMAT command reported an internal data mismatch if the program being&lt;br /&gt;
 formatted started with a blank line.&amp;lt;/strike&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 The QMBasic SELECTV statement generated a run time error if the source and&lt;br /&gt;
 target variables were the same.&lt;br /&gt;
 &lt;br /&gt;
 SELECTV &amp;quot;&amp;quot; TO VAR created a list with a single item named &amp;quot;__&amp;quot;.&lt;br /&gt;
 &lt;br /&gt;
 The mc4 and mc5 terminfo keys were incorrect for some AccuTerm terminal types&lt;br /&gt;
 causing use of auxiliary port printing to display the data at the same time as&lt;br /&gt;
 it was printed. Also, pagination prompts could appear while the data was sent&lt;br /&gt;
 to the terminal.&lt;br /&gt;
 &lt;br /&gt;
 The QMCall() function of the qmclilib library on PPC Mac systems did not&lt;br /&gt;
 update returned argument values correctly.&lt;br /&gt;
*2.6-11&lt;br /&gt;
 Use of an equate token that matched the alphabetic part of an @-variable name&lt;br /&gt;
 caused compilation errors.&lt;br /&gt;
 &lt;br /&gt;
 A null string in the data supplied to the !SORT() subroutine could cause QM&lt;br /&gt;
 to crash.&lt;br /&gt;
*2.6-10&lt;br /&gt;
 Phantom processes failed to start when launched from sessions logged in as&lt;br /&gt;
 specific user numbers by use of the PORTMAP configuration parameter.&lt;br /&gt;
 &lt;br /&gt;
 The Hot Spot Monitor (HSM) did not count direct calls correctly.&lt;br /&gt;
 &lt;br /&gt;
 QMBasic programs accepted a string containing only a period as being a valid&lt;br /&gt;
 number and treated it as zero.&lt;/div&gt;</summary>
		<author><name>Glenb</name></author>
	</entry>
	<entry>
		<id>https://scarlet.deltasoft.com/index.php?title=List_of_fixed_bugs_in_the_commercial_version_of_OpenQM_(Current_as_of_2.8-10)&amp;diff=369</id>
		<title>List of fixed bugs in the commercial version of OpenQM (Current as of 2.8-10)</title>
		<link rel="alternate" type="text/html" href="https://scarlet.deltasoft.com/index.php?title=List_of_fixed_bugs_in_the_commercial_version_of_OpenQM_(Current_as_of_2.8-10)&amp;diff=369"/>
		<updated>2009-04-15T03:36:11Z</updated>

		<summary type="html">&lt;p&gt;Glenb: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The list of fixed issues below are in reverse version order.  If one is fixed, please use the &amp;lt;nowiki&amp;gt;&amp;lt;strike&amp;gt;&amp;lt;/strike&amp;gt;&amp;lt;/nowiki&amp;gt; html command to block out the fixed bug.&lt;br /&gt;
&lt;br /&gt;
*2.8-10&lt;br /&gt;
 The QMBasic compiler allowed use of EQ as an alternative to the = symbol as an&lt;br /&gt;
 assignment operator.&lt;br /&gt;
 &lt;br /&gt;
 Query commands that used closed range tests (e.g. A &amp;gt; 5 and &amp;lt; 8) with fields&lt;br /&gt;
 for which an alternate key index was present could return incorrect data.&lt;br /&gt;
&lt;br /&gt;
*2.8-9&lt;br /&gt;
 The N() funcion in an A-correlative did not allow for field names that did not&lt;br /&gt;
 comply with QM&#039;s naming rules.&lt;br /&gt;
 &lt;br /&gt;
 Where a file had multiple alternate key indices, if an index was built from a&lt;br /&gt;
 calculated value that used a T-conversion or a TRANS() function to reference a&lt;br /&gt;
 record that did not exist, all later index updates for the same write would&lt;br /&gt;
 damage the index.&lt;br /&gt;
 &lt;br /&gt;
 Use of PSTAT could cause the process being queried to crash if it had a very&lt;br /&gt;
 deep execution stack or was executing a very long command.  &lt;br /&gt;
 &lt;br /&gt;
 A phantom would fail to start correctly if the parent process terminated before&lt;br /&gt;
 it had commenced its initialisation.&lt;br /&gt;
 &lt;br /&gt;
 The Proc A command did not treat semicolons in the source data as a special&lt;br /&gt;
 character separating multiple items.&lt;br /&gt;
 &lt;br /&gt;
 A Proc with a command of H with no qualifying text caused the Proc processor&lt;br /&gt;
 to loop.&lt;br /&gt;
 &lt;br /&gt;
 The LPTR keyword was not recognised by the FILE.STAT command.&lt;br /&gt;
 &lt;br /&gt;
 The WHEN clause of the query processor was not handling some complex conditions&lt;br /&gt;
 correctly.&lt;br /&gt;
 &lt;br /&gt;
 A Pick style qualified display clause on a multivalued field was equivalent to&lt;br /&gt;
 use of WITH when it should have been equivalent to use of WHEN.&lt;br /&gt;
 &lt;br /&gt;
 Quitting out of a PSTAT command could result in not being able to start pahntom&lt;br /&gt;
 processes.&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;strike&amp;gt; The @FILENAME synonym for @FILE.NAME was not recognised by the QMBasic&lt;br /&gt;
 compiler. &amp;lt;/strike&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 The QMBasic OPENSEQ statement did not return the blocking user number via the&lt;br /&gt;
 STATUS() function if the record was locked by another user.&lt;br /&gt;
 &lt;br /&gt;
 Some PDA devices would report errors on access to files on the removeable&lt;br /&gt;
 memory card if the PDA had powered down while the file was open.&lt;br /&gt;
 &lt;br /&gt;
*2.8-8&lt;br /&gt;
 Relational operators in correlatives were not implying use of the reuse option.&lt;br /&gt;
 &lt;br /&gt;
 The C operation in F-correlatives did not handle negative numbers.&lt;br /&gt;
 &lt;br /&gt;
 Format codes applied to integer numeric values when non-default NLS delimiters&lt;br /&gt;
 were selected returned an incorrect result.&lt;br /&gt;
 &lt;br /&gt;
 The SET.FILE command did not handle multi-files correctly.&lt;br /&gt;
 &lt;br /&gt;
 Use of the NEXT qualifer to SETPTR or SET.QUEUE could cause QM to terminate&lt;br /&gt;
 abnormally on subsequent use of the CAPTURING clause to EXECUTE.&lt;br /&gt;
 &lt;br /&gt;
 The QMBasic CLEAR statement caused updates to subroutine argument variables&lt;br /&gt;
 that were passed by reference not to be treated as though they were passed by&lt;br /&gt;
 value, not returning the new value to the calling program.&lt;br /&gt;
 &lt;br /&gt;
 The QMBasic SUM() and SUMMATION() functions should ignore non-numeric elements&lt;br /&gt;
 in the dynamic array that they are summing.&lt;br /&gt;
*2.8-7&lt;br /&gt;
 Deleting a record from a file that used record level encryption could fail to&lt;br /&gt;
 remove the record from an alternate key index.&lt;br /&gt;
&lt;br /&gt;
 The SED editor hung when trying to delete a record via the explore buffer if&lt;br /&gt;
 that record was locked by another user.&lt;br /&gt;
 &lt;br /&gt;
 The query processor treated Fn field references as being single valued.&lt;br /&gt;
 &lt;br /&gt;
 Reference to a dimensioned matrix on a QMBasic source line above the&lt;br /&gt;
 corresponding DIM statement generated a compilation error.&lt;br /&gt;
 &lt;br /&gt;
 A performance optimisation in the QMBasic LOCATE statement could result in the&lt;br /&gt;
 incorrect field position being returned or a QM fatal error. Also, LOCATE could&lt;br /&gt;
 incorrectly report an item as found if the leading characters matched the final&lt;br /&gt;
 item in the dynamci array being searched.&lt;br /&gt;
*2.8-6&lt;br /&gt;
 The installer on some Linux systems could fail to set permissions correctly.&lt;br /&gt;
 &lt;br /&gt;
 There was an assumption that $HOLD was always in its default location.&lt;br /&gt;
 &lt;br /&gt;
 FORMAT was creating a VOC record named X.&lt;br /&gt;
*2.8-5&lt;br /&gt;
 The init.d scripts on Linux and FreeBSD did not allow for installation with the&lt;br /&gt;
 QMSYS directory in a non-default location.&lt;br /&gt;
 &lt;br /&gt;
 The -R option of qmfix could report that the file was unusable.&lt;br /&gt;
*2.8-4&lt;br /&gt;
 A direct network connection to QM using ports 4242 (telnet) or 4243 (QMClient)&lt;br /&gt;
 would fail on some versions of the network management software used by Linux&lt;br /&gt;
 and the PowerPC version of the Mac.&lt;br /&gt;
 &lt;br /&gt;
 Attempting to open a file that uses record level encryption was causing an&lt;br /&gt;
 abort for users with no access to the encryption key. This should have taken&lt;br /&gt;
 the ELSE clause of the open.&lt;br /&gt;
 &lt;br /&gt;
 FILE.SAVE was ignoring any account name given on the command line and saving&lt;br /&gt;
 all accounts.&lt;br /&gt;
 &lt;br /&gt;
 Using SEL.RESTORE to restore the VOC needed the file name to be entered as&lt;br /&gt;
 VOC-RESTORE. &lt;br /&gt;
 &lt;br /&gt;
 A QMBasic source line that generate a very large volume of object code could&lt;br /&gt;
 result in the program terminating unexpectedly.&lt;br /&gt;
 &lt;br /&gt;
 AccuSoft have supplied a correction to the terminfo definition for F5 in the&lt;br /&gt;
 vt100-at, vt220-at, vt320-at and vt420-at terminal types.&lt;br /&gt;
*2.8-3&lt;br /&gt;
 Attempting to access a hashed file for which a user was locked out by file&lt;br /&gt;
 permissions could appear to open it as a directory file though it would not be&lt;br /&gt;
 possible to read or write records.&lt;br /&gt;
 &lt;br /&gt;
 Creating an alternate key index with an I-type, C-type or correlative that&lt;br /&gt;
 compiles to more than 512 bytes caused QM to terminate with a fatal error and&lt;br /&gt;
 left the index file corrupt.&lt;br /&gt;
 &lt;br /&gt;
 QM could terminate with a fatal error if a command executed using OS.EXECUTE&lt;br /&gt;
 with the CAPTURING clause returned only a newline.&lt;br /&gt;
 &lt;br /&gt;
 Use of an invalid pathname with the QMBasic OSWRITE statement did not take the&lt;br /&gt;
 ON ERROR clause.&lt;br /&gt;
*2.8-2&lt;br /&gt;
 The ANALYSE.FILE command could wrongly report a file as having resizing&lt;br /&gt;
 disabled when it did not, or vice versa.&lt;br /&gt;
 &lt;br /&gt;
 The CREATE.INDEX and MAKE.INDEX commands did not always correctly recognise&lt;br /&gt;
 equivalent indices, resulting an an extra index being created where another&lt;br /&gt;
 that already existed could be used instead.&lt;br /&gt;
 &lt;br /&gt;
 Deleting all lines below the current position in ED and then saving the item&lt;br /&gt;
 could sometimes add a blank line to the end of the data.&lt;br /&gt;
 &lt;br /&gt;
 The query processor did not apply CSV quoting rules to column headings when&lt;br /&gt;
 creating comma separated output. &lt;br /&gt;
 &lt;br /&gt;
 A QMBasic class module with more than 255 entry points would appear to compile&lt;br /&gt;
 correctly but would produce run time errors.&lt;br /&gt;
 &lt;br /&gt;
 The QMBasic READCSV statement could cause a fatal error that terminated the&lt;br /&gt;
 QM session. &lt;br /&gt;
 &lt;br /&gt;
 A QMBasic class module in which a public function or subroutine aborted and the&lt;br /&gt;
 destructor routine then also aborted did not clean up correctly from the first&lt;br /&gt;
 abort.&lt;br /&gt;
*2.8-1&lt;br /&gt;
 ACCOUNT.RESTORE could restore data to an incorrectly formed file name.&lt;br /&gt;
 &lt;br /&gt;
 The query processor BY.EXP.DSND operator was sorting in ascending order.&lt;br /&gt;
*2.7-1&lt;br /&gt;
 The account restore tools did not handle filenames containing illegal&lt;br /&gt;
 characters correctly.&lt;br /&gt;
*2.6-14&lt;br /&gt;
 The VOC $RELEASE record command editor control flags (field 3) were lost when&lt;br /&gt;
 installing a new release.&lt;br /&gt;
 &lt;br /&gt;
 The CODEPAGE option of the PTERM command was rejected.&lt;br /&gt;
 &lt;br /&gt;
 The QMBasic compiler could report an error if an include item had the same name&lt;br /&gt;
 as an equated token.&lt;br /&gt;
*2.6-13&lt;br /&gt;
 A QMBasic indirect call where the indirection variable as an equated token&lt;br /&gt;
 failed to compile correctly.&lt;br /&gt;
 &lt;br /&gt;
 A QMBasic expression containing a Pick style implicit format element could&lt;br /&gt;
 sometimes be interpreted as a dimensioned matrix reference.&lt;br /&gt;
  &lt;br /&gt;
 The MT conversion code was returning 00:00 for a null input value.&lt;br /&gt;
*2.6-12&lt;br /&gt;
 &amp;lt;strike&amp;gt;The FORMAT command reported an internal data mismatch if the program being&lt;br /&gt;
 formatted started with a blank line.&amp;lt;/strike&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 The QMBasic SELECTV statement generated a run time error if the source and&lt;br /&gt;
 target variables were the same.&lt;br /&gt;
 &lt;br /&gt;
 SELECTV &amp;quot;&amp;quot; TO VAR created a list with a single item named &amp;quot;__&amp;quot;.&lt;br /&gt;
 &lt;br /&gt;
 The mc4 and mc5 terminfo keys were incorrect for some AccuTerm terminal types&lt;br /&gt;
 causing use of auxiliary port printing to display the data at the same time as&lt;br /&gt;
 it was printed. Also, pagination prompts could appear while the data was sent&lt;br /&gt;
 to the terminal.&lt;br /&gt;
 &lt;br /&gt;
 The QMCall() function of the qmclilib library on PPC Mac systems did not&lt;br /&gt;
 update returned argument values correctly.&lt;br /&gt;
*2.6-11&lt;br /&gt;
 Use of an equate token that matched the alphabetic part of an @-variable name&lt;br /&gt;
 caused compilation errors.&lt;br /&gt;
 &lt;br /&gt;
 A null string in the data supplied to the !SORT() subroutine could cause QM&lt;br /&gt;
 to crash.&lt;br /&gt;
*2.6-10&lt;br /&gt;
 Phantom processes failed to start when launched from sessions logged in as&lt;br /&gt;
 specific user numbers by use of the PORTMAP configuration parameter.&lt;br /&gt;
 &lt;br /&gt;
 The Hot Spot Monitor (HSM) did not count direct calls correctly.&lt;br /&gt;
 &lt;br /&gt;
 QMBasic programs accepted a string containing only a period as being a valid&lt;br /&gt;
 number and treated it as zero.&lt;/div&gt;</summary>
		<author><name>Glenb</name></author>
	</entry>
	<entry>
		<id>https://scarlet.deltasoft.com/index.php?title=Main_Page&amp;diff=350</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://scarlet.deltasoft.com/index.php?title=Main_Page&amp;diff=350"/>
		<updated>2009-04-11T20:20:28Z</updated>

		<summary type="html">&lt;p&gt;Glenb: /* For Developers */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;gpl.openqm.com is dedicated to the development of a community distribution of [[OpenQM]], by providing an environment where anyone can acquire, study and contribute to the [[OpenQM]] [[multivalue]] database.&lt;br /&gt;
&lt;br /&gt;
This project is focussed purely upon the GPL implementation of [[OpenQM]], originally developed by [[Ladybridge]]. This project was founded on the 28th November 2008 to independently develop future versions of [[OpenQM]]. Naturally, contributors to [[OpenQM]] are welcome to submit any changes that they may make back to Ladybridge for inclusion in Commercial QM.&lt;br /&gt;
&lt;br /&gt;
Submissions to this project must be under the GPL version 2, with the option to use a later version if the licensee wishes.  Or they can be licensed under the LGPL.  There may be links on this site to non-conforming software, but that does not include them in this project.&lt;br /&gt;
&lt;br /&gt;
The subdomain that points to this website is granted by [[Ladybridge]], however the server hosting this project, and it&#039;s content is neither their responsibility, or under their control. The server is a VMWare Server 2 Virtual Machine located in a high-bandwidth datacentre in Amsterdam, Netherlands. It is hosted by [[User:SteveB|SteveB]] who maintains a daily backup to a secondary datacentre in Amsterdam. If you can provide a stable high bandwidth backup mirror, please contact him.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;This server is DOWN/SLOW around 04:00GMT nightly for 15mins while backing up.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==For Users==&lt;br /&gt;
*[[Downloads]]: Source tarball and package builds for key platforms&lt;br /&gt;
*[[Guides &amp;amp; HOWTOs]] - Index of useful guides and HOWTO&#039;s on this Wiki&lt;br /&gt;
*[[QMBASIC Enhancements]] - QMBASIC features that are custom or were not part of the original GPL release.&lt;br /&gt;
*[http://gpl.openqm.com/bugzilla Bugzilla] reporting and tracking bugs:&lt;br /&gt;
*[http://www.openqm.org/docs/ Documentation] (Commercial Version)&lt;br /&gt;
*General support email group: [http://groups.google.co.uk/group/openqm-opensource Register] then mailto:openqm-opensource@googlegroups.com&lt;br /&gt;
*IRC Chat: irc://irc.efnet.org/openqm&lt;br /&gt;
====Supporting Projects====&lt;br /&gt;
Various external projects that provide tools for or API&#039;s into OpenQM&lt;br /&gt;
* [http://billabong-services.co.uk/anji Billabong Services&#039; Anji] - an open web based file browser and reporter.  Eventually to become a RAD system.  Pre-alpha grade of code. &lt;br /&gt;
*[[PHP_Native_API|PHP Native API module]]&lt;br /&gt;
*[[C++ Wrapper]]&lt;br /&gt;
*Steve Bush&#039;s [[Cygwin Port]] - Is it worth considering a MinGW port? - Would have to replace some posix bits which MinGW doesnt have.&lt;br /&gt;
* [http://www.tridentinfosys.com/ Kevin Powick&#039;s Trident Delphi wrapper]&lt;br /&gt;
&lt;br /&gt;
==For Developers==&lt;br /&gt;
For those that want to contribute to OpenQM GPL project.&lt;br /&gt;
*Subversion repository: https://gpl.openqm.com/svn/qmvdb/ - [[HOWTO]] &lt;br /&gt;
*Development email group: [http://gpl.openqm.com/mailman/listinfo/openqm-dev Register] then mailto:openqm-dev@gpl.openqm.com&lt;br /&gt;
*[[Development snapshots]] - How to obtain, build, and upgrade using the snapshots.&lt;br /&gt;
*[[QM Client API]] - Documentation and Available API&#039;s for the QM remote protocol.&lt;br /&gt;
*[[Wish list]] - Things that you want &amp;amp; that we need contributors/devs for (lots of small things)&lt;br /&gt;
*[[Dynamic linking]] - Calling objects written in other languages.&lt;br /&gt;
*[[Installers]] - Installing scripts/programs or package systems&lt;br /&gt;
&lt;br /&gt;
== How do I use this site? ==&lt;br /&gt;
&lt;br /&gt;
If you have a question on USAGE of the community version of OpenQM, then send it to the [http://groups.google.co.uk/group/openqm-opensource general email support group].&lt;br /&gt;
&lt;br /&gt;
If you want to discuss DEVELOPMENT of the community version of OpenQM (eg. php5 module) then send it to the [http://gpl.openqm.com/mailman/listinfo/openqm-dev development email group].&lt;br /&gt;
&lt;br /&gt;
While the email lists are best for getting attention, permanent changes in this wiki will have a longer term impact so feel free to add or change ANYTHING in this wiki.&lt;br /&gt;
&lt;br /&gt;
=== External Resources ===&lt;br /&gt;
* [[Installations]] - Places where GPL OpenQM is in use (I&#039;m attempting to create a new section for this) - http://capersqm.dnsalias.net/&lt;br /&gt;
* [http://www.rushflat.co.nz/downloads.shtml Brian Speir&#039;s Installation instructions and other downloads ]&lt;br /&gt;
*  [http://openqm.blackflute.com/ Tom Delombard&#039;s old QM page.] Includes details of the tape utilities and the PHP4 module (C Wrapper) &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
--[[Administration]]&lt;/div&gt;</summary>
		<author><name>Glenb</name></author>
	</entry>
	<entry>
		<id>https://scarlet.deltasoft.com/index.php?title=Custom_Compiler_Modes&amp;diff=349</id>
		<title>Custom Compiler Modes</title>
		<link rel="alternate" type="text/html" href="https://scarlet.deltasoft.com/index.php?title=Custom_Compiler_Modes&amp;diff=349"/>
		<updated>2009-04-08T02:17:32Z</updated>

		<summary type="html">&lt;p&gt;Glenb: /* OpenQM GPL Custom Compiler Modes */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
== OpenQM GPL Compatibility Compiler Modes ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;HEADING.NO.EJECT&#039;&#039;&#039; - This is provided to function the same as the commercial HEADING.NO.EJECT. When this mode is enabled, the NO.EJECT mode of the QMBasic HEADING statement is set as the default. Automatic page throw, on setting a new heading, is suppressed.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;NO.ECHO.DATA&#039;&#039;&#039; - This is provided to function the same as the commercial NO.ECHO.DATA. When this mode is enabled, the application will not echo characters to standard out/terminal when being used as a data input method.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== OpenQM GPL Custom Compiler Modes ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;NO.CASE.INVERT&#039;&#039;&#039; - This mode will cause INPUT and INPUT@ to ignore the case inversion state of PTERM, when the application executes. The state of PTERM is reserved during execution of _INPUT, so the session operates normally outside of the code which has &amp;quot;$mode no.case.invert&amp;quot; specified.&lt;/div&gt;</summary>
		<author><name>Glenb</name></author>
	</entry>
	<entry>
		<id>https://scarlet.deltasoft.com/index.php?title=Custom_Compiler_Modes&amp;diff=348</id>
		<title>Custom Compiler Modes</title>
		<link rel="alternate" type="text/html" href="https://scarlet.deltasoft.com/index.php?title=Custom_Compiler_Modes&amp;diff=348"/>
		<updated>2009-04-08T02:17:10Z</updated>

		<summary type="html">&lt;p&gt;Glenb: /* OpenQM GPL Compatibility Compiler Modes */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
== OpenQM GPL Compatibility Compiler Modes ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;HEADING.NO.EJECT&#039;&#039;&#039; - This is provided to function the same as the commercial HEADING.NO.EJECT. When this mode is enabled, the NO.EJECT mode of the QMBasic HEADING statement is set as the default. Automatic page throw, on setting a new heading, is suppressed.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;NO.ECHO.DATA&#039;&#039;&#039; - This is provided to function the same as the commercial NO.ECHO.DATA. When this mode is enabled, the application will not echo characters to standard out/terminal when being used as a data input method.&lt;br /&gt;
&lt;br /&gt;
== OpenQM GPL Custom Compiler Modes ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;NO.CASE.INVERT&#039;&#039;&#039; - This mode will cause INPUT and INPUT@ to ignore the case inversion state of PTERM, when the application executes. The state of PTERM is reserved during execution of _INPUT, so the session operates normally outside of the code which has &amp;quot;$mode no.case.invert&amp;quot; specified.&lt;/div&gt;</summary>
		<author><name>Glenb</name></author>
	</entry>
	<entry>
		<id>https://scarlet.deltasoft.com/index.php?title=Custom_Compiler_Modes&amp;diff=347</id>
		<title>Custom Compiler Modes</title>
		<link rel="alternate" type="text/html" href="https://scarlet.deltasoft.com/index.php?title=Custom_Compiler_Modes&amp;diff=347"/>
		<updated>2009-04-08T02:15:58Z</updated>

		<summary type="html">&lt;p&gt;Glenb: /* OpenQM GPL Custom Compiler Modes */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
== OpenQM GPL Compatibility Compiler Modes ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;NO.ECHO.DATA&#039;&#039;&#039; - This is provided to function the same as the commercial NO.ECHO.DATA. When this mode is enabled, the application will not echo characters to standard out/terminal when being used as a data input method.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;HEADING.NO.EJECT&#039;&#039;&#039; - This is provided to function the same as the commercial HEADING.NO.EJECT. When this mode is enabled, the NO.EJECT mode of the QMBasic HEADING statement is set as the default. Automatic page throw, on setting a new heading, is suppressed.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== OpenQM GPL Custom Compiler Modes ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;NO.CASE.INVERT&#039;&#039;&#039; - This mode will cause INPUT and INPUT@ to ignore the case inversion state of PTERM, when the application executes. The state of PTERM is reserved during execution of _INPUT, so the session operates normally outside of the code which has &amp;quot;$mode no.case.invert&amp;quot; specified.&lt;/div&gt;</summary>
		<author><name>Glenb</name></author>
	</entry>
	<entry>
		<id>https://scarlet.deltasoft.com/index.php?title=Custom_Compiler_Modes&amp;diff=346</id>
		<title>Custom Compiler Modes</title>
		<link rel="alternate" type="text/html" href="https://scarlet.deltasoft.com/index.php?title=Custom_Compiler_Modes&amp;diff=346"/>
		<updated>2009-04-08T02:12:22Z</updated>

		<summary type="html">&lt;p&gt;Glenb: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
== OpenQM GPL Custom Compiler Modes ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;NO.ECHO.DATA&#039;&#039;&#039; - This is provided to function the same as the commercial NO.ECHO.DATA. When this mode is enabled, the application will not echo characters to standard out/terminal when being used as a data input method.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;HEADING.NO.EJECT&#039;&#039;&#039; - This is provided to function the same as the commercial HEADING.NO.EJECT. When this mode is enabled, the NO.EJECT mode of the QMBasic HEADING statement is set as the default. Automatic page throw, on setting a new heading, is suppressed.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;NO.CASE.INVERT&#039;&#039;&#039; - This mode will cause INPUT and INPUT@ to ignore the case inversion state of PTERM, when the application executes. The state of PTERM is reserved during execution of _INPUT, so the session operates normally outside of the code which has &amp;quot;$mode no.case.invert&amp;quot; specified.&lt;/div&gt;</summary>
		<author><name>Glenb</name></author>
	</entry>
	<entry>
		<id>https://scarlet.deltasoft.com/index.php?title=Custom_QMBASIC_Options&amp;diff=345</id>
		<title>Custom QMBASIC Options</title>
		<link rel="alternate" type="text/html" href="https://scarlet.deltasoft.com/index.php?title=Custom_QMBASIC_Options&amp;diff=345"/>
		<updated>2009-04-07T04:17:11Z</updated>

		<summary type="html">&lt;p&gt;Glenb: /* QMBASIC Command Options (By Name) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== QMBASIC Command Options (By Name) ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;INPUT&#039;&#039;&#039;&lt;br /&gt;
     &#039;&#039;NOCASEINVERT&#039;&#039; - This option ignores the case inversion state of PTERM during the single execution of the statement.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;INPUT@&#039;&#039;&#039;&lt;br /&gt;
     &#039;&#039;NOCASEINVERT&#039;&#039; - This option ignores the case inversion state of PTERM during the single execution of the statement.&lt;/div&gt;</summary>
		<author><name>Glenb</name></author>
	</entry>
	<entry>
		<id>https://scarlet.deltasoft.com/index.php?title=Custom_QMBASIC_Options&amp;diff=344</id>
		<title>Custom QMBASIC Options</title>
		<link rel="alternate" type="text/html" href="https://scarlet.deltasoft.com/index.php?title=Custom_QMBASIC_Options&amp;diff=344"/>
		<updated>2009-04-07T03:21:09Z</updated>

		<summary type="html">&lt;p&gt;Glenb: New page: == QMBASIC Command Options (By Name) ==  &amp;#039;&amp;#039;&amp;#039;INPUT&amp;#039;&amp;#039;&amp;#039;      &amp;#039;&amp;#039;NOCASEINVERT&amp;#039;&amp;#039; - This option ignores the case inversion state of PTERM during the single execution of the statement.  &amp;#039;&amp;#039;&amp;#039;INPUT@&amp;#039;...&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== QMBASIC Command Options (By Name) ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;INPUT&#039;&#039;&#039;&lt;br /&gt;
     &#039;&#039;NOCASEINVERT&#039;&#039; - This option ignores the case inversion state of PTERM during the single execution of the statement.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;INPUT@&#039;&#039;&#039;&lt;br /&gt;
     &#039;&#039;NOCASEINVERT&#039;&#039; - This option ignores the case inversion state of PTERM during the single execution of the statement.&lt;br /&gt;
&lt;br /&gt;
The preceeding options are currently in testing.. This note will be removed when workdevbranch1 has been updated. -GCB&lt;/div&gt;</summary>
		<author><name>Glenb</name></author>
	</entry>
	<entry>
		<id>https://scarlet.deltasoft.com/index.php?title=QMBASIC_Enhancements&amp;diff=343</id>
		<title>QMBASIC Enhancements</title>
		<link rel="alternate" type="text/html" href="https://scarlet.deltasoft.com/index.php?title=QMBASIC_Enhancements&amp;diff=343"/>
		<updated>2009-04-07T03:21:00Z</updated>

		<summary type="html">&lt;p&gt;Glenb: /* OpenQM GPL Custom Enhacements */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
== OpenQM GPL Custom Enhacements ==&lt;br /&gt;
&lt;br /&gt;
[[Custom Compiler Modes]] - A list of custom compiler modes and usages.&lt;br /&gt;
&lt;br /&gt;
[[Custom QMBASIC Options]] - A list of QMBASIC commands and their custom options, by command name.&lt;/div&gt;</summary>
		<author><name>Glenb</name></author>
	</entry>
	<entry>
		<id>https://scarlet.deltasoft.com/index.php?title=QMBASIC_Enhancements&amp;diff=342</id>
		<title>QMBASIC Enhancements</title>
		<link rel="alternate" type="text/html" href="https://scarlet.deltasoft.com/index.php?title=QMBASIC_Enhancements&amp;diff=342"/>
		<updated>2009-04-07T03:20:33Z</updated>

		<summary type="html">&lt;p&gt;Glenb: /* OpenQM GPL Custom Enhacements */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
== OpenQM GPL Custom Enhacements ==&lt;br /&gt;
&lt;br /&gt;
[[Custom Compiler Modes]] - A list of custom compiler modes and usages.&lt;br /&gt;
&lt;br /&gt;
[[Custom QMBASIC Options]] - A list of QMBASIC commands and their custom options, but function name.&lt;/div&gt;</summary>
		<author><name>Glenb</name></author>
	</entry>
	<entry>
		<id>https://scarlet.deltasoft.com/index.php?title=QMBASIC_Enhancements&amp;diff=341</id>
		<title>QMBASIC Enhancements</title>
		<link rel="alternate" type="text/html" href="https://scarlet.deltasoft.com/index.php?title=QMBASIC_Enhancements&amp;diff=341"/>
		<updated>2009-04-07T03:19:57Z</updated>

		<summary type="html">&lt;p&gt;Glenb: /* OpenQM GPL Custom Enhacements */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
== OpenQM GPL Custom Enhacements ==&lt;br /&gt;
&lt;br /&gt;
[[Custom Compiler Modes]] - A list of custom compiler modes and usages.&lt;br /&gt;
&lt;br /&gt;
[[Custom QMBASIC Options(By Command Name)]] - A list of QMBASIC commands and their custom options, but function name.&lt;/div&gt;</summary>
		<author><name>Glenb</name></author>
	</entry>
	<entry>
		<id>https://scarlet.deltasoft.com/index.php?title=QMBASIC_Enhancements&amp;diff=340</id>
		<title>QMBASIC Enhancements</title>
		<link rel="alternate" type="text/html" href="https://scarlet.deltasoft.com/index.php?title=QMBASIC_Enhancements&amp;diff=340"/>
		<updated>2009-04-07T03:18:30Z</updated>

		<summary type="html">&lt;p&gt;Glenb: /* OpenQM GPL Custom Enhacements */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
== OpenQM GPL Custom Enhacements ==&lt;br /&gt;
&lt;br /&gt;
[[Custom Compiler Modes]] - A list of custom compiler modes and usages.&lt;br /&gt;
&lt;br /&gt;
[[Custom QMBASIC Options(By Function Name)]] - A list of QMBASIC commands and their custom options, but function name.&lt;/div&gt;</summary>
		<author><name>Glenb</name></author>
	</entry>
	<entry>
		<id>https://scarlet.deltasoft.com/index.php?title=QMBASIC_Enhancements&amp;diff=339</id>
		<title>QMBASIC Enhancements</title>
		<link rel="alternate" type="text/html" href="https://scarlet.deltasoft.com/index.php?title=QMBASIC_Enhancements&amp;diff=339"/>
		<updated>2009-04-07T03:18:03Z</updated>

		<summary type="html">&lt;p&gt;Glenb: /* OpenQM GPL Custom Enhacements */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
== OpenQM GPL Custom Enhacements ==&lt;br /&gt;
&lt;br /&gt;
[[Custom Compiler Modes]] - A list of custom compiler modes and usages.&lt;br /&gt;
&lt;br /&gt;
[[Custom QMBASIC Options(By Command Name)]] - A list of QMBASIC commands and their custom options, but function name.&lt;/div&gt;</summary>
		<author><name>Glenb</name></author>
	</entry>
	<entry>
		<id>https://scarlet.deltasoft.com/index.php?title=Custom_QMBASIC_Options(By_Function_Name)&amp;diff=338</id>
		<title>Custom QMBASIC Options(By Function Name)</title>
		<link rel="alternate" type="text/html" href="https://scarlet.deltasoft.com/index.php?title=Custom_QMBASIC_Options(By_Function_Name)&amp;diff=338"/>
		<updated>2009-04-07T03:17:12Z</updated>

		<summary type="html">&lt;p&gt;Glenb: /* QMBASIC Function Options (By Name) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
== QMBASIC Command Options (By Name) ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;INPUT&#039;&#039;&#039;&lt;br /&gt;
     &#039;&#039;NOCASEINVERT&#039;&#039; - This option ignores the case inversion state of PTERM during the single execution of the statement.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;INPUT@&#039;&#039;&#039;&lt;br /&gt;
     &#039;&#039;NOCASEINVERT&#039;&#039; - This option ignores the case inversion state of PTERM during the single execution of the statement.&lt;br /&gt;
&lt;br /&gt;
The preceeding options are currently in testing.. This note will be removed when workdevbranch1 has been updated. -GCB&lt;/div&gt;</summary>
		<author><name>Glenb</name></author>
	</entry>
	<entry>
		<id>https://scarlet.deltasoft.com/index.php?title=Custom_QMBASIC_Options(By_Function_Name)&amp;diff=337</id>
		<title>Custom QMBASIC Options(By Function Name)</title>
		<link rel="alternate" type="text/html" href="https://scarlet.deltasoft.com/index.php?title=Custom_QMBASIC_Options(By_Function_Name)&amp;diff=337"/>
		<updated>2009-04-07T03:05:21Z</updated>

		<summary type="html">&lt;p&gt;Glenb: /* QMBASIC Function Options (By Name) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
== QMBASIC Function Options (By Name) ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;INPUT&#039;&#039;&#039;&lt;br /&gt;
     &#039;&#039;NOCASEINVERT&#039;&#039; - This option ignores the case inversion state of PTERM during the single execution of the statement.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;INPUT@&#039;&#039;&#039;&lt;br /&gt;
     &#039;&#039;NOCASEINVERT&#039;&#039; - This option ignores the case inversion state of PTERM during the single execution of the statement.&lt;br /&gt;
&lt;br /&gt;
The preceeding options are currently in testing.. This note will be removed when workdevbranch1 has been updated. -GCB&lt;/div&gt;</summary>
		<author><name>Glenb</name></author>
	</entry>
</feed>