<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://karaoke.kjams.com/w/index.php?action=history&amp;feed=atom&amp;title=CFLite%2FCFTest%2FSuperString.h</id>
	<title>CFLite/CFTest/SuperString.h - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://karaoke.kjams.com/w/index.php?action=history&amp;feed=atom&amp;title=CFLite%2FCFTest%2FSuperString.h"/>
	<link rel="alternate" type="text/html" href="https://karaoke.kjams.com/w/index.php?title=CFLite/CFTest/SuperString.h&amp;action=history"/>
	<updated>2026-06-09T19:51:19Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.43.0</generator>
	<entry>
		<id>https://karaoke.kjams.com/w/index.php?title=CFLite/CFTest/SuperString.h&amp;diff=4621&amp;oldid=prev</id>
		<title>Dave at 22:29, 22 July 2008</title>
		<link rel="alternate" type="text/html" href="https://karaoke.kjams.com/w/index.php?title=CFLite/CFTest/SuperString.h&amp;diff=4621&amp;oldid=prev"/>
		<updated>2008-07-22T22:29:38Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;a href=&quot;https://karaoke.kjams.com/w/index.php?title=CFLite/CFTest/SuperString.h&amp;amp;diff=4621&amp;amp;oldid=4614&quot;&gt;Show changes&lt;/a&gt;</summary>
		<author><name>Dave</name></author>
	</entry>
	<entry>
		<id>https://karaoke.kjams.com/w/index.php?title=CFLite/CFTest/SuperString.h&amp;diff=4614&amp;oldid=prev</id>
		<title>Dave at 00:34, 18 July 2008</title>
		<link rel="alternate" type="text/html" href="https://karaoke.kjams.com/w/index.php?title=CFLite/CFTest/SuperString.h&amp;diff=4614&amp;oldid=prev"/>
		<updated>2008-07-18T00:34:26Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 00:34, 18 July 2008&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l1&quot;&gt;Line 1:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 1:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;pre&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;pre&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;#ifndef _H_SuperString&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;#define _H_SuperString&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;#include &amp;lt;string&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;#include &amp;lt;string&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;#include &amp;lt;cctype&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;#include &amp;lt;cctype&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l48&quot;&gt;Line 48:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 51:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;typedef std::vector&amp;lt;UTF8Char&amp;gt;		UCharVec;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;typedef std::vector&amp;lt;UTF8Char&amp;gt;		UCharVec;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;typedef std::vector&amp;lt;UTF16Char&amp;gt;		UTF16Vec;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;typedef std::vector&amp;lt;UTF16Char&amp;gt;		UTF16Vec;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;#ifdef __WIN32__	&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;	typedef std::vector&amp;lt;wchar_t&amp;gt;		WCharVec;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;#endif&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;inline CFTypeRef	CFRetainDebug(CFTypeRef cf, bool do_itB = true) {&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;inline CFTypeRef	CFRetainDebug(CFTypeRef cf, bool do_itB = true) {&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l230&quot;&gt;Line 230:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 237:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;#if defined(__WIN32__)&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;#if defined(__WIN32__)&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	typedef RECT	Rect;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;#ifndef __MACTYPES__&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;	&lt;/del&gt;typedef UInt32	OSType;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;		&lt;/ins&gt;typedef RECT	Rect;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;		&lt;/ins&gt;typedef UInt32	OSType;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;	#endif&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;#endif&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;#endif&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l255&quot;&gt;Line 255:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 264:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	const	char *		consoleZ() const{	Update_console();	return i_console-&amp;gt;c_str();	}&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	const	char *		consoleZ() const{	Update_console();	return i_console-&amp;gt;c_str();	}&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	ConstStr255Param	p_str() const	{	Update_pstr();	return i_pstr-&amp;gt;c_str();	}&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	ConstStr255Param	p_str() const	{	Update_pstr();	return i_pstr-&amp;gt;c_str();	}&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;	#ifdef __WIN32__&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;		LPCWSTR		w_str() const			{	return (LPCWSTR)uni().i_nameP;	}&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;	#endif&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	operator const UniString&amp;amp;() const	{	return uni();	}&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	operator const UniString&amp;amp;() const	{	return uni();	}&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l261&quot;&gt;Line 261:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 274:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	operator CFStringRef() const		{	return ref();	}&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	operator CFStringRef() const		{	return ref();	}&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	operator const UInt8*() const		{	return utf8().c_str();	}&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	operator const UInt8*() const		{	return utf8().c_str();	}&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;	&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt; &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	/************************************/&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	/************************************/&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	SuperString&amp;amp;	Truncate(bool activeB, const Rect&amp;amp; frameR);&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	SuperString&amp;amp;	Truncate(bool activeB, const Rect&amp;amp; frameR);&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l279&quot;&gt;Line 279:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 292:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;public:&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;public:&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;	#ifdef __WIN32__&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;	&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;	SuperString(const wchar_t *wcharZ);&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;	SuperString(const WCharVec&amp;amp; wcharVec) {&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;		SetNULL();&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;		Set(*(UTF16Vec *)&amp;amp;wcharVec);&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;	}&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;	#endif&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;	&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	SuperString(const char *strZ = NULL, CFStringEncoding encoding = kCFStringEncodingInvalidId) {&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	SuperString(const char *strZ = NULL, CFStringEncoding encoding = kCFStringEncodingInvalidId) {&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;		SetNULL();		&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;		SetNULL();		&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l534&quot;&gt;Line 534:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 558:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	 */&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	 */&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	UTF8Char		GetIndChar(&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;long &lt;/del&gt;indexL = 0) const {&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	UTF8Char		GetIndChar(&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;size_t &lt;/ins&gt;indexL = 0) const {&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;		UTF8Char		ch = 0;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;		UTF8Char		ch = 0;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;		&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;		&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l591&quot;&gt;Line 591:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 615:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	UInt32	hex_to_ulong()		{	return Hex_To_ULong(c_str());	}&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	UInt32	hex_to_ulong()		{	return Hex_To_ULong(c_str());	}&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	SuperString		pop_front(&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;long &lt;/del&gt;numL = 1)	{&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	SuperString		pop_front(&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;size_t &lt;/ins&gt;numL = 1)	{&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;		SuperString			str;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;		SuperString			str;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;		&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;		&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l865&quot;&gt;Line 865:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 889:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;}&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;}&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;class &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;CFLog &lt;/del&gt;{&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;class &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;CCFLog &lt;/ins&gt;{&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;	bool	i_crB;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;	&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	public:  &lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	public:  &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;	CCFLog(bool crB = false) : i_crB(crB) { }&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;	&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	void operator()(CFTypeRef valRef);&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	void operator()(CFTypeRef valRef);&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	void operator()(CFStringRef keyRef, CFTypeRef valRef) {&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	void operator()(CFStringRef keyRef, CFTypeRef valRef) {&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;		&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;printf&lt;/del&gt;(&quot;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;%s&lt;/del&gt;: &quot;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;, SuperString&lt;/del&gt;(&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;keyRef&lt;/del&gt;).&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;consoleZ&lt;/del&gt;());&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;		&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;SuperString		keyStr(keyRef);&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;		&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;		keyStr.append&lt;/ins&gt;(&quot;: &quot;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;);&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;		&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;		{&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;			bool	wasB = i_crB;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;			i_crB = false;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;			&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;			operator&lt;/ins&gt;()&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;(keyStr&lt;/ins&gt;.&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;ref&lt;/ins&gt;());&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;			i_crB = wasB;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;		}&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt; &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;		operator()(valRef);&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;		operator()(valRef);&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	}&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	}&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;};&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;};&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;#endif&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;/pre&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;/pre&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;

