i.Scribe Changelog

What's new in i.Scribe 3.2 Beta

Oct 19, 2023
  • Fixed bayesian filter rebuild changing mail to unread incorrectly.
  • Fixed bayesian filter rebuild getting "stuck" and not processing mail3 email.
  • Fixed bayesian filter rebuild all function not actually writing out the final btree indexes. Sigh.
  • Fixed the openssl connections leaking socket handles when the connection fails. Eventually this would cause things like "too many files open" errors on Linux.
  • Added support for more Lgi config settings. Firstly there is Fonts.PointSizeOffset that will adjust the point size of all the system fonts used by Scribe. Then you can also set things like Fonts.SystemFont to actually override the font face and point size rather than use the system supplied font. See the actual lgi.conf file for the other tag names.
  • Linux: Fixed the install and use of a private OpenSSL copy (v3.2.0 built by me) if the system one isn't suitable. It's unbelievable that the libssl3.so that ships with Ubuntu 20 is missing important export symbols and is basically unusable. But that's Linux for you.
  • The folder select dialog now has a filter edit box. Also double clicking an item selects that path and ends the dialog (ie same as clicking 'ok').
  • Updated the scripting syntax help page with some updated type names, information about casting values and some new DOM member fields.
  • Added 2 new scripting functions to convert between colour space integers (LColourSpace in Lgi) and strings: ColourSpaceToString, StringToColourSpace.
  • Updated the release notes link on the title page to point to this page.
  • Fixed importing MBOX or EML not having the message body when the file just has bare LF line endings (not the standard CRLF).
  • Refactored the import / export API to be asynchronous. Particularly for folders which can take a longer amount of time. Having the api support callbacks when the operation is finished and return a "delayed" status to the caller is excellent. This will also tie in nicely with the Haiku branch work. Which is mostly about making all the things asynchronous.
  • Fixed the item filter to correctly show any coloured items when clicking "any" in the colour filter. Previously it would only show any of the selected colours, and colours outside that range were not shown. Ie if you set a colour via a script. Which by the way uses 32 bit ARGB (0xAARRGGBB).
  • Fixed dragging a vcalendar/vcard files to a webdav folder. Previously it would complain it's the wrong item type.
  • Fixed a crash when cancelling the account preview. Repo: click 'refresh' on the account preview and then 'cancel' before it completes.
  • Merged the 'Haiku' branch into the main dev branch. This will create some instability in the short term.
  • Fairly significant rewrite of the MBOX import parsing. Both to make it faster and more accurate.
  • Implemented import / export for contact group objects.
  • ContactGroup: Fixed 'delete' command on the context menu.
  • ContactGroup: The 'date modified' field now also appears in the item preview.
  • Rewrote the scribe export function to use the current way of processing bulk data. Gave it a nice new completion dialog.
  • Added ability to drop files onto the folder's list area on the main window. This imports them into the currently selected folder. Previously you had to drop the file onto the tree item. That still works.
  • Various scripting functions that show UI now use callbacks.
  • Help files updated to remove references to InScribe.
  • Calendar events: removed "move to ..." context menu entries that don't have name or are writable.
  • Calendar view: clicking to create an event and then cancelling the UI now deletes the orphaned event (that was never saved). And also doesn't crash anymore. Which is always nice.
  • Calendar view: added mouse wheel support to scroll vertically.
  • Calendar view: fixed rendering of multi-day events in week view.
  • Windows: The text display code now skips unicode variation selector characters.
  • Added code to string new lines from the mail subject before displaying the text in the folder list view.
  • Fixed the handling of malformed HTML in the viewer. Specifically when the = is missing between the attribute name and value.
  • Removed script and style element content from the BodyAsText mail field that is used to display the preview text. Ie when Html is converted to text.
  • Changed the starting day of the week in the appearance options now updates the current calendar view properly.
  • Fixed a bunch of implementation bugs in the RFC 2047 code.
  • The console now also catches a couple of trace messages sent before it's initialization. Particularly the path to the Lgi.json file that Scribe will use for configuration of Lgi options. This makes it a little more discoverable.
  • Some fixes to the printing of emails. Cancelling the printer selection dialog no longer results in an error message. Also for HTML printing the page number(s) are now correctly interpreted as one based indexing.
  • Made the shutdown dialog font size sensitive. Also added all it's strings to the resource file so it's translatable. Fixed some functionality issues too.
  • Fixed plain text attachments getting used as the text alternative to the HTML in a MIME message. There is also a unit test to make sure that doesn't happen again.
  • Windows: Added a menu under 'Tools' to delete all the registry settings related to Scribe.

New in i.Scribe 3.1 x64 Beta (Oct 3, 2022)

  • [Windows] Fixed the image libraries not loading.
  • Fixed finding the Resource folder.
  • Fixed the check software update.

New in i.Scribe 3.0 x64 Beta (Jul 2, 2022)

  • Removed all propriety code, like the OAUTH client secrets and anything related to InScribe keys or i.Scribe limits.
  • Set up a mercurial repository to host the source: https://phab.mallen.id.au/source/scribeopensrc/
  • The windows build is switching to vs2019, and there will be some changes to the way the redistributable is installed if missing.
  • Scripting:
  • New callback type: OnAfterMailReceive(App, Email).
  • New App object method: App.GetUri(Uri, CallbackName, UserData).
  • New App object method: App.SearchHtml(Html, SearchExpression, ResultExpression).
  • New Mail object method: Mail.SearchHtml(SearchExpression, ResultExpression).
  • Fixed handling in some contexts of expressions that use array arguments.
  • New Mail object method: Mail.DeleteAsSpam(). Fairly self explanatory.
  • Imap server UID field now sorts in integer order (instead of the default string).
  • Pop preview button in the tool bar now honours the order of accounts listed in the options. It'll preview the first pop3 account. If you want to change the default make the desired pop account first in the list with the arrows in the options dialog.
  • When an email is marked as spam, the UID is stored in the account for deletion on the next POP3 connection. However if the user elects to open the preview window and change the action from "delete" to "download" the software previously would still just delete the email. Which is just incorrect. Now it removes that email's UID from the spam list and allows it to download normally. While fixing that I also made change to the spam UID list save correctly by marking the list as dirty.
  • Added entity encoding for less than and greater than characters when wrapping and quoting HTML replies/forwards so that the HTML edit control displays them correctly.
  • Fixed the set read/unread on the mail context menu.
  • Html editor: Added right click on URL to launch in Browser.

New in i.Scribe 2.4.21 (May 11, 2022)

  • Scripting:
  • Added a ScriptsScribeScripts.h file that contains the item type and folder magic numbers. So instead of writing "GetFolder(0xaaff0002)" you can include ScribeScripts.h and then use "GetFolder(ScribeItemContact)".
  • Fixed the compiler to resolve nested #define values.
  • Also added compile time simplification of scripting #define values, if there is round brackets present in the value, and any variables also resolve to something. Otherwise the old behavior of resolving the expression at run time is used.
  • New callback type "OnLoad" will fire when the application is loaded it's mail stores and folders. Async loads of IMAP folders will happen after though. If you need a script to access a Mail3 folder on startup, this is the way.
  • Deprecated the 'MsgBox' function, use 'MessageDlg' instead.
  • Optimized the sorting of folders. One particular test case I have of ~20k IMAP email went from around 5 mins to 5 seconds. It's about getting the data into the right format for qsort_r to do it's thing.
  • Also during folder loads the loading item now shows some progress.
  • Oh and IMAP folder loads are now threaded. In that the UI doesn't lock up while the load happens. Little things...
  • Fixed the flashing vertical scroll bar when displaying text emails.
  • Fixed crash in filter evaluation when using filter values starting with period character.
  • Added remote URL calendar support back in (ie vCalendar feed). Right click in the calendar list and "Add Calendar by URL". It's read only. Although if you open a remote event, then edit and save it'll save an edited copy in your default calendar folder. Seems reasonable to me.
  • Added UI for calendar start of week setting.
  • Fixed single quotes in the 'from' header cause back slashes to appear in IMAP email.
  • Fixed multiple issues saving webdav contacts.
  • Bayesian filter now uses the spam folder path in Manage Mail Stores -> System Paths -> Spam. It was a hard coded string before.
  • Bayesian filter: If the user sends an email to someone it used to white list that email address, so any reply would not be accidentally classified as spam. That is now fixed.
  • Fixed a crash resulting from incorrect removal of CSS style comments. Thou shall not overwrite the NULL terminator on a C string.
  • Added a new mail DOM object field "ReceivedDomain" that looks up the last "Received: from" header and extracts the IP address or domain. Useful for filtering.
  • Improved shutdown behaviour for the webdav thread when loading contact and calendar items. It no longer blocks the application from quitting when in it's loading phase.
  • The find window layout doesn't glitch back and forth anymore.
  • Implemented better management of the splitter layout on the main window so that when you resize the window to hide say the split between the mail preview and mail list it keeps the splitter visible, and therefor also the scroll bar resizes to the available space. Before you would lose the splitter and the bottom of the scroll bar of the mail list. On low resolution screens this was very unhelpful.
  • Cancelling at the print preview stage doesn't cause an error dialog anymore.
  • Added a page range setting to the HTML print preview window.
  • Fixed images loading in the HTML print preview.
  • [Mostly] Fixed printing larger and more complicated HTML email. The HTML control has this feature where if it's taking too long to render it just stops. This is great for email in the preview panel so it doesn't "hang" the app while browsing email. But terrible if you want to print. So I've bumped the default max paint time to 350ms (from 250) and also defaulted it to 5000ms for printing. It's still possible that some super complex / long HTML document will take longer than that... but it's a reasonable start.
  • Large amounts of Bayesian filter processing doesn't lock the user interface up anymore. It's pushed into a queue that gets processed with a progress bar. You can even cancel it.
  • Updated the Emoji images to have more resolution and the more recently added characters.
  • Fixed the mail.bodyashtml parsing. You can configure the reply/forward formats to use that instead of bodyastext to keep the HTML formatting. Well at least the part of the formatting that the HTML edit control supports. Which is far from everything. But things like colours, font sizes/weights etc are. Things like tables and advanced formatting are not.
  • Fixed forwarded attachments so they keep their content ID and charset when copied into the new email. This means that HTML images for instance will work in forwarded email or replies. (Ie when using bodyashtml in the reply/forward format).
  • Fixed Emoji being inserted at the default character size (from the source image: 32px) in the HTML editor. Now they match the current font size.
  • The multi-threading of IMAP loading and saving has create a bug where you move an email into a folder that hasn't loaded, it overwrites it's internal state such that it doesn't remember any previous email. This should now be fixed. However if you do see this in previous versions, right click on the folder and "refresh" gets you back to a good state.
  • Fixed the IMAP thread trying to select the "(null)" folder.
  • Fixed a crash in the POP3 code. IDK how that managed to survive this long without me seeing it. Maybe cause I use IMAP pretty much full time.
  • Updated the OpenSSL library linkage to the current version: v3.0.1, which is now also the minimum version required. This specifically fixes the windows build to work with the latest OpenSSL. You will have to update to OpenSSL v3.0.1 on Windows.
  • Window: fixed a crash when a drag and drop operation gets stuck waiting for an IMAP email to load and the user initiates a second drag.
  • Also while IMAP objects are waiting to load (say for an export or dnd operation) a dialog pops up showing the user that the application is busy.

