BlackBox 1.7 Changes

Features

#4 The new icon with up to 256x256 resolution
#15 Adapting the About dialog
#18 Adding Dialog.appVersion and adapting Dialog.version for upcoming center releases
#19 Adding 16-bit Unicode support for Component Pascal identifiers
#27 Adding SET conversion to the module Strings
#33 adding platform detection for wine, Windows 7, and Windows 8
#36 support for long identifiers in StdInterpreter
#43 extending the size of code procedures
#50 unlimited number of columns in SqlControls.Control
#51 support for ANYPTR and SYSTEM.PTR in Meta.LookupPath
#53 support for empty text in DevCompiler.CompileText
#60 underlining white space
#61 Unicode support for fold labels
#62 Unicode and Internationalization support for StdStamps
#66 improvements in StdScrollers
#67 improvements for Obx->Primes...
#68 option for suppressing Dialog.Beep
#73 Custom tags in headers and footers
#80 localizable menus
#83 Different window title for Mod, Rsrc, and Docu files
#86 improvements in RTF import
#87 adding support for LONGINT in SqlDrivers.Table
#88 support for localizable documentation
#89 adding language selection to Preferences dialog
#90 adding horizontal scroll bar to list boxes
#92 office automation
#93 opening a form with a tab view
#94 using BlackBox without the Windows registry
#98 improvements of GUI controls
#101 improvements for the standard properties inspector
#102 improvements for color selection in menu Attributes
#104 calling URLs and commands (InfoCmds capabilities)
#105 background task processing while mouse tracking
#110 use mapped strings for labels in all forms
#111 code cleanups
#122 enabling write access to list of installed converters
#129 command for generating a compile list for a set of subsystems

Documentation

#11 About.odc
#35 Add docu for DevSelectors
#97 Create Docu for (System)Kernel
#100 Review all the existing documentation

Bugs

#13 The compiler ignores some hidden pointer fields, which leads to memory corruption
#16 Fixing a TRAP in DevAnalyzer when reusing FOR-loop variables
#17 Fixing a bug in command line reading
#21 Caret blink frozen after 49.7 days
#22 HostFiles.NewWriter violating the specification
#23 fixing bugs in WinApi plus some refinements and extensions
#24 Fixing the name table handling in DevLinker
#25 Fixing a bug in stack overflow handling
#26 Fixing bugs in some BlackBox documentation files
#28 Fixing a bug in Strings.Replace in case of truncation
#29 inconsistent checks for valid subsystem names
#30 fixing Kernel.IsAlpha for Japanese Hiragana and Katakana
#32 Folds arrows display
#34 fixing the reuse of open documents
#37 fixing traps with long search patterns in DevSearch
#38 report passing receiver parameter IN to VAR
#39 checking illegal use of SYSTEM.ADR function
#40 fixing concatenation of Unicode character constants
#41 fixing a register allocation problem in the compiler
#42 fixing LONGINT division TRAP
#44 unicode content of links&targets saving wrong way
#45 main window does not refresh during resizing
#46 interface change not detected
#47 compiler TRAP with SYSTEM.PTR
#48 fixes in HostPrinter
#49 fixes in SqlOdbc/3
#52 fixing wrong DevCommanders.par.beg/end
#54 DevDebug.UnloadThis must use DevCommanders.par.text
#55 DevPacker.RemoveWhiteSpaces loops at the end of the text
#56 fixes in HostFiles
#58 fixes in HostPackedFiles
#63 fixes in StdStamps
#64 Wingdings dependency in StdLinks
#65 notRecorded-operation overwrites Redo-tail in StdSequencer
#69 Printing.NewDefaultPar does not set footer font
#70 resetting a menu item label to its original value in a guard
#71 fix for case insensitive sort in Info->Menus
#72 speeding up the dump of large data structures
#74 Letter 'z with caron' missing in HostTextConv.ThisWndChar and WriteWndChar
#75 fixig text search with 'Word Begins/Ends With' option
#76 fixes for OLE automation
#77 DevCPT.InSign should use outBit instead of inBit for outPar
#78 fixing type of WinNet.hostent.h_addr_list
#79 bug fixes in StdTabViews
#81 supporting empty localAdr in CommTCP
#82 improving Bitmap zooming quality
#84 unloading DevDebug produces a sequence of Traps
#85 Trap in DevDependencies with long module names
#91 bug fix in HostMechanisms.PopUpAndSelect
#95 fixes in TextMappers.Scanner with option 'interpretSets'
#96 Slow rendering of Unicode texts
#103 bug fix in TextMappers.Scanner
#107 views freezing
#108 BlackBox Start up warnings
#109 Bounds checking in Kernel.MakeFileName
#113 fixes for XHTML export
#116 calling Dialog.Update in the notifier of a selection box does not work as expected
#117 fixes for non-local drop behavior
#118 commander does not show error message
#121 compiler warning regarding unreleased register
#123 "Show Extension Interface" is not showing *Hook procedures
#125 Compiler TRAP for WITH statement
#126 Compiler TRAP for SYSTEM.VAL(LONGINT, intreg)
#127 TextViews.ShowRange does not clear the auto-scroll range
#128 Assignment of named empty string to ARRAY OF SHORTCHAR does not work

Details

#4 (Feature, 2016-04-20): The new icon with up to 256x256 resolution
Original BlackBox icon have only 16x16 and 32x32 resolution set and have some old plain composition.

The new icon for BlackBox is required.

#11 (Documentation, 2016-03-17): About.odc
The file System/Rsrc/About.odc should be updated for maintainnig of new BlackBox. We need to make an clear point to the Center and save old Oberon microsystems copyright. We can use new logo #4.

The information about Version should be included automatically during the build according to the text file AppVersion.txt

The information about build date and time also sould be included in About.odc.

#13 (Bug, 2014-09-17): The compiler ignores some hidden pointer fields, which leads to memory corruption
The compiler ignores hidden pointer fields in base types of a record B when B is nested into another record C. This leads to an inconsistent type descriptor of C and thereby to memory corruption and a system crash.

Refers to CPC 1.7 rc5 change list number 19.

#15 (Feature, 2014-10-07): Adapting the About dialog
The 'About' dialog form in file System/Rsrc/About.odc needs to be adapted for the Center edition of BlackBox.
In particular this means:
- adapting the form layout
- changing the logo bitmap
- adding a center copyright notice
- adding a reference to previous work done by Oberon microsystems
- displaying build date, build number, and version information based on System properties rather than hard-coded data

#16 (Bug, 2014-10-07): Fixing a TRAP in DevAnalyzer when reusing FOR-loop variables
When reusing a FOR-loop variable in a nested FOR-loop, DevAnalyzer
generates a TRAP due to an invalid CASE label instead of
reporting error 910 (for loop variable set).
The invalid CASE label results from adding the constant 'noChange' (=16)
to the loop variable's 'num' field for every nesting level.

