"°º©o., YahCoLoRiZe Bug List / Web Log ,.o©º°"
§ December 13, 2018 – 7.46 -
I changed how GetTextLength() works in the TaeEdit component which required changes in Utils.cpp SetOldLineVars() and GetInfoOC(). Found and fixed bad bug in StringsW.cpp in CDText(TPoint, TPoint, bool). I noticed "cut" of text was leaving a line undeleted in SL_IRC if you selected to the very end of text. Fixed.
§ November 30, 2018 – 7.45 -
Entering Unicode characters manually by typing four hexadecimal characters then Alt-X was broken. Fixed.
§ November 30, 2018 – 7.44 -
Color dialog horizontal and vertical blend buttons to apply blend to selected zones was non-functional. Fixed.
Fixed the bUndo flag passed to DoBlend() in Main.cpp - flag now prevents undo-points from being set in Effects.cpp when a blend is being performed as part of a DoProcess() (which has its own Undo-point).
§ November 28, 2018 – 7.43 -
Now calling ProperlyTerminateBoldUnderlineItalics() at each hard line-break in ConvertToIRC.cpp. This fixed a problem where missing bold, underline or italics formatting codes caused propagation of the effect into succeeding lines. The optimizer removes formatting codes at the end of lines because each text line is self-sufficient in its formatting so that it can be sent over a chat client; hence, the terminating codes become redundant. But that confused the main text-processor. When re-processing text that already has format codes, we need to re-terminate effects to add wing or border text.
Another glitch I discovered was in applying effects when in the Original or IRC Codes view. The Leading and Trailing text states needed by ProcessStyle() were not being computed. Now, they are!
§ November 21, 2018 – 7.42 -
The edit boxes for margins, width (in characters) and height (in lines) were throwing exceptions upon clicking from one box to another. Fixed.
§ November 13, 2018 – 7.41 -
Added a new popup menu item that prints out the colors and font of text at the flashing caret. Fixed several bugs in Effects.cpp and Optimizer.cpp.
§ May 31, 2017 – 7.39 -
Repackaged with new self-signed certificate. Download here.
§ March 16, 2017 – 7.39 -
New version to accomodate an installer change. I've stopped using the NSIS installer and have released YahCoLoRiZe32.msi
§ October 21, 2016 – 7.38 -
Posted source-code to GitHub.
§ September 7, 2016 – 7.38 -
Re-packaged with the latest "nullsoft scriptable install system 3.0" (NSIS).
§ April 23, 2016 – 7.38 -
No bugs found, just re-packaged with the latest "nullsoft scriptable install system 3.0rc1" (NSIS).
§ January 11, 2016 – 7.38 -
Tools->Optimize was inadvertently clearing the document. Fixed.
§ January 7, 2016 – 7.37 -
Three major changes:
1) Added a new tool to keep a list of your favorite color combinations.
2) "Under the hood" the air-intake system is now turbo-charged... oops, wrong project... the character input thread has been rewritten
to leverage the power of my custom string-list class so that CPU time and memory use is vastly reduced as you type or delete characters
into a large document. The string-list class has new methods to efficiently insert or delete blocks of text that span line-terminators.
3) The undo system now has a lean and mean small-structure for memory-efficient storage of character entry data.
§ December 20, 2015 – 7.36 -
Buffer index was 1 char short in some situations when applying text effects to the entire document. Fixed.
§ December 19, 2015 – 7.35 -
Added a new item in the Tools menu that will automatically fix the right border-width after
you edit text. It strips trailing spaces then re-adds trailing spaces to pad the line-width
out to your set line-width or to the longest single line of text, whichever is greatest.
Pressing the tab key was not advancing the caret. Fixed.
§ December 17, 2015 – 7.34 -
1) In replace-text, the replaced word remained selected so that the selection highlight color
hid any new colors that has been substituted. 2) The topic of all system messages said "Error"
instead of YahCoLoRiZe. 3) It was possible to select a null character past the end of a document and
then paste it which caused the optimizer's status panel to become stuck on. 4) Revision of
YahCoLoRiZe in exported web-pages is now correct. 4) The show-hex tool indicies were wrong if in
the codes view. 5) Show-hex will now show hex of what is on the clipboard if no text is selected.
§ December 12, 2015 – 7.33 -
An extraneous character sometimes appeared after pasting text. Cleaned up a few other
things... Fixed program crash after you clicked on a web-link in a document. The status-panel
was stuck on after an HTML conversion. Fixed.
Found a bug that was randomly preventing the web-page from showing in View->View In Browser.
The variables that determine the web-page's left and top margins were sometimes not
§ December 8, 2015 – 7.32 -
Bug-fix to the wing-editor and major improvements to the system-wide cut-paste algorithms.
§ December 4, 2015 – 7.31 -
...Improved the algorithm behind the application of text styles.
You can add a text-attribute such as underlining by selecting the text, then in the menu choose
Effects->Format Codes->Underline. To remove the underline, repeat the process.
...Re-vamped the logic behind "Protected Zones".
Protected text is skipped when an effect is applied. So if you wanted all background text green
except for certain paragraphs, you can select those paragraphs and choose
Effects->Format Codes->Protected Start.
...Created a new "no-color"" color (code 96) that fixes a problem during application of the
background-blend effect. Before applying the blend, I strip all pre-existing background colors. But
this was creating a conflict if we converted a color to forground-color only and the codes immediately
preceeded text such as "(CTRL-C),03". This is a long-known issue with the mIRC color codes
scheme. So to solve this I write "(CTRL-C)96,03" and the 96 is always just ignored.
§ November 29, 2015 – 7.30 -
Added WYSIWYG print-preview as well as support for tab-characters and page-breaks.
The print-preview works fairly well except that you will need to manually adjust a pixel-resolution
correction factor as you change fonts and font-sizes. The adjustment is in the upper right
corner of the print-preview dialog. Eventually I'll automate this...
To insert a page-break, click on the document where you want the page-break and choose
Effects->Format Codes->Page Break. You will see page-breaks as "\pagebreak". When you
click File->Print Preview, all of the \pagebreaks are converted into printer form-feeds. When
you close the print-dialog, they are converted back into \pagebreak. To remove page-breaks, just edit
them out like normal text or use Edit->Replace.
There is a new settings panel in YahCoLoRiZe for Tab-settings.
The custom system that handles progress-bars and status-panels has been re-designed.
YahCoLoRiZe now supports so-called "overstrike" typing.
Fixed a bug in the NSIS installer-script that was keeping my uninstaller from deleting the main YahCoLoRiZe
§ September 10, 2015 – 7.29 -
Added tae->PrintSupport = true when user clicks Print or Page Setup.
I had changed the rich-edit control's wrapper-class to require printing to be turned on
instead of always instantiating objects related to document printing. But then I forgot
to turn print-support on in YahCoLoRiZe. My bad... Fixed.
§ August 25, 2015 – 7.28 -
Found a problem with a character getting deleted when you applied bold, underline or italics text-effects. In implementing
YahCoLoRiZe Unicode, I wrote my own TStringListW() class. The OLD TStringList() class had a quirk that added a line-terminator
at the end of the last string. So I had corrections in-place to fix that... and I had to remove those old patches.
§ August 23, 2015 – 7.27 -
Updated the web-page-export dialog with unicode controls (edit-boxes for background image URL, Etc.). The new dialog
lets you specify the white-space style used in the pre tag. There is a new check-box to choose whether
or not to insert non-breaking spaces for trailing white-space.
§ August 21, 2015 – 7.26 -
Fixed a few things:
§ August 19, 2015 – 7.25 -
Fixed a problem with my custom Unicode file dialogs appearing in the wrong windows Z-order and not being closed
when the parent GUI object closed. This happened, for example, when you tried to import a Wings.txt
file while in the wing-editor - it appeared behind the editor. Fixed.
There was a problem with extraneous color and font codes building up as you added and removed new blank lines.
The original idea had been to auto-prepend the current text-state whenever a new line was added... then,
pressing the backspace key to remove the line was not removing the added state-codes. So things have been
modified a bit to ameliorate that phenomenon.
§ August 12, 2015 – 7.24 -
The Paltalk communications module was re-written and now works with the
Unicode version of Paltalk.
There is a new section for Paltalk in the Colorize.ini file. "maxcolors" is
set to 10 but it may need to be changed. I don't use Paltalk at present and
have not really tested to discover its limits on colors and the number of
characters per-post... as I have it, you can send up to 10 RGB colors per-post.
Set maxcolors to -1 to permit an unlimited RTF color-table (however, PalTalk
may reject too many colors!). The limit used to be 7 colors, I believe. You
will need to experiment with this yourself.
One note - my RTF converter now performs a geometric summation to
approximate a color if the RTF color-table's size is constrained via
maxcolors. This only applies when you select Paltalk as your chat-client in
the Clients menu.
Tools->ShowHex was broken. Fixed.
Drag and drop of a file was setting the wrong View which in turn confused
the effects processor (stripping of various codes was using incorrect
buffer indices). Fixed.
Fixed the display of line-width (in the lower right corner) when viewing
HTML or RTF text.
§ August 3, 2015 – 7.23 -
Unlinked my license-key module since it's no longer used and needed to access HKEY_LOCAL_MACHINE. Updated
Colorize.dll - in Windows 10 it caused the entire desktop to lock up while in a loop evaluating tcl commands for
the old XiRCON chat-client... thought I'd better ameliorate that.
§ August 1, 2015 – 7.22 -
This is the new (months in the making!) UNICODE release of YahCoLoRiZe! Works with mIRC, LeafChat and IceChat with
full UTF-8 text.
You can copy/paste Unicode characters or you can manually enter Unicode characters (such as Chinese) by typing the
character's hex code into your document, then pressing Alt+X. This also works in the wing-editor and in the
Play->Options menu when adding a new chat-room.
Full Unicode file-paths are now supported when opening and saving text and settings files.
UTF-8 web pages can now be exported and you can paste UTF-8 text from your web-browser into YahCoLoRiZe, process it
send it to an IRC chat-room via a YahCoLoRiZe plugin or script for your chat-client.
§ July 26, 2015 – 7.21 -
This will probably be the last release of ANSI YahCoLoRiZe (Unicode version coming soon!). This fixes a problem
in YahCoLoRiZe AND there is also a new release of the LeafChat Plugin with a related issue.
In YahCoLoRiZe, we were clearing out the window handle that the plugin (any plugin) had just sent to us. This
forced YahCoLoRiZe to use the FindWindow (API call) to find the plugin's handle. So now, we clear the handle
if you change clients via the menu-selection but NOT if the client was remotely changed by a plugin. Fixed.
Meanwhile, the LeafChat plugin was recently modified so that it sends the actual byte-count of a UTF-8 string
to YahCoLoRiZe along with the data. In Java, the length parameter reports the length of a byte-array
including the null-terminator - so we need to subtract 1 from the length at the plugin-side. Fixed.
§ July 24, 2015 – 7.20 -
Keeping the same revision level - released a new version of the LeafChat plugin. It worked fine as long as
all of the text was ANSI. Unicode text encoded in UTF-8 reported the wrong byte-lengths to YahCoLoRiZe
causing text to be truncated. Fixed.
Tested the remote file-open command with a Chinese file-path and it works just fine. Also, I've certified
my custom DLL "Unicode Ready".
Did you know... you can convert a Windows Unicode file-path using GetShortPathNameW() (good old Win32 API) and the
returned short-path, equivalent string is guaranteed to be in ANSI characters? This is a powerful concept if you
are porting older applications to use Unicode.
§ July 22, 2015 – 7.20 -
Keeping the same revision level - released YahCoLoRiZe with an installer script that fixes a few icon issues.
Here is the NSIS script for the YahCoLoRiZe installer...
§ July 21, 2015 – 7.20 -
I have been pulling my hair out over installer issues. The problem I was having was that my NSIS installer was launching
YahCoLoRiZe, following the installation, in Admin mode. This is not good for two reasons in Windows 7 8 and 10.
First - the hyper security stance in the newer versions of Windows is fairly rigid. So running my non-microsoft,
non BIG-COMPANY, unsigned by BIG-SIGNING-AUTHORITY, application in Admin mode makes them scream out scary warnings
to the end-user... not cool! Second, if my program is launched running in Admin mode, but your chat-client program
is running at user-level - the two programs are blocked from communicating with each-other. Which means you can't remotely
send text to YahCoLoRiZe to be color-processed.
So I set out to fix the installer - and decided to just change to a WIX (Windows Installer XML) Toolset based installer.
Egad! That opened my eyes to what a horrid nightmare the Windows Installer (bloat bloat bloat!) is. So back I went to
NSIS and I incorporated the UAC plugin to let YahCoLoRiZe launch in User-level after install... I also have another
interesting trick in my installer script to let me digatally sign the Uninstaller (that's been in it for some time).
So, to make a long story longer - this version is essentially the same as 7.19 but with an installer that launches
YahCoLoRiZe in the current level the user is working at after installation.
§ July 16, 2015 – 7.19 -
While testing the soon-to-be-released unicode version, I discovered
a bug in the way song-title information is processed when it is received from SwiftMiX.
Background: When a new song begins in SwiftMiX, if Options->Send Telemetry is on, the song's title, album and artist are
sent to YahCoLoRiZe via a WM_COPYDATA message. YahCoLoRiZe then looks in its colorize.ini file (located in the
C:\ProgramData\Discrete-Time Systems\YahCoLoRiZe or C:\Users\All Users\Discrete-Time Systems\YahCoLoRiZe folder) and gets a
formatting string that looks like
"%bS%bw%bi%bf%bt%bM%bi%bX: %artist, %album, %u%song%u"
The method that re-encodes this field was mistaking %s in %song for a font-size code - in other words,
it was broken and now it's fixed
Found a bug in deleting the playback buffer in a few places... Could cause the program to fail after text-playback
via some chat clients including LeafChat (not mIRC). Fixed - hence two (for the price of one!) releases today.
§ July 12, 2015 – 7.17 -
This version fixes a few glitches... 1) It can auto-locate IceChat
again (this had stopped working with the newest version of IceChat). 2) The optimizer was not optimizing
out RGB foreground colors that appeared in front of successive spaces. 3)Drag and drop of a file now
invokes auto-processing if the text has color-formatting embedded in it. 4) The Increment Colors effect
was not working properly for the old 16-color IRC (mIRC) system. 5) The optimizer was always writing
leading colors in front of a line even if the text had no formatting at all - this was for a good reason
"back in the day" but is not helpful now. So you can save a plain text file and it won't end
up with IRC color-codes in it. 6) When you open a file we will check and not allow an EXE file to be opened.
7) This version is semi-compatible with the latest LeafChat and IceChat plugins (the new plugins are
designed for the up-coming Unicode release of YahCoLoRiZe). 8) If there was no .ini file, the default
color palette was not being loaded and clicking a color-panel crashed the program.
A few comments:
When using IceChat, YahCoLoRiZe can only find it if it is the only .NET app you have running. But you can let
IceChat find YahCoLoRiZe instead... Simply start YahCoLoRiZe before you start IceChat or... IceChat will find
YahCoLoRiZe when you send any command from the IceChat command-entry-line (such as: /cx hi!). Make sure you
have installed the YahCoLoRiZe plugin for IceChat (a DLL) into \Program Files\IceChat 9\Plugins.
When you install YahCoLoRiZe, the installer I use can only launch it in an elevated privileges mode.
So you will need to close YahCoLoRiZe and re-start it after initial installation before it can receive
remote text commands from IceChat or LeafChat. This is because Windows 7, 8 and 10 block WM_COPYDATA
messages unless the program receiving them is running at the same execution level as the program sending them.
(typically both run at the "User;" level).
§ June 30, 2015 – 7.16 -
Released a new version of the LeafChat Java Plugin for YahCoLoRiZe. This version works with Windows 8.1.
It it designed to work with the upcoming Unicode release of YahCoLoRiZe. To use it you need to download
the zip-file and
copy colorize.jar into C:\Program Files (x86)\leafChat 2\plugins. If you have a 64-bit
computer, you will also need to copy the special shortcut to your desktop that launches LeafChat in the
32-bit Java Virtual Machine (so that LeafChat can talk with 32-bit YahCoLoRiZe). You may need to install
the 32-bit version of Java
Start LeafChat by double-clicking the new desktop shortcut. If LeafChat does not start (you are SOL)... :-)
(you will need to edit the shortcut properties, the path in the target-field may be wrong for the
version of Java you downloaded.)
Run YahCoLoRiZe and set Client->LeafChat then go to Play->Options and enter the chat-room you will be
sending to and click "Send As UTF-8"
In LeafChat, log on to a server and go to your chosen chat-channel (try it out first in a test-room!)
type "/cx this is a test" and the text should be sent to YahCoLoRiZe, be processed and returned to the
room you sent it from.
§ June 21, 2015 – 7.16 -
Discovered a problem with adding new rooms to the list in Play->Options. Fixed.
NEWS: Have been working for some time on a Unicode version of YahCoLoRiZe (handles Chinese symbols!)... soon
§ June 4, 2015 – 7.15 -
Working on a full Unicode version of YahCoLoRiZe. Came across an issue that will cause a memory leak and possible crash when doing
Cut/Copy of RTF (processed) text. A memory-stream was not getting deleted. Fixed.
§ May 15, 2015 – 7.14 -
Skipped 7.13... (no, I'm not superstitious!). Added a "Send As UTF-8" check-box in the Play->Options dialog. If this is checked,
YahCoLoRiZe will convert text sent to your chat-client in UTF-8 format. It will also convert any UTF-8 text received from your
chat-client into ANSI before processing it. YahCoLoRiZe still uses ANSI characters internally, but this will allow you to use
YahCoLoRiZe in UTF-8 only rooms.
NOTE: If you use an old chat-client in a UTF-8 room, and check the new "Send As UTF-8" box, you will see some of the text from YahCoLoRiZe
look garbled... but users with newer, UTF-8 complient chat-clients, will see it normally.
All of the class name-strings for the supported chat-client plugins is now located in the Clients section of the colorize.ini
file located in the C:\Users\All Users\Discrete-Time Systems\YahCoLoRiZe folder. Up until now this info was hard-coded in the
§ March 31, 2015 – 7.12 -
Fixed a glitch in the new wing-editor that was preventing edits of the side-borders.
§ March 31, 2015 – 7.11 -
The Wing-Editor's list-boxes display the wings in color now. I had to derive a list-box class and then make the control owner-draw. Next I wrote an engine to
convert IRC-style embedded codes to raw Windows API GDI commands. Seems to work well. Put forth some effort getting the focus rectangle to erase cleanly.
Redid the extended color palette. It has the 16 original mIRC colors, 6 additional gray shades, 6 "pleasing colors" and 52 EGA colors for a total of 80.
YahCoLoRiZe will now warn you if you try to close it but have unsaved work.
§ February 12, 2015 – 7.10 -
Added a feature that took a lot of work and may never be used... there is a new checkbox, Extend Palette, which when checked,
allows color indexes beyond the default mIRC (Internet Relay Chat) limit of 16 colors. The YahCoLoRiZe RGB color-table can be found
in an editable text file at (on Windows 8.1): C:\Users\All Users\Discrete-Time Systems\YahCoLoRiZe\Colorize.ini.
YahCoLoRiZe reads the table from the file on startup - if there are less than 16 colors or the table is missing or the file is missing, values
are added from either the stored values in the windows registry or from a default palette that has the original mIRC colors in it.
The first 16 colors in the palette can be edited from the color dialog also (but probably will never change across the IRC network...). To change them,
select your client as Trinity, then click the FG color panel and click the RGB button. A dialog will pop-up and you can edit the 16 colors
at the bottom of the dialog and they will be retained in the windows registry - these colors supersede the values read from the file! When you
restore defaults, the first 16 colors in the file overwrite the values in the registry.
The YahCoLoRiZe color dialog has been completely rewritten. It automatically adds the number of colors read from the colorize.ini file. If Extend Palette
is unchecked, only 16 colors (from the registry) will be shown.
Embedded color indexes for IRC currently go from 00-15 (ASCII decimal) 99 is Transparent. When you check Extend Palette, the embedded numbers
can range anywhere from 00-99, depending on how many colors are in the file. I went ahead and made a file of the 16 original mIRC colors plus
the 64-color EGA table. Since 8 of the EGA table colors are the same as the mIRC colors, they are replaced with grayscale colors. EGA Orange was
also replaced with a grayscale color because it is very close to IRC Orange.
I've bumped the Revision in the colorize.ini file to 2 so it will automatically overwrite your old file when you install this version of
Other changes: Fixed a bug in the UTF-8 encode/decode that was leaving an extra null-terminator (visible if you edited an HTML file exported
by YahCoLoRiZe using Notepad++). Added new property setters on many of my dialogs and re-wrote the color-panel handlers so that they are common
for all dialogs. The optimizer should not add anything following the last line-terminator - but sometimes, it was! Fixed.
There was a bug in text playback to chat-rooms... the text was not being optimized and a status message was getting stuck on when you pressed the
green play button (cause was a polymorphic method prototype. I changed the method's overloading... On one old method call, the compiler automatically
converted a parameter and it fit the WRONG prototype nicely with no errors). Fixed.
By the way, any color-panel anywhere in YahCoLoRiZe can be right-clicked to bring up a menu. Click Show to view the index, hex and decimal
color values. Click Copy to put the color on the clipboard - many color-panels will then let you right-click paste the color... Also - you
can select a character in the Processed (color) view and right-click copy, in addition to copying the colors and text to the clipboard,
it also lets you then right-click and paste the leading foreground or background colors to a color-panel (in a effect-dialog, for example).
Here is the new YahCoLoRiZe color palette directly from Colorize.ini...
- Using "Open With" and clicking YahCoLoRiZe was not working. The problem
was that the new color-resolver in my RTF converter uses the color-palette, which had not
been instantiated at the time command-line parameters passed via Open With were being
- New browsers and even WordPad are now handling the HTML white-space style
properly (for a long time they did NOT). So I've replaced the insertion of non-breaking
spaces in my HTML converter with the white-space pre style. For now, I still add the
non-breaking spaces when text with trailing white-space is copied to the clipboard (old versions
of MS Word required this).
- Tool->Strip Codes was leaving extra background color codes at the end of the document.
I traced this to the text-effects processor trying to resolve selected-zone text-formatting
without calling the optimizer (so that Undos can be preserved) - anyway, it works now...
- Copy was not keeping RTF formatted text on the clipboard because another call was calling
- RGB colors were being saved to the registry ok, but when loaded on startup, we were
setting colors back to defaults, thinking an IRC client was selected (IRC clients cannot handle
YahCoLoRiZe RGB colors).
; Colors are in RGB hex separated by a space, rrggbb
; Colors can be changed if needed. Colors past the first 16 kick in if "Extended Palette" is checked
; Indexes 80-96 are reserved for user values, 97,98 are reserved, 99 is "transparent"
; mIRC Color Table 00-15
colors0=ffffff 000000 000080 008000 ff0000 800000 800080 ffa500
colors1=ffff00 00ff00 008080 00ffff 0000ff ff00ff 808080 c0c0c0
; EGA Color Table 16-79 (includes 6 grayscale and 6 extra colors)
colors2=222222 333333 555555 999999 AAAAAA DDDDDD 15317E 7FFFD4
colors3=8FBC8F 9FC2BA D3D2B5 CABD80 000055 0000AA 005500 005555
colors4=0055AA 0055FF 00AA00 00AA55 00AAAA 00AAFF 00FF55 00FFAA
colors5=550000 550055 5500AA 5500FF 555500 5555AA 5555FF 55AA00
colors6=55AA55 55AAAA 55AAFF 55FF00 55FF55 AA55AA AA55FF AA0000
colors7=AA0055 AA00AA AA00FF AA5500 AA5555 AA55AA AA55FF AAAA00
colors8=AAAA55 AAAAFF AAFF00 AAFF55 AAFFAA FF55FF FF0055 FF00AA
colors9=FF5500 FF5555 FF55AA FF55FF FFAA55 FFAAAA FFAAFF FFFF55
§ February 3, 2015 – 7.09 -
A few changes: YahCoLoRiZe will now warn you if you have an unsaved document. If you set colors using a right-click in the title-bar
(or where it says "Right-Click Me!") they can now be unset by typing Ctrl-Z.
I've expanded the edit-window in the wing-editor to allow various fonts to show better. Also, if you are editing a particular wing then
click another wing, your current work is saved before the new wing is displayed for editing. The old behaviour was to just abort the previous
I've modified the rich-edit component (yet again) to properly initialize all rich-text boxes as having word-wrap turned off.
The rich-edit control should consume less memory now, since the printer-module is no longer automatically instantiated.
Sadly, YahCoLoRiZe still cannot handle UTF-8 text - this is because it is written in C++ for an old version of C++ Builder
by Inprise (Embarcadero) - I use Visual Studio 2015 now and it is completely impossible to port YahCoLoRiZe to VS. Buying the new RAD Studio
is an option you say? True, but I can't justify the expense at this time... ($2,290.00+$11.95 shipping from amazon!) Going to give a try
at rewriting my old VCL to use wchar_t just about everywhere (old build tools)...
§ January 30, 2015 – 7.08 -
Added the new feature of embedded font-style in a native YahCoLoRiZe document. You could change the size of the font before inside a
document but there was no assigned code to specify the style. How it works: I took 99 font names from my Windows 8.1 machine and store them
in a hard-coded table. They need to be hard-coded to work cross-platform. Multiple indexes into the table can be embedded in the document.
Those indexes are easily transmittable through your chat-client to any other chat-client which supports the YahCoLoRiZe extension of
mIRC's original embedded color-codes. The embedded code (octal 23) followed by ASCII/UTF-8 00 tells YahCoLoRiZe (or future chat-clients that
support YahCoLoRiZe code-extensions) to return to the previous font-style. When you click Effects->Font->Type the dialog is
populated with font names that are both available on the local computer and that are also in the YahCoLoRiZe permanent font-table.
Also fixed a few bugs - the MoveMainTextToString() method was returning one too many characters which was manifesting in the NULL character
being added to all HTML converted documents and when you called up the Find/Replace dialog with pre-selected text to find, it had an
extra character at the end. FIXED!
The Replace All feature had stopped working and could cause a program crash if your replace text had embedded color/font codes in it.
This was caused because the find/replace invokes my main program's PasteColor method which calls a routine along the way to clear
the main text and convert to RTF text - which in turn remotely closed any open spell-check or find-replace dialog - so the dialog
was closing in the middle of a loop to replace multiple instances of a word or phrase. FIXED!
Currently, in order to facilitate the Undo feature, we optimize only the portion of a document to which an effect is applied. But
when rendering to HTML for a preview in a web-browser, the document needs to be optimized to strip redundant or unnecessary
text-formatting codes. Optimization was NOT being performed in earlier revisions. FIXED!
Fixed the Morph-Colors effect for Paltalk (where you can have a maximum of 7 RGB colors per line of text). Also made some changes to several
Did some more work on bold, underline, italics and "protected" zone effects. When you select a range of text to add, say the underline effect to,
YahCoLoRiZe will first strip out any pre-existing underline codes, then will separately mark each complete line in the selection with
the underline code. The leading underline code is placed after any leading color or font codes that begin a line. Each line of text
can therefore be transmitted to a chat client and accurately reflect a text effect over multiple lines. Applying a "protected"
zone (push/pop) effect is trickier since the leading code for each line has to be placed after leading colors and font codes but before
any bold, underline or italics codes. It seems to work fairly well unless you try to overlap a protected zone over an area in an unbalanced way
(don't, for example, just select the first x chars of an underlined area and try to protect it... you must encompass the entire underlined area or
funny things start to happen :-) (this issue can be solved but it will be a larger than usual pain in the rear).
Added the ability for YahCoLoRiZe to compensate for imbalances in the actual lengths of left/right wing-pairs. So if the right-wing is shorter than
the left, padding spaces will be added after the wing... and vice-versa. Kind of tricky since each wing can have colors and font attributes
embedded in it. Symmetrical balance looks beautiful but is not always easy to achieve... :-)
Found an old bug I'd not discovered - the default color-table macro was bad in the main header-file. So if the default colorize.ini file was missing,
then the 16 basic colors would come up random. Interesting :-)
Fixed the "Fractal" and "Color Fractal" effects. Click the left mouse button to zoom in, Shift and click-left to zoom out, click
left while holding the up, down, left or right keys to re-position... (kind of primitive but fun!) (Hint: set Line Width to 200 or more to make a
larger fractal that you can scroll up/down left/right using the window scroll bars).
Increased the maximum line-width you can manually select from 99 to 999.
Modified the Wing Editor so that if you are editing one wing (having double-clicked it in the main list-box) you can simply click another and your
work so-far on the other wing is saved... before, when you clicked a new wing, the top edit-box closed and your previous work was not preserved.
§ October 17, 2014 – 7.07 -
Discovered a possible bug in Internet Explorer that copies selected text incorrectly - below you see Chrome's copied HTML which works ok
(and so does Firefox) then IE's version which will cause all of the line-breaks inside a <pre> tag to be lost. The problem is that IE is incorrectly
placing the <pre> tag in front of <!--StartFragment--> instead of after it. Switching to <br /> line-terminators will work-around that
problem but then a different bug in copying HTML from Windows Live Mail pops up... and using "white-space: pre" does not solve this problem either.
Copy of the above from Chrome (works ok):
<!--StartFragment--><pre style="font-family: 'Courier New'; font-size: 10pt;"><span style="color: rgb(0, 255, 0); background-color: rgb(255, 0, 0);"> </span>
<span style="color: rgb(0, 255, 0); background-color: rgb(0, 0, 128);"> <b>hi</b> </span>
<span style="color: rgb(0, 255, 0); background-color: rgb(0, 128, 0);"> </span></pre><!--EndFragment-->
Copy of the above from IE (no line breaks):
<PRE style='font-family: "Courier New"; font-size: 10pt;'><!--StartFragment--><SPAN style="color: rgb(0, 255, 0); background-color: rgb(255, 0, 0);"> </SPAN>
<SPAN style="color: rgb(0, 255, 0); background-color: rgb(0, 0, 128);"> <B>hi</B> </SPAN>
<SPAN style="color: rgb(0, 255, 0); background-color: rgb(0, 128, 0);"> </SPAN>
The YahCoLoRiZe bug I found is in the decoding of color tags of the form <span style="background-color: #rrggbb color: #rrggbb">.
My HTML parser was getting confused... Fixed!
Also designed a work-around for IE's "possible" bug that finds a lonesome PRE tag if it's hiding in front of the clipboard-fragment :-)
§ October 14, 2014 – 7.06 -
You can now select text from a web-page that has embedded links and when you paste it into YahCoLoRiZe
the hyper-links are expanded in a format compatible with IRC chat-client URL Catchers.
§ October 10, 2014 – 7.05 -
Pasting of HTML clipboard text was not working for the Windows 8.1 mail client. I had to activate the StartHTML and EndHTML fields
in the header for HTML text copied to the Windows clipboard. Works like a charm now. You are supposed to be able to set those
fields to -1 if they are not to be used... it used to work fine in XP - alas, I guess that's progress :-)
§ October 4, 2014 – 7.04 -
When you selected a block of processed text then pressed the process button again, the selected zone was cosmetically bleeding back into
the re-processed text. Fixed.
§ August 6, 2014 – 7.03 -
Fixes the character-processing thread which was hanging on Windows 8.1 running on a multi-core 64-bit
processor... tested on Windows XP, 7 and 8.1.
§ August 2, 2014 – 7.00 -
Added a prompt to warn that we have to clear the text when changing from a client that can
handle RGB codes to one that can't...
§ August 2, 2014 – 5.99 -
Relocated the randomly colored box in the title-bar into the main-menu's client-area and gave
it a caption of "Right-Click Me!" for Windows 8.1 users. This is the feature that
generates random combinations of colors as you use YahCoLoRiZe... When a particular color
combination appeals to you, you can right-click and capture it.
§ August 1, 2014 – 5.98 -
Took out all of the built-in code to create an uninstaller since we now use NSIS. The Uninstall option
was removed from the Help menu... you have to go to Add/Remove Programs now instead. Built on a 64-bit machine
running Windows 8.1. Progress? :-) The colors in the title-bar no longer change randomly for Windows 8.1, TODO.
§ July 28, 2014 – 5.97 -
If you tried to open an html file, YahCoLoRiZe was loading the html source-code instead of
converting the html to IRC format and then displaying the RTF view. Fixed.
§ July 12, 2014 – 5.96 -
The Tools->Emoticons feature is working again. The emoticon short-cut codes can be inserted for any View.
Inserted emoticon text is auto-selected and the dialog auto-moves itself off of the selected text.
The Uninstall icon was not being properly displayed in Add/Remove Programs. Fixed.
The spelling dialog box now auto-moves itself off of the misspelled word...
§ July 10, 2014 – 5.95 -
I've changed the installer for YahCoLoRiZe from Paquet Builder to NSIS.
For reference (software engineers only), my new (hot off the press!) NSIS script-file for the English version
I actually found NSIS Studio,
a Beta GUI front-end application for NSIS that generated a rudimentary installer-script. I was able to modify
that script to do additional tasks and use it to learn the NSIS scripting syntax.
Fixed a problem with YahCoLoRiZe not properly initializing a variable if its value could not be
located in the windows registry. A earlier YahCoLoRiZe version might easily be missing some of the newer
version's vars... Fixed!
§ July 4, 2014 – 5.94 -
The speller's "heart" is now Hunspell. English, Spanish and French
dictionaries are distributed with YahCoLoRiZe. Download additional dictionaries
and unzip them into \Program Files\Discrete-Time Systems\YahCoLoRiZe\Dict.
You can select the dictionary you want to use by clicking the Language button
in the speller's dialog.
You can add/remove words from your own personal "My Dictionary". It
is stored in the colorize.ini file located in the
\Documents and Settings\All Users\Application Data\Discrete-Time Systems\YahCoLoRiZe folder.
colorize.ini can also be edited to change the SwiftMiX song-display format that is played
into IRC chat-rooms from YahCoLoRiZe via your favorite chat-client.
Credits: This spelling-checker is made possible by the creators of Hunspell as well as the
Open Office Dictionaries. Hunspell.dll was compiled by Chris from www.progui.co.uk. The
dictionaries are from openoffice.org. Hunspell is avalible at hunspell.sourceforge.net.
§ June 27, 2014 – 5.93 -
The spell-checker's ActiveX control does not register on a Windows 7 64-bit machine so
in the meantime I've added code that will catch the error and display a message...
(NEWS: I am presently converting YahCoLoRiZe to use HunSpell (as used by OpenOffice
and many other popular programs).
§ June 26, 2014 – 5.92 -
Eliminated vspeller.fts from the distribution, it is auto-generated by the windows help system.
Using a new version of PaquetBuilder (2.9).
§ June 21, 2014 – 5.91 -
Added rudimentary spell-checking to YahCoLoRiZe. I'm using an old version (2.0) of
the VSSpell Active-X control by ComponentSource. May change it to Aspell (used in
notepad++). My installer copies the files vspell32.dll, vspell32.ocx and american.vtd
to your system32 directory and the files vspeller.hlp and vspeller.fts to the Help
directory in Windows. It works ok but you can't add your own words... Undo works
with the new spell-checker. Only English is supported. I did not buy the new version
of VSSpell because I earn no income from this project.
§ June 10, 2014 – 5.90 -
Fixed some problems with Undo after Clear. I've added functionality that will save
your current view's document when you select Edit->Clear but it will also delete
all Undo items that are not of type UNDO_CLEAR since we can't tell which document-view
they were associated with. Also, if you select File->New it will erase the entire
§ June 9, 2014 – 5.89 -
Fixed some problems when entering a new line at the beginning of the RTF View, when cutting
text in some views or when backspacing to remove line-terminators... re-configured
the Demo-text files in the Help menu. Now, invoking a Demo will automatically set certain
formatting options and leave them set. For example, the Text (Wings) Demo will turn on Wings,
§ June 8, 2014 – 5.88 -
Fixed a state-termination error for the Alternate Character text effect.
§ June 7, 2014 – 5.87 -
Cosmetic fix of Web-Export Line-Height box... some small mods to the title-bar's
color-change timing... added left-mouse click in title-bar to initiate generation
of new random title-bar colors.
§ June 6, 2014 – 5.86 -
Fixed Undo-system bug that manifested when Undoing changes to the Original text view.
§ June 5, 2014 – 5.85 –
This is a major new release. The main new feature is a custom-designed "Undo" system.
YahCoLoRiZe has never been able to Undo changes made to your document other than to restore
the original text View. Now it records all changes, including color-changes, processing
changes, cuts/pastes and changes due to adding text-effects. Pressing Ctrl+Z will walk the
document back in time...
§ May 16, 2014 –
Updated the LeafChat plugin to version 1.3, available here.
§ April 23, 2014 – 5.84 –
Authored a new a find/replace component that spans views and lets you
find/replace text with embedded text-format codes. You can edit the replace-text
in either color or raw-code views and insert format codes from a menu. The
find/replace can handle text containing multiple lines. There is also a
multi-lingual help document for the new find/replace.
Example: To Replace all occurences of a particular color:
- The Increment Colors, Random Colors and Alternate Colors effects can now maintain the colors
of space characters. A new algorithm scans the text before applying the effect and records the
color of spaces in the selected zone. The effect is then applied and color-codes are written
as needed to preserve white space coloring.
- Find/Replace was overhauled to eliminate the View menu item. Many improvements were made
to Find/Replace. One addition is that the dialog automatically expands the find or replace
windows if more than one line of text is typed or pasted in.
- Added multi-lingual support for the "Export As Web-Page" dialog.
- Line-Height in Web-Export is now saved when you exit YahCoLoRiZe. Line-Height
is now used when you Copy text in the the main YahCoLoRiZe edit-window to the clipboard. The HTML
converter puts text in a format you can paste into an E-Mail client. Just adjust Line-Height
in "File->Export As Web-Page" to fine-tune the appearance of text you paste into
- I've stopped doing automatic code-optimization in some cases because it would make Undoing
edits nearly impossible. Instead you can choose "Tools->Optimize" to eliminate
redundant or unnecessary color-format codes. Auto-Optimize is still done when you play any
text to a chat-room, and text copied and converted to HTML or exported as a file is also
- I switched from using memory-streams to using string-lists in the main YahCoLoRiZe editor.
A memory stream is still used when rendering text to RTF (Microsoft's Rich-Text-Format).
- Application of a text-effect was not picking up the original text's background color
if the first selected line was only a partial line. Fixed.
- Much work and attention was given the cut-paste and character-entry handlers for all of the
edit-boxes used system-wide. You may notice improved performance in the Wing-Editor, Main Editor,
and Find/Replace text editors.
§ April 4, 2014 – 5.83 –
Tweaked the alternate-colors effect's algorithm a bit to make the border match over several
lines of text. Tweaked my hidden monkey dialog a bit :-). All's looking good...
§ April 3, 2014 – 5.82 –
This version fixes some problems with adding effects.
1) At the end of every effect's selected zone, the program was supposed to restore
the original colors and was not (it was setting the colors present just in front
of the selected-zone). Fixed.
2) As an effect was applied, it would detect the background color at the beginning
of each line and apply that to the background color of spaces between words. That approach
is problematic in that if you have text with, say a blue border and a white background in
the body of the text, all the spaces between words will be blue after the effect has been
applied. So my compromise solution is to simply use whatever color is showing in
the main background color-panel to paint spaces in an effect's selected zone.
3) The Alternate Colors effect has been improved to look better when applied over
more than one line of text. Try it and have a look!
4) The first character in an Alternate Character effect was not having the proper color
applied in all cases.
At this point I believe I have gone as far as I can go with YahCoLoRiZe in it's present
form. Much has changed and is changing. YahCoLoRiZe converts UTF-8 for HTML
but internally still only supports 7-bit ASCII characters. That works fine for English, French
and Spanish but that's about it. The new Embarcadero RAD Studio for 64-bit machines is out but a bit pricey for a program I give away. I program in C# (Visual Studio) but porting YahCoLoRiZe (written in non-Microsoft C++) would be a MONSTER project. Porting to Linux would be difficult too since I use a lot of Win32 API calls! So this is probably the last of the time I can afford to spend on YahCoLoRiZe... But I leave it supporting Paltalk and 7 other chat-clients and having some pretty cool text effects. Chat clients need to catch up to YahCoLoRiZe! Perhaps I'll have a look at the Facebook and Google Chrome APIs if I'm bored :-) - Cheers
§ April 1, 2014 – 5.81 –
1) Added Paste Background Color to the color copy/paste menu.
2) The color paste feature in the Replace Colors effect was not working, Fixed.
3) Translated the color copy/paste menu for the French and Spanish versions.
§ March 31, 2014 – 5.80 –
1) When you were typing and hit enter you would sometimes see a "phantom space"
at the line's end. I had to insert RTF highlight0 when you press enter to fix it. 2) I
also improved the Line Number display in the lower-right corner to update as you enter
and delete lines of text. 3) After restoring defaults, my background text-entry thread
and on-change lock-counter were not being reset.
§ March 27, 2014 – 5.79 –
Added/fixed a few things: 1) Warning message appears now when you restore your default settings, 2) You can set the main window's background color now in the Tools menu, 3) Reordered items in the Tools menu, 3) Enabled Word-Wrap mode in the View menu with a warning message that word-wrap is read-only, 4) In the Processed view, if you add text with the document scrolled down, you press Show to refresh the colors and now it holds the proper position instead of resetting to the top of the document, 5) If you change the font in code-view mode it used to wash out all the highlighted red text to black, so that's fixed.
A note about word-wrap mode... you can't edit in word-wrap mode in YahCoLoRiZe due to technical issues I ran into with Microsoft's rich-edit control and the way text is buffered in YahCoLoRiZe. For chat-rooms, text is sent one line at a time and YahCoLoRiZe is configured mainly to create text for playback over a chat-network. Just use the Enter key to terminate lines and when done press Process and YahCoLoRiZe will automatically re-format the text. Don't like the way it looks? Click View->Original, change some settings or colors and press Process again. Select a block of processed text by click-dragging the mouse over it, then go to the Effects menu to add text-effects... Press the green Play button to send the text to your chat-client.
§ March 25, 2014 – 5.78 –
Here is a good example of how YahCoLoRiZe evolves: I wanted to copy a section of
this blog from Chrome and paste it into YahCoLoRiZe and look at the raw HTML source-code
(yes, I know you can view source HTML in the browser as well). So I selected a block of text
and right-click copy (CTRL-C works too) in Chrome, then did a Right-click Clear in
YahCoLoRiZe and Paste (Color). As expected, this causes YahColorize to convert the HTML
into Raw IRC-codes. Then I wanted to click the Show button and go to View->HTML. But
the HTML item was not available. You had to click Process to get the HTML view - so now
I've added the HTML and RTF Views when you only click Show.
Another way to see HTML in YahCoLoRiZe is to copy text from your browser, then type
any text into YahCoLoRiZe and hit Process, go to View->HTML. You can select/cut the
text you entered, right-click and select Paste (Color) in the HTML View and the raw
clipboard HTML (unconverted and unchanged by YahCoLoRiZe) is pasted in as HTML
§ March 23, 2014 – 5.77 –
Fixed some minor bugs. Firstly, If you edited text in the raw-codes view then switched to the RTF view it sometimes was not re-rendering the modified text and secondly, when it did re-render the text the cursor was not going to the correct position in the text. Fixed.
If there were no colors preceding the first printable character in an IRC-codes document, the RTF conversion was not adding a default color (black) to the first slot in the RTF color-table. Fixed.
Added some new things to the HTML help documentation...
§ March 22, 2014 – 5.76 –
Added a new effect called "Replace Color" that lets you pick a background
or foreground color to replace with a new color either in a selection or in the
Added the ability to copy/paste a color from any color-select panel to any other panel or
from a document to any color panel. For example, if you have a processed document, select
any text, right-click and Copy it. Then right-click on the BG color panel and click Paste to set the background color the same as that of the selected text.
You can also select a color in the raw-codes view and right-click copy that and the color
paste feature recognizes it.
Additionally, you can copy/paste RGB colors from any plain text document
as "FF0000" (red) or "00FF00" (green) or "0000FF" (blue).
Color copy/paste also works in the color blend tab and in the various effect dialog-boxes.
Fixed a bug in the pasting of copied text that contained no line-terminators. (Text copy
copied only RTF text to the clipboard at one time but now it also converts and copies an HTML
version, so when you click paste, YahCoLoRiZe now uses the HTML version - and that converter was adding a line-terminator to a copied selection of text IF that text had
no pre-existing line-terminator... as an artifact of the TStringList class [to be verbose!].
But now that I think about it, the program really ought to check first to see if the clipboard
has RTF before picking the HTML version... future note-to-self.
YahCoLoRiZe has 3,010,946 lines of code now... wow, cool beans :-)
§ March 14, 2014 – 5.75 –
Took generation of non-breaking-space strings out of my HTML encoder since the text is inside a "pre" tag.
§ March 12, 2014 – 5.74 –
Added support for Paltalk. Limitations are that Paltalk can't handle background colors (so I strip them out) and Paltalk's fonts are all fixed-pitch, which means you can't use text borders or do any ASCII art. Also, Paltalk is limited to 7 different colors per post (but it can handle RGB colors!). Here are the instructions for
I did a complete rewrite of the IRC to RTF text-converter. It is much faster now.
Note: In the YahCoLoRiZe HTML view, you can paste in HTML copied from your web-browser and it shows the HTML source-code; likewise, in the RTF view you can paste RTF text from MS Word or from the YahCoLoRiZe Processed view and the raw RTF source code is shown. Very useful for debugging!
§ February 25, 2014 – 5.73 –
Updated the command processor to handle the /cplay command for mIRC and Vortec. Here is an updated
list of available commands:
- In the main program click "View" and select "IRC Codes"
(the dialog will automatically change to the "Codes" view)
- In the main program, drag the mouse over the color you want
to change ("C#FF00FF" for example), right-click Copy it
then right-click and "Paste (Color)" it into the Find box.
- Now copy/paste a new color into the "Replace With" box or
use the Insert menu to add a color-code.
- Edit the replace color-code(s) to your taste.
- Press "Replace All" and all C#FF00FF RGB colors will be
replaced with the new color.
- In the main program click "Show" to see the new colors.
(Instructions for: mIRC & Vortec)
Clipboard paste of rich-text into the Wing-Editor had stopped working... FIXED.
The HTML converter was adding a carriage-return/line-feed after a <pre>
tag (which always inserted a line that's not supposed to be there). FIXED.
§ January 28, 2014 – 5.72 –
This is the last release for the foreseeable future... pending any reported bugs. Trinity
is now the default client. It is a full-color spectrum chat client that does not exist for a
full-color spectrum chat-network that does not exist either :-)
In the View menu you will now see "HTML" instead of "Yahoo". If you set
the Client to YahELite, the HTML view will still display the raw Yahoo-format chat-text, which
is a pseudo-html.
§ January 23, 2014 – 5.71 –
I Made changes to the mIRC and Vortec scripts. Also, YahCoLoRiZe now defaults
to the "full-spectrum" RGB color-mode on a clean install. Full-spectrum RGB mode
is indicated by "rgb" appearing to the right of the foreground, background and
wing-color panels. RGB colors and their associated effects and Blender tab only apply if
the Client is set to YahELite or Trinity! There is no uniform support among IRC chat-clients
for RGB color-protocols. The YahCoLoRiZe protocol for RGB is here.
/cx Text to be processed
/cx 0 Text to be processed using a random effect
/cx 1 Text to be processed using effect #1
/cx 2 Text to be processed using effect #2 (etc...)
/cplay <path of a text-file you want to play>