New in i.Scribe 2.4.21 Beta (Mar 4, 2022)

  • Scripting:
  • Added a ScriptsScribeScripts.h file that contains the item type and folder magic numbers. So instead of writing "GetFolder(0xaaff0002)" you can include ScribeScripts.h and then use "GetFolder(ScribeItemContact)".
  • Fixed the compiler to resolve nested #define values.
  • Also added compile time simplification of scripting #define values, if there is round brackets present in the value, and any variables also resolve to something. Otherwise the old behavior of resolving the expression at run time is used.
  • New callback type "OnLoad" will fire when the application is loaded it's mail stores and folders. Async loads of IMAP folders will happen after though. If you need a script to access a Mail3 folder on startup, this is the way.
  • Deprecated the 'MsgBox' function, use 'MessageDlg' instead.
  • Optimized the sorting of folders. One particular test case I have of ~20k IMAP email went from around 5 mins to 5 seconds. It's about getting the data into the right format for qsort_r to do it's thing.
  • Also during folder loads the loading item now shows some progress.
  • Oh and IMAP folder loads are now threaded. In that the UI doesn't lock up while the load happens. Little things...
  • Fixed the flashing vertical scroll bar when displaying text emails.
  • Fixed crash in filter evaluation when using filter values starting with period character.
  • Added remote URL calendar support back in (ie vCalendar feed). Right click in the calendar list and "Add Calendar by URL". It's read only. Although if you open a remote event, then edit and save it'll save an edited copy in your default calendar folder. Seems reasonable to me.
  • Added UI for calendar start of week setting.
  • Fixed single quotes in the 'from' header cause back slashes to appear in IMAP email.
  • Fixed multiple issues saving webdav contacts.
  • Bayesian filter now uses the spam folder path in Manage Mail Stores -> System Paths -> Spam. It was a hard coded string before.
  • Bayesian filter: If the user sends an email to someone it used to white list that email address, so any reply would not be accidentally classified as spam. That is now fixed.
  • Fixed a crash resulting from incorrect removal of CSS style comments. Thou shall not overwrite the NULL terminator on a C string.
  • Added a new mail DOM object field "ReceivedDomain" that looks up the last "Received: from" header and extracts the IP address or domain. Useful for filtering.
  • Improved shutdown behaviour for the webdav thread when loading contact and calendar items. It no longer blocks the application from quitting when in it's loading phase.
  • The find window layout doesn't glitch back and forth anymore.
  • Implemented better management of the splitter layout on the main window so that when you resize the window to hide say the split between the mail preview and mail list it keeps the splitter visible, and therefor also the scroll bar resizes to the available space. Before you would lose the splitter and the bottom of the scroll bar of the mail list. On low resolution screens this was very unhelpful.
  • Cancelling at the print preview stage doesn't cause an error dialog anymore.
  • Added a page range setting to the HTML print preview window.
  • Fixed images loading in the HTML print preview.
  • [Mostly] Fixed printing larger and more complicated HTML email. The HTML control has this feature where if it's taking too long to render it just stops. This is great for email in the preview panel so it doesn't "hang" the app while browsing email. But terrible if you want to print. So I've bumped the default max paint time to 350ms (from 250) and also defaulted it to 5000ms for printing. It's still possible that some super complex / long HTML document will take longer than that... but it's a reasonable start.
  • Large amounts of Bayesian filter processing doesn't lock the user interface up anymore. It's pushed into a queue that gets processed with a progress bar. You can even cancel it.
  • Updated the Emoji images to have more resolution and the more recently added characters.
  • Fixed the mail.bodyashtml parsing. You can configure the reply/forward formats to use that instead of bodyastext to keep the HTML formatting. Well at least the part of the formatting that the HTML edit control supports. Which is far from everything. But things like colours, font sizes/weights etc are. Things like tables and advanced formatting are not.
  • Fixed forwarded attachments so they keep their content ID and charset when copied into the new email. This means that HTML images for instance will work in forwarded email or replies. (Ie when using bodyashtml in the reply/forward format).
  • Fixed Emoji being inserted at the default character size (from the source image: 32px) in the HTML editor. Now they match the current font size.
  • The multi-threading of IMAP loading and saving has create a bug where you move an email into a folder that hasn't loaded, it overwrites it's internal state such that it doesn't remember any previous email. This should now be fixed. However if you do see this in previous versions, right click on the folder and "refresh" gets you back to a good state.
  • Fixed the IMAP thread trying to select the "(null)" folder.
  • Fixed a crash in the POP3 code. IDK how that managed to survive this long without me seeing it. Maybe cause I use IMAP pretty much full time.
  • Updated the OpenSSL library linkage to the current version: v3.0.1, which is now also the minimum version required. This specifically fixes the windows build to work with the latest OpenSSL. You will have to update to OpenSSL v3.0.1 on Windows.
  • Window: fixed a crash when a drag and drop operation gets stuck waiting for an IMAP email to load and the user initiates a second drag.
  • Also while IMAP objects are waiting to load (say for an export or dnd operation) a dialog pops up showing the user that the application is busy.

New in i.Scribe 2.4.20 Beta (Nov 20, 2021)

  • Fixed deleted email showing up in IMAP folders. And subsequently not being able to get rid of them.
  • Optimized the plain text controls to have better overall performance. Might temporarily introduce instability.
  • Fixed calculation of time zones for recurring events after the last DST change in the year.
  • Rich text editor: Fixed the insertion point of dropping images onto the document while scrolled away from the top.
  • Added button to remove email from white list when analyzing for spam.
  • Trying to copy an image from a web browser and pasting it into the rich text editor now works a bit better. Instead of trying to paste in the HTML and then failing to download the image linked in the IMG tag it checks if there is a raw image in the clipboard and uses that instead. I should fix the other case as well but walk before run.
  • Fixed the rich text control showing images as blank sometimes. This was when the image needed to be rescaled for display. Not sure how I never saw this before.
  • Removed the out of date "Api.html" file in the scripting folder. The help files are the up to date reference.
  • Fixed undefined scripting functions generating an error saying the argument count is wrong. Inferring the function does exist. Now it gives the correct function not found error.
  • Script timers now support sub 1 minute (ie seconds) time outs. It's NOT super accurate. But it's better accuracy than once a minute. Which was the previous minimum timeout.
  • Scripting functions are now not case sensitive.
  • Increased the scripting languages MAX_REGISTER from 8 to 16. Seems that it needs to be larger for more complex expressions.
  • Adding "Len(obj)" scripting function. Returns the length of a container. (Obj.Length still works too).
  • Fixed sub-expressions i.e. "(a < 1)" leaking register allocations, and thus limiting the complexity of scripts.
  • Scripting: Fixed variables with the same names as system functions causing incorrect compile errors.
  • Fixed "Export" command on the folder's context menu to work with types other than email. E.g. contacts and calendar events.
  • Fixed importing vcard files with empty lines.
  • Fixed the vcard exporter adding empty lines after the contact's photo data. Totally not related to the previous fix ;)
  • In the context of rebuilding the Bayesian word lists: Made the main app ignore requests to exit (and thus crash), made the progress dialog stay on top of the main window (at least on windows).
  • Added scripting hooks to the parent object of folder, mail, contacts, calendar events etc for "Import" and "Export". Both scripting methods have the arguments (FileName, MimeType).
  • Windows: Fixed dragging a folder to explorer (ie Desktop) and having the appropriate file appear.
  • Added scripting hooks for getting and setting all the variables on a calendar event object. See the Dom.txt for details.
  • Html view control now strips out zero width unicode characters from text when copying it to the clipboard.
  • Started looking into homoglyph attacks and building in some warnings to users. It's early days but the rich text edit and html viewer now try and warn the user about copying text with unicode characters that may be very similar looking to say normal ascii latin characters. Expect this will evolve over the next few releases and extend into other visible parts of the software.

New in i.Scribe 2.4.18 Beta (Apr 18, 2021)

  • Various fixes to streamline rebuilding the bayesian word lists for large mail collections.
  • Improvements to the IMAP backend for bulk setting of mail read/unread status.
  • Fixed tool tips in HTML documents to move when the document is scrolled or layout is updated.
  • The finder view now shows email colours.
  • The item filter now correctly hides non-coloured email when you filter by colour.
  • Fixed IMAP email going missing after restarting the software.
  • Fixed the folder item totals not updating when you select a folder.
  • Fixed the ReplyTo address not being used correctly when replying to an IMAP email.
  • [Linux] Fixed a painting error next to the status panel on the main window.
  • [Linux] Fixed some crashes related to loading images using static version of the libjpeg and libpng. Also affected drag and drop of email to folders. Basically relying on the system libraries instead of using static.
  • [Linux] Split builds into the various GLIBC versions to support Debian 10 as well as the latest Ubuntu.
  • [Linux] Fixed crashes and problems in the find window (Folder context click -> Find).
  • [Windows] Fixed windows getting stuck on the edge of the desktop.
  • New scripting function: SelectFolder - will open a folder selection dialog.
  • The SelectFiles scripting function now has a "save as" parameter to switch it to a save dialog (instead of open).
  • Fixed dropping .eml on to an IMAP folder so it's loads correctly after appending it to the mailbox.
  • The HTML viewer now converts 8bit images to 32bit, which resolves some rendering issues with alpha channels.

New in i.Scribe 2.4.17 Beta (Apr 18, 2021)

  • Added an "Always Show" button to the remote content bar. Which does the same thing as "Show" but also saves the sender's address in the remote content white list.
  • Html viewer: changed the block-inline handling to better display some test cases from Google notifications. Could potentially causes issues elsewhere, but in my limited test suite it seems to be ok.
  • [Mac] Ported over the Carbon charset conversion code to work under Cocoa. This fixes a bunch of international character display issues.
  • Html viewer: Fixed a image caching bug that would reuse an image in multiple places incorrectly.
  • Text compose control context menu now has all available filters in the Filter submenu.
  • Thread safety: Fixed the account receive thread to ask for missing passwords via the GUI thread.
  • Defaulted the stupid outlook elements to display:none in the HTML viewer.

New in i.Scribe 2.4.16 Beta (Apr 18, 2021)

  • Fixed a crash loading email attachment images with long extensions.

New in i.Scribe 2.3.16 (Apr 18, 2021)

  • Fixed incorrect display after re-ordering folder columns with drag and drop.
  • Fixed moving mail from mail3 to IMAP not removing the old email.
  • Fixed mail item context menus that allow adding filters to understand multi-mailstore folders.
  • Fixed the duplicate removal script not working with email from different back ends. Sometimes the message-ID has '<>' wrapping it, sometimes not. Updated the scripting docs to include String.Strip.
  • Fixed OAUTH2 constantly failing after the token expired for an SMTP connect. Now on authentication failure it refreshes the token so that the next attempt can succeed. (ie if the send fails with 'auth error' just try again, you'll get the webpage show up to re-auth but it doesn't get stuck).
  • Fixed a crash when reading email with a remote IFRAME in the HTML. I decided that I won't actually load and display the IFRAME if it's remote. I feel that's a bit of a security issue. But happy to discuss and change my mind if needed.
  • Re-implemented the custom contact fields as list box of field/value pairs. The delete key removed the current selection. Double click the edit a cell. Also fully supported in scripts.
  • Contact time zone drop down initializes to the same value as the edit box.
  • Added scripting function LookupContact(email).

New in i.Scribe 2.3.15 (Apr 18, 2021)

  • Windows: Fixed the "check for software update" occasionally corrupting the download. Thou shall not check the file pointer from a different thread. The M$ monkeys use the same non-thread safe function for setting the file pointer as getting it. What could go wrong? The temp file location for the software download is also now in the %tmp%Scribe rather than just %tmp%.
  • Fixed moving contacts between mail3 stores.
  • Extended the lookup of contacts, groups, calendar events and filters to include all loaded mail3 folders. At the moment I don't try and do anything smart about the filter indexes, if there are multiple folders of filters they will share indexes and potentially exhibit undefined behavior if the index matters.

New in i.Scribe 2.3.14 (Apr 18, 2021)

  • Fixed the calendar shortcut buttons in the mail window not showing up.
  • Improved multi-term item searches. The default operator is now AND rather than OR. Also quote strings to use multi-word terms.

New in i.Scribe 2.1 Build 53 (Feb 17, 2018)

  • Fixed parsing of some types of untagged data in the IMAP FETCH handling.
  • Fixed a crash rendering 8 bit images without a palette (grey scale).

New in i.Scribe 2.1 Build 52 (Jul 17, 2017)

  • Added a help button to the main toolbar and to the calendar toolbar.
  • [Win/Linux] Fixed the aspell install dictionary prompt not appearing when you use the HTML control with spell check enabled and a language selected. Cleaned up the process of selecting a language and dictionary. It's not perfect but it's better than before. As of this release you'll be able to turn on spell check immediately after install and select a language right away. Then once you ok the options dialog it'll prompt to download+install the dictionary for that language. After which you can select a particular dictionary, e.g. "en" is the language, "en_GB" is the UK English dictionary.

New in i.Scribe 2.1 Build 51 (Jul 12, 2017)

  • [RichText] Fixed URL auto detection stopping at '.' chars in the path section.
  • Added code to delete the 'Scribe.txt' file on startup if it's larger than 3 MiB. No point letting it grow too much.
  • Removed the calendar configuration dialog and replaced it with a new layout for the calendar view. Now it has the toolbar along the top, and in the left column a month widget and a list of calendars, and the existing calendar grid view filling the rest of the space. This means that users are more aware of the source calendars for the grid. They can hide/show/edit the sources without opening a dialog. And errors can be displayed inline with the main window, rather than buried. Currently the todo button doesn't work. Will fix for the next release.
  • [Linux] Added caching of zdump info for daylight savings. Makes the calendar much more responsive after the first load.

