title>YahCoLoRiZe Bug List 1 < /head>
      "°º©o., YahCoLoRiZe Bug List / Web Log ,.o©º°"      


§ March 18, 2019 – 7.50 - The vertical scroll-bar was missing. Fixed in the custom YcEdit component.

§ March 9, 2019 – 7.49 - Maximizing the client area and then closing it caused max width and height to be saved in the registry. Upon running the program the next time, the client was taking up the entire screen with no system menu or grabbers at any corner to shrink the client. So two fixes were employed. 1) the default window procedure was not being called for my custom non-client area message handlers. 2) I added a check to reduce the client area height and width by 50 pixels if it was taking up the full screen.

§ February 10, 2019 – 7.48 - This is the first release of YahCoLoRiZe that is built with the community edition of Embarcadero's RAD Studio.

§ January 22, 2019 – 7.47 - I've been porting YahCoLoRiZe C++ Builder 4 to Embarcadero RAD Studio C++ Builder community edition and I found that the progress-bar was using a lot more processing power than was necessary. Fixed.

§ 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 being initialized.

§ 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 settings key.

§ 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:

  1. 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 processed.

  2. 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).

  3. 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...

  4. Copy was not keeping RTF formatted text on the clipboard because another call was calling EraseClipboard()

  5. 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).

§ 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... ycinstallscript.zip

§ 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 from here.

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 to come!

§ 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 program.

§ 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 YahCoLoRiZe.

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...

; 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

§ 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 edits.

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 font-effects.

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 is here.

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 here 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 Undo object-tree.

§ 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, Etc.

§ 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...

Other Improvements:

  1. 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.
  2. 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.
  3. Added multi-lingual support for the "Export As Web-Page" dialog.
  4. 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 E-Mail.
  5. 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 auto-optimized.
  6. 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).
  7. 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.
  8. 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.

§ 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:

  1. In the main program click "View" and select "IRC Codes" (the dialog will automatically change to the "Codes" view)
  2. 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.
  3. Now copy/paste a new color into the "Replace With" box or use the Insert menu to add a color-code.
  4. Edit the replace color-code(s) to your taste.
  5. Press "Replace All" and all C#FF00FF RGB colors will be replaced with the new color.
  6. In the main program click "Show" to see the new colors.

§ 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 source-code.

§ 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 entire document.

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 Paltalk.

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:

/cchan #NewChannel
/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 stop
/cplay start
/cplay pause
/cplay resume
/cplay <path of a text-file you want to play>

(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.


 (click to see older logs)