Reported by Ivan Denisov on 2013-09-02.
Open Point 41 in BB 1.6 release.
CPC 1.7 change list item 44.

#17 (Bug, 2014-10-06): Fixing a bug in command line reading
Command line reading cuts off the last character resulting in
nondeterministic results for Dialog.commandLinePars.
The bug is caused by an off-by-one error in HostMenus.IncludingFileCommandLine.

Reported by Eugene Temirgaleev 2009-10-11.
OberonCore B8
CPC 1.7 change list number 27.

#18 (Feature, 2014-10-16): Adding Dialog.appVersion and adapting Dialog.version for upcoming center releases
In BlackBox 1.6 Dialog.version is a 2-digit INTEGER set to 16, which means BlackBox major version 1.6.
This needs to be updated for the center release 1.7.
In order to make a more detailed version information available to BlackBox users it is proposed
to add a string variable Dialog.appVersion initialized with the System property 'appVersion'.
Furthermore it is proposed to use Dialog.appVersion instead of Dialog.version
for displaying the version information in the status bar after startup of BlackBox.
Dialog.version should be set automatically to the major version number
derived from Dialog.appVersion.

Corresponds to CPC change list number 62.

#19 (Feature, 2015-10-12): Adding 16-bit Unicode support for Component Pascal identifiers
BlackBox 1.6 already supports extended ASCII-characters from the ISO-Latin-1 subset of Unicode for Component Pascal identifiers. For the benefit of the Cyrillic or Greek community, for example, it is required to add 16-bit Unicode support. In order to simplify the required changes in the compiler and runtime system and for providing a compact encoding
of plain ASCII-identifiers the UTF-8 encoding shall be used for representing Unicode identifiers both
internally in the compiler and runtime system and externally in symbol and object files. This also has
the advantage that the symbol and object file formats stay compatible with BB 1.6 as long as plain ASCII
characters are used.  Because Unicode characters may also exist in module names, which are mapped to file names, it is required to add Unicode support to file name handling in a number of modules.
Refers to CPC-1.7 change list items 1, 7, 13, 21, 22, 23.

#21 (Bug, 2014-12-15): Caret blink frozen after 49.7 days
If BlackBox is not restarted within 49.7days, you will find the caret of the text editor frozen, i.e. not blinking at all. The reason is an overflow caused by using an INTEGER for the ticks in Controllers.TickMsg instead of LONGINT.

Reported by Ivan Denisov, 2014-11-22.

#22 (Bug, 2015-02-10): HostFiles.NewWriter violating the specification
According to the specification (System/Docu/Files) in case of read-only files (shared) NewWriter should return NIL. The current implementation, however, generates a TRAP. The specification needs to be aligned with the implementation. In order to be able to avoid the TRAP, two new File methods (Shared() and Closed()) should be introduced that return the file's current state.

Reported by Ilya Ermakov, 2009-10-12.

#23 (Bug, 2015-02-10): fixing bugs in WinApi plus some refinements and extensions
Changes as proposed by Koen Desaeger and Helmut Zinn in CPC_1.7 rc4.
Change all occurrences of WINSPOOL.dll to WINSPOOL.drv (Helmut Zinn)
Change all occurrences of VAR [nil] lpData: SHORTCHAR => lpData: PtrVoid (Koen Desaeger)
Change WM_KEYLAST* = 265; to WM_KEYLAST* = 264 (* {3, 8} *);
Some constants and procedures have been added.
Some data types (SHORTCHAR to BOOLEAN, INTEGER VAR-parameter to ARRAY) have been refined in order to describe the intended data type precisely.

Refers to CPC 1.7 rc4 change list item 4.

#24 (Bug, 2015-01-26): Fixing the name table handling in DevLinker
DevLinker.LinkDll causes a name table overflow (TRAP in DevLinker.Insert)
when the average of the involved name lengths is more than about 20.
This is caused by a fixed size of the name table that is appropriate
only when the names are shorter on average.
Reported by Rainer Neubauer, 2008-02-18

In addition, testing for the need to append the ".dll" suffix in DevLinker.Insert causes a TRAP
when the name table is filled with less than 4 characters.
Reported by Boris Ilov, 2013-08-26.

In addition, the CP compiler accepts longer names than DevLinker does.
This is caused by declaring Name as an ARRAY 40 OF SHORTCHAR in DevLinker instead of 256.
Reported by Josef Templ, 2015-01-15.

Refers to CPC 1.7 change list number 6.

#25 (Bug, 2015-01-26): Fixing a bug in stack overflow handling
After a stack overflow, BB responds with a low-level modal trap dialog.
After closing it and producing another stack overflow, the BB process is terminated.
According to luowy, the reason is that in Kernel.TrapHandler the page guard
is not set correctly after the first occurrence of a stack overflow.

Reported by OberonCore.
Refers to CPC 1.7 rc5 change list number 8.

#26 (Bug, 2015-02-02): Fixing bugs in some BlackBox documentation files
Several bugs in BlackBox documentation files fixed.

- Fix links to License file in BB-Road & BB-Rules
- Add "Silent Trap" in Dev/Docu/User-Man & BB-Rules
- Add links to specifications in Host/Docu/PackedFiles
- Add missing Latin-1 characters in BB-Chars
- Extend list of contributors in Contributors
- Correct predefined identifier sort order in CP-Lang
- Change TextCmds.PasteViewGuard to StdCmds.PasteViewGuard in System/Docu/User-Man

Refers to CPC 1.7 rc5 change list number 2.

#27 (Feature, 2015-02-12): Adding SET conversion to the module Strings
Conversion between Component Pascal SET constants and ARRAY OF CHAR is missing from the module Strings.
A proposal exists in CPC 1.7.
The specification needs to be added to System/Docu/Strings.

Refers to CPC 1.7 rc5 change list number 30.

#28 (Bug, 2015-02-27): Fixing a bug in Strings.Replace in case of truncation
Strings.Replace does not terminate the resulting string with 0X if truncation is needed.
For example: VAR a: ARRAY 5 OF CHAR; a := "ABCD"; Strings.Replace(a, 1, 1, "xy");
"Reported":http://community.blackboxframework.org/viewtopic.php?f=16&t=60 by Manuel Martín Sánchez on 2014-03-21.
In addition, the simple case where the string length is not changed should be optimized.

Refers to CPC 1.7 rc5 change list number 30.

#29 (Bug, 2015-03-26): inconsistent checks for valid subsystem names
The modules DevSubTool and DevLinkChk use inconsistent rules for checking the syntax of subsystem names
in a procedure called SyntaxOK. In addition, Unicode support needs to be added.
The maximum length of subsystem names should be increased from 8 to 15 characters
as proposed by Fyodor Tkachov on 2008-07-16.

Reported by Manuel Martín Sánchez on 2015-01-30.
Refers to CPC1.7 change list item number 10.