New in i.Scribe 2.1 Build 50 (Jun 27, 2017)

  • [RichText] Added some basic link detection in the rich text editor. Will probably need more work to be robust.
  • [RichText] Added code to merge text regions with the same style. This outputs cleaner HTML and fixes bugs related to links.
  • [Windows] Fixed some spelling bugs in the rich text control. Should be able to see spelling errors now.

New in i.Scribe 2.1 Build 48 (Jun 19, 2017)

  • Changed the address browse popup (recipient entry in the mail window) to show separate entries for different matching email addresses from the same contact. This allows you to select the desired email address for a contact that has more than one. I can neither confirm nor deny that this came about because I was testing sending email to myself. A lot.
  • Fixed the contact email address list not being updated after editing.
  • Mac: Fixed at least one issue causing hangs on shutdown.
  • Implemented the glue code to get some spelling supporting in the HTML editor working.

New in i.Scribe 2.1 Build 47 (Jun 19, 2017)

  • Fixed incorrect headers when sending to a group.

New in i.Scribe 2.1 Build 46 (Jun 19, 2017)

  • [RichText] Added code to scroll on a timer when clicking and dragging outside of the window content area. Useful to select large regions with the mouse.
  • [RichText] Fixed Emoji's being blank.
  • Fixed the help files only rendering the menu.

New in i.Scribe 2.1 Build 45 (Jun 19, 2017)

  • [RichText] Added some mouse over highlights to the toolbar buttons, and implemented some nice press effect when you click them.
  • [RichText] Fixed the link button not working on the mac build.
  • [Mac] Fixed the incorrect dependency on libpng15.dylib.

New in i.Scribe 2.1 Build 44 (Jun 19, 2017)

  • [RichText] Added support for spell checking. It's a bit basic at the moment, but it works.
  • [RichText] Adding implementation for undo when there there is a large multi-block selection.
  • The filter folder check boxes now update immediately.
  • Fix to HTML table layout algorithm.
  • [RichText] Fixed the context menu having the right options no matter where on the image you right click.
  • [Mac] Moved libjpeg and libpng into static libraries. This means they don't have to be downloaded and installed on demand, they are ready to go any time.
  • Added code to the auto image resizer to change the file type and extension to jpeg after resizing. e.g. for when some other image like PNG is being attached.

