The Skype.ini Problem and Solution Explained

General Information

Support for these scripts is primarily provided in the following places, most preferred first:

SkypeEnglish Mailing List
Public forum in which blind Skype users can help each other.
@dlee_code on Twitter
The script author's low-traffic Twitter account for project (including script) announcements and limited technical support.

This page is laid out for easy navigation via JAWS:

This page explains a bizarre problem that cropped up sometime around the release of JAWS 16, though JAWS 16 itself most likely did not cause the issue. Thanks to Michele Barbi (often known as barbuz87) for helping diagnose this problem and test the solution.

Symptoms You May Have Noticed

The primary symptom of this problem is the occasional reversion of some custom Skype script settings, as set from JAWS Verbosity Options, back to defaults. At a technical level, the symptom is a strange modification to skype.ini, where these settings are stored.

The Problem

The SkypeWatch scripts store a list of recently received Skype notification messages in skype.ini so that restarting JAWS does not clear out the notification list accessible via [ n followed by numbers. At some point, these stored notifications began containing a character that starts a new line. The scripts, unaware of this change, simply wrote the alerts to skype.ini, which broke the .ini file format by adding lines that were not meant to be separate lines.

The upshot of this odd modification was the creation of a new section every now and then, and the movement of Verbosity Option values out of the proper "Toggles" section into this new section. As a result of this splitting, JAWS would no longer see the options that were moved, resulting in the reversion to default values mentioned earlier.

The Solution

The solution to this problem included in revision 969 of the Skype scripts has two parts:

  1. Newline characters found in a Skype notification are translated into spaces before the notification list is written to disk. This should prevent any further mangling of skype.ini.
  2. Upon launch of SkypeWatch (roughly once per JAWS or system restart), the scripts check for invalid material in skype.ini and remove any found. When such material is found and removed, JAWS will make an announcement indicating how many bogus .ini sections were removed from the file. This announcement should only occur once per JAWS version per computer. If this message continues to occur occasionally after you have upgraded your scripts, please notify me.