#30 (Bug, 2015-03-10): fixing Kernel.IsAlpha for Japanese Hiragana and Katakana
Kernel.IsAlpha returns FALSE for all Japanese Hiragana and Katakana syllables.
Kernel.IsAlpha uses WinApi.IsCharAlphaW, which returns TRUE only for
characters that are either upper or lower case. Using WinApi.GetStringTypeW
would solve the problem and is about twice as fast.

Reported by X512 on the BlackBox Community Forum, 2015-02-07
cf. http://community.blackboxframework.org/viewtopic.php?f=21&t=80

#32 (Bug, 2015-04-29): Folds arrows display
The folds are displaying wrong way both in Wine (in Linux) and Russian language Windows. With English version of Windows folds displaying well.

#33 (Feature, 2015-04-15): adding platform detection for wine, Windows 7, and Windows 8
Wine detection needs to be added in order to be able to handle differences between Wine and Windows properly.
Platform detection for Windows 7 and 8 needs to be added.
Auxiliary functions (IsWindows, IsMac, etc.) are needed for detecting platform groups such as all Windows platforms conveniently and centralized at one place.

Refers to CPC 1.7 rc5 change list item 41 and 42.

#34 (Bug, 2015-04-01): fixing the reuse of open documents
When clicking on a link to a help text that is already open within BlackBox,
a new help text window is opened. This is in contrast to the expected behavior of
reusing the open window (bring to front) as it is done when editing documents.
The reason is a very unsystematic treatment of reuse of open documents in BB 1.6
based mainly on the window title.
Related anomalies arise with other document modes (except edit mode)
and need to be taken into account when changing this behavior.
There are also cases with tool dialogs where there is a wrong reuse if
the same window title is used for different documents.
A proposal for a systematic treatment of reuse of open documents based on
file name, location and document flags instead of window titles is available in CPC 1.7 rc5.

Refers to CPC 1.7 rc5 change list item 9 and Open Points 05.

#35 (Documentation, 2016-01-27): Add docu for DevSelectors
Add documentation for DevSelectors

#36 (Feature, 2015-04-29): support for long identifiers in StdInterpreter
StdInterpreter uses an ARRAY 32 OF CHAR for identifiers, which means that
identifiers longer than 31 characters are not supported. This should be
aligned with the CP compiler, which supports identifiers up to 255 characters.

Reported by Rainer Neubauer, 2012-06-09.
Refers to CPC 1.7 rc5 change list item 11.

#37 (Bug, 2015-05-04): fixing traps with long search patterns in DevSearch
Long search patterns lead to traps in DevSearch.

Reported by Helmut Zinn, 2014-03-20.
Refers to CPC 1.7 rc5 change list number 12.

#38 (Bug, 2015-05-08): report passing receiver parameter IN to VAR
IN parameters are not allowed to be passed as VAR parameters in Component Pascal.
However, in BB1.6 this rule is not enforced by the compiler for the receiver
parameter of a type-bound procedure call. Several modules in the BB1.6 distribution
violate this rule and need to be changed too.
A proposal to fix this exists in CPC 1.7 rc5.

Reported by Oleg N. Cher & Wenying Luo, 2012-08-09.
Refers to CPC 1.7 rc5 change list number 14.

#39 (Bug, 2015-04-23): checking illegal use of SYSTEM.ADR function
When calling SYSTEm.ADR for a code procedure, the compiler generates a TRAP 0.
A proposal from luowy for fixing this bug exists in CPC 1.7 rc5.

Reported by Oleg N. Cher, May 2012.
Refers to CPC 1.7 rc5 change list number 15.
Refers to open points #44.

#40 (Bug, 2015-04-27): fixing concatenation of Unicode character constants
Concatenation of Ascii-character constants is supported in BB 1.6 while
concatenation of Unicode character constants leads to a compile time error message.
For example:
CONST
  asciiStr* = 41X + 61X;   (* OK *)
  unicodeStr* = 410X + 430X; (* Error: operand type inapplicable to + *)
A proposal by Luowy for a bug fix exists in CPC 1.7 rc5.

Reported by Oleg N. Cher, 2014-03-21.
Refers to CPC 1.7 rc5 change list number 16.

#41 (Bug, 2015-04-29): fixing a register allocation problem in the compiler
The following procedure produces a trap in the compiler.

<pre>
PROCEDURE P(IN in : ARRAY 10 OF SHORTCHAR; OUT out : ARRAY 10 OF SHORTCHAR);
BEGIN
 out[Index()] := SHORT(CHR(1 + ORD(in[0])));
END P;
</pre>

The reason is that the right hand side expression is evaluated into a register
that cannot be used for a comparison operation, which is necessary for SHORTCHAR conversion.
A proposal to fix the bug exists in CPC 1.7 rc5 by changing
the register selection order.

Reported/fix proposed by oberoncore, Maliya by dia, 2013-05-19.
See http://forum.oberoncore.ru/viewtopic.php?f=47&t=4087&p=80212#p80205
http://oberspace.dyndns.org/index.php?topic=500.0;topicseen

Refers to CPC 1.7 rc5 change list number 17.

#42 (Bug, 2015-05-11): fixing LONGINT division TRAP
The following module leads to a compiler TRAP:
<pre>
MODULE TestLongintDIV;
TYPE Object = POINTER TO RECORD int: INTEGER END ;
VAR u: Object; L: LONGINT;  
BEGIN NEW(u); u.int :=1;
 L := LONG(u.int) DIV u.int (* compiler TRAP 0 in DevCPC486.CheckAv *)