New in i.Scribe 2.1 Build 43 (May 2, 2017)

  • Fixed calculation of message size (wasn't properly recursing over all attachments). Both when adding and deleting attachments.
  • Fixed evaluation of strings against NULL in the scripting engine. This fixes the "delete duplicates" script.
  • Fixed a bug in the handling of new IMAP mail where it would progress through the filtering/bayesian/growl process before it was fully loaded. Thus causing the filters not to work on new IMAP mail.

New in i.Scribe 2.1 Build 42 (Apr 27, 2017)

  • [RichText] Fixed pressing enter while the cursor is on an image.
  • [RichText] Pressing enter with something selected now undoes in one step.
  • [RichText] Fixed cursor jumping lines when cursoring up/down after paste or enter.
  • [RichText] you can now paste images from the clipboard. This is very useful for screen shots for example.
  • [RichText] Fixed crash in parsing code.
  • Fixed some MIME segments that don't have file names not showing up in the attachments list. (e.g. calendar events)
  • Selecting the field "Member of Contact Group" now puts the correct "mail.From.Groups" value into the field name of the filter condition.
  • Optimizations to the script compiler: (Bool and double constants are reused)
  • Fixed the script compiler to allocate int64 constants correctly (it was assuming int32).
  • Added support for int64 arithmetic in scripts. Mostly it was doing all integer stuff in 32 bits. Now it will promote the operation to 64 bits if either side is already 64 bits (including constants). Lgi is getting a bunch of unit tests to make sure it all works and stays working.
  • Fixed the last line missing from some emails. Particularly plain text. I'm not sure how long this bug has persisted but I only noticed it recently.
  • Stopped the scripting engine dumping the disassembly of some scripts to the console.
  • Fixed contact groups not being expanded to actual addresses during sending.
  • [Linux] Fixed entry of non-ascii characters, e.g. Right ALT + a => ą.
  • Fixed lack of CSS styling in email that have @font-face selectors in the CSS (parsing bug).
  • Improved the handling of some broken CSS and HTML cases.
  • Fixed parsing of GPG key lists with multiple address lines per key.
  • Refactored the spell check code to not crash in the case where the source window goes away while spell check tasks are in progress. There is a new underlying Lgi thread event model that is safe to use even if either the GUI view or underlying thread is destroyed. And the code has been migrated to that.

New in i.Scribe 2.1 Build 41 (Mar 9, 2017)

  • Fixed forwarding email while using the rich text control.
  • Added some image support to the rich text control. You can add images via drag and drop. The right click menu has options to resize, rotate and flip the image. Editing around the image is still not fully implemented. So while I work on that I'd suggest adding images after doing all the editing of text.
  • Added undo support to pasting content in the RTC while having something selected.
  • Added a 3 column layout mode: folders, item list, preview.
  • Added the item subject/name to the window's title bar for: Filters, Calendar Events, Contacts and Contact Groups.
  • Fixed setting an IMAP mail's colour using the right click menu trying to re-append the message to the mailbox. It now just updates the meta data.
  • Fixed the MoveThing scripting function.
  • Fixed link detection overrunning the end of the text compose buffer. This wouldn't causes a crash because it was read only. But still.

New in i.Scribe 2.1 Build 40 (Feb 9, 2017)

  • Fixed progress dialogs (potentially) not working properly.

New in i.Scribe 2.1 Build 39 (Feb 2, 2017)

  • Fixed attaching files to new email that hasn't been saved yet.
  • Fixed the image resizing on attachment option leaving 0 byte files when the images dimensions or size are under the threshold.

New in i.Scribe 2.1 Build 38 (Jan 24, 2017)

  • Fixed folders with unread items not updating the screen when renaming.

New in i.Scribe 2.1 Build 36 Beta (Jan 11, 2017)

  • Fixed "BCC" addressed ending up in the Cc field.
  • Expanded the rich text control's Emoji palette to include all the characters. Not grouped particularly nicely but at least all available characters are there.
  • Rich Text control: Added some very minor undo functionality. Basically you can add characters and then undo/redo the typing. The architecture I'm using should allow for full undo/redo but there is a lot more implementation to go.
  • Implemented conversion between text and HTML while editing email. The way this works is, the user starts off editing the email in the default control (according to Edit -> Use HTML Editor) with the reply content or signature for the current identity loaded into the control. If the user decides they want to switch controls (Text->HTML or HTML->Text) then the current content is converted to the other control when you switch tabs. If the user switches back to the original tab without touching the content, everything is still the same. But as soon as the user EDITS the content in the new tab, they lose the original in the other tab (it's stale anyway). E.g. the user has HTML editing on, they create a reply to an email, the mail window shows the HTML tab/editor, the user clicks the text tab, the HTML is converted to text and loaded into the text tab/control. The user can click back to the HTML tab without losing the formatting, but if they start editing in the text tab the HTML formatting is lost and the email becomes plain/text. At that point if they switch to HTML again the formatting is gone, but they can still edit the text and add styles. The email has become text/html again. When the user sends the email the control that was last edited becomes the content of the outgoing rfc822 message.

New in i.Scribe 2.1 Build 35 Beta (Jan 4, 2017)

  • Email address list parsing fix.
  • [Linux/Gtk] Fixed crash when drag and dropping for the 2nd time.
  • Tweaked some layout issues in the Contact window.

New in i.Scribe 2.1 Build 34 Beta (Dec 29, 2016)

  • Fixed local variables being incorrect when calling script functions.
  • Added MessageDlg to the scripting system functions.
  • Added break points to the scripting debugger window. They don't persist between sessions thought.
  • Changed the available commands in the scripting debugger to "Next Instruction", "Next Line", and "Step out of function" which more closely follows the available debugging actions.
  • Added support for dropping into the script debugger on a script run time error. Also created a new option in File->Options->Other->Debugging to turn on the script debugger. This means when a script has an exception the debugger is shown. Otherwise an error is printed to the console, or the script error bar appears on the main window. The default is "off".
  • Rich Text: Added support for Emoji. There is a basic palette of faces available but I haven't had time to extend the UI to encompass all available Emoji yet. However you should be able to paste them in from elsewhere ok, and edit them in place.
  • Rich Text: [Windows] Fixed handling of characters >= 0x10000 in the rich text editor.
  • Rich Text: Fixed the selection extending to the end of the document when the selection edge coincides with the end of a line.
  • Rich Text: [Mac] Fixed the cursor disappearing when not at column 0.

New in i.Scribe 2.1 Build 33 Beta (Dec 29, 2016)

  • Build33:
  • Fixed resetting the HTML reply/forward formats.
  • Fixed the scripts/Dom.txt being empty (artifact from moving to Python3 recently).
  • Minor improvement to the look of rich text toolbar.

New in i.Scribe 2.1 Build 32 Beta (Dec 29, 2016)

  • Fixed more crash bugs in the parsing of email name/address pairs.
  • Changed the HTML format controls in File -> Options-> General -> Reply/Forward format and File -> Options -> Accounts -> Identity -> Signature to the new Rich Text control. The escape characters for fields are .
  • Implemented code to convert the HTML reply/forward format during reply/forwarding while in rich text mode. The plain text handler would mangle all the SGML elements.

New in i.Scribe 2.1 Build 31 Beta (Dec 29, 2016)

  • [Windows] Fixed out of buffer (and similar) errors causing a CRT exception which would quit the process. This looks like a "crash" but in realty the software could continue and keep working if there was an exception handler set. (This is bad design on Microsoft's part, by making the default behaviour fatal rather than benign).
  • Added a lot of rich text editing implementation. Replaced the plain text controls in the signature and reply/forward formats with the rich text control. It's not there yet, but it's on the way.
  • Fixed the parsing of the "To" field not to get hung up about single quotes.
  • Added code to combine CSS font sizes (XXSmall, XSmall, etc) with a percentage when resolving cascading styles.

New in i.Scribe 2.1 Build 29 Beta (Dec 2, 2016)

  • Fixed email replies having a "multipart/mixed" root MIME Content-Type even for simple one segment "text/plain" messages. I really don't know how that bug persisted for so long without someone complaining.

New in i.Scribe 2.1 Build 28 Beta (Dec 2, 2016)

  • Refactored the code to save the mail meta data fields "Colour" and "Label" so they don't cause existing IMAP mail to be saved from the UI layer (possibly damaging them).
  • Added code to copy the label when moving mail between different mail stores. (This change also fixes IMAP mail being corrupted by changing the label)
  • Re-wrote the code that loads and saves the options file to be more resilient to corrupt data and crashes. It aims to do 2 things: 1) When loading the options file, it actually scans the whole folder for potential backups, and attempts to load "ScribeOptions.xml" first. When loading any given file it checks for the "accounts" and "mailstores" elements which should exist in any valid options file. In the next release I'll make it save to a temp file first, then moves the existing file to a backup name, and then the temp file is renamed to the actual options file name. This means if the save crashes it doesn't leave an empty or corrupt file for the next session to find.
  • Removed © and ® from the emoji list. They now render in the normal font of the email.
  • Fixed a memory corruption bug in the mail3 back-end when storing new mail (and possibly other places). It would manifest as a crash during POP3 downloads.
  • Fixed an issue passing arguments to iconv. Probably only affects the Linux build.

New in i.Scribe 2.1 Build 27 Beta (Nov 23, 2016)

  • Fixed setting the colour in an IMAP mail window's fields tab changing the message content. It now behaves the same way as the context menu way of doing it.
  • Fixed the fetching of IMAP mail that includes NULL characters in the body. e.g. flate encoded attachments. Previously it would hang the IMAP thread (not the whole app).
  • Fixed moving email between separate mail3 stores. The reference to the email is now removed from the source folder correctly.
  • Made a cross mail store "move" operation (which is really a copy + delete) to delete the old object completely instead of moving it to the trash. This makes for a more logical user experience. The software does allow for errors in the "copy" part of the operation to block the "delete" part (so worst case you end up with 2 copies). Even if the "copy" is delayed (like when writing to an IMAP store)
  • Replies to email now get saved to the Outbox of the mail store attached to the "From" address.
  • Email sent from the Outbox of the non-default folder now gets moved to the local Sent folder.
  • Fixed a crash in the display of the "To" field in the main window mail list when there are lots of addresses (and just the right number of bytes).

New in i.Scribe 2.1 Build 26 (Nov 12, 2016)

  • [Windows] Fixed Sent To Recipient context menu giving the error: No valid 'From' email address in parameters or options file.
  • [Windows] Fixed setting the client as the default so that Firefox will use Scribe in Windows XP.
  • [Windows 10] Fixed flickering cursor over edit boxes.
  • Made the IMAP logging only log if File -> Options -> Other -> Debug Options -> Connection Log Format is set to something other than "None". *slow clap*
  • Fixed a crash in the Bayesian filtering interacting with new POP mail.

New in i.Scribe 2.1 Build 25 (Nov 2, 2016)

  • Fixed email with emoji in their text (and no HTML) showing up blank when you open them in their own mail window.
  • [Windows] Fixed dragging email and contacts to an explorer folder.
  • Fixed not being able to delete attachments from an email.
  • Fixed the missing "..." button to set the image for a contact.
  • Made the focus return to the list of emails after editing or adding an email address in the contact window.

New in i.Scribe 2.1 Build 24 (Oct 27, 2016)

  • Fixed processing of some IMAP flags so that new email that is fetched from the server has the right read/unread status.
  • Fixed setting an IMAP email to unread so that the server is aware of the state change.
  • Added a "refresh" command to all IMAP folder's context menu. This updates the contents according to whats currently on the server. Sometimes things can get out of sync if more than one client is accessing the folder.
  • Imported updated German translation.
  • Added all the UI strings and error messages to Scribe.lr8 so they can be translated.

New in i.Scribe 2.1 Beta 22 Beta (Oct 24, 2016)

  • Added the ability to drag and drop filter condition nodes around. Previously you had to recreate them by hand in a different location.
  • Fixed the reply/forward flags not getting set sometimes. The IMAP backend would lose the flags not support by the IMAP protocol. However now I store non-server flags in the local metadata.
  • Moved the Thunderbird import search folder up one level to capture other mailboxes.
  • Fixed Aspell dictionaries not being usable right after installation. Previously you had to restart the software for them to work. Internally to Aspell there is a list of lists, including a list of dictionaries. The empty list of dictionaries from before the installation was cached so I had to come up with a way to clear the cached list and get it to rescan the disk.
  • SSL connections might be a little more robust now. I changed the way that non-blocking connections are created because old method was a bit flaky, especially in release mode. Personally I think the issue is a bug in OpenSSL but I'm not about to start bug fixing OpenSSL. I just want Scribe to work with vanilla builds.

New in i.Scribe 2.1 Beta 21 (Oct 11, 2016)

  • Fixed enter key now starting a search in the find dialog.
  • Fixed the find dialog progress text being clipped (layout issue).

New in i.Scribe 2.1 Beta 20 (Oct 11, 2016)

  • Fixed the potential for a hang in the static text layout code. It could happen if it encounters certain badly encoded UTF-8.

New in i.Scribe 2.1 Beta 19 (Oct 11, 2016)

  • A more specific SSL error from within OpenSSL now bubbles up to the console or account log if a connection can't be made. I noticed this when certain remote images weren't loading that should be loading. The exact error is:
  • SSL routines:SSL23_GET_SERVER_HELLO:sslv3 alert handshake failure:.ssls23_clnt.c:762:
  • Splendid.
  • Now the actual fix for the previous item's error message is to use SNI. So I've added that to the OpenSSL client implementation in Scribe. This should resolve failed connections to servers that require SNI.
  • Fixed the size of images in the HTML control that are "inline block".
  • Fixed the calendar recur button crashing the application.
  • Fixed not being able to click items in the calendar view.
  • Fixed the folder properties dialog disappearing immediately.
  • Fixed the MBOX export via drag and drop to work correctly on XP. It no longer supports showing the progress (the total size is unknown at the start) as it runs but it does export the right data from a Mail3 folder. What was required was creating a file drop of unknown size. If you try it from an IMAP folder, make sure all the email is downloaded first (scroll through the whole folder, and then wait for the account to be idle). This limitation should be removed in a later build.
  • Fixed the positioning of text in the calendar view. It now detects how much space is available and insets the text appropriately. So the year, month and week views all look good.
  • Made the Aspell dictionary path generation a little more robust.

New in i.Scribe 2.1 Beta 18 (Oct 11, 2016)

  • Fixed black mail composition window when replying to emails that include Emoji.

New in i.Scribe 2.1 Beta 17 (Oct 11, 2016)

  • Fixed the Aspell data path to point to the right location ([ScribeInstall]/Aspell/data) for desktop installs.
  • If an Aspell dictionary fails to install Scribe now deletes the partially created dictionary folder. This allows for a clean re-install of the dictionary later. Better to either have a complete install or none, rather than leave it half finished.
  • Fixed an error in decompressing bz2 archives that would cause some dictionaries to error out during installation.
  • Fairly major rewrite of the replication engine to not use a separate thread. The backend and UI API's aren't particularly thread safe, so it was a recipe for crashes. The implementation now uses messages and a stack of outstanding operations than need completing. This cause the UI to lag a bit while the copy is running but it hopefully will be more stable in the long run.
  • Tree control rendering now uses iterators which will hopefully make it more resilient to crashes.
  • The on drop folder code now uses the correct verb (move/copy) in the dialog asking whether the user wants a sub-folder or not.
  • Made the replication (folder copy) progress dialog always on top.
  • Fixed a crash when deleting an IMAP folder.
  • Fixed sub-folders missing in the folder tree after a folder copy between different mail stores. They would appear after a restart of the software previously.
  • Changed the way mail/calendar/etc windows are closed before shutdown. Made it much simpler and hopefully less likely to crash.
  • Fixed a crash when re-sending an email.
  • Fixed email with blank bodies display the previous email's content in the preview pane.
  • IMAP accounts are now available as source and destinations in the replication dialog.

New in i.Scribe 2.1 Beta 16 (Oct 11, 2016)

  • Fixed the import of an MBOX file to a folders. Previously it would create a single blank email.
  • converted the export of a folder to an MBOX file to a more standard file copy from the view point of the user. (There was a reason I didn't do this earlier, it's much harder than it looks)
  • Re-implemented the way images are resized when attached to email to avoid crashes. If there are still images being resized when the user closes the window, tries to send the email or save and close a warning message appears in list of panels with a Cancel button. Once the images are resized the original request action is taken. I've also added a right click menu to the attachment itself to manually kick off a resize.
  • Fixed IMAP root folders not remembering their expanded setting from the last session.
  • Aspell language installs now work even if a dictionary was previously selected in the options. For the install to function correctly the "lang" config in Aspell needs to be an actual language (e.g. "en" for english) rather than a dictionary (e.g. "en_GB"). The install now explicitly sets "lang" to the base language.

New in i.Scribe 2.1 Beta 15 (Oct 11, 2016)

  • GnuPG: Added implementation for the "Attach my public key" option.
  • Fixed some table layout issues.
  • Fixed the behaviour of moving objects between different backend stores. The old behaviour wrote the object to the new mail store, and immediately deleted the old object. If the write failed you'd lose the object altogether. Now it writes the object to the new store, waits for the successful "OnNew" event to come back and THEN deletes the old object. The worst case is you have 2 copies of the object instead of none.
  • The mail window now has tabs for both plain text and HTML. You can switch back and forth to see the different versions of the body. It will obviously select the default alternative according to the appearance option. The tab's text will bold when there is content on that tab. Just like the Attachments tab. If the mail window is opened in edit mode the default tab is the selected editor. At the moment there isn't a functional rich edit control, so there is a message to that effect on the HTML tab in edit mode.
  • Added user submitted Ukrainian translation.
  • Fixed renaming system folders (Inbox/Outbox etc) causing lots of "(MailStoreName)/(FolderName)" appearing on each the software is started.
  • Fixed the elevated permissions updater failing to install files the install folder due to random unicode characters on the end of the file names.

New in i.Scribe 2.1 Beta 14 (Oct 11, 2016)

  • Restored the lost code that set the reply/bounce flag after sending an email, that broke in Beta13.
  • Fixed 2 emails appearing in the sent folder after sending. (Pre-conditions: user hasn't clicked on Send folder in this session, Send folder is initially empty).

New in i.Scribe 2.1 Beta 13 (Oct 11, 2016)

  • Rewrote the GnuPG support for v2.1. The user interface code is entirely new and much easier to use. The back end now support proper MIME trees in both IMAP and Mail3 storage. So the client now creates correct MIME messages that include the right root node MIME type. The whole message including attachments is encrypted as a RFC822 stream rather than just the body in v2.0. The feature has meant removing the flat format mail envelope used to pass data to the SMTP library. This is a fairly significant change and I except some things might break temporarily. The new code uses the existing GMime library (used elsewhere, like the IMAP back end) to encode the object tree into a RFC822 message which is then passed to the SMTP code.
  • The Mail3 back end now only stores the internet headers of a mail message in the root MIME segment instead of duplicating it in the mail object itself. This reduces the storage overhead of a message. I won't remove the DB field in the mail table just yet, I'll wait to piggy back that on some other schema change. The field will just be saved as empty for the moment. The IMAP back end already does this so I felt it was a fairly safe change.
  • I re-did the layout of the mail properties window. Moving the check boxes into 2 columns. I've also added an inspect button which opens an inspection window that has 3 columns. The first shows the tree of objects in the back end (A Mail root node, and then a hierarchy of MIME segments under that). Clicking on any of the nodes in the tree shows a list of fields in the middle column, and clicking on those fields shows the actual value in the 3rd column. I don't know why I didn't do this earlier, saves me guessing what data is in the mail object tree. Might be useful for script writers or debugging in general.
  • Added the inspect option to the context menu of an email.
  • Removed the File -> Plugins window, which is no longer needed for anything. Also some behind the scenes threading for loading the plugins in the background.
  • Implemented special case lossless storage of RFC822 messages in the mail3 back end for signed messages. Currently the MIME segments are decoded and stored in binary blobs per attachment. Because the original MIME encoding is lost in that process any attached signature can't be checked. So I have created a special case for signed messages where they are stored in a single record, the headers and the original RFC822 body are untouched. Then at run time, when the message is loaded, an extra step to parse the MIME into the normal tree of segments is added. So it appears to the UI levels as if nothing has changed. However it is a little slower for signed messages, and takes a bit more memory. Such is life.
  • Fixed the mail headers display getting smaller vertically than it should when resizing the preview panel in the main window.
  • Fixed HTML elements with "display: none" contributing to table layout in the HTML control. This fixes the "To:" addresses getting all squished up in a thin column in the mail preview headers when there are large (hidden) mime types to display in the right hand column.

New in i.Scribe 2.1 Beta 12 (Jul 15, 2016)

  • Fixed the scripting engine not compiling the correct byte code for various l-value situations.
  • Implemented support for calling custom script object member functions.

New in i.Scribe 2.1 Beta 11 (Jul 15, 2016)

  • Fixed display of some PNG's with an alpha channel.
  • [Windows] Fixed the display of Unicode in the native controls. This was only a problem in v2.1.10 because of the move to native controls for Button, Checkbox, Radio groups and Combo box. The fix was moving the whole build to using UNICODE. Which might break Win9x support. We'll see.
  • Fixed positioning of Combo boxes in the advanced options.
  • [Windows] Fixed the layout and initialization of the font selection dialog.
  • [Windows] Fixed saving of enum values in the advanced options.
  • Added code to display "(no value)" when an enum field in the advanced options is not set to a valid value.
  • Updates to the help files.
  • [Windows] Fixed the toggle buttons in the Contact window to open and close the address fields.
  • Fixed the listing of dictionaries in the spell check options. The list of dictionaries is only available AFTER setting the language and allowing the dictionaries to install.
  • The Aspell data and dictionaries folder is now relative to the location of the ScribeOptions.xml file.
  • Spell dictionary installation is now triggered via the capability install bar appearing on the main window. This allows the user to confirm they have an internet connection before proceeding.
  • Reduced the latency of the spell thread responding to requests from the GUI thread.
  • Added new script hooks called "OnBeforeInstallBar" and "OnInstallComponent". These allows scripts to hook the capability install process, both at the red capabilities bar level and when actually doing the install of a component. The OnBeforeInstallBar callback can modify the actions and message presented to the user. The OnInstallComponent callback can do the install itself, or pass the responsibility back to the system installation mehods.
  • Changing the spelling language and/or dictionary in the options now closes the spell thread and re-initializes it with the new settings. If the language isn't installed at that point it will throw up a capability install bar. If the user selects to download, they can see the progress of that by opening the console.
  • For example:
  • .CodeSpellCheckAspell.cpp:777 - Dictionary for 'es' install attempt 1
  • .CodeSpellCheckAspell.cpp:589 - Downloading 'ftp://ftp.gnu.org/gnu/aspell/dict/es/aspell6-es-1.11-2.tar.bz2' to 'C:/Users/Matthew/AppData/Roaming/Scribe/Aspell/dict/esaspell6-es-1.11-2.tar.bz2'
  • .CodeSpellCheckAspell.cpp:684 - Decompressing 'C:/Users/Matthew/AppData/Roaming/Scribe/Aspell/dict/esaspell6-es-1.11-2.tar.bz2'
  • .CodeSpellCheckAspell.cpp:684 - Decompressing 'C:/Users/Matthew/AppData/Roaming/Scribe/Aspell/dict/esaspell6-es-1.11-2.tar'
  • .CodeSpellCheckAspell.cpp:684 - Decompressing 'C:UsersMatthewAppDataRoamingScribeAspelldicteses.cwl'
  • .CodeSpellCheckAspell.cpp:854 - Aspell: Dictionary for 'es' installed OK.
  • .CodeSpellCheckAspell.cpp:509 - Aspell initialized for language 'Spanish' (Dictionary: (null))

New in i.Scribe 2.1 Beta 10 (Jul 15, 2016)

  • Fixed the mark unread (ctrl+space) function not working on some email stored in a Mail3 folder.
  • Fixed some issues with the initial syncing of local and IMAP folders.
  • Implemented renamed IMAP folders.
  • Added a process to the installer creation script to generate DOM object field and method documentation directly from the source code. So it's always up to date with the actual binary that is currently installed. This is opposed to the horribly out of date web version. I will gradually grow the generated doc to include more verbose descriptions of things.
  • Removed/updated links as necessary in the About dialog. A lot of the plugins are not built in directly to Scribe and thus don't need installing or their own link.
  • Changed the plugins link in the Help menu to a link to the tutorials.
  • Added normal all the normal email addresses to the list in the "Reply To" combo box. Seems useful.
  • Fixed the Reply-To header being added even when the check box is not set.
  • [Windows] Fixed the Error: couldn't create system font. message on start for Windows XP.
  • [Windows] Re-implemented some of the controls using native common controls: Buttons, Check boxes, Radio groups + buttons and Combo boxes. This makes the app feel more like it belongs on windows. However in the short term it might break some functionality.
  • Replaced the app icon and toolbar icon scheme with a new set designed to match XGate (which bundles i.Scribe).
  • Fixed a crash when scripts write to the console. Basically I had to make sure the text insert is only done in the GUI thread. I had a class for that set ready to go, just had to use it.
  • Added DOM access to the accounts list. You can enumerate all the accounts, access the individual fields, create new accounts etc.
  • Added OAUTH2 to the authentication options in the Account receive user interface. This allows you to force OAUTH2 as the authentication method if supported.
  • Added OAUTH2 support to IMAP4 when connecting to imap-mail.outlook.com.
  • [Windows] Fixed 3rd party applications not being able to load the Scribe MAPI DLL.
  • [Windows] Fixed handling of MAPI recipients passed to the MAPI DLL where the address is in the Name field instead of the Address field.
  • [Windows] Fixed the MAPI DLL logging to fall back to the AddData Scribe location for logging if the install folder is read-only.
  • [Windows] The uninstaller now removes the entries to itself in the registry.
  • [Windows] Fixed the "remove email and settings" uninstall option to actually delete the right folder: ~AppDataRoamingScribe.
  • [Windows] Fixed a file copy bug in the Updater component that would elevate Admin permissions to install files to normally read-only locations such as the "C:Program Files (x86)MemecodeScribe" install location. The problem would appear as some random characters at the end of the file name string when the error was report via a dialog box.
  • Fixed the Options -> Appearance -> Load HTML Images option to actually block network requests when switched off.
  • Re-wrote the support for showing remote content in emails. The show images button in the mail preview headers has been deleted and replaced with a "To protect your privacy Scribe has blocked the remote content in this message." bar that appears between the headers and the content. It give the user the ability to show the content by clicking a button. If the user clicks that button the message has a flag set that will always show the remote content regardless of system appearance settings. There is still an option in Options->Appearance->Reading Email called "Automatically load remote content" that sets the default behaviour for email without the show remote content flag set. With that setting there is now also a whitelist and blacklist of senders that can be accessed via the "..." button next to show remote content setting.
  • Fixed the hiding of the folder tree when sending an email on the same account that also has an IMAP(full) connection.
  • Fixed some HTTPS images not displaying.

New in i.Scribe 2.0 Build 74 (Feb 12, 2016)

  • Fixed a crash in the mail3 serialization code.

New in i.Scribe 2.1.3 Build 547 Beta (Dec 28, 2015)

  • Back ported 4 bit PNG support from trunk.
  • Fixed a NULL ptr exception in the CSS handling.

New in i.Scribe 2.0 Build 73 / 2.1.2 Build 511 Beta (Dec 18, 2015)

  • Back ported 4 bit PNG support from trunk.
  • Fixed a NULL ptr exception in the CSS handling.

New in i.Scribe 2.0 Build 72 (Dec 17, 2015)

  • Fixed a bug in the fix from Build71.

New in i.Scribe 2.0 Build 71 (Dec 17, 2015)

  • Fixed incorrect parsing of "To" recipients when reading from a mail3 database.

New in i.Scribe 2.0 Build 70 (Dec 16, 2015)

  • [Mac] Fixed illegal characters being allowed into the default file name for the save as dialog.
  • [Windows] Fixed Unicode characters being excluded from the file name for the save as dialog.

New in i.Scribe 2.1.1 Build 507 Beta (Nov 4, 2015)

  • supports mail3 and IMAP

New in i.Scribe 2.0 Build 69 (May 22, 2015)

  • Added Korean translation.
  • Added draft OAUTH2 implementation for IMAP. This supports Gmail only at this point. I will be adding other services as I get time. Email me if you want a specific service added.

New in i.Scribe 2.0 Build 68 (Apr 20, 2015)

  • Fixed handling of server response during IMAP "AUTHENTICATE PLAIN" mechanism.

New in i.Scribe 2.0 Build 67 (Mar 28, 2015)

  • Fixed the list view sometimes scrolling to the bottom when selecting a folder.
  • Fixed Reply-To header not being used in mail3 folders.
  • [Windows] Fixed invalid file name characters breaking the Attachment save functionality.
  • Fixed the item filter only working in "Folder On Left". Now it works in all Layout modes.
  • Updated the build of iconv to the same compiler as Scribe. This should fix an occasional crash on shutdown.

New in i.Scribe 2.0 Build 66 (Feb 24, 2015)

  • Rewrote the options save code to fallback to desktop mode (Options stored in $APPDATA\Scribe) rather than silently fail. This also includes fairly complete logging of the errors and some new dialogs if things go horribly wrong.
  • Added code to detect that the app is installed in the "C:\Program Files" folder tree and assume that means Desktop mode (i.e. storing the options and so on in the $APPDATA tree).

New in i.Scribe 2.0 Build 65 (Jan 21, 2015)

  • Back ported the async image crash fix from v2.1.

New in i.Scribe 2.0 Build 64 (Dec 4, 2014)

  • Added options to bayesian spam filter to "delete attachment" and "delete spam from server", defaulting to Off. These were previously on by default and not adjustable.

New in i.Scribe 2.0 Build 63 (Dec 2, 2014)

  • Added options to bayesian spam filter to "delete attachment" and "delete spam from server", defaulting to Off. These were previously on by default and not adjustable.

New in i.Scribe 2.0 Build 62 (Oct 17, 2014)

  • Fixed importing various text files (e.g. Contact vCards). Added warning on error to the contact import.
  • Fixed the leave on server setting defaulting to false when opening the UI.
  • Fixed setting the label using a filter.

New in i.Scribe 2.0 Build 61 (Sep 16, 2014)

  • Fixed a crash on shutdown when loading images over HTTPS connections.

New in i.Scribe 2.0 Build 60 (Aug 14, 2014)

  • Fixed the MAPI implementation to send a basic email. The build broke when I went to vs2008 and it's been broken ever since. None of the functions were exported correctly and the initialization didn't take into account portable/desktop mode. Now it should be fairly robust. And it even has proper logging of errors to 'ScribeMapiLog.txt' in the same folder as the exe/dll.
  • Fixed the options file getting deleted when Scribe hasn't fully started and needs to quit. This can occur during the MAPI send mail function. And probably other cases as well.

New in i.Scribe 2.0 Build 59 (Jul 21, 2014)

  • Fixed a problem with the recipients crashing fix from build 58.

New in i.Scribe 2.0 Build 58 (Jul 21, 2014)

  • Fixed bare LF characters creeping in SMTP streams (the debug code from last time picked it up).
  • Fixed lots of and lots of recipients crashing the client when you select a folder.

New in i.Scribe 2.0 Build 57 (Jul 4, 2014)

  • Fixed a bug that caused sending to fail over SSL connections (again... a fix to the previous fix)

New in i.Scribe 2.0 Build 56 (Jul 2, 2014)

  • (Hopefully) fixed a intermittent crash during installing optional components.
  • Fixed the wrong version of the libjpeg component downloading with the current release.
  • The installer now removes Lgi*.dll during install. This should eliminate old DLLs causing problems.

New in i.Scribe 2.0 Build 55 (Jul 1, 2014)

  • [InScribe] v2.0 final build: only v2.x keys accepted from here on in. I may choose to back port some critical fixes from the trunk (v2.1), but this is the stable build from now on.
  • [InScribe] Added code to automatically select the first configured SMTP account if none is selected.
  • [InScribe] The code now strips off leading and trailing whitespace from the key and name when checking the user has purchased the software.
  • Made the account settings dialog a little wider to show all the fields by default (instead of having to resize it to show the receive account type combo).
  • Made various receive account settings disabled when they are not relevant. (e.g. IMAP accounts don't need "leave messages on the server" etc.
  • New Thunderbird Address Book import: removed all the broken Mork parsing code and replaced it with LDIF import code. This means you have to export from Thunderbird to a file, and then import that file. But it works well now.
  • Fixed the help files having blank content till you scroll.
  • Ldap plugin: made the plugin statically link in the LDAP code, no messing with extra DLL's. Less to go wrong.

New in i.Scribe 2.0 Beta 53 (Jun 16, 2014)

  • Fixed attaching files that aren't images.
  • Removed some code to keep track of the current mail between selecting folders. Seems to be playing up a bit.
  • Fixed display of certain types of GIFs in HTML that have transparent regions and are also not displayed at their original size by the HTML. (The resample code now supports 8bit + alpha).

New in i.Scribe 2.0 Beta 52 (Jun 12, 2014)

  • Fixed loading CMYK JPEG's.
  • Added feature to resize images when attaching to an email. The options are currently in the advanced section. There are separate px (dimension) and KB (size) maximums.

New in i.Scribe 2.0 Beta 51 (Jun 5, 2014)

  • Fixed the PNG reader from leaking enough memory for the whole image. Doesn't matter too much for a few small images, but if you have some really heavy HTML email it starts to hurt.
  • Made the edit controls for port settings in the account dialog consistent between the send and receive side. They are now both discreet controls on the same row as the server field that have empty text saying what the default value is.
  • Added empty text prompts to the account server fields

New in i.Scribe 2.0 Beta 50 (Jun 5, 2014)

  • Made the HTTP image loader popup a capability bar to ask the user to install the zlib library if the HTTP stream is compressed. (Instead of just silently failing)
  • Made the "copy log to clipboard" menu item translatable. Also made it put proper new line characters in the text.
  • Removed the broken OAUTH implementation so that IMAP logins don't try and use it.
  • [Windows] Removed .exe packing in the installer to allow crash debugging.

New in i.Scribe 2.0 Beta 49 (Jun 5, 2014)

  • Made all the script execution time warnings use FileName:LineNumber as the reference instead of the current instruction pointer. This means you can trace back to the source easily.
  • Made all scripting operators safely handle the case where only one argument is a DateTime object (i.e. not crash).
  • Fixed an occasional crash in the scripting engine when right clicking an email.
  • Made the jpg and png libraries stay loaded for the lifetime of the application. They were being loaded/unloaded per image before. Caching on the OS side would generally make that fairly cheap, but it seems more sensible just to leave them loaded as a singleton object. Even if it's just for my sanity, as it clogs up the debugger Output pane.
  • Fixed some parsing of CSS border styles and added better CSS background image support to the HTML control.
  • Fixed serialization of message IDs on IMAP mail. This only happens when the source email has no message ID in it's headers, Scribe will create a message ID.

New in i.Scribe 2.0 Beta 48 (Jun 5, 2014)

  • Fixed the IMAP fetch mode. It's been broken for a while, using old IMAP code that hadn't been testing in a long time and had rotted in the changes to support IMAP full. I've re-written the relevant functions to use the current API and tested it a bit.
  • Made a few strings here and there translatable.
  • Re-wrote a lot string handling to not overflow their buffers in an ongoing effort to improve security and malicious or overly large input handling.
  • Scripting: Fixed "!Var" in an expression modifying the variable's value instead of operating in a register.

New in i.Scribe 2.0 Beta 47 (Jun 5, 2014)

  • Fixed a hang when you add the "From Contact" field to a mail folder.
  • Fixed sorting of mail3 folders.
  • Fixed a crash after deleting a referenced image in an email that used HTML and then hitting save.
  • Fixed loading grey+alpha PNG's.
  • Fixed HTML layout issues.
  • [Windows] Re-wrote the registry handling to be aware of permissions. Modern windows don't allow write access to the registry by default. A lot of Scribe's registry stuff was just silently failing. I've added a new option to control whether Scribe will register itself as a windows client. If that's on, and the software can't write to the registry it throws up a red missing capability bar on the main window prompting you to re-run with admin rights or turn off registering as a client.
  • Fixed bounced email having their from address as yourself instead of the original sender.
  • Fixed conversion of wingdings characters during HTML to text (say when replying or forwarding).
  • Fixed usage of Unicode in HTML src and href attributes when the charset specified doesn't support Unicode.
  • Added '(Password saved)' to the password controls when the user has stored a password. When the user clicks into the control that text is erase and they can enter a new password.
  • Made the behaviour of missing folder files more obvious with a better error message and the option to open the mail stores window.
  • Added method calls on variables to the scripting engine. Objects can implement their own API.
  • Updated the replicate folders dialog to use the progress window at the end to show a message informing the user that it's closing the mail stores. Rather than just have a blank unresponsive window.
  • Fixed filters with a script not displaying correctly in the item preview. (Added entity encoding for '' characters.
  • Fairly extensive re-write of the scripting engine, focusing on a new easier API with lots more functionality. All the documentation for scripting has been updated to reflect the changes. Some scripts will need to be re-written to work with the new API.
  • Implemented a OpenSSL version check to make sure the installed version is at least some minimum version. This is to force users to update their build of OpenSSL in light of the heart-bleed bug. I'm also updating the version that Scribe automatically installs to v1.0.1g. OpenSSL library error messages now propagate up to the missing capabilities bar.
  • Increased the speed of searching using the Find window by about 40x. The problem lay in the way the HTML was being parsed and converted back to text before searching. Turns out that doing a word search of the raw HTML is much faster and still gives good results.
  • Added a status message to the find window that tracks the current folder and items per second.

New in i.Scribe 2.0 Beta 46 (Nov 30, 2013)

  • Fixed a HTML rendering issue when non-TD elements were attached to TR elements.
  • [Windows] Added ability to install components when in 'Desktop' mode. I.e. where the application is installed in the Program Files tree and has no write access to it's install folder. This mechanism involves having a small (8kb!!!) Updater executable that asks for admin permissions on startup, which then copies the files from a temporary download folder to the install folder.
  • Rewrote the text selection in the HTML control so that works reliably.
  • Added 'cp????' alternate names for the 'windows-????' charsets.
  • Fixed behaviour on IMAP server's that don't support the IDLE command. Previously it would hang in the IMAP thread, which wouldn't lock up the whole app, but you couldn't access any folders or shutdown correctly.
  • Fixed the app icon in the help being gray scale. More generally, all 8 bit images in the HTML control now resize without corruption.
  • Added functionality to import directories of .eml files in bulk.
  • Fixed rare issue when replying to an email and the body of the source email would not be quoted in the reply.
  • Fixed layout of HTML images that are display: block;
  • Saving quoted-printable attachments from IMAP mail now doesn't complain about the attachment size mis-matching with the output file size.
  • Fixed stray HEAD and BODY tags messing up HTML rendering.
  • Fixed missed character boxes appearing in the POP3/IMAP/SMTP account log.
  • Fixed the menu background being the wrong colour (again).

New in i.Scribe 2.0 Beta 45 (Jul 2, 2013)

  • Changed the way HTML to Text works (mainly used when replying to HTML email). It now passes through the HTML rendering control and gets converted from a DOM tree down to text. This should mean better parsing in the long term at the expense of some weirdness in the short term while issues get sorted out. Initial testing has shown some promising results.
  • Re-wrote the algorithm that wraps and quotes email when you reply or forward. The old code works ok, but is impossible to read or maintain. The wrapping also pulls the "wrap column" setting from the appearance page. Even if you don't use wrapping in the editor.
  • Fixed window border drawing in the Windows7 classic mode.
  • Fixed the folder unread count not updating if a parent folder is not expanded.
  • Fixed a crash when using the -m or -t command line options. Bit rot from change the get option API and the compiler didn't catch it.
  • Fixed a HTML rendering bug when images are marked as "display: block;".
  • Fixed some flicker in list controls when re-sizing columns.
  • Mac] Fixed pasting multi-line text into non-multi-line edit controls showing a scrollbar.
  • Fixed the create/load folder dialog's radio buttons to work correctly.
  • Mac/InScribe] Fixed the identity menu updating correctly after you delete an identity/account.
  • Html control -> Copy Source now copies the actual HTML including dynamic content rather than the script source.
  • Win] Fixed the mail window becoming unresponsive when clicking a recipient in the drop down.
  • Fixed a hang in the CSS parser. It would choke on badly formed @media rules.

New in i.Scribe 2.0 Beta 44 (Mar 14, 2013)

  • Fixed the template menu to contain items linked to the the email in the templates folder.
  • Fixed missing scroll bar in the HTML control when there is nested HTML documents followed by images.
  • Fixed the Save Attachments filter action to save all files in the case where no file pattern is specified.
  • Fixed printing plain text emails.
  • Win32] Fixed drawing the borders on Windows XP.

New in i.Scribe 2.0 Beta 43 (Dec 27, 2012)

  • Fixed the layout in the calendar window.
  • Fixed blank start and end dates in the calendar window when loading an existing event.
  • Added Ctrl+P shortcuts for printing from the main and email windows.
  • HTML emails now print in HTML instead of being converted to text first. This feature is based on the existing HTML control rendering to a memory context (Screen DPI), which is then printed to the page. It's going to have the same limitations as the HTML control and won't be very high resolution. Certainly not "print" DPI, but its a whole lot better than HTML -> text printing. It's the best I can do at the moment.
  • Added some new Scribe DOM fields to the mail object: selected, color, label, read, and showimages.

New in i.Scribe 2.0 Beta 42 (Nov 16, 2012)

  • Fixed the mail3 back-end parsing and storing CC header details.
  • Fixed "internal filtering" checkbox not being initialized when you open the Filter UI window.
  • [Windows] Fixed mice with small wheel increments not scrolling in Lgi applications. (Integer rounding was causing the "amount" of scroll value to go to zero)
  • Made the new filter condition item a bit darker. The medium dialog colour has got a lot lighter in Windows 7 (#f0f0f0) and it no longer very readable on the workspace background (#ffffff). So now I use a darker custom grey instead so at least you can read it.
  • Fixed the layout in the folder select dialog. The table layout code now has some basic support for CSS, so I can man-handle difficult layouts into shape using a little CSS here and there.

New in i.Scribe 2.0 Beta 41 (Oct 29, 2012)

  • Fixed a bug in the .eml and .mbox export where a mail3 email would be missing the content-type header value. This mostly manifested when exporting mail from the Sent folder.
  • Changed the default date field for a mail folder to "Date Sent".
  • Fixed Bug #395: parsing of dates on new email when using mail2 folders.
  • Fixed email losing attachments when copied from a mail3 to a mail2 folder.
  • Mail3] Moved the size cache into the database. It gets updated once after you open the folder containing email. Sizes now include all attachments and text data.
  • Made the main window account status panel sensitive to font size. This involved removing the tab control and laying out the progress controls along size the log control.
  • Improved performance of HTML layout with lots of table cells.
  • Major rework of the message threading code. Its now far more correct. Supports Outlook's Thread-Index header.
  • Fixed scribe to respond correctly to IMAP IDLE notifications for things like delete and mail is read.
  • Fixed Scribe dropping BCC addresses from the email when sending.
  • Fixed newly received email not sorting correctly by date when they are from different timezones.
  • Windows] Fixed the installer to detect a missing VS2005 runtime, download and then install it.
  • OMG, if Scribe tries to encode a message with a multi-part alternative it uses the same MIME boundary. Epic breakage. (Fixed)
  • Fixed IMAP mail returning HTML segments with a file name as possible content for the viewer.
  • Fixed some HTML rendering issues, table layout, font size, and code optimizations.
  • Changed the remove duplicates script to keep the oldest copy.
  • Fixed a crash in the .gif decoder.
  • Added support for HTTPS image loading, including proxy support.
  • Updated version of Sqlite in use to the latest.
  • Fixed logging SSL connections to a file.
  • Fixed rare case of base LF's in outgoing email. This could happen when replying to email with base LF's in the source emails headers (e.g. Subject).
  • Fixed not being able to scroll some HTML documents with the mouse wheel.
  • Added better CSS support to the HTML control and fixed some layout issues. By this I mean Scribe now supports some complex CSS selectors (the more common cases). I will over time extend that to cover more of the obscure cases as well.
  • Made the non-focus selection colours adhere to the prevailing windows standard. (Not 100% sure what value to use when calling GetSysColor for those cases).
  • Speculative fix for crash in the .gif decoder.
  • Removed command line option "-o" that specifies the options file. The options file is either in the same folder as Scribe.exe OR in the Application data folder (AppData tree on Windows, ~/Library/Scribe on mac). The application has to be able to find the options file with no command line arguments. This is because sometimes other applications call the software to send mail via the command line and won't pass Scribe the options path. So if it's not discoverable automatically then I had to pull it from the registry. That causes a problem when users install test builds, which then default to the live options file and nuke the live data if it all goes wrong.
  • Enabled the context menu keyboard button for the text editor control. (So you don't have to use the mouse to correct spelling!!)
  • Fixed size of outgoing email with attachments (Mail3).
  • Added html mail preview "show images" button.
  • Added support for alternate text on HTML images when the image hasn't loaded. Instead of a red 'X' in the image, the alternate text is shown, clipped to the image size.
  • Added gzip support to HTTP images if you have the zlib DLL installed.

New in i.Scribe 2.0 Beta 40 (May 19, 2012)

  • Fixed a charset parsing error, where an extra space would cause quotes to be kept, instead of parsed. Which meant the charset wasn't used correctly.
  • Mac] Fixed hiding the application with Cmd+H.
  • Fixed some memory leaks when copying data around and in the mail2 backend.
  • Fixed a bug in the mail2 back end where the body of the email would be lost on newly created mail when copied to another mail3 folder. The mail2 back end creates a fake MIME tree for it's mail, which is needed by the other back ends when copying. This wasn't being built correctly in some cases.
  • Fixed the folder selector to list all the open mail stores, not just the default.
  • Fixed filters always being "incoming" after re-opening the application.
  • Fixed password field not initially being disabled on the account receive tab.
  • Fixed not being able to toggle the state of a checkbox with the space key.
  • InScribe] Fixed memory leaks if you create a new account but don't save it.
  • Fixed mail losing it's body when being copied from one mail3 store to a another mail3 store.
  • Fixed a bug that would delete the headers of an email when the charset is not supported.
  • Fixed processing of white listed email so that it appears in the tray.