&lt;!-- diff cache key kjams_www-mw_:diff:1.41:old-4590:rev-4614:php=table --&gt;
&lt;/table&gt;</summary>
		<author><name>Dave</name></author>
	</entry>
	<entry>
		<id>https://karaoke.kjams.com/w/index.php?title=CFLite/CFTest/SuperString.h&amp;diff=4590&amp;oldid=prev</id>
		<title>Dave at 20:04, 29 June 2008</title>
		<link rel="alternate" type="text/html" href="https://karaoke.kjams.com/w/index.php?title=CFLite/CFTest/SuperString.h&amp;diff=4590&amp;oldid=prev"/>
		<updated>2008-06-29T20:04:39Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 20:04, 29 June 2008&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l6&quot;&gt;Line 6:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 6:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;#include &amp;lt;stdarg.h&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;#include &amp;lt;stdarg.h&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;#include &amp;lt;CoreFoundation/CoreFoundation.h&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;#include &amp;lt;CoreFoundation/CoreFoundation.h&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;#define	kCFStringEncodingPercentEscapes			(0xfffffffeU)&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;#define		loop(_n)				for (long _indexS = 0, _maxS = (_n); _indexS &amp;lt; _maxS; _indexS++)&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;#define		loop(_n)				for (long _indexS = 0, _maxS = (_n); _indexS &amp;lt; _maxS; _indexS++)&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l17&quot;&gt;Line 17:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 19:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	//	the following are in kSourceFileEncoding&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	//	the following are in kSourceFileEncoding&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	#define		kLeftQuote	&quot;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;´&lt;/del&gt;&quot;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	#define		kLeftQuote	&quot;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;lt;&lt;/ins&gt;&quot;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	#define		kRightQuote	&quot;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;ª&lt;/del&gt;&quot;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	#define		kRightQuote	&quot;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;gt;&lt;/ins&gt;&quot;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;#else&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;#else&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	#define	kSourceFileEncoding		kCFStringEncodingUTF8&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	#define	kSourceFileEncoding		kCFStringEncodingUTF8&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l24&quot;&gt;Line 24:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 26:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	//	the following are in kSourceFileEncoding&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	//	the following are in kSourceFileEncoding&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	#define		kLeftQuote	&quot;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;“&lt;/del&gt;&quot;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	#define		kLeftQuote	&quot;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;lt;&lt;/ins&gt;&quot;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	#define		kRightQuote	&quot;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;”&lt;/del&gt;&quot;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	#define		kRightQuote	&quot;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;gt;&lt;/ins&gt;&quot;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;#endif&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;#endif&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l342&quot;&gt;Line 342:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 344:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	void	Set(const UInt8 *strZ, CFStringEncoding encoding = kCFStringEncodingUTF8) {&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	void	Set(const UInt8 *strZ, CFStringEncoding encoding = kCFStringEncodingUTF8) {&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;		ScCFReleaser&amp;lt;CFStringRef&amp;gt;	myRef = strZ &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;? &lt;/del&gt;CFStringCreateWithCu(strZ, encoding) &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;: &lt;/del&gt;(CFStringRef)CFRetainDebug(CFSTR(&quot;&quot;));&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;		ScCFReleaser&amp;lt;CFStringRef&amp;gt;	myRef&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;		&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;		if (strZ) {&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;			if (encoding &lt;/ins&gt;=&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;= kCFStringEncodingPercentEscapes) {&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;				Set(&lt;/ins&gt;strZ&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;, kCFStringEncodingASCII);&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;				&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;				UnEscape();&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;				return;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;			} else {&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;				myRef.Set(&lt;/ins&gt;CFStringCreateWithCu(strZ, encoding)&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;);&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;			}&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;		} else {&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;			myRef.Set(&lt;/ins&gt;(CFStringRef)CFRetainDebug(CFSTR(&quot;&quot;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;)&lt;/ins&gt;));&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;		}&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;		&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;		&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;		Set(myRef);&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;		Set(myRef);&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;	}&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;	&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;	void	Escape() {&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;		Set(CFURLCreateStringByAddingPercentEscapes(kCFAllocatorDefault, ref(), NULL, NULL, kCFStringEncodingUTF8), false);&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;	}&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;	void	UnEscape() {&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;		Set(CFURLCreateStringByReplacingPercentEscapes(kCFAllocatorDefault, ref(), CFSTR(&quot;&quot;)));&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	}&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	}&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;

&lt;!-- diff cache key kjams_www-mw_:diff:1.41:old-4580:rev-4590:php=table --&gt;
&lt;/table&gt;</summary>
		<author><name>Dave</name></author>
	</entry>
	<entry>
		<id>https://karaoke.kjams.com/w/index.php?title=CFLite/CFTest/SuperString.h&amp;diff=4580&amp;oldid=prev</id>
		<title>Dave at 07:21, 29 June 2008</title>
		<link rel="alternate" type="text/html" href="https://karaoke.kjams.com/w/index.php?title=CFLite/CFTest/SuperString.h&amp;diff=4580&amp;oldid=prev"/>
		<updated>2008-06-29T07:21:28Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
#include &amp;lt;string&amp;gt;&lt;br /&gt;
#include &amp;lt;cctype&amp;gt;&lt;br /&gt;
#include &amp;lt;vector&amp;gt;&lt;br /&gt;
#include &amp;quot;string.h&amp;quot;&lt;br /&gt;
#include &amp;lt;stdarg.h&amp;gt;&lt;br /&gt;
#include &amp;lt;CoreFoundation/CoreFoundation.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
#define		loop(_n)				for (long _indexS = 0, _maxS = (_n); _indexS &amp;lt; _maxS; _indexS++)&lt;br /&gt;
#define		loop_reverse(_n)		for (long _indexS = ((_n) - 1); _indexS &amp;gt;= 0; _indexS--)&lt;br /&gt;
&lt;br /&gt;
#if defined(__WIN32__)&lt;br /&gt;
	//	set to whatever encoding your source files have.  if you can use utf8, then great&lt;br /&gt;
	//	codewarrior sadly can only do windows latin 1 :(  so no J chars in source file&lt;br /&gt;
	#define	kSourceFileEncoding		kCFStringEncodingWindowsLatin1&lt;br /&gt;
	#define	kConsoleEncoding		kCFStringEncodingWindowsLatin1&lt;br /&gt;
&lt;br /&gt;
	//	the following are in kSourceFileEncoding&lt;br /&gt;
	#define		kLeftQuote	&amp;quot;´&amp;quot;&lt;br /&gt;
	#define		kRightQuote	&amp;quot;ª&amp;quot;&lt;br /&gt;