END TestLongintDIV.
</pre>
A proposal based on contributions by luowy and Aubrey McIntosh for fixing this bug exists in CPC 1.7 rc5 (http://blackboxframework.org/archive/2011/3612.html)

Reported by Robert, 2011-12-18 (http://blackboxframework.org/archive/2011/3621.html).
Refers to CPC 1.7 rc5 change list number 18.

#43 (Feature, 2015-05-18): extending the size of code procedures
The size of code procedures in BB1.6 is limited to 254 bytes.
In some situations larger code procedures are needed.
A proposal by Oleg N. Cher for extending the limit to MAX(INTEGER) exists in CPC 1.7 rc5.

Reported by Oleg N. Cher, 2012-05-10 (http://blackboxframework.org/archive/2012/3377.html).
Refers to CPC 1.7 rc5 change list number 20.
Refers to Open Points #45.

#44 (Bug, 2015-05-10): unicode content of links&targets saving wrong way
If the links & targets contain unicode content (tested for Cyrillic) it is damaged during Externalize/Internalize.

Demo:
<pre>
the link before save
<проверка>some link<>

the link after save, open and expanding
<?@>25@:0>some link<>
</pre>

Also the version of StdLinks.Link is always = 0.

"OberonCore:B2":http://forum.oberoncore.ru/viewtopic.php?f=116&t=3971

#45 (Bug, 2015-05-17): main window does not refresh during resizing
Main window is not updating when its size is changing.
The fix provided by adding two flags 0 & 1 in CreateMainWindows procedure of HostWindows.
<pre>
class.style := {0, 1, 3, 5};   (*  vredraw, hredraw, doubleclicks, privat dc *)
</pre>

Reported by Boris Ilov, 2013-08-26.
http://forum.oberoncore.ru/viewtopic.php?f=131&t=3470&p=83504&hilit=class.style#p83504

Refers to CPC 1.7 rc5 change list number 45.

#46 (Bug, 2015-05-18): interface change not detected
Some changes in the interface of a procedure are not detected by the compiler.
The error occurs with system flags bound to the type of a formal parameter.
For example removing the ccall system flag in the example below is not detected.

MODULE TestSysFlag;
IMPORT SYSTEM;
PROCEDURE P* (p: PROCEDURE [ccall]; x: REAL);
END P;
END TestSysFlag.

A proposal for fixing this issue exists in CPC 1.7 rc5.

Reported by Eugene Temirgaleev, 2013-12-09.
Refers to CPC 1.7 rc5 change list number 19.

#47 (Bug, 2015-05-17): compiler TRAP with SYSTEM.PTR
The following test program produces a TRAP in the compiler.

<pre>
MODULE Test;
IMPORT SYSTEM;
TYPE PVOID = SYSTEM.PTR;
    
PROCEDURE Do();
  VAR pvoid: PVOID;
BEGIN pvoid := pvoid
END Do;

END Test.

</pre>

A proposal by luowy for fixing this issue exists in CPC 1.7 rc5.

Reported by luowy, 2013-07-09.

#48 (Bug, 2015-05-19): fixes in HostPrinter
Two small fixes in HostPrinters are required.
1. dialogCommand uses an undocumented form that has negative side effects on
case sensitive file systems such as on a Novell file server. It opens
the resource file without the proper capitalization and thereby renames the
file and and confuses case sensitive tools such as git or svn.

2. the job's page counter in printing.pnum must be maintained at the
outermost job level, not per document, in order to support nested print
jobs as introduced recently in BB 1.6.
With this change it is then possible to do duplex (two sided) printing
and to start each document on a front side. It also enables one to see
how many pages are printed in total for a nested print job.

A proposal by Josef Templ for fixing these issues in CPC 1.7 rc5 exists.

Reported by Josef Templ, 2013-11-28.
Refers to CPC 1.7 rc5 change list number 54.

#49 (Bug, 2016-05-05): fixes in SqlOdbc/3
The modules SqlOdbc and SqlOdbc3 need fixes for 16-bit Unicode
strings and for a deadlock that can appear in ReadString
when reading truncated strings and in ReadVarString and ReadBlob when reading multiple parts of a column.

A proposal for some of the fixes exists in CPC 1.7 rc5.

Reported by Eugene Temirgaleev, 2010-06-22, and Josef Templ, 2008-08-04.
Refers to CPC 1.7 rc5 change list number 23.
Refers to OberonCore B6, B10 & Open Points 36.

#50 (Feature, 2015-05-27): unlimited number of columns in SqlControls.Control
BB 1.6 has a limit of 40 columns for tables used to display the result of SQL queries.
This limit results from fixed size arrays used internally.
The limit is too low and allocating the arrays dynamically would
avoid the limit completely. A proposal by Josef Templ for fixing
this issue exists in CPC 1.7 rc5.

Reported By Josef Templ, 2008-03-08.

Refers to CPC 1.7 change list number 24.
Refers to Open Points #09.

#51 (Feature, 2015-05-27): support for ANYPTR and SYSTEM.PTR in Meta.LookupPath
In BB 1.6 pointers of type ANYPTR and SYSTEM.PTR are not supported in Meta.LookupPath.
A proposal for adding support for ANYPTR is provided in CPC 1.7 rc5.

Reported by Peter Cushnir, 2013-07-11.

Refers to CPC 1.7 rc5 change list number 25.
Refers to Open Points #56.

#52 (Bug, 2015-06-01): fixing wrong DevCommanders.par.beg/end
The calculation of DevCommanders.par.beg/end needs to be fixed.
1. When an EndView immediately follows the command, that view is ignored.
2. When the parameters are terminated by the end of the text (eot) the last character is excluded.

A proposal for the required changes by Eugene Temirgaleev exists in CPC 1.7 rc5.

Reported by Eugene Temirgaleev, 2010-07-26.
Refers to CPC 1.7 rc5 change list number 26 (1 of 5 sub-issues).
Refers to OberonCore B11.

#53 (Feature, 2015-06-01): support for empty text in DevCompiler.CompileText
DevCompiler.CompileText generates a TRAP 21 when applied to an empty text.
A proposal by E. Temirgaleev for lifting this limitation exists in CPC 1.7 rc5.

Reported by E. Temirgaleev, 2010-07-26.
Refers to CPC 1.7 rc5 change list number 26, sub-issue 2 of 5.
Refers to OberonCore B12.

#54 (Bug, 2015-06-02): DevDebug.UnloadThis must use DevCommanders.par.text
DevDebug.UnloadThis reads the list of modules from the active text instead of DevCommanders.par.text.
A proposal by E. Temirgaleev for the changes is provided in CPC 1.7 rc5.

Reported by E. Temirgaleev, 2010-04-23

Refers to CPC 1.7 rc5 change list number 26, sub-issue 3 of 5.
Refers to OberonCore B9.

#55 (Bug, 2015-06-02): DevPacker.RemoveWhiteSpaces loops at the end of the text
DevPacker.RemoveWhiteSpaces loops at the end of the text.
A proposal by E. Temirgaleev for the changes is provided in CPC 1.7 rc5.

Reported by E. Temirgaleev, 2011-07-24.

Refers to CPC 1.7 rc5 change list number 26, sub-issue 4 of 5.
Refers to OberonCore B16.

#56 (Bug, 2015-06-09): fixes in HostFiles
An endless recursion results in CreateDir if GetPath returns an unchanged result.
Reported by Rainer Neubauer, 2015-01-06.

Sharing error must be handled in Delete.

Inappropriate res set in FileList and LocList in some cases if option /USE is used.
A similar bug exists in HostPackedFiles
Reported by E. Temirgaleev, 2009-09-11.

Symbolic name needed for result code 87: paramErr.
Reported by Josef Templ, 2015-05-29.

LocList ignores all directories starting with '.' but should only ignore the names "." and "..".
Reported by E. Temirgaleev, 2012-05-19.

A flag is needed for suppressing the OK/Cancel dialog when creating a new directory
independent from option 'ask'. This makes it possible to use HostFiles
without any changes in an automatic build system because the CP compiler always uses option 'ask'.
Reported by Josef Templ, 2015-05-29.

A proposal for most of the changes is provided in CPC 1.7 rc5.
Refers to CPC 1.7 rc5 change list number 27, sub-issue 1 of 3.
Refers to OberonCore B2, B17.

#58 (Bug, 2015-06-18): fixes in HostPackedFiles
Inappropriate res set in FileList and LocList in some cases if multiple directories are used.
A similar bug exists in HostFiles (see issue #56).
Reported by E. Temirgaleev, 2009-09-11.
Refers to OberonCore B2.

res not set in some operations.
Reported by E. Temirgaleev, 2011-03-18.
Refers to OberonCore B3.

Refers to CPC 1.7 rc5 change list number 27, sub-issue 3 of 3.

#60 (Feature, 2015-06-20): underlining white space
In BB1.6 it is not possible to underline spaces and tabs
as it is usual in text processors such as Microsoft Word or Open Office.
In order to be able to use BB based applications in an office environment
for producing professional style text documents it is required to have
underlined white spaces. The same applies to strikethrough.

A proposal by J. Templ for adding this feature exists in CPC 1.7 rc5.

Refers to CPC 1.7 rc5 change list number 33, 34, and 66.

#61 (Feature, 2015-06-17): Unicode support for fold labels
The 'label' property of a fold element (StdFolds.Fold) is stored as
a short string in BB1.6. The storage format needs to be extended in order
to support 16-bit Unicode strings.
A proposal by Ilya Ermakov et al. for the changes exists in CPC 1.7 rc5.

Reported by Eugene Temirgaleev, 2009.
Refers to CPC 1.7 rc5 change list number 28, sub-issue 1 of 3.
Refers to OberonCore B5, B15.

#62 (Feature, 2015-06-19): Unicode and Internationalization support for StdStamps
The history 'comment' property of a stamp element (StdStamps.StdView) is stored as
a short string in BB1.6. The storage format needs to be extended in order
to support 16-bit Unicode strings.
In addition a resource mapping should be added for the title when opening the tool dialog.

A proposal by Eugene Temirgaleev et al. for the changes exists in CPC 1.7 rc5.

Reported by Eugene Temirgaleev, 2009.
Refers to CPC 1.7 rc5 change list number 28, sub-issue 3 of 3.
Refers to OberonCore B5.

#63 (Bug, 2015-10-12): fixes in StdStamps
The following problems have been identified for module StdStamps:
- changing non-empty comment to empty comment corrupts the file format
- storing multiple times on the same day adds zero entries to the history
- comments are always related to the first stamp in the focus text
- comments and date/time of old entries cannot be edited
- uncommented entries should be removed first in case of overflow
- text marked 'to be removed soon' should be removed
- formal parameters should use IN resp. OUT in "Stamp" & "GetInfo".
A proposal for the changes by Helmut Zinn and Robert Campbell exists in CPC 1.7 rc6.

The issue has been reported by Robert Campbell, 2015-01-24.

#64 (Bug, 2015-10-12): Wingdings dependency in StdLinks
In BB1.6 StdLinks use the font 'Wingdings' for displaying special link and target glyphs.
This font is not available under all Windows versions (e.g. XP) and it is
not available under Wine either. It is also not available in the same form
under all Windows versions, for example the russian Windows version
needs to prepend 0F0H to the character codes, which then refer to user
defined Unicode characters. The resulting 2 byte codes still work for
most Windows versions, though.
If the default appearance is used this would require a mapping of
the displayed text for non-english versions and a change from
SHORTCHAR to CHAR for the link and target texts.

Refers to CPC 1.7 rc5 change list number 28 (sub-issue 2 of 3).
Refers to OberonCore B5.

#65 (Bug, 2015-07-15): notRecorded-operation overwrites Redo-tail in StdSequencer
The redo stack is overwritten in case of a notRecorded operation in Windows.StdSequencer.Do.
A proposal for a fix by Alexander Iljin exists in CPC 1.7 rc5.

Refers to OberonCore B13.
Refers to CPC 1.7 rc5 change list number 29.

#66 (Feature, 2015-08-17): improvements in StdScrollers
For getting access to the view wrapped by a StdScrollers.View
an accessor function (WrappedView) is required. Such a function
is for example used by the CPC package Hermes.
Reported by Gérard Meunier, 2007-06-05.

Redundant updates should be avoided in View.HandleCtrlMsg
in order to save memory and CPU resources.
Reported by Ilya Ermakov, 2006-12-15.

A proposal by Gérard Meunier and Ilya Ermakov is available from CPC 1.7 rc5.

Refers to CPC 1.7 rc5 change list number 31.
Refers to Open Points #03.

#67 (Feature, 2015-07-29): improvements for Obx->Primes...
In BB 1.6 the primes are computed slowly, which gives the user the
impression that BB is slow. A user controlled 'Step Size' should be introduced
in order to allow experimenting with different step sizes and thereby different speeds.

The output text should be opened right at the beginning
when pressing 'Start'. In BB 1.6 it is opened after all primes are computed,
which can take a very long time without the speedup facility.

The dialog should not be closed after pressing 'Start'.

Reported by an unknown BB user, 2006-01-13.

Refers to CPC 1.7 change list number 32.

#68 (Feature, 2015-10-05): option for suppressing Dialog.Beep
In case of operating BlackBox in a shared office or in a train, for example,
it is required to offer a feature for shutting off the beep created by a call
to Dialog.Beep. The Edit->Preferences... dialog should be used for storing
the user's preference with respect to suppressing the beep or not.
It should be noted that the beep cannot be shut off by setting the speaker volume
to zero because the beep is created by using a dedicated output device
at least on many if not all Windows PCs.

A proposal for this feature exists in CPC 1.7 rc5.
Proposed by J. Templ 21.11.2013.

Refers to CPC 1.7 rc5 change list numbers 51 and 52.

#69 (Bug, 2015-10-12): Printing.NewDefaultPar does not set footer font
Printing.NewDefaultPar sets par.header.font twice instead of setting par.footer.font.

A proposal for the fix by Gerhard Marent exists in CPC 1.7 rc5.
Reported by Gerhard Marent, 2012-03-20.

Refers to CPC 1.7 rc5 change list number 55.
Refers to Open Points #39.

#70 (Bug, 2015-10-12): resetting a menu item label to its original value in a guard
When the label of a menu item is changed by a guard, it cannot be reset to its original value later due to an inappropriate optimization in HostMenus.PrepareMenu.
A proposal for the fix by Gerard Meunier exists in CPC 1.7 rc5.

Reported by Gerard Meunier, 2013-11-19.
Refers to CPC 1.7 rc5 change list number 38.

#71 (Bug, 2015-10-12): fix for case insensitive sort in Info->Menus
The list of subsystems does not sort alphabetically if a subsystem name starts with a lowercase letter. The intention from the existing code is obviously that it should sort in a case insensitive way but it has a bug in its last line of HostMenus.Comp.
In addition the fix should support case insensitivity for all Unicode characters, not
only for ASCII.
A proposal by Helmut Zinn for a fix exists in CPC 1.7 rc5.

Reported by Helmut Zinn 2014-03-07.
Refers to CPC 1.7 change list number 39.

#72 (Bug, 2015-10-18): speeding up the dump of large data structures
DevDebug and StdDebug use the expensive Flip operation for folds inserted for records and arrays. In case of dumping large data structures this slows down the generation of the dump so much that users may think that the system has crashed.

Reported by Ilya Ermakov, 2012-10-28.
http://forum.oberoncore.ru/viewtopic.php?f=131&t=4136&p=75740#p75740

Refers to CPC 1.7 rc5 change list number 45.

The code for bug demonstration:
<pre>
MODULE TestDo;
  IMPORT  Log, Math;
  PROCEDURE Test*;
  VAR dat: ARRAY 4096 OF ARRAY 2 OF ARRAY 2 OF INTEGER;
  BEGIN
  HALT(0)
  END Test;
END TestDo.Test
</pre>

#73 (Feature, 2015-12-03): Custom tags in headers and footers
For the situation where a non-standard tag is required in a text header or footer element a hook is required that allows to extend the set of available tags in an application specific way. An example is text that is only printed in the header or footer of the first page of a document or vice versa. Instead of adding more tags to module Printing it is simpler, more flexible, and fully backwards compatible if a hook is provided that allows custom tags to be implemented.
A proposal by J. Templ exists in CPC 1.7 rc5.

Reported by J. Templ on 2013-11-25.
Refers to CPC 1.7 rc5 change list number 56.

#74 (Bug, 2015-12-03): Letter 'z with caron' missing in HostTextConv.ThisWndChar and WriteWndChar
The letters 'z with caron' and 'Z with caron' from the extended Latin-1 character set are missing in HostTextConv.ThisWndChar and WriteWndChar.
A proposal for the fix by J. Templ exists in CPC 1.7 rc5.
Reported by J. Templ on 2013-11-25.

Refers to CPC 1.7 rc5 change list number 49.
Refers to Open Points #06.

#75 (Bug, 2015-12-03): fixig text search with 'Word Begins/Ends With' option
The rules for detecting word begin/word end in a text search with the 'Word Begins/Ends With' option(s) need to be refined because they produce unexpected results.
For example searching for 'pattern' in the text ')pattern' does not find it.
The field widths for 'Word Begins/Ends With' options need to be increased in the Find/Replace dialog.
In addition,the handling of non-ASCII characters needs to be refined
as reported by Ivan Denisov on 2013-08-19.

Refers to CPC 1.7rc5 change list number 47.

#76 (Bug, 2015-12-03): fixes for OLE automation
NIL option for parameters 'par' and 'ret' in CtlT.OutObject.Invoke required.
NIL test required in CtlC.RetObj.
A proposal by Eugene Temirgaleev for the changes exists in CPC 1.7 rc5.
Reported by Eugene Temirgaleev, 2007-05-09.

Refers to CPC 1.7 rc5 change list number 57.
Refers to Open Points #01, #02.

#77 (Bug, 2015-12-03): DevCPT.InSign should use outBit instead of inBit for outPar
DevCPT.InSign uses inBit for both inPar and outPar instead of using outBit for outPar.
A proposal by Oleg N. Cher for the required change exists in CPC 1.7 rc5.
Reported by Oleg N. Cher, 2014-07-16.

Refers to CPC 1.7 rc5 change list number 64.

#78 (Bug, 2015-12-03): fixing type of WinNet.hostent.h_addr_list
The open array element type of 'WinNet.hostent.h_addr_list' is defined in BB1.6 as a pointer to an untagged open array of in_addr. This definition has two errors:
1. it assumes that all addresses are IPv4 addresses (in_addr), and
2. it defines an array of them of which only the first element can be used.
A proposal by Stewart Greenhill for a fix exists in CPC 1.6 rc5.
Reported by Stewart Greenhill, 1998-07-03.

Refers to CPC 1.7 rc5 change list number 67.

#79 (Bug, 2016-01-24): bug fixes in StdTabViews
View.SetIndex needs to call 'Neutralize' in order to prevent locking some controls (in particular list boxes) in the nested form view. Reported by luowy, 2015-10-28.

View.Neutralize needs to test the embedded view for NIL.
Refers to oberoncore B19.

TrapCleaner.Cleanup needs to set t.v.tc to NIL before calling t.v.Reset in order to prevent calling PopTrapCleaner and thereby emptying the trap stack.
Refers to oberoncore B20.

#80 (Feature, 2016-01-12): localizable menus
The labels for menus and menu items should use Strings resources
(mapping via Dialog.MapString) in order to support localization
for other languages.
A proposal exists in CPC 1.7 rc5.
Reported by Helmut Zinn and Ivan Denisov 2014-10-12.

Refers to CPC 1.7 rc5 change list numbers 69, 70.

#81 (Bug, 2015-12-03): supporting empty localAdr in CommTCP
The docu of CommTCP states that an empty localAdr refers to localhost.
Since this does not work under all versions of Windows, the address 127.0.0.1
(localhost) should be inserted automatically in case of an empty localAdr.
This would solve the problem with the example modules CommObxStreamsServer
and CommObxStreamsClient.

In addition, CopyOfAdrString should copy the input string as expected.
Currently it allocates a copy and then returns the input string.

#82 (Bug, 2015-12-07): improving Bitmap zooming quality
BB  can draw bitmap easily into a textview ,
but the qulality is bad when it is zoom in or out.

e,g:
  1,open a empty window(textview);
  2,past a picture to it;
  3,drag the view's border to scale it;
 4,then You will find the picture is drawn ugly.

my patch is add two line code at HostPorts.Rider.DrawBitmap:
 ...
   >>res := WinApi.SetStretchBltMode(dc, WinApi.HALFTONE); <<add this line
   >>res:=WinApi.SetBrushOrgEx(dc, 0, 0, NIL);             <<add  this line
   res := WinApi.StretchBlt(dc, x DIV u, y DIV u, w DIV u, h DIV u, bmdc, 0, 0, bw, bh, copy)
 ....

#83 (Feature, 2015-12-03): Different window title for Mod, Rsrc, and Docu files
If you select the following 3 lines
  Std/Mod/Cmds.odc
  Std/Rsrc/Cmds.odc
  Std/Docu/Cmds.odc
and click the menu item 'Dev -> Open File List', then all three files
have the same window title, which makes it impossible to select the
right window in the 'Windows' menu.

A proposal by Trurl for different window titles exists in CPC 1.7 rc5.
The proposal uses different brackets for different kinds of files.
Reported by Trurl, 2007-07-20.

Refers to CPC 1.7 rc5 change list number 60.

#84 (Bug, 2015-12-03): unloading DevDebug produces a sequence of Traps
The command 'Dev -> Unload' generates a Trap with several follow-up Traps when the module DevDebug itself is unloaded because it is used for executing the UNload command.
A proposal for a fix by Trurl exists in CPC 1.7 rc5. It avoids the Traps and outputs an error message instead.
Reported by Trurl, 2014-09-25.

Refers to CPC 1.7 rc5 change list number 65.

#85 (Bug, 2015-12-03): Trap in DevDependencies with long module names
Very long module names can produce a Trap in DevDependencies operations due to the fixed size of Stores.OpName. In order to avoid the Traps, operation names that contain a module name must be truncated.

#86 (Feature, 2016-01-12): improvements in RTF import
RTF import in HostTextConv should be improved with respect to:
- support for hyperlinks,
- support for code pages,
- support for tables,
- support for superscript and subscript,
- skipping of headers, footers, and footnotes.
A proposal for the changes by Helmut Zinn exists in CPC 1.7 rc6.

Refers to CPC 1.7 rc6 change list number 48 and 73.

#87 (Feature, 2016-01-15): adding support for LONGINT in SqlDrivers.Table
For the sake of completeness support for the type LONGINT should be added to SqlDrivers.Table. As a welcome side effect this would also avoid a trap when reading Dialog.Currency values when the size of the table is not known.

#88 (Feature, 2016-01-12): support for localizable documentation
The menu items 'Info->Documentation' and 'Info->Search in Docu (xxx)' should support localizing the documentation according to the selected language.
The support should be added in the same way as used by Dialog.LoadStringTab for localizable Strings resources.
A proposal for the changes by Helmut Zinn and Fyodor Tkachov exists in CPC 1.7 rc6.

Refers to CPC 1.7 rc6 change list number 50.

#89 (Feature, 2016-01-04): adding language selection to Preferences dialog
In order to support multiple languages the 'Preferences' dialog (Host/Rsrc/Prefs.odc) needs to be extended with a language selection.
A proposal by Helmut Zinn for the changes exists in CPC 1.7 rc6.

Refers to CPC 1.7 change list number 52.

#90 (Feature, 2016-01-15): adding horizontal scroll bar to list boxes
List and Selection boxes should show a horizontal scroll bar if one of the item texts exceeds the width of the box.
A proposal by Mathieu Westerweele for the changes exists in CPC 1.7 rc6. 2014-03-20.

Refers to CPC 1.7 rc6 change list number 59.
Refers to Open Points #33.

#91 (Bug, 2015-12-07): bug fix in HostMechanisms.PopUpAndSelect
WinApi.CheckMenuItem must use WinApi.MF_CHECKED instead of WinApi.MF_GRAYED.
A proposal for the change exists in CPC 1.7 rc6.
Reported by Helmut Zinn, 2009-07-14.

Refers to CPC 1.7 change list number 40.

#92 (Feature, 2016-01-15): office automation
The Ctl subsystem contain some old bindings to Microsoft Office.
There are two possible solutions.
1. Remove some old bindings and in future add new
2. Separate Ctl to an component that can be installed like other third parties components

In fact that there is an alternative binding to Open Document format:
https://bitbucket.org/oberoncore/odf
it seems that second variant preferred.

#93 (Feature, 2016-01-15): opening a form with a tab view
When you open (using OpenAux for example) a Form it is automatically converted from Layout mode to Mask mode which is a real convenience. However Forms on the Tabs of a Tab View in a Form are not converted.

#94 (Feature, 2016-01-24): using BlackBox without the Windows registry
In order to run BlackBox without using the Windows registry a command line option is required that allows one to specify a Windows .INI file to be used for reading and writing the BlackBox configuration settings.
A proposal for the changes by Koen Dessenger exists in CPC 1.7 rc6.

Refers to CPC 1.7 rc6 change list number 36.

#95 (Bug, 2016-01-27): fixes in TextMappers.Scanner with option 'interpretSets'
Scanning sets needs the following fixes:

1. checks for missing or duplicate commas
2. the start position should be set to the opening "{"
3. incomplete sets that are terminated by eot (end of text) should always yield 'invalid'.

#96 (Bug, 2016-02-06): Slow rendering of Unicode texts
Rendering text with Unicode characters, for example Cyrillic texts, is slow and of poor quality. The reason is that in TextSetters.GatherString Cyrillic and other non-ASCII characters are treated as one string per character. By adding a rule for Strings.IsAlpha() it would be possible to produce longer strings that contain arbitrary Unicode characters.

Reported by Ivan Denisov, 2016-01-18.

#97 (Documentation, 2016-04-09): Create Docu for (System)Kernel
Currently there is no technical content in the Docu file.

#98 (Feature, 2016-02-06): improvements of GUI controls
The following improvements of the BlackBox 1.6 GUI controls are needed:
- Mouse wheel support for TimeField, Datefield, UpdownField, ComboBox.
- Standard popup menu and shortcut keys in Field, UpdownField.
- Selectively disabling some context menu entries, in particular for password fields.
- Field update after an invalid input.
- UpdownField supports change by one decimal order with Ctrl key.

Reported by Koen Dessenger, NextBox, 2012-03-17.
A proposal by Koen Dessenger for the changes exists in CPC 1.7 rc6.

Refers to CPC 1.7 rc6 change list number 37.
Refers to Open Points #58.

#100 (Documentation, 2016-04-20): Review all the existing documentation
The following fixes and more should be done in the existing documentation of BlackBox.

1. Remove MacOS references
2. There are several typos (for example: "dangLing pointers" in Tour)
3. One view should be moved from ObxCtrls sources to ObxCtrls docu
4. add docu of compiler options
5. add default range checking behavior
etc.

#101 (Feature, 2016-02-25): improvements for the standard properties inspector
The standard properties inspector dialog (Dev/Rsrc/Inspect) needs buttons that navigate to the source code of the specified Link, Guard, and Notifier.
Proposed by J. Templ, 1997.

The control for 'Level' should be changed to an 'UpDownField'.
Proposed by Robert, 2016-01-28.

#102 (Feature, 2016-02-25): improvements for color selection in menu Attributes
Color Green should be changed to a darker tone because it is hard to read on displays.

Refers to CPC 1.7 rc6 change list number 40.

#103 (Bug, 2016-02-25): bug fix in TextMappers.Scanner
A Scanner with option 'returnViews' but without option 'maskViews' delivers wrong results for masked views.
A proposal for a fix by TemirgaleevEE exists in CPC 1.7 rc6.

Refers to CPC 1.7 rc6 change list number 53.
Refers to oberoncore B23.

#104 (Feature, 2016-04-09): calling URLs and commands (InfoCmds capabilities)
Many components are using links to Internet pages or to mail applications with "mailto:".

Now several different approaches are coexisting:
InfoCmds.Start (CPC by Zinn)
http://zinnamturm.eu/downloadsIN.htm#Info
i21sysCalls.Open (OberonCore components collection)
http://oberoncore.ru/bbcc/subs/i21sys/calls
CpcCalls.Open (MOLPIT components collection)
http://gitlab.molpit.org/molpit/blackbox-red/blob/master/Cpc/Mod/Calls.odc

I am suggesting to add such feature to basic BlackBox.

#105 (Feature, 2016-04-02): background task processing while mouse tracking
During mouse tracking, i.e. while one of the mouse buttons is pressed,
there is no execution of background tasks in BlackBox 1.6.
Executing tasks within the mouse tracking loop would increase the responsiveness
of BlackBox applications that run as a server.

Proposed by mc, 2006-03-25.

Refers to CPC 1.7 rc6 change list number 40.

#107 (Bug, 2016-06-05): views freezing
Views are freezing while menus interaction or text drop-down operations.

#108 (Bug, 2016-04-15): BlackBox Start up warnings
BlackBox does not notify the user when it fails to load a module at start up,
and it should.  The offending module name should be shown via, say, Dialog.ShowMsg.

#109 (Bug, 2016-03-17): Bounds checking in Kernel.MakeFileName
The arrays bounds checking logic assumes that the file type is 3 characters long. This can lead to unnecessarily rejecting supplied types, and can cause a run-time index-out-of-range trap.

#110 (Feature, 2016-04-02): use mapped strings for labels in all forms
In order to support localization of BlackBox forms it is required to
use mapped strings for labels within all forms.

Refers to CPC 1.7 rc6 change list number 71, 72.

#111 (Feature, 2016-04-15): code cleanups
Removal of unused imports, variables, commented code, pointer dereferences (^), etc.

Refers to CPC 1.7 rc6 change list numbers 22, 74.

#113 (Bug, 2016-06-02): fixes for XHTML export
1. Converting a pair of views of type StdLinks.Target ignores the closing view and thereby confuses the nesting of html elements, which leads to invalid html.
2. Many 2-byte Unicode characters are dropped during export.
3. Converting links with the command 'Dialog.OpenExternal' needs to be supported.
4. The generated html should follow the XHTML standard without any exceptions. This can be done by using CSS.
5. More character and paragraph attributes need to be supported, in particular strikeout, font-size, text-align, margin-top, margin-left, width, text-indent. This is also possible by using CSS.
6. Sequences of spaces are not converted correctly.
7. Empty paragraphs are ignored in html and need to be turned into non-empty paragraphs by inserting a non-breaking space.
8. The page title should be taken from the window title, if possible.
9. Newlines should be converted into <br/> elements instead of paragraphs.
10. Attribute values that come from the input text must be html encoded.
11. The utf-8 encoding should be specified in a <meta> element in the header section in order to be used by browsers.
12. The user's setting for the default font should be used for default font face and size.
13. Links should not form a separate paragraph but should be embedded in the surrounding text.

#116 (Bug, 2016-07-27): calling Dialog.Update in the notifier of a selection box does not work as expected
Selection boxes report editing operations as a sequence of notifier calls because in the general case there may be multiple from/to ranges of affected entries. If a notifier calls Dialog.Update for its interactor this sets the selection box to the current (unfinished) state and terminates the editing operation before all changes are done.
As an example of the buggy behavior see the Info->Decode tool and try to select the first line and then the second line with a Mouse-Left click.
As a solution, it is proposed to delay the Update of a selection box in HostCFrames until all changes belonging to an editing operation have been done. This would also improved the runtime behavior from quadratic to linear.

Reported by J. Templ, 2016-07-04.

#117 (Bug, 2016-07-24): fixes for non-local drop behavior
The following fixes are required for non-local drag-and-drops, i.e. where source and destination views are different.

1. When moving the selection from a nested view to a parent view (e.g. when using nested forms), the selection is not deleted in the source view, which effectively creates a copy operation. This unintended behavior results from an inappropriate ordering of insert and delete operations in Containers.TrackToDrop where the  insert is done first and as a side effect it can clear the selection used by the delete step.

2. The focus should be set to the drop target.

3. If the selection is not a singleton, all inserts should be grouped together by means of a script.

4. In case of moving within a shared domain, i.e. where the drop source and target have a common undo-stack, there should only be a single 'Moving' operation instead of two operations (Insert + Delete).

Reported by X512 on the BlackBox community forum, 2016-07-11.
Fixes proposed by X512.

#118 (Bug, 2016-08-03): commander does not show error message
If a commander (DevCommanders.View) executes a command it does not show an error
message when the text following the commander is neither a quoted string nor a
qualified identifier.
This appears in particular when a double-quoted string is used for executing a
sequence of commands and the string is longer than 256 characters.
The limit of 256 characters should be lifted and an error message should be displayed
if a command is not well-formed.

#121 (Bug, 2016-08-12): compiler warning regarding unreleased register
Compiling an assignment as shown below leads to a compiler warning
resulting from a self-check contained in the compiler.
The warning is displayed in the Log window as AX.
It means that register AX has not been freed.

VAR b: BYTE;
b: = SHORT (SHORT (SHORT (FunctionReturningLONGINT())));

A proposal for a fix by luowy exists.
Reported by Oleg N. Cher, 2016-07-06.

#122 (Feature, 2016-08-19): enabling write access to list of installed converters
The list of installed converters (anchored in Converters.list) in BlackBox 1.6 is only
available in read-only form to programs. Therefore, it is not possible, for example,
to reorder converters or to remove converters that have been installed.
The field Converter.next would need to be exported as read+write for that purpose.

Proposed by Doug Danforth, 2016-06-21.

#123 (Bug, 2016-08-26): "Show Extension Interface" is not showing *Hook procedures
"Show Extension Interface" gives you information about the hooks as well.
Unfortunately, this does not show the procedure Kernel.SetLoaderHook but only the related hook types and variables.

#125 (Bug, 2016-08-31): Compiler TRAP for WITH statement
Compiling a statement of the form "WITH ELSE END" leads to a compiler TRAP.

#126 (Bug, 2016-09-02): Compiler TRAP for SYSTEM.VAL(LONGINT, intreg)
Compiling for example the expression <pre>SYSTEM.VAL(LONGINT, y * 2)</pre> with y: INTEGER leads to a compiler TRAP. The second register required for a LONGINT register pair is undefined in this case. If it happens to be a large value it leads to a TRAP when testing the register for membership in a SET of registers.


Reported by Josef Templ, 2016-08-23.

#127 (Bug, 2016-09-05): TextViews.ShowRange does not clear the auto-scroll range
A single text.Insert(...) operation followed by a TextViews.ShowRange(text, ...) does not scroll to the requested position but to the end of the insertion.
This results from the auto scroll mechanism of TextControllers, which scrolls a text lazily to the position of the last modification.
TextViews.ShowRange therefore should clear the auto scroll range if there is one.

#128 (Bug, 2016-09-12): Assignment of named empty string to ARRAY OF SHORTCHAR does not work
The assignment of a named empty string to an array of SHORTCHAR does not work.
Instead of assigning 0X to the first array element, -1 is assigned.

Reported by Josef Templ, 2016-09-06.

#129 (Feature, 2016-09-12): command for generating a compile list for a set of subsystems
A command is required for generating a list of modules in compile order for a given set of subsystems. Such a command could be used e.g. for migrating to BlackBox to 1.7, which requires recompilation of all existing sources.