New in i.Scribe 2.0 Beta 39 (Apr 4, 2012)

  • Fixed a crash in the code that generates new mail growl notifications.
  • Fixed an email losing it's body and attachments if you copy it from a mail3 folder to an IMAP folder.
  • Fixed the SSL IMAP account not recovering from losing it's connection. This would happen say, when you put the computer to sleep and then wake it up again. Scribe was going into a 100% CPU loop and never attempt to reconnect. The UI however stayed responsive and you could quit the app, it was just the IMAP thread getting stuck.
  • The mail's window closes when you open an email, then switch back to the main window and delete that email.
  • Fixed an issue when creating a new IMAP folder and not being able to list email in that new folder without a restart.
  • Fixed a display issue where an email with multiple HTML parts would show only some of the HTML.
  • Started added some support for high DPI awareness:
  • The To, From and Subject fields in the mail UI now resizes to the current font.
  • Fields tab of mail UI is now a resizable table.
  • The colour selector for an email now resizes to the current font size.
  • The fonts/icons are no longer fuzzy on Vista/Win7 when you have medium or larger text selected in the control panel. (aka DPI virtualization)
  • The positioning of icons in the tree and list views has been vertically centered when the line height is greater than the icon height.
  • Radio buttons vertically center their icon.
  • Most of the dialogs in the application now re-flow their components to the current font size. Some will also resize if you drag the edge of the dialog to resize the whole window.
  • The status bar now puts their icons beside the text, instead of under.
  • [Windows] Fixed very slow rendering of email that used glyph substitution. The code was constantly recreating fonts when it didn't need to.
  • Fixed mail losing their body when copying mail from a mail3 folder to an IMAP folder.
  • Added some basic install on demand functionality for various add-on libraries. If you click on an email that needs iconv or libjpeg to display correctly, a missing component bar appears between the header and the content, with a message stating the missing components and a button labelled "Install". When you click that button Scribe queries the memecode site for the download location of the required libraries and downloads them to the Scribe folder. Then it re-displays the email to show the content correctly. This also works with the SSL libraries as well. Currently working fine on Windows, but I haven't had time to test Mac support.
  • Moved most of the HTTP related stuff to go through the proxy setting in the options, which also now defaults to the system HTTP proxy setting if there is no proxy specifically defined in Scribe's options.
  • Fixed an important bug in the bayesian filtering backend. When using incremental word list updates small changes would go through an optimized code path that didn't write the changes to disk due to a dirty flag not being set. This caused the changes to remain only in memory and be lost on restart. Making the bayesian filter not work correctly, as the lists would rapidly get out of date. I noticed this because I kept getting the same spam over and over, and eventually thought "this can't be right". Sure enough it wasn't.
  • Fixed and optimized outlook (MAPI) import.
  • Fixed rebuilding the Bayesian word lists bumping into the 2gb memory ceiling (32bit windows build) if you had a large enough folder(s), by unloading folders after using them. I've also made it store in memory only the words referenced in each mail store. Originally it would store all the words from all the mail stores at once. Before writing them to disk at the very end. This was great for speed but used a lot of memory, now it's almost as fast, but uses less memory.