#else&lt;br /&gt;
	#define	kSourceFileEncoding		kCFStringEncodingUTF8&lt;br /&gt;
	#define	kConsoleEncoding		kCFStringEncodingUTF8&lt;br /&gt;
&lt;br /&gt;
	//	the following are in kSourceFileEncoding&lt;br /&gt;
	#define		kLeftQuote	&amp;quot;“&amp;quot;&lt;br /&gt;
	#define		kRightQuote	&amp;quot;”&amp;quot;&lt;br /&gt;
#endif&lt;br /&gt;
&lt;br /&gt;
void		LogErr(const char *utf8Z, OSStatus err, bool crB = true, bool unixB = false);&lt;br /&gt;
&lt;br /&gt;
#define ERR_(_ERR, FUNC)	if (!_ERR) { _ERR = (FUNC); }&lt;br /&gt;
#define ERR(FUNC)			ERR_(err, FUNC);&lt;br /&gt;
#define	ERRL(FUNC, _str)	if (!err) { ERR(FUNC); if (err) { 	LogErr(&amp;quot;### Error &amp;quot; _str, err); }}&lt;br /&gt;
#define	ETRL(_exp, _str)	{ ERRL(_exp, _str); if (err) { return err;} }&lt;br /&gt;
&lt;br /&gt;
int		AssertAlert(const char *msgZ, const char *fileZ, long lineL, bool noThrowB);&lt;br /&gt;
&lt;br /&gt;
#define		CF_ASSERT(_foo)	if (!(_foo)) {					\&lt;br /&gt;
	AssertAlert(#_foo, __FILE__, (long)__LINE__, true);	}&lt;br /&gt;
&lt;br /&gt;
typedef std::basic_string&amp;lt;UTF8Char, std::char_traits&amp;lt;UTF8Char&amp;gt;, std::allocator&amp;lt;UTF8Char&amp;gt; &amp;gt; ustring;&lt;br /&gt;
#define uc(_foo) (unsigned char *)(_foo)&lt;br /&gt;
&lt;br /&gt;
typedef std::vector&amp;lt;char&amp;gt;			CharVec;&lt;br /&gt;
typedef std::vector&amp;lt;UTF8Char&amp;gt;		UCharVec;&lt;br /&gt;
typedef std::vector&amp;lt;UTF16Char&amp;gt;		UTF16Vec;&lt;br /&gt;
&lt;br /&gt;
inline CFTypeRef	CFRetainDebug(CFTypeRef cf, bool do_itB = true) {&lt;br /&gt;
	return do_itB ? CFRetain(cf) : cf;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
#define	CFReleaseDebug(_x)		CFRelease(_x)&lt;br /&gt;
&lt;br /&gt;
/****************************************************************/&lt;br /&gt;
bool	Read_PList(const CFURLRef &amp;amp;url, CFDictionaryRef *plistP);&lt;br /&gt;
OSStatus		Write_PList(&lt;br /&gt;
	CFPropertyListRef	plist,&lt;br /&gt;
	CFURLRef			urlRef);&lt;br /&gt;
&lt;br /&gt;
char *			CopyFloatToC(float valF, char *bufZ, short precisionS = 2);&lt;br /&gt;
float			CStringToFloat(const char *numF);&lt;br /&gt;
char*			strrstr(const char* stringZ, const char* findZ);&lt;br /&gt;
&lt;br /&gt;
bool				CFStringContains(CFStringRef inRef, CFStringRef findRef, bool case_sensitiveB = false);&lt;br /&gt;
CFComparisonResult	CFStringCompare(CFStringRef str1, CFStringRef str2, bool case_sensitiveB = false);&lt;br /&gt;
bool				CFStringEqual(CFStringRef str1, CFStringRef str2, bool case_sensitiveB = false);&lt;br /&gt;
bool				CFStringLess(CFStringRef lhs, CFStringRef rhs, bool case_sensitiveB = false);&lt;br /&gt;
bool				CFStringIsEmpty(CFStringRef nameRef);&lt;br /&gt;
&lt;br /&gt;
ustring			&amp;amp;CopyCFStringToUString(&lt;br /&gt;
									   CFStringRef			str, &lt;br /&gt;
									   ustring				&amp;amp;result, &lt;br /&gt;
									   CFStringEncoding	encoding	= kCFStringEncodingUTF8, &lt;br /&gt;
									   bool				externalB	= false);&lt;br /&gt;
&lt;br /&gt;
CFStringRef		CFStringCreateWithC(&lt;br /&gt;
									const char *		bufZ, &lt;br /&gt;
									CFStringEncoding	encoding = kCFStringEncodingInvalidId);&lt;br /&gt;
&lt;br /&gt;
CFStringRef		CFStringCreateWithCu(&lt;br /&gt;
									 const UTF8Char *	bufZ, &lt;br /&gt;
									 CFStringEncoding	encoding = kCFStringEncodingUTF8);&lt;br /&gt;
&lt;br /&gt;
std::string		&amp;amp;CopyCFStringToStd(&lt;br /&gt;
								   CFStringRef			str, &lt;br /&gt;
								   std::string			&amp;amp;stdstr, &lt;br /&gt;
								   CFStringEncoding	encoding = kCFStringEncodingInvalidId);&lt;br /&gt;
&lt;br /&gt;
void		CFStrReplaceWith(CFMutableStringRef stringRef, CFStringRef replaceStr, CFStringRef withStr);&lt;br /&gt;
&lt;br /&gt;
extern	bool	g_pref_diacritic_insensitive_searchB;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
/****************************************************************/&lt;br /&gt;
typedef struct {&lt;br /&gt;
	const char	*replaceZ;&lt;br /&gt;
	const char	*withZ;&lt;br /&gt;
} SuperStringReplaceRec;&lt;br /&gt;
&lt;br /&gt;
template &amp;lt;typename T&amp;gt;&lt;br /&gt;
class	ScCFReleaser {&lt;br /&gt;
	T	i_typeRef;&lt;br /&gt;
	&lt;br /&gt;
public:&lt;br /&gt;
	ScCFReleaser(T typeRef = NULL) : i_typeRef(typeRef)	{}&lt;br /&gt;
	&lt;br /&gt;
	~ScCFReleaser() {&lt;br /&gt;
		if (i_typeRef) {&lt;br /&gt;
			CFReleaseDebug(i_typeRef);&lt;br /&gt;
			i_typeRef = NULL;&lt;br /&gt;
		}&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	T	Retain()	{	CFRetainDebug(i_typeRef);	return i_typeRef;	}&lt;br /&gt;
	T	Release()	{	CFReleaseDebug(i_typeRef);	return i_typeRef;	}&lt;br /&gt;
	&lt;br /&gt;
	T	Get()		{	return i_typeRef;	}&lt;br /&gt;
	T	Set(T typeRef)	{&lt;br /&gt;
		&lt;br /&gt;
		if (typeRef) {&lt;br /&gt;
			CFRetainDebug(typeRef);&lt;br /&gt;
		}&lt;br /&gt;
		&lt;br /&gt;
		if (i_typeRef) {&lt;br /&gt;
			CFReleaseDebug(i_typeRef);&lt;br /&gt;
		}&lt;br /&gt;
		&lt;br /&gt;
		i_typeRef = typeRef;&lt;br /&gt;
		return i_typeRef;&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	T*	AddressOf()	{	return &amp;amp;i_typeRef;	}&lt;br /&gt;
	&lt;br /&gt;
	operator T()	{	return i_typeRef;	}&lt;br /&gt;
	operator T*()	{	return AddressOf();	}&lt;br /&gt;
	&lt;br /&gt;
	T	operator =(T typeRef)	{	return Set(typeRef);	}&lt;br /&gt;
	&lt;br /&gt;
	T	transfer()	{&lt;br /&gt;
		T	ret = i_typeRef;&lt;br /&gt;
		&lt;br /&gt;
		i_typeRef = NULL;&lt;br /&gt;
		return ret;&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	T	adopt(T typeRef)	{&lt;br /&gt;
		Set(NULL);&lt;br /&gt;
		i_typeRef = typeRef;&lt;br /&gt;
		return i_typeRef;&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	void	LogCount(const char *nameZ) {	S_LogCount(i_typeRef, nameZ);	}&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
class	UniString {&lt;br /&gt;
	UTF16Char	i_nullChar;&lt;br /&gt;
	UTF16Vec	*i_charVecP;&lt;br /&gt;
	&lt;br /&gt;
	void		UpdateNamePointer() {&lt;br /&gt;
		if (i_charVecP) {&lt;br /&gt;
			i_charVecP-&amp;gt;push_back(0);&lt;br /&gt;
			i_nameP = &amp;amp;(*i_charVecP)[0];&lt;br /&gt;
		} else {&lt;br /&gt;
			i_nameP = &amp;amp;i_nullChar;&lt;br /&gt;
		}&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
public:&lt;br /&gt;
	void	Initialize(CFStringRef cf_name, bool forceBigEndianB = false) {&lt;br /&gt;
		if (cf_name &amp;amp;&amp;amp; !CFStringIsEmpty(cf_name)) {&lt;br /&gt;
			ustring		utf16str;&lt;br /&gt;
			&lt;br /&gt;
			CopyCFStringToUString(cf_name, utf16str, forceBigEndianB ? kCFStringEncodingUTF16BE : kCFStringEncodingUTF16);&lt;br /&gt;
			&lt;br /&gt;
			//	divide by 2&lt;br /&gt;
			i_lengthL	= utf16str.size() &amp;gt;&amp;gt; 1;&lt;br /&gt;
			&lt;br /&gt;
			if (i_charVecP == NULL) {&lt;br /&gt;
				i_charVecP = new UTF16Vec();&lt;br /&gt;
			}&lt;br /&gt;
			&lt;br /&gt;
			UTF16Char	*utf16A = (UTF16Char *)utf16str.c_str();&lt;br /&gt;
			&lt;br /&gt;
			i_charVecP-&amp;gt;assign(&amp;amp;utf16A[0], &amp;amp;utf16A[i_lengthL]);&lt;br /&gt;
			//			CFStringGetCharacters(cf_name, CFRangeMake(0, i_lengthL), &amp;amp;(*i_charVecP)[0]);&lt;br /&gt;
		} else {&lt;br /&gt;
			delete i_charVecP;&lt;br /&gt;
			i_charVecP = NULL;&lt;br /&gt;
			i_lengthL = 0;&lt;br /&gt;
		}&lt;br /&gt;
		&lt;br /&gt;
		UpdateNamePointer();&lt;br /&gt;
	}&lt;br /&gt;
	typedef long	UniCharCount;&lt;br /&gt;
	UniCharCount		i_lengthL;&lt;br /&gt;
	UniChar				*i_nameP;&lt;br /&gt;
	&lt;br /&gt;
	UniString(const UniString &amp;amp;uni)	: i_nameP(NULL), i_charVecP(NULL), i_nullChar(0) {&lt;br /&gt;
		i_lengthL	= uni.i_lengthL;&lt;br /&gt;
		&lt;br /&gt;
		if (i_lengthL) {&lt;br /&gt;
			i_charVecP = new UTF16Vec();&lt;br /&gt;
			i_charVecP-&amp;gt;resize(i_lengthL);&lt;br /&gt;
			std::copy(&amp;amp;uni.i_nameP[0], &amp;amp;uni.i_nameP[i_lengthL], &amp;amp;(*i_charVecP)[0]);&lt;br /&gt;
		}&lt;br /&gt;
		&lt;br /&gt;
		UpdateNamePointer();&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	UniString(CFStringRef cf_name, bool forceBigEndianB = false) : i_nameP(NULL), i_charVecP(NULL), i_nullChar(0) {&lt;br /&gt;
		Initialize(cf_name, forceBigEndianB);&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	UniString(const char *nameZ = NULL) : i_nameP(NULL), i_charVecP(NULL), i_nullChar(0), i_lengthL(0) {&lt;br /&gt;
		if (nameZ) {&lt;br /&gt;
			ScCFReleaser&amp;lt;CFStringRef&amp;gt;	cf_name(CFStringCreateWithC(nameZ));&lt;br /&gt;
			&lt;br /&gt;
			Initialize(cf_name);&lt;br /&gt;
		}&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	~UniString() {&lt;br /&gt;
		delete i_charVecP;&lt;br /&gt;
	}&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
#if defined(__WIN32__)&lt;br /&gt;
	typedef RECT	Rect;&lt;br /&gt;
	typedef UInt32	OSType;&lt;br /&gt;
#endif&lt;br /&gt;
&lt;br /&gt;
std::string		ULong_To_Hex(UInt32 valueL);&lt;br /&gt;
UInt32			Hex_To_ULong(const char *hexZ);&lt;br /&gt;
OSType			CharToOSType(const char *bufZ);&lt;br /&gt;
&lt;br /&gt;
class SuperString {&lt;br /&gt;
	CFStringRef			i_ref;&lt;br /&gt;
	mutable std::string	*i_std;&lt;br /&gt;
	mutable UniString	*i_uni;&lt;br /&gt;
	mutable ustring		*i_utf8;&lt;br /&gt;
	mutable	std::string	*i_console;&lt;br /&gt;
	mutable ustring		*i_pstr;&lt;br /&gt;
	&lt;br /&gt;
public:&lt;br /&gt;
	const	std::string	&amp;amp;std() const	{	Update_std();	return *i_std;	}&lt;br /&gt;
	const	CFStringRef	&amp;amp;ref() const	{	return i_ref;	}&lt;br /&gt;
	const	UniString	&amp;amp;uni(bool forceBigEndianB = false) const	{	Update_uni(forceBigEndianB);	return *i_uni;	}&lt;br /&gt;
	const	ustring		&amp;amp;utf8() const	{	Update_utf8();	return *i_utf8;	}&lt;br /&gt;
	const	char *		c_str() const  	{	return std().c_str();	}&lt;br /&gt;
	const	char *		utf8Z() const	{	return (const char *)utf8().c_str();	}&lt;br /&gt;
	const	char *		consoleZ() const{	Update_console();	return i_console-&amp;gt;c_str();	}&lt;br /&gt;
	ConstStr255Param	p_str() const	{	Update_pstr();	return i_pstr-&amp;gt;c_str();	}&lt;br /&gt;
	&lt;br /&gt;
	operator const UniString&amp;amp;() const	{	return uni();	}&lt;br /&gt;
	operator const std::string&amp;amp;() const	{	return std();	}&lt;br /&gt;
	//operator const ustring&amp;amp;() const		{	return utf8();	}	causes all sorts of ambiguities&lt;br /&gt;
	operator CFStringRef() const		{	return ref();	}&lt;br /&gt;
	operator const UInt8*() const		{	return utf8().c_str();	}&lt;br /&gt;
	&lt;br /&gt;
	/************************************/&lt;br /&gt;
	SuperString&amp;amp;	Truncate(bool activeB, const Rect&amp;amp; frameR);&lt;br /&gt;
	SuperString&amp;amp;	ssprintf(const char *formatZ0, ...);&lt;br /&gt;
	SuperString&amp;amp;	format(const char *formatZ0, ...);&lt;br /&gt;
	&lt;br /&gt;
private:&lt;br /&gt;
	void	SetNULL()&lt;br /&gt;
	{&lt;br /&gt;
		i_ref	= NULL;&lt;br /&gt;
		i_std	= NULL;&lt;br /&gt;
		i_uni	= NULL;&lt;br /&gt;
		i_utf8	= NULL;&lt;br /&gt;
		i_pstr	= NULL;&lt;br /&gt;
		i_console = NULL;&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
public:&lt;br /&gt;
	SuperString(const char *strZ = NULL, CFStringEncoding encoding = kCFStringEncodingInvalidId) {&lt;br /&gt;
		SetNULL();		&lt;br /&gt;
		Set(uc(strZ), encoding);&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	SuperString(const SuperString &amp;amp;sstr) {&lt;br /&gt;
		SetNULL();&lt;br /&gt;
		Set(sstr.ref());&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	SuperString(const UInt16* strZ) {&lt;br /&gt;
		SetNULL();&lt;br /&gt;
		&lt;br /&gt;
		ScCFReleaser&amp;lt;CFStringRef&amp;gt;	myRef = strZ &lt;br /&gt;
		? CFStringCreateWithC((const char *)strZ, kCFStringEncodingUnicode) : &lt;br /&gt;
		&lt;br /&gt;
		(CFStringRef)CFRetainDebug(CFSTR(&amp;quot;&amp;quot;));&lt;br /&gt;
		Set(myRef);&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	SuperString(const UInt8 *strZ) {&lt;br /&gt;
		SetNULL();&lt;br /&gt;
		Set(strZ);&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	SuperString(long valL) {&lt;br /&gt;
		SetNULL();&lt;br /&gt;
		append(valL);&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	/*&lt;br /&gt;
	 dam!  this causes ambiguation&lt;br /&gt;
	 SuperString(double valF) {&lt;br /&gt;
	 SetNULL();&lt;br /&gt;
	 append((float)valF);&lt;br /&gt;
	 }&lt;br /&gt;
	 */&lt;br /&gt;
	&lt;br /&gt;
	SuperString(const ustring &amp;amp;str) {&lt;br /&gt;
		SetNULL();&lt;br /&gt;
		Set(str.c_str());&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	SuperString(const std::string &amp;amp;str) {&lt;br /&gt;
		SetNULL();&lt;br /&gt;
		Set(str.c_str());&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	SuperString(CFStringRef myRef, bool retainB = true) {&lt;br /&gt;
		SetNULL();&lt;br /&gt;
		Set(myRef, retainB);&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	void	Set_CFType(CFTypeRef cfType);&lt;br /&gt;
	&lt;br /&gt;
	/************************************/&lt;br /&gt;
	void	Set_p(ConstStr255Param strZ);&lt;br /&gt;
	&lt;br /&gt;
	void	Set(const char *strZ) {&lt;br /&gt;
		ScCFReleaser&amp;lt;CFStringRef&amp;gt;	myRef = CFStringCreateWithC(strZ);&lt;br /&gt;
		&lt;br /&gt;
		Set(myRef);&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	void	Set(const UInt8 *strZ, CFStringEncoding encoding = kCFStringEncodingUTF8) {&lt;br /&gt;
		ScCFReleaser&amp;lt;CFStringRef&amp;gt;	myRef = strZ ? CFStringCreateWithCu(strZ, encoding) : (CFStringRef)CFRetainDebug(CFSTR(&amp;quot;&amp;quot;));&lt;br /&gt;
		&lt;br /&gt;
		Set(myRef);&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	void	Set(const ustring&amp;amp; utf8, CFStringEncoding encoding = kCFStringEncodingUTF8) {&lt;br /&gt;
		Set(utf8.c_str(), encoding);&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	void	Set(const UTF16Vec &amp;amp;vec) {&lt;br /&gt;
		ScCFReleaser&amp;lt;CFStringRef&amp;gt;	myRef = CFStringCreateWithCharacters(kCFAllocatorDefault, &amp;amp;vec[0], vec.size());&lt;br /&gt;
		&lt;br /&gt;
		Set(myRef);&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	void	assign(const UTF8Char *beginZ, const UTF8Char *endZ, CFStringEncoding encoding = kCFStringEncodingUTF8) {&lt;br /&gt;
		ustring		str(beginZ, endZ);&lt;br /&gt;
		&lt;br /&gt;
		Set(str, encoding);&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	void	Set(const SuperString &amp;amp;sstr) {&lt;br /&gt;
		if (&amp;amp;sstr != this) {&lt;br /&gt;
			Set(sstr.i_ref);&lt;br /&gt;
		}&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
  	CFStringRef	Retain() const {	CFRetainDebug(i_ref);	return i_ref;	}&lt;br /&gt;
	&lt;br /&gt;
	void	Set(CFStringRef myRef, bool retainB = true) {&lt;br /&gt;
		&lt;br /&gt;
		if (i_ref) {&lt;br /&gt;
			CFReleaseDebug(i_ref);&lt;br /&gt;
		}&lt;br /&gt;
		&lt;br /&gt;
		if (myRef == NULL) {&lt;br /&gt;
			myRef = CFSTR(&amp;quot;&amp;quot;);&lt;br /&gt;
		}&lt;br /&gt;
		&lt;br /&gt;
		i_ref = myRef;&lt;br /&gt;
		&lt;br /&gt;
		if (retainB) {&lt;br /&gt;
			CFRetainDebug(i_ref);&lt;br /&gt;
		}&lt;br /&gt;
		&lt;br /&gt;
		delete i_uni;&lt;br /&gt;
		i_uni	= NULL;&lt;br /&gt;
		&lt;br /&gt;
		delete i_std;&lt;br /&gt;
		i_std	= NULL;&lt;br /&gt;
		&lt;br /&gt;
		delete i_utf8;&lt;br /&gt;
		i_utf8	= NULL;&lt;br /&gt;
		&lt;br /&gt;
		delete i_console;&lt;br /&gt;
		i_console = NULL;&lt;br /&gt;
		&lt;br /&gt;
		delete i_pstr;&lt;br /&gt;
		i_pstr = NULL;&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	/************************************/&lt;br /&gt;
	~SuperString() {&lt;br /&gt;
		Set((CFStringRef)NULL, false);&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	void	Release() {&lt;br /&gt;
		CFReleaseDebug(i_ref);&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	/************************************/&lt;br /&gt;
	void	Update_pstr() const {&lt;br /&gt;
		&lt;br /&gt;
		if (!i_pstr) {&lt;br /&gt;
			i_pstr = new ustring;&lt;br /&gt;
			i_pstr-&amp;gt;push_back(0);&lt;br /&gt;
			Update_std();&lt;br /&gt;
			i_pstr-&amp;gt;insert(i_pstr-&amp;gt;end(), i_std-&amp;gt;begin(), i_std-&amp;gt;end());&lt;br /&gt;
			(*i_pstr)[0] = i_pstr-&amp;gt;size() - 1;&lt;br /&gt;
			&lt;br /&gt;
			delete i_std;&lt;br /&gt;
			i_std	= NULL;&lt;br /&gt;
		}&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	void	Update_uni(bool forceBigEndianB) const {&lt;br /&gt;
		if (!i_uni) {&lt;br /&gt;
			i_uni = new UniString(i_ref, forceBigEndianB);&lt;br /&gt;
		}&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	void	Update_std() const {&lt;br /&gt;
		if (!i_std) {&lt;br /&gt;
			i_std = new std::string;&lt;br /&gt;
			CopyCFStringToStd(i_ref, *i_std);&lt;br /&gt;
		}&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	void	Update_utf8() const {&lt;br /&gt;
		if (!i_utf8) {&lt;br /&gt;
			i_utf8 = new ustring;&lt;br /&gt;
			CopyCFStringToUString(i_ref, *i_utf8);&lt;br /&gt;
		}&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	void	Update_console() const {&lt;br /&gt;
		if (!i_console) {&lt;br /&gt;
			i_console = new std::string;&lt;br /&gt;
			CopyCFStringToStd(i_ref, *i_console, kConsoleEncoding);&lt;br /&gt;
		}&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	/************************************/&lt;br /&gt;
	void	clear()	{	Set((CFStringRef)NULL);	}&lt;br /&gt;
	&lt;br /&gt;
	bool				Contains(const SuperString&amp;amp; other) {&lt;br /&gt;
		return strstr(utf8Z(), other.utf8Z()) != NULL;&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	//	returns number of utf8 bytes (not characters) that match the start of the other string&lt;br /&gt;
	CFIndex				MatchStart(const SuperString&amp;amp; other, char delimiterCh = 0);&lt;br /&gt;
	&lt;br /&gt;
	SuperString&amp;amp;		ReplaceTable(SuperStringReplaceRec *recA, long sizeL);&lt;br /&gt;
	SuperString&amp;amp;		Replace(const SuperString&amp;amp; replaceStr, const SuperString&amp;amp; withStr) {&lt;br /&gt;
		ScCFReleaser&amp;lt;CFMutableStringRef&amp;gt;	newRef(CFStringCreateMutableCopy(NULL, 0, i_ref));&lt;br /&gt;
		&lt;br /&gt;
		CFStrReplaceWith(newRef, replaceStr.ref(), withStr.ref());&lt;br /&gt;
		Set(newRef);&lt;br /&gt;
		return *this;&lt;br /&gt;
	} &lt;br /&gt;
	&lt;br /&gt;
	SuperString		&amp;amp;UnderScoresToSpaces() {&lt;br /&gt;
		return Replace(&amp;quot;_&amp;quot;, &amp;quot; &amp;quot;);&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	//	returns a new string, does not modify original&lt;br /&gt;
	SuperString			md5() const;&lt;br /&gt;
	&lt;br /&gt;
	SuperString&amp;amp;		Scramble();&lt;br /&gt;
	SuperString&amp;amp;		UnScramble();&lt;br /&gt;
	&lt;br /&gt;
	SuperString&amp;amp;		trim();&lt;br /&gt;
	&lt;br /&gt;
	CFDataRef		CopyDataRef() {&lt;br /&gt;
		return CFStringCreateExternalRepresentation(&lt;br /&gt;
			kCFAllocatorDefault, i_ref, kCFStringEncodingUTF8, 0);&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	void			Set(CFDataRef dataRef) {&lt;br /&gt;
		ScCFReleaser&amp;lt;CFStringRef&amp;gt;	myRef = CFStringCreateFromExternalRepresentation(&lt;br /&gt;
			kCFAllocatorDefault, dataRef, kCFStringEncodingUTF8);&lt;br /&gt;
&lt;br /&gt;
		Set(myRef);&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	/*&lt;br /&gt;
	 ambiguous&lt;br /&gt;
	 &lt;br /&gt;
	 char			operator[](size_t indexS) {&lt;br /&gt;
	 char	ch = 0;&lt;br /&gt;
	 &lt;br /&gt;
	 if (utf8().size() &amp;gt; indexS) {&lt;br /&gt;
	 ch = utf8().c_str()[indexS];&lt;br /&gt;
	 }&lt;br /&gt;
	 &lt;br /&gt;
	 return ch;&lt;br /&gt;
	 }&lt;br /&gt;
	 */&lt;br /&gt;
	&lt;br /&gt;
	UTF8Char		GetIndChar(long indexL = 0) const {&lt;br /&gt;
		UTF8Char		ch = 0;&lt;br /&gt;
		&lt;br /&gt;
		if (indexL &amp;gt;= 0 &amp;amp;&amp;amp; indexL &amp;lt; utf8().size()) {&lt;br /&gt;
			ch = utf8()[indexL];&lt;br /&gt;
		}&lt;br /&gt;
		&lt;br /&gt;
		return ch;&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	UTF8Char		GetIndCharR(long indexL = 0) const {&lt;br /&gt;
		return GetIndChar(utf8().size() - (indexL + 1));&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	SuperString&amp;amp;	ToUpper();&lt;br /&gt;
	SuperString&amp;amp;	ToLower();&lt;br /&gt;
	bool			IsAllCaps();&lt;br /&gt;
	SuperString&amp;amp;	Normalize();&lt;br /&gt;
	SuperString&amp;amp;	InterCaps(bool allow_line_breaksB = false, bool titleCaseB = true);&lt;br /&gt;
	&lt;br /&gt;
	SuperString&amp;amp;	operator =(const SuperString &amp;amp;other) {	Set(other);	return *this;	}&lt;br /&gt;
	SuperString&amp;amp;	operator =(const char *otherZ) {	Set(otherZ);	return *this;	}&lt;br /&gt;
	&lt;br /&gt;
	bool			operator&amp;lt;(CFStringRef other) const {&lt;br /&gt;
		return CFStringLess(i_ref, other);&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	bool			operator ==(CFStringRef other) {&lt;br /&gt;
		return CFStringEqual(i_ref, other);&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	bool			operator ==(CFStringRef other) const {&lt;br /&gt;
		return CFStringEqual(i_ref, other);&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	bool			operator !=(CFStringRef other)	{&lt;br /&gt;
		return ! operator==(other);&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	bool			operator ==(const SuperString &amp;amp;other) {&lt;br /&gt;
		return operator==(other.i_ref);&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	bool			operator ==(const SuperString &amp;amp;other) const {&lt;br /&gt;
		return operator==(other.i_ref);&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	bool			operator !=(const SuperString &amp;amp;other)	{&lt;br /&gt;
		return ! operator==(other.i_ref);&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	bool	IsNumeric() const;&lt;br /&gt;
	bool	empty() const		{	return CFStringIsEmpty(i_ref);	}&lt;br /&gt;
	long	value_long() const	{	return ::atoi(c_str());	}&lt;br /&gt;
	float	value_float() const	{	return CStringToFloat(c_str());	}&lt;br /&gt;
	UInt32	hex_to_ulong()		{	return Hex_To_ULong(c_str());	}&lt;br /&gt;
	&lt;br /&gt;
	SuperString		pop_front(long numL = 1)	{&lt;br /&gt;
		SuperString			str;&lt;br /&gt;
		&lt;br /&gt;
		if (utf8().size() &amp;lt;= numL) {&lt;br /&gt;
			str.Set(*this);&lt;br /&gt;
			clear();&lt;br /&gt;
		} else {&lt;br /&gt;
			UCharVec	bufAC(numL);&lt;br /&gt;
			&lt;br /&gt;
			std::copy(i_utf8-&amp;gt;begin(), i_utf8-&amp;gt;begin() + numL, &amp;amp;bufAC[0]);&lt;br /&gt;
			bufAC.push_back(0);&lt;br /&gt;
			&lt;br /&gt;
			str.Set(&amp;amp;bufAC[0]);&lt;br /&gt;
			Set(&amp;amp;(utf8().c_str())[numL]);&lt;br /&gt;
		}&lt;br /&gt;
		&lt;br /&gt;
		return str;&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	short	count_match(const char *matchZ) {&lt;br /&gt;
		short		countS = 0;&lt;br /&gt;
		const char	*chZ = (const char *)utf8().c_str();&lt;br /&gt;
		&lt;br /&gt;
		do {&lt;br /&gt;
			chZ = strstr(chZ, matchZ);&lt;br /&gt;
			if (chZ) {&lt;br /&gt;
				++countS;&lt;br /&gt;
				++chZ;&lt;br /&gt;
			}&lt;br /&gt;
		} while (chZ);&lt;br /&gt;
		&lt;br /&gt;
		return countS;&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	bool	rSplit(const char *splitZ, SuperString *lhsP0 = NULL, bool from_endB = false) {&lt;br /&gt;
		SuperString		rhs;&lt;br /&gt;
		bool			splitB = Split(splitZ, &amp;amp;rhs, from_endB);&lt;br /&gt;
		&lt;br /&gt;
		if (splitB) {&lt;br /&gt;
			if (lhsP0) {&lt;br /&gt;
				lhsP0-&amp;gt;Set(*this);&lt;br /&gt;
			}&lt;br /&gt;
			&lt;br /&gt;
			Set(rhs);&lt;br /&gt;
		}&lt;br /&gt;
		&lt;br /&gt;
		return splitB;&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	bool	Split(const char *splitZ, SuperString *rhsP0 = NULL, bool from_endB = false) {&lt;br /&gt;
		bool			splitB;&lt;br /&gt;
		&lt;br /&gt;
		if (from_endB) {&lt;br /&gt;
			splitB = strrstr(utf8Z(), splitZ) != NULL;&lt;br /&gt;
		} else {&lt;br /&gt;
			splitB = strstr(utf8Z(), splitZ) != NULL;&lt;br /&gt;
		}&lt;br /&gt;
		&lt;br /&gt;
		if (splitB) {&lt;br /&gt;
			UCharVec	bufAC(i_utf8-&amp;gt;size() + 1);&lt;br /&gt;
			&lt;br /&gt;
			std::copy(i_utf8-&amp;gt;begin(), i_utf8-&amp;gt;end(), &amp;amp;bufAC[0]);&lt;br /&gt;
			bufAC.push_back(0);&lt;br /&gt;
			&lt;br /&gt;
			UTF8Char	*chZ;&lt;br /&gt;
			&lt;br /&gt;
			if (from_endB) {&lt;br /&gt;
				chZ	= (UTF8Char *)strrstr((char *)&amp;amp;bufAC[0], (char *)splitZ);&lt;br /&gt;
			} else {&lt;br /&gt;
				chZ	= (UTF8Char *)strstr((char *)&amp;amp;bufAC[0], (char *)splitZ);&lt;br /&gt;
			}&lt;br /&gt;
			&lt;br /&gt;
			SuperString		temp(chZ + strlen(splitZ));&lt;br /&gt;
			*chZ = 0;&lt;br /&gt;
			Set(&amp;amp;bufAC[0]);&lt;br /&gt;
			&lt;br /&gt;
			if (rhsP0) {&lt;br /&gt;
				rhsP0-&amp;gt;Set(temp);&lt;br /&gt;
			}&lt;br /&gt;
		}&lt;br /&gt;
		&lt;br /&gt;
		return splitB;&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	SuperString	&amp;amp;pop_back(UInt32 numCharsL = 1);&lt;br /&gt;
	&lt;br /&gt;
	OSType	&amp;amp;pop_ext(OSType *extP) const;&lt;br /&gt;
	&lt;br /&gt;
	OSType	get_ext() const {&lt;br /&gt;
		OSType		ext;&lt;br /&gt;
		&lt;br /&gt;
		pop_ext(&amp;amp;ext);&lt;br /&gt;
		return ext;&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	SuperString	&amp;amp;pop_ext(SuperString *extP0 = NULL) {&lt;br /&gt;
		ustring				ustr(utf8());&lt;br /&gt;
		const unsigned char	*dotP;&lt;br /&gt;
		&lt;br /&gt;
		dotP = uc(strrchr(utf8Z(), &amp;#039;.&amp;#039;));&lt;br /&gt;
		&lt;br /&gt;
		if (dotP) {&lt;br /&gt;
			if (extP0) {&lt;br /&gt;
				extP0-&amp;gt;Set(dotP);&lt;br /&gt;
			}&lt;br /&gt;
			&lt;br /&gt;
			ustr.resize(ustr.size() - strlen((char *)dotP));&lt;br /&gt;
			&lt;br /&gt;
			Set(ustr);&lt;br /&gt;
		}&lt;br /&gt;
		&lt;br /&gt;
		return *this;&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	/******************************/&lt;br /&gt;
	SuperString		&amp;amp;resize(long num_utf8_charsL) {&lt;br /&gt;
		ustring		ustr(utf8());&lt;br /&gt;
		&lt;br /&gt;
		ustr.resize(num_utf8_charsL);&lt;br /&gt;
		Set(ustr);&lt;br /&gt;
		return *this;&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	SuperString		&amp;amp;append(const ustring &amp;amp;other) {&lt;br /&gt;
		Set(utf8() + other);&lt;br /&gt;
		return *this;&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	SuperString		&amp;amp;append(SuperString &amp;amp;other) {&lt;br /&gt;
		return append(other.utf8());&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	SuperString		&amp;amp;append(CFStringRef myRef) {&lt;br /&gt;
		return append(SuperString(myRef).utf8());&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	SuperString		&amp;amp;append(const char *other) {&lt;br /&gt;
		return append(SuperString(other).utf8());&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	SuperString		&amp;amp;append(long valueL)&lt;br /&gt;
	{&lt;br /&gt;
		char	bufAC[32];&lt;br /&gt;
		&lt;br /&gt;
		::sprintf(bufAC, &amp;quot;%ld&amp;quot;, valueL);&lt;br /&gt;
		return append(bufAC);&lt;br /&gt;
		//		std::string		strStr;&lt;br /&gt;
		&lt;br /&gt;
		//		return append(NumToCString(valueL, strStr));&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	SuperString		&amp;amp;append(float valueF, short precS = 1)&lt;br /&gt;
	{&lt;br /&gt;
		char	bufAC[32];&lt;br /&gt;
		&lt;br /&gt;
		CopyFloatToC(valueF, bufAC, precS);&lt;br /&gt;
		return append(bufAC);&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	/****************************/&lt;br /&gt;
	SuperString		&amp;amp;prepend(const ustring &amp;amp;other) {&lt;br /&gt;
		Set(other + utf8());&lt;br /&gt;
		return *this;&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	SuperString		&amp;amp;prepend(SuperString &amp;amp;other) {&lt;br /&gt;
		return prepend(other.utf8());&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	SuperString		&amp;amp;prepend(const char *other) {&lt;br /&gt;
		return prepend(SuperString(other).utf8());&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	SuperString		&amp;amp;prepend(long valueL) {&lt;br /&gt;
		char	bufAC[32];&lt;br /&gt;
		&lt;br /&gt;
		::sprintf(bufAC, &amp;quot;%.2ld&amp;quot;, valueL);&lt;br /&gt;
		return prepend(bufAC);&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	OSType			GetAsOSType() const	{	return CharToOSType(utf8Z());	}&lt;br /&gt;
	SuperString		&amp;amp;Ascii();&lt;br /&gt;
	SuperString		&amp;amp;Localize();&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
SuperString		operator+(const SuperString &amp;amp;lhs, SuperString rhs);&lt;br /&gt;
&lt;br /&gt;
class	CDictionaryIterator {&lt;br /&gt;
	CFDictionaryRef		i_dict;&lt;br /&gt;
	&lt;br /&gt;
	static	void 	CB_S_Operator(const void *key, const void *value, void *context) {&lt;br /&gt;
		CDictionaryIterator		*thiz = (CDictionaryIterator *)context;&lt;br /&gt;
		&lt;br /&gt;
		thiz-&amp;gt;operator()((CFStringRef)key, value);&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
public:&lt;br /&gt;
	CDictionaryIterator(CFDictionaryRef dict) : i_dict(dict) { }&lt;br /&gt;
	&lt;br /&gt;
	void	for_each() {&lt;br /&gt;
		CFDictionaryApplyFunction(i_dict, CB_S_Operator, this);&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	virtual void	operator()(CFStringRef key, const void *value) {&lt;br /&gt;
		&lt;br /&gt;
	}&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
template &amp;lt;class Function&amp;gt;&lt;br /&gt;
class CDict_ForEach : public CDictionaryIterator {&lt;br /&gt;
	Function		i_f;&lt;br /&gt;
	&lt;br /&gt;
public: CDict_ForEach(CFDictionaryRef dict, Function f) : CDictionaryIterator(dict), i_f(f) { }&lt;br /&gt;
	&lt;br /&gt;
	void	operator()(CFStringRef keyRef, const void *valRef) {&lt;br /&gt;
		i_f(keyRef, valRef);&lt;br /&gt;
	}&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
template &amp;lt;class Function&amp;gt;&lt;br /&gt;
inline	void	dict_for_each(CFDictionaryRef dict, Function f)&lt;br /&gt;
{&lt;br /&gt;
	if (dict) {&lt;br /&gt;
		CDict_ForEach&amp;lt;Function&amp;gt;		cdict(dict, f);&lt;br /&gt;
		&lt;br /&gt;
		cdict.for_each();&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
#define		CFArrayApplyFunctionToAll(_array, _cb, _data) \&lt;br /&gt;
CFArrayApplyFunction((CFArrayRef)_array, CFRangeMake(0, CFArrayGetCount((CFArrayRef)_array)), _cb, _data)&lt;br /&gt;
&lt;br /&gt;
class	CArrayIterator {&lt;br /&gt;
	CFArrayRef		i_array;&lt;br /&gt;
	&lt;br /&gt;
	static	void 	CB_S_Operator(const void *value, void *context) {&lt;br /&gt;
		CArrayIterator		*thiz = (CArrayIterator *)context;&lt;br /&gt;
		&lt;br /&gt;
		thiz-&amp;gt;operator()(value);&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
public:&lt;br /&gt;
	CArrayIterator(CFArrayRef array) : i_array(array) { }&lt;br /&gt;
	&lt;br /&gt;
	void	for_each() {&lt;br /&gt;
		CFArrayApplyFunctionToAll(i_array, CB_S_Operator, this);&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	virtual void	operator()(const void *value) {&lt;br /&gt;
		&lt;br /&gt;
	}&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
template &amp;lt;class Function&amp;gt;&lt;br /&gt;
class CArray_ForEach : public CArrayIterator {&lt;br /&gt;
	Function		i_f;&lt;br /&gt;
	&lt;br /&gt;
public: CArray_ForEach(CFArrayRef dict, Function f) : CArrayIterator(dict), i_f(f) { }&lt;br /&gt;
	&lt;br /&gt;
	void	operator()(CFTypeRef valRef) {&lt;br /&gt;
		i_f(valRef);&lt;br /&gt;
	}&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
template &amp;lt;class Function&amp;gt;&lt;br /&gt;
inline	void	array_for_each(CFArrayRef array, Function f)&lt;br /&gt;
{&lt;br /&gt;
	if (array) {&lt;br /&gt;
		CArray_ForEach&amp;lt;Function&amp;gt;		carray(array, f);&lt;br /&gt;
		&lt;br /&gt;
		carray.for_each();&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
class CFLog {&lt;br /&gt;
	public: &lt;br /&gt;
	void operator()(CFTypeRef valRef);&lt;br /&gt;
	void operator()(CFStringRef keyRef, CFTypeRef valRef) {&lt;br /&gt;
		printf(&amp;quot;%s: &amp;quot;, SuperString(keyRef).consoleZ());&lt;br /&gt;
		operator()(valRef);&lt;br /&gt;
	}&lt;br /&gt;
};&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Dave</name></author>
	</entry>
</feed>