SourceForge).
Implemented (somewhat kludgily) option for phonetics scheme to
replace e with é iff it is the last letter of the last tsheg bar.
This is required by the new THDL phonetics spec.
New algorithm, per new THDL phonetics spec, for ba->wa processing.
The heuristic is that it applies only to the last tsheg bar in
multi-tsheg-bar words. (Previously, ba always generated "?ba/wa?",
which is maybe more correct but less attractive.) This heuristic
fails on, e.g., "tsheg bar". Oh well.
Rationalized format of phonetics file: > is used as separator in exceptions
as well as rules. (Previously, : was used in exceptions only.)
Fixed SourceForge bug #835911, reported by knowone@zensearch.com,
viz. that if you did control-alt-O before anything else, it blew out.
This actually only occurred when loading from the Startup folder, because
doing that bypasses the initialization procedure (AAARGH -- yet another
way in which loading from Startup differs from normal template loading).
Fixed this by reorganizing several functions to get the initialization to
happen anyway.
knowone@zensearch.com reported that hrIM did not come out correctly: the
default bindu was used rather than the gigu bindu. This problem also
occurred with hr-IM, although he did not report that. The bug was that
a-chung came after the gigu (or reverse gigu), so the bindu code saw A as
the vowel. Two changes were required to fix this. One was to put the
gigu after the a-chung (which is legal and equivalent) in InsertVowel.
The other was that FixTMW2WylieConversion didn't know about -I at all.
(This bug was left over from Than's code.) I also corrected various
confused code comments in FixTMW2WylieConversion, InsertPlainBindu, and
InsertChandraBindu.
Commented out code that suppressed screen updating in
InsertTibetanLetter. As reported by knowone@zensearch.com, this caused
severe "screen flashing" because it forced Word to recompute the screen
image from scratch (rather than incrementally). However, removing it
causes local flashing (of the current tsheg bar), which may be worse in
some cases (notably long Sanskrit words). Not sure what to do about
this. Ideally, WW could avoid having to delete and replace the whole
tsheg bar, but would only update the character(s) that are changed as a
result of the user's typing. Unfortunately, this would be fairly
difficult to do -- it would require a complete re-write of ConvertWylie,
for starters.
In Options dialog, select the TibFontSize widget text and give it focus.
(Feature requested by knowone@zensearch.com on the grounds that this is the
thing most likely to be changed.)
Changed default for interlineal capitalization mode to "Never" (from "Unless
first"). (This is more consistent with the rest of the program; requested by
knowone@zensearch.com.)
In InsertTibetanLetter, change the data type of 'position' from integer
to long, to avoid overflow error on very long documents.
Fixed bug in interlineal root-letter capitalization: its algorithm for
"unless first" checked only for prefixes, not for superscripts, so it did
not capitalize the k in "sku". (Bug introduced in 2.0a7.)
Changed some initializeWylieWord calls to reinitializeWylieWordIfNecessary,
to avoid creating multiple copies of the event handler (which I thought
was a likely cause of flashing/performance degradation reported by
knowone@zensearch.com, but seems not to have been a significant factor).
Changed the Options dialog OK procedure to not call the full initialization
routine, but only LoadPhoneticsFile (which is all that was needed). This was
to avoid creating duplicate event handlers.
Changed the functions that looked up Wylie in the font data tables to use
hash tables rather than linear search of the arrays, on the theory that
this might alleviate a performance bottleneck. But it doesn't seem to
have helped much. In fact, testing shows that repeatedly simply
inserting and deleting English text causes (approximately) quadratic
performance degredation, probably due to maintaining Undo information.
So some of the problem is inherent to Word (or VBA) and there is nothing
I can do about it.
Restored the Startup installation code (removed in p4) pending a ruling on this
from David Germano.
it, and there was no known reason it shouldn't work -- I disabled it
only because WW 1.0 was supposed to not work on 95, but Than wasn't
sure why. WB confirms that it works on W95. Also enabled NT 4.x
(which should work if 95 does).
Changed name of Setup file to use an underscore rather than space, to
make Than's web script happy.
the spec now mandates use of the PUA, which can be accessed with \u
normally).
Clarify warning about bug in typing Sanskrit.
Document autocorrect bug.
Remove references to "2.0b1" (anticipating release of 2.0b2).
Slight clarification of template attachment.
all of these working except for ones noted in SF. I was very short on sleep
then, and apparently I hadn't. Two of the failing test cases were bogus
(not valid Tibetan or Sanskrit), and I've moved them to the appropriate
part of the file.
Two are genuine bugs I didn't know about. Aaargh.
Commented out (but did not remove) the Startup installation feature (because,
due to Word bugs, WW doesn't work right when loaded from Startup).
Removed some code that was supposed to deal with the "sara->sra" bug
(#800153 in SourceForge) but didn't. The code was not actually called
(because I knew it didn't work) but I had left it in on the theory that
it might be fixable (but it probably isn't; a different approach is required).
Added comment to code about ga.yarma problem.
Updated the EWTS URL in the Tibetan menu for new thdl.org organization.
On the Italian keyboard layout, there is simply no way to get a backquote,
so VkKeyScan returns -1, which was causing four different pieces of code to
blow up. Fixed to check this case. (For an unnamed friend of Werner Bruns.)
Improve success message for phonetics testing.
problems seen by other people but not me. Specifically:
Added "Microsoft Scripting Runtime" to VBA References. This might fix Werner
Bruns's problem with "object not found" error during installation.
Eliminated use of SendKeys in CapsLock translation, on the theory that it was
responsible for DG's CapsLock problem.
Changed all instances of Application. to Word.Application., which shouldn't
be necessary according to the documentation, but seems to be more robust.
Type-declared all Function return values (in attempt to avoid stupid run-time
errors when loading from Startup folder; apparently code run from there is
executed differently from that loaded from the templates folder, in a mode that
is more sensitive to missing type declarations).