New in i.Scribe 2.0 Beta 38 (Feb 29, 2012)

  • Fixed the initial creation of the IMAP cache folders tnot create child folders sometimes.
  • IMAP cache folders are now automatically located in the right place according tDesktop/Portable installs.
  • [Mac] Fixed occasional warning about LgiFactory file on exit.
  • [Mac] Added normal Scribe menu items tthe dock context menu. (i.e. same as the Windows tray icon context menu).
  • Major re-write of the new mail handling. There is now a bunch of states (loading, filtering, bayes, growl notification, tray icon notification) that new mail passes through, and both synchronous and asynchronous events that push email through those states. The old code was tocomplicated tkeep track of that well and I couldn't fix all the bugs. Hence the re-write.
  • Fixed the filter delete action not marking the email as "not new".
  • Fixed the delete duplicates script not working.
  • Fixed memory leaks in the NewHashTable and NewList scripting calls.
  • Fixed the path tthe mail folders tbe relative tthe options file location when possible.

New in i.Scribe 2.0 Beta 37 (Feb 29, 2012)

  • Fixed imap BODYSTRUCTURE parsing thandle "{##}" style size prefixes. I still don't know where the BODYSTRUCTURE format is documented, sI just keep adding tthe parser when it encounters stuff it can't handle :{
  • .eml files now open the same as received email, rather than email you create yourself. This means the from and tfields look correct.
  • [Vista/Windows7] Modifications tthe build process tavoid side by side issues.
  • Fixed importing .ics files with multiple VEVENT sections.
  • Added support for reading iCal files with byte order marks.
  • Changed the default behaviour of selecting an IMAP folder for the first time tonly scan for UID's higher than the highest known existing UID. This cuts down on the response time for the command on large folders.
  • Scribe now looks in parent MIME segments for a charset if the charset is missing. Lots of Chinese spam just has the charset in the top level multipart segment. Scribe was interpreting the text as us-ascii and that confused the spam filter. Getting the charset right means the bayes filter correctly classifies the message as spam. Nyuh nyuh.
  • [Mac] Fixed support for charset conversions.
  • [Mac] Added support for setting Scribe as the default email client. Can handle mailto: links but not open .eml files just yet. I hope tadd that in the next release. The plist is there for it, but for some reason it's not picked up by Finder.
  • Fixed a bunch of memory leaks in the filter UI.
  • Fixed a memory corruption bug in LgiFindFile, which is used by a whole lot of stuff but I noticed it while rendering HTML.
  • Fixed folder locations being stored using a relative path where possible. There was some confusion in the code as twhich base path a relative folder path was referencing, sI've standardised on the options file path (as opposed tthe exe's path)

New in i.Scribe 2.0 Beta 36 (Feb 29, 2012)

  • Added 24hr support tthe week view of the calendar.
  • Fixed deleting calendar entries via keyboard tprompt you if you have "confirm item delete" on.
  • Fixed crash on compact mail3 (was a vc6 issue, doesn't happen on vs2005 i.e. compiler bug). Alsmade it threaded sthe UI doesn't lock up.
  • Removed the 2nd context menu appearing on an email when using the keyboard topen it.
  • Added 32/64bit tthe about box.
  • Fixed the destination IMAP folder's unread count not updating when a filter moves an unread message.
  • Rewrote the IMAP structure parser tfix bugs.
  • Added up/down buttons for reordering filter actions.
  • [Mac] Fixed crash when you Cmd+Q (quit) while accounts are still active sending or receiving email.
  • [Mac] Fixed icons having a slightly different grey background.
  • [Mac] Fixed the flashing new mail icon being upside down sometimes.
  • Moved all bayesian filter functions inttheir own thread sthat it doesn't lock the GUI up at any point. This improves the performance of the IMAP full mail store in particular.
  • [Mac] Fixed being able ttoggle checkboxes with the space bar.
  • Made cancel in the find window work again.
  • Fixed buffer overrun in the HtmlToText code.
  • Bayesian analyser now displays unicode correctly by using the HTML control instead of a message box. The HTML control uses Lgi's own code tdisplay text, which in turn has the ability tload in fonts that actually have the glyphs in question.
  • Fixed recent mail not being filtered when you navigate tthe IMAP inbox for the first time in the session.
  • Unified the filtering of both IMAP and POP email. I didn't realise that the filter was all over the place and sI've moved all the filtering of incoming mail intone function. The take away bug fix is that now the IMAP mail gets filtered correctly by the Bayesian filter.
  • Fixed "probably" spam being listed in the new mail list (i.e. flashing mail icon, and it's right click menu).
  • Fixed moving messages from a mail3 folder intan imap folder. The append command wasn't reading the UID out of the IMAP servers response, amongst other issues.
  • Emptying the IMAP trash now works for large amounts of mail, works faster than before and alsexpunges the messages afterwards.
  • Fixed moving more than one email at a time using the find results window.
  • Fixed some memory leaks.
  • Added initial support for Growl notifications. At the moment this is just for new mail, but it will be extended tsome other things in the future. Support is provided via direct socket implementation in Lgi rather than some 3rd party code. I had a look at the available libs and thought it was easier twrite from scratch than integrate a library. For C++ it's about that bad. Growl support defaults toff, until I'm happy it doesn't make things worse. The option tturn it on is in the "Other" tab of the options, and the option only gets read on startup, srestart after changing it.
  • Fixed a bunch of memory leaks in the spell checking engine.
  • Revised the parsing of name/email pairs again tprefer parts inside angled brackets when both name and email are valid email addresses.

New in i.Scribe 2.0 Beta 35 (Feb 29, 2012)

  • Made the add contact window load the groups folder before scanning it.
  • Fixed the add contact window putting the group name in the 'name' field of the recipient, instead of the 'address' field (i.e. with angle brackets around the name).

New in i.Scribe 2.0 Beta 34 (Feb 29, 2012)

  • Made contact groups use normal To/CC/Bcc header style.
  • Fixed occasional crash in PNG filter.

New in i.Scribe 2.0 Beta 33 (Feb 29, 2012)

  • Fixed contact groups.

New in i.Scribe 2.0 Beta 32 (Feb 29, 2012)

  • Fixed the IMAP email's dates in the cache being sensitive tthe current date format.
  • Added RFC 2047 decoding for the name of IMAP attachments.
  • Fixed some MBOX importing issues.
  • Fixed not being able tenter email addresses in the Contact window.
  • [Mac] Fixed a crash when attaching files with napparent mime type.

New in i.Scribe 2.0 Beta 31 (Feb 29, 2012)

  • Fixed "(null)" dates in IMAP folders.
  • Fixed incorrect processing of the IMAP "RECENT" untagged event for new email. The result of this is that when new mail arrives in the Inbox it now shows up correctly.
  • Fixed the dialog closing when the focus is in the account dialog's signature entry editbox and you press Enter.
  • Fixed the client causing IMAP email tbe marked /Seen before it's actually marked read in the user interface.

New in i.Scribe 2.0 Beta 30 (Feb 29, 2012)

  • Imported a whole lot of punctuation, spelling and meaning fixes someone contributed tthe help files. (Btw if you feel like contributing tthe help files, just edit the HTML directly and send me the edited files, I'll merge them with the trunk).
  • Added some basic search tthe help browser.
  • Fixed the NTLM implementation twork with Exchange 2010. This means bundling a heavily modified version of the LGPL libntlm. The modifications are available here, however I doubt the maintainers will be interested in them.
  • Added support for the non-standard "Deleted Items" IMAP trash folder.
  • Fixed processing of IMAP fetch responses thandle out of band command responses.
  • Fixed detection of IMAP server's folder separator character.
  • Tightened up the decoding of name/addr pairs a little more thandle the case where both the name and the address have '@' characters in them. Now it will guess the correct meaning in that case by doing fairly complete RFC validation of the email. (anything would be better than the strchr(possible_email, '@') that I was doing).
  • Fixed parsing of quoted characters in IMAP FETCH responses.
  • Fixed Scribe using 100% CPU when there is an idle IMAP SSL connection.
  • [Mac] Fixed the plugin dialog not closing when you click "Close".
  • [Mac] Fixed crash when compacting a mail store.
  • [Mac] Fixed the standard progress dialog being tosmall.
  • [Win32] Fixed creation of the default extension for common files types in the case that there is nattachment file name.
  • [Win32] Fixed the client making itself the default even if you switch off the "check default client on startup" option. (None complained - amazing! I found it myself)
  • Fixed Bug #335: Relative dates in the title page are incorrect.
  • Fixed not being able timport MBOX folders.
  • Added character's below 0x20 (space) tthe disallowed filename characters for saving attachments. I got an attachment with a '\n' in the middle of the filename.
  • Fixed uuencoded attachments not being decoded. More like ported the code from v1.xx over tthe new architecture.

New in i.Scribe 2.0 Beta 29 (Feb 29, 2012)

  • Fixed the calendar colour settings getting displayed incorrectly.
  • Re-wrote the execute process filter action tuse modern Scribe DOM fields.
  • Added some documentation on Scribe specific scripting that covers all the methods you can call, how tsetup callbacks, where tput files and how tdfilter based scripting. This is in addition tthe existing Lgi scripting docs that cover the basic syntax and system library methods. This is a work in progress.
  • Fixed addressing of local variables in script functions.
  • Added support for new methods in the scripting engine: BrowseFolder, GMenuAddItem, GMenuAddSubmenu and FilterDoActions.
  • Added support for new DOM fields: Thing.Type, Filter.ActionsXml, Filter.ConditionsXml and Filter.Name.
  • Created a new default script for creating filters based on messages. The initial entries are the "Create filter for mailing list" (which used tbe C++) and a new one called "Filter email from [addr]'. Obviously now that this is a script, enterprising users can all lots of their own entries using the existing ones as templates.
  • Rewrote the folder browser ta) resize tfont sizes and b) have a "New Folder" button. It's now in the lr8 resource file.
  • There have been some significant fixes tthe GTableLayout object that does dynamic layout in dialogs.
  • Fixed Bug #290: Some files and settings not cleaned up by the uninstaller, updated uninstaller for win7.
  • Added support for decoding and showing emoji in the HTML control. Support for emoji already existed when viewing plain text emails in the previous build.
  • Fixed the saving of message dates in the options file tbe forced inty/m/d format. Previously they were saved in the currently selected date format, and if the user changed that date format (in the options) then all hell breaks loose when you try and receive mail. Sthe solution is ta) always save in y/m/d and b) "guess" the right format when loading them back in. y/m/d is always guessable... but there is some confusion with d/m/y and m/d/y if the day is less

New in i.Scribe 2.0 Beta 16 (Dec 24, 2009)

  • Changed the mail3 code to empty the trash a bit faster.
  • Fixed Bug #196: Xml headers don't include charset.
  • Fixed Bug #200: MailSegs records are orphaned after emptying the trash (mail3).
  • Imap connections are now logged to a file in the ImapCache folder.
  • Made the imap flag parsing more robust.
  • Fixed double click + drag to select whole words in the text control.
  • Fixed deleting email from the trash in mail2 folders.
  • Fixed attachment encoded names not being decoded in the mail3 backend.
  • Fixed the libjpeg wrapper hanging on incomplete or corrupt jpeg data.
  • Added code to differentiate duplicate filenames when dragging multiple files from the mail window attachment list to a folder outside of Scribe. This stops the d'n'd operation from failing when there are attachments with the same name.
  • Tightened up the character filter on the base64 decoder to discard any invalid characters, which improves data integrity when decoding attachments.
  • Added proper HTML encoding to the ToHtml and FromHtml DOM fields, this stops Scribe getting stuck parsing the HTML for the preview pane header when the incoming mail has things like '&' and '

New in i.Scribe 2.0 Beta 14 (Nov 4, 2009)

  • Fixed mail2 folders not loading properly, leaving empty system folders instead. It will now load correctly but you'll have to clean up the duplicate (empty) system folders with [shift]+[right click] -> delete.
  • Fixed the send/receive buttons staying grayed out after adjusting what folders are loaded using the "Manage Folders" dialog.
  • Imap folders now close and open with the local folders.

New in i.Scribe 2.0 Beta 12 (Sep 9, 2009)

  • Rewrote the storage 3 API to show the full MIME hierarchy. This has several benefits and some drawbacks. The old mail2 code has to "fake" it because it can only store a flat list of attachments. But thats ok, because it's getting phased out. The mail3 backend supports the MIME segment tree natively and will have a 1:1 mapping to the text version of the email, even though it's stored in an SQL database. There are a lot of code changes, but not much change in the UI. This is really prep work for supporting various security mechanisms that use MIME extensively and supporting the display of inline attachments.
  • Fixed the tray context menu not having all the contact folders represented.
  • Fixed re-sending email to create copy into the same mail folders as the source email.
  • Added some more support for text-align CSS to the HTML control.
  • Fixed the text control adding any available URL characters to the end of an email link.
  • Fixed some HTML layout issues.
  • Added code to update mail3 sqlite databases to the right format if I add fields to the tables.
  • Fixed support for mail colouring.
  • Fixed some memory leaks.
  • Fixed the mail2 folders being overwritten when you close the manage mail stores window.
  • Fixed some crashes when emptying the trash folder.

New in i.Scribe 2.0 Beta 10 (May 11, 2009)

  • Fixed a crash when sending and the server bails with an error.
  • Fixed negative timezones being sent as +-xxxx. How does that even happen with a product being used for 10 years years around the world? (I live at +10 or +11).
  • Fixed a crash when displaying HTML elements with a css class or id longer than 255 characters.
  • Fixed POP3 mail not being deleted off the server.

New in i.Scribe 2.0 Beta 8 (Dec 28, 2008)

  • Initial implementation of the new mail3 format. Mail3 is a folder containing a Sqlite database for the main storage of mail, folders, contacts and other objects. And large attachments will be stored as separate binary files. This is an optimal solution as far as I can see for space usage, portability and usability. Speed should be better than mail2 for most operations, and searching should be improved a fair bit.
  • Added the capacity to open more than one mail store at a time. This means moving all Mail Store related functions hanging off the file menu into a new dialog and also removing the folders tab in the general options. Some changes will likely have to be made to the path handling for things like filters and so on. Chances are filters with explicit paths will break, but users should be able to edit them back to health. Better that I do this now in beta than when the full release is out.
  • Fixed duplicate items appearing in folders that have items moved to them before they are loaded.
  • Fixed lots of memory leaks.
  • Removed the old hacked up MIME parser that I hobbled together for v1.xx and replaced it with the new clean sheet rewrite MIME parser (GMime class in Lgi).
  • Fixed multi-line headers with leading space characters (instead of tab ' ') messing up .eml email export.
  • Fixed the links on the title page.
  • Re-enabled vCard and iCal import and export.
  • Fixed copying contacts, filters and calendar events. Just had to implement the copy operator, most of which were stubs after the port to the new backend code.
  • Fixed some bugs in the HTML table layout code.
  • Updated some positioning of controls to show the Russian translation correctly, at least with sane font sizes.
  • [Win32] Fixed using the registry for options file location when the -noreg specified.
  • [Win32] Fixed mailto handling behaviour when the registry setting is specifying the options file location.
  • [Win32] Fixed registry entries so that Scribe can be the default email client in Vista.
  • [Win32] Made the setting of Scribe as the default email client apply only to the current user rather than system wide. (Yay!)
  • Fixed vCard import.
  • [Win32] Added code to remove the mailto/default client registry keys (these are to allow setting Scribe as the default email client, Scribe doesn't store any internal settings in the registry).

New in i.Scribe 2.0 Beta 7 (Oct 27, 2008)

  • Fixed being able to set the account identity so you can send email.

New in i.Scribe 2.0 Beta 6 (Oct 25, 2008)

  • Fixed the use of uninitialized memory in response to the Mail.FromHtml DOM field, which could lead to a crash.
  • Added a "Mark All Read" command on the mail folder context menu.
  • Added code to make a copy of an email when you try and edit an email you have already sent. This leaves the original email intact.
  • Disallowed the "receive" and "preview" items on the account's context menus when that account is disabled in the options.
  • Updated the scripting engine to the new bytecode compiler/VM. Moved the existing scripts to a new callback model to allow expansion of scripts into more parts of the application.
  • [Win32] Scribe now adds a key to the registry (HKCU) so that when mailto links are followed it can find the options file and the folders. (I tried passing storing the parameter in the mailto path, but it gets ignored.)
  • Fixed groups not showing up in the address browse drop down in the mail window.
  • Fixed contact groups not being matched to their address list when sending.
  • Imap changes:
  • Implemented new flexible fetch code, used it to get a minimum number of headers from the server.
  • Added BODYSTRUCTURE fetching and parsing to allow the GUI to see the mime structure without downloading the entire message.
  • Fixed flushing of email meta data to be every 3 seconds, or end of operation.
  • Changed returning of headers from the imap thread to be clumped into whatever was received in one second. This reduces the message flow which increases the GUI's responsiveness while still retaining progressive download of a imap folder.
  • Added field to mail objects to allow the backend to stop the GUI requesting the body for the lines of blue preview text. This causes the imap code to go online and fetch the entire body of all unread messages, which loads up the thread with too much work so that it's not responsive to the user selecting email.
  • Fixed the email bodies being requested more than once.
  • Fixed the account status window to show the imap account is online.
  • Fixed logging of the imap account into the status panel's log.
  • Added some keyboard handling to the filter condition UI construction and changed the operator part of a condition to be a combo box, which also aids in it's usability.
  • Fixed deleting newly received email.
  • Fixed unread count not updating when you delete unread mail from a folder.
  • Fixed mail remaining in the "new" list after you delete it.
  • Added some code to try and update the current timezone every hour... in case for some reason the user changes it or daylight savings starts/ends. I don't know how to detect the timezone setting changing. So this is a reasonable fall back which works across all operating systems. And if you must have Scribe pick up the update "Right Now(tm)" you can just restart the client.
  • Fixed folder search results.
  • Fixed incoming mail's date received being blank.
  • Fixed contact groups so that you can filter incoming mail based on the sender being in a group. This involved fixing the GContactGroup::GetVariant method to return something reasonable instead of being commented out after the re-write.
  • Added option to show folder total item counts in the tree.
  • Fixed some cases where the unread count on a folder could be out of date.
  • Fixed the mail parsing not picking up charsets on MIME segments.
  • Fixed recurring calendar events not showing anything other than the first instance.
  • Fixed some new email showing up blank until a restart.
  • Fixed support for the AccountId and ServerUid fields in the mail2 backend so that delete as spam can delete the mail off the server on the next connect. I had overlooked them in the first pass of converting the mail object fields as they reside in a private struct as opposed to the mail object's parent class (Lgi's MailMessage). The IMAP backend doesn't support these yet, but I will add support at some point when I get time.
  • [Win32] Fixed the unread mail count on the fast user switching screen updating when the last email is set to read.

New in i.Scribe 1.89 Test 21 (Oct 10, 2007)

  • Fixed the interaction between calendar alarms and recurring events. Previously the alarm would only trigger on the first instance of the recurring event. Now it triggers on all the instances, which is what users expect. It also doesn't turn the alarm off automatically for recurring events.
  • Fixed attachment names/sizes not being printed with the rest of the email.
  • Fixed a crash at the start of exporting to mail2.
  • Fixed the export folder path and base folder being turned into numbers everytime you export something.
  • Fixed a different crash at the end of exporting to mail2... *sigh*
  • Fixed Bug #159: Wrap at column option broken.
  • Improved the IMAP auth plain code to handle the " " response from the server.
  • Upgraded the script engine to have proper function stack frames. Which allows you to write recursive code. (don't laugh)
  • Fixed a lexing issue in the scripting engine where it wouldn't cope with a '-' directly after a number, e.g. "0-Var" would parse to "0-" and "Var" instead of "0", "-" and "Var".
  • [Win32] Fixed enumerated font names not being converted from native cp properly (accented characters would be corrupted).
  • Fixed font selection dialog showing weird preview text on display bit depth other than 32.
  • Fixed a 1 pixel column being chopped off the last character of a line in the editor. It's all in the details.
  • Added a new documentation file to the Scripts sub-folder describing all the API calls you can make in a script, their arguments and return values and some notes where applicable.
  • Fixed email's with no body showing the body of the previously selected email.
  • Fixed imported html mail having your own signature in the text body and visa versa.
  • Fixed the bounce command to copy the source email's HTML and html charset to the "bounced" email.
  • Fixed the behaviour of the left arrow key in the tree control where the cursor is not on the first child node (i.e. 2nd or 3rd child node).
  • Fixed the closed 'to' panel overlapping the tab control when there is not enough space for it in the toolbar.

New in i.Scribe 1.89 Test 19 (Jul 31, 2007)

  • Fixed the folder tree getting messed up when you open and close the leaves. (i.e. ' ' and '-' on nodes with children)
  • Fixed Bug #154: Options screen not repainting correctly.

New in i.Scribe 1.89 Test 12 (Mar 7, 2007)

  • Buttons now operate on the up key event, instead of the down key. This fixes issues where the up key is processed by the next dialog, possibly doing something the user didn't intend to do.
  • Changed the general tab of the options dialog to dynamic layout.
  • Fixed the text label control to wrap multi-byte utf-8 correctly, this fixes wrapping Japanese and Chinese strings.
  • Fixed the table layout control to handle non-ascii utf-8 strings. Sometimes it would layout the first column so it would take up almost all the available space, pushing the other columns to the far right.
  • Implemented the "delete after 'n' days" feature when leaving mail on the server. (Yes you heard it right - I finally did it)
  • Fixed various crashes when the summary page is selected and you try and use the Mail->Forward or Mail->Reply menus.
  • Fixed Bug #141: Crash when pressing Ctrl P in the mail window.
  • Fixed Bug #78: HtmlToText function fails when it encounters '' in the document.
  • Fixed not being able to save attachments with restricted characters in the filename.
  • Fixed a bug in the dynamic layout control where it would leave space unallocated for no reason.
  • Fixed Bug #40: Tooltips on HTML links don't work when scrolled.
  • Added some basic keyboard context menu support to the tree and list control.
  • Fixed vCalendar import/export to write date/times in UTC as per the spec rather than localtime. (Duh!) However this change has triggered a cascade of changes in the handling of dates/times. I expect that it may cause more bugs than it solves. However thats not to say I havn't been very careful and diligent in the changes I've made. All date/times are now tagged with a timezone and you have to make sure the timezone is correct as well as the actual day/month/year/hr/min/sec components. What I haven't fixed yet is the date/time stamps on email (e.g. send/receive date), they are still in localtime. This also means that the calendar events in your mail store will silently be converted to UTC, which is not backward compatible with previous version of Scribe (they will not find the start/end date meta data as they have a different tag ID now).
  • Fixed the encoding of the date field when the timzone is GMT, it wasn't putting the ' ' on the front.