https://wiki.freepascal.org/api.php?action=feedcontributions&user=Paul+Ishenin&feedformat=atom
Free Pascal wiki - User contributions [en]
2024-03-29T10:19:44Z
User contributions
MediaWiki 1.35.6
https://wiki.freepascal.org/index.php?title=User_Changes_Trunk&diff=75731
User Changes Trunk
2014-01-11T14:53:42Z
<p>Paul Ishenin: /* Windows/x86_64 */</p>
<hr />
<div>== About this page==<br />
<br />
Listed below are intentional changes made to the FPC compiler (trunk) since the [[User_Changes_2.6.2|previous release]] that may break existing code. The list includes reasons why these changes have been implemented, and suggestions for how you might adapt your code if you find that previously working code has been adversely affected by these recent changes. <br />
<br />
The list of new features that do not break existing code can be found [[FPC_New_Features_Trunk|here]].<br />
<br />
== All systems ==<br />
<br />
=== Implementation changes ===<br />
<br />
==== Exception type for object reference checking changed ====<br />
* '''Old behaviour''': When object reference checking (''-CR'' or ''{$OBJECTCHECKS ON}'') is enabled and the unit ''SysUtils'' is used then an exception of class ''Exception'' with localizeable message ''Unknown runtime error 210'' is created.<br />
* '''New behaviour''': Now an exception of class ''EObjectCheck'' with localizeable message ''Object reference is Nil'' is created.<br />
* '''Reason''': All other runtime errors in the 2xx range have appropriate exception types, so it is only natural to have an explicit type for runtime error 210 as well.<br />
* '''Remedy''': If your code previously checked an exception for the message ''Unknown runtime error 210'' you should now check for the exception class ''EObjectCheck''.<br />
<br />
==== Literal storage memory has been made read-only ====<br />
<br />
* '''Old behaviour''': read-only data segments were ''de facto'' not supported, and all data could be modified at runtime even if it was not intended for modification (except in some cases on Darwin). This could cause nasty side-effects, e.g the following code:<br />
<br />
<syntaxhighlight><br />
uses sysutils;<br />
var<br />
s: ansistring;<br />
begin<br />
s := 'ansi string';<br />
Writeln(AnsiStrUpper(pchar(s)));<br />
s := 'ansi string';<br />
Writeln(s);<br />
end.<br />
</syntaxhighlight><br />
<br />
would modify the contents of data segment and print<br />
<br />
ANSI STRING<br />
ANSI STRING<br />
<br />
* '''New behaviour''': Data that is not intended to be modified at runtime is put into a read-only segment. This includes literal constants used in expressions and typed constants declared in {$J-} state. Any code which modifies such data (as in the above example) will now crash.<br />
* '''Reason''': This is consistent with the way other compilers (including Delphi) work. Keeping data read-only as much as possible improves a program's loading speed because read-only pages can be mapped directly to the executable file. This also improves program security.<br />
* '''Remedy''': is very code-dependent. In the example above, it is sufficient to call <tt>UniqueString(s)</tt> before <tt>AnsiStrUpper</tt><br />
<br />
==== ''UNICODE'' is defined depending on the mode switch ====<br />
* '''Old behaviour''': When the modeswitch was changed the definition of ''UNICODE'' was not changed.<br />
* '''New behaviour''': If the modeswitch is changed to ''delphiunicode'' the ''UNICODE'' will be defined otherwise it will be undefined.<br />
* '''Reason''': In Delphi 2009 and newer the type String is defined as UnicodeString and ''UNICODE'' is defined there by default as well. For improved Delphi compatibility ''UNICODE'' will be automatically defined if the String type is set to be equal to UnicodeString.<br />
* '''Remedy''': Don't rely on checks for ''UNICODE'' before the mode switches. Also compile time checks for ''UNICODE'' that appear after a modeswitch like ''objfpc'' or ''delphi'' will no longer be evaluated to true.<br />
<br />
=== RTTI changes ===<br />
<br />
==== RTTI for Pointers and Class References ====<br />
* '''Old behavior''': Pointers and Class References had tkUnknown RTTI.<br />
* '''New behavior''': Pointers now have RTTI type tkPointer, and class references have the RTTI type tkClassRef. Each now contains a reference to a type they point to.<br />
* '''Reason''': Both user requests and Delphi compatibility.<br />
* '''Remedy''': The TTypeKind enumeration has more members than before. Adjust any code which uses TTypeKind accordingly.<br />
<br />
==== RTTI for AnsiStrings ====<br />
* '''Old behavior''': AnsiString RTTI previously lacked CodePage information.<br />
* '''New behavior''': A new CodePage member has been added for the tkAString type.<br />
* '''Reason''': This is required for serializing/deserializing of published AnsiString properties, and is now compatible with Delphi.<br />
* '''Remedy''': not known<br />
<br />
==== RTTI for Arrays ====<br />
* '''Old behavior''': tkArray had no member in the TTypeData record, although internally the compiler stored these members: first dimension size, first dimension element count and first dimension element type. So for a 2 dimension array element the type was array for the second dimension.<br />
* '''New behavior''': tkArray now has a TArrayTypeData structure in TTypeData. It has the following members: total array size including all dimensions, total element count, last dimension element type, number of dimensions, type information for each dimension range.<br />
* '''Reason''': This provides more comprehensive RTTI, and is compatible with Delphi.<br />
* '''Remedy''': If your code internally used the older RTTI array information you will need to adapt it to take account of the newly provided TArrayTypeData information.<br />
<br />
==== RTTI for Records ====<br />
* '''Old behavior''': Records RTTI stored field Offsets as 32bit integers.<br />
* '''New behavior''': Records RTTI stores field Offsets as platform-dependent integers (the same size as pointers).<br />
* '''Reason''': Internally the compiler stores Offsets as platform-dependent integers. The new behaviour is Delphi-compatibile.<br />
* '''Remedy''': You need to adjust your code if you used field offsets of record RTTI. This is also true if your code processes any vInitTable field within the VMT of a class.<br />
<br />
==== RTTI for Procedural Variables ====<br />
* '''Old behavior''': tkProcVar lacked any member in the TTypeData record and the compiler stored no information about procedural variables.<br />
* '''New behavior''': tkProcVar now has a new TProcedureSignature structure in TTypeData which contains information about the procedure's calling convention, result type and parameters (where applicable).<br />
* '''Reason''': User request. More informative RTTI. Delphi compatibility.<br />
* '''Remedy''': not known<br />
<br />
==== Use example ====<br />
<syntaxhighlight><br />
program RTTIInfo;<br />
<br />
{$mode objfpc}{$H+}<br />
uses<br />
typinfo;<br />
<br />
type<br />
CP866String = type AnsiString(866);<br />
TProc = procedure(var A: Integer; S: String); stdcall;<br />
TColor = (red, green, blue);<br />
TArr = array[TColor,0..3] of Integer;<br />
PArr = ^TArr;<br />
<br />
procedure DescribeProcedure(Info: PTypeInfo);<br />
const<br />
ParamFlagToStr: array[TParamFlag] of AnsiString = (<br />
'var',<br />
'const',<br />
'array',<br />
'address',<br />
'reference',<br />
'out'<br />
);<br />
CallConvToStr: array[TCallConv] of AnsiString = (<br />
'register',<br />
'cdecl',<br />
'pascal',<br />
'stdcall',<br />
'safecall',<br />
'cppdecl',<br />
'far16',<br />
'oldFPCcall',<br />
'internProc',<br />
'SysCall',<br />
'SoftFloat',<br />
'MWPascal'<br />
);<br />
var<br />
Data: PTypeData;<br />
Param: PProcedureParam;<br />
ParamFlag: TParamFlag;<br />
I: Integer;<br />
Res, S, TypeName: String;<br />
begin<br />
if Info^.Kind <> tkProcedure then<br />
Exit;<br />
Data := GetTypeData(Info);<br />
if Data^.ProcSig.CC <> ccStdCall then<br />
halt(2);<br />
if Data^.ProcSig.ResultType <> nil then<br />
begin<br />
Res := 'function ' + Info^.Name;<br />
TypeName := ': ' + Data^.ProcSig.ResultType^.Name;<br />
end<br />
else<br />
begin<br />
Res := 'procedure ' + Info^.Name;<br />
TypeName := '';<br />
end;<br />
if Data^.ProcSig.ParamCount > 0 then<br />
begin<br />
Res := Res + '(';<br />
for I := 0 to Data^.ProcSig.ParamCount - 1 do<br />
begin<br />
Param := Data^.ProcSig.GetParam(I);<br />
S := '';<br />
for ParamFlag in TParamFlags(Param^.Flags) do<br />
S := S + ParamFlagToStr[ParamFlag] + ' ';<br />
S := S + Param^.Name + ': ' + Param^.ParamType^.Name;<br />
if I > 0 then<br />
Res := Res + '; ';<br />
Res := Res + S;<br />
end;<br />
Res := Res + ')';<br />
end;<br />
Res := Res + TypeName + '; ' + CallConvToStr[Data^.ProcSig.CC] + ';';<br />
WriteLn(Res);<br />
end;<br />
<br />
procedure DescribeAnsiString(Info: PTypeInfo);<br />
var<br />
Data: PTypeData;<br />
begin<br />
if Info^.Kind <> tkAString then<br />
Exit;<br />
Data := GetTypeData(Info);<br />
if Data^.CodePage = 0 then<br />
WriteLn('AnsiString')<br />
else<br />
WriteLn('type AnsiString(',Data^.CodePage,');');<br />
end;<br />
<br />
procedure DescribeArray(Info: PTypeInfo);<br />
var<br />
Data: PTypeData;<br />
Res: String;<br />
I: Integer;<br />
begin<br />
if Info^.Kind <> tkArray then<br />
Exit;<br />
Data := GetTypeData(Info);<br />
Res := 'array[';<br />
for I := 0 to Data^.ArrayData.DimCount - 1 do<br />
begin<br />
if I > 0 then<br />
Res := Res + ', ';<br />
Res := Res + Data^.ArrayData.Dims[I]^.Name;<br />
end;<br />
Res := Res + '] of ' + Data^.ArrayData.ElType^.Name + ';';<br />
WriteLn(Res);<br />
end;<br />
<br />
procedure DescribePointer(Info: PTypeInfo);<br />
var<br />
Data: PTypeData;<br />
begin<br />
if Info^.Kind <> tkPointer then<br />
Exit;<br />
Data := GetTypeData(Info);<br />
if Data^.RefType = nil then<br />
WriteLn('Pointer;')<br />
else<br />
WriteLn('^', Data^.RefType^.Name, ';');<br />
end;<br />
<br />
begin<br />
DescribeProcedure(TypeInfo(TProc));<br />
DescribeAnsiString(TypeInfo(CP866String));<br />
DescribeArray(TypeInfo(TArr));<br />
DescribePointer(TypeInfo(PArr));<br />
DescribePointer(TypeInfo(Pointer));<br />
end.<br />
</syntaxhighlight><br />
<br />
=== Unit changes ===<br />
<br />
==== DB ====<br />
===== TBookmark TBookmarkstr and TDataset.Bookmark change to Delphi2009+ compatible definitions =====<br />
* '''Old behaviour''': TDataset.Bookmark was of type TBookmarkstr, TBookmarkstr=string, Tbookmark=pointer<br />
* '''New behaviour''': TDataset.Bookmark is of type TBookmark, TBookmarkstr=ansistring, TBookmark=TBytes. TBookmarkstr will trigger a deprecated warning.<br />
* '''Reason''': D2009+ compatibility, where probably the fact that string became a 2-byte encoding was the trigger.<br />
* '''Remedy''': Adjust typing in descendents and using code accordingly.<br />
<br />
===== TODBCConnection (odbcconn) No longer autocommit =====<br />
* '''Old behaviour''': Autocommit was enabled: Every change was committed to the database at once.<br />
* '''New behaviour''': Changes must be committed explicitly using Transaction.Commit<br />
* '''Reason''': Transactions are useless if everything is autocommitted: in particular; rollback is not possible.<br />
* '''Remedy''': You can enable autocommit by specifying AUTOCOMMIT=1 in the params of TODBCConnection.<br />
<br />
===== TDBF unit deprecation removed =====<br />
* '''Old behaviour''': the TDBF units were marked deprecated because the original maintainer of the upstream project stopped maintenance. However, the unit remained in fcl-db and patches were still accepted.<br />
* '''New behaviour''': the deprecation warning is removed. There is a new upstream project maintainer and FPC database devs support this unit again.<br />
* '''Remedy''': N/A<br />
<br />
===== TBufDataset.SaveToFile, SaveToStream: Binary Format (dfBinary) of saved data changes =====<br />
* '''Old behaviour''': Record data was saved to stream just as they exist in the TBufDataset memory record buffer.<br />
* '''New behaviour''': Record data are saved field by field. Each variable length field begins with a 4 byte length indicator followed by data. Fixed length fields are stored without prefixed length indicator. LoadFromFile, LoadFromStream support both formats (OLD and NEW).<br />
* '''Reason''': BLOBs were not saved correctly in the OLD format: instead of BLOB data, a pointer to memory where BLOB data resided was saved.<br />
* '''Remedy''': if you need the OLD behavior in saving, you must register your own DataPacketReader using RegisterDatapacketReader procedure.<br />
<syntaxhighlight><br />
unit OldBinaryDatapacketReader;<br />
<br />
{$mode objfpc}{$H+}<br />
<br />
interface<br />
<br />
uses<br />
Classes, SysUtils, BufDataset;<br />
<br />
type<br />
<br />
{ TOldFpcBinaryDatapacketReader }<br />
<br />
TOldFpcBinaryDatapacketReader = class(TFpcBinaryDatapacketReader)<br />
public<br />
constructor Create(AStream : TStream); override;<br />
end;<br />
<br />
implementation<br />
<br />
{ TOldFpcBinaryDatapacketReader }<br />
<br />
constructor TOldFpcBinaryDatapacketReader.Create(AStream: TStream);<br />
begin<br />
inherited;<br />
FVersion := 10;<br />
end;<br />
<br />
initialization<br />
RegisterDatapacketReader(TOldFpcBinaryDatapacketReader, dfBinary);<br />
end.<br />
</syntaxhighlight><br />
<br />
===== TDataPacketReader class structure changes =====<br />
* '''Old behaviour''': <br />
* '''New behaviour''': reference to TCustomBufDataset is passed only once in constructor of TDataPacketReader and stored in instance TDataPacketReader.<br />
* '''Reason''': simplify design and make it more flexible<br />
* '''Remedy''': if you use your own TDataPacketReader descendant update method signatures<br />
<br />
===== TSQLScript supports :, backtick quotes and explicit COMMIT/COMMIT RETAIN =====<br />
* '''Old behaviour''': TSQLScript:<br />
** parsed words starting with : in SQL as if they were sqldb parameters; running the resulting statements would very likely fail, making the class unusable.<br />
** (with UseCommit set): used CommitRetaining instead of Commit when the COMMIT directive was found. This lead to problems with scripts that need a hard commit (e.g. Firebird DDL followed by DML).<br />
** Had no support for backtick quotes (`), e.g. for MySQL<br />
* '''New behaviour''': <br />
** words starting with : are not parsed as sqldb parameters.<br />
** if UseCommit is set, COMMMIT or COMMIT leads to Commit, while the new directive COMMIT RETAIN (or no directive) leads to CommitRetaining being executed<br />
** Supports backtick quotes (`), e.g. for MySQL<br />
* '''Reason''': usability, compatibility with scripts generated by 3rds party packages.<br />
* '''Remedy''': <br />
** if your code depended on : parameter parsing, you could use a TSQLEVentScript class and manipulate the SQL. <br />
** commit behaviour: check your scripts for any unexpected COMMIT RETAIN statements.<br />
<br />
==== FileNameCaseSensitive and FileNameCasePreserving in unit System ====<br />
* '''Old behaviour''': There was only one constant (FileNameCaseSensitive) which signalized behaviour of the respective target platform with regard to the case in filenames. This was often set to true also on platforms not really treating filenames in case sensitive manner (e.g. Win32 and Win64).<br />
* '''New behaviour''': FileNameCaseSensitive is set to true only on platforms which really treat filenames in case sensitive manner and FileNameCasePreserving constant is added to unit system of all platforms to signalize whether the case in filenames supplied when creating or renaming them is preserved or not. This might possibly break existing user code relying on the previous (sometimes incorrect) value of FileNameCaseSensitive.<br />
* '''Reason''': In reality, there are two distinct types of behaviour. If a platform is case sensitive, searching for file "a" will never result in finding file "A" whereas case insensitive platform will happily return "A" if such a file is found on the disk. If a platform is case preserving, it will store file "a" as "a" on disk whereas case non-preserving platform may convert the filenames to uppercase before storing them on disk (i.e. file "a" is in reality stored as "A"). Case non-preserving platforms are never case sensitive, but case preserving platforms may or may not be case sensitive at the same time.<br />
* '''Remedy''': Review your existing code using FileNameCaseSensitive, check which of the two properties described above fit the particular purpose in your case and change to FileNameCasePreserving where appropriate.<br />
<br />
==== Some longtime deprecated functions in unit Unix have been removed. ====<br />
* '''Old behaviour''': Unix.(f)statfs, Unix.shell and Unix.fsync symbols existed in unit Unix <br />
* '''New behaviour''': Unix.(f)statfs, Unix.shell and Unix.fsync were removed<br />
* '''Reason''': These were helper functions and leftovers from the 1.0.x->2.0.0 conversion, deprecated since 2007. Shell had non standarized conventions<br />
* '''Remedy''': All but shell: use the same functions with an "fp" prefix. Shell: use fpsystem. If you checked the return value for other values than -1, a modification of the error checking might be necessary. Refer to your *nix documention, or have a look at the transformfpsystemtoshell function in tests/util/redir.pp in the FPC sources to see what a quick fix looks like.<br />
<br />
==== statfs has been renamed to fpstatfs ====<br />
* '''Old behaviour''': One overload of fpstatfs was not renamed from statfs to fpstatfs (around 2.4.0)<br />
* '''New behaviour''': The function has been renamed.<br />
* '''Reason''': Should have been done in 2.4.0 to begin with, but was postponed several times to coincide with a major version change. <br />
* '''Remedy''': Use fpstatfs<br />
<br />
==== RTLeventsync has been removed ====<br />
* '''Old behaviour''': The thread manager record contained an ''rtleventsync'' field, and the RTL had an ''RTLeventsync'' routine. No functionality for this routine was implemented in the FPC-supplied thread manager for any platform.<br />
* '''New behaviour''': The field and routine have been removed.<br />
* '''Reason''': The functionality was not available on any platform by default, and we're not aware of any third party thread manager that implemented them or third party code that relied on it. Additionally, the routine was documented as "Obsolete. Don't use.", without any explanation of what it was supposed to do.<br />
* '''Remedy''': Remove any such calls from your code.<br />
<br />
==== FPCanvas Strikethough property spelling fixed to StrikeThrough ====<br />
* '''Old behaviour''': Fonts had a Striketrough property which is a typo.<br />
* '''New behaviour''': The property has been changed to Strikethrough.<br />
* '''Reason''': Spelling fix.<br />
* '''Remedy''': Please rename property calls in your code. FPC 2.6.2 contains both versions so there is a window for adaptation.<br />
<br />
==== TVersionInfo (fileinfo unit) re-implemented in a platform independent way ====<br />
* '''Old behaviour''': GetVersionSetting method would read file information.<br />
* '''New behaviour''': The ReadFileInfo call will read the information. The global GetProgramVersion call will extract the program major/minor/revision/build version in 1 single call.<br />
* '''Reason''': The unit now uses FPC resources on all platforms, and can now be used to read external resources.<br />
* '''Remedy''': Use the ReadFileInfo call to get the version information. Add relevant units for desired resource support to your uses clause; e.g. if you need to read Windows .exe file info, add winpeimagereader<br />
<br />
==== shlobj symbols removed from unit Windows ====<br />
* '''Old behaviour''': When unit windows was split between the windows and shlobj units, not all shlobj symbols were removed from Windows. <br />
* '''New behaviour''': <br />
** Now: the symbols are marked deprecated in the windows unit.<br />
** Next major version: shlobj symbols will be removed from the windows unit. Code relying on that will fail to compile if it doesn't import shlobj.<br />
* '''Reason''': shlobj and windows versions were not compatible and lead to errors. <br />
* '''Remedy''': put shlobj in your uses, if not there already.<br />
<br />
==== StrUtils RomanToInt implementation ====<br />
* '''Old behaviour''': Providing an invalid input to RomanToInt would return 0.<br />
* '''New behaviour''': Providing an invalid input to RomanToInt will raise an EConvert error.<br />
* '''Reason''': What constitutes "Invalid input" was very arbitrary: only invalid characters constituted an error. Right characters in wrong places would be erroneously translated. Now the implementation has the three usual implementations TryRomanToInt, RomanToIntDef and RomanToInt<br />
* '''Remedy''': Use RomanToIntDef. The Default value used in case of error is declared with default 0, making the signature and behaviour equivalent to the old function.<br />
<br />
=== Language Changes ===<br />
<br />
==== Variant overload preference for string types ====<br />
* '''Old behaviour''': Preference for string types was (from better to worse): ShortString, AnsiString, WideString, UnicodeString<br />
* '''New behaviour''': Preference for string types now (from better to worse): WideString, UnicodeString, AnsiString, ShortString<br />
* '''Reason''': Unicode characters and codepage information will not be lost during the conversion; unicode Delphi compatibility.<br />
* '''Remedy''': Use explicit conversion (e.g. ShortString(V)) if it is needed to pass variant to routine with a particular string type argument.<br />
<br />
==== Default values in implementation but not in interface/forward declaration ====<br />
* '''Old behaviour''': The implementation of a routine could declare default values even if the interface declaration did not have any.<br />
* '''New behaviour''': Default values, if any, must be specified in the interface. They can be repeated in the implementation, but that is not required (just like it was not in the past).<br />
* '''Reason''': Default parameters specified only in the implementation are not, and cannot, be propagated to the interface since a unit's interface can be used before the implementation has been parsed (see http://bugs.freepascal.org/view.php?id=19434), Delphi compatibility.<br />
* '''Remedy''': Always specify default parameter values (also) in the interface/forward declaration of a routine.<br />
<br />
==== Default values are now properly typechecked ====<br />
* '''Old behaviour''': The compiler did not detect default values for parameters of which the type did not in any way correspond to the parameter type. <br />
* '''New behaviour''': The compiler now properly checks whether the type of the constant matches the parameter's type when parsing default values.<br />
* '''Reason''': Proper type checking is one of the fundamental properties of the Pascal language; Delphi compatibility.<br />
* '''Remedy''': Add a typecast around default values that now result in compiler errors, or correct the type of such parameters.<br />
<br />
==== Recursive parameterless function calls in MacPas mode ====<br />
* '''Old behaviour''': When using the name of a function inside its own body on the right hand side of an expression, the compiler treated this as a read of the last value assigned to the function result in MacPas mode.<br />
* '''New behaviour''': The compiler will now treat such occurrences of the function name as recursive function calls in MacPas mode.<br />
* '''Reason''': Compatibility with Mac Pascal compilers.<br />
* '''Remedy''': If you wish to read the current function result value, compile the code with ''{$modeswitch result}'', after which you can use the ''result'' alias for that value. Note that the use of this mode switch can also result in [[User_Changes_2.6.0#Implicit_.22result.22_variable_in_MacPas_mode|different behaviour]] compared to traditional Mac Pascal compilers.<br />
<br />
==== "''strict protected''" visibility modifier ====<br />
* '''Old behaviour''': ''strict protected'' did not correctly limit the visibility of symbols declared in different units.<br />
* '''New behaviour''': ''strict protected'' symbols can now only be accessed from descendent classes, regardless of where they are defined.<br />
* '''Reason''': Fix behaviour to conform to specification/documentation, Delphi compatibility.<br />
* '''Remedy''': Use ''protected'' or ''public'' if less strict accessibility checks are desired.<br />
<br />
==== Support for type helpers added ====<br />
* '''Old behaviour''': In modes ''ObjFPC'' and ''MacPas'' it was possible to declare a unique type of a type ''helper''.<br />
* '''New behaviour''': The compiler now interprets the keyword ''helper'' as a helper type if it immediately follows the ''type'' keyword (but only if the mode is ''ObjFPC'' or ''MacPas'' or the mode switch ''Class'' is set).<br />
* '''Example''':<br />
<syntaxhighlight><br />
{$mode objfpc}<br />
type<br />
helper = LongInt;<br />
<br />
otherhelper = type helper;<br />
</syntaxhighlight><br />
The above code will no longer compile.<br />
* '''Reason''': ''type helper'' is a more logical way to declare helpers for primitive types than Delphi's ''record helper'' is.<br />
* '''Remedy''': Escape the keyword ''helper'' using a ''&''. E.g.:<br />
<syntaxhighlight><br />
{$mode objfpc}<br />
type<br />
helper = LongInt;<br />
<br />
otherhelper = type &helper;<br />
</syntaxhighlight><br />
<br />
==== "''strict protected''" and "''protected''" visibility modifier in extended records ====<br />
* '''Old behaviour''': ''strict protected'' and ''protected'' could be used used in extended records.<br />
* '''New behaviour''': ''strict protected'' and ''protected'' are no longer allowed in extended records.<br />
* '''Reason''': The only difference between ''(strict) protected'' and ''(strict) private'' is that the former allows you to access members of a parent class or object. As records don't support inheritence it makes no sense to support ''(strict) protected'' in them. This is also Delphi-compatible.<br />
* '''Remedy''': Use ''private'' instead of ''protected'' and ''strict private'' instead of ''strict protected''.<br />
<br />
==== "''static''" directive on non-class methods ====<br />
* '''Old behaviour''': It was possible to use the ''static'' on normal, non-''class'' methods<br />
* '''New behaviour''': The compiler now generates an error if ''static'' is used on normal, non-''class'' methods (except in ''object'' types)<br />
* '''Reason''': It is only correct to leave out the ''Self'' parameter if it is a class method. This is also Delphi compatible.<br />
* '''Remedy''': Prepend the ''class'' keyword to the method.<br />
<br />
==== "''static''" directive on class operators ====<br />
* '''Old behaviour''': It was possible to use the ''static'' on class operators.<br />
* '''New behaviour''': The compiler now generates an error if ''static'' is used on class operators.<br />
* '''Reason''': Class operators are by definition static, thus the ''static'' would be redundant. This is also Delphi compatible.<br />
* '''Remedy''': Remove the ''static'' keyword from class operators.<br />
<br />
====Classes implementing forward-declared interfaces====<br />
* '''Old behaviour''': It was possible to declare classes as implementing a forward-declared interface.<br />
* '''New behaviour''': Classes can no longer implement forward-declared interfaces.<br />
* '''Reason''': This occasionally [http://bugs.freepascal.org/view.php?id=24184 caused crashes], the compiler did not check in such a case whether the class actually implemented the methods of that interface. Recent versions of Delphi also reject such constructs.<br />
* '''Remedy''': If there is a cyclic dependency between a class and an interface, use a forward declaration for the class instead.<br />
<br />
====Using the function name as alias for loading its current result value in MacPas mode====<br />
* '''Old behaviour''': Inside a function the name of the function could be used on the right hand side (RHS) of an expression in order to refer to the current value of the function result.<br />
* '''New behaviour''': Using the name of a function on the RHS of an expression inside that function's body now always results in a recursive function call.<br />
* '''Reason''': The old behaviour existed because under '''some''' circumstances CodeWarrior behaved that way. Under other circumstances [http://bugs.freepascal.org/view.php?id=22344 it however behaves according to the new rule] and there appears to be no definition available of when it does what. Since it is easier to fix a compilation error than to find out where an intended recursive function call is not doing anything, we opted to change the behaviour.<br />
* '''Remedy''': Either use a temporary local variable to hold the function result if you want to reuse it on the RHS of other expressions, or add '''{$modeswitch result}''' and use the '''result''' pseudo-variable as an alias for the function result.<br />
<br />
==== nostackframe forbidden for Pascal subroutines ====<br />
* '''Old behaviour''': The nostackframe directive could be applied to all types of subroutines.<br />
* '''New behaviour''': The nostackframe directive is allowed only for pure assembler subroutines,<br />
* '''Reason''': Depending on the architecture, ABI and code of the subroutine, nostackframe might have worked or caused random crashes. This was unpredictable and makes no sense.<br />
* '''Remedy''': Remove the nostackframe from Pascal subroutines. In any case, if the compiler can omit the stack frame, it will do so.<br />
<br />
====Conversion preference of pansichar to various string types====<br />
* '''Old behaviour''': In {$h-} mode, the compiler preferred ''pansichar''->''shortstring'' to ''pchar''->''ansistring'' conversions, and gave ''pansichar''->''ansistring'' and ''pchar''->''unicodestring'' the same conversion preference.<br />
* '''New behaviour''': The compiler now always prefers ''pansichar''->''ansistring'' to ''pansichar''->''shortstring'', and also prefers ''pansichar''->''ansistring'' to ''pansichar''->''unicodestring'' (which it in turn prefers to ''pansichar''->''shortstring'').<br />
* '''Reason''': Prevent truncation of long pchars, make it easier to add unicodestring overloads to the RTL without causing ''can't decide which overloaded function to call'' errors when using pchars, Delphi compatibility.<br />
* '''Remedy''': Use ''strpas()'' to explicitly truncate pchars to shortstrings if desired.<br />
<br />
==== Comparative operators can have any result type ====<br />
* '''Old behaviour''': Overloaded comparative operators could only have a ''Boolean'' result type.<br />
* '''New behaviour''': Overloaded comparative operators can have any result type.<br />
* '''Reason''': The result type is checked by the regular type checking mechanism. For example, overloaded comparative operators that return non-Boolean results cannot be used in IF, WHILE or UNTIL expressions, but it is still possible to use them in other situations.<br />
* '''Example''':<br />
<syntaxhighlight><br />
SQLResult := Database.Query(<br />
Select(<br />
[ PersonsTable.FirstName, PersonsTable.LastName ],<br />
[ PersonsTable ],<br />
[ <br />
PersonsTable.Country = 'NL',<br />
PersonsTable.Age >= 25<br />
]<br />
)<br />
);<br />
</syntaxhighlight><br />
* '''Remedy''': Not applicable.<br />
<br />
==== True and False are not keywords anymore ====<br />
* '''Old behaviour''': True and False were keywords and as a result it was not possible to use them as identifiers.<br />
* '''New behaviour''': True and False are now predefined constants in the system unit's scope and can be used as identifiers.<br />
* '''Example''':<br />
<syntaxhighlight><br />
const<br />
False = 0;<br />
True = 1;<br />
</syntaxhighlight><br />
* '''Reason''': Compatibility with other Pascal compilers.<br />
* '''Remedy''': Not applicable.<br />
<br />
==== For in loop variable cannot be assigned to anymore ====<br />
* '''Old behaviour''': Inside a ''for X in Y'' loop it was possible to assign a value to X. This was different from the ''for X:=A to B'' loop, where assigning to the loop variable X was not allowed.<br />
* '''New behaviour''': The variable X of a ''for X in Y'' loop cannot be changed.<br />
* '''Reason''': Compatibility with for ''X:=A to B'' loop.<br />
* '''Remedy''': Use a temporary variable instead.<br />
<br />
==== Casting integer variables to floating point ====<br />
* '''Old behaviour''': Explicitly typecasting an integer variable to a floating point type of the same size caused the bit pattern of the integer to be reinterpreted as a floating point value.<br />
* '''New behaviour''': Such explicit typecasts now result in a conversion of the integer value to an equal floating point value (to the extent that the floating point type can represent the integer value)..<br />
* '''Example''': The following program now prints twice " 1.3890388970000000E+009", while previously the first writeln printed " 6.86276399744918E-315"<br />
<syntaxhighlight><br />
var<br />
i: int64;<br />
begin<br />
i:=1389038897;<br />
writeln(Double(i))<br />
writeln(Double(1389038897))<br />
end.<br />
</syntaxhighlight><br />
* '''Reason''': Consistency with the behaviour of a compile-time integer to floating point conversions, as demonstrated by the above example.<br />
* '''Remedy''': Add an intermediate typecast to a record type to reinterpret the actual bit pattern.<br />
<br />
== Unix platforms ==<br />
<br />
=== cthreads: critical sections and recursive mutex support ===<br />
* '''Old behaviour''': If the ''cthreads'' unit thread manager was used on a platform without recursive mutex support, critical sections were non-reentrant.<br />
* '''New behaviour''': Initialising a critical section under the above circumstances will now result in a run time error.<br />
* '''Reason''': One of the basic properties of (Delphi/Windows-compatible) critical sections is that they are reentrant, and that is how they are generally used in Pascal code.<br />
* '''Remedy''': Use an RTLEvent instead if reentrancy is not required.<br />
<br />
<br />
== Darwin/i386 and iPhoneSim/i386 ==<br />
<br />
=== Location of certain function result types ===<br />
* '''Old behaviour''': Small records and method pointers were always returned according to the official ABI.<br />
* '''New behaviour''': When a calling convention other than ''cdecl'', ''cppdecl'' or ''mwpascal'' is used, the same convention as on other platforms is now used.<br />
* '''Reason''': Better compatibility with assembler code written for other platforms.<br />
* '''Remedy''': Update your assembler code, or better: if possible, convert it to Pascal.<br />
<br />
== All Darwin/Mac OS X/iOS ==<br />
===MacOSAll unit: changed parameter and opaque types===<br />
<br />
* '''Change''': The headers have been updated to the Mac OS X 10.8 SDK, and in this process a number of signatures have been changed/corrected, and several opaque types have been changed from ^SInt32 into pointers to different/incompatible empty records.<br />
* '''Reason''': The reasons for the signature changes are detailed below. The opaque types have been made incompatible so that the compiler can give error messages when trying to use one opaque type instead of another (e.g., in the past the compiler did not complain when passing a ControlRef to a routine that expected a WindowPtr).<br />
* '''Remedy''': Adjust your code to conform to the new signatures. Regarding the opaque types, that means that these types are no longer assignment-compatible. Some of the more prominent ones that may affect existing, correct, code are HIObject and ControlRef=HIViewRef. This may require adding typecasts to keep code compiling (the same typecasts are required in C)<br />
* '''Changes:''' (apart from the opaque type changes)<br />
** CGGLContextCreate : fixed first parameter (was "var", now is value parameter)<br />
** CFHostGetAddressing: var hasBeenResolved: boolean -> booleanptr because can be nil<br />
** CFHostGetNames: var hasBeenResolved: boolean -> booleanptr because can be nil<br />
** ColorSyncIterateInstalledProfiles: var seed: UInt32 -> UInt32Ptr because can be nil<br />
** AudioStreamGetPropertyInfo: outSize and outWritable changed to pointer because can be nil<br />
** cblas (several var-parametes changed to pointers because they represent arrays):<br />
*** cblas_sswap, cblas_dswap: X, Y<br />
*** cblas_scopy, cblas_dcopy: Y<br />
*** cblas_saxpy, cblas_daxpy: Y<br />
*** catlas_saxpby, catlas_daxpby: Y<br />
*** catlas_sset, catlas_dset: X<br />
*** cblas_sscal, cblas_dscal: X<br />
*** cblas_sgemv, cblas_dgemv: X<br />
*** cblas_strmv, cblas_dtrmv: X<br />
*** cblas_stbmv, cblas_dtbmv: X<br />
*** cblas_stpmv, cblas_dtpmv: Ap, X<br />
*** cblas_strsv, cblas_dtrsv: X<br />
*** cblas_stbsv, cblas_dtbsv: X<br />
*** cblas_stpsv, cblas_dtpsv: Ap, X<br />
*** cblas_ssymv, cblas_dsymv: X<br />
*** cblas_ssbmv, cblas_dsbmv: Y<br />
*** cblas_sspmv, cblas_dspmv: Ap, Y<br />
*** cblas_sger, cblas_dger: A<br />
*** cblas_ssyr, cblas_dsyr: A<br />
*** cblas_sspr, cblas_dspr: Ap<br />
*** cblas_ssyr2, cblas_dsyr2: A<br />
*** cblas_sspr2, cblas_dspr2: A<br />
*** cblas_sgemm, cblas_sgemm: C<br />
*** cblas_ssymm, cblas_Dsymm: C<br />
*** cblas_ssyrk, cblas_dsyrk: C<br />
*** cblas_ssyr2k, cblas_dsyr2k: C<br />
*** cblas_strmm, cblas_dtrmm: B<br />
*** cblas_strsm, cblas_strsm: B<br />
** vBLAS (idem)<br />
*** SDOT: X, Y<br />
*** SNRM2: X<br />
*** SASUM: X<br />
*** ISAMAX: X<br />
*** SSWAP: X, Y<br />
*** SCOPY: X, Y<br />
*** SAXPY: X, Y<br />
*** SROT: X, Y<br />
*** SSCAL: X<br />
*** SGEMV, A, X, Y<br />
*** SGEMM: A, B, C<br />
** vDSP (idem)<br />
*** vDSP_sve_svesq, vDSP_sve_svesqD: __vDSP_A<br />
*** vDSP_normalize, vDSP_normalizeD: __vDSP_A, __vDSP_C<br />
<br />
== Windows/x86_64 ==<br />
<br />
=== Exception handling has been changed to be ABI-conformant ===<br />
<br />
* '''Old behaviour''': Exceptions were handled using platform-independent mechanism based on SetJmp/LongJmp.<br />
* '''New behaviour''': Exceptions are handled using OS-provided means. The most important differences from generic handling are as follows:<br />
** Every executable contains a <tt>.pdata</tt> section describing layout of function stack frames. This data is used to perform stack back-tracing. As a consequence, the backtraces generated when exception occurs are no longer dependent of code optimization settings. However, they may be different from ones produced by gdb.<br />
** GNU binutils have troubles creating executables with <tt>.pdata</tt> sections. In particular, ld version < 2.22 crashes at such executables, and using GNU as together with internal linker will strip all <tt>.pdata</tt>, resulting in a non-working executable.<br />
** An exception is handled in two phases. First phase determines the target frame (i.e. the 'except' statement that will handle the exception), the second phase does actual stack unwinding and executing code in 'finally' statements. In contrast, the generic mechanism is single-phase: it starts unwinding immediately and proceeds until an 'except' statement handles the exception or the stack runs out.<br />
* '''Reason''': Multiple compatibility issues with Windows and third-party DLLs (see http://bugs.freepascal.org/view.php?id=12974 and related issues)<br />
* '''Remedy''': No changes are necessary unless your code relies on specific exception handling details. Build programs using FPC's internal assembler and linker, do not use GNU binutils. The entire feature can be disabled by cycling the compiler with <tt>OPT=-dDISABLE_WIN64_SEH</tt> in command line.<br />
<br />
=== winwidestringalloc is deprecated ===<br />
<br />
* '''Old behaviour''': winwidestringalloc switched widestring behavior on windows to either use COM BSTR or to use internal UnicodeString like container.<br />
* '''New behaviour''': winwidestringalloc become deprecated now and later will be completely removed from RTL code.<br />
* '''Reason''': if it is desired to have UTF-16 strings which behaves as UnicodeString then developers should use UnicodeString type explicitly.<br />
* '''Remedy''': check whether you set <code>winwidestringalloc = false</code> in your program code and if so replace WideString declarations with UnicodeString.<br />
<br />
== WinCE ==<br />
<br />
=== Define ''UNICODE'' was changed to ''FPC_OS_UNICODE'' ===<br />
<br />
* '''Old behaviour''': For arm-wince and i386-wince ''UNICODE'' was defined by default.<br />
* '''New behaviour''': For arm-wince and i386-wince ''FPC_OS_UNICODE'' is defined by default.<br />
* '''Reason''': For upcoming support for setting String to UnicodeString the define ''UNICODE'' now is defined if the type String is currently defined as UnicodeString. This is also in so far Delphi compatible that from Delphi 2009 on ''UNICODE'' is defined as well.<br />
* '''Remedy''': Check for ''FPC_OS_UNICODE'' to decide whether the OS only provides a Unicode API (in the sense of Wide- or UnicodeString) and use ''UNICODE'' to decide whether the type String is currently defined as UnicodeString or not.<br />
<br />
== Other == <br />
<br />
=== Stabs support has been disabled for 64 bit targets ===<br />
* '''Old behaviour''': While the default debug information format for 64 bit targets was DWARF (except for AIX, where it's Stabx), it was possible to switch it to Stabs via the -gs command line parameter.<br />
* '''New behaviour''': Only the DWARF debug format is still supported on 64 bit targets (except for AIX, where Stabx is used).<br />
* '''Reason''': Stabs is not well-defined for 64 bit targets, nor well-supported by gdb on those same targets. This can lead to [http://bugs.freepascal.org/view.php?id=23365 problems]<br />
* '''Remedy''': Do not use -gs when compiling for 64 bit targets. If you do so anyway, the compiler will display a warning and keep the previously set (supported) debug format.<br />
<br />
== See also ==<br />
* [[FPC New Features Trunk]]<br />
[[Category:FPC User Changes by release]]</div>
Paul Ishenin
https://wiki.freepascal.org/index.php?title=FPC_Unicode_support&diff=75626
FPC Unicode support
2014-01-09T01:02:26Z
<p>Paul Ishenin: /* String constants */</p>
<hr />
<div>= Introduction =<br />
Up to and including FPC 2.6.x, the RTL was based on the ones of Turbo Pascal and Delphi 7. This means it was primarily based around the ''shortstring'', ''ansistring'' and ''pchar'' types. None of these types had any encoding information associated with them, but were implicitly assumed to be encoded in the "default system encoding" and were passed on to OS API calls without any conversion.<br />
<br />
In Delphi 2009, Embarcadero switched the entire RTL over to the ''UnicodeString'' type, which represents strings using UTF-16. Additionally, they also made the AnsiString type "code page-aware". This means that AnsiStrings from then on contain the code page according to which their data should be interpreted.<br />
<br />
FPC's language-level support for these string types is already available in current development versions of the compiler (FPC 2.7.1/trunk). The RTL level support is not yet complete. This page gives an overview of the code page-related behaviour of these string types, the current level of support in the RTL, and possible future ways of how this support may be improved.<br />
<br />
= Code pages =<br />
<br />
A code page defines how the individual bytes of a string should be interpreted, i.e., which letter, symbol or other graphic character corresponds to every byte or sequence of bytes.<br />
<br />
== Code page identifiers ==<br />
A code page identifier is always stored as a ''TSystemCodePage'', which is an alias for [[Word]]. The value represents the corresponding code page as defined by [http://msdn.microsoft.com/en-us/library/windows/desktop/dd317756(v=vs.85).aspx Microsoft Windows]. Additionally, there are 3 special code page values:<br />
* CP_ACP: this value represents the currently set "default system code page". See [[#Code page settings]] for more information.<br />
* CP_OEM: this value represents the OEM code page. On Windows platforms this corresponds to the code page used by the console (e.g. cmd.exe windows). On other platforms this value is interpreted the same as CP_ACP.<br />
* CP_NONE: this value indicates that no code page information has been associated with the string data. The result of any explicit or implicit operation that converts this data to another code page is undefined.<br />
<br />
== Code page settings ==<br />
The system unit contains several global variables that indicate the default code page used for certain operations.<br />
<br />
=== DefaultSystemCodePage ===<br />
* '''Purpose''': determines how CP_ACP is interpreted<br />
* '''Initial value''':<br />
** Windows: The result of the ''GetACP'' OS call, which returns the Windows ANSI code page.<br />
** iOS: UTF-8<br />
** Unix (excluding iOS): Based on the currently set ''LANG'' or ''LC_CTYPE'' environment variables. This is usually UTF-8, but that is not guaranteed to be the case.<br />
** Other platforms: CP_ACP (these platforms currently do not support multiple code pages, and are hardcoded to use their OS-specific code page in all cases)<br />
* '''Modifications''': you can modify this value by calling ''SetMultiByteConversionCodePage(CodePage: TSystemCodePage)''<br />
* '''Notes''': Since the value of this variable can be changed, it is not a good idea to use its value to determine the real OS "default system code page" (unless you do it at program startup and are certain no other unit has changed it in its initialisation code).<br />
<br />
=== DefaultFileSystemCodePage ===<br />
* '''Purpose''': defines the code page to which file/path names are translated before they are passed to OS API calls, '''''if''''' the RTL uses a single byte OS API for this purpose on the current platform. This code page is also used for intermediate operations on file paths inside the RTL before making OS API calls.<br />
* '''Initial value''':<br />
** Windows: UTF-8, because the RTL uses UTF-16 OS API calls (so no data is lost in intermediate operations).<br />
** OS X and iOS: UTF-8 (as defined by Apple)<br />
** Unix (excluding OS X and iOS): DefaultSystemCodePage, because the encoding of file names is undefined on Unix platforms (it's an untyped array of bytes that can be interpreted in any way; it is not guaranteed to be valid UTF-8)<br />
* '''Modifications''': you can modify this value by calling ''SetMultiByteFileSystemCodePage(CodePage: TSystemCodePage)''<br />
* '''Notes''': the Unix/OS X/iOS settings only apply in case the ''cwstring'' widestring manager is installed, otherwise DefaultFileSystemCodePage will have the same value as DefaultSystemCodePage after program startup.<br />
<br />
=== DefaultRTLFileSystemCodePage ===<br />
* '''Purpose''': defines the code page to which file/path names are translated before they are returned from RawByteString file/path RTL routines. Examples include the file/path names returned by the RawbyteString versions of ''SysUtils.FindFirst'' and ''System.GetDir''. The main reason for its existence is to enable the RTL to provide backward compatibility with earlier versions of FPC, as these always returned strings encoded in whatever the OS' single byte API used (which was usually what is now known as ''DefaultSystemCodePage'').<br />
* '''Initial value'''<br />
** Windows: DefaultSystemCodePage, for backward compatibility.<br />
** OS X and iOS: UTF-8, for backward compatibility (it was already always UTF-8 in the past, since that's what the OS file APIs return and we did not convert this data).<br />
** Unix (excluding OS X and iOS): DefaultSystemCodePage, for the same reason as with DefaultFileSystemCodePage. Setting this to a different value than DefaultFileSystemCodePage is a bad idea on these platforms, since any code page conversion can corrupt these strings as their initial encoding is unknown.<br />
* '''Modifications''': you can modify this value by calling ''SetMultiByteRTLFileSystemCodePage(CodePage: TSystemCodePage)''<br />
* '''Notes''': same as for DefaultFileSystemCodePage.<br />
<br />
= Strings =<br />
<br />
== String/character types ==<br />
<br />
=== Shortstring ===<br />
The code page of a shortstring is implicitly CP_ACP and hence will always be equal to the current value of DefaultSystemCodePage.<br />
<br />
=== PAnsiChar/AnsiChar ===<br />
These types are the same as the old PChar/Char types. In all compiler modes except for ''{$mode delphiunicode}'', PChar/Char are also still aliases for PAnsiChar/AnsiChar. Their code page is implicitly CP_ACP and hence will always be equal to the current value of DefaultSystemCodePage.<br />
<br />
=== PWideChar/PUnicodeChar and WideChar/UnicodeChar ===<br />
These types remain unchanged. WideChar/UnicodeChar can contain a single UTF-16 code unit, while PWideChar/PUnicodeChar point to a single or an array of UTF-16 code units.<br />
<br />
In ''{$mode delphiunicode}'', PChar becomes an alias for PWideChar/PUnicodeChar and Char becomes an alias for WideChar/UnicodeChar.<br />
<br />
=== UnicodeString/WideString ===<br />
These types behave the same as in previous versions:<br />
* ''Widestring'' is the same as a "COM BSTR" on Windows, and an alias for UnicodeString on all other platforms. Its string data is encoded using UTF-16.<br />
* ''UnicodeString'' is a reference-counted string with a maximum length of high(SizeInt) UTF-16 code units.<br />
<br />
=== Ansistring ===<br />
AnsiStrings are reference-counted types with a maximum length of high(SizeInt) bytes. Additionally, they now also have code page information associated with them.<br />
<br />
The most important thing to understand about the new AnsiString type is that it both has a declared/static/preferred/default code page (called ''static code page'' from now on), and a dynamic code page. The static code page tells the compiler that when assigning something to that AnsiString, it should first convert the data to that static code page (except if it is CP_NONE, see [[#RawByteString]] below). The dynamic code page is a property of the AnsiString which, similar to the length and the reference count, defines the actual code page of the data currently held by that AnsiString.<br />
<br />
==== Static code page ====<br />
The static code page of an AnsiString can only be defined by declaring a new type as follows:<br />
<syntaxhighlight><br />
type<br />
CP866String = type AnsiString(866); // note the extra "type"<br />
</syntaxhighlight><br />
<br />
The static code page of a variable declared as plain ''AnsiString'' is CP_ACP. In effect, the AnsiString type is now semantically defined in the System unit as<br />
<syntaxhighlight><br />
type<br />
AnsiString = type AnsiString(CP_ACP);<br />
</syntaxhighlight><br />
<br />
Another predefined AnsiString(X) type in the System unit is UTF8String:<br />
<syntaxhighlight><br />
type<br />
UTF8String = type AnsiString(CP_UTF8);<br />
</syntaxhighlight><br />
<br />
Once you have defined such a custom AnsiString(X) type, you can use it to declare variables, parameters, fields etc as usual.<br />
<br />
==== Dynamic code page ====<br />
If a string with a static code page X1 is assigned to a string with static code page X2 and X1<>X2, the string data will generally first be converted to said code page X2 before assignment, and as a result the dynamic code page of the destination string will be X2. When assigning a string to a plain AnsiString (= AnsiString(CP_ACP)) or ShortString, the string data will however be converted to DefaultSystemCodePage. The dynamic code page of that AnsiString(CP_ACP) will then be the current value of DefaultSystemCodePage (e.g. 1250 for the Windows-1250 code page), even though its static code page is CP_ACP (which is a constant <> 1250). This is one example of how the static code page can differ from the dynamic code page. Subsequent sections will describe more such scenarios.<br />
<br />
Note: as mentioned above, whether or not a potential code page conversion happens only depends on the ''static code pages'' of the involved strings. This means that if you assign one AnsiString(X) to another AnsiString(X) and the former's dynamic code was different from X, the string data will ''not'' be converted to code page X by the assignment.<br />
<br />
==== RawByteString ====<br />
The RawByteString type is defined as<br />
<syntaxhighlight><br />
type<br />
RawByteString = type AnsiString(CP_NONE);<br />
</syntaxhighlight><br />
<br />
As mentioned earlier, the results of conversions from/to the CP_NONE code page are undefined. As it does not make sense to define a type in the RTL whose behaviour is undefined, the behaviour of RawByteString is somewhat different than that of other AnsiString(X) types.<br />
<br />
As a first approximation, ''RawByteString'' can be thought of as an "untyped AnsiString": assigning an AnsiString(X) to a RawByteString has exactly the same behaviour as assigning that AnsiString(X) to another AnsiString(X) variable with the same value of X: no code page conversion or copying occurs, just the reference count is increased.<br />
<br />
Less intuitive is probably that when a RawByteString is assigned to an AnsiString(X), the same happens: no code page conversion or copying, just the reference count is increased. Note that this means that results from functions returning a RawByteString will never be converted to the destination's static code page. This is another way in which the dynamic code page of an AnsiString(X) can become different from its static code page.<br />
<br />
This type is mainly used to declare ''const'', ''constref'' and value parameters that accept any AnsiString(X) value without converting it to a predefined static code page. Note that if you do this, the routine accepting those parameters should be able to handle strings with any possible dynamic code page.<br />
<br />
''var'' and ''out'' parameters can also be declared as ''RawByteString'', but in this case the compiler will give an error if an AnsiString(X) whose static code page is different from CP_NONE is passed in. This is consistent with ''var'' and ''out'' parameters in general: they require an exactly matching type to be passed in. You can add an explicit RawByteString() typecast around an argument to remove this error, but then you must be prepared to deal with the fact that the returned string can have any dynamic code page.<br />
<br />
== String concatenations ==<br />
Normally, in Pascal the result type of an expression is independent of how its result is used afterwards. E.g. multiplying two longints on a 32 bit platform and assigning the result to an int64 will still perform the multiplication using 32 bit arithmetic, and only afterwards the result is converted to 64 bit.<br />
<br />
Code page-aware strings are the only exception to this rule: concatenating two or more strings always occurs without data loss, although afterwards the resulting string will of course still be converted to the static code page of the destination (which may result in data loss).<br />
<br />
Assigning the result of a concatenation to a RawByteString is again special:<br />
* if all concatenated strings have the same dynamic code page, the result will have this code page too<br />
* in other cases the result will be converted to CP_ACP (we may add an option in the future to change this RawByteString behaviour, as it is not very practical).<br />
<br />
== String constants ==<br />
String constants are parsed by FPC as follows:<br />
* if a file contains a ''{$codepage xxx}'' directive (e.g. <code>{$codepage UTF8}</code>), then string constants are interpreted according to that code page, otherwise<br />
* if the file starts with an UTF-8 BOM, then string constants are interpreted as UTF-8 strings, otherwise<br />
* string constants are copied without any translation into an internal buffer and are interpreted as characters using one of the following code pages:<br />
** the ''DefaultSystemCodePage'' '''''of the computer on which the compiler itself is currently running''''' when ''{$modeswitch systemcodepage}'' is active (i.e., compiling the source code on a different system may cause string constants to be interpreted differently; this switch is available for Delphi compatibility and is enabled by default in ''{$mode delphiunicode}'')<br />
** CP_ACP in case ''{$modeswitch systemcodepage}'' is not active (for backward compatibility with previous FPC versions)<br />
<br />
In all but the last case, the actual code page of the source file is known. This knowledge is required when the compiler is forced to convert string constants to a different code page. Therefore, in the last case a default is used in such situations: strings are assumed to be encoded in code page 28591 (''ISO 8859-1 Latin 1; Western European''). This assumed or actual code page is referred to as the ''source file code page'' below.<br />
<br />
When a string constant is assigned to an AnsiString(X) either in code or as part of a typed constant or variable initialisation, then<br />
* if X = CP_NONE (i.e., the target is a RawByteString), the result is the same as if the constant string were assigned to an AnsiString(CP_ACP)<br />
* if X = CP_ACP and the code page of string constant is different from CP_ACP, then the string constant is converted, at compile time, to the source file code page. If the string constant's code page is also CP_ACP, it will be stored in the program unaltered with a code page of CP_ACP and hence its meaning/interpretation will depend on the actual value of ''DefaultSystemCodePage'' at run time. This ensures compatibility with older versions of FPC when assigning string constants to AnsiString variables without using a ''{$codepage xxx}'' directive or UTF-8 BOM.<br />
* for other values of X, the string constant is converted, at compile time, to code page X<br />
<br />
Similarly, if a string constant is assigned to a UnicodeString, the string constant is converted, at compile time, from the source file code page to UTF-16.<br />
<br />
For ShortString and PChar, the same rule as for AnsiString(CP_ACP) is followed.<br />
<br />
Note that symbolic string constants will be converted at compile time to the appropriate string type and code page whenever they are used. This means that there is no speed overhead when using a single string constant in multiple code page and string type contexts, only some data size overhead.<br />
<br />
From the above it follows that to ensure predictable interpretation of string constants in your source code, it is best to either include an explicit ''{$codepage xxx}'' directive (or use the equivalent ''-Fc'' command line option), or to save the source code in UTF-8 with a BOM.<br />
<br />
== String indexing ==<br />
Nothing changes to string indexing. Every string element of a UnicodeString/WideString is two bytes and every string element of all other strings is one byte. The string indexing mechanism completely ignores code pages and composite code points.<br />
<br />
= Old/obsolete sections=<br />
{{Warning|These sections are kept for historical reference - please update the sections above with this information if it is still applicable. Since FPC 2.7 (current development version), extensive Unicode support has been implemented.}}<br />
<br />
== Tiburon Unicode support ==<br />
<br />
Currently we have some information about Tiburon's Unicode support implementation.<br />
<br />
http://blogs.codegear.com/abauer/2008/01/09/38845<br />
<br />
http://blogs.codegear.com/abauer/2008/07/16/38864<br />
<br />
==Status of Unicode support in FPC so far==<br />
<br />
Currently FPC 2.3.x has a new type called UnicodeString. This is similar to a WideString type. The difference being that UnicodeString is reference counted on all platforms.<br />
<br />
All implementation work is currently done in a separate svn branch: http://svn.freepascal.org/svn/fpc/branches/cpstrnew<br />
<br />
==User visible changes==<br />
<br />
Full support of code page aware strings is not possible without breaking some existing code. The following list tries to summarize the most important user visible changes.<br />
* The string header has two new fields: encoding and element size. On 32 Bit platforms this increases the header size by 4 and on 64 bit platforms by 8 bytes.<br />
* WideCharLenToString, UnicodeCharLenToString, WideCharToString, UnicodeCharToString and OleStrToString return an UnicodeString instead of an Ansistring before.<br />
* the type of the dest parameter of WideCharLenToString and UnicodeCharLenToString has been changed from Ansistring to Unicodestring<br />
* UTF8ToAnsi and AnsiToUTF8 take a RawByteString now<br />
<br />
==Roadmap of RTL Unicode support with UnicodeString==<br />
<br />
{| class="wikitable"<br />
! Topic !! Status !! Comments !! Assigned To<br />
|-<br />
| Locale Variables || {{Not Implemented}} || Variables are all 1 byte in size and can't hold UnicodeChar size values. e.g.: The Russian thousand separator is a no-break space $00A0 which doesn't fit in the ThousandSeparator (standard Char type) variable. ||<br />
|-<br />
| TStrings || {{Not Implemented}} || There is no UnicodeString version of TStrings || <br />
|-<br />
| TStringList || {{Not Implemented}} || There is no UnicodeString version of TStringList ||<br />
|-<br />
| Pos() || {{Working}} || || <br />
|}<br />
<br />
==Roadmap of RTL Unicode support with UTF8String==<br />
<br />
{| class="wikitable"<br />
! Topic !! Status !! Comments !! Assigned To<br />
|-<br />
| UTF8String || {{Not Implemented}} || Needs a real implementation. Is currently just an alias for ansistring.||<br />
|-<br />
| TStrings || {{Not Implemented}} || There is no UTF8String version of TStrings||<br />
|-<br />
| TStringList || {{Not Implemented}} || There is no UTF8String version of TStringList|| <br />
|}<br />
<br />
= See Also =<br />
<br />
* [[Character and string types]]<br />
* [[unicode use cases]]<br />
* [[LCL Unicode Support]]<br />
<br />
[[Category:Unicode]]<br />
[[Category:FPC]]</div>
Paul Ishenin
https://wiki.freepascal.org/index.php?title=FPC_Unicode_support&diff=75625
FPC Unicode support
2014-01-09T00:55:22Z
<p>Paul Ishenin: /* String constants */</p>
<hr />
<div>= Introduction =<br />
Up to and including FPC 2.6.x, the RTL was based on the ones of Turbo Pascal and Delphi 7. This means it was primarily based around the ''shortstring'', ''ansistring'' and ''pchar'' types. None of these types had any encoding information associated with them, but were implicitly assumed to be encoded in the "default system encoding" and were passed on to OS API calls without any conversion.<br />
<br />
In Delphi 2009, Embarcadero switched the entire RTL over to the ''UnicodeString'' type, which represents strings using UTF-16. Additionally, they also made the AnsiString type "code page-aware". This means that AnsiStrings from then on contain the code page according to which their data should be interpreted.<br />
<br />
FPC's language-level support for these string types is already available in current development versions of the compiler (FPC 2.7.1/trunk). The RTL level support is not yet complete. This page gives an overview of the code page-related behaviour of these string types, the current level of support in the RTL, and possible future ways of how this support may be improved.<br />
<br />
= Code pages =<br />
<br />
A code page defines how the individual bytes of a string should be interpreted, i.e., which letter, symbol or other graphic character corresponds to every byte or sequence of bytes.<br />
<br />
== Code page identifiers ==<br />
A code page identifier is always stored as a ''TSystemCodePage'', which is an alias for [[Word]]. The value represents the corresponding code page as defined by [http://msdn.microsoft.com/en-us/library/windows/desktop/dd317756(v=vs.85).aspx Microsoft Windows]. Additionally, there are 3 special code page values:<br />
* CP_ACP: this value represents the currently set "default system code page". See [[#Code page settings]] for more information.<br />
* CP_OEM: this value represents the OEM code page. On Windows platforms this corresponds to the code page used by the console (e.g. cmd.exe windows). On other platforms this value is interpreted the same as CP_ACP.<br />
* CP_NONE: this value indicates that no code page information has been associated with the string data. The result of any explicit or implicit operation that converts this data to another code page is undefined.<br />
<br />
== Code page settings ==<br />
The system unit contains several global variables that indicate the default code page used for certain operations.<br />
<br />
=== DefaultSystemCodePage ===<br />
* '''Purpose''': determines how CP_ACP is interpreted<br />
* '''Initial value''':<br />
** Windows: The result of the ''GetACP'' OS call, which returns the Windows ANSI code page.<br />
** iOS: UTF-8<br />
** Unix (excluding iOS): Based on the currently set ''LANG'' or ''LC_CTYPE'' environment variables. This is usually UTF-8, but that is not guaranteed to be the case.<br />
** Other platforms: CP_ACP (these platforms currently do not support multiple code pages, and are hardcoded to use their OS-specific code page in all cases)<br />
* '''Modifications''': you can modify this value by calling ''SetMultiByteConversionCodePage(CodePage: TSystemCodePage)''<br />
* '''Notes''': Since the value of this variable can be changed, it is not a good idea to use its value to determine the real OS "default system code page" (unless you do it at program startup and are certain no other unit has changed it in its initialisation code).<br />
<br />
=== DefaultFileSystemCodePage ===<br />
* '''Purpose''': defines the code page to which file/path names are translated before they are passed to OS API calls, '''''if''''' the RTL uses a single byte OS API for this purpose on the current platform. This code page is also used for intermediate operations on file paths inside the RTL before making OS API calls.<br />
* '''Initial value''':<br />
** Windows: UTF-8, because the RTL uses UTF-16 OS API calls (so no data is lost in intermediate operations).<br />
** OS X and iOS: UTF-8 (as defined by Apple)<br />
** Unix (excluding OS X and iOS): DefaultSystemCodePage, because the encoding of file names is undefined on Unix platforms (it's an untyped array of bytes that can be interpreted in any way; it is not guaranteed to be valid UTF-8)<br />
* '''Modifications''': you can modify this value by calling ''SetMultiByteFileSystemCodePage(CodePage: TSystemCodePage)''<br />
* '''Notes''': the Unix/OS X/iOS settings only apply in case the ''cwstring'' widestring manager is installed, otherwise DefaultFileSystemCodePage will have the same value as DefaultSystemCodePage after program startup.<br />
<br />
=== DefaultRTLFileSystemCodePage ===<br />
* '''Purpose''': defines the code page to which file/path names are translated before they are returned from RawByteString file/path RTL routines. Examples include the file/path names returned by the RawbyteString versions of ''SysUtils.FindFirst'' and ''System.GetDir''. The main reason for its existence is to enable the RTL to provide backward compatibility with earlier versions of FPC, as these always returned strings encoded in whatever the OS' single byte API used (which was usually what is now known as ''DefaultSystemCodePage'').<br />
* '''Initial value'''<br />
** Windows: DefaultSystemCodePage, for backward compatibility.<br />
** OS X and iOS: UTF-8, for backward compatibility (it was already always UTF-8 in the past, since that's what the OS file APIs return and we did not convert this data).<br />
** Unix (excluding OS X and iOS): DefaultSystemCodePage, for the same reason as with DefaultFileSystemCodePage. Setting this to a different value than DefaultFileSystemCodePage is a bad idea on these platforms, since any code page conversion can corrupt these strings as their initial encoding is unknown.<br />
* '''Modifications''': you can modify this value by calling ''SetMultiByteRTLFileSystemCodePage(CodePage: TSystemCodePage)''<br />
* '''Notes''': same as for DefaultFileSystemCodePage.<br />
<br />
= Strings =<br />
<br />
== String/character types ==<br />
<br />
=== Shortstring ===<br />
The code page of a shortstring is implicitly CP_ACP and hence will always be equal to the current value of DefaultSystemCodePage.<br />
<br />
=== PAnsiChar/AnsiChar ===<br />
These types are the same as the old PChar/Char types. In all compiler modes except for ''{$mode delphiunicode}'', PChar/Char are also still aliases for PAnsiChar/AnsiChar. Their code page is implicitly CP_ACP and hence will always be equal to the current value of DefaultSystemCodePage.<br />
<br />
=== PWideChar/PUnicodeChar and WideChar/UnicodeChar ===<br />
These types remain unchanged. WideChar/UnicodeChar can contain a single UTF-16 code unit, while PWideChar/PUnicodeChar point to a single or an array of UTF-16 code units.<br />
<br />
In ''{$mode delphiunicode}'', PChar becomes an alias for PWideChar/PUnicodeChar and Char becomes an alias for WideChar/UnicodeChar.<br />
<br />
=== UnicodeString/WideString ===<br />
These types behave the same as in previous versions:<br />
* ''Widestring'' is the same as a "COM BSTR" on Windows, and an alias for UnicodeString on all other platforms. Its string data is encoded using UTF-16.<br />
* ''UnicodeString'' is a reference-counted string with a maximum length of high(SizeInt) UTF-16 code units.<br />
<br />
=== Ansistring ===<br />
AnsiStrings are reference-counted types with a maximum length of high(SizeInt) bytes. Additionally, they now also have code page information associated with them.<br />
<br />
The most important thing to understand about the new AnsiString type is that it both has a declared/static/preferred/default code page (called ''static code page'' from now on), and a dynamic code page. The static code page tells the compiler that when assigning something to that AnsiString, it should first convert the data to that static code page (except if it is CP_NONE, see [[#RawByteString]] below). The dynamic code page is a property of the AnsiString which, similar to the length and the reference count, defines the actual code page of the data currently held by that AnsiString.<br />
<br />
==== Static code page ====<br />
The static code page of an AnsiString can only be defined by declaring a new type as follows:<br />
<syntaxhighlight><br />
type<br />
CP866String = type AnsiString(866); // note the extra "type"<br />
</syntaxhighlight><br />
<br />
The static code page of a variable declared as plain ''AnsiString'' is CP_ACP. In effect, the AnsiString type is now semantically defined in the System unit as<br />
<syntaxhighlight><br />
type<br />
AnsiString = type AnsiString(CP_ACP);<br />
</syntaxhighlight><br />
<br />
Another predefined AnsiString(X) type in the System unit is UTF8String:<br />
<syntaxhighlight><br />
type<br />
UTF8String = type AnsiString(CP_UTF8);<br />
</syntaxhighlight><br />
<br />
Once you have defined such a custom AnsiString(X) type, you can use it to declare variables, parameters, fields etc as usual.<br />
<br />
==== Dynamic code page ====<br />
If a string with a static code page X1 is assigned to a string with static code page X2 and X1<>X2, the string data will generally first be converted to said code page X2 before assignment, and as a result the dynamic code page of the destination string will be X2. When assigning a string to a plain AnsiString (= AnsiString(CP_ACP)) or ShortString, the string data will however be converted to DefaultSystemCodePage. The dynamic code page of that AnsiString(CP_ACP) will then be the current value of DefaultSystemCodePage (e.g. 1250 for the Windows-1250 code page), even though its static code page is CP_ACP (which is a constant <> 1250). This is one example of how the static code page can differ from the dynamic code page. Subsequent sections will describe more such scenarios.<br />
<br />
Note: as mentioned above, whether or not a potential code page conversion happens only depends on the ''static code pages'' of the involved strings. This means that if you assign one AnsiString(X) to another AnsiString(X) and the former's dynamic code was different from X, the string data will ''not'' be converted to code page X by the assignment.<br />
<br />
==== RawByteString ====<br />
The RawByteString type is defined as<br />
<syntaxhighlight><br />
type<br />
RawByteString = type AnsiString(CP_NONE);<br />
</syntaxhighlight><br />
<br />
As mentioned earlier, the results of conversions from/to the CP_NONE code page are undefined. As it does not make sense to define a type in the RTL whose behaviour is undefined, the behaviour of RawByteString is somewhat different than that of other AnsiString(X) types.<br />
<br />
As a first approximation, ''RawByteString'' can be thought of as an "untyped AnsiString": assigning an AnsiString(X) to a RawByteString has exactly the same behaviour as assigning that AnsiString(X) to another AnsiString(X) variable with the same value of X: no code page conversion or copying occurs, just the reference count is increased.<br />
<br />
Less intuitive is probably that when a RawByteString is assigned to an AnsiString(X), the same happens: no code page conversion or copying, just the reference count is increased. Note that this means that results from functions returning a RawByteString will never be converted to the destination's static code page. This is another way in which the dynamic code page of an AnsiString(X) can become different from its static code page.<br />
<br />
This type is mainly used to declare ''const'', ''constref'' and value parameters that accept any AnsiString(X) value without converting it to a predefined static code page. Note that if you do this, the routine accepting those parameters should be able to handle strings with any possible dynamic code page.<br />
<br />
''var'' and ''out'' parameters can also be declared as ''RawByteString'', but in this case the compiler will give an error if an AnsiString(X) whose static code page is different from CP_NONE is passed in. This is consistent with ''var'' and ''out'' parameters in general: they require an exactly matching type to be passed in. You can add an explicit RawByteString() typecast around an argument to remove this error, but then you must be prepared to deal with the fact that the returned string can have any dynamic code page.<br />
<br />
== String concatenations ==<br />
Normally, in Pascal the result type of an expression is independent of how its result is used afterwards. E.g. multiplying two longints on a 32 bit platform and assigning the result to an int64 will still perform the multiplication using 32 bit arithmetic, and only afterwards the result is converted to 64 bit.<br />
<br />
Code page-aware strings are the only exception to this rule: concatenating two or more strings always occurs without data loss, although afterwards the resulting string will of course still be converted to the static code page of the destination (which may result in data loss).<br />
<br />
Assigning the result of a concatenation to a RawByteString is again special:<br />
* if all concatenated strings have the same dynamic code page, the result will have this code page too<br />
* in other cases the result will be converted to CP_ACP (we may add an option in the future to change this RawByteString behaviour, as it is not very practical).<br />
<br />
== String constants ==<br />
String constants are parsed by FPC as follows:<br />
* if a file contains a ''{$codepage xxx}'' directive (e.g. <code>{$codepage UTF8}</code>, then string constants are interpreted according to that code page, otherwise<br />
* if the file starts with an UTF-8 BOM, then string constants are interpreted as UTF-8 strings, otherwise<br />
* string constants are copied without any translation into an internal buffer and are interpreted as characters using one of the following code pages:<br />
** the ''DefaultSystemCodePage'' '''''of the computer on which the compiler itself is currently running''''' when ''{$modeswitch systemcodepage}'' is active (i.e., compiling the source code on a different system may cause string constants to be interpreted differently; this switch is available for Delphi compatibility and is enabled by default in ''{$mode delphiunicode}'')<br />
** CP_ACP in case ''{$modeswitch systemcodepage}'' is not active (for backward compatibility with previous FPC versions)<br />
<br />
In all but the last case, the actual code page of the source file is known. This knowledge is required when the compiler is forced to convert string constants to a different code page. Therefore, in the last case a default is used in such situations: strings are assumed to be encoded in code page 28591 (''ISO 8859-1 Latin 1; Western European''). This assumed or actual code page is referred to as the ''source file code page'' below.<br />
<br />
When a string constant is assigned to an AnsiString(X) either in code or as part of a typed constant or variable initialisation, then<br />
* if X = CP_NONE (i.e., the target is a RawByteString), the result is the same as if the constant string were assigned to an AnsiString(CP_ACP)<br />
* if X = CP_ACP and the code page of string constant is different from CP_ACP, then the string constant is converted, at compile time, to the source file code page. If the string constant's code page is also CP_ACP, it will be stored in the program unaltered with a code page of CP_ACP and hence its meaning/interpretation will depend on the actual value of ''DefaultSystemCodePage'' at run time. This ensures compatibility with older versions of FPC when assigning string constants to AnsiString variables without using a ''{$codepage xxx}'' directive or UTF-8 BOM.<br />
* for other values of X, the string constant is converted, at compile time, to code page X<br />
<br />
Similarly, if a string constant is assigned to a UnicodeString, the string constant is converted, at compile time, from the source file code page to UTF-16.<br />
<br />
For ShortString and PChar, the same rule as for AnsiString(CP_ACP) is followed.<br />
<br />
Note that symbolic string constants will be converted at compile time to the appropriate string type and code page whenever they are used. This means that there is no speed overhead when using a single string constant in multiple code page and string type contexts, only some data size overhead.<br />
<br />
From the above it follows that to ensure predictable interpretation of string constants in your source code, it is best to either include an explicit ''{$codepage xxx}'' directive (or use the equivalent ''-Fc'' command line option), or to save the source code in UTF-8 with a BOM.<br />
<br />
== String indexing ==<br />
Nothing changes to string indexing. Every string element of a UnicodeString/WideString is two bytes and every string element of all other strings is one byte. The string indexing mechanism completely ignores code pages and composite code points.<br />
<br />
= Old/obsolete sections=<br />
{{Warning|These sections are kept for historical reference - please update the sections above with this information if it is still applicable. Since FPC 2.7 (current development version), extensive Unicode support has been implemented.}}<br />
<br />
== Tiburon Unicode support ==<br />
<br />
Currently we have some information about Tiburon's Unicode support implementation.<br />
<br />
http://blogs.codegear.com/abauer/2008/01/09/38845<br />
<br />
http://blogs.codegear.com/abauer/2008/07/16/38864<br />
<br />
==Status of Unicode support in FPC so far==<br />
<br />
Currently FPC 2.3.x has a new type called UnicodeString. This is similar to a WideString type. The difference being that UnicodeString is reference counted on all platforms.<br />
<br />
All implementation work is currently done in a separate svn branch: http://svn.freepascal.org/svn/fpc/branches/cpstrnew<br />
<br />
==User visible changes==<br />
<br />
Full support of code page aware strings is not possible without breaking some existing code. The following list tries to summarize the most important user visible changes.<br />
* The string header has two new fields: encoding and element size. On 32 Bit platforms this increases the header size by 4 and on 64 bit platforms by 8 bytes.<br />
* WideCharLenToString, UnicodeCharLenToString, WideCharToString, UnicodeCharToString and OleStrToString return an UnicodeString instead of an Ansistring before.<br />
* the type of the dest parameter of WideCharLenToString and UnicodeCharLenToString has been changed from Ansistring to Unicodestring<br />
* UTF8ToAnsi and AnsiToUTF8 take a RawByteString now<br />
<br />
==Roadmap of RTL Unicode support with UnicodeString==<br />
<br />
{| class="wikitable"<br />
! Topic !! Status !! Comments !! Assigned To<br />
|-<br />
| Locale Variables || {{Not Implemented}} || Variables are all 1 byte in size and can't hold UnicodeChar size values. e.g.: The Russian thousand separator is a no-break space $00A0 which doesn't fit in the ThousandSeparator (standard Char type) variable. ||<br />
|-<br />
| TStrings || {{Not Implemented}} || There is no UnicodeString version of TStrings || <br />
|-<br />
| TStringList || {{Not Implemented}} || There is no UnicodeString version of TStringList ||<br />
|-<br />
| Pos() || {{Working}} || || <br />
|}<br />
<br />
==Roadmap of RTL Unicode support with UTF8String==<br />
<br />
{| class="wikitable"<br />
! Topic !! Status !! Comments !! Assigned To<br />
|-<br />
| UTF8String || {{Not Implemented}} || Needs a real implementation. Is currently just an alias for ansistring.||<br />
|-<br />
| TStrings || {{Not Implemented}} || There is no UTF8String version of TStrings||<br />
|-<br />
| TStringList || {{Not Implemented}} || There is no UTF8String version of TStringList|| <br />
|}<br />
<br />
= See Also =<br />
<br />
* [[Character and string types]]<br />
* [[unicode use cases]]<br />
* [[LCL Unicode Support]]<br />
<br />
[[Category:Unicode]]<br />
[[Category:FPC]]</div>
Paul Ishenin
https://wiki.freepascal.org/index.php?title=FPC_Unicode_support&diff=75624
FPC Unicode support
2014-01-09T00:28:55Z
<p>Paul Ishenin: /* Ansistring */</p>
<hr />
<div>= Introduction =<br />
Up to and including FPC 2.6.x, the RTL was based on the ones of Turbo Pascal and Delphi 7. This means it was primarily based around the ''shortstring'', ''ansistring'' and ''pchar'' types. None of these types had any encoding information associated with them, but were implicitly assumed to be encoded in the "default system encoding" and were passed on to OS API calls without any conversion.<br />
<br />
In Delphi 2009, Embarcadero switched the entire RTL over to the ''UnicodeString'' type, which represents strings using UTF-16. Additionally, they also made the AnsiString type "code page-aware". This means that AnsiStrings from then on contain the code page according to which their data should be interpreted.<br />
<br />
FPC's language-level support for these string types is already available in current development versions of the compiler (FPC 2.7.1/trunk). The RTL level support is not yet complete. This page gives an overview of the code page-related behaviour of these string types, the current level of support in the RTL, and possible future ways of how this support may be improved.<br />
<br />
= Code pages =<br />
<br />
A code page defines how the individual bytes of a string should be interpreted, i.e., which letter, symbol or other graphic character corresponds to every byte or sequence of bytes.<br />
<br />
== Code page identifiers ==<br />
A code page identifier is always stored as a ''TSystemCodePage'', which is an alias for [[Word]]. The value represents the corresponding code page as defined by [http://msdn.microsoft.com/en-us/library/windows/desktop/dd317756(v=vs.85).aspx Microsoft Windows]. Additionally, there are 3 special code page values:<br />
* CP_ACP: this value represents the currently set "default system code page". See [[#Code page settings]] for more information.<br />
* CP_OEM: this value represents the OEM code page. On Windows platforms this corresponds to the code page used by the console (e.g. cmd.exe windows). On other platforms this value is interpreted the same as CP_ACP.<br />
* CP_NONE: this value indicates that no code page information has been associated with the string data. The result of any explicit or implicit operation that converts this data to another code page is undefined.<br />
<br />
== Code page settings ==<br />
The system unit contains several global variables that indicate the default code page used for certain operations.<br />
<br />
=== DefaultSystemCodePage ===<br />
* '''Purpose''': determines how CP_ACP is interpreted<br />
* '''Initial value''':<br />
** Windows: The result of the ''GetACP'' OS call, which returns the Windows ANSI code page.<br />
** iOS: UTF-8<br />
** Unix (excluding iOS): Based on the currently set ''LANG'' or ''LC_CTYPE'' environment variables. This is usually UTF-8, but that is not guaranteed to be the case.<br />
** Other platforms: CP_ACP (these platforms currently do not support multiple code pages, and are hardcoded to use their OS-specific code page in all cases)<br />
* '''Modifications''': you can modify this value by calling ''SetMultiByteConversionCodePage(CodePage: TSystemCodePage)''<br />
* '''Notes''': Since the value of this variable can be changed, it is not a good idea to use its value to determine the real OS "default system code page" (unless you do it at program startup and are certain no other unit has changed it in its initialisation code).<br />
<br />
=== DefaultFileSystemCodePage ===<br />
* '''Purpose''': defines the code page to which file/path names are translated before they are passed to OS API calls, '''''if''''' the RTL uses a single byte OS API for this purpose on the current platform. This code page is also used for intermediate operations on file paths inside the RTL before making OS API calls.<br />
* '''Initial value''':<br />
** Windows: UTF-8, because the RTL uses UTF-16 OS API calls (so no data is lost in intermediate operations).<br />
** OS X and iOS: UTF-8 (as defined by Apple)<br />
** Unix (excluding OS X and iOS): DefaultSystemCodePage, because the encoding of file names is undefined on Unix platforms (it's an untyped array of bytes that can be interpreted in any way; it is not guaranteed to be valid UTF-8)<br />
* '''Modifications''': you can modify this value by calling ''SetMultiByteFileSystemCodePage(CodePage: TSystemCodePage)''<br />
* '''Notes''': the Unix/OS X/iOS settings only apply in case the ''cwstring'' widestring manager is installed, otherwise DefaultFileSystemCodePage will have the same value as DefaultSystemCodePage after program startup.<br />
<br />
=== DefaultRTLFileSystemCodePage ===<br />
* '''Purpose''': defines the code page to which file/path names are translated before they are returned from RawByteString file/path RTL routines. Examples include the file/path names returned by the RawbyteString versions of ''SysUtils.FindFirst'' and ''System.GetDir''. The main reason for its existence is to enable the RTL to provide backward compatibility with earlier versions of FPC, as these always returned strings encoded in whatever the OS' single byte API used (which was usually what is now known as ''DefaultSystemCodePage'').<br />
* '''Initial value'''<br />
** Windows: DefaultSystemCodePage, for backward compatibility.<br />
** OS X and iOS: UTF-8, for backward compatibility (it was already always UTF-8 in the past, since that's what the OS file APIs return and we did not convert this data).<br />
** Unix (excluding OS X and iOS): DefaultSystemCodePage, for the same reason as with DefaultFileSystemCodePage. Setting this to a different value than DefaultFileSystemCodePage is a bad idea on these platforms, since any code page conversion can corrupt these strings as their initial encoding is unknown.<br />
* '''Modifications''': you can modify this value by calling ''SetMultiByteRTLFileSystemCodePage(CodePage: TSystemCodePage)''<br />
* '''Notes''': same as for DefaultFileSystemCodePage.<br />
<br />
= Strings =<br />
<br />
== String/character types ==<br />
<br />
=== Shortstring ===<br />
The code page of a shortstring is implicitly CP_ACP and hence will always be equal to the current value of DefaultSystemCodePage.<br />
<br />
=== PAnsiChar/AnsiChar ===<br />
These types are the same as the old PChar/Char types. In all compiler modes except for ''{$mode delphiunicode}'', PChar/Char are also still aliases for PAnsiChar/AnsiChar. Their code page is implicitly CP_ACP and hence will always be equal to the current value of DefaultSystemCodePage.<br />
<br />
=== PWideChar/PUnicodeChar and WideChar/UnicodeChar ===<br />
These types remain unchanged. WideChar/UnicodeChar can contain a single UTF-16 code unit, while PWideChar/PUnicodeChar point to a single or an array of UTF-16 code units.<br />
<br />
In ''{$mode delphiunicode}'', PChar becomes an alias for PWideChar/PUnicodeChar and Char becomes an alias for WideChar/UnicodeChar.<br />
<br />
=== UnicodeString/WideString ===<br />
These types behave the same as in previous versions:<br />
* ''Widestring'' is the same as a "COM BSTR" on Windows, and an alias for UnicodeString on all other platforms. Its string data is encoded using UTF-16.<br />
* ''UnicodeString'' is a reference-counted string with a maximum length of high(SizeInt) UTF-16 code units.<br />
<br />
=== Ansistring ===<br />
AnsiStrings are reference-counted types with a maximum length of high(SizeInt) bytes. Additionally, they now also have code page information associated with them.<br />
<br />
The most important thing to understand about the new AnsiString type is that it both has a declared/static/preferred/default code page (called ''static code page'' from now on), and a dynamic code page. The static code page tells the compiler that when assigning something to that AnsiString, it should first convert the data to that static code page (except if it is CP_NONE, see [[#RawByteString]] below). The dynamic code page is a property of the AnsiString which, similar to the length and the reference count, defines the actual code page of the data currently held by that AnsiString.<br />
<br />
==== Static code page ====<br />
The static code page of an AnsiString can only be defined by declaring a new type as follows:<br />
<syntaxhighlight><br />
type<br />
CP866String = type AnsiString(866); // note the extra "type"<br />
</syntaxhighlight><br />
<br />
The static code page of a variable declared as plain ''AnsiString'' is CP_ACP. In effect, the AnsiString type is now semantically defined in the System unit as<br />
<syntaxhighlight><br />
type<br />
AnsiString = type AnsiString(CP_ACP);<br />
</syntaxhighlight><br />
<br />
Another predefined AnsiString(X) type in the System unit is UTF8String:<br />
<syntaxhighlight><br />
type<br />
UTF8String = type AnsiString(CP_UTF8);<br />
</syntaxhighlight><br />
<br />
Once you have defined such a custom AnsiString(X) type, you can use it to declare variables, parameters, fields etc as usual.<br />
<br />
==== Dynamic code page ====<br />
If a string with a static code page X1 is assigned to a string with static code page X2 and X1<>X2, the string data will generally first be converted to said code page X2 before assignment, and as a result the dynamic code page of the destination string will be X2. When assigning a string to a plain AnsiString (= AnsiString(CP_ACP)) or ShortString, the string data will however be converted to DefaultSystemCodePage. The dynamic code page of that AnsiString(CP_ACP) will then be the current value of DefaultSystemCodePage (e.g. 1250 for the Windows-1250 code page), even though its static code page is CP_ACP (which is a constant <> 1250). This is one example of how the static code page can differ from the dynamic code page. Subsequent sections will describe more such scenarios.<br />
<br />
Note: as mentioned above, whether or not a potential code page conversion happens only depends on the ''static code pages'' of the involved strings. This means that if you assign one AnsiString(X) to another AnsiString(X) and the former's dynamic code was different from X, the string data will ''not'' be converted to code page X by the assignment.<br />
<br />
==== RawByteString ====<br />
The RawByteString type is defined as<br />
<syntaxhighlight><br />
type<br />
RawByteString = type AnsiString(CP_NONE);<br />
</syntaxhighlight><br />
<br />
As mentioned earlier, the results of conversions from/to the CP_NONE code page are undefined. As it does not make sense to define a type in the RTL whose behaviour is undefined, the behaviour of RawByteString is somewhat different than that of other AnsiString(X) types.<br />
<br />
As a first approximation, ''RawByteString'' can be thought of as an "untyped AnsiString": assigning an AnsiString(X) to a RawByteString has exactly the same behaviour as assigning that AnsiString(X) to another AnsiString(X) variable with the same value of X: no code page conversion or copying occurs, just the reference count is increased.<br />
<br />
Less intuitive is probably that when a RawByteString is assigned to an AnsiString(X), the same happens: no code page conversion or copying, just the reference count is increased. Note that this means that results from functions returning a RawByteString will never be converted to the destination's static code page. This is another way in which the dynamic code page of an AnsiString(X) can become different from its static code page.<br />
<br />
This type is mainly used to declare ''const'', ''constref'' and value parameters that accept any AnsiString(X) value without converting it to a predefined static code page. Note that if you do this, the routine accepting those parameters should be able to handle strings with any possible dynamic code page.<br />
<br />
''var'' and ''out'' parameters can also be declared as ''RawByteString'', but in this case the compiler will give an error if an AnsiString(X) whose static code page is different from CP_NONE is passed in. This is consistent with ''var'' and ''out'' parameters in general: they require an exactly matching type to be passed in. You can add an explicit RawByteString() typecast around an argument to remove this error, but then you must be prepared to deal with the fact that the returned string can have any dynamic code page.<br />
<br />
== String concatenations ==<br />
Normally, in Pascal the result type of an expression is independent of how its result is used afterwards. E.g. multiplying two longints on a 32 bit platform and assigning the result to an int64 will still perform the multiplication using 32 bit arithmetic, and only afterwards the result is converted to 64 bit.<br />
<br />
Code page-aware strings are the only exception to this rule: concatenating two or more strings always occurs without data loss, although afterwards the resulting string will of course still be converted to the static code page of the destination (which may result in data loss).<br />
<br />
Assigning the result of a concatenation to a RawByteString is again special:<br />
* if all concatenated strings have the same dynamic code page, the result will have this code page too<br />
* in other cases the result will be converted to CP_ACP (we may add an option in the future to change this RawByteString behaviour, as it is not very practical).<br />
<br />
== String constants ==<br />
String constants are parsed by FPC as follows:<br />
* if a file contains a ''{$codepage xxx}'' directive (e.g. <code>{$codepage UTF8}</code>, then string constants are interpreted according to that code page, otherwise<br />
* if the file starts with an UTF-8 BOM, then string constants are interpreted as UTF-8 strings, otherwise<br />
* string constants are copied without any translation into an internal buffer and are interpreted as characters using one of the following code pages:<br />
** the ''DefaultSystemCodePage'' '''''of the computer on which the compiler itself is currently running''''' when ''{$modeswitch systemcodepage}'' is active (i.e., compiling the source code on a different system may cause string constants to be interpreted differently; this switch is available for Delphi compatibility and is enabled by default in ''{$mode delphiunicode}'')<br />
** CP_ACP in case ''{$modeswitch systemcodepage}'' is not active (for backward compatibility with previous FPC versions)<br />
<br />
In all but the last case, the actual code page of the source file is known. This knowledge is required when the compiler is forced to convert string constants to a different code page. Therefore, in the last case a default is used in such situations: strings are assumed to be encoded in code page 28591 (''ISO 8859-1 Latin 1; Western European''). This assumed or actual code page is referred to as the ''source file code page'' below.<br />
<br />
When a string constant is assigned to an AnsiString(X) either in code or as part of a typed constant or variable initialisation, then<br />
* if X = CP_NONE (i.e., the target is a RawByteString), the result is the same as if the constant string were assigned to an AnsiString(CP_ACP)<br />
* if X = CP_ACP and the code page of string constant's code page is different from CP_ACP, then the string constant is converted, at compile time, to the source file code page. If the string constant's code page is also CP_ACP, it will be stored in the program unaltered with a code page of CP_ACP and hence its meaning/interpretation will depend on the actual value of ''DefaultSystemCodePage'' at run time. This ensures compatibility with older versions of FPC when assigning string constants to AnsiString variables without using a ''{$codepage xxx}'' directive or UTF-8 BOM.<br />
* for other values of X, the string constant is converted, at compile time, to code page X<br />
<br />
Similarly, if a string constant is assigned to a UnicodeString, the string constant is converted, at compile time, from the source file code page to UTF-16.<br />
<br />
For ShortString and PChar, the same rule as for AnsiString(CP_ACP) is followed.<br />
<br />
Note that symbolic string constants will be converted at compile time to the appropriate string type and code page whenever they are used. This means that there is no speed overhead when using a single string constant in multiple code page and string type contexts, only some data size overhead.<br />
<br />
From the above it follows that to ensure predictable interpretation of string constants in your source code, it is best to either include an explicit ''{$codepage xxx}'' directive (or use the equivalent ''-Fc'' command line option), or to save the source code in UTF-8 with a BOM.<br />
<br />
== String indexing ==<br />
Nothing changes to string indexing. Every string element of a UnicodeString/WideString is two bytes and every string element of all other strings is one byte. The string indexing mechanism completely ignores code pages and composite code points.<br />
<br />
= Old/obsolete sections=<br />
{{Warning|These sections are kept for historical reference - please update the sections above with this information if it is still applicable. Since FPC 2.7 (current development version), extensive Unicode support has been implemented.}}<br />
<br />
== Tiburon Unicode support ==<br />
<br />
Currently we have some information about Tiburon's Unicode support implementation.<br />
<br />
http://blogs.codegear.com/abauer/2008/01/09/38845<br />
<br />
http://blogs.codegear.com/abauer/2008/07/16/38864<br />
<br />
==Status of Unicode support in FPC so far==<br />
<br />
Currently FPC 2.3.x has a new type called UnicodeString. This is similar to a WideString type. The difference being that UnicodeString is reference counted on all platforms.<br />
<br />
All implementation work is currently done in a separate svn branch: http://svn.freepascal.org/svn/fpc/branches/cpstrnew<br />
<br />
==User visible changes==<br />
<br />
Full support of code page aware strings is not possible without breaking some existing code. The following list tries to summarize the most important user visible changes.<br />
* The string header has two new fields: encoding and element size. On 32 Bit platforms this increases the header size by 4 and on 64 bit platforms by 8 bytes.<br />
* WideCharLenToString, UnicodeCharLenToString, WideCharToString, UnicodeCharToString and OleStrToString return an UnicodeString instead of an Ansistring before.<br />
* the type of the dest parameter of WideCharLenToString and UnicodeCharLenToString has been changed from Ansistring to Unicodestring<br />
* UTF8ToAnsi and AnsiToUTF8 take a RawByteString now<br />
<br />
==Roadmap of RTL Unicode support with UnicodeString==<br />
<br />
{| class="wikitable"<br />
! Topic !! Status !! Comments !! Assigned To<br />
|-<br />
| Locale Variables || {{Not Implemented}} || Variables are all 1 byte in size and can't hold UnicodeChar size values. e.g.: The Russian thousand separator is a no-break space $00A0 which doesn't fit in the ThousandSeparator (standard Char type) variable. ||<br />
|-<br />
| TStrings || {{Not Implemented}} || There is no UnicodeString version of TStrings || <br />
|-<br />
| TStringList || {{Not Implemented}} || There is no UnicodeString version of TStringList ||<br />
|-<br />
| Pos() || {{Working}} || || <br />
|}<br />
<br />
==Roadmap of RTL Unicode support with UTF8String==<br />
<br />
{| class="wikitable"<br />
! Topic !! Status !! Comments !! Assigned To<br />
|-<br />
| UTF8String || {{Not Implemented}} || Needs a real implementation. Is currently just an alias for ansistring.||<br />
|-<br />
| TStrings || {{Not Implemented}} || There is no UTF8String version of TStrings||<br />
|-<br />
| TStringList || {{Not Implemented}} || There is no UTF8String version of TStringList|| <br />
|}<br />
<br />
= See Also =<br />
<br />
* [[Character and string types]]<br />
* [[unicode use cases]]<br />
* [[LCL Unicode Support]]<br />
<br />
[[Category:Unicode]]<br />
[[Category:FPC]]</div>
Paul Ishenin
https://wiki.freepascal.org/index.php?title=FPC_Unicode_support&diff=75623
FPC Unicode support
2014-01-09T00:28:02Z
<p>Paul Ishenin: /* DefaultFileSystemCodePage */</p>
<hr />
<div>= Introduction =<br />
Up to and including FPC 2.6.x, the RTL was based on the ones of Turbo Pascal and Delphi 7. This means it was primarily based around the ''shortstring'', ''ansistring'' and ''pchar'' types. None of these types had any encoding information associated with them, but were implicitly assumed to be encoded in the "default system encoding" and were passed on to OS API calls without any conversion.<br />
<br />
In Delphi 2009, Embarcadero switched the entire RTL over to the ''UnicodeString'' type, which represents strings using UTF-16. Additionally, they also made the AnsiString type "code page-aware". This means that AnsiStrings from then on contain the code page according to which their data should be interpreted.<br />
<br />
FPC's language-level support for these string types is already available in current development versions of the compiler (FPC 2.7.1/trunk). The RTL level support is not yet complete. This page gives an overview of the code page-related behaviour of these string types, the current level of support in the RTL, and possible future ways of how this support may be improved.<br />
<br />
= Code pages =<br />
<br />
A code page defines how the individual bytes of a string should be interpreted, i.e., which letter, symbol or other graphic character corresponds to every byte or sequence of bytes.<br />
<br />
== Code page identifiers ==<br />
A code page identifier is always stored as a ''TSystemCodePage'', which is an alias for [[Word]]. The value represents the corresponding code page as defined by [http://msdn.microsoft.com/en-us/library/windows/desktop/dd317756(v=vs.85).aspx Microsoft Windows]. Additionally, there are 3 special code page values:<br />
* CP_ACP: this value represents the currently set "default system code page". See [[#Code page settings]] for more information.<br />
* CP_OEM: this value represents the OEM code page. On Windows platforms this corresponds to the code page used by the console (e.g. cmd.exe windows). On other platforms this value is interpreted the same as CP_ACP.<br />
* CP_NONE: this value indicates that no code page information has been associated with the string data. The result of any explicit or implicit operation that converts this data to another code page is undefined.<br />
<br />
== Code page settings ==<br />
The system unit contains several global variables that indicate the default code page used for certain operations.<br />
<br />
=== DefaultSystemCodePage ===<br />
* '''Purpose''': determines how CP_ACP is interpreted<br />
* '''Initial value''':<br />
** Windows: The result of the ''GetACP'' OS call, which returns the Windows ANSI code page.<br />
** iOS: UTF-8<br />
** Unix (excluding iOS): Based on the currently set ''LANG'' or ''LC_CTYPE'' environment variables. This is usually UTF-8, but that is not guaranteed to be the case.<br />
** Other platforms: CP_ACP (these platforms currently do not support multiple code pages, and are hardcoded to use their OS-specific code page in all cases)<br />
* '''Modifications''': you can modify this value by calling ''SetMultiByteConversionCodePage(CodePage: TSystemCodePage)''<br />
* '''Notes''': Since the value of this variable can be changed, it is not a good idea to use its value to determine the real OS "default system code page" (unless you do it at program startup and are certain no other unit has changed it in its initialisation code).<br />
<br />
=== DefaultFileSystemCodePage ===<br />
* '''Purpose''': defines the code page to which file/path names are translated before they are passed to OS API calls, '''''if''''' the RTL uses a single byte OS API for this purpose on the current platform. This code page is also used for intermediate operations on file paths inside the RTL before making OS API calls.<br />
* '''Initial value''':<br />
** Windows: UTF-8, because the RTL uses UTF-16 OS API calls (so no data is lost in intermediate operations).<br />
** OS X and iOS: UTF-8 (as defined by Apple)<br />
** Unix (excluding OS X and iOS): DefaultSystemCodePage, because the encoding of file names is undefined on Unix platforms (it's an untyped array of bytes that can be interpreted in any way; it is not guaranteed to be valid UTF-8)<br />
* '''Modifications''': you can modify this value by calling ''SetMultiByteFileSystemCodePage(CodePage: TSystemCodePage)''<br />
* '''Notes''': the Unix/OS X/iOS settings only apply in case the ''cwstring'' widestring manager is installed, otherwise DefaultFileSystemCodePage will have the same value as DefaultSystemCodePage after program startup.<br />
<br />
=== DefaultRTLFileSystemCodePage ===<br />
* '''Purpose''': defines the code page to which file/path names are translated before they are returned from RawByteString file/path RTL routines. Examples include the file/path names returned by the RawbyteString versions of ''SysUtils.FindFirst'' and ''System.GetDir''. The main reason for its existence is to enable the RTL to provide backward compatibility with earlier versions of FPC, as these always returned strings encoded in whatever the OS' single byte API used (which was usually what is now known as ''DefaultSystemCodePage'').<br />
* '''Initial value'''<br />
** Windows: DefaultSystemCodePage, for backward compatibility.<br />
** OS X and iOS: UTF-8, for backward compatibility (it was already always UTF-8 in the past, since that's what the OS file APIs return and we did not convert this data).<br />
** Unix (excluding OS X and iOS): DefaultSystemCodePage, for the same reason as with DefaultFileSystemCodePage. Setting this to a different value than DefaultFileSystemCodePage is a bad idea on these platforms, since any code page conversion can corrupt these strings as their initial encoding is unknown.<br />
* '''Modifications''': you can modify this value by calling ''SetMultiByteRTLFileSystemCodePage(CodePage: TSystemCodePage)''<br />
* '''Notes''': same as for DefaultFileSystemCodePage.<br />
<br />
= Strings =<br />
<br />
== String/character types ==<br />
<br />
=== Shortstring ===<br />
The code page of a shortstring is implicitly CP_ACP and hence will always be equal to the current value of DefaultSystemCodePage.<br />
<br />
=== PAnsiChar/AnsiChar ===<br />
These types are the same as the old PChar/Char types. In all compiler modes except for ''{$mode delphiunicode}'', PChar/Char are also still aliases for PAnsiChar/AnsiChar. Their code page is implicitly CP_ACP and hence will always be equal to the current value of DefaultSystemCodePage.<br />
<br />
=== PWideChar/PUnicodeChar and WideChar/UnicodeChar ===<br />
These types remain unchanged. WideChar/UnicodeChar can contain a single UTF-16 code unit, while PWideChar/PUnicodeChar point to a single or an array of UTF-16 code units.<br />
<br />
In ''{$mode delphiunicode}'', PChar becomes an alias for PWideChar/PUnicodeChar and Char becomes an alias for WideChar/UnicodeChar.<br />
<br />
=== UnicodeString/WideString ===<br />
These types behave the same as in previous versions:<br />
* ''Widestring'' is the same as a "COM BSTR" on Windows, and an alias for UnicodeString on all other platforms. Its string data is encoded using UTF-16.<br />
* ''UnicodeString'' is a reference-counted string with a maximum length of high(SizeInt) UTF-16 code units.<br />
<br />
=== Ansistring ===<br />
AnsiStrings are reference-counted types with a maximum length of high(SizeInt) bytes. Additionally, they now also have code page information associated with them.<br />
<br />
The most important thing to understand about the new AnsiString type is that it both has a declared/static/preferred/default code page (called ''static code page'' from now on), and a dynamic code page. The static code page tells that compiler that when assigning something to that AnsiString, it should first convert the data to that static code page (except if it is CP_NONE, see [[#RawByteString]] below). The dynamic code page is a property of the AnsiString which, similar to the length and the reference count, defines the actual code page of the data currently held by that AnsiString.<br />
<br />
==== Static code page ====<br />
The static code page of an AnsiString can only be defined by declaring a new type as follows:<br />
<syntaxhighlight><br />
type<br />
CP866String = type AnsiString(866); // note the extra "type"<br />
</syntaxhighlight><br />
<br />
The static code page of a variable declared as plain ''AnsiString'' is CP_ACP. In effect, the AnsiString type is now semantically defined in the System unit as<br />
<syntaxhighlight><br />
type<br />
AnsiString = type AnsiString(CP_ACP);<br />
</syntaxhighlight><br />
<br />
Another predefined AnsiString(X) type in the System unit is UTF8String:<br />
<syntaxhighlight><br />
type<br />
UTF8String = type AnsiString(CP_UTF8);<br />
</syntaxhighlight><br />
<br />
Once you have defined such a custom AnsiString(X) type, you can use it to declare variables, parameters, fields etc as usual.<br />
<br />
==== Dynamic code page ====<br />
If a string with a static code page X1 is assigned to a string with static code page X2 and X1<>X2, the string data will generally first be converted to said code page X2 before assignment, and as a result the dynamic code page of the destination string will be X2. When assigning a string to a plain AnsiString (= AnsiString(CP_ACP)) or ShortString, the string data will however be converted to DefaultSystemCodePage. The dynamic code page of that AnsiString(CP_ACP) will then be the current value of DefaultSystemCodePage (e.g. 1250 for the Windows-1250 code page), even though its static code page is CP_ACP (which is a constant <> 1250). This is one example of how the static code page can differ from the dynamic code page. Subsequent sections will describe more such scenarios.<br />
<br />
Note: as mentioned above, whether or not a potential code page conversion happens only depends on the ''static code pages'' of the involved strings. This means that if you assign one AnsiString(X) to another AnsiString(X) and the former's dynamic code was different from X, the string data will ''not'' be converted to code page X by the assignment.<br />
<br />
==== RawByteString ====<br />
The RawByteString type is defined as<br />
<syntaxhighlight><br />
type<br />
RawByteString = type AnsiString(CP_NONE);<br />
</syntaxhighlight><br />
<br />
As mentioned earlier, the results of conversions from/to the CP_NONE code page are undefined. As it does not make sense to define a type in the RTL whose behaviour is undefined, the behaviour of RawByteString is somewhat different than that of other AnsiString(X) types.<br />
<br />
As a first approximation, ''RawByteString'' can be thought of as an "untyped AnsiString": assigning an AnsiString(X) to a RawByteString has exactly the same behaviour as assigning that AnsiString(X) to another AnsiString(X) variable with the same value of X: no code page conversion or copying occurs, just the reference count is increased.<br />
<br />
Less intuitive is probably that when a RawByteString is assigned to an AnsiString(X), the same happens: no code page conversion or copying, just the reference count is increased. Note that this means that results from functions returning a RawByteString will never be converted to the destination's static code page. This is another way in which the dynamic code page of an AnsiString(X) can become different from its static code page.<br />
<br />
This type is mainly used to declare ''const'', ''constref'' and value parameters that accept any AnsiString(X) value without converting it to a predefined static code page. Note that if you do this, the routine accepting those parameters should be able to handle strings with any possible dynamic code page.<br />
<br />
''var'' and ''out'' parameters can also be declared as ''RawByteString'', but in this case the compiler will give an error if an AnsiString(X) whose static code page is different from CP_NONE is passed in. This is consistent with ''var'' and ''out'' parameters in general: they require an exactly matching type to be passed in. You can add an explicit RawByteString() typecast around an argument to remove this error, but then you must be prepared to deal with the fact that the returned string can have any dynamic code page.<br />
<br />
== String concatenations ==<br />
Normally, in Pascal the result type of an expression is independent of how its result is used afterwards. E.g. multiplying two longints on a 32 bit platform and assigning the result to an int64 will still perform the multiplication using 32 bit arithmetic, and only afterwards the result is converted to 64 bit.<br />
<br />
Code page-aware strings are the only exception to this rule: concatenating two or more strings always occurs without data loss, although afterwards the resulting string will of course still be converted to the static code page of the destination (which may result in data loss).<br />
<br />
Assigning the result of a concatenation to a RawByteString is again special:<br />
* if all concatenated strings have the same dynamic code page, the result will have this code page too<br />
* in other cases the result will be converted to CP_ACP (we may add an option in the future to change this RawByteString behaviour, as it is not very practical).<br />
<br />
== String constants ==<br />
String constants are parsed by FPC as follows:<br />
* if a file contains a ''{$codepage xxx}'' directive (e.g. <code>{$codepage UTF8}</code>, then string constants are interpreted according to that code page, otherwise<br />
* if the file starts with an UTF-8 BOM, then string constants are interpreted as UTF-8 strings, otherwise<br />
* string constants are copied without any translation into an internal buffer and are interpreted as characters using one of the following code pages:<br />
** the ''DefaultSystemCodePage'' '''''of the computer on which the compiler itself is currently running''''' when ''{$modeswitch systemcodepage}'' is active (i.e., compiling the source code on a different system may cause string constants to be interpreted differently; this switch is available for Delphi compatibility and is enabled by default in ''{$mode delphiunicode}'')<br />
** CP_ACP in case ''{$modeswitch systemcodepage}'' is not active (for backward compatibility with previous FPC versions)<br />
<br />
In all but the last case, the actual code page of the source file is known. This knowledge is required when the compiler is forced to convert string constants to a different code page. Therefore, in the last case a default is used in such situations: strings are assumed to be encoded in code page 28591 (''ISO 8859-1 Latin 1; Western European''). This assumed or actual code page is referred to as the ''source file code page'' below.<br />
<br />
When a string constant is assigned to an AnsiString(X) either in code or as part of a typed constant or variable initialisation, then<br />
* if X = CP_NONE (i.e., the target is a RawByteString), the result is the same as if the constant string were assigned to an AnsiString(CP_ACP)<br />
* if X = CP_ACP and the code page of string constant's code page is different from CP_ACP, then the string constant is converted, at compile time, to the source file code page. If the string constant's code page is also CP_ACP, it will be stored in the program unaltered with a code page of CP_ACP and hence its meaning/interpretation will depend on the actual value of ''DefaultSystemCodePage'' at run time. This ensures compatibility with older versions of FPC when assigning string constants to AnsiString variables without using a ''{$codepage xxx}'' directive or UTF-8 BOM.<br />
* for other values of X, the string constant is converted, at compile time, to code page X<br />
<br />
Similarly, if a string constant is assigned to a UnicodeString, the string constant is converted, at compile time, from the source file code page to UTF-16.<br />
<br />
For ShortString and PChar, the same rule as for AnsiString(CP_ACP) is followed.<br />
<br />
Note that symbolic string constants will be converted at compile time to the appropriate string type and code page whenever they are used. This means that there is no speed overhead when using a single string constant in multiple code page and string type contexts, only some data size overhead.<br />
<br />
From the above it follows that to ensure predictable interpretation of string constants in your source code, it is best to either include an explicit ''{$codepage xxx}'' directive (or use the equivalent ''-Fc'' command line option), or to save the source code in UTF-8 with a BOM.<br />
<br />
== String indexing ==<br />
Nothing changes to string indexing. Every string element of a UnicodeString/WideString is two bytes and every string element of all other strings is one byte. The string indexing mechanism completely ignores code pages and composite code points.<br />
<br />
= Old/obsolete sections=<br />
{{Warning|These sections are kept for historical reference - please update the sections above with this information if it is still applicable. Since FPC 2.7 (current development version), extensive Unicode support has been implemented.}}<br />
<br />
== Tiburon Unicode support ==<br />
<br />
Currently we have some information about Tiburon's Unicode support implementation.<br />
<br />
http://blogs.codegear.com/abauer/2008/01/09/38845<br />
<br />
http://blogs.codegear.com/abauer/2008/07/16/38864<br />
<br />
==Status of Unicode support in FPC so far==<br />
<br />
Currently FPC 2.3.x has a new type called UnicodeString. This is similar to a WideString type. The difference being that UnicodeString is reference counted on all platforms.<br />
<br />
All implementation work is currently done in a separate svn branch: http://svn.freepascal.org/svn/fpc/branches/cpstrnew<br />
<br />
==User visible changes==<br />
<br />
Full support of code page aware strings is not possible without breaking some existing code. The following list tries to summarize the most important user visible changes.<br />
* The string header has two new fields: encoding and element size. On 32 Bit platforms this increases the header size by 4 and on 64 bit platforms by 8 bytes.<br />
* WideCharLenToString, UnicodeCharLenToString, WideCharToString, UnicodeCharToString and OleStrToString return an UnicodeString instead of an Ansistring before.<br />
* the type of the dest parameter of WideCharLenToString and UnicodeCharLenToString has been changed from Ansistring to Unicodestring<br />
* UTF8ToAnsi and AnsiToUTF8 take a RawByteString now<br />
<br />
==Roadmap of RTL Unicode support with UnicodeString==<br />
<br />
{| class="wikitable"<br />
! Topic !! Status !! Comments !! Assigned To<br />
|-<br />
| Locale Variables || {{Not Implemented}} || Variables are all 1 byte in size and can't hold UnicodeChar size values. e.g.: The Russian thousand separator is a no-break space $00A0 which doesn't fit in the ThousandSeparator (standard Char type) variable. ||<br />
|-<br />
| TStrings || {{Not Implemented}} || There is no UnicodeString version of TStrings || <br />
|-<br />
| TStringList || {{Not Implemented}} || There is no UnicodeString version of TStringList ||<br />
|-<br />
| Pos() || {{Working}} || || <br />
|}<br />
<br />
==Roadmap of RTL Unicode support with UTF8String==<br />
<br />
{| class="wikitable"<br />
! Topic !! Status !! Comments !! Assigned To<br />
|-<br />
| UTF8String || {{Not Implemented}} || Needs a real implementation. Is currently just an alias for ansistring.||<br />
|-<br />
| TStrings || {{Not Implemented}} || There is no UTF8String version of TStrings||<br />
|-<br />
| TStringList || {{Not Implemented}} || There is no UTF8String version of TStringList|| <br />
|}<br />
<br />
= See Also =<br />
<br />
* [[Character and string types]]<br />
* [[unicode use cases]]<br />
* [[LCL Unicode Support]]<br />
<br />
[[Category:Unicode]]<br />
[[Category:FPC]]</div>
Paul Ishenin
https://wiki.freepascal.org/index.php?title=Lazarus_1.2_fixes_branch&diff=74173
Lazarus 1.2 fixes branch
2013-11-23T10:34:30Z
<p>Paul Ishenin: /* Submitted by developer / committer */</p>
<hr />
<div>This page contains the revisions to be merged from trunk to the [http://svn.freepascal.org/svn/lazarus/branches/fixes_1_2/ Lazarus 1.2 fixes] branch.<br><br />
This are only fixes made after the branch was created. For other fixes made since the previous release (1.0) see SVN and [[Lazarus_1.0_fixes_branch]]<br><br><br />
<br />
Release notes can be found [[Lazarus 1.2.0 release notes|here]]<br />
<br />
== Fixes for 1.2 RC2 ==<br />
<br />
=== Merge requests ===<br />
<br />
==== Submitted by developer / committer ====<br />
<br />
*r43456 LCL: fix types for GDI objects (fixes crash on 64bit)<br />
*r43457 Cocoa: fix default GDI objects construction/destruction<br />
*r43461 Cocoa: fix TMemo creation<br />
*r43467 Cocoa: fix winapi Rectangle() implementation<br />
*r43475 Cocoa: some corrections to window creation<br />
*r43462 IDE: fixed compilation fpc 2.7.1<br />
*r43464 Debugger: Update registers, if stackframe changes<br />
*r43469 carbon: fix for freez if wakemainthread is called from the main thread prior to event loop initialization. #23393<br />
*r43472 examples: TSQLScript database sample program. #25350<br />
<br />
==== Submitted by others ====<br />
<br />
=== Merged revisions for 1.2 RC2 ===<br />
<br />
*r43361 TApplication: set THintWindow.BidiMode. {{MantisLink|0022048}}.<br />
*r43362 Debugger: Add timeout protection for breakpoints during start up. {{MantisLink|0025277}}<br />
*r43364 Debugger: prevent messing up the environment on windows, due to gdb bug (gdb not setting debuggee environment) / introduced in rev 42419<br />
*r43366 Debugger: better pid detection for attach. {{MantisLink|0025273}}<br />
*r43367 THintWindow: adjust for BidiMode in CalcHintRect. {{MantisLink|0025275}}.<br />
*r43368 TApplication: adjust position of THintWindow depending on LTR or RTL alignment.<br />
*r43371 Components: fixed Lazarus Package Manager compilation with FPC >= 2.6.3<br />
*r43373 THintWindow: adjust for BidiMode in CalcHintRect. Slight improvement on r43367.<br />
*r43375 SynEdit: Highlight-all, fix index for last element<br />
*r43381 Debugger: taborder for watch-properties<br />
*r43380 Debugger: fix internal type for gdb request (eval vs ptype)<br />
*r43429 Translations: Japanese translation update by Haruyuki Fujimaki<br />
*r43433 Translations: Polish translation update by Tomasz Wieckowski, {{MantisLink|25308}}<br />
*r43434 IDEIntf: regenerated some translations<br />
*r43384 carbon: fix selecting an item in a TListView on Carbon when OwnerDraw is true.patch by Joost van der Sluis. {{MantisLink|25274}}<br />
*r43385 Qt: fixed changing font color of themed text draw. {{MantisLink|25253}}<br />
*r43386 Qt: restore pen color if we change it during draw themed text. regression of r43385. {{MantisLink|25253}}<br />
*r43387 Qt: fixed another regression introduced with r43385 and r43386<br />
*r43396 Win, installer: delete correct conf folder, if updating 2ndary install and choose to clear conf<br />
*r43395 LazUtils: allow ReleaseRef on nil<br />
*r43397 Win, installer: convert Spanish to ansi<br />
*r43398 EditorMacroScript: Add some more try except dealing with self-test. Save reason of failure<br />
*r43378 codetools: fixed TCustomCodeTool.ReadBackTilBracketOpen when there is no bracket<br />
*r43424 SynEdit: Fixed painting highlight frame-borders. (do not paint extra left/right borders)<br />
*r43432 codetools: asking compiler for config files: expand relative file names<br />
*r43431 IDE: test file for compiler, expand temp directory<br />
*r43441 Qt: cleanup<br />
*r43442 Qt: changed defines for TQtFloatSpinEdit and CPU64<br />
*r43443 LCL: TControlCanvas: do not flood terminal about painting outside of paint event for widgetsets which actually supports painting outside of paint event.<br />
*r43451 PoChecker: add option to check translation statistics.<br />
*r43453 lazutils: added conversion KOI8U and KOI8RU<br />
*r43459 Components, PoChecker: regenerated translations; updated Russian translation<br />
<br />
== Fixes for 1.2 RC1 (Merged) ==<br />
<table class="sortable"><br />
<tr><th>Revision</th><th>Category</th><th>Description</th></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=42850 r42850],&#x200B;[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=42851 r42851] </td><td>carbon</td><td>fix linear gradient drawing</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=42843 r42843] </td><td>codetools</td><td>syntax error if parameter type is missing</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=42844 r42844] </td><td>codetools</td><td>fixed parsing var type deprecated bracket close</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=42846 r42846] </td><td>codetools</td><td>fix parsing of "specialize SomeGeneric<TypeParams>" as function/operator result (this fixes error with parsing of new objpas generics)</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=42859 r42859] </td><td>codetools</td><td>fixed removing first unit from second line</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=42868 r42868] </td><td>codetools</td><td>fixed checking if resolving edged bracket open is allowed, bug [http://bugs.freepascal.org/view.php?id=25045 25045]</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=42910 r42910] </td><td>Converter</td><td>Define PUREPASCAL for units during conversion when simulate Delphi defines is set.</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43076 r43076] </td><td>Components, Lazreport</td><td>updated Russian translation</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43195 r43195] </td><td>Converter</td><td>Fix a crash when a replaced function had brackets '()' without parameters.</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43201 r43201],&#x200B;[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43202 r43202],&#x200B;[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43203 r43203],&#x200B;[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43204 r43204],&#x200B;[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43205 r43205],&#x200B;[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43208 r43208],&#x200B;[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43209 r43209],&#x200B;[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43214 r43214],&#x200B;[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43215 r43215]</td><td>codetools</td><td>parsing new modifiers and keywords, needed for parsing FPC sources</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43337 r43337] </td><td>ComCtrls</td><td>change signature of TDrawTabEvent to avoid compilation error due to duplicatie identifier. Issue [http://bugs.freepascal.org/view.php?id=0025245 0025245].</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=42856 r42856] </td><td>Debugger</td><td>Disable logging of stackdump during unit lookup</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=42913 r42913],&#x200B;[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=42917 r42917] </td><td>Debugger</td><td>reset thread on start/init</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=42931 r42931] </td><td>Debugger</td><td>Options, disable add/remove buttons on signal opts. Not implemented</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=42932 r42932] </td><td>Debugger</td><td>Options, mark project as modified, when exceptions are enabled/disabled. Issue [http://bugs.freepascal.org/view.php?id=0025074 0025074]</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=42988 r42988] </td><td>Debugger</td><td>Spelling </td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=42989 r42989] </td><td>Debugger</td><td>fix disassembler, check if offset can be used</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=42990 r42990] </td><td>Debugger</td><td>fix race condition, stopping the debugger could lead to debugger error</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43038 r43038] </td><td>Debugger</td><td>force gdb to use lang=pascal. (set after attach / needed in some environment, such as cgi in webserver)</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43189 r43189] </td><td>Debugger</td><td>Fix handling of single quote in strings returned by gdb</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43197 r43197] </td><td>Debugger</td><td>Fix handling of backslash in strings returned by gdb (used for classname resolving)</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43240 r43240] </td><td>Debugger</td><td>Try filename in app bundle for newer gdb</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43255 r43255] </td><td>Debugger</td><td>parse version / mac file encoding depends on version</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43294 r43294] </td><td>Debugger</td><td>Fix getting min callstack depth in some cases.</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43302 r43302] </td><td>Debugger</td><td>improve cache / fix compare none case-sensitive </td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43303 r43303] </td><td>Debugger</td><td>fix disassembler testcase</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43304 r43304] </td><td>Debugger</td><td>fix adding watch via dialog. Open watch view window</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43306 r43306] </td><td>Debugger</td><td>Change ExceptionList to one list (no master/slave), fix debugger follows config which exceptions to ignore.</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43317 r43317],&#x200B;[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43318 r43318] </td><td>Debugger</td><td>Fix parsing class with nested record / array of record</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43329 r43329] </td><td>Debugger</td><td>Fix mem leak in disassembler </td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=42842 r42842] </td><td>dmg</td><td>versions with letters and minus</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43253 r43253] </td><td>Docs</td><td>added Yuichiro Takahashi and Haruyuki Fujimaki to contributors list </td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43122 r43122] </td><td>Gtk2</td><td>implemented TListView.OwnerDraw + OnDrawItem. part of issue [http://bugs.freepascal.org/view.php?id=25149 25149]</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43156 r43156] </td><td>Gtk2</td><td>implemented themed draw of combobox.issue [http://bugs.freepascal.org/view.php?id=25151 25151]</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43174 r43174] </td><td>Gtk2</td><td>Gtk2Themes: return correct size value for checkbox and radiobutton</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43176 r43176] </td><td>Gtk2</td><td>fixed combobox themed paint (separated combo button from combo root).issue [http://bugs.freepascal.org/view.php?id=25151 25151]</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43178 r43178] </td><td>Gtk2</td><td>pass TCheckListBox.OnDrawItem when Style <> lbStandard.issue [http://bugs.freepascal.org/view.php?id=14071 14071]</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=42835 r42835] </td><td>IDE</td><td>mode matrix: fixed showing targets</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=42865 r42865] </td><td>IDE</td><td>fixed complete block, bug [http://bugs.freepascal.org/view.php?id=24935 24935]</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=42866 r42866] </td><td>IDE</td><td>fixed complete block on char, fixed codebrowser check if something changed</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=42886 r42886] </td><td>IDEIntf</td><td>Change TComponentPropertyEditor back to original behavior so it lists all components from all forms.</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=42909 r42909] </td><td>IDE</td><td>add PowerPc processor types to selection list.</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=42916 r42916] </td><td>IDE</td><td>Improve the All Compiler Options GUI filter. It lost focus because it was disabled. Not any more.</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=42945 r42945] </td><td>IDE</td><td>designer: fixed adding components on inherited form, bug [http://bugs.freepascal.org/view.php?id=25084 25084]</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=42946 r42946] </td><td>IDE</td><td>when closing a modified package and user does not save mods, clear modified, bug [http://bugs.freepascal.org/view.php?id=22956 22956]</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43028 r43028] </td><td>IDE</td><td>Respect the Use Comments setting also when editing defines.</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43078 r43078] </td><td>IDE</td><td>regenerated Brazilian Portuguese translation</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43182 r43182] </td><td>IDE</td><td>Compare TargetOS without case sensitivity. The default value is lowercase.</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43219 r43219] </td><td>IDE</td><td>save package main source: ignore case, bug [http://bugs.freepascal.org/view.php?id=25173 25173]</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43351 r43351] </td><td>IDE</td><td>Fix the check for conflicting sequential (multi-stage) shortcuts. Issue [http://bugs.freepascal.org/view.php?id=25085 25085]</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43352 r43352] </td><td>IDE</td><td>Update popup menu item Enabled state correctly in Keymapping options. Sender is PopupMenu, not TreeView.</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=42825 r42825] </td><td>Installer, Win</td><td>allow "pre-release" in version name (inno setup)</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=42994 r42994],&#x200B;[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=42995 r42995],&#x200B;[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=42996 r42996]</td><td>LazReport</td><td>several template fixes including fix crash on loading template, issue [http://bugs.freepascal.org/view.php?id=14137 14137]</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43040 r43040] </td><td>LazReport</td><td>fix hyphenation helper mem leak</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43046 r43046] </td><td>LazReport</td><td>improve error message on missing classes, was about FRF format while in reality is about LRF format</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43047 r43047] </td><td>LazReport</td><td>fix error in dialogs when object is deleted and then a new one inserted, issue [http://bugs.freepascal.org/view.php?id=25097 25097]</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43063 r43063] </td><td>LazReport</td><td>restored accidentally removed translations</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43162 r43162] </td><td>LazReport</td><td>several fixes by Alexey Lagunov</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43271 r43271] </td><td>Lazreport</td><td>fix Report shape tool has black shadow, issue [http://bugs.freepascal.org/view.php?id=14127 14127]</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43272 r43272] </td><td>LazReport</td><td>some times objects that are hidden by others in upper layer show up because clipping region of moving object enable them, make sure they are visible or not</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43273 r43273] </td><td>LazReport</td><td>enable native print dialog in Mac OS X by default + option to disable it</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43341 r43341] </td><td>lazcontrols</td><td>fixed crash on freeing TFileNameItem</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43348 r43348] </td><td>LazUtf8</td><td>implement Utf8 versions of LeftStr and RightStr.</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=42845 r42845] </td><td>LCL</td><td>minor corrections of comments in clipbrd.pp (thanks to Mike Thompson), bug [http://bugs.freepascal.org/view.php?id=25033 25033]</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=42854 r42854] </td><td>LCL</td><td>added TPairSplitter.Constraints</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=42877 r42877] </td><td>LCL</td><td>TTreeView: check OverlayIndex upper bound</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=42912 r42912] </td><td>lcl</td><td>dbgrids: fixed memleak of KeyBookmark, patch from Luca Olivetti, bug [http://bugs.freepascal.org/view.php?id=24412 24412]</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=42923 r42923] </td><td>LCL</td><td>Gtk2, fix grid editing problem on ALT+TAB forward and back, issue [http://bugs.freepascal.org/view.php?id=22475 22475]</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=42924 r42924] </td><td>LCL</td><td>Gtk2, force redraw of GTKWinApiWidgets on focus changes so they can reflect focused/unfocused state (for grids in this case)</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=42936 r42936] </td><td>LCL</td><td>grids, handle the first key in keypress, fixes issue [http://bugs.freepascal.org/view.php?id=24893 24893]</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=42943 r42943] </td><td>LCL</td><td>fix grids focus where OnEnter occurs twice, issue [http://bugs.freepascal.org/view.php?id=25010 25010]</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=42948 r42948] </td><td>LCL</td><td>gtk2, check if widget is still valid (avoid a CRITICAL warning)</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=42954 r42954] </td><td>LCL</td><td>grids, modify editor bounds in case it's affected by modifying default Col width or Row height</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=42958 r42958] </td><td>LCL</td><td>fix ValueListEdit not showing key column at runtime, issue [http://bugs.freepascal.org/view.php?id=24780 24780]</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=42985 r42985],&#x200B;[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=42986 r42986],&#x200B;[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=42991 r42991]</td><td>LCL</td><td>grids, fixed selection by mouse if editor is visible and focused </td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=42992 r42992] </td><td>LCL</td><td>grids, allow the RETURN key to go to OnKeyPress</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=42993 r42993] </td><td>LCL</td><td>grids, implemented InsertRowWithValues from Everton Vieira, issue [http://bugs.freepascal.org/view.php?id=21176 21176]</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43052 r43052] </td><td>LCL</td><td>grids, reformat some code that SHIFT+CTRL+C keeps reminding is different</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43054 r43054] </td><td>lcl</td><td>grid: initialize var</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43061 r43061] </td><td>LCL, carbon</td><td>fix filterindex and add trigger some missing dialog events, fix issue [http://bugs.freepascal.org/view.php?id=25086 25086]</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43115 r43115] </td><td>LCL</td><td>implemented TListView.OwnerDraw + OnDrawItem. part of issue [http://bugs.freepascal.org/view.php?id=25149 25149]</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43222 r43222] </td><td>LCL</td><td>wslclclasses, increased VIRTUAL_VMT_COUNT const from 100 to 128, to be able to add more methods to ws classes.</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43244 r43244] </td><td>LCL</td><td>TCustomListView: implemented SelectAll & ClearSelection for delphi compatibility. issue [http://bugs.freepascal.org/view.php?id=19812 19812]</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43245 r43245] </td><td>LCL</td><td>TCustomListView: added TCustomListView.AddItem for delphi compatibility. issue [http://bugs.freepascal.org/view.php?id=25092 25092]</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43251 r43251] </td><td>LCL</td><td>Japanese translation by Yuichiro Takahashi, bug [http://bugs.freepascal.org/view.php?id=25123 25123]</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43269 r43269] </td><td>LCL, carbon</td><td>fix CombineRgn when op=diff and dst=src2, dst(src2) ended with a copy of src1 and result is src1 op src1</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43270 r43270] </td><td>LCL, carbon</td><td>implements CreateEllipticRgn</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=44051 r44051] </td><td>LCL</td><td>grids, do not trigger CellButton click if MouseDown is OutBounds, mdified patch from malcome, issue [http://bugs.freepascal.org/view.php?id=25127 25127]</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43350 r43350] </td><td>MaskEdit</td><td>avoid calling OnChange when setting initial values for Mask and Text. Issue [http://bugs.freepascal.org/view.php?id=0019029 0019029].</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=42950 r42950],&#x200B;[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=42951 r42951],&#x200B;[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=42952 r42952],&#x200B;[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=42953 r42953]</td><td>Object Inspector</td><td>show collections referenced multiple times only once, show TFieldDefs without owner</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=42832 r42832] </td><td>Propedits</td><td>remove a test version of TCoolBarControlPropertyEditor.CheckNewValue</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43024 r43024] </td><td>Printers</td><td>windows, do not open and setup printer if it's being destroyed, issue [http://bugs.freepascal.org/view.php?id=23026 23026]</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43140 r43140] </td><td>Printers, carbon</td><td>fix context origin (the origin should be the imageable area not the paper rect)</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43141 r43141] </td><td>Printers, Carbon</td><td>support for printing at higher resolution, issue [http://bugs.freepascal.org/view.php?id=23339 23339]</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43164 r43164] </td><td>Printers</td><td>cups, fix PrintDialog does not set Copies and Colate properties, from Petr-K, issue [http://bugs.freepascal.org/view.php?id=24959 24959]</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=42905 r42905] </td><td>Qt</td><td>TQtComboBox fix for call IntfGetItems when we are non-editable combobox.</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=42906 r42906] </td><td>Qt</td><td>call OnDropDown imediatelly after IntfGetItems, so our events are in expected order and there's no disturbing of QListWidget while showing.issue [http://bugs.freepascal.org/view.php?id=25032 25032]</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=42940 r42940] </td><td>Qt</td><td>fixed TQtCheckListBox double click event duplication.issue [http://bugs.freepascal.org/view.php?id=25089 25089]</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=42941 r42941] </td><td>Qt</td><td>change current row of TQtCheckListBox for Qt >= 4.8 since it does not change ItemIndex when checkbox is clicked.</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43041 r43041] </td><td>Qt</td><td>updated Qt bindings to version 2.5</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43043 r43043] </td><td>Qt</td><td>fixed application closing when session manager is used. issue [http://bugs.freepascal.org/view.php?id=18910 18910]</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43053 r43053] </td><td>Qt</td><td>fixed compilation with fpc 2.7.1. issue [http://bugs.freepascal.org/view.php?id=25125 25125]</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43062 r43062] </td><td>Qt</td><td>fix conditional switches. issue [http://bugs.freepascal.org/view.php?id=25139 25139]</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43116 r43116] </td><td>Qt</td><td>implemented TListView.OwnerDraw + OnDrawItem. part of issue [http://bugs.freepascal.org/view.php?id=25149 25149]</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43135 r43135] </td><td>Qt</td><td>implemented TCustomListView OnCustomDraw, OnCustomDrawItem, OnCustomDrawSubItem. part of issue [http://bugs.freepascal.org/view.php?id=7059 7059]</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43146 r43146] </td><td>Qt</td><td>improved qt themes. Added tab drawing.</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43149 r43149] </td><td>Qt</td><td>improved qt themes text drawer.</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43150 r43150] </td><td>Qt</td><td>implemented teProgress in qt themes.</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43152 r43152] </td><td>Qt</td><td>partially implemented teListView in qt themes.</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43154 r43154] </td><td>Qt</td><td>implemented teSpin in qt themes.</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43158 r43158] </td><td>Qt</td><td>TQtListWidget, TQtTreeWidget.itemDelegatePaint() draw background of item by default.related to issue [http://bugs.freepascal.org/view.php?id=24941 24941]</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43166 r43166] </td><td>Qt</td><td>fixed TQtCheckListBox triggering OnItemClick when TCheckListBox.Style <> lbStandard.</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43167 r43167] </td><td>Qt</td><td>improved QtThemes.GetDetailSize by returning sizes of checkbox and radiobutton.</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43168 r43168] </td><td>Qt</td><td>improved teTreeView theme drawer, trigger IntfDoOnThemeChange when theme is changed.</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43169 r43169] </td><td>Qt</td><td>fixed TQtListWidget behaviour when it's owner drawn and checkable = true.</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43170 r43170] </td><td>Qt</td><td>fixed checked item state and custom painting cdsChecked when TQtTreeWidget is ownerdrawn (assigned OnCustomDrawXXX).</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43171 r43171] </td><td>Qt</td><td>TQtTreeWidget: added odChecked to drawstate when OnDrawItem is assigned and we are checkable listview.</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43172 r43172] </td><td>Qt</td><td>fixed wrong DrawState param for TQtListWidget when OnDrawItem is assigned (ownerdraw).</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43173 r43173] </td><td>Qt</td><td>fixed behaviour of checkable items when key space is pressed in TQtAbstractItemView.OwnerDraw mode.</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43175 r43175] </td><td>Qt</td><td>fixed drawer for themed TGroupBox.</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43180 r43180] </td><td>Qt</td><td>fixed regression in owner drawn combobox from rev.43135. issue [http://bugs.freepascal.org/view.php?id=25172 25172]</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43218 r43218] </td><td>Qt</td><td>implemented scrollbars on forms (scrollable forms).Currently it works only if QTSCROLLABLEFORMS define is enabled in qtdefines.inc. issue [http://bugs.freepascal.org/view.php?id=24715 24715]</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43234 r43234] </td><td>Qt</td><td>fixed crash when QTSCROLLABLEFORMS are enabled and reparenting form with mouse (eg undock).part of issue [http://bugs.freepascal.org/view.php?id=24715 24715]</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43236 r43236] </td><td>Qt</td><td>fixed problem with clientrect sizes when QTSCROLLABLEFORMS are enabled.part of issue [http://bugs.freepascal.org/view.php?id=24715 24715]</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43238 r43238] </td><td>Qt</td><td>fixed QPainter assertion when QTSCROLLABLEFORMS is enabled.Completely fixes issue [http://bugs.freepascal.org/view.php?id=24715 24715]</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43241 r43241] </td><td>Qt</td><td>invalidate clientrect cache when viewport of scrollable form is resized.QTSCROLLABLEFORMS part.</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43242 r43242] </td><td>Qt</td><td>do not loop with LCL when designing TPageControl, keep LCL sizes when InUpdate.</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43243 r43243] </td><td>Qt</td><td>do not invalidate client rect cache in scrollable form viewport if we are embedded form (eg. docked).</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43274 r43274] </td><td>Qt</td><td>fixed sizing of autosized forms by ignoring sizepolicy for centralwidget when QTSCROLLABLEFORMS is enabled.</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43308 r43308] </td><td>Qt</td><td>added note about spotted bug in Qt-4.8.5 lib when using raster graphicssystem.</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43315 r43315] </td><td>Qt</td><td>workaround for Qt raster engine bug when rectangle is drawn and pen is cosmetic. issue [http://bugs.freepascal.org/view.php?id=25227 25227]</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43333 r43333] </td><td>Qt</td><td>implemented SWP_SHOWWINDOW and SWP_HIDEWINDOW in TQtWidgetSet.SetWindowPos.</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=42838 r42838] </td><td>rpm</td><td>fixed handling versions with minus</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43160 r43160] </td><td>SourceEdit</td><td>Set ifdef (on tab change) after dec-paintlock)</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=42840 r42840] </td><td></td><td>Spelling </td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43188 r43188] </td><td>sqldb</td><td>TSQLDBLibraryLoader, TPQEventMonitor, TFBEventMonitor and TFBAdmin were backported to FPC 2.6.3</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43194 r43194] </td><td>sqldb</td><td>enabled TSQLDBLibraryLoader, TPQEventMonitor, TFBEventMonitor and TFBAdmin for FPC 2.6.3 too in order to allow to test them before FPC 2.6.4 is released (FPC 2.6.3 built in February is OK)</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43263 r43263] </td><td>sqldb</td><td>TSQLDBLibraryLoader, TPQEventMonitor, TFBEventMonitor and TFBAdmin are actually available in FPC 2.6.2, bug [http://bugs.freepascal.org/view.php?id=25200 25200]</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43307 r43307] </td><td>SrcEdit</td><td>workaround for Mac QueueAsync bug</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=42898 r42898] </td><td>SynEdit</td><td>IfDef Markup, fix issue with not displaying nested disabled blocks sometimes</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=42987 r42987] </td><td>SynEdit</td><td>Spelling</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43009 r43009] </td><td>SynEdit</td><td>Allow to set ssoMatchCase for TSynEditMarkupHighlightAllCaret. Issue [http://bugs.freepascal.org/view.php?id=0025108 0025108] Patch by Denis Golovan</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43064 r43064] </td><td>SynEdit</td><td>Ifdef highlight, more verbose assert.</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43159 r43159] </td><td>SynEdit</td><td>Avoid highlighter scanning twice, due to trailing space changes</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43165 r43165] </td><td>SynEdit</td><td>Fixed uninitialized value in block-selection</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43332 r43332] </td><td>SynEdit</td><td>IFDEF lowlight, fix wrong index, and fix using same nested comment setting as HL / Issue [http://bugs.freepascal.org/view.php?id=0025244 0025244]</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43342 r43342] </td><td>SynEdit</td><td>Pas HighLighter, recognize new &keyword for identifier style</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43077 r43077] </td><td>Translations</td><td>Brazilian Portuguese translation update by Marcelo B Paula, bug [http://bugs.freepascal.org/view.php?id=25134 25134]</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43163 r43163] </td><td>TRadiouGroup</td><td>do not reset FItemIndex in UpdateIyems whilst loading. Issue [http://bugs.freepascal.org/view.php?id=0025158 0025158].</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43223 r43223] </td><td>TRadioGroup</td><td>fix resetting ItemIndex to -1 when calling Items.Assign (regression introduced by me in r42772).</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43344 r43344] </td><td>TreeFilterEdit</td><td>Improve TTreeFilterBranch.RemoveChildrenData logic.</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43109 r43109] </td><td>ValEdit</td><td>Fix crash in InsertRow if Strings.Count = 0. Issue [http://bugs.freepascal.org/view.php?id=0025144 0025144]</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43110 r43110] </td><td>ValEdit</td><td>implement an adapted version of InsertRowWithValues</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43118 r43118] </td><td>ValEdit</td><td>refactor the logic behind wether or not to hide the editor when manipulating the Strings property.</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43119 r43119] </td><td>ValEdit</td><td>fix possible error in InsertRowWithValues due to uninitialized NameValueSeparator.</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43177 r43177] </td><td>ValEdit</td><td>fix crash on GetCells when empty rows are auto-added.</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43157 r43157] </td><td>Win32</td><td>implemented TListView.OwnerDraw and TListView.OnDrawItem. issue [http://bugs.freepascal.org/view.php?id=25149 25149]</td></tr><br />
</table><br />
<br />
==== binaries ====<br />
*r43042 Qt: updated Qt4Pas5.dll to version 2.5. IMPORTANT !<br />
<br />
== Roadmap to 1.2 ==<br />
<br />
The release process will consist of the following steps.<br />
<br />
* Creation of the SVN 1.2 fixes branch (Done 15 Sept 2013)<br />
<br />
* Publication of Lazarus 1.1.99 pre-release (Done 18 Sept 2013)<br />
<br />
This will be an early alpha of the upcoming 1.2. It will be available to anyone who wants to help testing. Testers should treat this release with similar caution as the daily snapshots.<br />
The testing period is scheduled to last 6 to 8 weeks.<br />
<br />
* Release of 1.2 RC 1 (Done 6 November 2013)<br />
<br />
This will be the first Release Candidate. We would like to urge all users to test this version.<br />
The testing period is scheduled to last 6 to 8 weeks.<br />
<br />
* Release of 1.2 RC 2 (Mid/End December 2013 / Early 2014)<br />
<br />
The testing period is scheduled to last 6 to 8 weeks.<br />
<br />
* Maybe 1.2 RC 3<br />
<br />
An RC 3 may be scheduled, if necessary.<br />
<br />
* Release of Lazarus 1.2 (between Feb and Apr 2014)<br />
<br />
<br />
=== Tests ===<br />
<br />
*Menu item exists<br />
*Clear pcp directory and start IDE, a new project application with a form should be visible<br />
*Double click on form - a FormCreate event should be created<br />
*Check View / IDE internals / What needs building - no package should need building, only the project<br />
*Restart the IDE - there should be no warning about upgrading<br />
*Install the package cody, after restart the component palette should show the component TCodyTreeView<br />
<br />
=== Tagging release ===<br />
* Set version to 1.2 in fixes_1_2 branch<br />
** open lazarus/lazarus.lpi in the IDE and change the version numbers in the project options dialog 1.2.0.1 for RC1, 1.2.0.2 for RC2, 1.2.0.3 for final<br />
** lazarus/ide/version.inc 1.2RC1 for RC1, no spaces!<br />
** lazarus/lcl/lclversion.pas 1.2.0.1 for RC1, 1.2.0.2 for RC2, 1.2.0.3 for final<br />
** lclbase.lpk<br />
** lcl.lpk<br />
** lazarus/debian/changelog 1.2.0-1 for RC1, 1.2.0-2 for RC2, 1.2.0-3 for final<br />
** lazarus/lazarus.app/Contents/Info.plist v1.2 RC1<br />
** tools/install/linux/environmentoptions.xml same as version.inc<br />
** tools/install/win/environmentoptions.xml same as version.inc<br />
** tools/install/macos/environmentoptions.xml same as version.inc<br />
** check if lpl files needs updating by running ./tools/lplupdate -c<br />
** run ./tools/updatemakefiles<br />
* Tag fixes_1_2 branch to tags/release_1_2_RC1<br />
svn copy svn+ssh://svn.freepascal.org/FPC/svn/lazarus/branches/fixes_1_2 svn+ssh://svn.freepascal.org/FPC/svn/lazarus/tags/lazarus_1_2_RC1 -m 'tagged 1.2RC1 as tags/lazarus_1_2_RC1'<br />
* Set version to 1.2 in trunk<br />
<br />
== How to merge ==<br />
<br />
See [[Lazarus_1.0_fixes_branch#How_to_merge]]<br />
<br />
[[Category:Lazarus]]<br />
[[Category:Branches]]</div>
Paul Ishenin
https://wiki.freepascal.org/index.php?title=Lazarus_1.2_fixes_branch&diff=74121
Lazarus 1.2 fixes branch
2013-11-20T23:45:24Z
<p>Paul Ishenin: /* Submitted by developer / committer */</p>
<hr />
<div>This page contains the revisions to be merged from trunk to the [http://svn.freepascal.org/svn/lazarus/branches/fixes_1_2/ Lazarus 1.2 fixes] branch.<br><br />
This are only fixes made after the branch was created. For other fixes made since the previous release (1.0) see SVN and [[Lazarus_1.0_fixes_branch]]<br><br><br />
<br />
Release notes can be found [[Lazarus 1.2.0 release notes|here]]<br />
<br />
== Fixes for 1.2 RC2 ==<br />
<br />
=== Merge requests ===<br />
<br />
==== Submitted by developer / committer ====<br />
<br />
*r43456 LCL: fix types for GDI objects (fixes crash on 64bit)<br />
*r43457 Cocoa: fix default GDI objects construction/destruction<br />
*r43461 Cocoa: fix TMemo creation<br />
*r43467 Cocoa: fix winapi Rectangle() implementation<br />
*r43462 IDE: fixed compilation fpc 2.7.1<br />
*r43464 Debugger: Update registers, if stackframe changes<br />
<br />
==== Submitted by others ====<br />
<br />
=== Merged revisions for 1.2 RC2 ===<br />
<br />
*r43361 TApplication: set THintWindow.BidiMode. {{MantisLink|0022048}}.<br />
*r43362 Debugger: Add timeout protection for breakpoints during start up. {{MantisLink|0025277}}<br />
*r43364 Debugger: prevent messing up the environment on windows, due to gdb bug (gdb not setting debuggee environment) / introduced in rev 42419<br />
*r43366 Debugger: better pid detection for attach. {{MantisLink|0025273}}<br />
*r43367 THintWindow: adjust for BidiMode in CalcHintRect. {{MantisLink|0025275}}.<br />
*r43368 TApplication: adjust position of THintWindow depending on LTR or RTL alignment.<br />
*r43371 Components: fixed Lazarus Package Manager compilation with FPC >= 2.6.3<br />
*r43373 THintWindow: adjust for BidiMode in CalcHintRect. Slight improvement on r43367.<br />
*r43375 SynEdit: Highlight-all, fix index for last element<br />
*r43381 Debugger: taborder for watch-properties<br />
*r43380 Debugger: fix internal type for gdb request (eval vs ptype)<br />
*r43429 Translations: Japanese translation update by Haruyuki Fujimaki<br />
*r43433 Translations: Polish translation update by Tomasz Wieckowski, {{MantisLink|25308}}<br />
*r43434 IDEIntf: regenerated some translations<br />
*r43384 carbon: fix selecting an item in a TListView on Carbon when OwnerDraw is true.patch by Joost van der Sluis. {{MantisLink|25274}}<br />
*r43385 Qt: fixed changing font color of themed text draw. {{MantisLink|25253}}<br />
*r43386 Qt: restore pen color if we change it during draw themed text. regression of r43385. {{MantisLink|25253}}<br />
*r43387 Qt: fixed another regression introduced with r43385 and r43386<br />
*r43396 Win, installer: delete correct conf folder, if updating 2ndary install and choose to clear conf<br />
*r43395 LazUtils: allow ReleaseRef on nil<br />
*r43397 Win, installer: convert Spanish to ansi<br />
*r43398 EditorMacroScript: Add some more try except dealing with self-test. Save reason of failure<br />
*r43378 codetools: fixed TCustomCodeTool.ReadBackTilBracketOpen when there is no bracket<br />
*r43424 SynEdit: Fixed painting highlight frame-borders. (do not paint extra left/right borders)<br />
*r43432 codetools: asking compiler for config files: expand relative file names<br />
*r43431 IDE: test file for compiler, expand temp directory<br />
*r43441 Qt: cleanup<br />
*r43442 Qt: changed defines for TQtFloatSpinEdit and CPU64<br />
*r43443 LCL: TControlCanvas: do not flood terminal about painting outside of paint event for widgetsets which actually supports painting outside of paint event.<br />
*r43451 PoChecker: add option to check translation statistics.<br />
*r43453 lazutils: added conversion KOI8U and KOI8RU<br />
*r43459 Components, PoChecker: regenerated translations; updated Russian translation<br />
<br />
== Fixes for 1.2 RC1 (Merged) ==<br />
<table class="sortable"><br />
<tr><th>Revision</th><th>Category</th><th>Description</th></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=42850 r42850],&#x200B;[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=42851 r42851] </td><td>carbon</td><td>fix linear gradient drawing</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=42843 r42843] </td><td>codetools</td><td>syntax error if parameter type is missing</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=42844 r42844] </td><td>codetools</td><td>fixed parsing var type deprecated bracket close</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=42846 r42846] </td><td>codetools</td><td>fix parsing of "specialize SomeGeneric<TypeParams>" as function/operator result (this fixes error with parsing of new objpas generics)</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=42859 r42859] </td><td>codetools</td><td>fixed removing first unit from second line</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=42868 r42868] </td><td>codetools</td><td>fixed checking if resolving edged bracket open is allowed, bug [http://bugs.freepascal.org/view.php?id=25045 25045]</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=42910 r42910] </td><td>Converter</td><td>Define PUREPASCAL for units during conversion when simulate Delphi defines is set.</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43076 r43076] </td><td>Components, Lazreport</td><td>updated Russian translation</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43195 r43195] </td><td>Converter</td><td>Fix a crash when a replaced function had brackets '()' without parameters.</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43201 r43201],&#x200B;[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43202 r43202],&#x200B;[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43203 r43203],&#x200B;[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43204 r43204],&#x200B;[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43205 r43205],&#x200B;[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43208 r43208],&#x200B;[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43209 r43209],&#x200B;[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43214 r43214],&#x200B;[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43215 r43215]</td><td>codetools</td><td>parsing new modifiers and keywords, needed for parsing FPC sources</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43337 r43337] </td><td>ComCtrls</td><td>change signature of TDrawTabEvent to avoid compilation error due to duplicatie identifier. Issue [http://bugs.freepascal.org/view.php?id=0025245 0025245].</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=42856 r42856] </td><td>Debugger</td><td>Disable logging of stackdump during unit lookup</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=42913 r42913],&#x200B;[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=42917 r42917] </td><td>Debugger</td><td>reset thread on start/init</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=42931 r42931] </td><td>Debugger</td><td>Options, disable add/remove buttons on signal opts. Not implemented</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=42932 r42932] </td><td>Debugger</td><td>Options, mark project as modified, when exceptions are enabled/disabled. Issue [http://bugs.freepascal.org/view.php?id=0025074 0025074]</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=42988 r42988] </td><td>Debugger</td><td>Spelling </td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=42989 r42989] </td><td>Debugger</td><td>fix disassembler, check if offset can be used</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=42990 r42990] </td><td>Debugger</td><td>fix race condition, stopping the debugger could lead to debugger error</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43038 r43038] </td><td>Debugger</td><td>force gdb to use lang=pascal. (set after attach / needed in some environment, such as cgi in webserver)</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43189 r43189] </td><td>Debugger</td><td>Fix handling of single quote in strings returned by gdb</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43197 r43197] </td><td>Debugger</td><td>Fix handling of backslash in strings returned by gdb (used for classname resolving)</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43240 r43240] </td><td>Debugger</td><td>Try filename in app bundle for newer gdb</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43255 r43255] </td><td>Debugger</td><td>parse version / mac file encoding depends on version</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43294 r43294] </td><td>Debugger</td><td>Fix getting min callstack depth in some cases.</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43302 r43302] </td><td>Debugger</td><td>improve cache / fix compare none case-sensitive </td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43303 r43303] </td><td>Debugger</td><td>fix disassembler testcase</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43304 r43304] </td><td>Debugger</td><td>fix adding watch via dialog. Open watch view window</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43306 r43306] </td><td>Debugger</td><td>Change ExceptionList to one list (no master/slave), fix debugger follows config which exceptions to ignore.</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43317 r43317],&#x200B;[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43318 r43318] </td><td>Debugger</td><td>Fix parsing class with nested record / array of record</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43329 r43329] </td><td>Debugger</td><td>Fix mem leak in disassembler </td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=42842 r42842] </td><td>dmg</td><td>versions with letters and minus</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43253 r43253] </td><td>Docs</td><td>added Yuichiro Takahashi and Haruyuki Fujimaki to contributors list </td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43122 r43122] </td><td>Gtk2</td><td>implemented TListView.OwnerDraw + OnDrawItem. part of issue [http://bugs.freepascal.org/view.php?id=25149 25149]</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43156 r43156] </td><td>Gtk2</td><td>implemented themed draw of combobox.issue [http://bugs.freepascal.org/view.php?id=25151 25151]</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43174 r43174] </td><td>Gtk2</td><td>Gtk2Themes: return correct size value for checkbox and radiobutton</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43176 r43176] </td><td>Gtk2</td><td>fixed combobox themed paint (separated combo button from combo root).issue [http://bugs.freepascal.org/view.php?id=25151 25151]</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43178 r43178] </td><td>Gtk2</td><td>pass TCheckListBox.OnDrawItem when Style <> lbStandard.issue [http://bugs.freepascal.org/view.php?id=14071 14071]</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=42835 r42835] </td><td>IDE</td><td>mode matrix: fixed showing targets</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=42865 r42865] </td><td>IDE</td><td>fixed complete block, bug [http://bugs.freepascal.org/view.php?id=24935 24935]</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=42866 r42866] </td><td>IDE</td><td>fixed complete block on char, fixed codebrowser check if something changed</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=42886 r42886] </td><td>IDEIntf</td><td>Change TComponentPropertyEditor back to original behavior so it lists all components from all forms.</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=42909 r42909] </td><td>IDE</td><td>add PowerPc processor types to selection list.</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=42916 r42916] </td><td>IDE</td><td>Improve the All Compiler Options GUI filter. It lost focus because it was disabled. Not any more.</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=42945 r42945] </td><td>IDE</td><td>designer: fixed adding components on inherited form, bug [http://bugs.freepascal.org/view.php?id=25084 25084]</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=42946 r42946] </td><td>IDE</td><td>when closing a modified package and user does not save mods, clear modified, bug [http://bugs.freepascal.org/view.php?id=22956 22956]</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43028 r43028] </td><td>IDE</td><td>Respect the Use Comments setting also when editing defines.</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43078 r43078] </td><td>IDE</td><td>regenerated Brazilian Portuguese translation</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43182 r43182] </td><td>IDE</td><td>Compare TargetOS without case sensitivity. The default value is lowercase.</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43219 r43219] </td><td>IDE</td><td>save package main source: ignore case, bug [http://bugs.freepascal.org/view.php?id=25173 25173]</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43351 r43351] </td><td>IDE</td><td>Fix the check for conflicting sequential (multi-stage) shortcuts. Issue [http://bugs.freepascal.org/view.php?id=25085 25085]</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43352 r43352] </td><td>IDE</td><td>Update popup menu item Enabled state correctly in Keymapping options. Sender is PopupMenu, not TreeView.</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=42825 r42825] </td><td>Installer, Win</td><td>allow "pre-release" in version name (inno setup)</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=42994 r42994],&#x200B;[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=42995 r42995],&#x200B;[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=42996 r42996]</td><td>LazReport</td><td>several template fixes including fix crash on loading template, issue [http://bugs.freepascal.org/view.php?id=14137 14137]</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43040 r43040] </td><td>LazReport</td><td>fix hyphenation helper mem leak</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43046 r43046] </td><td>LazReport</td><td>improve error message on missing classes, was about FRF format while in reality is about LRF format</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43047 r43047] </td><td>LazReport</td><td>fix error in dialogs when object is deleted and then a new one inserted, issue [http://bugs.freepascal.org/view.php?id=25097 25097]</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43063 r43063] </td><td>LazReport</td><td>restored accidentally removed translations</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43162 r43162] </td><td>LazReport</td><td>several fixes by Alexey Lagunov</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43271 r43271] </td><td>Lazreport</td><td>fix Report shape tool has black shadow, issue [http://bugs.freepascal.org/view.php?id=14127 14127]</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43272 r43272] </td><td>LazReport</td><td>some times objects that are hidden by others in upper layer show up because clipping region of moving object enable them, make sure they are visible or not</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43273 r43273] </td><td>LazReport</td><td>enable native print dialog in Mac OS X by default + option to disable it</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43341 r43341] </td><td>lazcontrols</td><td>fixed crash on freeing TFileNameItem</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43348 r43348] </td><td>LazUtf8</td><td>implement Utf8 versions of LeftStr and RightStr.</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=42845 r42845] </td><td>LCL</td><td>minor corrections of comments in clipbrd.pp (thanks to Mike Thompson), bug [http://bugs.freepascal.org/view.php?id=25033 25033]</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=42854 r42854] </td><td>LCL</td><td>added TPairSplitter.Constraints</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=42877 r42877] </td><td>LCL</td><td>TTreeView: check OverlayIndex upper bound</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=42912 r42912] </td><td>lcl</td><td>dbgrids: fixed memleak of KeyBookmark, patch from Luca Olivetti, bug [http://bugs.freepascal.org/view.php?id=24412 24412]</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=42923 r42923] </td><td>LCL</td><td>Gtk2, fix grid editing problem on ALT+TAB forward and back, issue [http://bugs.freepascal.org/view.php?id=22475 22475]</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=42924 r42924] </td><td>LCL</td><td>Gtk2, force redraw of GTKWinApiWidgets on focus changes so they can reflect focused/unfocused state (for grids in this case)</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=42936 r42936] </td><td>LCL</td><td>grids, handle the first key in keypress, fixes issue [http://bugs.freepascal.org/view.php?id=24893 24893]</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=42943 r42943] </td><td>LCL</td><td>fix grids focus where OnEnter occurs twice, issue [http://bugs.freepascal.org/view.php?id=25010 25010]</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=42948 r42948] </td><td>LCL</td><td>gtk2, check if widget is still valid (avoid a CRITICAL warning)</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=42954 r42954] </td><td>LCL</td><td>grids, modify editor bounds in case it's affected by modifying default Col width or Row height</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=42958 r42958] </td><td>LCL</td><td>fix ValueListEdit not showing key column at runtime, issue [http://bugs.freepascal.org/view.php?id=24780 24780]</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=42985 r42985],&#x200B;[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=42986 r42986],&#x200B;[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=42991 r42991]</td><td>LCL</td><td>grids, fixed selection by mouse if editor is visible and focused </td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=42992 r42992] </td><td>LCL</td><td>grids, allow the RETURN key to go to OnKeyPress</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=42993 r42993] </td><td>LCL</td><td>grids, implemented InsertRowWithValues from Everton Vieira, issue [http://bugs.freepascal.org/view.php?id=21176 21176]</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43052 r43052] </td><td>LCL</td><td>grids, reformat some code that SHIFT+CTRL+C keeps reminding is different</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43054 r43054] </td><td>lcl</td><td>grid: initialize var</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43061 r43061] </td><td>LCL, carbon</td><td>fix filterindex and add trigger some missing dialog events, fix issue [http://bugs.freepascal.org/view.php?id=25086 25086]</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43115 r43115] </td><td>LCL</td><td>implemented TListView.OwnerDraw + OnDrawItem. part of issue [http://bugs.freepascal.org/view.php?id=25149 25149]</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43222 r43222] </td><td>LCL</td><td>wslclclasses, increased VIRTUAL_VMT_COUNT const from 100 to 128, to be able to add more methods to ws classes.</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43244 r43244] </td><td>LCL</td><td>TCustomListView: implemented SelectAll & ClearSelection for delphi compatibility. issue [http://bugs.freepascal.org/view.php?id=19812 19812]</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43245 r43245] </td><td>LCL</td><td>TCustomListView: added TCustomListView.AddItem for delphi compatibility. issue [http://bugs.freepascal.org/view.php?id=25092 25092]</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43251 r43251] </td><td>LCL</td><td>Japanese translation by Yuichiro Takahashi, bug [http://bugs.freepascal.org/view.php?id=25123 25123]</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43269 r43269] </td><td>LCL, carbon</td><td>fix CombineRgn when op=diff and dst=src2, dst(src2) ended with a copy of src1 and result is src1 op src1</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43270 r43270] </td><td>LCL, carbon</td><td>implements CreateEllipticRgn</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=44051 r44051] </td><td>LCL</td><td>grids, do not trigger CellButton click if MouseDown is OutBounds, mdified patch from malcome, issue [http://bugs.freepascal.org/view.php?id=25127 25127]</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43350 r43350] </td><td>MaskEdit</td><td>avoid calling OnChange when setting initial values for Mask and Text. Issue [http://bugs.freepascal.org/view.php?id=0019029 0019029].</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=42950 r42950],&#x200B;[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=42951 r42951],&#x200B;[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=42952 r42952],&#x200B;[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=42953 r42953]</td><td>Object Inspector</td><td>show collections referenced multiple times only once, show TFieldDefs without owner</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=42832 r42832] </td><td>Propedits</td><td>remove a test version of TCoolBarControlPropertyEditor.CheckNewValue</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43024 r43024] </td><td>Printers</td><td>windows, do not open and setup printer if it's being destroyed, issue [http://bugs.freepascal.org/view.php?id=23026 23026]</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43140 r43140] </td><td>Printers, carbon</td><td>fix context origin (the origin should be the imageable area not the paper rect)</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43141 r43141] </td><td>Printers, Carbon</td><td>support for printing at higher resolution, issue [http://bugs.freepascal.org/view.php?id=23339 23339]</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43164 r43164] </td><td>Printers</td><td>cups, fix PrintDialog does not set Copies and Colate properties, from Petr-K, issue [http://bugs.freepascal.org/view.php?id=24959 24959]</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=42905 r42905] </td><td>Qt</td><td>TQtComboBox fix for call IntfGetItems when we are non-editable combobox.</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=42906 r42906] </td><td>Qt</td><td>call OnDropDown imediatelly after IntfGetItems, so our events are in expected order and there's no disturbing of QListWidget while showing.issue [http://bugs.freepascal.org/view.php?id=25032 25032]</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=42940 r42940] </td><td>Qt</td><td>fixed TQtCheckListBox double click event duplication.issue [http://bugs.freepascal.org/view.php?id=25089 25089]</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=42941 r42941] </td><td>Qt</td><td>change current row of TQtCheckListBox for Qt >= 4.8 since it does not change ItemIndex when checkbox is clicked.</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43041 r43041] </td><td>Qt</td><td>updated Qt bindings to version 2.5</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43043 r43043] </td><td>Qt</td><td>fixed application closing when session manager is used. issue [http://bugs.freepascal.org/view.php?id=18910 18910]</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43053 r43053] </td><td>Qt</td><td>fixed compilation with fpc 2.7.1. issue [http://bugs.freepascal.org/view.php?id=25125 25125]</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43062 r43062] </td><td>Qt</td><td>fix conditional switches. issue [http://bugs.freepascal.org/view.php?id=25139 25139]</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43116 r43116] </td><td>Qt</td><td>implemented TListView.OwnerDraw + OnDrawItem. part of issue [http://bugs.freepascal.org/view.php?id=25149 25149]</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43135 r43135] </td><td>Qt</td><td>implemented TCustomListView OnCustomDraw, OnCustomDrawItem, OnCustomDrawSubItem. part of issue [http://bugs.freepascal.org/view.php?id=7059 7059]</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43146 r43146] </td><td>Qt</td><td>improved qt themes. Added tab drawing.</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43149 r43149] </td><td>Qt</td><td>improved qt themes text drawer.</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43150 r43150] </td><td>Qt</td><td>implemented teProgress in qt themes.</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43152 r43152] </td><td>Qt</td><td>partially implemented teListView in qt themes.</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43154 r43154] </td><td>Qt</td><td>implemented teSpin in qt themes.</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43158 r43158] </td><td>Qt</td><td>TQtListWidget, TQtTreeWidget.itemDelegatePaint() draw background of item by default.related to issue [http://bugs.freepascal.org/view.php?id=24941 24941]</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43166 r43166] </td><td>Qt</td><td>fixed TQtCheckListBox triggering OnItemClick when TCheckListBox.Style <> lbStandard.</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43167 r43167] </td><td>Qt</td><td>improved QtThemes.GetDetailSize by returning sizes of checkbox and radiobutton.</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43168 r43168] </td><td>Qt</td><td>improved teTreeView theme drawer, trigger IntfDoOnThemeChange when theme is changed.</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43169 r43169] </td><td>Qt</td><td>fixed TQtListWidget behaviour when it's owner drawn and checkable = true.</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43170 r43170] </td><td>Qt</td><td>fixed checked item state and custom painting cdsChecked when TQtTreeWidget is ownerdrawn (assigned OnCustomDrawXXX).</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43171 r43171] </td><td>Qt</td><td>TQtTreeWidget: added odChecked to drawstate when OnDrawItem is assigned and we are checkable listview.</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43172 r43172] </td><td>Qt</td><td>fixed wrong DrawState param for TQtListWidget when OnDrawItem is assigned (ownerdraw).</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43173 r43173] </td><td>Qt</td><td>fixed behaviour of checkable items when key space is pressed in TQtAbstractItemView.OwnerDraw mode.</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43175 r43175] </td><td>Qt</td><td>fixed drawer for themed TGroupBox.</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43180 r43180] </td><td>Qt</td><td>fixed regression in owner drawn combobox from rev.43135. issue [http://bugs.freepascal.org/view.php?id=25172 25172]</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43218 r43218] </td><td>Qt</td><td>implemented scrollbars on forms (scrollable forms).Currently it works only if QTSCROLLABLEFORMS define is enabled in qtdefines.inc. issue [http://bugs.freepascal.org/view.php?id=24715 24715]</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43234 r43234] </td><td>Qt</td><td>fixed crash when QTSCROLLABLEFORMS are enabled and reparenting form with mouse (eg undock).part of issue [http://bugs.freepascal.org/view.php?id=24715 24715]</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43236 r43236] </td><td>Qt</td><td>fixed problem with clientrect sizes when QTSCROLLABLEFORMS are enabled.part of issue [http://bugs.freepascal.org/view.php?id=24715 24715]</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43238 r43238] </td><td>Qt</td><td>fixed QPainter assertion when QTSCROLLABLEFORMS is enabled.Completely fixes issue [http://bugs.freepascal.org/view.php?id=24715 24715]</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43241 r43241] </td><td>Qt</td><td>invalidate clientrect cache when viewport of scrollable form is resized.QTSCROLLABLEFORMS part.</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43242 r43242] </td><td>Qt</td><td>do not loop with LCL when designing TPageControl, keep LCL sizes when InUpdate.</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43243 r43243] </td><td>Qt</td><td>do not invalidate client rect cache in scrollable form viewport if we are embedded form (eg. docked).</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43274 r43274] </td><td>Qt</td><td>fixed sizing of autosized forms by ignoring sizepolicy for centralwidget when QTSCROLLABLEFORMS is enabled.</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43308 r43308] </td><td>Qt</td><td>added note about spotted bug in Qt-4.8.5 lib when using raster graphicssystem.</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43315 r43315] </td><td>Qt</td><td>workaround for Qt raster engine bug when rectangle is drawn and pen is cosmetic. issue [http://bugs.freepascal.org/view.php?id=25227 25227]</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43333 r43333] </td><td>Qt</td><td>implemented SWP_SHOWWINDOW and SWP_HIDEWINDOW in TQtWidgetSet.SetWindowPos.</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=42838 r42838] </td><td>rpm</td><td>fixed handling versions with minus</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43160 r43160] </td><td>SourceEdit</td><td>Set ifdef (on tab change) after dec-paintlock)</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=42840 r42840] </td><td></td><td>Spelling </td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43188 r43188] </td><td>sqldb</td><td>TSQLDBLibraryLoader, TPQEventMonitor, TFBEventMonitor and TFBAdmin were backported to FPC 2.6.3</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43194 r43194] </td><td>sqldb</td><td>enabled TSQLDBLibraryLoader, TPQEventMonitor, TFBEventMonitor and TFBAdmin for FPC 2.6.3 too in order to allow to test them before FPC 2.6.4 is released (FPC 2.6.3 built in February is OK)</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43263 r43263] </td><td>sqldb</td><td>TSQLDBLibraryLoader, TPQEventMonitor, TFBEventMonitor and TFBAdmin are actually available in FPC 2.6.2, bug [http://bugs.freepascal.org/view.php?id=25200 25200]</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43307 r43307] </td><td>SrcEdit</td><td>workaround for Mac QueueAsync bug</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=42898 r42898] </td><td>SynEdit</td><td>IfDef Markup, fix issue with not displaying nested disabled blocks sometimes</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=42987 r42987] </td><td>SynEdit</td><td>Spelling</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43009 r43009] </td><td>SynEdit</td><td>Allow to set ssoMatchCase for TSynEditMarkupHighlightAllCaret. Issue [http://bugs.freepascal.org/view.php?id=0025108 0025108] Patch by Denis Golovan</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43064 r43064] </td><td>SynEdit</td><td>Ifdef highlight, more verbose assert.</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43159 r43159] </td><td>SynEdit</td><td>Avoid highlighter scanning twice, due to trailing space changes</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43165 r43165] </td><td>SynEdit</td><td>Fixed uninitialized value in block-selection</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43332 r43332] </td><td>SynEdit</td><td>IFDEF lowlight, fix wrong index, and fix using same nested comment setting as HL / Issue [http://bugs.freepascal.org/view.php?id=0025244 0025244]</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43342 r43342] </td><td>SynEdit</td><td>Pas HighLighter, recognize new &keyword for identifier style</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43077 r43077] </td><td>Translations</td><td>Brazilian Portuguese translation update by Marcelo B Paula, bug [http://bugs.freepascal.org/view.php?id=25134 25134]</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43163 r43163] </td><td>TRadiouGroup</td><td>do not reset FItemIndex in UpdateIyems whilst loading. Issue [http://bugs.freepascal.org/view.php?id=0025158 0025158].</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43223 r43223] </td><td>TRadioGroup</td><td>fix resetting ItemIndex to -1 when calling Items.Assign (regression introduced by me in r42772).</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43344 r43344] </td><td>TreeFilterEdit</td><td>Improve TTreeFilterBranch.RemoveChildrenData logic.</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43109 r43109] </td><td>ValEdit</td><td>Fix crash in InsertRow if Strings.Count = 0. Issue [http://bugs.freepascal.org/view.php?id=0025144 0025144]</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43110 r43110] </td><td>ValEdit</td><td>implement an adapted version of InsertRowWithValues</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43118 r43118] </td><td>ValEdit</td><td>refactor the logic behind wether or not to hide the editor when manipulating the Strings property.</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43119 r43119] </td><td>ValEdit</td><td>fix possible error in InsertRowWithValues due to uninitialized NameValueSeparator.</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43177 r43177] </td><td>ValEdit</td><td>fix crash on GetCells when empty rows are auto-added.</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43157 r43157] </td><td>Win32</td><td>implemented TListView.OwnerDraw and TListView.OnDrawItem. issue [http://bugs.freepascal.org/view.php?id=25149 25149]</td></tr><br />
</table><br />
<br />
==== binaries ====<br />
*r43042 Qt: updated Qt4Pas5.dll to version 2.5. IMPORTANT !<br />
<br />
== Roadmap to 1.2 ==<br />
<br />
The release process will consist of the following steps.<br />
<br />
* Creation of the SVN 1.2 fixes branch (Done 15 Sept 2013)<br />
<br />
* Publication of Lazarus 1.1.99 pre-release (Done 18 Sept 2013)<br />
<br />
This will be an early alpha of the upcoming 1.2. It will be available to anyone who wants to help testing. Testers should treat this release with similar caution as the daily snapshots.<br />
The testing period is scheduled to last 6 to 8 weeks.<br />
<br />
* Release of 1.2 RC 1 (Done 6 November 2013)<br />
<br />
This will be the first Release Candidate. We would like to urge all users to test this version.<br />
The testing period is scheduled to last 6 to 8 weeks.<br />
<br />
* Release of 1.2 RC 2 (Mid/End December 2013 / Early 2014)<br />
<br />
The testing period is scheduled to last 6 to 8 weeks.<br />
<br />
* Maybe 1.2 RC 3<br />
<br />
An RC 3 may be scheduled, if necessary.<br />
<br />
* Release of Lazarus 1.2 (between Feb and Apr 2014)<br />
<br />
<br />
=== Tests ===<br />
<br />
*Menu item exists<br />
*Clear pcp directory and start IDE, a new project application with a form should be visible<br />
*Double click on form - a FormCreate event should be created<br />
*Check View / IDE internals / What needs building - no package should need building, only the project<br />
*Restart the IDE - there should be no warning about upgrading<br />
*Install the package cody, after restart the component palette should show the component TCodyTreeView<br />
<br />
=== Tagging release ===<br />
* Set version to 1.2 in fixes_1_2 branch<br />
** open lazarus/lazarus.lpi in the IDE and change the version numbers in the project options dialog 1.2.0.1 for RC1, 1.2.0.2 for RC2, 1.2.0.3 for final<br />
** lazarus/ide/version.inc 1.2RC1 for RC1, no spaces!<br />
** lazarus/lcl/lclversion.pas 1.2.0.1 for RC1, 1.2.0.2 for RC2, 1.2.0.3 for final<br />
** lclbase.lpk<br />
** lcl.lpk<br />
** lazarus/debian/changelog 1.2.0-1 for RC1, 1.2.0-2 for RC2, 1.2.0-3 for final<br />
** lazarus/lazarus.app/Contents/Info.plist v1.2 RC1<br />
** tools/install/linux/environmentoptions.xml same as version.inc<br />
** tools/install/win/environmentoptions.xml same as version.inc<br />
** tools/install/macos/environmentoptions.xml same as version.inc<br />
** check if lpl files needs updating by running ./tools/lplupdate -c<br />
** run ./tools/updatemakefiles<br />
* Tag fixes_1_2 branch to tags/release_1_2_RC1<br />
svn copy svn+ssh://svn.freepascal.org/FPC/svn/lazarus/branches/fixes_1_2 svn+ssh://svn.freepascal.org/FPC/svn/lazarus/tags/lazarus_1_2_RC1 -m 'tagged 1.2RC1 as tags/lazarus_1_2_RC1'<br />
* Set version to 1.2 in trunk<br />
<br />
== How to merge ==<br />
<br />
See [[Lazarus_1.0_fixes_branch#How_to_merge]]<br />
<br />
[[Category:Lazarus]]<br />
[[Category:Branches]]</div>
Paul Ishenin
https://wiki.freepascal.org/index.php?title=Lazarus_1.2_fixes_branch&diff=74076
Lazarus 1.2 fixes branch
2013-11-19T00:44:06Z
<p>Paul Ishenin: /* Submitted by developer / committer */</p>
<hr />
<div>This page contains the revisions to be merged from trunk to the [http://svn.freepascal.org/svn/lazarus/branches/fixes_1_2/ Lazarus 1.2 fixes] branch.<br><br />
This are only fixes made after the branch was created. For other fixes made since the previous release (1.0) see SVN and [[Lazarus_1.0_fixes_branch]]<br><br><br />
<br />
Release notes can be found [[Lazarus 1.2.0 release notes|here]]<br />
<br />
== Fixes for 1.2 RC2 ==<br />
<br />
=== Merge requests ===<br />
<br />
==== Submitted by developer / committer ====<br />
<br />
*r43432 codetools: asking compiler for config files: expand relative file names<br />
*r43431 IDE: test file for compiler, expand temp directory<br />
*r43441 Qt: cleanup<br />
*r43442 Qt: changed defines for TQtFloatSpinEdit and CPU64<br />
*r43443 LCL: TControlCanvas: do not flood terminal about painting outside of paint event for widgetsets which actually supports painting outside of paint event.<br />
*r43451 PoChecker: add option to check translation statistics.<br />
*r43453 lazutils: added conversion KOI8U and KOI8RU<br />
*r43456 LCL: fix types for GDI objects (fixes crash on 64bit)<br />
*r43457 Cocoa: fix default GDI objects construction/destruction<br />
*r43461 Cocoa: fix TMemo creation<br />
<br />
==== Submitted by others ====<br />
<br />
=== Merged revisions for 1.2 RC2 ===<br />
<br />
*r43361 TApplication: set THintWindow.BidiMode. {{MantisLink|0022048}}.<br />
*r43362 Debugger: Add timeout protection for breakpoints during start up. {{MantisLink|0025277}}<br />
*r43364 Debugger: prevent messing up the environment on windows, due to gdb bug (gdb not setting debuggee environment) / introduced in rev 42419<br />
*r43366 Debugger: better pid detection for attach. {{MantisLink|0025273}}<br />
*r43367 THintWindow: adjust for BidiMode in CalcHintRect. {{MantisLink|0025275}}.<br />
*r43368 TApplication: adjust position of THintWindow depending on LTR or RTL alignment.<br />
*r43371 Components: fixed Lazarus Package Manager compilation with FPC >= 2.6.3<br />
*r43373 THintWindow: adjust for BidiMode in CalcHintRect. Slight improvement on r43367.<br />
*r43375 SynEdit: Highlight-all, fix index for last element<br />
*r43381 Debugger: taborder for watch-properties<br />
*r43380 Debugger: fix internal type for gdb request (eval vs ptype)<br />
*r43429 Translations: Japanese translation update by Haruyuki Fujimaki<br />
*r43433 Translations: Polish translation update by Tomasz Wieckowski, {{MantisLink|25308}}<br />
*r43434 IDEIntf: regenerated some translations<br />
*r43384 carbon: fix selecting an item in a TListView on Carbon when OwnerDraw is true.patch by Joost van der Sluis. {{MantisLink|25274}}<br />
*r43385 Qt: fixed changing font color of themed text draw. {{MantisLink|25253}}<br />
*r43386 Qt: restore pen color if we change it during draw themed text. regression of r43385. {{MantisLink|25253}}<br />
*r43387 Qt: fixed another regression introduced with r43385 and r43386<br />
*r43396 Win, installer: delete correct conf folder, if updating 2ndary install and choose to clear conf<br />
*r43395 LazUtils: allow ReleaseRef on nil<br />
*r43397 Win, installer: convert Spanish to ansi<br />
*r43398 EditorMacroScript: Add some more try except dealing with self-test. Save reason of failure<br />
*r43378 codetools: fixed TCustomCodeTool.ReadBackTilBracketOpen when there is no bracket<br />
*r43424 SynEdit: Fixed painting highlight frame-borders. (do not paint extra left/right borders)<br />
<br />
== Fixes for 1.2 RC1 (Merged) ==<br />
<table class="sortable"><br />
<tr><th>Revision</th><th>Category</th><th>Description</th></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=42850 r42850],&#x200B;[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=42851 r42851] </td><td>carbon</td><td>fix linear gradient drawing</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=42843 r42843] </td><td>codetools</td><td>syntax error if parameter type is missing</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=42844 r42844] </td><td>codetools</td><td>fixed parsing var type deprecated bracket close</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=42846 r42846] </td><td>codetools</td><td>fix parsing of "specialize SomeGeneric<TypeParams>" as function/operator result (this fixes error with parsing of new objpas generics)</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=42859 r42859] </td><td>codetools</td><td>fixed removing first unit from second line</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=42868 r42868] </td><td>codetools</td><td>fixed checking if resolving edged bracket open is allowed, bug [http://bugs.freepascal.org/view.php?id=25045 25045]</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=42910 r42910] </td><td>Converter</td><td>Define PUREPASCAL for units during conversion when simulate Delphi defines is set.</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43076 r43076] </td><td>Components, Lazreport</td><td>updated Russian translation</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43195 r43195] </td><td>Converter</td><td>Fix a crash when a replaced function had brackets '()' without parameters.</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43201 r43201],&#x200B;[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43202 r43202],&#x200B;[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43203 r43203],&#x200B;[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43204 r43204],&#x200B;[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43205 r43205],&#x200B;[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43208 r43208],&#x200B;[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43209 r43209],&#x200B;[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43214 r43214],&#x200B;[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43215 r43215]</td><td>codetools</td><td>parsing new modifiers and keywords, needed for parsing FPC sources</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43337 r43337] </td><td>ComCtrls</td><td>change signature of TDrawTabEvent to avoid compilation error due to duplicatie identifier. Issue [http://bugs.freepascal.org/view.php?id=0025245 0025245].</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=42856 r42856] </td><td>Debugger</td><td>Disable logging of stackdump during unit lookup</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=42913 r42913],&#x200B;[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=42917 r42917] </td><td>Debugger</td><td>reset thread on start/init</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=42931 r42931] </td><td>Debugger</td><td>Options, disable add/remove buttons on signal opts. Not implemented</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=42932 r42932] </td><td>Debugger</td><td>Options, mark project as modified, when exceptions are enabled/disabled. Issue [http://bugs.freepascal.org/view.php?id=0025074 0025074]</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=42988 r42988] </td><td>Debugger</td><td>Spelling </td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=42989 r42989] </td><td>Debugger</td><td>fix disassembler, check if offset can be used</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=42990 r42990] </td><td>Debugger</td><td>fix race condition, stopping the debugger could lead to debugger error</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43038 r43038] </td><td>Debugger</td><td>force gdb to use lang=pascal. (set after attach / needed in some environment, such as cgi in webserver)</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43189 r43189] </td><td>Debugger</td><td>Fix handling of single quote in strings returned by gdb</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43197 r43197] </td><td>Debugger</td><td>Fix handling of backslash in strings returned by gdb (used for classname resolving)</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43240 r43240] </td><td>Debugger</td><td>Try filename in app bundle for newer gdb</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43255 r43255] </td><td>Debugger</td><td>parse version / mac file encoding depends on version</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43294 r43294] </td><td>Debugger</td><td>Fix getting min callstack depth in some cases.</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43302 r43302] </td><td>Debugger</td><td>improve cache / fix compare none case-sensitive </td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43303 r43303] </td><td>Debugger</td><td>fix disassembler testcase</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43304 r43304] </td><td>Debugger</td><td>fix adding watch via dialog. Open watch view window</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43306 r43306] </td><td>Debugger</td><td>Change ExceptionList to one list (no master/slave), fix debugger follows config which exceptions to ignore.</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43317 r43317],&#x200B;[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43318 r43318] </td><td>Debugger</td><td>Fix parsing class with nested record / array of record</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43329 r43329] </td><td>Debugger</td><td>Fix mem leak in disassembler </td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=42842 r42842] </td><td>dmg</td><td>versions with letters and minus</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43253 r43253] </td><td>Docs</td><td>added Yuichiro Takahashi and Haruyuki Fujimaki to contributors list </td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43122 r43122] </td><td>Gtk2</td><td>implemented TListView.OwnerDraw + OnDrawItem. part of issue [http://bugs.freepascal.org/view.php?id=25149 25149]</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43156 r43156] </td><td>Gtk2</td><td>implemented themed draw of combobox.issue [http://bugs.freepascal.org/view.php?id=25151 25151]</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43174 r43174] </td><td>Gtk2</td><td>Gtk2Themes: return correct size value for checkbox and radiobutton</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43176 r43176] </td><td>Gtk2</td><td>fixed combobox themed paint (separated combo button from combo root).issue [http://bugs.freepascal.org/view.php?id=25151 25151]</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43178 r43178] </td><td>Gtk2</td><td>pass TCheckListBox.OnDrawItem when Style <> lbStandard.issue [http://bugs.freepascal.org/view.php?id=14071 14071]</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=42835 r42835] </td><td>IDE</td><td>mode matrix: fixed showing targets</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=42865 r42865] </td><td>IDE</td><td>fixed complete block, bug [http://bugs.freepascal.org/view.php?id=24935 24935]</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=42866 r42866] </td><td>IDE</td><td>fixed complete block on char, fixed codebrowser check if something changed</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=42886 r42886] </td><td>IDEIntf</td><td>Change TComponentPropertyEditor back to original behavior so it lists all components from all forms.</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=42909 r42909] </td><td>IDE</td><td>add PowerPc processor types to selection list.</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=42916 r42916] </td><td>IDE</td><td>Improve the All Compiler Options GUI filter. It lost focus because it was disabled. Not any more.</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=42945 r42945] </td><td>IDE</td><td>designer: fixed adding components on inherited form, bug [http://bugs.freepascal.org/view.php?id=25084 25084]</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=42946 r42946] </td><td>IDE</td><td>when closing a modified package and user does not save mods, clear modified, bug [http://bugs.freepascal.org/view.php?id=22956 22956]</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43028 r43028] </td><td>IDE</td><td>Respect the Use Comments setting also when editing defines.</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43078 r43078] </td><td>IDE</td><td>regenerated Brazilian Portuguese translation</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43182 r43182] </td><td>IDE</td><td>Compare TargetOS without case sensitivity. The default value is lowercase.</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43219 r43219] </td><td>IDE</td><td>save package main source: ignore case, bug [http://bugs.freepascal.org/view.php?id=25173 25173]</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43351 r43351] </td><td>IDE</td><td>Fix the check for conflicting sequential (multi-stage) shortcuts. Issue [http://bugs.freepascal.org/view.php?id=25085 25085]</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43352 r43352] </td><td>IDE</td><td>Update popup menu item Enabled state correctly in Keymapping options. Sender is PopupMenu, not TreeView.</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=42825 r42825] </td><td>Installer, Win</td><td>allow "pre-release" in version name (inno setup)</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=42994 r42994],&#x200B;[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=42995 r42995],&#x200B;[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=42996 r42996]</td><td>LazReport</td><td>several template fixes including fix crash on loading template, issue [http://bugs.freepascal.org/view.php?id=14137 14137]</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43040 r43040] </td><td>LazReport</td><td>fix hyphenation helper mem leak</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43046 r43046] </td><td>LazReport</td><td>improve error message on missing classes, was about FRF format while in reality is about LRF format</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43047 r43047] </td><td>LazReport</td><td>fix error in dialogs when object is deleted and then a new one inserted, issue [http://bugs.freepascal.org/view.php?id=25097 25097]</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43063 r43063] </td><td>LazReport</td><td>restored accidentally removed translations</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43162 r43162] </td><td>LazReport</td><td>several fixes by Alexey Lagunov</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43271 r43271] </td><td>Lazreport</td><td>fix Report shape tool has black shadow, issue [http://bugs.freepascal.org/view.php?id=14127 14127]</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43272 r43272] </td><td>LazReport</td><td>some times objects that are hidden by others in upper layer show up because clipping region of moving object enable them, make sure they are visible or not</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43273 r43273] </td><td>LazReport</td><td>enable native print dialog in Mac OS X by default + option to disable it</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43341 r43341] </td><td>lazcontrols</td><td>fixed crash on freeing TFileNameItem</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43348 r43348] </td><td>LazUtf8</td><td>implement Utf8 versions of LeftStr and RightStr.</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=42845 r42845] </td><td>LCL</td><td>minor corrections of comments in clipbrd.pp (thanks to Mike Thompson), bug [http://bugs.freepascal.org/view.php?id=25033 25033]</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=42854 r42854] </td><td>LCL</td><td>added TPairSplitter.Constraints</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=42877 r42877] </td><td>LCL</td><td>TTreeView: check OverlayIndex upper bound</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=42912 r42912] </td><td>lcl</td><td>dbgrids: fixed memleak of KeyBookmark, patch from Luca Olivetti, bug [http://bugs.freepascal.org/view.php?id=24412 24412]</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=42923 r42923] </td><td>LCL</td><td>Gtk2, fix grid editing problem on ALT+TAB forward and back, issue [http://bugs.freepascal.org/view.php?id=22475 22475]</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=42924 r42924] </td><td>LCL</td><td>Gtk2, force redraw of GTKWinApiWidgets on focus changes so they can reflect focused/unfocused state (for grids in this case)</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=42936 r42936] </td><td>LCL</td><td>grids, handle the first key in keypress, fixes issue [http://bugs.freepascal.org/view.php?id=24893 24893]</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=42943 r42943] </td><td>LCL</td><td>fix grids focus where OnEnter occurs twice, issue [http://bugs.freepascal.org/view.php?id=25010 25010]</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=42948 r42948] </td><td>LCL</td><td>gtk2, check if widget is still valid (avoid a CRITICAL warning)</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=42954 r42954] </td><td>LCL</td><td>grids, modify editor bounds in case it's affected by modifying default Col width or Row height</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=42958 r42958] </td><td>LCL</td><td>fix ValueListEdit not showing key column at runtime, issue [http://bugs.freepascal.org/view.php?id=24780 24780]</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=42985 r42985],&#x200B;[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=42986 r42986],&#x200B;[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=42991 r42991]</td><td>LCL</td><td>grids, fixed selection by mouse if editor is visible and focused </td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=42992 r42992] </td><td>LCL</td><td>grids, allow the RETURN key to go to OnKeyPress</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=42993 r42993] </td><td>LCL</td><td>grids, implemented InsertRowWithValues from Everton Vieira, issue [http://bugs.freepascal.org/view.php?id=21176 21176]</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43052 r43052] </td><td>LCL</td><td>grids, reformat some code that SHIFT+CTRL+C keeps reminding is different</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43054 r43054] </td><td>lcl</td><td>grid: initialize var</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43061 r43061] </td><td>LCL, carbon</td><td>fix filterindex and add trigger some missing dialog events, fix issue [http://bugs.freepascal.org/view.php?id=25086 25086]</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43115 r43115] </td><td>LCL</td><td>implemented TListView.OwnerDraw + OnDrawItem. part of issue [http://bugs.freepascal.org/view.php?id=25149 25149]</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43222 r43222] </td><td>LCL</td><td>wslclclasses, increased VIRTUAL_VMT_COUNT const from 100 to 128, to be able to add more methods to ws classes.</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43244 r43244] </td><td>LCL</td><td>TCustomListView: implemented SelectAll & ClearSelection for delphi compatibility. issue [http://bugs.freepascal.org/view.php?id=19812 19812]</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43245 r43245] </td><td>LCL</td><td>TCustomListView: added TCustomListView.AddItem for delphi compatibility. issue [http://bugs.freepascal.org/view.php?id=25092 25092]</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43251 r43251] </td><td>LCL</td><td>Japanese translation by Yuichiro Takahashi, bug [http://bugs.freepascal.org/view.php?id=25123 25123]</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43269 r43269] </td><td>LCL, carbon</td><td>fix CombineRgn when op=diff and dst=src2, dst(src2) ended with a copy of src1 and result is src1 op src1</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43270 r43270] </td><td>LCL, carbon</td><td>implements CreateEllipticRgn</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=44051 r44051] </td><td>LCL</td><td>grids, do not trigger CellButton click if MouseDown is OutBounds, mdified patch from malcome, issue [http://bugs.freepascal.org/view.php?id=25127 25127]</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43350 r43350] </td><td>MaskEdit</td><td>avoid calling OnChange when setting initial values for Mask and Text. Issue [http://bugs.freepascal.org/view.php?id=0019029 0019029].</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=42950 r42950],&#x200B;[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=42951 r42951],&#x200B;[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=42952 r42952],&#x200B;[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=42953 r42953]</td><td>Object Inspector</td><td>show collections referenced multiple times only once, show TFieldDefs without owner</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=42832 r42832] </td><td>Propedits</td><td>remove a test version of TCoolBarControlPropertyEditor.CheckNewValue</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43024 r43024] </td><td>Printers</td><td>windows, do not open and setup printer if it's being destroyed, issue [http://bugs.freepascal.org/view.php?id=23026 23026]</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43140 r43140] </td><td>Printers, carbon</td><td>fix context origin (the origin should be the imageable area not the paper rect)</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43141 r43141] </td><td>Printers, Carbon</td><td>support for printing at higher resolution, issue [http://bugs.freepascal.org/view.php?id=23339 23339]</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43164 r43164] </td><td>Printers</td><td>cups, fix PrintDialog does not set Copies and Colate properties, from Petr-K, issue [http://bugs.freepascal.org/view.php?id=24959 24959]</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=42905 r42905] </td><td>Qt</td><td>TQtComboBox fix for call IntfGetItems when we are non-editable combobox.</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=42906 r42906] </td><td>Qt</td><td>call OnDropDown imediatelly after IntfGetItems, so our events are in expected order and there's no disturbing of QListWidget while showing.issue [http://bugs.freepascal.org/view.php?id=25032 25032]</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=42940 r42940] </td><td>Qt</td><td>fixed TQtCheckListBox double click event duplication.issue [http://bugs.freepascal.org/view.php?id=25089 25089]</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=42941 r42941] </td><td>Qt</td><td>change current row of TQtCheckListBox for Qt >= 4.8 since it does not change ItemIndex when checkbox is clicked.</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43041 r43041] </td><td>Qt</td><td>updated Qt bindings to version 2.5</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43043 r43043] </td><td>Qt</td><td>fixed application closing when session manager is used. issue [http://bugs.freepascal.org/view.php?id=18910 18910]</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43053 r43053] </td><td>Qt</td><td>fixed compilation with fpc 2.7.1. issue [http://bugs.freepascal.org/view.php?id=25125 25125]</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43062 r43062] </td><td>Qt</td><td>fix conditional switches. issue [http://bugs.freepascal.org/view.php?id=25139 25139]</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43116 r43116] </td><td>Qt</td><td>implemented TListView.OwnerDraw + OnDrawItem. part of issue [http://bugs.freepascal.org/view.php?id=25149 25149]</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43135 r43135] </td><td>Qt</td><td>implemented TCustomListView OnCustomDraw, OnCustomDrawItem, OnCustomDrawSubItem. part of issue [http://bugs.freepascal.org/view.php?id=7059 7059]</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43146 r43146] </td><td>Qt</td><td>improved qt themes. Added tab drawing.</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43149 r43149] </td><td>Qt</td><td>improved qt themes text drawer.</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43150 r43150] </td><td>Qt</td><td>implemented teProgress in qt themes.</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43152 r43152] </td><td>Qt</td><td>partially implemented teListView in qt themes.</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43154 r43154] </td><td>Qt</td><td>implemented teSpin in qt themes.</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43158 r43158] </td><td>Qt</td><td>TQtListWidget, TQtTreeWidget.itemDelegatePaint() draw background of item by default.related to issue [http://bugs.freepascal.org/view.php?id=24941 24941]</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43166 r43166] </td><td>Qt</td><td>fixed TQtCheckListBox triggering OnItemClick when TCheckListBox.Style <> lbStandard.</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43167 r43167] </td><td>Qt</td><td>improved QtThemes.GetDetailSize by returning sizes of checkbox and radiobutton.</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43168 r43168] </td><td>Qt</td><td>improved teTreeView theme drawer, trigger IntfDoOnThemeChange when theme is changed.</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43169 r43169] </td><td>Qt</td><td>fixed TQtListWidget behaviour when it's owner drawn and checkable = true.</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43170 r43170] </td><td>Qt</td><td>fixed checked item state and custom painting cdsChecked when TQtTreeWidget is ownerdrawn (assigned OnCustomDrawXXX).</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43171 r43171] </td><td>Qt</td><td>TQtTreeWidget: added odChecked to drawstate when OnDrawItem is assigned and we are checkable listview.</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43172 r43172] </td><td>Qt</td><td>fixed wrong DrawState param for TQtListWidget when OnDrawItem is assigned (ownerdraw).</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43173 r43173] </td><td>Qt</td><td>fixed behaviour of checkable items when key space is pressed in TQtAbstractItemView.OwnerDraw mode.</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43175 r43175] </td><td>Qt</td><td>fixed drawer for themed TGroupBox.</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43180 r43180] </td><td>Qt</td><td>fixed regression in owner drawn combobox from rev.43135. issue [http://bugs.freepascal.org/view.php?id=25172 25172]</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43218 r43218] </td><td>Qt</td><td>implemented scrollbars on forms (scrollable forms).Currently it works only if QTSCROLLABLEFORMS define is enabled in qtdefines.inc. issue [http://bugs.freepascal.org/view.php?id=24715 24715]</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43234 r43234] </td><td>Qt</td><td>fixed crash when QTSCROLLABLEFORMS are enabled and reparenting form with mouse (eg undock).part of issue [http://bugs.freepascal.org/view.php?id=24715 24715]</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43236 r43236] </td><td>Qt</td><td>fixed problem with clientrect sizes when QTSCROLLABLEFORMS are enabled.part of issue [http://bugs.freepascal.org/view.php?id=24715 24715]</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43238 r43238] </td><td>Qt</td><td>fixed QPainter assertion when QTSCROLLABLEFORMS is enabled.Completely fixes issue [http://bugs.freepascal.org/view.php?id=24715 24715]</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43241 r43241] </td><td>Qt</td><td>invalidate clientrect cache when viewport of scrollable form is resized.QTSCROLLABLEFORMS part.</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43242 r43242] </td><td>Qt</td><td>do not loop with LCL when designing TPageControl, keep LCL sizes when InUpdate.</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43243 r43243] </td><td>Qt</td><td>do not invalidate client rect cache in scrollable form viewport if we are embedded form (eg. docked).</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43274 r43274] </td><td>Qt</td><td>fixed sizing of autosized forms by ignoring sizepolicy for centralwidget when QTSCROLLABLEFORMS is enabled.</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43308 r43308] </td><td>Qt</td><td>added note about spotted bug in Qt-4.8.5 lib when using raster graphicssystem.</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43315 r43315] </td><td>Qt</td><td>workaround for Qt raster engine bug when rectangle is drawn and pen is cosmetic. issue [http://bugs.freepascal.org/view.php?id=25227 25227]</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43333 r43333] </td><td>Qt</td><td>implemented SWP_SHOWWINDOW and SWP_HIDEWINDOW in TQtWidgetSet.SetWindowPos.</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=42838 r42838] </td><td>rpm</td><td>fixed handling versions with minus</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43160 r43160] </td><td>SourceEdit</td><td>Set ifdef (on tab change) after dec-paintlock)</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=42840 r42840] </td><td></td><td>Spelling </td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43188 r43188] </td><td>sqldb</td><td>TSQLDBLibraryLoader, TPQEventMonitor, TFBEventMonitor and TFBAdmin were backported to FPC 2.6.3</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43194 r43194] </td><td>sqldb</td><td>enabled TSQLDBLibraryLoader, TPQEventMonitor, TFBEventMonitor and TFBAdmin for FPC 2.6.3 too in order to allow to test them before FPC 2.6.4 is released (FPC 2.6.3 built in February is OK)</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43263 r43263] </td><td>sqldb</td><td>TSQLDBLibraryLoader, TPQEventMonitor, TFBEventMonitor and TFBAdmin are actually available in FPC 2.6.2, bug [http://bugs.freepascal.org/view.php?id=25200 25200]</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43307 r43307] </td><td>SrcEdit</td><td>workaround for Mac QueueAsync bug</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=42898 r42898] </td><td>SynEdit</td><td>IfDef Markup, fix issue with not displaying nested disabled blocks sometimes</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=42987 r42987] </td><td>SynEdit</td><td>Spelling</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43009 r43009] </td><td>SynEdit</td><td>Allow to set ssoMatchCase for TSynEditMarkupHighlightAllCaret. Issue [http://bugs.freepascal.org/view.php?id=0025108 0025108] Patch by Denis Golovan</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43064 r43064] </td><td>SynEdit</td><td>Ifdef highlight, more verbose assert.</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43159 r43159] </td><td>SynEdit</td><td>Avoid highlighter scanning twice, due to trailing space changes</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43165 r43165] </td><td>SynEdit</td><td>Fixed uninitialized value in block-selection</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43332 r43332] </td><td>SynEdit</td><td>IFDEF lowlight, fix wrong index, and fix using same nested comment setting as HL / Issue [http://bugs.freepascal.org/view.php?id=0025244 0025244]</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43342 r43342] </td><td>SynEdit</td><td>Pas HighLighter, recognize new &keyword for identifier style</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43077 r43077] </td><td>Translations</td><td>Brazilian Portuguese translation update by Marcelo B Paula, bug [http://bugs.freepascal.org/view.php?id=25134 25134]</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43163 r43163] </td><td>TRadiouGroup</td><td>do not reset FItemIndex in UpdateIyems whilst loading. Issue [http://bugs.freepascal.org/view.php?id=0025158 0025158].</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43223 r43223] </td><td>TRadioGroup</td><td>fix resetting ItemIndex to -1 when calling Items.Assign (regression introduced by me in r42772).</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43344 r43344] </td><td>TreeFilterEdit</td><td>Improve TTreeFilterBranch.RemoveChildrenData logic.</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43109 r43109] </td><td>ValEdit</td><td>Fix crash in InsertRow if Strings.Count = 0. Issue [http://bugs.freepascal.org/view.php?id=0025144 0025144]</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43110 r43110] </td><td>ValEdit</td><td>implement an adapted version of InsertRowWithValues</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43118 r43118] </td><td>ValEdit</td><td>refactor the logic behind wether or not to hide the editor when manipulating the Strings property.</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43119 r43119] </td><td>ValEdit</td><td>fix possible error in InsertRowWithValues due to uninitialized NameValueSeparator.</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43177 r43177] </td><td>ValEdit</td><td>fix crash on GetCells when empty rows are auto-added.</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43157 r43157] </td><td>Win32</td><td>implemented TListView.OwnerDraw and TListView.OnDrawItem. issue [http://bugs.freepascal.org/view.php?id=25149 25149]</td></tr><br />
</table><br />
<br />
==== binaries ====<br />
*r43042 Qt: updated Qt4Pas5.dll to version 2.5. IMPORTANT !<br />
<br />
== Roadmap to 1.2 ==<br />
<br />
The release process will consist of the following steps.<br />
<br />
* Creation of the SVN 1.2 fixes branch (Done 15 Sept 2013)<br />
<br />
* Publication of Lazarus 1.1.99 pre-release (Done 18 Sept 2013)<br />
<br />
This will be an early alpha of the upcoming 1.2. It will be available to anyone who wants to help testing. Testers should treat this release with similar caution as the daily snapshots.<br />
The testing period is scheduled to last 6 to 8 weeks.<br />
<br />
* Release of 1.2 RC 1 (Done 6 November 2013)<br />
<br />
This will be the first Release Candidate. We would like to urge all users to test this version.<br />
The testing period is scheduled to last 6 to 8 weeks.<br />
<br />
* Release of 1.2 RC 2 (Mid/End December 2013 / Early 2014)<br />
<br />
The testing period is scheduled to last 6 to 8 weeks.<br />
<br />
* Maybe 1.2 RC 3<br />
<br />
An RC 3 may be scheduled, if necessary.<br />
<br />
* Release of Lazarus 1.2 (between Feb and Apr 2014)<br />
<br />
<br />
=== Tests ===<br />
<br />
*Menu item exists<br />
*Clear pcp directory and start IDE, a new project application with a form should be visible<br />
*Double click on form - a FormCreate event should be created<br />
*Check View / IDE internals / What needs building - no package should need building, only the project<br />
*Restart the IDE - there should be no warning about upgrading<br />
*Install the package cody, after restart the component palette should show the component TCodyTreeView<br />
<br />
=== Tagging release ===<br />
* Set version to 1.2 in fixes_1_2 branch<br />
** open lazarus/lazarus.lpi in the IDE and change the version numbers in the project options dialog 1.2.0.1 for RC1, 1.2.0.2 for RC2, 1.2.0.3 for final<br />
** lazarus/ide/version.inc 1.2RC1 for RC1, no spaces!<br />
** lazarus/lcl/lclversion.pas 1.2.0.1 for RC1, 1.2.0.2 for RC2, 1.2.0.3 for final<br />
** lclbase.lpk<br />
** lcl.lpk<br />
** lazarus/debian/changelog 1.2.0-1 for RC1, 1.2.0-2 for RC2, 1.2.0-3 for final<br />
** lazarus/lazarus.app/Contents/Info.plist v1.2 RC1<br />
** tools/install/linux/environmentoptions.xml same as version.inc<br />
** tools/install/win/environmentoptions.xml same as version.inc<br />
** tools/install/macos/environmentoptions.xml same as version.inc<br />
** check if lpl files needs updating by running ./tools/lplupdate -c<br />
** run ./tools/updatemakefiles<br />
* Tag fixes_1_2 branch to tags/release_1_2_RC1<br />
svn copy svn+ssh://svn.freepascal.org/FPC/svn/lazarus/branches/fixes_1_2 svn+ssh://svn.freepascal.org/FPC/svn/lazarus/tags/lazarus_1_2_RC1 -m 'tagged 1.2RC1 as tags/lazarus_1_2_RC1'<br />
* Set version to 1.2 in trunk<br />
<br />
== How to merge ==<br />
<br />
See [[Lazarus_1.0_fixes_branch#How_to_merge]]<br />
<br />
[[Category:Lazarus]]<br />
[[Category:Branches]]</div>
Paul Ishenin
https://wiki.freepascal.org/index.php?title=Lazarus_1.2_fixes_branch&diff=74059
Lazarus 1.2 fixes branch
2013-11-18T12:04:49Z
<p>Paul Ishenin: /* Submitted by developer / committer */</p>
<hr />
<div>This page contains the revisions to be merged from trunk to the [http://svn.freepascal.org/svn/lazarus/branches/fixes_1_2/ Lazarus 1.2 fixes] branch.<br><br />
This are only fixes made after the branch was created. For other fixes made since the previous release (1.0) see SVN and [[Lazarus_1.0_fixes_branch]]<br><br><br />
<br />
Release notes can be found [[Lazarus 1.2.0 release notes|here]]<br />
<br />
== Fixes for 1.2 RC2 ==<br />
<br />
=== Merge requests ===<br />
<br />
==== Submitted by developer / committer ====<br />
<br />
*r43432 codetools: asking compiler for config files: expand relative file names<br />
*r43431 IDE: test file for compiler, expand temp directory<br />
*r43441 Qt: cleanup<br />
*r43442 Qt: changed defines for TQtFloatSpinEdit and CPU64<br />
*r43443 LCL: TControlCanvas: do not flood terminal about painting outside of paint event for widgetsets which actually supports painting outside of paint event.<br />
*r43448 TCustomForm: save Sreen.Cursor before ShowModal and restore it afterwards. Issue #0023374.<br />
*r43451 PoChecker: add option to check translation statistics.<br />
*r43453 lazutils: added conversion KOI8U and KOI8RU<br />
*r43456 LCL: fix types for GDI objects (fixes crash on 64bit)<br />
*r43457 Cocoa: fix default GDI objects construction/destruction<br />
<br />
==== Submitted by others ====<br />
<br />
=== Merged revisions for 1.2 RC2 ===<br />
<br />
*r43361 TApplication: set THintWindow.BidiMode. {{MantisLink|0022048}}.<br />
*r43362 Debugger: Add timeout protection for breakpoints during start up. {{MantisLink|0025277}}<br />
*r43364 Debugger: prevent messing up the environment on windows, due to gdb bug (gdb not setting debuggee environment) / introduced in rev 42419<br />
*r43366 Debugger: better pid detection for attach. {{MantisLink|0025273}}<br />
*r43367 THintWindow: adjust for BidiMode in CalcHintRect. {{MantisLink|0025275}}.<br />
*r43368 TApplication: adjust position of THintWindow depending on LTR or RTL alignment.<br />
*r43371 Components: fixed Lazarus Package Manager compilation with FPC >= 2.6.3<br />
*r43373 THintWindow: adjust for BidiMode in CalcHintRect. Slight improvement on r43367.<br />
*r43375 SynEdit: Highlight-all, fix index for last element<br />
*r43381 Debugger: taborder for watch-properties<br />
*r43380 Debugger: fix internal type for gdb request (eval vs ptype)<br />
*r43429 Translations: Japanese translation update by Haruyuki Fujimaki<br />
*r43433 Translations: Polish translation update by Tomasz Wieckowski, {{MantisLink|25308}}<br />
*r43434 IDEIntf: regenerated some translations<br />
*r43384 carbon: fix selecting an item in a TListView on Carbon when OwnerDraw is true.patch by Joost van der Sluis. {{MantisLink|25274}}<br />
*r43385 Qt: fixed changing font color of themed text draw. {{MantisLink|25253}}<br />
*r43386 Qt: restore pen color if we change it during draw themed text. regression of r43385. {{MantisLink|25253}}<br />
*r43387 Qt: fixed another regression introduced with r43385 and r43386<br />
*r43396 Win, installer: delete correct conf folder, if updating 2ndary install and choose to clear conf<br />
*r43395 LazUtils: allow ReleaseRef on nil<br />
*r43397 Win, installer: convert Spanish to ansi<br />
*r43398 EditorMacroScript: Add some more try except dealing with self-test. Save reason of failure<br />
*r43378 codetools: fixed TCustomCodeTool.ReadBackTilBracketOpen when there is no bracket<br />
*r43424 SynEdit: Fixed painting highlight frame-borders. (do not paint extra left/right borders)<br />
<br />
== Fixes for 1.2 RC1 (Merged) ==<br />
<table class="sortable"><br />
<tr><th>Revision</th><th>Category</th><th>Description</th></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=42850 r42850],&#x200B;[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=42851 r42851] </td><td>carbon</td><td>fix linear gradient drawing</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=42843 r42843] </td><td>codetools</td><td>syntax error if parameter type is missing</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=42844 r42844] </td><td>codetools</td><td>fixed parsing var type deprecated bracket close</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=42846 r42846] </td><td>codetools</td><td>fix parsing of "specialize SomeGeneric<TypeParams>" as function/operator result (this fixes error with parsing of new objpas generics)</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=42859 r42859] </td><td>codetools</td><td>fixed removing first unit from second line</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=42868 r42868] </td><td>codetools</td><td>fixed checking if resolving edged bracket open is allowed, bug [http://bugs.freepascal.org/view.php?id=25045 25045]</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=42910 r42910] </td><td>Converter</td><td>Define PUREPASCAL for units during conversion when simulate Delphi defines is set.</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43076 r43076] </td><td>Components, Lazreport</td><td>updated Russian translation</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43195 r43195] </td><td>Converter</td><td>Fix a crash when a replaced function had brackets '()' without parameters.</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43201 r43201],&#x200B;[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43202 r43202],&#x200B;[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43203 r43203],&#x200B;[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43204 r43204],&#x200B;[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43205 r43205],&#x200B;[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43208 r43208],&#x200B;[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43209 r43209],&#x200B;[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43214 r43214],&#x200B;[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43215 r43215]</td><td>codetools</td><td>parsing new modifiers and keywords, needed for parsing FPC sources</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43337 r43337] </td><td>ComCtrls</td><td>change signature of TDrawTabEvent to avoid compilation error due to duplicatie identifier. Issue [http://bugs.freepascal.org/view.php?id=0025245 0025245].</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=42856 r42856] </td><td>Debugger</td><td>Disable logging of stackdump during unit lookup</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=42913 r42913],&#x200B;[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=42917 r42917] </td><td>Debugger</td><td>reset thread on start/init</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=42931 r42931] </td><td>Debugger</td><td>Options, disable add/remove buttons on signal opts. Not implemented</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=42932 r42932] </td><td>Debugger</td><td>Options, mark project as modified, when exceptions are enabled/disabled. Issue [http://bugs.freepascal.org/view.php?id=0025074 0025074]</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=42988 r42988] </td><td>Debugger</td><td>Spelling </td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=42989 r42989] </td><td>Debugger</td><td>fix disassembler, check if offset can be used</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=42990 r42990] </td><td>Debugger</td><td>fix race condition, stopping the debugger could lead to debugger error</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43038 r43038] </td><td>Debugger</td><td>force gdb to use lang=pascal. (set after attach / needed in some environment, such as cgi in webserver)</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43189 r43189] </td><td>Debugger</td><td>Fix handling of single quote in strings returned by gdb</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43197 r43197] </td><td>Debugger</td><td>Fix handling of backslash in strings returned by gdb (used for classname resolving)</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43240 r43240] </td><td>Debugger</td><td>Try filename in app bundle for newer gdb</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43255 r43255] </td><td>Debugger</td><td>parse version / mac file encoding depends on version</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43294 r43294] </td><td>Debugger</td><td>Fix getting min callstack depth in some cases.</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43302 r43302] </td><td>Debugger</td><td>improve cache / fix compare none case-sensitive </td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43303 r43303] </td><td>Debugger</td><td>fix disassembler testcase</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43304 r43304] </td><td>Debugger</td><td>fix adding watch via dialog. Open watch view window</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43306 r43306] </td><td>Debugger</td><td>Change ExceptionList to one list (no master/slave), fix debugger follows config which exceptions to ignore.</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43317 r43317],&#x200B;[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43318 r43318] </td><td>Debugger</td><td>Fix parsing class with nested record / array of record</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43329 r43329] </td><td>Debugger</td><td>Fix mem leak in disassembler </td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=42842 r42842] </td><td>dmg</td><td>versions with letters and minus</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43253 r43253] </td><td>Docs</td><td>added Yuichiro Takahashi and Haruyuki Fujimaki to contributors list </td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43122 r43122] </td><td>Gtk2</td><td>implemented TListView.OwnerDraw + OnDrawItem. part of issue [http://bugs.freepascal.org/view.php?id=25149 25149]</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43156 r43156] </td><td>Gtk2</td><td>implemented themed draw of combobox.issue [http://bugs.freepascal.org/view.php?id=25151 25151]</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43174 r43174] </td><td>Gtk2</td><td>Gtk2Themes: return correct size value for checkbox and radiobutton</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43176 r43176] </td><td>Gtk2</td><td>fixed combobox themed paint (separated combo button from combo root).issue [http://bugs.freepascal.org/view.php?id=25151 25151]</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43178 r43178] </td><td>Gtk2</td><td>pass TCheckListBox.OnDrawItem when Style <> lbStandard.issue [http://bugs.freepascal.org/view.php?id=14071 14071]</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=42835 r42835] </td><td>IDE</td><td>mode matrix: fixed showing targets</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=42865 r42865] </td><td>IDE</td><td>fixed complete block, bug [http://bugs.freepascal.org/view.php?id=24935 24935]</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=42866 r42866] </td><td>IDE</td><td>fixed complete block on char, fixed codebrowser check if something changed</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=42886 r42886] </td><td>IDEIntf</td><td>Change TComponentPropertyEditor back to original behavior so it lists all components from all forms.</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=42909 r42909] </td><td>IDE</td><td>add PowerPc processor types to selection list.</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=42916 r42916] </td><td>IDE</td><td>Improve the All Compiler Options GUI filter. It lost focus because it was disabled. Not any more.</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=42945 r42945] </td><td>IDE</td><td>designer: fixed adding components on inherited form, bug [http://bugs.freepascal.org/view.php?id=25084 25084]</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=42946 r42946] </td><td>IDE</td><td>when closing a modified package and user does not save mods, clear modified, bug [http://bugs.freepascal.org/view.php?id=22956 22956]</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43028 r43028] </td><td>IDE</td><td>Respect the Use Comments setting also when editing defines.</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43078 r43078] </td><td>IDE</td><td>regenerated Brazilian Portuguese translation</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43182 r43182] </td><td>IDE</td><td>Compare TargetOS without case sensitivity. The default value is lowercase.</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43219 r43219] </td><td>IDE</td><td>save package main source: ignore case, bug [http://bugs.freepascal.org/view.php?id=25173 25173]</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43351 r43351] </td><td>IDE</td><td>Fix the check for conflicting sequential (multi-stage) shortcuts. Issue [http://bugs.freepascal.org/view.php?id=25085 25085]</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43352 r43352] </td><td>IDE</td><td>Update popup menu item Enabled state correctly in Keymapping options. Sender is PopupMenu, not TreeView.</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=42825 r42825] </td><td>Installer, Win</td><td>allow "pre-release" in version name (inno setup)</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=42994 r42994],&#x200B;[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=42995 r42995],&#x200B;[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=42996 r42996]</td><td>LazReport</td><td>several template fixes including fix crash on loading template, issue [http://bugs.freepascal.org/view.php?id=14137 14137]</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43040 r43040] </td><td>LazReport</td><td>fix hyphenation helper mem leak</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43046 r43046] </td><td>LazReport</td><td>improve error message on missing classes, was about FRF format while in reality is about LRF format</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43047 r43047] </td><td>LazReport</td><td>fix error in dialogs when object is deleted and then a new one inserted, issue [http://bugs.freepascal.org/view.php?id=25097 25097]</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43063 r43063] </td><td>LazReport</td><td>restored accidentally removed translations</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43162 r43162] </td><td>LazReport</td><td>several fixes by Alexey Lagunov</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43271 r43271] </td><td>Lazreport</td><td>fix Report shape tool has black shadow, issue [http://bugs.freepascal.org/view.php?id=14127 14127]</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43272 r43272] </td><td>LazReport</td><td>some times objects that are hidden by others in upper layer show up because clipping region of moving object enable them, make sure they are visible or not</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43273 r43273] </td><td>LazReport</td><td>enable native print dialog in Mac OS X by default + option to disable it</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43341 r43341] </td><td>lazcontrols</td><td>fixed crash on freeing TFileNameItem</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43348 r43348] </td><td>LazUtf8</td><td>implement Utf8 versions of LeftStr and RightStr.</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=42845 r42845] </td><td>LCL</td><td>minor corrections of comments in clipbrd.pp (thanks to Mike Thompson), bug [http://bugs.freepascal.org/view.php?id=25033 25033]</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=42854 r42854] </td><td>LCL</td><td>added TPairSplitter.Constraints</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=42877 r42877] </td><td>LCL</td><td>TTreeView: check OverlayIndex upper bound</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=42912 r42912] </td><td>lcl</td><td>dbgrids: fixed memleak of KeyBookmark, patch from Luca Olivetti, bug [http://bugs.freepascal.org/view.php?id=24412 24412]</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=42923 r42923] </td><td>LCL</td><td>Gtk2, fix grid editing problem on ALT+TAB forward and back, issue [http://bugs.freepascal.org/view.php?id=22475 22475]</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=42924 r42924] </td><td>LCL</td><td>Gtk2, force redraw of GTKWinApiWidgets on focus changes so they can reflect focused/unfocused state (for grids in this case)</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=42936 r42936] </td><td>LCL</td><td>grids, handle the first key in keypress, fixes issue [http://bugs.freepascal.org/view.php?id=24893 24893]</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=42943 r42943] </td><td>LCL</td><td>fix grids focus where OnEnter occurs twice, issue [http://bugs.freepascal.org/view.php?id=25010 25010]</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=42948 r42948] </td><td>LCL</td><td>gtk2, check if widget is still valid (avoid a CRITICAL warning)</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=42954 r42954] </td><td>LCL</td><td>grids, modify editor bounds in case it's affected by modifying default Col width or Row height</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=42958 r42958] </td><td>LCL</td><td>fix ValueListEdit not showing key column at runtime, issue [http://bugs.freepascal.org/view.php?id=24780 24780]</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=42985 r42985],&#x200B;[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=42986 r42986],&#x200B;[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=42991 r42991]</td><td>LCL</td><td>grids, fixed selection by mouse if editor is visible and focused </td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=42992 r42992] </td><td>LCL</td><td>grids, allow the RETURN key to go to OnKeyPress</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=42993 r42993] </td><td>LCL</td><td>grids, implemented InsertRowWithValues from Everton Vieira, issue [http://bugs.freepascal.org/view.php?id=21176 21176]</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43052 r43052] </td><td>LCL</td><td>grids, reformat some code that SHIFT+CTRL+C keeps reminding is different</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43054 r43054] </td><td>lcl</td><td>grid: initialize var</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43061 r43061] </td><td>LCL, carbon</td><td>fix filterindex and add trigger some missing dialog events, fix issue [http://bugs.freepascal.org/view.php?id=25086 25086]</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43115 r43115] </td><td>LCL</td><td>implemented TListView.OwnerDraw + OnDrawItem. part of issue [http://bugs.freepascal.org/view.php?id=25149 25149]</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43222 r43222] </td><td>LCL</td><td>wslclclasses, increased VIRTUAL_VMT_COUNT const from 100 to 128, to be able to add more methods to ws classes.</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43244 r43244] </td><td>LCL</td><td>TCustomListView: implemented SelectAll & ClearSelection for delphi compatibility. issue [http://bugs.freepascal.org/view.php?id=19812 19812]</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43245 r43245] </td><td>LCL</td><td>TCustomListView: added TCustomListView.AddItem for delphi compatibility. issue [http://bugs.freepascal.org/view.php?id=25092 25092]</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43251 r43251] </td><td>LCL</td><td>Japanese translation by Yuichiro Takahashi, bug [http://bugs.freepascal.org/view.php?id=25123 25123]</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43269 r43269] </td><td>LCL, carbon</td><td>fix CombineRgn when op=diff and dst=src2, dst(src2) ended with a copy of src1 and result is src1 op src1</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43270 r43270] </td><td>LCL, carbon</td><td>implements CreateEllipticRgn</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=44051 r44051] </td><td>LCL</td><td>grids, do not trigger CellButton click if MouseDown is OutBounds, mdified patch from malcome, issue [http://bugs.freepascal.org/view.php?id=25127 25127]</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43350 r43350] </td><td>MaskEdit</td><td>avoid calling OnChange when setting initial values for Mask and Text. Issue [http://bugs.freepascal.org/view.php?id=0019029 0019029].</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=42950 r42950],&#x200B;[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=42951 r42951],&#x200B;[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=42952 r42952],&#x200B;[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=42953 r42953]</td><td>Object Inspector</td><td>show collections referenced multiple times only once, show TFieldDefs without owner</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=42832 r42832] </td><td>Propedits</td><td>remove a test version of TCoolBarControlPropertyEditor.CheckNewValue</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43024 r43024] </td><td>Printers</td><td>windows, do not open and setup printer if it's being destroyed, issue [http://bugs.freepascal.org/view.php?id=23026 23026]</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43140 r43140] </td><td>Printers, carbon</td><td>fix context origin (the origin should be the imageable area not the paper rect)</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43141 r43141] </td><td>Printers, Carbon</td><td>support for printing at higher resolution, issue [http://bugs.freepascal.org/view.php?id=23339 23339]</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43164 r43164] </td><td>Printers</td><td>cups, fix PrintDialog does not set Copies and Colate properties, from Petr-K, issue [http://bugs.freepascal.org/view.php?id=24959 24959]</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=42905 r42905] </td><td>Qt</td><td>TQtComboBox fix for call IntfGetItems when we are non-editable combobox.</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=42906 r42906] </td><td>Qt</td><td>call OnDropDown imediatelly after IntfGetItems, so our events are in expected order and there's no disturbing of QListWidget while showing.issue [http://bugs.freepascal.org/view.php?id=25032 25032]</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=42940 r42940] </td><td>Qt</td><td>fixed TQtCheckListBox double click event duplication.issue [http://bugs.freepascal.org/view.php?id=25089 25089]</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=42941 r42941] </td><td>Qt</td><td>change current row of TQtCheckListBox for Qt >= 4.8 since it does not change ItemIndex when checkbox is clicked.</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43041 r43041] </td><td>Qt</td><td>updated Qt bindings to version 2.5</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43043 r43043] </td><td>Qt</td><td>fixed application closing when session manager is used. issue [http://bugs.freepascal.org/view.php?id=18910 18910]</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43053 r43053] </td><td>Qt</td><td>fixed compilation with fpc 2.7.1. issue [http://bugs.freepascal.org/view.php?id=25125 25125]</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43062 r43062] </td><td>Qt</td><td>fix conditional switches. issue [http://bugs.freepascal.org/view.php?id=25139 25139]</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43116 r43116] </td><td>Qt</td><td>implemented TListView.OwnerDraw + OnDrawItem. part of issue [http://bugs.freepascal.org/view.php?id=25149 25149]</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43135 r43135] </td><td>Qt</td><td>implemented TCustomListView OnCustomDraw, OnCustomDrawItem, OnCustomDrawSubItem. part of issue [http://bugs.freepascal.org/view.php?id=7059 7059]</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43146 r43146] </td><td>Qt</td><td>improved qt themes. Added tab drawing.</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43149 r43149] </td><td>Qt</td><td>improved qt themes text drawer.</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43150 r43150] </td><td>Qt</td><td>implemented teProgress in qt themes.</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43152 r43152] </td><td>Qt</td><td>partially implemented teListView in qt themes.</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43154 r43154] </td><td>Qt</td><td>implemented teSpin in qt themes.</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43158 r43158] </td><td>Qt</td><td>TQtListWidget, TQtTreeWidget.itemDelegatePaint() draw background of item by default.related to issue [http://bugs.freepascal.org/view.php?id=24941 24941]</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43166 r43166] </td><td>Qt</td><td>fixed TQtCheckListBox triggering OnItemClick when TCheckListBox.Style <> lbStandard.</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43167 r43167] </td><td>Qt</td><td>improved QtThemes.GetDetailSize by returning sizes of checkbox and radiobutton.</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43168 r43168] </td><td>Qt</td><td>improved teTreeView theme drawer, trigger IntfDoOnThemeChange when theme is changed.</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43169 r43169] </td><td>Qt</td><td>fixed TQtListWidget behaviour when it's owner drawn and checkable = true.</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43170 r43170] </td><td>Qt</td><td>fixed checked item state and custom painting cdsChecked when TQtTreeWidget is ownerdrawn (assigned OnCustomDrawXXX).</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43171 r43171] </td><td>Qt</td><td>TQtTreeWidget: added odChecked to drawstate when OnDrawItem is assigned and we are checkable listview.</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43172 r43172] </td><td>Qt</td><td>fixed wrong DrawState param for TQtListWidget when OnDrawItem is assigned (ownerdraw).</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43173 r43173] </td><td>Qt</td><td>fixed behaviour of checkable items when key space is pressed in TQtAbstractItemView.OwnerDraw mode.</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43175 r43175] </td><td>Qt</td><td>fixed drawer for themed TGroupBox.</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43180 r43180] </td><td>Qt</td><td>fixed regression in owner drawn combobox from rev.43135. issue [http://bugs.freepascal.org/view.php?id=25172 25172]</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43218 r43218] </td><td>Qt</td><td>implemented scrollbars on forms (scrollable forms).Currently it works only if QTSCROLLABLEFORMS define is enabled in qtdefines.inc. issue [http://bugs.freepascal.org/view.php?id=24715 24715]</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43234 r43234] </td><td>Qt</td><td>fixed crash when QTSCROLLABLEFORMS are enabled and reparenting form with mouse (eg undock).part of issue [http://bugs.freepascal.org/view.php?id=24715 24715]</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43236 r43236] </td><td>Qt</td><td>fixed problem with clientrect sizes when QTSCROLLABLEFORMS are enabled.part of issue [http://bugs.freepascal.org/view.php?id=24715 24715]</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43238 r43238] </td><td>Qt</td><td>fixed QPainter assertion when QTSCROLLABLEFORMS is enabled.Completely fixes issue [http://bugs.freepascal.org/view.php?id=24715 24715]</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43241 r43241] </td><td>Qt</td><td>invalidate clientrect cache when viewport of scrollable form is resized.QTSCROLLABLEFORMS part.</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43242 r43242] </td><td>Qt</td><td>do not loop with LCL when designing TPageControl, keep LCL sizes when InUpdate.</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43243 r43243] </td><td>Qt</td><td>do not invalidate client rect cache in scrollable form viewport if we are embedded form (eg. docked).</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43274 r43274] </td><td>Qt</td><td>fixed sizing of autosized forms by ignoring sizepolicy for centralwidget when QTSCROLLABLEFORMS is enabled.</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43308 r43308] </td><td>Qt</td><td>added note about spotted bug in Qt-4.8.5 lib when using raster graphicssystem.</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43315 r43315] </td><td>Qt</td><td>workaround for Qt raster engine bug when rectangle is drawn and pen is cosmetic. issue [http://bugs.freepascal.org/view.php?id=25227 25227]</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43333 r43333] </td><td>Qt</td><td>implemented SWP_SHOWWINDOW and SWP_HIDEWINDOW in TQtWidgetSet.SetWindowPos.</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=42838 r42838] </td><td>rpm</td><td>fixed handling versions with minus</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43160 r43160] </td><td>SourceEdit</td><td>Set ifdef (on tab change) after dec-paintlock)</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=42840 r42840] </td><td></td><td>Spelling </td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43188 r43188] </td><td>sqldb</td><td>TSQLDBLibraryLoader, TPQEventMonitor, TFBEventMonitor and TFBAdmin were backported to FPC 2.6.3</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43194 r43194] </td><td>sqldb</td><td>enabled TSQLDBLibraryLoader, TPQEventMonitor, TFBEventMonitor and TFBAdmin for FPC 2.6.3 too in order to allow to test them before FPC 2.6.4 is released (FPC 2.6.3 built in February is OK)</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43263 r43263] </td><td>sqldb</td><td>TSQLDBLibraryLoader, TPQEventMonitor, TFBEventMonitor and TFBAdmin are actually available in FPC 2.6.2, bug [http://bugs.freepascal.org/view.php?id=25200 25200]</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43307 r43307] </td><td>SrcEdit</td><td>workaround for Mac QueueAsync bug</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=42898 r42898] </td><td>SynEdit</td><td>IfDef Markup, fix issue with not displaying nested disabled blocks sometimes</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=42987 r42987] </td><td>SynEdit</td><td>Spelling</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43009 r43009] </td><td>SynEdit</td><td>Allow to set ssoMatchCase for TSynEditMarkupHighlightAllCaret. Issue [http://bugs.freepascal.org/view.php?id=0025108 0025108] Patch by Denis Golovan</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43064 r43064] </td><td>SynEdit</td><td>Ifdef highlight, more verbose assert.</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43159 r43159] </td><td>SynEdit</td><td>Avoid highlighter scanning twice, due to trailing space changes</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43165 r43165] </td><td>SynEdit</td><td>Fixed uninitialized value in block-selection</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43332 r43332] </td><td>SynEdit</td><td>IFDEF lowlight, fix wrong index, and fix using same nested comment setting as HL / Issue [http://bugs.freepascal.org/view.php?id=0025244 0025244]</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43342 r43342] </td><td>SynEdit</td><td>Pas HighLighter, recognize new &keyword for identifier style</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43077 r43077] </td><td>Translations</td><td>Brazilian Portuguese translation update by Marcelo B Paula, bug [http://bugs.freepascal.org/view.php?id=25134 25134]</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43163 r43163] </td><td>TRadiouGroup</td><td>do not reset FItemIndex in UpdateIyems whilst loading. Issue [http://bugs.freepascal.org/view.php?id=0025158 0025158].</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43223 r43223] </td><td>TRadioGroup</td><td>fix resetting ItemIndex to -1 when calling Items.Assign (regression introduced by me in r42772).</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43344 r43344] </td><td>TreeFilterEdit</td><td>Improve TTreeFilterBranch.RemoveChildrenData logic.</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43109 r43109] </td><td>ValEdit</td><td>Fix crash in InsertRow if Strings.Count = 0. Issue [http://bugs.freepascal.org/view.php?id=0025144 0025144]</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43110 r43110] </td><td>ValEdit</td><td>implement an adapted version of InsertRowWithValues</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43118 r43118] </td><td>ValEdit</td><td>refactor the logic behind wether or not to hide the editor when manipulating the Strings property.</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43119 r43119] </td><td>ValEdit</td><td>fix possible error in InsertRowWithValues due to uninitialized NameValueSeparator.</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43177 r43177] </td><td>ValEdit</td><td>fix crash on GetCells when empty rows are auto-added.</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43157 r43157] </td><td>Win32</td><td>implemented TListView.OwnerDraw and TListView.OnDrawItem. issue [http://bugs.freepascal.org/view.php?id=25149 25149]</td></tr><br />
</table><br />
<br />
==== binaries ====<br />
*r43042 Qt: updated Qt4Pas5.dll to version 2.5. IMPORTANT !<br />
<br />
== Roadmap to 1.2 ==<br />
<br />
The release process will consist of the following steps.<br />
<br />
* Creation of the SVN 1.2 fixes branch (Done 15 Sept 2013)<br />
<br />
* Publication of Lazarus 1.1.99 pre-release (Done 18 Sept 2013)<br />
<br />
This will be an early alpha of the upcoming 1.2. It will be available to anyone who wants to help testing. Testers should treat this release with similar caution as the daily snapshots.<br />
The testing period is scheduled to last 6 to 8 weeks.<br />
<br />
* Release of 1.2 RC 1 (Done 6 November 2013)<br />
<br />
This will be the first Release Candidate. We would like to urge all users to test this version.<br />
The testing period is scheduled to last 6 to 8 weeks.<br />
<br />
* Release of 1.2 RC 2 (Mid/End December 2013 / Early 2014)<br />
<br />
The testing period is scheduled to last 6 to 8 weeks.<br />
<br />
* Maybe 1.2 RC 3<br />
<br />
An RC 3 may be scheduled, if necessary.<br />
<br />
* Release of Lazarus 1.2 (between Feb and Apr 2014)<br />
<br />
<br />
=== Tests ===<br />
<br />
*Menu item exists<br />
*Clear pcp directory and start IDE, a new project application with a form should be visible<br />
*Double click on form - a FormCreate event should be created<br />
*Check View / IDE internals / What needs building - no package should need building, only the project<br />
*Restart the IDE - there should be no warning about upgrading<br />
*Install the package cody, after restart the component palette should show the component TCodyTreeView<br />
<br />
=== Tagging release ===<br />
* Set version to 1.2 in fixes_1_2 branch<br />
** open lazarus/lazarus.lpi in the IDE and change the version numbers in the project options dialog 1.2.0.1 for RC1, 1.2.0.2 for RC2, 1.2.0.3 for final<br />
** lazarus/ide/version.inc 1.2RC1 for RC1, no spaces!<br />
** lazarus/lcl/lclversion.pas 1.2.0.1 for RC1, 1.2.0.2 for RC2, 1.2.0.3 for final<br />
** lclbase.lpk<br />
** lcl.lpk<br />
** lazarus/debian/changelog 1.2.0-1 for RC1, 1.2.0-2 for RC2, 1.2.0-3 for final<br />
** lazarus/lazarus.app/Contents/Info.plist v1.2 RC1<br />
** tools/install/linux/environmentoptions.xml same as version.inc<br />
** tools/install/win/environmentoptions.xml same as version.inc<br />
** tools/install/macos/environmentoptions.xml same as version.inc<br />
** check if lpl files needs updating by running ./tools/lplupdate -c<br />
** run ./tools/updatemakefiles<br />
* Tag fixes_1_2 branch to tags/release_1_2_RC1<br />
svn copy svn+ssh://svn.freepascal.org/FPC/svn/lazarus/branches/fixes_1_2 svn+ssh://svn.freepascal.org/FPC/svn/lazarus/tags/lazarus_1_2_RC1 -m 'tagged 1.2RC1 as tags/lazarus_1_2_RC1'<br />
* Set version to 1.2 in trunk<br />
<br />
== How to merge ==<br />
<br />
See [[Lazarus_1.0_fixes_branch#How_to_merge]]<br />
<br />
[[Category:Lazarus]]<br />
[[Category:Branches]]</div>
Paul Ishenin
https://wiki.freepascal.org/index.php?title=Lazarus_1.2_fixes_branch&diff=74042
Lazarus 1.2 fixes branch
2013-11-18T01:13:00Z
<p>Paul Ishenin: /* Submitted by developer / committer */</p>
<hr />
<div>This page contains the revisions to be merged from trunk to the [http://svn.freepascal.org/svn/lazarus/branches/fixes_1_2/ Lazarus 1.2 fixes] branch.<br><br />
This are only fixes made after the branch was created. For other fixes made since the previous release (1.0) see SVN and [[Lazarus_1.0_fixes_branch]]<br><br><br />
<br />
Release notes can be found [[Lazarus 1.2.0 release notes|here]]<br />
<br />
== Fixes for 1.2 RC2 ==<br />
<br />
=== Merge requests ===<br />
<br />
==== Submitted by developer / committer ====<br />
<br />
*r43432 codetools: asking compiler for config files: expand relative file names<br />
*r43431 IDE: test file for compiler, expand temp directory<br />
*r43441 Qt: cleanup<br />
*r43442 Qt: changed defines for TQtFloatSpinEdit and CPU64<br />
*r43443 LCL: TControlCanvas: do not flood terminal about painting outside of paint event for widgetsets which actually supports painting outside of paint event.<br />
*r43448 TCustomForm: save Sreen.Cursor before ShowModal and restore it afterwards. Issue #0023374.<br />
*r43451 PoChecker: add option to check translation statistics.<br />
*r43453 lazutils: added conversion KOI8U and KOI8RU<br />
*r43456 LCL: fix types for GDI objects (fixes crash on 64bit)<br />
<br />
==== Submitted by others ====<br />
<br />
=== Merged revisions for 1.2 RC2 ===<br />
<br />
*r43361 TApplication: set THintWindow.BidiMode. {{MantisLink|0022048}}.<br />
*r43362 Debugger: Add timeout protection for breakpoints during start up. {{MantisLink|0025277}}<br />
*r43364 Debugger: prevent messing up the environment on windows, due to gdb bug (gdb not setting debuggee environment) / introduced in rev 42419<br />
*r43366 Debugger: better pid detection for attach. {{MantisLink|0025273}}<br />
*r43367 THintWindow: adjust for BidiMode in CalcHintRect. {{MantisLink|0025275}}.<br />
*r43368 TApplication: adjust position of THintWindow depending on LTR or RTL alignment.<br />
*r43371 Components: fixed Lazarus Package Manager compilation with FPC >= 2.6.3<br />
*r43373 THintWindow: adjust for BidiMode in CalcHintRect. Slight improvement on r43367.<br />
*r43375 SynEdit: Highlight-all, fix index for last element<br />
*r43381 Debugger: taborder for watch-properties<br />
*r43380 Debugger: fix internal type for gdb request (eval vs ptype)<br />
*r43429 Translations: Japanese translation update by Haruyuki Fujimaki<br />
*r43433 Translations: Polish translation update by Tomasz Wieckowski, {{MantisLink|25308}}<br />
*r43434 IDEIntf: regenerated some translations<br />
*r43384 carbon: fix selecting an item in a TListView on Carbon when OwnerDraw is true.patch by Joost van der Sluis. {{MantisLink|25274}}<br />
*r43385 Qt: fixed changing font color of themed text draw. {{MantisLink|25253}}<br />
*r43386 Qt: restore pen color if we change it during draw themed text. regression of r43385. {{MantisLink|25253}}<br />
*r43387 Qt: fixed another regression introduced with r43385 and r43386<br />
*r43396 Win, installer: delete correct conf folder, if updating 2ndary install and choose to clear conf<br />
*r43395 LazUtils: allow ReleaseRef on nil<br />
*r43397 Win, installer: convert Spanish to ansi<br />
*r43398 EditorMacroScript: Add some more try except dealing with self-test. Save reason of failure<br />
*r43378 codetools: fixed TCustomCodeTool.ReadBackTilBracketOpen when there is no bracket<br />
*r43424 SynEdit: Fixed painting highlight frame-borders. (do not paint extra left/right borders)<br />
<br />
== Fixes for 1.2 RC1 (Merged) ==<br />
<table class="sortable"><br />
<tr><th>Revision</th><th>Category</th><th>Description</th></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=42850 r42850],&#x200B;[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=42851 r42851] </td><td>carbon</td><td>fix linear gradient drawing</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=42843 r42843] </td><td>codetools</td><td>syntax error if parameter type is missing</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=42844 r42844] </td><td>codetools</td><td>fixed parsing var type deprecated bracket close</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=42846 r42846] </td><td>codetools</td><td>fix parsing of "specialize SomeGeneric<TypeParams>" as function/operator result (this fixes error with parsing of new objpas generics)</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=42859 r42859] </td><td>codetools</td><td>fixed removing first unit from second line</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=42868 r42868] </td><td>codetools</td><td>fixed checking if resolving edged bracket open is allowed, bug [http://bugs.freepascal.org/view.php?id=25045 25045]</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=42910 r42910] </td><td>Converter</td><td>Define PUREPASCAL for units during conversion when simulate Delphi defines is set.</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43076 r43076] </td><td>Components, Lazreport</td><td>updated Russian translation</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43195 r43195] </td><td>Converter</td><td>Fix a crash when a replaced function had brackets '()' without parameters.</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43201 r43201],&#x200B;[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43202 r43202],&#x200B;[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43203 r43203],&#x200B;[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43204 r43204],&#x200B;[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43205 r43205],&#x200B;[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43208 r43208],&#x200B;[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43209 r43209],&#x200B;[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43214 r43214],&#x200B;[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43215 r43215]</td><td>codetools</td><td>parsing new modifiers and keywords, needed for parsing FPC sources</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43337 r43337] </td><td>ComCtrls</td><td>change signature of TDrawTabEvent to avoid compilation error due to duplicatie identifier. Issue [http://bugs.freepascal.org/view.php?id=0025245 0025245].</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=42856 r42856] </td><td>Debugger</td><td>Disable logging of stackdump during unit lookup</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=42913 r42913],&#x200B;[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=42917 r42917] </td><td>Debugger</td><td>reset thread on start/init</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=42931 r42931] </td><td>Debugger</td><td>Options, disable add/remove buttons on signal opts. Not implemented</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=42932 r42932] </td><td>Debugger</td><td>Options, mark project as modified, when exceptions are enabled/disabled. Issue [http://bugs.freepascal.org/view.php?id=0025074 0025074]</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=42988 r42988] </td><td>Debugger</td><td>Spelling </td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=42989 r42989] </td><td>Debugger</td><td>fix disassembler, check if offset can be used</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=42990 r42990] </td><td>Debugger</td><td>fix race condition, stopping the debugger could lead to debugger error</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43038 r43038] </td><td>Debugger</td><td>force gdb to use lang=pascal. (set after attach / needed in some environment, such as cgi in webserver)</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43189 r43189] </td><td>Debugger</td><td>Fix handling of single quote in strings returned by gdb</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43197 r43197] </td><td>Debugger</td><td>Fix handling of backslash in strings returned by gdb (used for classname resolving)</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43240 r43240] </td><td>Debugger</td><td>Try filename in app bundle for newer gdb</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43255 r43255] </td><td>Debugger</td><td>parse version / mac file encoding depends on version</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43294 r43294] </td><td>Debugger</td><td>Fix getting min callstack depth in some cases.</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43302 r43302] </td><td>Debugger</td><td>improve cache / fix compare none case-sensitive </td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43303 r43303] </td><td>Debugger</td><td>fix disassembler testcase</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43304 r43304] </td><td>Debugger</td><td>fix adding watch via dialog. Open watch view window</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43306 r43306] </td><td>Debugger</td><td>Change ExceptionList to one list (no master/slave), fix debugger follows config which exceptions to ignore.</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43317 r43317],&#x200B;[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43318 r43318] </td><td>Debugger</td><td>Fix parsing class with nested record / array of record</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43329 r43329] </td><td>Debugger</td><td>Fix mem leak in disassembler </td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=42842 r42842] </td><td>dmg</td><td>versions with letters and minus</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43253 r43253] </td><td>Docs</td><td>added Yuichiro Takahashi and Haruyuki Fujimaki to contributors list </td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43122 r43122] </td><td>Gtk2</td><td>implemented TListView.OwnerDraw + OnDrawItem. part of issue [http://bugs.freepascal.org/view.php?id=25149 25149]</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43156 r43156] </td><td>Gtk2</td><td>implemented themed draw of combobox.issue [http://bugs.freepascal.org/view.php?id=25151 25151]</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43174 r43174] </td><td>Gtk2</td><td>Gtk2Themes: return correct size value for checkbox and radiobutton</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43176 r43176] </td><td>Gtk2</td><td>fixed combobox themed paint (separated combo button from combo root).issue [http://bugs.freepascal.org/view.php?id=25151 25151]</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43178 r43178] </td><td>Gtk2</td><td>pass TCheckListBox.OnDrawItem when Style <> lbStandard.issue [http://bugs.freepascal.org/view.php?id=14071 14071]</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=42835 r42835] </td><td>IDE</td><td>mode matrix: fixed showing targets</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=42865 r42865] </td><td>IDE</td><td>fixed complete block, bug [http://bugs.freepascal.org/view.php?id=24935 24935]</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=42866 r42866] </td><td>IDE</td><td>fixed complete block on char, fixed codebrowser check if something changed</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=42886 r42886] </td><td>IDEIntf</td><td>Change TComponentPropertyEditor back to original behavior so it lists all components from all forms.</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=42909 r42909] </td><td>IDE</td><td>add PowerPc processor types to selection list.</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=42916 r42916] </td><td>IDE</td><td>Improve the All Compiler Options GUI filter. It lost focus because it was disabled. Not any more.</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=42945 r42945] </td><td>IDE</td><td>designer: fixed adding components on inherited form, bug [http://bugs.freepascal.org/view.php?id=25084 25084]</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=42946 r42946] </td><td>IDE</td><td>when closing a modified package and user does not save mods, clear modified, bug [http://bugs.freepascal.org/view.php?id=22956 22956]</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43028 r43028] </td><td>IDE</td><td>Respect the Use Comments setting also when editing defines.</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43078 r43078] </td><td>IDE</td><td>regenerated Brazilian Portuguese translation</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43182 r43182] </td><td>IDE</td><td>Compare TargetOS without case sensitivity. The default value is lowercase.</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43219 r43219] </td><td>IDE</td><td>save package main source: ignore case, bug [http://bugs.freepascal.org/view.php?id=25173 25173]</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43351 r43351] </td><td>IDE</td><td>Fix the check for conflicting sequential (multi-stage) shortcuts. Issue [http://bugs.freepascal.org/view.php?id=25085 25085]</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43352 r43352] </td><td>IDE</td><td>Update popup menu item Enabled state correctly in Keymapping options. Sender is PopupMenu, not TreeView.</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=42825 r42825] </td><td>Installer, Win</td><td>allow "pre-release" in version name (inno setup)</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=42994 r42994],&#x200B;[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=42995 r42995],&#x200B;[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=42996 r42996]</td><td>LazReport</td><td>several template fixes including fix crash on loading template, issue [http://bugs.freepascal.org/view.php?id=14137 14137]</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43040 r43040] </td><td>LazReport</td><td>fix hyphenation helper mem leak</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43046 r43046] </td><td>LazReport</td><td>improve error message on missing classes, was about FRF format while in reality is about LRF format</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43047 r43047] </td><td>LazReport</td><td>fix error in dialogs when object is deleted and then a new one inserted, issue [http://bugs.freepascal.org/view.php?id=25097 25097]</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43063 r43063] </td><td>LazReport</td><td>restored accidentally removed translations</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43162 r43162] </td><td>LazReport</td><td>several fixes by Alexey Lagunov</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43271 r43271] </td><td>Lazreport</td><td>fix Report shape tool has black shadow, issue [http://bugs.freepascal.org/view.php?id=14127 14127]</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43272 r43272] </td><td>LazReport</td><td>some times objects that are hidden by others in upper layer show up because clipping region of moving object enable them, make sure they are visible or not</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43273 r43273] </td><td>LazReport</td><td>enable native print dialog in Mac OS X by default + option to disable it</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43341 r43341] </td><td>lazcontrols</td><td>fixed crash on freeing TFileNameItem</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43348 r43348] </td><td>LazUtf8</td><td>implement Utf8 versions of LeftStr and RightStr.</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=42845 r42845] </td><td>LCL</td><td>minor corrections of comments in clipbrd.pp (thanks to Mike Thompson), bug [http://bugs.freepascal.org/view.php?id=25033 25033]</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=42854 r42854] </td><td>LCL</td><td>added TPairSplitter.Constraints</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=42877 r42877] </td><td>LCL</td><td>TTreeView: check OverlayIndex upper bound</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=42912 r42912] </td><td>lcl</td><td>dbgrids: fixed memleak of KeyBookmark, patch from Luca Olivetti, bug [http://bugs.freepascal.org/view.php?id=24412 24412]</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=42923 r42923] </td><td>LCL</td><td>Gtk2, fix grid editing problem on ALT+TAB forward and back, issue [http://bugs.freepascal.org/view.php?id=22475 22475]</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=42924 r42924] </td><td>LCL</td><td>Gtk2, force redraw of GTKWinApiWidgets on focus changes so they can reflect focused/unfocused state (for grids in this case)</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=42936 r42936] </td><td>LCL</td><td>grids, handle the first key in keypress, fixes issue [http://bugs.freepascal.org/view.php?id=24893 24893]</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=42943 r42943] </td><td>LCL</td><td>fix grids focus where OnEnter occurs twice, issue [http://bugs.freepascal.org/view.php?id=25010 25010]</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=42948 r42948] </td><td>LCL</td><td>gtk2, check if widget is still valid (avoid a CRITICAL warning)</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=42954 r42954] </td><td>LCL</td><td>grids, modify editor bounds in case it's affected by modifying default Col width or Row height</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=42958 r42958] </td><td>LCL</td><td>fix ValueListEdit not showing key column at runtime, issue [http://bugs.freepascal.org/view.php?id=24780 24780]</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=42985 r42985],&#x200B;[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=42986 r42986],&#x200B;[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=42991 r42991]</td><td>LCL</td><td>grids, fixed selection by mouse if editor is visible and focused </td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=42992 r42992] </td><td>LCL</td><td>grids, allow the RETURN key to go to OnKeyPress</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=42993 r42993] </td><td>LCL</td><td>grids, implemented InsertRowWithValues from Everton Vieira, issue [http://bugs.freepascal.org/view.php?id=21176 21176]</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43052 r43052] </td><td>LCL</td><td>grids, reformat some code that SHIFT+CTRL+C keeps reminding is different</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43054 r43054] </td><td>lcl</td><td>grid: initialize var</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43061 r43061] </td><td>LCL, carbon</td><td>fix filterindex and add trigger some missing dialog events, fix issue [http://bugs.freepascal.org/view.php?id=25086 25086]</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43115 r43115] </td><td>LCL</td><td>implemented TListView.OwnerDraw + OnDrawItem. part of issue [http://bugs.freepascal.org/view.php?id=25149 25149]</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43222 r43222] </td><td>LCL</td><td>wslclclasses, increased VIRTUAL_VMT_COUNT const from 100 to 128, to be able to add more methods to ws classes.</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43244 r43244] </td><td>LCL</td><td>TCustomListView: implemented SelectAll & ClearSelection for delphi compatibility. issue [http://bugs.freepascal.org/view.php?id=19812 19812]</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43245 r43245] </td><td>LCL</td><td>TCustomListView: added TCustomListView.AddItem for delphi compatibility. issue [http://bugs.freepascal.org/view.php?id=25092 25092]</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43251 r43251] </td><td>LCL</td><td>Japanese translation by Yuichiro Takahashi, bug [http://bugs.freepascal.org/view.php?id=25123 25123]</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43269 r43269] </td><td>LCL, carbon</td><td>fix CombineRgn when op=diff and dst=src2, dst(src2) ended with a copy of src1 and result is src1 op src1</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43270 r43270] </td><td>LCL, carbon</td><td>implements CreateEllipticRgn</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=44051 r44051] </td><td>LCL</td><td>grids, do not trigger CellButton click if MouseDown is OutBounds, mdified patch from malcome, issue [http://bugs.freepascal.org/view.php?id=25127 25127]</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43350 r43350] </td><td>MaskEdit</td><td>avoid calling OnChange when setting initial values for Mask and Text. Issue [http://bugs.freepascal.org/view.php?id=0019029 0019029].</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=42950 r42950],&#x200B;[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=42951 r42951],&#x200B;[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=42952 r42952],&#x200B;[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=42953 r42953]</td><td>Object Inspector</td><td>show collections referenced multiple times only once, show TFieldDefs without owner</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=42832 r42832] </td><td>Propedits</td><td>remove a test version of TCoolBarControlPropertyEditor.CheckNewValue</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43024 r43024] </td><td>Printers</td><td>windows, do not open and setup printer if it's being destroyed, issue [http://bugs.freepascal.org/view.php?id=23026 23026]</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43140 r43140] </td><td>Printers, carbon</td><td>fix context origin (the origin should be the imageable area not the paper rect)</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43141 r43141] </td><td>Printers, Carbon</td><td>support for printing at higher resolution, issue [http://bugs.freepascal.org/view.php?id=23339 23339]</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43164 r43164] </td><td>Printers</td><td>cups, fix PrintDialog does not set Copies and Colate properties, from Petr-K, issue [http://bugs.freepascal.org/view.php?id=24959 24959]</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=42905 r42905] </td><td>Qt</td><td>TQtComboBox fix for call IntfGetItems when we are non-editable combobox.</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=42906 r42906] </td><td>Qt</td><td>call OnDropDown imediatelly after IntfGetItems, so our events are in expected order and there's no disturbing of QListWidget while showing.issue [http://bugs.freepascal.org/view.php?id=25032 25032]</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=42940 r42940] </td><td>Qt</td><td>fixed TQtCheckListBox double click event duplication.issue [http://bugs.freepascal.org/view.php?id=25089 25089]</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=42941 r42941] </td><td>Qt</td><td>change current row of TQtCheckListBox for Qt >= 4.8 since it does not change ItemIndex when checkbox is clicked.</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43041 r43041] </td><td>Qt</td><td>updated Qt bindings to version 2.5</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43043 r43043] </td><td>Qt</td><td>fixed application closing when session manager is used. issue [http://bugs.freepascal.org/view.php?id=18910 18910]</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43053 r43053] </td><td>Qt</td><td>fixed compilation with fpc 2.7.1. issue [http://bugs.freepascal.org/view.php?id=25125 25125]</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43062 r43062] </td><td>Qt</td><td>fix conditional switches. issue [http://bugs.freepascal.org/view.php?id=25139 25139]</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43116 r43116] </td><td>Qt</td><td>implemented TListView.OwnerDraw + OnDrawItem. part of issue [http://bugs.freepascal.org/view.php?id=25149 25149]</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43135 r43135] </td><td>Qt</td><td>implemented TCustomListView OnCustomDraw, OnCustomDrawItem, OnCustomDrawSubItem. part of issue [http://bugs.freepascal.org/view.php?id=7059 7059]</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43146 r43146] </td><td>Qt</td><td>improved qt themes. Added tab drawing.</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43149 r43149] </td><td>Qt</td><td>improved qt themes text drawer.</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43150 r43150] </td><td>Qt</td><td>implemented teProgress in qt themes.</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43152 r43152] </td><td>Qt</td><td>partially implemented teListView in qt themes.</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43154 r43154] </td><td>Qt</td><td>implemented teSpin in qt themes.</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43158 r43158] </td><td>Qt</td><td>TQtListWidget, TQtTreeWidget.itemDelegatePaint() draw background of item by default.related to issue [http://bugs.freepascal.org/view.php?id=24941 24941]</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43166 r43166] </td><td>Qt</td><td>fixed TQtCheckListBox triggering OnItemClick when TCheckListBox.Style <> lbStandard.</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43167 r43167] </td><td>Qt</td><td>improved QtThemes.GetDetailSize by returning sizes of checkbox and radiobutton.</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43168 r43168] </td><td>Qt</td><td>improved teTreeView theme drawer, trigger IntfDoOnThemeChange when theme is changed.</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43169 r43169] </td><td>Qt</td><td>fixed TQtListWidget behaviour when it's owner drawn and checkable = true.</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43170 r43170] </td><td>Qt</td><td>fixed checked item state and custom painting cdsChecked when TQtTreeWidget is ownerdrawn (assigned OnCustomDrawXXX).</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43171 r43171] </td><td>Qt</td><td>TQtTreeWidget: added odChecked to drawstate when OnDrawItem is assigned and we are checkable listview.</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43172 r43172] </td><td>Qt</td><td>fixed wrong DrawState param for TQtListWidget when OnDrawItem is assigned (ownerdraw).</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43173 r43173] </td><td>Qt</td><td>fixed behaviour of checkable items when key space is pressed in TQtAbstractItemView.OwnerDraw mode.</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43175 r43175] </td><td>Qt</td><td>fixed drawer for themed TGroupBox.</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43180 r43180] </td><td>Qt</td><td>fixed regression in owner drawn combobox from rev.43135. issue [http://bugs.freepascal.org/view.php?id=25172 25172]</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43218 r43218] </td><td>Qt</td><td>implemented scrollbars on forms (scrollable forms).Currently it works only if QTSCROLLABLEFORMS define is enabled in qtdefines.inc. issue [http://bugs.freepascal.org/view.php?id=24715 24715]</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43234 r43234] </td><td>Qt</td><td>fixed crash when QTSCROLLABLEFORMS are enabled and reparenting form with mouse (eg undock).part of issue [http://bugs.freepascal.org/view.php?id=24715 24715]</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43236 r43236] </td><td>Qt</td><td>fixed problem with clientrect sizes when QTSCROLLABLEFORMS are enabled.part of issue [http://bugs.freepascal.org/view.php?id=24715 24715]</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43238 r43238] </td><td>Qt</td><td>fixed QPainter assertion when QTSCROLLABLEFORMS is enabled.Completely fixes issue [http://bugs.freepascal.org/view.php?id=24715 24715]</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43241 r43241] </td><td>Qt</td><td>invalidate clientrect cache when viewport of scrollable form is resized.QTSCROLLABLEFORMS part.</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43242 r43242] </td><td>Qt</td><td>do not loop with LCL when designing TPageControl, keep LCL sizes when InUpdate.</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43243 r43243] </td><td>Qt</td><td>do not invalidate client rect cache in scrollable form viewport if we are embedded form (eg. docked).</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43274 r43274] </td><td>Qt</td><td>fixed sizing of autosized forms by ignoring sizepolicy for centralwidget when QTSCROLLABLEFORMS is enabled.</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43308 r43308] </td><td>Qt</td><td>added note about spotted bug in Qt-4.8.5 lib when using raster graphicssystem.</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43315 r43315] </td><td>Qt</td><td>workaround for Qt raster engine bug when rectangle is drawn and pen is cosmetic. issue [http://bugs.freepascal.org/view.php?id=25227 25227]</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43333 r43333] </td><td>Qt</td><td>implemented SWP_SHOWWINDOW and SWP_HIDEWINDOW in TQtWidgetSet.SetWindowPos.</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=42838 r42838] </td><td>rpm</td><td>fixed handling versions with minus</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43160 r43160] </td><td>SourceEdit</td><td>Set ifdef (on tab change) after dec-paintlock)</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=42840 r42840] </td><td></td><td>Spelling </td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43188 r43188] </td><td>sqldb</td><td>TSQLDBLibraryLoader, TPQEventMonitor, TFBEventMonitor and TFBAdmin were backported to FPC 2.6.3</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43194 r43194] </td><td>sqldb</td><td>enabled TSQLDBLibraryLoader, TPQEventMonitor, TFBEventMonitor and TFBAdmin for FPC 2.6.3 too in order to allow to test them before FPC 2.6.4 is released (FPC 2.6.3 built in February is OK)</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43263 r43263] </td><td>sqldb</td><td>TSQLDBLibraryLoader, TPQEventMonitor, TFBEventMonitor and TFBAdmin are actually available in FPC 2.6.2, bug [http://bugs.freepascal.org/view.php?id=25200 25200]</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43307 r43307] </td><td>SrcEdit</td><td>workaround for Mac QueueAsync bug</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=42898 r42898] </td><td>SynEdit</td><td>IfDef Markup, fix issue with not displaying nested disabled blocks sometimes</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=42987 r42987] </td><td>SynEdit</td><td>Spelling</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43009 r43009] </td><td>SynEdit</td><td>Allow to set ssoMatchCase for TSynEditMarkupHighlightAllCaret. Issue [http://bugs.freepascal.org/view.php?id=0025108 0025108] Patch by Denis Golovan</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43064 r43064] </td><td>SynEdit</td><td>Ifdef highlight, more verbose assert.</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43159 r43159] </td><td>SynEdit</td><td>Avoid highlighter scanning twice, due to trailing space changes</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43165 r43165] </td><td>SynEdit</td><td>Fixed uninitialized value in block-selection</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43332 r43332] </td><td>SynEdit</td><td>IFDEF lowlight, fix wrong index, and fix using same nested comment setting as HL / Issue [http://bugs.freepascal.org/view.php?id=0025244 0025244]</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43342 r43342] </td><td>SynEdit</td><td>Pas HighLighter, recognize new &keyword for identifier style</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43077 r43077] </td><td>Translations</td><td>Brazilian Portuguese translation update by Marcelo B Paula, bug [http://bugs.freepascal.org/view.php?id=25134 25134]</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43163 r43163] </td><td>TRadiouGroup</td><td>do not reset FItemIndex in UpdateIyems whilst loading. Issue [http://bugs.freepascal.org/view.php?id=0025158 0025158].</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43223 r43223] </td><td>TRadioGroup</td><td>fix resetting ItemIndex to -1 when calling Items.Assign (regression introduced by me in r42772).</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43344 r43344] </td><td>TreeFilterEdit</td><td>Improve TTreeFilterBranch.RemoveChildrenData logic.</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43109 r43109] </td><td>ValEdit</td><td>Fix crash in InsertRow if Strings.Count = 0. Issue [http://bugs.freepascal.org/view.php?id=0025144 0025144]</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43110 r43110] </td><td>ValEdit</td><td>implement an adapted version of InsertRowWithValues</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43118 r43118] </td><td>ValEdit</td><td>refactor the logic behind wether or not to hide the editor when manipulating the Strings property.</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43119 r43119] </td><td>ValEdit</td><td>fix possible error in InsertRowWithValues due to uninitialized NameValueSeparator.</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43177 r43177] </td><td>ValEdit</td><td>fix crash on GetCells when empty rows are auto-added.</td></tr><br />
<tr valign="top"><td>[http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&root=lazarus&revision=43157 r43157] </td><td>Win32</td><td>implemented TListView.OwnerDraw and TListView.OnDrawItem. issue [http://bugs.freepascal.org/view.php?id=25149 25149]</td></tr><br />
</table><br />
<br />
==== binaries ====<br />
*r43042 Qt: updated Qt4Pas5.dll to version 2.5. IMPORTANT !<br />
<br />
== Roadmap to 1.2 ==<br />
<br />
The release process will consist of the following steps.<br />
<br />
* Creation of the SVN 1.2 fixes branch (Done 15 Sept 2013)<br />
<br />
* Publication of Lazarus 1.1.99 pre-release (Done 18 Sept 2013)<br />
<br />
This will be an early alpha of the upcoming 1.2. It will be available to anyone who wants to help testing. Testers should treat this release with similar caution as the daily snapshots.<br />
The testing period is scheduled to last 6 to 8 weeks.<br />
<br />
* Release of 1.2 RC 1 (Done 6 November 2013)<br />
<br />
This will be the first Release Candidate. We would like to urge all users to test this version.<br />
The testing period is scheduled to last 6 to 8 weeks.<br />
<br />
* Release of 1.2 RC 2 (Mid/End December 2013 / Early 2014)<br />
<br />
The testing period is scheduled to last 6 to 8 weeks.<br />
<br />
* Maybe 1.2 RC 3<br />
<br />
An RC 3 may be scheduled, if necessary.<br />
<br />
* Release of Lazarus 1.2 (between Feb and Apr 2014)<br />
<br />
<br />
=== Tests ===<br />
<br />
*Menu item exists<br />
*Clear pcp directory and start IDE, a new project application with a form should be visible<br />
*Double click on form - a FormCreate event should be created<br />
*Check View / IDE internals / What needs building - no package should need building, only the project<br />
*Restart the IDE - there should be no warning about upgrading<br />
*Install the package cody, after restart the component palette should show the component TCodyTreeView<br />
<br />
=== Tagging release ===<br />
* Set version to 1.2 in fixes_1_2 branch<br />
** open lazarus/lazarus.lpi in the IDE and change the version numbers in the project options dialog 1.2.0.1 for RC1, 1.2.0.2 for RC2, 1.2.0.3 for final<br />
** lazarus/ide/version.inc 1.2RC1 for RC1, no spaces!<br />
** lazarus/lcl/lclversion.pas 1.2.0.1 for RC1, 1.2.0.2 for RC2, 1.2.0.3 for final<br />
** lclbase.lpk<br />
** lcl.lpk<br />
** lazarus/debian/changelog 1.2.0-1 for RC1, 1.2.0-2 for RC2, 1.2.0-3 for final<br />
** lazarus/lazarus.app/Contents/Info.plist v1.2 RC1<br />
** tools/install/linux/environmentoptions.xml same as version.inc<br />
** tools/install/win/environmentoptions.xml same as version.inc<br />
** tools/install/macos/environmentoptions.xml same as version.inc<br />
** check if lpl files needs updating by running ./tools/lplupdate -c<br />
** run ./tools/updatemakefiles<br />
* Tag fixes_1_2 branch to tags/release_1_2_RC1<br />
svn copy svn+ssh://svn.freepascal.org/FPC/svn/lazarus/branches/fixes_1_2 svn+ssh://svn.freepascal.org/FPC/svn/lazarus/tags/lazarus_1_2_RC1 -m 'tagged 1.2RC1 as tags/lazarus_1_2_RC1'<br />
* Set version to 1.2 in trunk<br />
<br />
== How to merge ==<br />
<br />
See [[Lazarus_1.0_fixes_branch#How_to_merge]]<br />
<br />
[[Category:Lazarus]]<br />
[[Category:Branches]]</div>
Paul Ishenin
https://wiki.freepascal.org/index.php?title=Lazarus_1.4.0_release_notes&diff=73595
Lazarus 1.4.0 release notes
2013-10-20T04:35:46Z
<p>Paul Ishenin: /* IDE Changes */</p>
<hr />
<div>{{Lazarus 1.4.0 release notes}}<br />
<br />
'''Lazarus 1.4.0 is not yet released. This page is under construction!'''<br />
<br />
Statistics:<br />
# commits: xxx<br />
# log: svn log -r xxxx:xxxx<br />
# resolved bug tracker issues: xxx<br />
<br />
= LCL Interfaces Changes =<br />
<br />
= LCL Changes =<br />
<br />
* Added methods and utilities to load objects from FPC resources: TGraphic.LoadFromResourceName(), TPictire.LoadFromResourceName(), TCustomImageList.AddResourceName(), LoadGlyphFromResourceName().<br />
* Changed all LCL resources from LRS to RES. As result they can be edited in executables using resource editors on Windows platform.<br />
<br />
= IDE Changes =<br />
<br />
* '''Resources'''<br />
** All IDE resources are stored in RES files now.<br />
** Component images can be loaded from resources stored in RES files now.<br />
** LazRes and LrsToLfm had been improved to assist in resource migration process.<br />
** Project options has a 'Resource' section which allows to add any user resources which are stored in the project .RES file together with project icon, manifest and version infomation.<br />
** Project version information was extended to allow save build-related attribute information.<br />
<br />
* '''Debugger'''<br />
** Attach: List available processes (windows/linux/mac only)<br />
<br />
= Components =<br />
<br />
= Changes affecting compatibility =<br />
<br />
==LCL incompatibilities==<br />
<br />
==IDE incompatibilities==<br />
<br />
= Previous release notes =<br />
<br />
*[[Lazarus 1.2.0 release notes]]<br />
*[[Lazarus 1.0 release notes]]<br />
*[[Lazarus 0.9.30 release notes]]<br />
*[[Lazarus 0.9.28.2 release notes]]<br />
*[[Lazarus 0.9.28 release notes]]<br />
*[[Lazarus 0.9.26 release notes]]<br />
*[[Lazarus 0.9.24 release notes]]<br />
<br />
[[Category:Release Notes]]<br />
[[Category:Lazarus]]</div>
Paul Ishenin
https://wiki.freepascal.org/index.php?title=Lazarus_1.4.0_release_notes&diff=73594
Lazarus 1.4.0 release notes
2013-10-20T04:28:19Z
<p>Paul Ishenin: /* LCL Changes */</p>
<hr />
<div>{{Lazarus 1.4.0 release notes}}<br />
<br />
'''Lazarus 1.4.0 is not yet released. This page is under construction!'''<br />
<br />
Statistics:<br />
# commits: xxx<br />
# log: svn log -r xxxx:xxxx<br />
# resolved bug tracker issues: xxx<br />
<br />
= LCL Interfaces Changes =<br />
<br />
= LCL Changes =<br />
<br />
* Added methods and utilities to load objects from FPC resources: TGraphic.LoadFromResourceName(), TPictire.LoadFromResourceName(), TCustomImageList.AddResourceName(), LoadGlyphFromResourceName().<br />
* Changed all LCL resources from LRS to RES. As result they can be edited in executables using resource editors on Windows platform.<br />
<br />
= IDE Changes =<br />
<br />
* '''Debugger'''<br />
** Attach: List available processes (windows/linux/mac only)<br />
<br />
= Components =<br />
<br />
= Changes affecting compatibility =<br />
<br />
==LCL incompatibilities==<br />
<br />
==IDE incompatibilities==<br />
<br />
= Previous release notes =<br />
<br />
*[[Lazarus 1.2.0 release notes]]<br />
*[[Lazarus 1.0 release notes]]<br />
*[[Lazarus 0.9.30 release notes]]<br />
*[[Lazarus 0.9.28.2 release notes]]<br />
*[[Lazarus 0.9.28 release notes]]<br />
*[[Lazarus 0.9.26 release notes]]<br />
*[[Lazarus 0.9.24 release notes]]<br />
<br />
[[Category:Release Notes]]<br />
[[Category:Lazarus]]</div>
Paul Ishenin
https://wiki.freepascal.org/index.php?title=Lazarus_1.4.0_release_notes&diff=73593
Lazarus 1.4.0 release notes
2013-10-20T04:17:23Z
<p>Paul Ishenin: /* IDE Changes */</p>
<hr />
<div>{{Lazarus 1.4.0 release notes}}<br />
<br />
'''Lazarus 1.4.0 is not yet released. This page is under construction!'''<br />
<br />
Statistics:<br />
# commits: xxx<br />
# log: svn log -r xxxx:xxxx<br />
# resolved bug tracker issues: xxx<br />
<br />
= LCL Interfaces Changes =<br />
<br />
= LCL Changes =<br />
<br />
= IDE Changes =<br />
<br />
* '''Debugger'''<br />
** Attach: List available processes (windows/linux/mac only)<br />
<br />
= Components =<br />
<br />
= Changes affecting compatibility =<br />
<br />
==LCL incompatibilities==<br />
<br />
==IDE incompatibilities==<br />
<br />
= Previous release notes =<br />
<br />
*[[Lazarus 1.2.0 release notes]]<br />
*[[Lazarus 1.0 release notes]]<br />
*[[Lazarus 0.9.30 release notes]]<br />
*[[Lazarus 0.9.28.2 release notes]]<br />
*[[Lazarus 0.9.28 release notes]]<br />
*[[Lazarus 0.9.26 release notes]]<br />
*[[Lazarus 0.9.24 release notes]]<br />
<br />
[[Category:Release Notes]]<br />
[[Category:Lazarus]]</div>
Paul Ishenin
https://wiki.freepascal.org/index.php?title=Lazarus_1.2_fixes_branch&diff=72473
Lazarus 1.2 fixes branch
2013-09-18T07:59:51Z
<p>Paul Ishenin: /* Submitted by developer / committer */</p>
<hr />
<div>This page contains the revisions to be merged from trunk to the [http://svn.freepascal.org/svn/lazarus/branches/fixes_1_2/ Lazarus 1.2 fixes] branch.<br><br />
Release notes can be found here [http://wiki.lazarus.freepascal.org/Lazarus_1.2.0_release_notes Release notes]<br />
<br />
== Fixes for 1.2 RC1 ==<br />
=== Merge requests ===<br />
<br />
==== Submitted by developer / committer ====<br />
<br />
*r42843 codetools: syntax error if parameter type is missing<br />
*r42844 codetools: fixed parsing var type deprecated bracket close<br />
*r42845 LCL: minor corrections of comments in clipbrd.pp (thanks to Mike Thompson), bug 25033<br />
*r42846 codetools: fix parsing of "specialize SomeGeneric<TypeParams>" as function/operator result (this fixes error with parsing of new objpas generics)<br />
*r42850, r42851: carbon: fix linear gradient drawing<br />
<br />
==== Submitted by others ====<br />
<br />
=== Merged revisions for 1.2 RC1 ===<br />
<br />
*r42825 Installer, Win: allow "pre-release" in version name (inno setup)<br />
*r42835 IDE: mode matrix: fixed showing targets<br />
*r42838 rpm: fixed handling versions with minus<br />
*r42842 dmg: versions with letters and minus<br />
<br />
== Roadmap to 1.2 ==<br />
<br />
The release process will consist of the following steps.<br />
<br />
* Creation of the SVN 1.2 fixes branch (Done 15 Sept 2013)<br />
<br />
* Publication of Lazarus 1.1.99 pre-release (Done 18 Sept 2013)<br />
<br />
This will be an early alpha of the upcoming 1.2. It will be available to anyone who wants to help testing. Testers should treat this release with similar caution as the daily snapshots.<br />
The testing period is scheduled to last 6 to 8 weeks.<br />
<br />
* Release of 1.2 RC 1 (Early/Mid November 2013)<br />
<br />
This will be the first Release Candidate. We would like to urge all <br />
suers to test this version.<br />
The testing period is scheduled to last 6 to 8 weeks.<br />
<br />
* Release of 1.2 RC 2 (Mid/End December 2013 / Early 2014)<br />
<br />
The testing period is scheduled to last 6 to 8 weeks.<br />
<br />
* Maybe 1.2 RC 3<br />
<br />
An RC 3 may be scheduled, if necessary.<br />
<br />
* Release of Lazarus 1.2 (between Feb and Apr 2014)<br />
<br />
== How to merge ==<br />
<br />
See [[Lazarus_1.0_fixes_branch#How_to_merge]]</div>
Paul Ishenin
https://wiki.freepascal.org/index.php?title=Lazarus_1.2_fixes_branch&diff=72471
Lazarus 1.2 fixes branch
2013-09-18T02:40:55Z
<p>Paul Ishenin: /* Merge requests */</p>
<hr />
<div>This page contains the revisions to be merged from trunk to the [http://svn.freepascal.org/svn/lazarus/branches/fixes_1_2/ Lazarus 1.2 fixes] branch.<br><br />
Release notes can be found here [http://wiki.lazarus.freepascal.org/Lazarus_1.2.0_release_notes Release notes]<br />
<br />
== Fixes for 1.2 RC1 ==<br />
=== Merge requests ===<br />
<br />
==== Submitted by developer / committer ====<br />
<br />
*r42843 codetools: syntax error if parameter type is missing<br />
*r42844 codetools: fixed parsing var type deprecated bracket close<br />
*r42845 LCL: minor corrections of comments in clipbrd.pp (thanks to Mike Thompson), bug 25033<br />
*r42846 codetools: fix parsing of "specialize SomeGeneric<TypeParams>" as function/operator result (this fixes error with parsing of new objpas generics)<br />
<br />
==== Submitted by others ====<br />
<br />
=== Merged revisions for 1.2 RC1 ===<br />
<br />
*r42825 Installer, Win: allow "pre-release" in version name (inno setup)<br />
*r42835 IDE: mode matrix: fixed showing targets<br />
*r42838 rpm: fixed handling versions with minus<br />
*r42842 dmg: versions with letters and minus<br />
<br />
== Roadmap to 1.2 ==<br />
<br />
The release process will consist of the following steps.<br />
<br />
* Creation of the SVN 1.2 fixes branch (Done 15 Sept 2013)<br />
<br />
* Publication of Lazarus 1.1.99 pre-release (Done)<br />
<br />
This will be an early alpha of the upcoming 1.2. It will be available to anyone who wants to help testing. Testers should treat this release with similar caution as the daily snapshots.<br />
The testing period is scheduled to last 6 to 8 weeks.<br />
<br />
* Release of 1.2 RC 1 (Early/Mid November 2013)<br />
<br />
This will be the first Release Candidate. We would like to urge all <br />
suers to test this version.<br />
The testing period is scheduled to last 6 to 8 weeks.<br />
<br />
* Release of 1.2 RC 2 (Mid/End December 2013 / Early 2014)<br />
<br />
The testing period is scheduled to last 6 to 8 weeks.<br />
<br />
* Maybe 1.2 RC 3<br />
<br />
An RC 3 may be scheduled, if necessary.<br />
<br />
* Release of Lazarus 1.2 (between Feb and Apr 2014)<br />
<br />
== How to merge ==<br />
<br />
See [[Lazarus_1.0_fixes_branch#How_to_merge]]</div>
Paul Ishenin
https://wiki.freepascal.org/index.php?title=User_Changes_Trunk&diff=72445
User Changes Trunk
2013-09-16T09:18:59Z
<p>Paul Ishenin: /* Language Changes */</p>
<hr />
<div>== About this page==<br />
<br />
Listed below are intentional changes made to the FPC compiler (trunk) since the [[User_Changes_2.6.2|previous release]] that may break existing code. The list includes reasons why these changes have been implemented, and suggestions for how you might adapt your code if you find that previously working code has been adversely affected by these recent changes. <br />
<br />
The list of new features that do not break existing code can be found [[FPC_New_Features_Trunk|here]].<br />
<br />
== All systems ==<br />
<br />
=== Implementation changes ===<br />
<br />
==== Exception type for object reference checking changed ====<br />
* '''Old behaviour''': When object reference checking (''-CR'' or ''{$OBJECTCHECKS ON}'') is enabled and the unit ''SysUtils'' is used then an exception of class ''Exception'' with localizeable message ''Unknown runtime error 210'' is created.<br />
* '''New behaviour''': Now an exception of class ''EObjectCheck'' with localizeable message ''Object reference is Nil'' is created.<br />
* '''Reason''': All other runtime errors in the 2xx range have appropriate exception types, so it is only natural to have an explicit type for runtime error 210 as well.<br />
* '''Remedy''': If your code previously checked an exception for the message ''Unknown runtime error 210'' you should now check for the exception class ''EObjectCheck''.<br />
<br />
==== Literal storage memory has been made read-only ====<br />
<br />
* '''Old behaviour''': read-only data segments were ''de facto'' not supported, and all data could be modified at runtime even if it was not intended for modification (except in some cases on Darwin). This could cause nasty side-effects, e.g the following code:<br />
<br />
<syntaxhighlight><br />
uses sysutils;<br />
var<br />
s: ansistring;<br />
begin<br />
s := 'ansi string';<br />
Writeln(AnsiStrUpper(pchar(s)));<br />
s := 'ansi string';<br />
Writeln(s);<br />
end.<br />
</syntaxhighlight><br />
<br />
would modify the contents of data segment and print<br />
<br />
ANSI STRING<br />
ANSI STRING<br />
<br />
* '''New behaviour''': Data that is not intended to be modified at runtime is put into a read-only segment. This includes literal constants used in expressions and typed constants declared in {$J-} state. Any code which modifies such data (as in the above example) will now crash.<br />
* '''Reason''': This is consistent with the way other compilers (including Delphi) work. Keeping data read-only as much as possible improves a program's loading speed because read-only pages can be mapped directly to the executable file. This also improves program security.<br />
* '''Remedy''': is very code-dependent. In the example above, it is sufficient to call <tt>UniqueString(s)</tt> before <tt>AnsiStrUpper</tt><br />
<br />
==== ''UNICODE'' is defined depending on the mode switch ====<br />
* '''Old behaviour''': When the modeswitch was changed the definition of ''UNICODE'' was not changed.<br />
* '''New behaviour''': If the modeswitch is changed to ''delphiunicode'' the ''UNICODE'' will be defined otherwise it will be undefined.<br />
* '''Reason''': In Delphi 2009 and newer the type String is defined as UnicodeString and ''UNICODE'' is defined there by default as well. For improved Delphi compatibility ''UNICODE'' will be automatically defined if the String type is set to be equal to UnicodeString.<br />
* '''Remedy''': Don't rely on checks for ''UNICODE'' before the mode switches. Also compile time checks for ''UNICODE'' that appear after a modeswitch like ''objfpc'' or ''delphi'' will no longer be evaluated to true.<br />
<br />
=== RTTI changes ===<br />
<br />
==== RTTI for Pointers and Class References ====<br />
* '''Old behavior''': Pointers and Class References had tkUnknown RTTI.<br />
* '''New behavior''': Pointers now have RTTI type tkPointer, and class references have the RTTI type tkClassRef. Each now contains a reference to a type they point to.<br />
* '''Reason''': Both user requests and Delphi compatibility.<br />
* '''Remedy''': The TTypeKind enumeration has more members than before. Adjust any code which uses TTypeKind accordingly.<br />
<br />
==== RTTI for AnsiStrings ====<br />
* '''Old behavior''': AnsiString RTTI previously lacked CodePage information.<br />
* '''New behavior''': A new CodePage member has been added for the tkAString type.<br />
* '''Reason''': This is required for serializing/deserializing of published AnsiString properties, and is now compatible with Delphi.<br />
* '''Remedy''': not known<br />
<br />
==== RTTI for Arrays ====<br />
* '''Old behavior''': tkArray had no member in the TTypeData record, although internally the compiler stored these members: first dimension size, first dimension element count and first dimension element type. So for a 2 dimension array element the type was array for the second dimension.<br />
* '''New behavior''': tkArray now has a TArrayTypeData structure in TTypeData. It has the following members: total array size including all dimensions, total element count, last dimension element type, number of dimensions, type information for each dimension range.<br />
* '''Reason''': This provides more comprehensive RTTI, and is compatible with Delphi.<br />
* '''Remedy''': If your code internally used the older RTTI array information you will need to adapt it to take account of the newly provided TArrayTypeData information.<br />
<br />
==== RTTI for Records ====<br />
* '''Old behavior''': Records RTTI stored field Offsets as 32bit integers.<br />
* '''New behavior''': Records RTTI stores field Offsets as platform-dependent integers (the same size as pointers).<br />
* '''Reason''': Internally the compiler stores Offsets as platform-dependent integers. The new behaviour is Delphi-compatibile.<br />
* '''Remedy''': You need to adjust your code if you used field offsets of record RTTI. This is also true if your code processes any vInitTable field within the VMT of a class.<br />
<br />
==== RTTI for Procedural Variables ====<br />
* '''Old behavior''': tkProcVar lacked any member in the TTypeData record and the compiler stored no information about procedural variables.<br />
* '''New behavior''': tkProcVar now has a new TProcedureSignature structure in TTypeData which contains information about the procedure's calling convention, result type and parameters (where applicable).<br />
* '''Reason''': User request. More informative RTTI. Delphi compatibility.<br />
* '''Remedy''': not known<br />
<br />
==== Use example ====<br />
<syntaxhighlight><br />
program RTTIInfo;<br />
<br />
{$mode objfpc}{$H+}<br />
uses<br />
typinfo;<br />
<br />
type<br />
CP866String = type AnsiString(866);<br />
TProc = procedure(var A: Integer; S: String); stdcall;<br />
TColor = (red, green, blue);<br />
TArr = array[TColor,0..3] of Integer;<br />
PArr = ^TArr;<br />
<br />
procedure DescribeProcedure(Info: PTypeInfo);<br />
const<br />
ParamFlagToStr: array[TParamFlag] of AnsiString = (<br />
'var',<br />
'const',<br />
'array',<br />
'address',<br />
'reference',<br />
'out'<br />
);<br />
CallConvToStr: array[TCallConv] of AnsiString = (<br />
'register',<br />
'cdecl',<br />
'pascal',<br />
'stdcall',<br />
'safecall',<br />
'cppdecl',<br />
'far16',<br />
'oldFPCcall',<br />
'internProc',<br />
'SysCall',<br />
'SoftFloat',<br />
'MWPascal'<br />
);<br />
var<br />
Data: PTypeData;<br />
Param: PProcedureParam;<br />
ParamFlag: TParamFlag;<br />
I: Integer;<br />
Res, S, TypeName: String;<br />
begin<br />
if Info^.Kind <> tkProcedure then<br />
Exit;<br />
Data := GetTypeData(Info);<br />
if Data^.ProcSig.CC <> ccStdCall then<br />
halt(2);<br />
if Data^.ProcSig.ResultType <> nil then<br />
begin<br />
Res := 'function ' + Info^.Name;<br />
TypeName := ': ' + Data^.ProcSig.ResultType^.Name;<br />
end<br />
else<br />
begin<br />
Res := 'procedure ' + Info^.Name;<br />
TypeName := '';<br />
end;<br />
if Data^.ProcSig.ParamCount > 0 then<br />
begin<br />
Res := Res + '(';<br />
for I := 0 to Data^.ProcSig.ParamCount - 1 do<br />
begin<br />
Param := Data^.ProcSig.GetParam(I);<br />
S := '';<br />
for ParamFlag in TParamFlags(Param^.Flags) do<br />
S := S + ParamFlagToStr[ParamFlag] + ' ';<br />
S := S + Param^.Name + ': ' + Param^.ParamType^.Name;<br />
if I > 0 then<br />
Res := Res + '; ';<br />
Res := Res + S;<br />
end;<br />
Res := Res + ')';<br />
end;<br />
Res := Res + TypeName + '; ' + CallConvToStr[Data^.ProcSig.CC] + ';';<br />
WriteLn(Res);<br />
end;<br />
<br />
procedure DescribeAnsiString(Info: PTypeInfo);<br />
var<br />
Data: PTypeData;<br />
begin<br />
if Info^.Kind <> tkAString then<br />
Exit;<br />
Data := GetTypeData(Info);<br />
if Data^.CodePage = 0 then<br />
WriteLn('AnsiString')<br />
else<br />
WriteLn('type AnsiString(',Data^.CodePage,');');<br />
end;<br />
<br />
procedure DescribeArray(Info: PTypeInfo);<br />
var<br />
Data: PTypeData;<br />
Res: String;<br />
I: Integer;<br />
begin<br />
if Info^.Kind <> tkArray then<br />
Exit;<br />
Data := GetTypeData(Info);<br />
Res := 'array[';<br />
for I := 0 to Data^.ArrayData.DimCount - 1 do<br />
begin<br />
if I > 0 then<br />
Res := Res + ', ';<br />
Res := Res + Data^.ArrayData.Dims[I]^.Name;<br />
end;<br />
Res := Res + '] of ' + Data^.ArrayData.ElType^.Name + ';';<br />
WriteLn(Res);<br />
end;<br />
<br />
procedure DescribePointer(Info: PTypeInfo);<br />
var<br />
Data: PTypeData;<br />
begin<br />
if Info^.Kind <> tkPointer then<br />
Exit;<br />
Data := GetTypeData(Info);<br />
if Data^.RefType = nil then<br />
WriteLn('Pointer;')<br />
else<br />
WriteLn('^', Data^.RefType^.Name, ';');<br />
end;<br />
<br />
begin<br />
DescribeProcedure(TypeInfo(TProc));<br />
DescribeAnsiString(TypeInfo(CP866String));<br />
DescribeArray(TypeInfo(TArr));<br />
DescribePointer(TypeInfo(PArr));<br />
DescribePointer(TypeInfo(Pointer));<br />
end.<br />
</syntaxhighlight><br />
<br />
=== Unit changes ===<br />
<br />
==== DB ====<br />
===== TBookmark TBookmarkstr and TDataset.Bookmark change to Delphi2009+ compatible definitions =====<br />
* '''Old behaviour''': TDataset.Bookmark was of type TBookmarkstr, TBookmarkstr=string, Tbookmark=pointer<br />
* '''New behaviour''': TDataset.Bookmark is of type TBookmark, TBookmarkstr=ansistring, TBookmark=TBytes. TBookmarkstr will trigger a deprecated warning.<br />
* '''Reason''': D2009+ compatibility, where probably the fact that string became a 2-byte encoding was the trigger.<br />
* '''Remedy''': Adjust typing in descendents and using code accordingly.<br />
<br />
===== TODBCConnection (odbcconn) No longer autocommit =====<br />
* '''Old behaviour''': Autocommit was enabled: Every change was committed to the database at once.<br />
* '''New behaviour''': Changes must be committed explicitly using Transaction.Commit<br />
* '''Reason''': Transactions are useless if everything is autocommitted: in particular; rollback is not possible.<br />
* '''Remedy''': You can enable autocommit by specifying AUTOCOMMIT=1 in the params of TODBCConnection.<br />
<br />
===== TDBF unit deprecation removed =====<br />
* '''Old behaviour''': the TDBF units were marked deprecated because the original maintainer of the upstream project stopped maintenance. However, the unit remained in fcl-db and patches were still accepted.<br />
* '''New behaviour''': the deprecation warning is removed. There is a new upstream project maintainer and FPC database devs support this unit again.<br />
* '''Remedy''': N/A<br />
<br />
===== TBufDataset.SaveToFile, SaveToStream: Binary Format (dfBinary) of saved data changes =====<br />
* '''Old behaviour''': Record data was saved to stream just as they exist in the TBufDataset memory record buffer.<br />
* '''New behaviour''': Record data are saved field by field. Each variable length field begins with a 4 byte length indicator followed by data. Fixed length fields are stored without prefixed length indicator. LoadFromFile, LoadFromStream support both formats (OLD and NEW).<br />
* '''Reason''': BLOBs were not saved correctly in the OLD format: instead of BLOB data, a pointer to memory where BLOB data resided was saved.<br />
* '''Remedy''': if you need the OLD behavior in saving, you must register your own DataPacketReader using RegisterDatapacketReader procedure.<br />
<br />
==== FileNameCaseSensitive and FileNameCasePreserving in unit System ====<br />
* '''Old behaviour''': There was only one constant (FileNameCaseSensitive) which signalized behaviour of the respective target platform with regard to the case in filenames. This was often set to true also on platforms not really treating filenames in case sensitive manner (e.g. Win32 and Win64).<br />
* '''New behaviour''': FileNameCaseSensitive is set to true only on platforms which really treat filenames in case sensitive manner and FileNameCasePreserving constant is added to unit system of all platforms to signalize whether the case in filenames supplied when creating or renaming them is preserved or not. This might possibly break existing user code relying on the previous (sometimes incorrect) value of FileNameCaseSensitive.<br />
* '''Reason''': In reality, there are two distinct types of behaviour. If a platform is case sensitive, searching for file "a" will never result in finding file "A" whereas case insensitive platform will happily return "A" if such a file is found on the disk. If a platform is case preserving, it will store file "a" as "a" on disk whereas case non-preserving platform may convert the filenames to uppercase before storing them on disk (i.e. file "a" is in reality stored as "A"). Case non-preserving platforms are never case sensitive, but case preserving platforms may or may not be case sensitive at the same time.<br />
* '''Remedy''': Review your existing code using FileNameCaseSensitive, check which of the two properties described above fit the particular purpose in your case and change to FileNameCasePreserving where appropriate.<br />
<br />
==== Some longtime deprecated functions in unit Unix have been removed. ====<br />
* '''Old behaviour''': Unix.(f)statfs, Unix.shell and Unix.fsync symbols existed in unit Unix <br />
* '''New behaviour''': Unix.(f)statfs, Unix.shell and Unix.fsync were removed<br />
* '''Reason''': These were helper functions and leftovers from the 1.0.x->2.0.0 conversion, deprecated since 2007. Shell had non standarized conventions<br />
* '''Remedy''': All but shell: use the same functions with a "fp" prefix. Shell: use fpsystem. If you checked the return value for other values than -1, a modification of the errorchecking might be necessary. Refer to your *nix documention, or have a look at the transformfpsystemtoshell function in tests/util/redir.pp in the FPC sources to see what a quick fix looks like.<br />
<br />
==== statfs has been renamed to fpstatfs ====<br />
* '''Old behaviour''': One overload of fpstatfs was not renamed from statfs to fpstatfs (around 2.4.0)<br />
* '''New behaviour''': The function has been renamed.<br />
* '''Reason''': Should have been done in 2.4.0 to begin with, but was postponed several times to coincide with a major version change. <br />
* '''Remedy''': Use fpstatfs<br />
<br />
==== RTLeventsync has been removed ====<br />
* '''Old behaviour''': The thread manager record contained an ''rtleventsync'' field, and the RTL had an ''RTLeventsync'' routine. No functionality for this routine was implemented in the FPC-supplied thread manager for any platform.<br />
* '''New behaviour''': The field and routine have been removed.<br />
* '''Reason''': The functionality was not available on any platform by default, and we're not aware of any third party thread manager that implemented them or third party code that relied on it. Additionally, the routine was documented as "Obsolete. Don't use.", without any explanation of what it was supposed to do.<br />
* '''Remedy''': Remove any such calls from your code.<br />
<br />
==== FPCanvas Strikethough property spelling fixed to StrikeThrough ====<br />
* '''Old behaviour''': Fonts had a Striketrough property which is a typo.<br />
* '''New behaviour''': The property has been changed to Strikethrough.<br />
* '''Reason''': Spelling fix.<br />
* '''Remedy''': Please rename property calls in your code. FPC 2.6.2 contains both versions so there is a window for adaptation.<br />
<br />
==== TVersionInfo (fileinfo unit) re-implemented in a platform independent way ====<br />
* '''Old behaviour''': GetVersionSetting method would read file information.<br />
* '''New behaviour''': The ReadFileInfo call will read the information. The global GetProgramVersion call will extract the program major/minor/revision/build version in 1 single call.<br />
* '''Reason''': The unit now uses FPC resources on all platforms, and can now be used to read external resources.<br />
* '''Remedy''': Use the ReadFileInfo call to get the version information. Add relevant units for desired resource support to your uses clause; e.g. if you need to read Windows .exe file info, add winpeimagereader<br />
<br />
==== shlobj symbols removed from unit Windows ====<br />
* '''Old behaviour''': When unit windows was splitted between unit windows and shlobj, not all shlobj symbols were removed from Windows. Currently these are being deprecated, and will be removed in next major version.<br />
* '''New behaviour''': shlobj symbols won't be in Windows, code relying on that will fail to compile if it doesn't import shlobj<br />
* '''Reason''': shlobj and windows versions were not compatible and lead to errors. <br />
* '''Remedy''': put shlobj in your uses, if not there already.<br />
<br />
=== Language Changes ===<br />
<br />
==== Variant overload preference for string types ====<br />
* '''Old behaviour''': Preference for string types was (from better to worse): ShortString, AnsiString, WideString, UnicodeString<br />
* '''New behaviour''': Preference for string types now (from better to worse): WideString, UnicodeString, AnsiString, ShortString<br />
* '''Reason''': Unicode characters and codepage information will not lose during the conversion and unicode Delphi compatibility.<br />
* '''Remedy''': Use explicit conversion (e.g. ShortString(V)) if it is needed to pass variant to routine with paticular string type argument.<br />
<br />
==== Default values in implementation but not in interface/forward declaration ====<br />
* '''Old behaviour''': The implementation of a routine could declare default values even if the interface declaration did not have any.<br />
* '''New behaviour''': Default values, if any, must be specified in the interface. They can be repeated in the implementation, but that is not required (just like it was not in the past).<br />
* '''Reason''': Default parameters specified only in the implementation are not, and cannot, be propagated to the interface since a unit's interface can be used before the implementation has been parsed (see http://bugs.freepascal.org/view.php?id=19434), Delphi compatibility.<br />
* '''Remedy''': Always specify default parameter values (also) in the interface/forward declaration of a routine.<br />
<br />
==== Default values are now properly typechecked ====<br />
* '''Old behaviour''': The compiler did not detect default values for parameters of which the type did not in any way correspond to the parameter type. <br />
* '''New behaviour''': The compiler now properly checks whether the type of the constant matches the parameter's type when parsing default values.<br />
* '''Reason''': Proper type checking is one of the fundamental properties of the Pascal language; Delphi compatibility.<br />
* '''Remedy''': Add a typecast around default values that now result in compiler errors, or correct the type of such parameters.<br />
<br />
==== Recursive parameterless function calls in MacPas mode ====<br />
* '''Old behaviour''': When using the name of a function inside its own body on the right hand side of an expression, the compiler treated this as a read of the last value assigned to the function result in MacPas mode.<br />
* '''New behaviour''': The compiler will now treat such occurrences of the function name as recursive function calls in MacPas mode.<br />
* '''Reason''': Compatibility with Mac Pascal compilers.<br />
* '''Remedy''': If you wish to read the current function result value, compile the code with ''{$modeswitch result}'', after which you can use the ''result'' alias for that value. Note that the use of this mode switch can also result in [[User_Changes_2.6.0#Implicit_.22result.22_variable_in_MacPas_mode|different behaviour]] compared to traditional Mac Pascal compilers.<br />
<br />
==== "''strict protected''" visibility modifier ====<br />
* '''Old behaviour''': ''strict protected'' did not correctly limit the visibility of symbols declared in different units.<br />
* '''New behaviour''': ''strict protected'' symbols can now only be accessed from descendent classes, regardless of where they are defined.<br />
* '''Reason''': Fix behaviour to conform to specification/documentation, Delphi compatibility.<br />
* '''Remedy''': Use ''protected'' or ''public'' if less strict accessibility checks are desired.<br />
<br />
==== support for type helpers added ====<br />
* '''Old behaviour''': In modes ''ObjFPC'' and ''MacPas'' it was possible to declare a unique type of a type ''helper''.<br />
* '''New behaviour''': The compiler now interprets the keyword ''helper'' as a helper type if it immediately follows the ''type'' keyword (but only if the mode is ''ObjFPC'' or ''MacPas'' or the mode switch ''Class'' is set).<br />
* '''Example''':<br />
<syntaxhighlight><br />
{$mode objfpc}<br />
type<br />
helper = LongInt;<br />
<br />
otherhelper = type helper;<br />
</syntaxhighlight><br />
The above code will no longer compile.<br />
* '''Reason''': ''type helper'' is a more logical way to declare helpers for primitive types than Delphi's ''record helper'' is.<br />
* '''Remedy''': Escape the keyword ''helper'' using a ''&''. E.g.:<br />
<syntaxhighlight><br />
{$mode objfpc}<br />
type<br />
helper = LongInt;<br />
<br />
otherhelper = type &helper;<br />
</syntaxhighlight><br />
<br />
==== "''strict protected''" and "''protected''" visibility modifier in extended records ====<br />
* '''Old behaviour''': ''strict protected'' and ''protected'' could be used used in extended records.<br />
* '''New behaviour''': ''strict protected'' and ''protected'' are no longer allowed in extended records.<br />
* '''Reason''': The only difference between ''(strict) protected'' and ''(strict) private'' is that the former allows you to access members of a parent class or object. As records don't support inheritence it makes no sense to support ''(strict) protected'' in them. This is also Delphi-compatible.<br />
* '''Remedy''': Use ''private'' instead of ''protected'' and ''strict private'' instead of ''strict protected''.<br />
<br />
==== "''static''" directive on non-class methods ====<br />
* '''Old behaviour''': It was possible to use the ''static'' on normal, non-''class'' methods<br />
* '''New behaviour''': The compiler now generates an error if ''static'' is used on normal, non-''class'' methods (except in ''object'' types)<br />
* '''Reason''': It is only correct to leave out the ''Self'' parameter if it is a class method. This is also Delphi compatible.<br />
* '''Remedy''': Prepend the ''class'' keyword to the method.<br />
<br />
==== "''static''" directive on class operators ====<br />
* '''Old behaviour''': It was possible to use the ''static'' on class operators.<br />
* '''New behaviour''': The compiler now generates an error if ''static'' is used on class operators.<br />
* '''Reason''': Class operators are by definition static, thus the ''static'' would be redundant. This is also Delphi compatible.<br />
* '''Remedy''': Remove the ''static'' keyword from class operators.<br />
<br />
====Classes implementing forward-declared interfaces====<br />
* '''Old behaviour''': It was possible to declare classes as implementing a forward-declared interface.<br />
* '''New behaviour''': Classes can no longer implement forward-declared interfaces.<br />
* '''Reason''': This occasionally [http://bugs.freepascal.org/view.php?id=24184 caused crashes], the compiler did not check in such a case whether the class actually implemented the methods of that interface. Recent versions of Delphi also reject such constructs.<br />
* '''Remedy''': If there is a cyclic dependency between a class and an interface, use a forward declaration for the class instead.<br />
<br />
====Using the function name as alias for loading its current result value in MacPas mode====<br />
* '''Old behaviour''': Inside a function the name of the function could be used on the right hand side (RHS) of an expression in order to refer to the current value of the function result.<br />
* '''New behaviour''': Using the name of a function on the RHS of an expression inside that function's body now always results in a recursive function call.<br />
* '''Reason''': The old behaviour existed because under '''some''' circumstances CodeWarrior behaved that way. Under other circumstances [http://bugs.freepascal.org/view.php?id=22344 it however behaves according to the new rule] and there appears to be no definition available of when it does what. Since it is easier to fix a compilation error than to find out where an intended recursive function call is not doing anything, we opted to change the behaviour.<br />
* '''Remedy''': Either use a temporary local variable to hold the function result if you want to reuse it on the RHS of other expressions, or add '''{$modeswitch result}''' and use the '''result''' pseudo-variable as an alias for the function result.<br />
<br />
==== nostackframe forbidden for pascal subroutines ====<br />
* '''Old behaviour''': The nostackframe directive could be applied to all types of subroutines.<br />
* '''New behaviour''': The nostackframe directive is allowed only for pure assembler subroutines,<br />
* '''Reason''': Depending on the architecture, abi and code of the subroutine, nostackframe might have worked or caused random crashes. This was unpredictable and makes no sense.<br />
* '''Remedy''': Remove the nostackframe from pascal subroutines. If the compiler can, it will omit the stack frame anyways.<br />
<br />
====Conversion preference of pansichar to various string types====<br />
* '''Old behaviour''': In {$h-} mode, the compiler preferred ''pansichar''->''shortstring'' to ''pchar''->''ansistring'' conversions, and gave ''pansichar''->''ansistring'' and ''pchar''->''unicodestring'' the same conversion preference.<br />
* '''New behaviour''': The compiler now always prefers ''pansichar''->''ansistring'' to ''pansichar''->''shortstring'', and also prefers ''pansichar''->''ansistring'' to ''pansichar''->''unicodestring'' (which it in turn prefers to ''pansichar''->''shortstring'').<br />
* '''Reason''': Prevent truncation of long pchars, make it easier to add unicodestring overloads to the RTL without causing ''can't decide which overloaded function to call'' errors when using pchars, Delphi compatibility.<br />
* '''Remedy''': Use ''strpas()'' to explicitly truncate pchars to shortstrings if desired.<br />
<br />
==== Comparative operators can have any result type ====<br />
* '''Old behaviour''': Comparative operators allowed to have only Boolean result type.<br />
* '''New behaviour''': Comparative operators allowed to have any result type.<br />
* '''Reason''': Result type is checked anyway by regular type check mechanism, so it is not possible as before to use operators which return non Boolean results in IF, WHILE, UNTIL nodes but now it is possible to use them in other cases.<br />
* '''Example''':<br />
<syntaxhighlight><br />
SQLResult := Database.Query(<br />
Select(<br />
[ PersonsTable.FirstName, PersonsTable.LastName ],<br />
[ PersonsTable ],<br />
[ <br />
PersonsTable.Country = 'NL',<br />
PersonsTable.Age >= 25<br />
]<br />
)<br />
);<br />
</syntaxhighlight><br />
* '''Remedy''': not known.<br />
<br />
==== True and False are not keywords anymore ====<br />
* '''Old behaviour''': True and False were keywords and as result it was not possible to use them as identifiers.<br />
* '''New behaviour''': True and False are predefined constants now and can be used as identifiers.<br />
* '''Example''':<br />
<syntaxhighlight><br />
const<br />
False = 0;<br />
True = 1;<br />
</syntaxhighlight><br />
* '''Reason''': Compatibility with other known compilers.<br />
* '''Remedy''': not known.<br />
<br />
== Unix platforms ==<br />
<br />
=== cthreads: critical sections and recursive mutex support ===<br />
* '''Old behaviour''': If the ''cthreads'' unit thread manager was used on a platform without recursive mutex support, critical sections were non-reentrant.<br />
* '''New behaviour''': Initialising a critical section under the above circumstances will now result in a run time error.<br />
* '''Reason''': One of the basic properties of (Delphi/Windows-compatible) critical sections is that they are reentrant, and that is how they are generally used in Pascal code.<br />
* '''Remedy''': Use an RTLEvent instead if reentrancy is not required.<br />
<br />
<br />
== Darwin/i386 and iPhoneSim/i386 ==<br />
<br />
=== Location of certain function result types ===<br />
* '''Old behaviour''': Small records and method pointers were always returned according to the official ABI.<br />
* '''New behaviour''': When a calling convention other than ''cdecl'', ''cppdecl'' or ''mwpascal'' is used, the same convention as on other platforms is now used.<br />
* '''Reason''': Better compatibility with assembler code written for other platforms.<br />
* '''Remedy''': Update your assembler code, or better: if possible, convert it to Pascal.<br />
<br />
== All Darwin/Mac OS X/iOS ==<br />
===MacOSAll unit: changed parameter and opaque types===<br />
<br />
* '''Change''': The headers have been updated to the Mac OS X 10.8 SDK, and in this process a number of signatures have been changed/corrected, and several opaque types have been changed from ^SInt32 into pointers to different/incompatible empty records.<br />
* '''Reason''': The reasons for the signature changes are detailed below. The opaque types have been made incompatible so that the compiler can give error messages when trying to use one opaque type instead of another (e.g., in the past the compiler did not complain when passing a ControlRef to a routine that expected a WindowPtr).<br />
* '''Remedy''': Adjust your code to conform to the new signatures. Regarding the opaque types, that means that these types are no longer assignment-compatible. Some of the more prominent ones that may affect existing, correct, code are HIObject and ControlRef=HIViewRef. This may require adding typecasts to keep code compiling (the same typecasts are required in C)<br />
* '''Changes:''' (apart from the opaque type changes)<br />
** CGGLContextCreate : fixed first parameter (was "var", now is value parameter)<br />
** CFHostGetAddressing: var hasBeenResolved: boolean -> booleanptr because can be nil<br />
** CFHostGetNames: var hasBeenResolved: boolean -> booleanptr because can be nil<br />
** ColorSyncIterateInstalledProfiles: var seed: UInt32 -> UInt32Ptr because can be nil<br />
** AudioStreamGetPropertyInfo: outSize and outWritable changed to pointer because can be nil<br />
** cblas (several var-parametes changed to pointers because they represent arrays):<br />
*** cblas_sswap, cblas_dswap: X, Y<br />
*** cblas_scopy, cblas_dcopy: Y<br />
*** cblas_saxpy, cblas_daxpy: Y<br />
*** catlas_saxpby, catlas_daxpby: Y<br />
*** catlas_sset, catlas_dset: X<br />
*** cblas_sscal, cblas_dscal: X<br />
*** cblas_sgemv, cblas_dgemv: X<br />
*** cblas_strmv, cblas_dtrmv: X<br />
*** cblas_stbmv, cblas_dtbmv: X<br />
*** cblas_stpmv, cblas_dtpmv: Ap, X<br />
*** cblas_strsv, cblas_dtrsv: X<br />
*** cblas_stbsv, cblas_dtbsv: X<br />
*** cblas_stpsv, cblas_dtpsv: Ap, X<br />
*** cblas_ssymv, cblas_dsymv: X<br />
*** cblas_ssbmv, cblas_dsbmv: Y<br />
*** cblas_sspmv, cblas_dspmv: Ap, Y<br />
*** cblas_sger, cblas_dger: A<br />
*** cblas_ssyr, cblas_dsyr: A<br />
*** cblas_sspr, cblas_dspr: Ap<br />
*** cblas_ssyr2, cblas_dsyr2: A<br />
*** cblas_sspr2, cblas_dspr2: A<br />
*** cblas_sgemm, cblas_sgemm: C<br />
*** cblas_ssymm, cblas_Dsymm: C<br />
*** cblas_ssyrk, cblas_dsyrk: C<br />
*** cblas_ssyr2k, cblas_dsyr2k: C<br />
*** cblas_strmm, cblas_dtrmm: B<br />
*** cblas_strsm, cblas_strsm: B<br />
** vBLAS (idem)<br />
*** SDOT: X, Y<br />
*** SNRM2: X<br />
*** SASUM: X<br />
*** ISAMAX: X<br />
*** SSWAP: X, Y<br />
*** SCOPY: X, Y<br />
*** SAXPY: X, Y<br />
*** SROT: X, Y<br />
*** SSCAL: X<br />
*** SGEMV, A, X, Y<br />
*** SGEMM: A, B, C<br />
** vDSP (idem)<br />
*** vDSP_sve_svesq, vDSP_sve_svesqD: __vDSP_A<br />
*** vDSP_normalize, vDSP_normalizeD: __vDSP_A, __vDSP_C<br />
<br />
== Windows/x86_64 ==<br />
<br />
=== Exception handling has been changed to be ABI-conformant ===<br />
<br />
* '''Old behaviour''': Exceptions were handled using platform-independent mechanism based on SetJmp/LongJmp.<br />
* '''New behaviour''': Exceptions are handled using OS-provided means. The most important differences from generic handling are as follows:<br />
** Every executable contains a <tt>.pdata</tt> section describing layout of function stack frames. This data is used to perform stack back-tracing. As a consequence, the backtraces generated when exception occurs are no longer dependent of code optimization settings. However, they may be different from ones produced by gdb.<br />
** GNU binutils have troubles creating executables with <tt>.pdata</tt> sections. In particular, ld version < 2.22 crashes at such executables, and using GNU as together with internal linker will strip all <tt>.pdata</tt>, resulting in a non-working executable.<br />
** An exception is handled in two phases. First phase determines the target frame (i.e. the 'except' statement that will handle the exception), the second phase does actual stack unwinding and executing code in 'finally' statements. In contrast, the generic mechanism is single-phase: it starts unwinding immediately and proceeds until an 'except' statement handles the exception or the stack runs out.<br />
* '''Reason''': Multiple compatibility issues with Windows and third-party DLLs (see http://bugs.freepascal.org/view.php?id=12974 and related issues)<br />
* '''Remedy''': No changes are necessary unless your code relies on specific exception handling details. Build programs using FPC's internal assembler and linker, do not use GNU binutils. The entire feature can be disabled by cycling the compiler with <tt>OPT=-dDISABLE_WIN64_SEH</tt> in command line.<br />
<br />
== WinCE ==<br />
<br />
=== Define ''UNICODE'' was changed to ''FPC_OS_UNICODE'' ===<br />
<br />
* '''Old behaviour''': For arm-wince and i386-wince ''UNICODE'' was defined by default.<br />
* '''New behaviour''': For arm-wince and i386-wince ''FPC_OS_UNICODE'' is defined by default.<br />
* '''Reason''': For upcoming support for setting String to UnicodeString the define ''UNICODE'' now is defined if the type String is currently defined as UnicodeString. This is also in so far Delphi compatible that from Delphi 2009 on ''UNICODE'' is defined as well.<br />
* '''Remedy''': Check for ''FPC_OS_UNICODE'' to decide whether the OS only provides a Unicode API (in the sense of Wide- or UnicodeString) and use ''UNICODE'' to decide whether the type String is currently defined as UnicodeString or not.<br />
<br />
== Other == <br />
<br />
=== Stabs support has been disabled for 64 bit targets ===<br />
* '''Old behaviour''': While the default debug information format for 64 bit targets was DWARF (except for AIX, where it's Stabx), it was possible to switch it to Stabs via the -gs command line parameter.<br />
* '''New behaviour''': Only the DWARF debug format is still supported on 64 bit targets (except for AIX, where Stabx is used).<br />
* '''Reason''': Stabs is not well-defined for 64 bit targets, nor well-supported by gdb on those same targets. This can lead to [http://bugs.freepascal.org/view.php?id=23365 problems]<br />
* '''Remedy''': Do not use -gs when compiling for 64 bit targets. If you do so anyway, the compiler will display a warning and keep the previously set (supported) debug format.<br />
<br />
== See also ==<br />
* [[FPC New Features Trunk]]<br />
[[Category:FPC User Changes by release]]</div>
Paul Ishenin
https://wiki.freepascal.org/index.php?title=User_Changes_Trunk&diff=72444
User Changes Trunk
2013-09-16T08:59:31Z
<p>Paul Ishenin: /* Comparative operators can have any result type */</p>
<hr />
<div>== About this page==<br />
<br />
Listed below are intentional changes made to the FPC compiler (trunk) since the [[User_Changes_2.6.2|previous release]] that may break existing code. The list includes reasons why these changes have been implemented, and suggestions for how you might adapt your code if you find that previously working code has been adversely affected by these recent changes. <br />
<br />
The list of new features that do not break existing code can be found [[FPC_New_Features_Trunk|here]].<br />
<br />
== All systems ==<br />
<br />
=== Implementation changes ===<br />
<br />
==== Exception type for object reference checking changed ====<br />
* '''Old behaviour''': When object reference checking (''-CR'' or ''{$OBJECTCHECKS ON}'') is enabled and the unit ''SysUtils'' is used then an exception of class ''Exception'' with localizeable message ''Unknown runtime error 210'' is created.<br />
* '''New behaviour''': Now an exception of class ''EObjectCheck'' with localizeable message ''Object reference is Nil'' is created.<br />
* '''Reason''': All other runtime errors in the 2xx range have appropriate exception types, so it is only natural to have an explicit type for runtime error 210 as well.<br />
* '''Remedy''': If your code previously checked an exception for the message ''Unknown runtime error 210'' you should now check for the exception class ''EObjectCheck''.<br />
<br />
==== Literal storage memory has been made read-only ====<br />
<br />
* '''Old behaviour''': read-only data segments were ''de facto'' not supported, and all data could be modified at runtime even if it was not intended for modification (except in some cases on Darwin). This could cause nasty side-effects, e.g the following code:<br />
<br />
<syntaxhighlight><br />
uses sysutils;<br />
var<br />
s: ansistring;<br />
begin<br />
s := 'ansi string';<br />
Writeln(AnsiStrUpper(pchar(s)));<br />
s := 'ansi string';<br />
Writeln(s);<br />
end.<br />
</syntaxhighlight><br />
<br />
would modify the contents of data segment and print<br />
<br />
ANSI STRING<br />
ANSI STRING<br />
<br />
* '''New behaviour''': Data that is not intended to be modified at runtime is put into a read-only segment. This includes literal constants used in expressions and typed constants declared in {$J-} state. Any code which modifies such data (as in the above example) will now crash.<br />
* '''Reason''': This is consistent with the way other compilers (including Delphi) work. Keeping data read-only as much as possible improves a program's loading speed because read-only pages can be mapped directly to the executable file. This also improves program security.<br />
* '''Remedy''': is very code-dependent. In the example above, it is sufficient to call <tt>UniqueString(s)</tt> before <tt>AnsiStrUpper</tt><br />
<br />
==== ''UNICODE'' is defined depending on the mode switch ====<br />
* '''Old behaviour''': When the modeswitch was changed the definition of ''UNICODE'' was not changed.<br />
* '''New behaviour''': If the modeswitch is changed to ''delphiunicode'' the ''UNICODE'' will be defined otherwise it will be undefined.<br />
* '''Reason''': In Delphi 2009 and newer the type String is defined as UnicodeString and ''UNICODE'' is defined there by default as well. For improved Delphi compatibility ''UNICODE'' will be automatically defined if the String type is set to be equal to UnicodeString.<br />
* '''Remedy''': Don't rely on checks for ''UNICODE'' before the mode switches. Also compile time checks for ''UNICODE'' that appear after a modeswitch like ''objfpc'' or ''delphi'' will no longer be evaluated to true.<br />
<br />
=== RTTI changes ===<br />
<br />
==== RTTI for Pointers and Class References ====<br />
* '''Old behavior''': Pointers and Class References had tkUnknown RTTI.<br />
* '''New behavior''': Pointers now have RTTI type tkPointer, and class references have the RTTI type tkClassRef. Each now contains a reference to a type they point to.<br />
* '''Reason''': Both user requests and Delphi compatibility.<br />
* '''Remedy''': The TTypeKind enumeration has more members than before. Adjust any code which uses TTypeKind accordingly.<br />
<br />
==== RTTI for AnsiStrings ====<br />
* '''Old behavior''': AnsiString RTTI previously lacked CodePage information.<br />
* '''New behavior''': A new CodePage member has been added for the tkAString type.<br />
* '''Reason''': This is required for serializing/deserializing of published AnsiString properties, and is now compatible with Delphi.<br />
* '''Remedy''': not known<br />
<br />
==== RTTI for Arrays ====<br />
* '''Old behavior''': tkArray had no member in the TTypeData record, although internally the compiler stored these members: first dimension size, first dimension element count and first dimension element type. So for a 2 dimension array element the type was array for the second dimension.<br />
* '''New behavior''': tkArray now has a TArrayTypeData structure in TTypeData. It has the following members: total array size including all dimensions, total element count, last dimension element type, number of dimensions, type information for each dimension range.<br />
* '''Reason''': This provides more comprehensive RTTI, and is compatible with Delphi.<br />
* '''Remedy''': If your code internally used the older RTTI array information you will need to adapt it to take account of the newly provided TArrayTypeData information.<br />
<br />
==== RTTI for Records ====<br />
* '''Old behavior''': Records RTTI stored field Offsets as 32bit integers.<br />
* '''New behavior''': Records RTTI stores field Offsets as platform-dependent integers (the same size as pointers).<br />
* '''Reason''': Internally the compiler stores Offsets as platform-dependent integers. The new behaviour is Delphi-compatibile.<br />
* '''Remedy''': You need to adjust your code if you used field offsets of record RTTI. This is also true if your code processes any vInitTable field within the VMT of a class.<br />
<br />
==== RTTI for Procedural Variables ====<br />
* '''Old behavior''': tkProcVar lacked any member in the TTypeData record and the compiler stored no information about procedural variables.<br />
* '''New behavior''': tkProcVar now has a new TProcedureSignature structure in TTypeData which contains information about the procedure's calling convention, result type and parameters (where applicable).<br />
* '''Reason''': User request. More informative RTTI. Delphi compatibility.<br />
* '''Remedy''': not known<br />
<br />
==== Use example ====<br />
<syntaxhighlight><br />
program RTTIInfo;<br />
<br />
{$mode objfpc}{$H+}<br />
uses<br />
typinfo;<br />
<br />
type<br />
CP866String = type AnsiString(866);<br />
TProc = procedure(var A: Integer; S: String); stdcall;<br />
TColor = (red, green, blue);<br />
TArr = array[TColor,0..3] of Integer;<br />
PArr = ^TArr;<br />
<br />
procedure DescribeProcedure(Info: PTypeInfo);<br />
const<br />
ParamFlagToStr: array[TParamFlag] of AnsiString = (<br />
'var',<br />
'const',<br />
'array',<br />
'address',<br />
'reference',<br />
'out'<br />
);<br />
CallConvToStr: array[TCallConv] of AnsiString = (<br />
'register',<br />
'cdecl',<br />
'pascal',<br />
'stdcall',<br />
'safecall',<br />
'cppdecl',<br />
'far16',<br />
'oldFPCcall',<br />
'internProc',<br />
'SysCall',<br />
'SoftFloat',<br />
'MWPascal'<br />
);<br />
var<br />
Data: PTypeData;<br />
Param: PProcedureParam;<br />
ParamFlag: TParamFlag;<br />
I: Integer;<br />
Res, S, TypeName: String;<br />
begin<br />
if Info^.Kind <> tkProcedure then<br />
Exit;<br />
Data := GetTypeData(Info);<br />
if Data^.ProcSig.CC <> ccStdCall then<br />
halt(2);<br />
if Data^.ProcSig.ResultType <> nil then<br />
begin<br />
Res := 'function ' + Info^.Name;<br />
TypeName := ': ' + Data^.ProcSig.ResultType^.Name;<br />
end<br />
else<br />
begin<br />
Res := 'procedure ' + Info^.Name;<br />
TypeName := '';<br />
end;<br />
if Data^.ProcSig.ParamCount > 0 then<br />
begin<br />
Res := Res + '(';<br />
for I := 0 to Data^.ProcSig.ParamCount - 1 do<br />
begin<br />
Param := Data^.ProcSig.GetParam(I);<br />
S := '';<br />
for ParamFlag in TParamFlags(Param^.Flags) do<br />
S := S + ParamFlagToStr[ParamFlag] + ' ';<br />
S := S + Param^.Name + ': ' + Param^.ParamType^.Name;<br />
if I > 0 then<br />
Res := Res + '; ';<br />
Res := Res + S;<br />
end;<br />
Res := Res + ')';<br />
end;<br />
Res := Res + TypeName + '; ' + CallConvToStr[Data^.ProcSig.CC] + ';';<br />
WriteLn(Res);<br />
end;<br />
<br />
procedure DescribeAnsiString(Info: PTypeInfo);<br />
var<br />
Data: PTypeData;<br />
begin<br />
if Info^.Kind <> tkAString then<br />
Exit;<br />
Data := GetTypeData(Info);<br />
if Data^.CodePage = 0 then<br />
WriteLn('AnsiString')<br />
else<br />
WriteLn('type AnsiString(',Data^.CodePage,');');<br />
end;<br />
<br />
procedure DescribeArray(Info: PTypeInfo);<br />
var<br />
Data: PTypeData;<br />
Res: String;<br />
I: Integer;<br />
begin<br />
if Info^.Kind <> tkArray then<br />
Exit;<br />
Data := GetTypeData(Info);<br />
Res := 'array[';<br />
for I := 0 to Data^.ArrayData.DimCount - 1 do<br />
begin<br />
if I > 0 then<br />
Res := Res + ', ';<br />
Res := Res + Data^.ArrayData.Dims[I]^.Name;<br />
end;<br />
Res := Res + '] of ' + Data^.ArrayData.ElType^.Name + ';';<br />
WriteLn(Res);<br />
end;<br />
<br />
procedure DescribePointer(Info: PTypeInfo);<br />
var<br />
Data: PTypeData;<br />
begin<br />
if Info^.Kind <> tkPointer then<br />
Exit;<br />
Data := GetTypeData(Info);<br />
if Data^.RefType = nil then<br />
WriteLn('Pointer;')<br />
else<br />
WriteLn('^', Data^.RefType^.Name, ';');<br />
end;<br />
<br />
begin<br />
DescribeProcedure(TypeInfo(TProc));<br />
DescribeAnsiString(TypeInfo(CP866String));<br />
DescribeArray(TypeInfo(TArr));<br />
DescribePointer(TypeInfo(PArr));<br />
DescribePointer(TypeInfo(Pointer));<br />
end.<br />
</syntaxhighlight><br />
<br />
=== Unit changes ===<br />
<br />
==== DB ====<br />
===== TBookmark TBookmarkstr and TDataset.Bookmark change to Delphi2009+ compatible definitions =====<br />
* '''Old behaviour''': TDataset.Bookmark was of type TBookmarkstr, TBookmarkstr=string, Tbookmark=pointer<br />
* '''New behaviour''': TDataset.Bookmark is of type TBookmark, TBookmarkstr=ansistring, TBookmark=TBytes. TBookmarkstr will trigger a deprecated warning.<br />
* '''Reason''': D2009+ compatibility, where probably the fact that string became a 2-byte encoding was the trigger.<br />
* '''Remedy''': Adjust typing in descendents and using code accordingly.<br />
<br />
===== TODBCConnection (odbcconn) No longer autocommit =====<br />
* '''Old behaviour''': Autocommit was enabled: Every change was committed to the database at once.<br />
* '''New behaviour''': Changes must be committed explicitly using Transaction.Commit<br />
* '''Reason''': Transactions are useless if everything is autocommitted: in particular; rollback is not possible.<br />
* '''Remedy''': You can enable autocommit by specifying AUTOCOMMIT=1 in the params of TODBCConnection.<br />
<br />
===== TDBF unit deprecation removed =====<br />
* '''Old behaviour''': the TDBF units were marked deprecated because the original maintainer of the upstream project stopped maintenance. However, the unit remained in fcl-db and patches were still accepted.<br />
* '''New behaviour''': the deprecation warning is removed. There is a new upstream project maintainer and FPC database devs support this unit again.<br />
* '''Remedy''': N/A<br />
<br />
===== TBufDataset.SaveToFile, SaveToStream: Binary Format (dfBinary) of saved data changes =====<br />
* '''Old behaviour''': Record data was saved to stream just as they exist in the TBufDataset memory record buffer.<br />
* '''New behaviour''': Record data are saved field by field. Each variable length field begins with a 4 byte length indicator followed by data. Fixed length fields are stored without prefixed length indicator. LoadFromFile, LoadFromStream support both formats (OLD and NEW).<br />
* '''Reason''': BLOBs were not saved correctly in the OLD format: instead of BLOB data, a pointer to memory where BLOB data resided was saved.<br />
* '''Remedy''': if you need the OLD behavior in saving, you must register your own DataPacketReader using RegisterDatapacketReader procedure.<br />
<br />
==== FileNameCaseSensitive and FileNameCasePreserving in unit System ====<br />
* '''Old behaviour''': There was only one constant (FileNameCaseSensitive) which signalized behaviour of the respective target platform with regard to the case in filenames. This was often set to true also on platforms not really treating filenames in case sensitive manner (e.g. Win32 and Win64).<br />
* '''New behaviour''': FileNameCaseSensitive is set to true only on platforms which really treat filenames in case sensitive manner and FileNameCasePreserving constant is added to unit system of all platforms to signalize whether the case in filenames supplied when creating or renaming them is preserved or not. This might possibly break existing user code relying on the previous (sometimes incorrect) value of FileNameCaseSensitive.<br />
* '''Reason''': In reality, there are two distinct types of behaviour. If a platform is case sensitive, searching for file "a" will never result in finding file "A" whereas case insensitive platform will happily return "A" if such a file is found on the disk. If a platform is case preserving, it will store file "a" as "a" on disk whereas case non-preserving platform may convert the filenames to uppercase before storing them on disk (i.e. file "a" is in reality stored as "A"). Case non-preserving platforms are never case sensitive, but case preserving platforms may or may not be case sensitive at the same time.<br />
* '''Remedy''': Review your existing code using FileNameCaseSensitive, check which of the two properties described above fit the particular purpose in your case and change to FileNameCasePreserving where appropriate.<br />
<br />
==== Some longtime deprecated functions in unit Unix have been removed. ====<br />
* '''Old behaviour''': Unix.(f)statfs, Unix.shell and Unix.fsync symbols existed in unit Unix <br />
* '''New behaviour''': Unix.(f)statfs, Unix.shell and Unix.fsync were removed<br />
* '''Reason''': These were helper functions and leftovers from the 1.0.x->2.0.0 conversion, deprecated since 2007. Shell had non standarized conventions<br />
* '''Remedy''': All but shell: use the same functions with a "fp" prefix. Shell: use fpsystem. If you checked the return value for other values than -1, a modification of the errorchecking might be necessary. Refer to your *nix documention, or have a look at the transformfpsystemtoshell function in tests/util/redir.pp in the FPC sources to see what a quick fix looks like.<br />
<br />
==== statfs has been renamed to fpstatfs ====<br />
* '''Old behaviour''': One overload of fpstatfs was not renamed from statfs to fpstatfs (around 2.4.0)<br />
* '''New behaviour''': The function has been renamed.<br />
* '''Reason''': Should have been done in 2.4.0 to begin with, but was postponed several times to coincide with a major version change. <br />
* '''Remedy''': Use fpstatfs<br />
<br />
==== RTLeventsync has been removed ====<br />
* '''Old behaviour''': The thread manager record contained an ''rtleventsync'' field, and the RTL had an ''RTLeventsync'' routine. No functionality for this routine was implemented in the FPC-supplied thread manager for any platform.<br />
* '''New behaviour''': The field and routine have been removed.<br />
* '''Reason''': The functionality was not available on any platform by default, and we're not aware of any third party thread manager that implemented them or third party code that relied on it. Additionally, the routine was documented as "Obsolete. Don't use.", without any explanation of what it was supposed to do.<br />
* '''Remedy''': Remove any such calls from your code.<br />
<br />
==== FPCanvas Strikethough property spelling fixed to StrikeThrough ====<br />
* '''Old behaviour''': Fonts had a Striketrough property which is a typo.<br />
* '''New behaviour''': The property has been changed to Strikethrough.<br />
* '''Reason''': Spelling fix.<br />
* '''Remedy''': Please rename property calls in your code. FPC 2.6.2 contains both versions so there is a window for adaptation.<br />
<br />
==== TVersionInfo (fileinfo unit) re-implemented in a platform independent way ====<br />
* '''Old behaviour''': GetVersionSetting method would read file information.<br />
* '''New behaviour''': The ReadFileInfo call will read the information. The global GetProgramVersion call will extract the program major/minor/revision/build version in 1 single call.<br />
* '''Reason''': The unit now uses FPC resources on all platforms, and can now be used to read external resources.<br />
* '''Remedy''': Use the ReadFileInfo call to get the version information. Add relevant units for desired resource support to your uses clause; e.g. if you need to read Windows .exe file info, add winpeimagereader<br />
<br />
==== shlobj symbols removed from unit Windows ====<br />
* '''Old behaviour''': When unit windows was splitted between unit windows and shlobj, not all shlobj symbols were removed from Windows. Currently these are being deprecated, and will be removed in next major version.<br />
* '''New behaviour''': shlobj symbols won't be in Windows, code relying on that will fail to compile if it doesn't import shlobj<br />
* '''Reason''': shlobj and windows versions were not compatible and lead to errors. <br />
* '''Remedy''': put shlobj in your uses, if not there already.<br />
<br />
=== Language Changes ===<br />
<br />
==== Variant overload preference for string types ====<br />
* '''Old behaviour''': Preference for string types was (from better to worse): ShortString, AnsiString, WideString, UnicodeString<br />
* '''New behaviour''': Preference for string types now (from better to worse): WideString, UnicodeString, AnsiString, ShortString<br />
* '''Reason''': Unicode characters and codepage information will not lose during the conversion and unicode Delphi compatibility.<br />
* '''Remedy''': Use explicit conversion (e.g. ShortString(V)) if it is needed to pass variant to routine with paticular string type argument.<br />
<br />
==== Default values in implementation but not in interface/forward declaration ====<br />
* '''Old behaviour''': The implementation of a routine could declare default values even if the interface declaration did not have any.<br />
* '''New behaviour''': Default values, if any, must be specified in the interface. They can be repeated in the implementation, but that is not required (just like it was not in the past).<br />
* '''Reason''': Default parameters specified only in the implementation are not, and cannot, be propagated to the interface since a unit's interface can be used before the implementation has been parsed (see http://bugs.freepascal.org/view.php?id=19434), Delphi compatibility.<br />
* '''Remedy''': Always specify default parameter values (also) in the interface/forward declaration of a routine.<br />
<br />
==== Default values are now properly typechecked ====<br />
* '''Old behaviour''': The compiler did not detect default values for parameters of which the type did not in any way correspond to the parameter type. <br />
* '''New behaviour''': The compiler now properly checks whether the type of the constant matches the parameter's type when parsing default values.<br />
* '''Reason''': Proper type checking is one of the fundamental properties of the Pascal language; Delphi compatibility.<br />
* '''Remedy''': Add a typecast around default values that now result in compiler errors, or correct the type of such parameters.<br />
<br />
==== Recursive parameterless function calls in MacPas mode ====<br />
* '''Old behaviour''': When using the name of a function inside its own body on the right hand side of an expression, the compiler treated this as a read of the last value assigned to the function result in MacPas mode.<br />
* '''New behaviour''': The compiler will now treat such occurrences of the function name as recursive function calls in MacPas mode.<br />
* '''Reason''': Compatibility with Mac Pascal compilers.<br />
* '''Remedy''': If you wish to read the current function result value, compile the code with ''{$modeswitch result}'', after which you can use the ''result'' alias for that value. Note that the use of this mode switch can also result in [[User_Changes_2.6.0#Implicit_.22result.22_variable_in_MacPas_mode|different behaviour]] compared to traditional Mac Pascal compilers.<br />
<br />
==== "''strict protected''" visibility modifier ====<br />
* '''Old behaviour''': ''strict protected'' did not correctly limit the visibility of symbols declared in different units.<br />
* '''New behaviour''': ''strict protected'' symbols can now only be accessed from descendent classes, regardless of where they are defined.<br />
* '''Reason''': Fix behaviour to conform to specification/documentation, Delphi compatibility.<br />
* '''Remedy''': Use ''protected'' or ''public'' if less strict accessibility checks are desired.<br />
<br />
==== support for type helpers added ====<br />
* '''Old behaviour''': In modes ''ObjFPC'' and ''MacPas'' it was possible to declare a unique type of a type ''helper''.<br />
* '''New behaviour''': The compiler now interprets the keyword ''helper'' as a helper type if it immediately follows the ''type'' keyword (but only if the mode is ''ObjFPC'' or ''MacPas'' or the mode switch ''Class'' is set).<br />
* '''Example''':<br />
<syntaxhighlight><br />
{$mode objfpc}<br />
type<br />
helper = LongInt;<br />
<br />
otherhelper = type helper;<br />
</syntaxhighlight><br />
The above code will no longer compile.<br />
* '''Reason''': ''type helper'' is a more logical way to declare helpers for primitive types than Delphi's ''record helper'' is.<br />
* '''Remedy''': Escape the keyword ''helper'' using a ''&''. E.g.:<br />
<syntaxhighlight><br />
{$mode objfpc}<br />
type<br />
helper = LongInt;<br />
<br />
otherhelper = type &helper;<br />
</syntaxhighlight><br />
<br />
==== "''strict protected''" and "''protected''" visibility modifier in extended records ====<br />
* '''Old behaviour''': ''strict protected'' and ''protected'' could be used used in extended records.<br />
* '''New behaviour''': ''strict protected'' and ''protected'' are no longer allowed in extended records.<br />
* '''Reason''': The only difference between ''(strict) protected'' and ''(strict) private'' is that the former allows you to access members of a parent class or object. As records don't support inheritence it makes no sense to support ''(strict) protected'' in them. This is also Delphi-compatible.<br />
* '''Remedy''': Use ''private'' instead of ''protected'' and ''strict private'' instead of ''strict protected''.<br />
<br />
==== "''static''" directive on non-class methods ====<br />
* '''Old behaviour''': It was possible to use the ''static'' on normal, non-''class'' methods<br />
* '''New behaviour''': The compiler now generates an error if ''static'' is used on normal, non-''class'' methods (except in ''object'' types)<br />
* '''Reason''': It is only correct to leave out the ''Self'' parameter if it is a class method. This is also Delphi compatible.<br />
* '''Remedy''': Prepend the ''class'' keyword to the method.<br />
<br />
==== "''static''" directive on class operators ====<br />
* '''Old behaviour''': It was possible to use the ''static'' on class operators.<br />
* '''New behaviour''': The compiler now generates an error if ''static'' is used on class operators.<br />
* '''Reason''': Class operators are by definition static, thus the ''static'' would be redundant. This is also Delphi compatible.<br />
* '''Remedy''': Remove the ''static'' keyword from class operators.<br />
<br />
====Classes implementing forward-declared interfaces====<br />
* '''Old behaviour''': It was possible to declare classes as implementing a forward-declared interface.<br />
* '''New behaviour''': Classes can no longer implement forward-declared interfaces.<br />
* '''Reason''': This occasionally [http://bugs.freepascal.org/view.php?id=24184 caused crashes], the compiler did not check in such a case whether the class actually implemented the methods of that interface. Recent versions of Delphi also reject such constructs.<br />
* '''Remedy''': If there is a cyclic dependency between a class and an interface, use a forward declaration for the class instead.<br />
<br />
====Using the function name as alias for loading its current result value in MacPas mode====<br />
* '''Old behaviour''': Inside a function the name of the function could be used on the right hand side (RHS) of an expression in order to refer to the current value of the function result.<br />
* '''New behaviour''': Using the name of a function on the RHS of an expression inside that function's body now always results in a recursive function call.<br />
* '''Reason''': The old behaviour existed because under '''some''' circumstances CodeWarrior behaved that way. Under other circumstances [http://bugs.freepascal.org/view.php?id=22344 it however behaves according to the new rule] and there appears to be no definition available of when it does what. Since it is easier to fix a compilation error than to find out where an intended recursive function call is not doing anything, we opted to change the behaviour.<br />
* '''Remedy''': Either use a temporary local variable to hold the function result if you want to reuse it on the RHS of other expressions, or add '''{$modeswitch result}''' and use the '''result''' pseudo-variable as an alias for the function result.<br />
<br />
==== nostackframe forbidden for pascal subroutines ====<br />
* '''Old behaviour''': The nostackframe directive could be applied to all types of subroutines.<br />
* '''New behaviour''': The nostackframe directive is allowed only for pure assembler subroutines,<br />
* '''Reason''': Depending on the architecture, abi and code of the subroutine, nostackframe might have worked or caused random crashes. This was unpredictable and makes no sense.<br />
* '''Remedy''': Remove the nostackframe from pascal subroutines. If the compiler can, it will omit the stack frame anyways.<br />
<br />
====Conversion preference of pansichar to various string types====<br />
* '''Old behaviour''': In {$h-} mode, the compiler preferred ''pansichar''->''shortstring'' to ''pchar''->''ansistring'' conversions, and gave ''pansichar''->''ansistring'' and ''pchar''->''unicodestring'' the same conversion preference.<br />
* '''New behaviour''': The compiler now always prefers ''pansichar''->''ansistring'' to ''pansichar''->''shortstring'', and also prefers ''pansichar''->''ansistring'' to ''pansichar''->''unicodestring'' (which it in turn prefers to ''pansichar''->''shortstring'').<br />
* '''Reason''': Prevent truncation of long pchars, make it easier to add unicodestring overloads to the RTL without causing ''can't decide which overloaded function to call'' errors when using pchars, Delphi compatibility.<br />
* '''Remedy''': Use ''strpas()'' to explicitly truncate pchars to shortstrings if desired.<br />
<br />
==== Comparative operators can have any result type ====<br />
* '''Old behaviour''': Comparative operators allowed to have only Boolean result type.<br />
* '''New behaviour''': Comparative operators allowed to have any result type.<br />
* '''Reason''': Result type is checked anyway by regular type check mechanism, so it is not possible as before to use operators which return non Boolean results in IF, WHILE, UNTIL nodes but now it is possible to use them in other cases.<br />
* '''Example''':<br />
<syntaxhighlight><br />
SQLResult := Database.Query(<br />
Select(<br />
[ PersonsTable.FirstName, PersonsTable.LastName ],<br />
[ PersonsTable ],<br />
[ <br />
PersonsTable.Country = 'NL',<br />
PersonsTable.Age >= 25<br />
]<br />
)<br />
);<br />
</syntaxhighlight><br />
* '''Remedy''': not known..<br />
<br />
== Unix platforms ==<br />
<br />
=== cthreads: critical sections and recursive mutex support ===<br />
* '''Old behaviour''': If the ''cthreads'' unit thread manager was used on a platform without recursive mutex support, critical sections were non-reentrant.<br />
* '''New behaviour''': Initialising a critical section under the above circumstances will now result in a run time error.<br />
* '''Reason''': One of the basic properties of (Delphi/Windows-compatible) critical sections is that they are reentrant, and that is how they are generally used in Pascal code.<br />
* '''Remedy''': Use an RTLEvent instead if reentrancy is not required.<br />
<br />
<br />
== Darwin/i386 and iPhoneSim/i386 ==<br />
<br />
=== Location of certain function result types ===<br />
* '''Old behaviour''': Small records and method pointers were always returned according to the official ABI.<br />
* '''New behaviour''': When a calling convention other than ''cdecl'', ''cppdecl'' or ''mwpascal'' is used, the same convention as on other platforms is now used.<br />
* '''Reason''': Better compatibility with assembler code written for other platforms.<br />
* '''Remedy''': Update your assembler code, or better: if possible, convert it to Pascal.<br />
<br />
== All Darwin/Mac OS X/iOS ==<br />
===MacOSAll unit: changed parameter and opaque types===<br />
<br />
* '''Change''': The headers have been updated to the Mac OS X 10.8 SDK, and in this process a number of signatures have been changed/corrected, and several opaque types have been changed from ^SInt32 into pointers to different/incompatible empty records.<br />
* '''Reason''': The reasons for the signature changes are detailed below. The opaque types have been made incompatible so that the compiler can give error messages when trying to use one opaque type instead of another (e.g., in the past the compiler did not complain when passing a ControlRef to a routine that expected a WindowPtr).<br />
* '''Remedy''': Adjust your code to conform to the new signatures. Regarding the opaque types, that means that these types are no longer assignment-compatible. Some of the more prominent ones that may affect existing, correct, code are HIObject and ControlRef=HIViewRef. This may require adding typecasts to keep code compiling (the same typecasts are required in C)<br />
* '''Changes:''' (apart from the opaque type changes)<br />
** CGGLContextCreate : fixed first parameter (was "var", now is value parameter)<br />
** CFHostGetAddressing: var hasBeenResolved: boolean -> booleanptr because can be nil<br />
** CFHostGetNames: var hasBeenResolved: boolean -> booleanptr because can be nil<br />
** ColorSyncIterateInstalledProfiles: var seed: UInt32 -> UInt32Ptr because can be nil<br />
** AudioStreamGetPropertyInfo: outSize and outWritable changed to pointer because can be nil<br />
** cblas (several var-parametes changed to pointers because they represent arrays):<br />
*** cblas_sswap, cblas_dswap: X, Y<br />
*** cblas_scopy, cblas_dcopy: Y<br />
*** cblas_saxpy, cblas_daxpy: Y<br />
*** catlas_saxpby, catlas_daxpby: Y<br />
*** catlas_sset, catlas_dset: X<br />
*** cblas_sscal, cblas_dscal: X<br />
*** cblas_sgemv, cblas_dgemv: X<br />
*** cblas_strmv, cblas_dtrmv: X<br />
*** cblas_stbmv, cblas_dtbmv: X<br />
*** cblas_stpmv, cblas_dtpmv: Ap, X<br />
*** cblas_strsv, cblas_dtrsv: X<br />
*** cblas_stbsv, cblas_dtbsv: X<br />
*** cblas_stpsv, cblas_dtpsv: Ap, X<br />
*** cblas_ssymv, cblas_dsymv: X<br />
*** cblas_ssbmv, cblas_dsbmv: Y<br />
*** cblas_sspmv, cblas_dspmv: Ap, Y<br />
*** cblas_sger, cblas_dger: A<br />
*** cblas_ssyr, cblas_dsyr: A<br />
*** cblas_sspr, cblas_dspr: Ap<br />
*** cblas_ssyr2, cblas_dsyr2: A<br />
*** cblas_sspr2, cblas_dspr2: A<br />
*** cblas_sgemm, cblas_sgemm: C<br />
*** cblas_ssymm, cblas_Dsymm: C<br />
*** cblas_ssyrk, cblas_dsyrk: C<br />
*** cblas_ssyr2k, cblas_dsyr2k: C<br />
*** cblas_strmm, cblas_dtrmm: B<br />
*** cblas_strsm, cblas_strsm: B<br />
** vBLAS (idem)<br />
*** SDOT: X, Y<br />
*** SNRM2: X<br />
*** SASUM: X<br />
*** ISAMAX: X<br />
*** SSWAP: X, Y<br />
*** SCOPY: X, Y<br />
*** SAXPY: X, Y<br />
*** SROT: X, Y<br />
*** SSCAL: X<br />
*** SGEMV, A, X, Y<br />
*** SGEMM: A, B, C<br />
** vDSP (idem)<br />
*** vDSP_sve_svesq, vDSP_sve_svesqD: __vDSP_A<br />
*** vDSP_normalize, vDSP_normalizeD: __vDSP_A, __vDSP_C<br />
<br />
== Windows/x86_64 ==<br />
<br />
=== Exception handling has been changed to be ABI-conformant ===<br />
<br />
* '''Old behaviour''': Exceptions were handled using platform-independent mechanism based on SetJmp/LongJmp.<br />
* '''New behaviour''': Exceptions are handled using OS-provided means. The most important differences from generic handling are as follows:<br />
** Every executable contains a <tt>.pdata</tt> section describing layout of function stack frames. This data is used to perform stack back-tracing. As a consequence, the backtraces generated when exception occurs are no longer dependent of code optimization settings. However, they may be different from ones produced by gdb.<br />
** GNU binutils have troubles creating executables with <tt>.pdata</tt> sections. In particular, ld version < 2.22 crashes at such executables, and using GNU as together with internal linker will strip all <tt>.pdata</tt>, resulting in a non-working executable.<br />
** An exception is handled in two phases. First phase determines the target frame (i.e. the 'except' statement that will handle the exception), the second phase does actual stack unwinding and executing code in 'finally' statements. In contrast, the generic mechanism is single-phase: it starts unwinding immediately and proceeds until an 'except' statement handles the exception or the stack runs out.<br />
* '''Reason''': Multiple compatibility issues with Windows and third-party DLLs (see http://bugs.freepascal.org/view.php?id=12974 and related issues)<br />
* '''Remedy''': No changes are necessary unless your code relies on specific exception handling details. Build programs using FPC's internal assembler and linker, do not use GNU binutils. The entire feature can be disabled by cycling the compiler with <tt>OPT=-dDISABLE_WIN64_SEH</tt> in command line.<br />
<br />
== WinCE ==<br />
<br />
=== Define ''UNICODE'' was changed to ''FPC_OS_UNICODE'' ===<br />
<br />
* '''Old behaviour''': For arm-wince and i386-wince ''UNICODE'' was defined by default.<br />
* '''New behaviour''': For arm-wince and i386-wince ''FPC_OS_UNICODE'' is defined by default.<br />
* '''Reason''': For upcoming support for setting String to UnicodeString the define ''UNICODE'' now is defined if the type String is currently defined as UnicodeString. This is also in so far Delphi compatible that from Delphi 2009 on ''UNICODE'' is defined as well.<br />
* '''Remedy''': Check for ''FPC_OS_UNICODE'' to decide whether the OS only provides a Unicode API (in the sense of Wide- or UnicodeString) and use ''UNICODE'' to decide whether the type String is currently defined as UnicodeString or not.<br />
<br />
== Other == <br />
<br />
=== Stabs support has been disabled for 64 bit targets ===<br />
* '''Old behaviour''': While the default debug information format for 64 bit targets was DWARF (except for AIX, where it's Stabx), it was possible to switch it to Stabs via the -gs command line parameter.<br />
* '''New behaviour''': Only the DWARF debug format is still supported on 64 bit targets (except for AIX, where Stabx is used).<br />
* '''Reason''': Stabs is not well-defined for 64 bit targets, nor well-supported by gdb on those same targets. This can lead to [http://bugs.freepascal.org/view.php?id=23365 problems]<br />
* '''Remedy''': Do not use -gs when compiling for 64 bit targets. If you do so anyway, the compiler will display a warning and keep the previously set (supported) debug format.<br />
<br />
== See also ==<br />
* [[FPC New Features Trunk]]<br />
[[Category:FPC User Changes by release]]</div>
Paul Ishenin
https://wiki.freepascal.org/index.php?title=User_Changes_Trunk&diff=72443
User Changes Trunk
2013-09-16T08:52:57Z
<p>Paul Ishenin: /* Language Changes */</p>
<hr />
<div>== About this page==<br />
<br />
Listed below are intentional changes made to the FPC compiler (trunk) since the [[User_Changes_2.6.2|previous release]] that may break existing code. The list includes reasons why these changes have been implemented, and suggestions for how you might adapt your code if you find that previously working code has been adversely affected by these recent changes. <br />
<br />
The list of new features that do not break existing code can be found [[FPC_New_Features_Trunk|here]].<br />
<br />
== All systems ==<br />
<br />
=== Implementation changes ===<br />
<br />
==== Exception type for object reference checking changed ====<br />
* '''Old behaviour''': When object reference checking (''-CR'' or ''{$OBJECTCHECKS ON}'') is enabled and the unit ''SysUtils'' is used then an exception of class ''Exception'' with localizeable message ''Unknown runtime error 210'' is created.<br />
* '''New behaviour''': Now an exception of class ''EObjectCheck'' with localizeable message ''Object reference is Nil'' is created.<br />
* '''Reason''': All other runtime errors in the 2xx range have appropriate exception types, so it is only natural to have an explicit type for runtime error 210 as well.<br />
* '''Remedy''': If your code previously checked an exception for the message ''Unknown runtime error 210'' you should now check for the exception class ''EObjectCheck''.<br />
<br />
==== Literal storage memory has been made read-only ====<br />
<br />
* '''Old behaviour''': read-only data segments were ''de facto'' not supported, and all data could be modified at runtime even if it was not intended for modification (except in some cases on Darwin). This could cause nasty side-effects, e.g the following code:<br />
<br />
<syntaxhighlight><br />
uses sysutils;<br />
var<br />
s: ansistring;<br />
begin<br />
s := 'ansi string';<br />
Writeln(AnsiStrUpper(pchar(s)));<br />
s := 'ansi string';<br />
Writeln(s);<br />
end.<br />
</syntaxhighlight><br />
<br />
would modify the contents of data segment and print<br />
<br />
ANSI STRING<br />
ANSI STRING<br />
<br />
* '''New behaviour''': Data that is not intended to be modified at runtime is put into a read-only segment. This includes literal constants used in expressions and typed constants declared in {$J-} state. Any code which modifies such data (as in the above example) will now crash.<br />
* '''Reason''': This is consistent with the way other compilers (including Delphi) work. Keeping data read-only as much as possible improves a program's loading speed because read-only pages can be mapped directly to the executable file. This also improves program security.<br />
* '''Remedy''': is very code-dependent. In the example above, it is sufficient to call <tt>UniqueString(s)</tt> before <tt>AnsiStrUpper</tt><br />
<br />
==== ''UNICODE'' is defined depending on the mode switch ====<br />
* '''Old behaviour''': When the modeswitch was changed the definition of ''UNICODE'' was not changed.<br />
* '''New behaviour''': If the modeswitch is changed to ''delphiunicode'' the ''UNICODE'' will be defined otherwise it will be undefined.<br />
* '''Reason''': In Delphi 2009 and newer the type String is defined as UnicodeString and ''UNICODE'' is defined there by default as well. For improved Delphi compatibility ''UNICODE'' will be automatically defined if the String type is set to be equal to UnicodeString.<br />
* '''Remedy''': Don't rely on checks for ''UNICODE'' before the mode switches. Also compile time checks for ''UNICODE'' that appear after a modeswitch like ''objfpc'' or ''delphi'' will no longer be evaluated to true.<br />
<br />
=== RTTI changes ===<br />
<br />
==== RTTI for Pointers and Class References ====<br />
* '''Old behavior''': Pointers and Class References had tkUnknown RTTI.<br />
* '''New behavior''': Pointers now have RTTI type tkPointer, and class references have the RTTI type tkClassRef. Each now contains a reference to a type they point to.<br />
* '''Reason''': Both user requests and Delphi compatibility.<br />
* '''Remedy''': The TTypeKind enumeration has more members than before. Adjust any code which uses TTypeKind accordingly.<br />
<br />
==== RTTI for AnsiStrings ====<br />
* '''Old behavior''': AnsiString RTTI previously lacked CodePage information.<br />
* '''New behavior''': A new CodePage member has been added for the tkAString type.<br />
* '''Reason''': This is required for serializing/deserializing of published AnsiString properties, and is now compatible with Delphi.<br />
* '''Remedy''': not known<br />
<br />
==== RTTI for Arrays ====<br />
* '''Old behavior''': tkArray had no member in the TTypeData record, although internally the compiler stored these members: first dimension size, first dimension element count and first dimension element type. So for a 2 dimension array element the type was array for the second dimension.<br />
* '''New behavior''': tkArray now has a TArrayTypeData structure in TTypeData. It has the following members: total array size including all dimensions, total element count, last dimension element type, number of dimensions, type information for each dimension range.<br />
* '''Reason''': This provides more comprehensive RTTI, and is compatible with Delphi.<br />
* '''Remedy''': If your code internally used the older RTTI array information you will need to adapt it to take account of the newly provided TArrayTypeData information.<br />
<br />
==== RTTI for Records ====<br />
* '''Old behavior''': Records RTTI stored field Offsets as 32bit integers.<br />
* '''New behavior''': Records RTTI stores field Offsets as platform-dependent integers (the same size as pointers).<br />
* '''Reason''': Internally the compiler stores Offsets as platform-dependent integers. The new behaviour is Delphi-compatibile.<br />
* '''Remedy''': You need to adjust your code if you used field offsets of record RTTI. This is also true if your code processes any vInitTable field within the VMT of a class.<br />
<br />
==== RTTI for Procedural Variables ====<br />
* '''Old behavior''': tkProcVar lacked any member in the TTypeData record and the compiler stored no information about procedural variables.<br />
* '''New behavior''': tkProcVar now has a new TProcedureSignature structure in TTypeData which contains information about the procedure's calling convention, result type and parameters (where applicable).<br />
* '''Reason''': User request. More informative RTTI. Delphi compatibility.<br />
* '''Remedy''': not known<br />
<br />
==== Use example ====<br />
<syntaxhighlight><br />
program RTTIInfo;<br />
<br />
{$mode objfpc}{$H+}<br />
uses<br />
typinfo;<br />
<br />
type<br />
CP866String = type AnsiString(866);<br />
TProc = procedure(var A: Integer; S: String); stdcall;<br />
TColor = (red, green, blue);<br />
TArr = array[TColor,0..3] of Integer;<br />
PArr = ^TArr;<br />
<br />
procedure DescribeProcedure(Info: PTypeInfo);<br />
const<br />
ParamFlagToStr: array[TParamFlag] of AnsiString = (<br />
'var',<br />
'const',<br />
'array',<br />
'address',<br />
'reference',<br />
'out'<br />
);<br />
CallConvToStr: array[TCallConv] of AnsiString = (<br />
'register',<br />
'cdecl',<br />
'pascal',<br />
'stdcall',<br />
'safecall',<br />
'cppdecl',<br />
'far16',<br />
'oldFPCcall',<br />
'internProc',<br />
'SysCall',<br />
'SoftFloat',<br />
'MWPascal'<br />
);<br />
var<br />
Data: PTypeData;<br />
Param: PProcedureParam;<br />
ParamFlag: TParamFlag;<br />
I: Integer;<br />
Res, S, TypeName: String;<br />
begin<br />
if Info^.Kind <> tkProcedure then<br />
Exit;<br />
Data := GetTypeData(Info);<br />
if Data^.ProcSig.CC <> ccStdCall then<br />
halt(2);<br />
if Data^.ProcSig.ResultType <> nil then<br />
begin<br />
Res := 'function ' + Info^.Name;<br />
TypeName := ': ' + Data^.ProcSig.ResultType^.Name;<br />
end<br />
else<br />
begin<br />
Res := 'procedure ' + Info^.Name;<br />
TypeName := '';<br />
end;<br />
if Data^.ProcSig.ParamCount > 0 then<br />
begin<br />
Res := Res + '(';<br />
for I := 0 to Data^.ProcSig.ParamCount - 1 do<br />
begin<br />
Param := Data^.ProcSig.GetParam(I);<br />
S := '';<br />
for ParamFlag in TParamFlags(Param^.Flags) do<br />
S := S + ParamFlagToStr[ParamFlag] + ' ';<br />
S := S + Param^.Name + ': ' + Param^.ParamType^.Name;<br />
if I > 0 then<br />
Res := Res + '; ';<br />
Res := Res + S;<br />
end;<br />
Res := Res + ')';<br />
end;<br />
Res := Res + TypeName + '; ' + CallConvToStr[Data^.ProcSig.CC] + ';';<br />
WriteLn(Res);<br />
end;<br />
<br />
procedure DescribeAnsiString(Info: PTypeInfo);<br />
var<br />
Data: PTypeData;<br />
begin<br />
if Info^.Kind <> tkAString then<br />
Exit;<br />
Data := GetTypeData(Info);<br />
if Data^.CodePage = 0 then<br />
WriteLn('AnsiString')<br />
else<br />
WriteLn('type AnsiString(',Data^.CodePage,');');<br />
end;<br />
<br />
procedure DescribeArray(Info: PTypeInfo);<br />
var<br />
Data: PTypeData;<br />
Res: String;<br />
I: Integer;<br />
begin<br />
if Info^.Kind <> tkArray then<br />
Exit;<br />
Data := GetTypeData(Info);<br />
Res := 'array[';<br />
for I := 0 to Data^.ArrayData.DimCount - 1 do<br />
begin<br />
if I > 0 then<br />
Res := Res + ', ';<br />
Res := Res + Data^.ArrayData.Dims[I]^.Name;<br />
end;<br />
Res := Res + '] of ' + Data^.ArrayData.ElType^.Name + ';';<br />
WriteLn(Res);<br />
end;<br />
<br />
procedure DescribePointer(Info: PTypeInfo);<br />
var<br />
Data: PTypeData;<br />
begin<br />
if Info^.Kind <> tkPointer then<br />
Exit;<br />
Data := GetTypeData(Info);<br />
if Data^.RefType = nil then<br />
WriteLn('Pointer;')<br />
else<br />
WriteLn('^', Data^.RefType^.Name, ';');<br />
end;<br />
<br />
begin<br />
DescribeProcedure(TypeInfo(TProc));<br />
DescribeAnsiString(TypeInfo(CP866String));<br />
DescribeArray(TypeInfo(TArr));<br />
DescribePointer(TypeInfo(PArr));<br />
DescribePointer(TypeInfo(Pointer));<br />
end.<br />
</syntaxhighlight><br />
<br />
=== Unit changes ===<br />
<br />
==== DB ====<br />
===== TBookmark TBookmarkstr and TDataset.Bookmark change to Delphi2009+ compatible definitions =====<br />
* '''Old behaviour''': TDataset.Bookmark was of type TBookmarkstr, TBookmarkstr=string, Tbookmark=pointer<br />
* '''New behaviour''': TDataset.Bookmark is of type TBookmark, TBookmarkstr=ansistring, TBookmark=TBytes. TBookmarkstr will trigger a deprecated warning.<br />
* '''Reason''': D2009+ compatibility, where probably the fact that string became a 2-byte encoding was the trigger.<br />
* '''Remedy''': Adjust typing in descendents and using code accordingly.<br />
<br />
===== TODBCConnection (odbcconn) No longer autocommit =====<br />
* '''Old behaviour''': Autocommit was enabled: Every change was committed to the database at once.<br />
* '''New behaviour''': Changes must be committed explicitly using Transaction.Commit<br />
* '''Reason''': Transactions are useless if everything is autocommitted: in particular; rollback is not possible.<br />
* '''Remedy''': You can enable autocommit by specifying AUTOCOMMIT=1 in the params of TODBCConnection.<br />
<br />
===== TDBF unit deprecation removed =====<br />
* '''Old behaviour''': the TDBF units were marked deprecated because the original maintainer of the upstream project stopped maintenance. However, the unit remained in fcl-db and patches were still accepted.<br />
* '''New behaviour''': the deprecation warning is removed. There is a new upstream project maintainer and FPC database devs support this unit again.<br />
* '''Remedy''': N/A<br />
<br />
===== TBufDataset.SaveToFile, SaveToStream: Binary Format (dfBinary) of saved data changes =====<br />
* '''Old behaviour''': Record data was saved to stream just as they exist in the TBufDataset memory record buffer.<br />
* '''New behaviour''': Record data are saved field by field. Each variable length field begins with a 4 byte length indicator followed by data. Fixed length fields are stored without prefixed length indicator. LoadFromFile, LoadFromStream support both formats (OLD and NEW).<br />
* '''Reason''': BLOBs were not saved correctly in the OLD format: instead of BLOB data, a pointer to memory where BLOB data resided was saved.<br />
* '''Remedy''': if you need the OLD behavior in saving, you must register your own DataPacketReader using RegisterDatapacketReader procedure.<br />
<br />
==== FileNameCaseSensitive and FileNameCasePreserving in unit System ====<br />
* '''Old behaviour''': There was only one constant (FileNameCaseSensitive) which signalized behaviour of the respective target platform with regard to the case in filenames. This was often set to true also on platforms not really treating filenames in case sensitive manner (e.g. Win32 and Win64).<br />
* '''New behaviour''': FileNameCaseSensitive is set to true only on platforms which really treat filenames in case sensitive manner and FileNameCasePreserving constant is added to unit system of all platforms to signalize whether the case in filenames supplied when creating or renaming them is preserved or not. This might possibly break existing user code relying on the previous (sometimes incorrect) value of FileNameCaseSensitive.<br />
* '''Reason''': In reality, there are two distinct types of behaviour. If a platform is case sensitive, searching for file "a" will never result in finding file "A" whereas case insensitive platform will happily return "A" if such a file is found on the disk. If a platform is case preserving, it will store file "a" as "a" on disk whereas case non-preserving platform may convert the filenames to uppercase before storing them on disk (i.e. file "a" is in reality stored as "A"). Case non-preserving platforms are never case sensitive, but case preserving platforms may or may not be case sensitive at the same time.<br />
* '''Remedy''': Review your existing code using FileNameCaseSensitive, check which of the two properties described above fit the particular purpose in your case and change to FileNameCasePreserving where appropriate.<br />
<br />
==== Some longtime deprecated functions in unit Unix have been removed. ====<br />
* '''Old behaviour''': Unix.(f)statfs, Unix.shell and Unix.fsync symbols existed in unit Unix <br />
* '''New behaviour''': Unix.(f)statfs, Unix.shell and Unix.fsync were removed<br />
* '''Reason''': These were helper functions and leftovers from the 1.0.x->2.0.0 conversion, deprecated since 2007. Shell had non standarized conventions<br />
* '''Remedy''': All but shell: use the same functions with a "fp" prefix. Shell: use fpsystem. If you checked the return value for other values than -1, a modification of the errorchecking might be necessary. Refer to your *nix documention, or have a look at the transformfpsystemtoshell function in tests/util/redir.pp in the FPC sources to see what a quick fix looks like.<br />
<br />
==== statfs has been renamed to fpstatfs ====<br />
* '''Old behaviour''': One overload of fpstatfs was not renamed from statfs to fpstatfs (around 2.4.0)<br />
* '''New behaviour''': The function has been renamed.<br />
* '''Reason''': Should have been done in 2.4.0 to begin with, but was postponed several times to coincide with a major version change. <br />
* '''Remedy''': Use fpstatfs<br />
<br />
==== RTLeventsync has been removed ====<br />
* '''Old behaviour''': The thread manager record contained an ''rtleventsync'' field, and the RTL had an ''RTLeventsync'' routine. No functionality for this routine was implemented in the FPC-supplied thread manager for any platform.<br />
* '''New behaviour''': The field and routine have been removed.<br />
* '''Reason''': The functionality was not available on any platform by default, and we're not aware of any third party thread manager that implemented them or third party code that relied on it. Additionally, the routine was documented as "Obsolete. Don't use.", without any explanation of what it was supposed to do.<br />
* '''Remedy''': Remove any such calls from your code.<br />
<br />
==== FPCanvas Strikethough property spelling fixed to StrikeThrough ====<br />
* '''Old behaviour''': Fonts had a Striketrough property which is a typo.<br />
* '''New behaviour''': The property has been changed to Strikethrough.<br />
* '''Reason''': Spelling fix.<br />
* '''Remedy''': Please rename property calls in your code. FPC 2.6.2 contains both versions so there is a window for adaptation.<br />
<br />
==== TVersionInfo (fileinfo unit) re-implemented in a platform independent way ====<br />
* '''Old behaviour''': GetVersionSetting method would read file information.<br />
* '''New behaviour''': The ReadFileInfo call will read the information. The global GetProgramVersion call will extract the program major/minor/revision/build version in 1 single call.<br />
* '''Reason''': The unit now uses FPC resources on all platforms, and can now be used to read external resources.<br />
* '''Remedy''': Use the ReadFileInfo call to get the version information. Add relevant units for desired resource support to your uses clause; e.g. if you need to read Windows .exe file info, add winpeimagereader<br />
<br />
==== shlobj symbols removed from unit Windows ====<br />
* '''Old behaviour''': When unit windows was splitted between unit windows and shlobj, not all shlobj symbols were removed from Windows. Currently these are being deprecated, and will be removed in next major version.<br />
* '''New behaviour''': shlobj symbols won't be in Windows, code relying on that will fail to compile if it doesn't import shlobj<br />
* '''Reason''': shlobj and windows versions were not compatible and lead to errors. <br />
* '''Remedy''': put shlobj in your uses, if not there already.<br />
<br />
=== Language Changes ===<br />
<br />
==== Variant overload preference for string types ====<br />
* '''Old behaviour''': Preference for string types was (from better to worse): ShortString, AnsiString, WideString, UnicodeString<br />
* '''New behaviour''': Preference for string types now (from better to worse): WideString, UnicodeString, AnsiString, ShortString<br />
* '''Reason''': Unicode characters and codepage information will not lose during the conversion and unicode Delphi compatibility.<br />
* '''Remedy''': Use explicit conversion (e.g. ShortString(V)) if it is needed to pass variant to routine with paticular string type argument.<br />
<br />
==== Default values in implementation but not in interface/forward declaration ====<br />
* '''Old behaviour''': The implementation of a routine could declare default values even if the interface declaration did not have any.<br />
* '''New behaviour''': Default values, if any, must be specified in the interface. They can be repeated in the implementation, but that is not required (just like it was not in the past).<br />
* '''Reason''': Default parameters specified only in the implementation are not, and cannot, be propagated to the interface since a unit's interface can be used before the implementation has been parsed (see http://bugs.freepascal.org/view.php?id=19434), Delphi compatibility.<br />
* '''Remedy''': Always specify default parameter values (also) in the interface/forward declaration of a routine.<br />
<br />
==== Default values are now properly typechecked ====<br />
* '''Old behaviour''': The compiler did not detect default values for parameters of which the type did not in any way correspond to the parameter type. <br />
* '''New behaviour''': The compiler now properly checks whether the type of the constant matches the parameter's type when parsing default values.<br />
* '''Reason''': Proper type checking is one of the fundamental properties of the Pascal language; Delphi compatibility.<br />
* '''Remedy''': Add a typecast around default values that now result in compiler errors, or correct the type of such parameters.<br />
<br />
==== Recursive parameterless function calls in MacPas mode ====<br />
* '''Old behaviour''': When using the name of a function inside its own body on the right hand side of an expression, the compiler treated this as a read of the last value assigned to the function result in MacPas mode.<br />
* '''New behaviour''': The compiler will now treat such occurrences of the function name as recursive function calls in MacPas mode.<br />
* '''Reason''': Compatibility with Mac Pascal compilers.<br />
* '''Remedy''': If you wish to read the current function result value, compile the code with ''{$modeswitch result}'', after which you can use the ''result'' alias for that value. Note that the use of this mode switch can also result in [[User_Changes_2.6.0#Implicit_.22result.22_variable_in_MacPas_mode|different behaviour]] compared to traditional Mac Pascal compilers.<br />
<br />
==== "''strict protected''" visibility modifier ====<br />
* '''Old behaviour''': ''strict protected'' did not correctly limit the visibility of symbols declared in different units.<br />
* '''New behaviour''': ''strict protected'' symbols can now only be accessed from descendent classes, regardless of where they are defined.<br />
* '''Reason''': Fix behaviour to conform to specification/documentation, Delphi compatibility.<br />
* '''Remedy''': Use ''protected'' or ''public'' if less strict accessibility checks are desired.<br />
<br />
==== support for type helpers added ====<br />
* '''Old behaviour''': In modes ''ObjFPC'' and ''MacPas'' it was possible to declare a unique type of a type ''helper''.<br />
* '''New behaviour''': The compiler now interprets the keyword ''helper'' as a helper type if it immediately follows the ''type'' keyword (but only if the mode is ''ObjFPC'' or ''MacPas'' or the mode switch ''Class'' is set).<br />
* '''Example''':<br />
<syntaxhighlight><br />
{$mode objfpc}<br />
type<br />
helper = LongInt;<br />
<br />
otherhelper = type helper;<br />
</syntaxhighlight><br />
The above code will no longer compile.<br />
* '''Reason''': ''type helper'' is a more logical way to declare helpers for primitive types than Delphi's ''record helper'' is.<br />
* '''Remedy''': Escape the keyword ''helper'' using a ''&''. E.g.:<br />
<syntaxhighlight><br />
{$mode objfpc}<br />
type<br />
helper = LongInt;<br />
<br />
otherhelper = type &helper;<br />
</syntaxhighlight><br />
<br />
==== "''strict protected''" and "''protected''" visibility modifier in extended records ====<br />
* '''Old behaviour''': ''strict protected'' and ''protected'' could be used used in extended records.<br />
* '''New behaviour''': ''strict protected'' and ''protected'' are no longer allowed in extended records.<br />
* '''Reason''': The only difference between ''(strict) protected'' and ''(strict) private'' is that the former allows you to access members of a parent class or object. As records don't support inheritence it makes no sense to support ''(strict) protected'' in them. This is also Delphi-compatible.<br />
* '''Remedy''': Use ''private'' instead of ''protected'' and ''strict private'' instead of ''strict protected''.<br />
<br />
==== "''static''" directive on non-class methods ====<br />
* '''Old behaviour''': It was possible to use the ''static'' on normal, non-''class'' methods<br />
* '''New behaviour''': The compiler now generates an error if ''static'' is used on normal, non-''class'' methods (except in ''object'' types)<br />
* '''Reason''': It is only correct to leave out the ''Self'' parameter if it is a class method. This is also Delphi compatible.<br />
* '''Remedy''': Prepend the ''class'' keyword to the method.<br />
<br />
==== "''static''" directive on class operators ====<br />
* '''Old behaviour''': It was possible to use the ''static'' on class operators.<br />
* '''New behaviour''': The compiler now generates an error if ''static'' is used on class operators.<br />
* '''Reason''': Class operators are by definition static, thus the ''static'' would be redundant. This is also Delphi compatible.<br />
* '''Remedy''': Remove the ''static'' keyword from class operators.<br />
<br />
====Classes implementing forward-declared interfaces====<br />
* '''Old behaviour''': It was possible to declare classes as implementing a forward-declared interface.<br />
* '''New behaviour''': Classes can no longer implement forward-declared interfaces.<br />
* '''Reason''': This occasionally [http://bugs.freepascal.org/view.php?id=24184 caused crashes], the compiler did not check in such a case whether the class actually implemented the methods of that interface. Recent versions of Delphi also reject such constructs.<br />
* '''Remedy''': If there is a cyclic dependency between a class and an interface, use a forward declaration for the class instead.<br />
<br />
====Using the function name as alias for loading its current result value in MacPas mode====<br />
* '''Old behaviour''': Inside a function the name of the function could be used on the right hand side (RHS) of an expression in order to refer to the current value of the function result.<br />
* '''New behaviour''': Using the name of a function on the RHS of an expression inside that function's body now always results in a recursive function call.<br />
* '''Reason''': The old behaviour existed because under '''some''' circumstances CodeWarrior behaved that way. Under other circumstances [http://bugs.freepascal.org/view.php?id=22344 it however behaves according to the new rule] and there appears to be no definition available of when it does what. Since it is easier to fix a compilation error than to find out where an intended recursive function call is not doing anything, we opted to change the behaviour.<br />
* '''Remedy''': Either use a temporary local variable to hold the function result if you want to reuse it on the RHS of other expressions, or add '''{$modeswitch result}''' and use the '''result''' pseudo-variable as an alias for the function result.<br />
<br />
==== nostackframe forbidden for pascal subroutines ====<br />
* '''Old behaviour''': The nostackframe directive could be applied to all types of subroutines.<br />
* '''New behaviour''': The nostackframe directive is allowed only for pure assembler subroutines,<br />
* '''Reason''': Depending on the architecture, abi and code of the subroutine, nostackframe might have worked or caused random crashes. This was unpredictable and makes no sense.<br />
* '''Remedy''': Remove the nostackframe from pascal subroutines. If the compiler can, it will omit the stack frame anyways.<br />
<br />
====Conversion preference of pansichar to various string types====<br />
* '''Old behaviour''': In {$h-} mode, the compiler preferred ''pansichar''->''shortstring'' to ''pchar''->''ansistring'' conversions, and gave ''pansichar''->''ansistring'' and ''pchar''->''unicodestring'' the same conversion preference.<br />
* '''New behaviour''': The compiler now always prefers ''pansichar''->''ansistring'' to ''pansichar''->''shortstring'', and also prefers ''pansichar''->''ansistring'' to ''pansichar''->''unicodestring'' (which it in turn prefers to ''pansichar''->''shortstring'').<br />
* '''Reason''': Prevent truncation of long pchars, make it easier to add unicodestring overloads to the RTL without causing ''can't decide which overloaded function to call'' errors when using pchars, Delphi compatibility.<br />
* '''Remedy''': Use ''strpas()'' to explicitly truncate pchars to shortstrings if desired.<br />
<br />
==== Comparative operators can have any result type ====<br />
* '''Old behaviour''': Comparative operators allowed to have only Boolean result type.<br />
* '''New behaviour''': Comparative operators allowed to have any result type.<br />
* '''Reason''': Result type is checked anyway by regular type check mechanism, so it is not possible as before to use operators which return non Boolean results in IF, WHILE, UNTIL nodes but now it is possible to use them in other cases.<br />
* '''Remedy''': not known..<br />
<br />
== Unix platforms ==<br />
<br />
=== cthreads: critical sections and recursive mutex support ===<br />
* '''Old behaviour''': If the ''cthreads'' unit thread manager was used on a platform without recursive mutex support, critical sections were non-reentrant.<br />
* '''New behaviour''': Initialising a critical section under the above circumstances will now result in a run time error.<br />
* '''Reason''': One of the basic properties of (Delphi/Windows-compatible) critical sections is that they are reentrant, and that is how they are generally used in Pascal code.<br />
* '''Remedy''': Use an RTLEvent instead if reentrancy is not required.<br />
<br />
<br />
== Darwin/i386 and iPhoneSim/i386 ==<br />
<br />
=== Location of certain function result types ===<br />
* '''Old behaviour''': Small records and method pointers were always returned according to the official ABI.<br />
* '''New behaviour''': When a calling convention other than ''cdecl'', ''cppdecl'' or ''mwpascal'' is used, the same convention as on other platforms is now used.<br />
* '''Reason''': Better compatibility with assembler code written for other platforms.<br />
* '''Remedy''': Update your assembler code, or better: if possible, convert it to Pascal.<br />
<br />
== All Darwin/Mac OS X/iOS ==<br />
===MacOSAll unit: changed parameter and opaque types===<br />
<br />
* '''Change''': The headers have been updated to the Mac OS X 10.8 SDK, and in this process a number of signatures have been changed/corrected, and several opaque types have been changed from ^SInt32 into pointers to different/incompatible empty records.<br />
* '''Reason''': The reasons for the signature changes are detailed below. The opaque types have been made incompatible so that the compiler can give error messages when trying to use one opaque type instead of another (e.g., in the past the compiler did not complain when passing a ControlRef to a routine that expected a WindowPtr).<br />
* '''Remedy''': Adjust your code to conform to the new signatures. Regarding the opaque types, that means that these types are no longer assignment-compatible. Some of the more prominent ones that may affect existing, correct, code are HIObject and ControlRef=HIViewRef. This may require adding typecasts to keep code compiling (the same typecasts are required in C)<br />
* '''Changes:''' (apart from the opaque type changes)<br />
** CGGLContextCreate : fixed first parameter (was "var", now is value parameter)<br />
** CFHostGetAddressing: var hasBeenResolved: boolean -> booleanptr because can be nil<br />
** CFHostGetNames: var hasBeenResolved: boolean -> booleanptr because can be nil<br />
** ColorSyncIterateInstalledProfiles: var seed: UInt32 -> UInt32Ptr because can be nil<br />
** AudioStreamGetPropertyInfo: outSize and outWritable changed to pointer because can be nil<br />
** cblas (several var-parametes changed to pointers because they represent arrays):<br />
*** cblas_sswap, cblas_dswap: X, Y<br />
*** cblas_scopy, cblas_dcopy: Y<br />
*** cblas_saxpy, cblas_daxpy: Y<br />
*** catlas_saxpby, catlas_daxpby: Y<br />
*** catlas_sset, catlas_dset: X<br />
*** cblas_sscal, cblas_dscal: X<br />
*** cblas_sgemv, cblas_dgemv: X<br />
*** cblas_strmv, cblas_dtrmv: X<br />
*** cblas_stbmv, cblas_dtbmv: X<br />
*** cblas_stpmv, cblas_dtpmv: Ap, X<br />
*** cblas_strsv, cblas_dtrsv: X<br />
*** cblas_stbsv, cblas_dtbsv: X<br />
*** cblas_stpsv, cblas_dtpsv: Ap, X<br />
*** cblas_ssymv, cblas_dsymv: X<br />
*** cblas_ssbmv, cblas_dsbmv: Y<br />
*** cblas_sspmv, cblas_dspmv: Ap, Y<br />
*** cblas_sger, cblas_dger: A<br />
*** cblas_ssyr, cblas_dsyr: A<br />
*** cblas_sspr, cblas_dspr: Ap<br />
*** cblas_ssyr2, cblas_dsyr2: A<br />
*** cblas_sspr2, cblas_dspr2: A<br />
*** cblas_sgemm, cblas_sgemm: C<br />
*** cblas_ssymm, cblas_Dsymm: C<br />
*** cblas_ssyrk, cblas_dsyrk: C<br />
*** cblas_ssyr2k, cblas_dsyr2k: C<br />
*** cblas_strmm, cblas_dtrmm: B<br />
*** cblas_strsm, cblas_strsm: B<br />
** vBLAS (idem)<br />
*** SDOT: X, Y<br />
*** SNRM2: X<br />
*** SASUM: X<br />
*** ISAMAX: X<br />
*** SSWAP: X, Y<br />
*** SCOPY: X, Y<br />
*** SAXPY: X, Y<br />
*** SROT: X, Y<br />
*** SSCAL: X<br />
*** SGEMV, A, X, Y<br />
*** SGEMM: A, B, C<br />
** vDSP (idem)<br />
*** vDSP_sve_svesq, vDSP_sve_svesqD: __vDSP_A<br />
*** vDSP_normalize, vDSP_normalizeD: __vDSP_A, __vDSP_C<br />
<br />
== Windows/x86_64 ==<br />
<br />
=== Exception handling has been changed to be ABI-conformant ===<br />
<br />
* '''Old behaviour''': Exceptions were handled using platform-independent mechanism based on SetJmp/LongJmp.<br />
* '''New behaviour''': Exceptions are handled using OS-provided means. The most important differences from generic handling are as follows:<br />
** Every executable contains a <tt>.pdata</tt> section describing layout of function stack frames. This data is used to perform stack back-tracing. As a consequence, the backtraces generated when exception occurs are no longer dependent of code optimization settings. However, they may be different from ones produced by gdb.<br />
** GNU binutils have troubles creating executables with <tt>.pdata</tt> sections. In particular, ld version < 2.22 crashes at such executables, and using GNU as together with internal linker will strip all <tt>.pdata</tt>, resulting in a non-working executable.<br />
** An exception is handled in two phases. First phase determines the target frame (i.e. the 'except' statement that will handle the exception), the second phase does actual stack unwinding and executing code in 'finally' statements. In contrast, the generic mechanism is single-phase: it starts unwinding immediately and proceeds until an 'except' statement handles the exception or the stack runs out.<br />
* '''Reason''': Multiple compatibility issues with Windows and third-party DLLs (see http://bugs.freepascal.org/view.php?id=12974 and related issues)<br />
* '''Remedy''': No changes are necessary unless your code relies on specific exception handling details. Build programs using FPC's internal assembler and linker, do not use GNU binutils. The entire feature can be disabled by cycling the compiler with <tt>OPT=-dDISABLE_WIN64_SEH</tt> in command line.<br />
<br />
== WinCE ==<br />
<br />
=== Define ''UNICODE'' was changed to ''FPC_OS_UNICODE'' ===<br />
<br />
* '''Old behaviour''': For arm-wince and i386-wince ''UNICODE'' was defined by default.<br />
* '''New behaviour''': For arm-wince and i386-wince ''FPC_OS_UNICODE'' is defined by default.<br />
* '''Reason''': For upcoming support for setting String to UnicodeString the define ''UNICODE'' now is defined if the type String is currently defined as UnicodeString. This is also in so far Delphi compatible that from Delphi 2009 on ''UNICODE'' is defined as well.<br />
* '''Remedy''': Check for ''FPC_OS_UNICODE'' to decide whether the OS only provides a Unicode API (in the sense of Wide- or UnicodeString) and use ''UNICODE'' to decide whether the type String is currently defined as UnicodeString or not.<br />
<br />
== Other == <br />
<br />
=== Stabs support has been disabled for 64 bit targets ===<br />
* '''Old behaviour''': While the default debug information format for 64 bit targets was DWARF (except for AIX, where it's Stabx), it was possible to switch it to Stabs via the -gs command line parameter.<br />
* '''New behaviour''': Only the DWARF debug format is still supported on 64 bit targets (except for AIX, where Stabx is used).<br />
* '''Reason''': Stabs is not well-defined for 64 bit targets, nor well-supported by gdb on those same targets. This can lead to [http://bugs.freepascal.org/view.php?id=23365 problems]<br />
* '''Remedy''': Do not use -gs when compiling for 64 bit targets. If you do so anyway, the compiler will display a warning and keep the previously set (supported) debug format.<br />
<br />
== See also ==<br />
* [[FPC New Features Trunk]]<br />
[[Category:FPC User Changes by release]]</div>
Paul Ishenin
https://wiki.freepascal.org/index.php?title=Lazarus_1.2.0_release_notes&diff=70680
Lazarus 1.2.0 release notes
2013-06-22T14:48:30Z
<p>Paul Ishenin: /* LCL Changes */</p>
<hr />
<div>{{Lazarus 1.2.0 release notes}}<br />
<br />
'''Lazarus 1.2.0 is not yet released. This page is under construction!'''<br />
<br />
Statistics:<br />
# commits: xxx<br />
# log: svn log -r xxxx:xxxx<br />
# resolved bug tracker issues: xxx<br />
<br />
= LCL Interfaces Changes =<br />
<br />
= LCL Changes =<br />
<br />
* TMemo.WantReturns is implemented<br />
<br />
= IDE Changes =<br />
<br />
* Editor<br />
** Interactive Hints (Mouse can enter Hints / Hints have links). Requires package TurboPowerIProDsgn<br />
** Macro Recorder/Player<br />
*** Multiple macros. Ability to select/change macro from list.<br />
*** Individual key-shortcuts for each Macro<br />
*** Macros can be saved per project or with the global IDE config<br />
*** Package EditorMacroScripting: Allow use of PascalScript in macros.<br />
** Sticky selection mode<br />
** Highlight different (user specified) words in different colors [[IDE_Window:_Editor_User_Defined_Words| See here]]<br />
** Auto-continue for comments and strings<br />
** Inactive code in $IFDEF can be "low-lighted" (greyed out)<br />
** Markup/Highlight colors can be merged (alpha channel) and prioritised.<br />
* Debugger<br />
** Watches window: added detail view, for selected watch<br />
** Debug Inspector: Ability to directly input expression to monitor<br />
** Attach and Detach<br />
*When option "open last project" is enabled (default) and the IDE was closed with no project, no project will open at start. When a virtual (not saved) project was open a new Application project is created.<br />
* The [[IDE_Window:_Package_Graph|Package Graph]] now uses the new TLvlGraphControl, showing all package dependencies including project and IDE.<br />
* Package Editor: new menu item to find and remove unneeded dependencies<br />
* IDEIntf: Added boolean parameter BringToFront (defaults to false) to TLazIDEInterface.DoShowSearchResultsView. It specifies whether Search Results dialog should be shown on top or under Source Editor. Behavior of existing code calling this method is not affected.<br />
* IDEIntf: Added TPropertyEditor.GetVerbCount, GetVerb, PrepareItem, ExecuteVerb to let TPropertyEditors add menu items to the Object Inspector.<br />
* The page in the "Project options / Compiler options / IDE Macro Values" was replaced with a more powerful page "[[IDE_Window:_Compiler_Options#Additions_and_Overrides|Additions and Overrides]]". Things that you can do now, which were not possible before:<br />
** Append fpc options to packages without touching the lpk<br />
** Changing the output directory of packages without touching the lpk<br />
** Define IDE macros only for some packages or only for the project<br />
** Append compiler options for all projects with build mode "debug"<br />
** Change the package(s) output directory of all projects and packages with build mode "release"<br />
** Append compiler options of third party projects and packages without altering their sources<br />
* The compiler options page [[IDE_Window:_Compiler_Options#Inherited|Inherited]] was moved to the ''Show options'' dialog.<br />
<br />
= lazbuild =<br />
<br />
* Added options --verbose, --quiet and -q to increase/decrease verbosity. You can pass them multiple times.<br />
* When compiling a project (.lpi) lazbuild now checks if the project needs compilation and if not will not call the compiler. It also now writes why it recompiles.<br />
<br />
= Components =<br />
<br />
== TAChart ==<br />
<br />
* Series:<br />
** Transparency <br />
**<code>AddArray</code>, <code>AddNull</code>, <code>AddX</code> and <code>AddY</code> functions, <code>SetText</code> procedure<br />
** <code>TFitSeries.IEquationText</code> interface<br />
** <code>TPolarSeries.CloseCircle</code> property<br />
** <code>TFuncSeries.ExtentAutoY</code> property<br />
** <code>TBarSeries.GetBarWidth</code> function<br />
* Tools:<br />
** New tool: <code>TDataPointDistanceTool</code><br />
** <code>EscapeCancels</code> property for dragging tools<br />
** <code>TDataPointHintTool</code>: <code>UseApplicationHint</code> property, <code>OnHintPosition</code> event<br />
** <code>TDataPointFragTool</code>: <code>Origin</code> property, <code>OnDrag</code>, <code>OnStartDrag</code> events<br />
** <code>TZoomDragTool.RestoreExtentOn</code> property<br />
** <code>TChartToolset.DispatchedShiftState</code> property<br />
* Sources:<br />
** <code>TDbChartSource</code>: <code>Options=[dcsoDateTimeX, dcsoDateTimeY]</code> property, <code>OnGetItem</code> event<br />
** <code>TListChartSource</code>: <code>SetText</code>, <code>SetColor</code>, <code>AddXYList</code> procedures<br />
** New sources: <code>TCustomAnimatedChartSource</code>, <code>TCustomAxisChartSource</code><br />
* Axes and marks:<br />
** Axis index property editor<br />
** <code>TChartAxis</code>: <code>Position</code>, <code>Value</code>, <code>ValueCount</code> properties, <code>IsPointInside</code> function<br />
** Marks: <code>Arrow</code>, <code>Margins</code>, <code>Shape</code>, <code>CalloutAngle</code> properties, <code>OnGetShape</code> event<br />
* Misc<br />
** <code>TAChartTeeChart</code> unit with some helpers for migration from TeeChart<br />
** <code>TChart</code>: <code>IsZoomed</code>, <code>PrevLogicalExtent</code>, <code>AutoFocus</code> properties<br />
** <code>TChartExtentHistory</code> utility class <br />
** 3 new demos: <code>lazreport</code>, <code>animate</code>, <code>distance</code><br />
<br />
== TDBImage ==<br />
Delphi compatible behaviour can now be set.<br />
<br />
Lazarus TDBImage by default saves information about the file type before the image data. This allows seamless use of various file formats (.jpg, .bmp,...). Delphi does not save information about the file type.<br />
<br />
To allow programmers to use TDBImage more flexibly, including supporting Delphi compatibility, two events to TDBImage were added:<br />
<syntaxhighlight><br />
TOnDBImageRead = procedure(Sender: TObject; S: TStream; var GraphExt : string) of object;<br />
TOnDBImageWrite = procedure(Sender: TObject; S: TStream; GraphExt : string) of object;<br />
</syntaxhighlight><br />
<br />
If the first event is defined then it is called instead of TDBImage reading from the stream and must return the file extension as GraphExt. For example:<br />
<syntaxhighlight><br />
procedure TMyForm.TDBImageDBImageRead(Sender: TObject; S: TStream;<br />
var GraphExt: string);<br />
begin<br />
GraphExt := 'jpg'<br />
end;<br />
</syntaxhighlight><br />
can be used when the type of the image is always JPEG.<br />
<br />
Similarly, if OnDBImageWrite is present then this is called instead of TDBImage writing the file extension to the start of the BLOB in the database. For example:<br />
<br />
<syntaxhighlight><br />
procedure TMyForm.PhotoDBImageWrite(Sender: TObject;<br />
S: TStream; GraphExt: string);<br />
begin<br />
if GraphExt <> 'jpg' then<br />
raise Exception.Create('Can only save a JPEG Image')<br />
end;<br />
</syntaxhighlight><br />
also works for an implicit JPEG.<br />
<br />
<br />
== TLvlGraphControl ==<br />
<br />
This new control is part of the package LazControls and used by the IDE itself as well. The control shows a graph consisting of nodes and edges as a level graph (this type of graph is also called a layered graph).<br />
<br />
[[File:packagegraph1.png]]<br />
<br />
TLvlGraphControl Features<br />
<br />
* Offers automatic topological sorting, with an option to put nodes leftmost or rightmost<br />
* You can automatically combine edges. Long edges over multiple levels are combined into single lines with forks.<br />
* Provides a heuristic to minimize line crossings<br />
* Automatically prevents overlapping of display elements<br />
* Nodes can be displayed as rectangles, ellipses or icons stored in a TImageList<br />
* You can select nodes using the mouse<br />
* You can select multiple nodes at once<br />
* You can highlight nodes or edges under the mouse<br />
* The control displays back edges in special colours, which facilitates quick visual identification of cycles (e.g. unit circles).<br />
* Edges can be drawn straight or curved (bezier)<br />
* There is a header caption<br />
* Node captions can be shown to the left, to the right, above or below nodes<br />
* All colors can be set via published properties<br />
* There are events provided to custom-draw and/or skip each part of the default drawing<br />
<br />
There is a simple example in examples/levelgraph/lvlgraph_dependencies.lpi.<br />
<br />
[[File:unitdependencies1.png]]<br />
<br />
== TTIPropertyGrid,TTICustomPropertyGrid ==<br />
<br />
Added event '''OnEditorFilter''' to let user define what properties to show.<br />
<br />
= Changes affecting compatibility =<br />
<br />
==LCLType INVALID_HANDLE_VALUE now Handle(-1)==<br />
<br />
*Old value: LCLType.Handle(0)<br />
*New value: LCLType.Handle(-1)<br />
*Effect: ported code from Delphi now works right, code that misused the constant now works wrong<br />
*Reason: This constant is a WinAPI constant and used for Windows functions like FileOpen and FileCreate as return value on failure. The cross-plaform FCL functions with the same name return the same value on failure. LCL didn't use this constant itself. It is defined in LCL to make porting Delphi code easier.<br />
*Remedy: Check your code if the INVALID_HANDLE_VALUE are from unit LCLType or from unit Windows. If the former, then check the code logic.<br />
<br />
==LCL TCustomForm.AddHandlerFirstShow,AddHandlerClose,AddHandlerCreate parameter AsFirst default value changed to false==<br />
<br />
*Effect: old code might now be called after other handlers.<br />
*Reason: Consistency with other LCL AddHandler.<br />
*Remedy: If your event needs to be called earlier add parameter '''true''' to call.<br />
<br />
==LCL TScreen.AddHandlerFormAdded, AddHandlerRemoveForm, AddHandlerActiveControlChanged, AddHandlerActiveFormChanged, AddHandlerFormVisibleChanged parameter AsFirst default value changed to false==<br />
<br />
*Effect: old code might now be called after other handlers.<br />
*Reason: Consistency with other LCL AddHandler.<br />
*Remedy: If your event needs to be called earlier add parameter '''true''' to call.<br />
<br />
==LCL TAction.OnExecute no longer sets TControl/TMenuItem.OnClick==<br />
<br />
*Old behavior: When setting Action.OnExecute all associated OnClick events of TControl and TMenuItem were set as well. The OnClicks were not saved to lfm.<br />
*New behavior: When setting Action.OnExecute no other event is set. On click first the OnClick and then the Action.OnExecute is called.<br />
*Effect: Code that checks if OnClick is assigned instead of the Action.OnExecute fails.<br />
*Reason: Allow to set separate OnClick and OnExecute events, consistency between lfm and Object Inspector.<br />
*Remedy: Check logic of all lines containing "Assigned(OnClick)".<br />
<br />
Double clicking on a component with an Action will now automatically use the Action.OnExecute event. That means the IDE will create the event if needed and jump to implementation in the Source Editor.<br />
<br />
==IDEIntf TOICustomPropertyGrid.Favourites was renamed to Favorites==<br />
<br />
*Effect: old code might fail to compile<br />
*Reason: Consistent American spelling<br />
*Remedy: Rename used identifier<br />
<br />
==TComponentPropertyEditor behavior was changed==<br />
<br />
*Effect: users of your component can no longer select components outside of the current form.<br />
*Reason: ActiveControl editor had a list of all controls on all forms of a project and its required packages. This is not supported by ActiveControl. Only controls on the current form must be listed.<br />
*Remedy: Change the editor to collect controls only on the current form. The original editor is now called TComponentAllPropertyEditor. It is used for other properties where selection of a control is needed.<br />
<br />
This change affects 3rd party components if they defined a property editor and derived it from TComponentPropertyEditor.<br />
If they still want all controls in the list, they must inherit from TComponentAllPropertyEditor.<br />
<br />
==TBitBtn.Spacing default changed==<br />
<br />
*Effect: default Spacing is changed from 3 to 4 px<br />
*Reason: Delphi compatibility<br />
*Remedy: TBitBtn look<br />
<br />
==LazUtils CreateRelativePath behaviour changed==<br />
*Old behaviour: if a relative path could be constructed, this was sometimes appended with a pathdelimiter, and sometimes not.<br />
*New behaviour: no pathdelimiter is appended<br><br><br />
<br />
= Previous release notes =<br />
<br />
*[[Lazarus 1.0 release notes]]<br />
*[[Lazarus 0.9.30 release notes]]<br />
*[[Lazarus 0.9.28.2 release notes]]<br />
*[[Lazarus 0.9.28 release notes]]<br />
*[[Lazarus 0.9.26 release notes]]<br />
*[[Lazarus 0.9.24 release notes]]<br />
<br />
[[Category:Release Notes]]<br />
[[Category:Lazarus]]</div>
Paul Ishenin
https://wiki.freepascal.org/index.php?title=Lazarus_1.0_fixes_branch&diff=70565
Lazarus 1.0 fixes branch
2013-06-15T00:33:22Z
<p>Paul Ishenin: /* Submitted by developer / committer */</p>
<hr />
<div>This page contains the revisions to be merged from trunk to the [http://svn.freepascal.org/svn/lazarus/branches/fixes_1_0/ Lazarus 1.0 fixes] branch.<br><br />
Release notes can be found here [http://wiki.lazarus.freepascal.org/Lazarus_0.99.0_release_notes Release notes]<br />
<br />
== Fixes for 1.0.12 ==<br />
=== Merge requests ===<br />
<br />
==== Submitted by developer / committer ====<br />
*r41502, r41510, r41572: lcl: reset hintwindow region after color change<br />
<br />
===== Conflicts =====<br />
*r41407, r41408, r41409 lcl: initialize PageControl.PageIndex in handle creation instead of loaded. Fix issue when setting TabVisible after control is loaded<br />
*r41414 lcl: properly initialize keys for sorted lookup controls. Issue 23619<br />
<br />
==== Submitted by others ====<br />
<br />
=== Merged revisions for 1.0.12 ===<br />
<br />
*r41291 Qt: fixed LCLIntf.Frame3D. When FillBrush isn't filled then draw shaded box without brush (applies painter brush).issue #24445<br />
*r41475 Qt: fixed problem with TCustomPanel.Color, when panel is painted via Frame3d.Problem raised with r41291 while fixing #24445<br />
*37377,r37351 SynEdit: Mouse Selection and scroll-by-wheel. Issue Issue 0022072, 0022090<br />
*r41717 SourceSynEdit: fix scrolling with top-info hint. Issue 0024505<br />
<br />
== Fixes for 1.0.10 (Merged) ==<br />
<br />
<table><br />
<tr valign="top"><td>r40581 </td><td>codetools</td><td>fpc source scores: unit fileinfo on target non wince, bug [[http://bugs.freepascal.org/view.php?id=24070 24070]]</td></tr><br />
<tr valign="top"><td>r41481 </td><td>codetools</td><td>removed old fpc 1.0 defines, biting 2.7.1 sources</td></tr><br />
<tr valign="top"><td>r40543 </td><td>DBGrids</td><td>fix crash in PrepareCellHints when DataLink is not Active (issue [[http://bugs.freepascal.org/view.php?id=0024028 0024028]]).</td></tr><br />
<tr valign="top"><td>r41240 </td><td>Debugger</td><td>utf8 content for event-log (warnings/OutputDebugString). Issue [[http://bugs.freepascal.org/view.php?id=24353 24353]]</td></tr><br />
<tr valign="top"><td>r41233,&#x200B;r41260,&#x200B;r41265,&#x200B;r41266,&#x200B;r41270,&#x200B;r41273,&#x200B;r41275,&#x200B;r41279,&#x200B;r41293</td><td>Debugger</td><td>Improved shortstring detection. strings with utf8 content in locals and some in watches</td></tr><br />
<tr valign="top"><td>r41298 </td><td>Debugger</td><td>more utf8 for strings in watches</td></tr><br />
<tr valign="top"><td>r38231 </td><td>IDE</td><td>itmEditUndo\itmEditRedo is almost always Enabled, even when it is impossible to Undo\Redo in source Editor, issue [[http://bugs.freepascal.org/view.php?id=22633 22633]]</td></tr><br />
<tr valign="top"><td>r39405 </td><td>IDE</td><td>Autocheck radiobutton when you enter a value in the HeightEdit / WidthEdit, issue [[http://bugs.freepascal.org/view.php?id=23398 23398]]</td></tr><br />
<tr valign="top"><td>r40577 </td><td>IDE</td><td>test compiler settings: show message when busy</td></tr><br />
<tr valign="top"><td>r40628 </td><td>IDE</td><td>fixed showing broken dependencies</td></tr><br />
<tr valign="top"><td>r40640 </td><td>IDE</td><td>help for fpc messages: fixed crash when no help found, search for message file in compiler directories</td></tr><br />
<tr valign="top"><td>r40730 </td><td>IDE</td><td>project resource file version: do not set modifie is the same and initialize it after read</td></tr><br />
<tr valign="top"><td>r40803 </td><td>IDE:</td><td>package editor: extend unit/include path: shorten paths that are not sub directories, bug [[http://bugs.freepascal.org/view.php?id=24272 24272]]</td></tr><br />
<tr valign="top"><td>r41130 </td><td>IDE</td><td>remove & from key map resourcestrings</td></tr><br />
<tr valign="top"><td>r41165 </td><td>IDE</td><td>fixed caption Free Pascal in highlighter</td></tr><br />
<tr valign="top"><td>r41319 </td><td>IDE</td><td>add example projects to recent menu only once</td></tr><br />
<tr valign="top"><td>r40636 </td><td>IDEIntf</td><td>register TBoolPropertyEditor for WordBool, LongBool and QWordBool, needed since fpc 2.6.0</td></tr><br />
<tr valign="top"><td>r40728 </td><td>IDEIntf:</td><td>TCollectionPropertyEditor: fixed unselecting if owner is freed</td></tr><br />
<tr valign="top"><td>r41049 </td><td>Installer,&nbsp;Win</td><td>add French translation. Patch by ChrisF. Issue [[http://bugs.freepascal.org/view.php?id=24171 24171]]</td></tr><br />
<tr valign="top"><td>r41057 </td><td>Installer,&nbsp;Win</td><td>cleaned up OldInOtherFolder1 string as per ChrisF's comment in bug [[http://bugs.freepascal.org/view.php?id=24171 24171]]</td></tr><br />
<tr valign="top"><td>r40562 </td><td>LCL</td><td>gtk, fix LazReport designer sometimes presented as a thin vertical or horizontal band that runs from center of screen under gtk2/64-bit, related to issue [[http://bugs.freepascal.org/view.php?id=21634 21634]]</td></tr><br />
<tr valign="top"><td>r40778 </td><td>LCL</td><td>navFocusableButtons doesn't work in TDBNavigator, modified patch from Éderson Cássio, issue [[http://bugs.freepascal.org/view.php?id=24191 24191]]</td></tr><br />
<tr valign="top"><td>r41501 </td><td>LCL</td><td>use UTF8Length instead of Length on calc dbgrid column field width, from Rumen Gyurov, issue [[http://bugs.freepascal.org/view.php?id=24491 24491]]</td></tr><br />
<tr valign="top"><td>r40758 </td><td>LCL</td><td>fixed conditionals for default LCLWidgetType</td></tr><br />
<tr valign="top"><td>r41373 </td><td>LCL</td><td>TTreeView: clear cache when adding node</td></tr><br />
<tr valign="top"><td>r41411 </td><td>LCL</td><td>prevent change in dbcombobox when autoedit is false. Issue [[http://bugs.freepascal.org/view.php?id=24207 24207]]</td></tr><br />
<tr valign="top"><td>r41453 </td><td>LCL</td><td>TFilterComboBox: freenotification for ShellListView, bug [[http://bugs.freepascal.org/view.php?id=24512 24512]]</td></tr><br />
<tr valign="top"><td>r41477 </td><td>LCL gtk2</td><td>fixed AskUser,QuestionDlg escape key result</td></tr><br />
<tr valign="top"><td>r40900 </td><td>LCL</td><td>MaskEdit: respect AutoSelect if control is masked. Issue [[http://bugs.freepascal.org/view.php?id=0024311 0024311]]</td></tr><br />
<tr valign="top"><td>r40513 </td><td>Qt</td><td>do not trigger scroll events while calling SetScrollInfo, fix issue 23815</td></tr><br />
<tr valign="top"><td>r40563 </td><td>Qt</td><td>fixed default text color of QTabBar. issue [[http://bugs.freepascal.org/view.php?id=23985 23985]]</td></tr><br />
<tr valign="top"><td>r40956 </td><td>Qt</td><td>fixed determination of string content (RightToLeft vs. LeftToRight). issue #24340</td></tr><br />
<tr valign="top"><td>r40621,40622, 40625 </td><td>Qt</td><td>fixes for buggy xfwm4 window manager under X11</td></tr><br />
<tr valign="top"><td>r40993 </td><td>Qt</td><td>formatting</td></tr><br />
<tr valign="top"><td>r40995 </td><td>Qt</td><td>fixed visibility of THintWindow class when virtual desktop is switched or application minimized.issue #24363</td></tr><br />
<tr valign="top"><td>r41339 </td><td>Qt</td><td>fixed bad behaviour of popup windows under metacity window manager.</td></tr><br />
<tr valign="top"><td>r41346 </td><td>Qt</td><td>fixed problems with modal and popup windows over modal windows with Mint's Marco window manager (Mate desktop)</td></tr><br />
<tr valign="top"><td>r41378 </td><td>Qt</td><td>fixed bug with AltGr key handling under windows.We are using winapi directly as workaround for bug in Qt library. issue [[http://bugs.freepascal.org/view.php?id=23808 23808]]</td></tr><br />
<tr valign="top"><td>r40764 </td><td>Qt</td><td>implemented getKeyState for caps lock and numlock under x11 and win32 targets</td></tr><br />
<tr valign="top"><td>r41347 </td><td>Qt</td><td>rework fixes for metacity like wm's. Now marco and gnome shell are mapped as metacity.</td></tr><br />
<tr valign="top"><td>r40954 </td><td>Qt</td><td>use QPolygonH to draw poly regions in FillRgn()</td></tr><br />
<tr valign="top"><td>r41144 </td><td>Qt</td><td>workaround for Qt lib bug (QStyle) where disabled button doesn't have activated disabled colors palette. issue [[http://bugs.freepascal.org/view.php?id=24413 24413]]</td></tr><br />
<tr valign="top"><td>r40723 </td><td>ShellCtrls</td><td>declare property ViewStyle of TShellListView as "default vsReport" (issue [[http://bugs.freepascal.org/view.php?id=0024226 0024226]]).</td></tr><br />
<tr valign="top"><td>r41220,r41222,r41228 </td><td>SynEdit</td><td>Trim spaces - position only: Do not mark buffer as modified, if pressing space at EOL. Follow up revision 40680</td></tr><br />
<tr valign="top"><td>r40545 </td><td>SynEdit</td><td>Fixed gutter resizing. Issue [[http://bugs.freepascal.org/view.php?id=0023990 0023990]]</td></tr><br />
<tr valign="top"><td>r40680 </td><td>SynEdit</td><td>fixed trim-space (mode "position only") would corrupt text on certain undo. Issue [[http://bugs.freepascal.org/view.php?id=24101 24101]]</td></tr><br />
<tr valign="top"><td>r41046 </td><td>SynEdit</td><td>Fixed folding in "library" code. Issue [[http://bugs.freepascal.org/view.php?id=0024370 0024370]]</td></tr><br />
<tr valign="top"><td>r37854 </td><td>SynEdit</td><td>Pas Highlighter: recognize {$IFOPT}</td></tr><br />
<tr valign="top"><td>r41047 </td><td>SynEdit</td><td>Pas Highlighter: Completed the list of Ifdef, ifopt, elseif directives</td></tr><br />
<tr valign="top"><td>r41129 </td><td>SynEdit</td><td>Fixed folding in "label" code. Issue [[http://bugs.freepascal.org/view.php?id=0024417 0024417]]</td></tr><br />
<tr valign="top"><td>r41340 </td><td>Translations</td><td>reverted Arabic translation to r37531 by request of Mazen Neifer (current Arabic translation maintainer). Reason is poor quality/machine translation, which makes hard to use translated IDE.</td></tr><br />
</table><br />
<br />
== Fixes for 1.0.8 (Merged) ==<br />
<br />
{{Note| This release contains an upgrade of FPC to version 2.6.2. Please read [[User_Changes_2.6.2]] }}<br />
<br />
<table><br />
<tr valign="top"><td>r40143 </td><td>AggPas</td><td>Fix coordinate calculation in Pixels and Colors properties of TAggFPImage</td></tr><br />
<tr valign="top"><td>r40216 </td><td>AggPas</td><td>Fix TLazIntfImage descriptor for 32-bit pixel format</td></tr><br />
<tr valign="top"><td>r40335 </td><td>codetools</td><td>fixed parsing #0, bug [[http://bugs.freepascal.org/view.php?id=23906 23906]]</td></tr><br />
<tr valign="top"><td>r40482 </td><td>Debugger</td><td>Fixed range-check on linux. Issue [[http://bugs.freepascal.org/view.php?id=23993 23993]] Patch by C Western</td></tr><br />
<tr valign="top"><td>r38476 </td><td>Designer</td><td>Use a record of signed SmallInts to prevent range check errors. Still about issue [[http://bugs.freepascal.org/view.php?id=22760 22760]]</td></tr><br />
<tr valign="top"><td>r40371 </td><td>Gtk2</td><td>Gtk2WSCustomPanel respect TCustomPanel.Visible property when creating handle. issue [[http://bugs.freepascal.org/view.php?id=23940 23940]]</td></tr><br />
<tr valign="top"><td>r40097 </td><td>IDE</td><td>prevent debugger from entering invalid state, if started again before completely stopped. For info see issue [[http://bugs.freepascal.org/view.php?id=0023800 0023800]]</td></tr><br />
<tr valign="top"><td>r40177 </td><td>IDE</td><td>fixed restoring designed form when HideIDEWindowsOnRun = true. issue [[http://bugs.freepascal.org/view.php?id=22535 22535]]</td></tr><br />
<tr valign="top"><td>r40244 </td><td>IDE</td><td>register HTML help for LCL</td></tr><br />
<tr valign="top"><td>r40394 </td><td>IDE: SourceEdit</td><td>fixed word (word from text, not identifier) completion</td></tr><br />
<tr valign="top"><td>r37930 </td><td>Installer, Win</td><td>strip lhelp.exe</td></tr><br />
<tr valign="top"><td>r40354 </td><td>Installer, Win</td><td>fixed typo</td></tr><br />
<tr valign="top"><td>r40127 </td><td>LazReport</td><td>Band.name patch from Giuliano Colla</td></tr><br />
<tr valign="top"><td>r40323 </td><td>LCL, dbgrids</td><td>checks for keydown while dataset is inactive, issue [[http://bugs.freepascal.org/view.php?id=23598 23598]]</td></tr><br />
<tr valign="top"><td>r37446 </td><td>LCL, grids+gtk2</td><td>when pressing somekeys like shift introduces '?' in cell, relaed to issue [[http://bugs.freepascal.org/view.php?id=22056 22056]] (fixes issue [[http://bugs.freepascal.org/view.php?id=23924 23924]])</td></tr><br />
<tr valign="top"><td>r36934 </td><td>LCL, Utils</td><td>Don't HTML-escape spaces in OpenURL, it breaks OpenDocument()</td></tr><br />
<tr valign="top"><td>r37995 </td><td>LCL</td><td>Prevent an error with Pg Up/Down in DbGrid on empty Dataset. Issue [[http://bugs.freepascal.org/view.php?id=22474 22474]], patch from Stefano</td></tr><br />
<tr valign="top"><td>r40364 </td><td>LCL</td><td>Revert Changes from 31132 (and partly 31577) which replaced TGraphicControl.Update by Invalidate</td></tr><br />
<tr valign="top"><td>r40541 </td><td>LCL: gtk2</td><td>fixed registering callback LM_CONTEXTMENU for TCustomControl</td></tr><br />
<tr valign="top"><td>r40180 </td><td>Qt</td><td>keep state of forms hidden from taskbar under X11. Fixes issue [[http://bugs.freepascal.org/view.php?id=23825 23825]].</td></tr><br />
<tr valign="top"><td>r40353 </td><td>Qt</td><td>fixed item caption in TListView vsIcon style. patch by DCelso. issue [[http://bugs.freepascal.org/view.php?id=23879 23879]]</td></tr><br />
<tr valign="top"><td>r40370 </td><td>Qt</td><td>show images when with TListView.vsIcon style when we have more > 1 column. issue [[http://bugs.freepascal.org/view.php?id=23923 23923]]</td></tr><br />
<tr valign="top"><td>r40219 </td><td>SynEdit</td><td>Separator-Gutter, fixed painting</td></tr><br />
<tr valign="top"><td>r40087 </td><td>TAChart</td><td>Call inherited constructor from TBGRABitmapDrawer.Create</td></tr><br />
<tr valign="top"><td>r40090 </td><td>TAChart</td><td>Call inherited constructor from TSVGDrawer.Create</td></tr><br />
<tr valign="top"><td>r40110 </td><td>TAChart</td><td>Fix chart margins calculation for axises with ZPosition > 0</td></tr><br />
<tr valign="top"><td>r40112 </td><td>TAChart</td><td>Fix SIGFPE while drawing very narrow slices in 3D pie chart</td></tr><br />
<tr valign="top"><td>r40136 </td><td>TAChart</td><td>Workaround for range check when using TFitSeries with more than 20000 points. See also issue [[http://bugs.freepascal.org/view.php?id=23816 23816]].</td></tr><br />
<tr valign="top"><td>r39659 </td><td>ValEdit</td><td>add ItemProps to ValueListEditor</td></tr><br />
<tr valign="top"><td>r39813 </td><td>ValEdit</td><td>implement method TValueListEditor.InsertRow</td></tr><br />
<tr valign="top"><td>r39818 </td><td>ValEdit</td><td>Make button and picklist cell editors work in TValueListEditor</td></tr><br />
<tr valign="top"><td>r40193 </td><td>Valedit</td><td>Fix a bug in ValueListEditor when reading / writing value by key (Values['Key'])</td></tr><br />
<tr valign="top"><td>r40194 </td><td>ValEdit</td><td>free TValueListStrings.FItemProps in TValueListStrings.Destroy (issue [[http://bugs.freepascal.org/view.php?id=0023841 0023841]])</td></tr><br />
<tr valign="top"><td>r40195 </td><td>Valedit</td><td>delete also ItemProps when deleting strings</td></tr><br />
<tr valign="top"><td>r40197 </td><td>Valedit</td><td>also release the memory of the TValueListStrings.FItemProps array itself, not only the items</td></tr><br />
<tr valign="top"><td>r40204 </td><td>ValEdit</td><td>fix not updating active cell contents when changing Strings property</td></tr><br />
<tr valign="top"><td>r40209 </td><td>ValEdit</td><td>Fix FItemProps getting out of sync with Strings (issue [[http://bugs.freepascal.org/view.php?id=0023851 0023851]])</td></tr><br />
<tr valign="top"><td>r40224 </td><td>ValEdit</td><td>Remove unnecessary calls to Changing and Changed in overridden methods</td></tr><br />
<tr valign="top"><td>r40225 </td><td>ValEdit</td><td>Fix bug in SetOptions</td></tr><br />
<tr valign="top"><td>r40227 </td><td>ValEdit</td><td>remove unused redeclared OnEditButtonClick property</td></tr><br />
<tr valign="top"><td>r40242 </td><td>ValEdit</td><td>Publish On(Edit)ButtonClick</td></tr><br />
<tr valign="top"><td>r40253 </td><td>ValEdit</td><td>don't hide/show editor inside TValueListStrings.Put</td></tr><br />
<tr valign="top"><td>r40282 </td><td>ValEdit</td><td>Fix not updating cell in TValueListStrings.Put when goAlwaysShowEditor in Options (issue [[http://bugs.freepascal.org/view.php?id=0023875 0023875]])</td></tr><br />
<tr valign="top"><td>r40294 </td><td>ValEdit</td><td>Refactoring. Store ItemProps in TFPObjectList</td></tr><br />
<tr valign="top"><td>r40295 </td><td>ValEdit</td><td>Implement CustomSort so it keeps ItemProps in sync</td></tr><br />
<tr valign="top"><td>r40296 </td><td>ValEdit</td><td>Update Modified when Strings are changed</td></tr><br />
<tr valign="top"><td>r40297 </td><td>ValEdit</td><td>do not store '=' in Strings if "key" and "value" cell is empty</td></tr><br />
<tr valign="top"><td>r40298 </td><td>ValEdit</td><td>Ignore epmty cells when validating</td></tr><br />
<tr valign="top"><td>r40299 </td><td>ValEdit</td><td>Remove unneeded overridden SetTextStr</td></tr><br />
<tr valign="top"><td>r40333 </td><td>ValEdit</td><td>Fix not updating cell in TValueListStrings.Exchange when goAlwaysShowEditor in Options</td></tr><br />
<tr valign="top"><td>r40339 </td><td>ValEdit</td><td>Rename some private fields to improve readability and avoid ugly constructs like FOwner.FOwner</td></tr><br />
<tr valign="top"><td>r40358 </td><td>ValEdit</td><td>fix strange focus swapping</td></tr><br />
<tr valign="top"><td>r40226 </td><td>ValEdit: Refactoring</td><td>remove SelectValueEditor and override SelectEditor instead</td></tr><br />
<tr valign="top"><td>r40319 </td><td>ValEdit: TValueListStrings.Assign</td><td>Assign also ItemProps if Source is TValueListStrings</td></tr><br />
<tr valign="top"><td>r40329 </td><td>ValEdit: TValueListStrings.GetItemProp</td><td>return nil when strings are updating</td></tr><br />
</table><br />
<br />
== Fixes for 1.0.6 (Merged) ==<br />
<br />
<table><br />
<tr valign="top"><td>r39516 </td><td>Carbon</td><td>reapply brush and pen after the DC restore</td></tr><br />
<tr valign="top"><td>r39559,r39560 </td><td>Codetools</td><td>fixed TEventsCodeTool.FindMethodTypeInfo when type is an alias</td></tr><br />
<tr valign="top"><td>r39449 </td><td>Debugger</td><td>Fixed eval of watches with class-typecase and dyn-array (stabs only)</td></tr><br />
<tr valign="top"><td>r39548,r39549 </td><td>Gtk2</td><td>fixed changing of font color on GtkCheckBox. issue [[http://bugs.freepascal.org/view.php?id=23373 23373]]</td></tr><br />
<tr valign="top"><td>r39652 </td><td>Gtk2</td><td>fixed keeping of SelStart() and SelLength().issue [[http://bugs.freepascal.org/view.php?id=23219 23219]]</td></tr><br />
<tr valign="top"><td>r39986 </td><td>IDE, SourceEditor</td><td>Invalidate, if top-info-hint changes</td></tr><br />
<tr valign="top"><td>r37935 </td><td>IDE</td><td>Keymap: missing entries for select+cursor-keys</td></tr><br />
<tr valign="top"><td>r39461 </td><td>IDE</td><td>extract proc: stop if identifier is invalid</td></tr><br />
<tr valign="top"><td>r39575 </td><td>IDE</td><td>find prompt: shorten texts</td></tr><br />
<tr valign="top"><td>r39626 </td><td>IDE</td><td>check Project1 in UpdateHighlighters, bug [[http://bugs.freepascal.org/view.php?id=23529 23529]]</td></tr><br />
<tr valign="top"><td>r40033, r40037 </td><td>IDE</td><td>prevent a crash in designer "Change Class" if new name does not exist / designer: change class dlg: disable ok button</td></tr><br />
<tr valign="top"><td>r39468 </td><td>Installer, Win</td><td>Display info while installing</td></tr><br />
<tr valign="top"><td>r36994 </td><td>LazReport</td><td>published property KeepAspect and Centered for Picture Object</td></tr><br />
<tr valign="top"><td>r36995 </td><td>LazReport</td><td>published WordBreak property on Memo object plus some refactoring</td></tr><br />
<tr valign="top"><td>r38353 </td><td>LazReport</td><td>avoid duplicated export filters</td></tr><br />
<tr valign="top"><td>r38952 </td><td>LazReport</td><td>two additional export filters - TfrImageExportFilter, TfrHtmlDivExportFilter, from Michel Gawrycki</td></tr><br />
<tr valign="top"><td>r39364 </td><td>Lazreport</td><td>clip image when it's bigger than picture object and not stretched</td></tr><br />
<tr valign="top"><td>r39365 </td><td>Lazreport</td><td>fix off by one error in calculation of PictureView size. This avoids unnecessary stretch whew pictureview size = image size</td></tr><br />
<tr valign="top"><td>r39366 </td><td>Lazreport</td><td>apply scale when drawing not stretched image. This fixes the size of image in printed report</td></tr><br />
<tr valign="top"><td>r39368 </td><td>Lazreport</td><td>cleanup. remove unused code in TfrPictureView.Draw</td></tr><br />
<tr valign="top"><td>r39477 </td><td>LazReport</td><td>fix moving/resizing objects when using keyboard under QT (and carbon), Patch from Julio Jiménez Borreguero, issue [[http://bugs.freepascal.org/view.php?id=23435 23435]]</td></tr><br />
<tr valign="top"><td>r39519 </td><td>LazReport</td><td>fix PreviousClipRgn on image drawing, was not valid and it worked fine by coincidence</td></tr><br />
<tr valign="top"><td>r39974 </td><td>LazReport</td><td>fix export filters registering multiple filter extensions are listed only once, issue [[http://bugs.freepascal.org/view.php?id=23759 23759]]</td></tr><br />
<tr valign="top"><td>r40010 </td><td>LazReport</td><td>renamed argument to really check for matching classref</td></tr><br />
<tr valign="top"><td>r39484 </td><td>LazUtils</td><td>xmlreader: handle non existing property list, bug [[http://bugs.freepascal.org/view.php?id=23450 23450]]</td></tr><br />
<tr valign="top"><td>r39441 </td><td>LCL</td><td>Don't publish FixedRows in ValueListEditor, allow only 0 or 1. Issue [[http://bugs.freepascal.org/view.php?id=23430 23430]]</td></tr><br />
<tr valign="top"><td>r39442 </td><td>LCL</td><td>make ValueListEditor work also when ColumnTitles are not shown.</td></tr><br />
<tr valign="top"><td>r39523 </td><td>LCL</td><td>add WM_ACTIVATE to messages.pp</td></tr><br />
<tr valign="top"><td>r39654 </td><td>LCL</td><td>scroll before updatedata in DBLookup. Issue [[http://bugs.freepascal.org/view.php?id=23530 23530]]</td></tr><br />
<tr valign="top"><td>r39887,r39973 </td><td>LCL</td><td>Use PopupMenu getter instead of cached FPopupMenu, so GetPopupMenu can be overrided. issue [[http://bugs.freepascal.org/view.php?id=23336 23336]]</td></tr><br />
<tr valign="top"><td>r39442 </td><td>LCL, ValEdit</td><td>make ValueListEditor work also when ColumnTitles are not shown</td></tr><br />
<tr valign="top"><td>r39469 </td><td>LCL, ValEdit</td><td>override TValueListStrings.SetTextStr: Don't show editor while changing values. Edited cell would not be changed.</td></tr><br />
<tr valign="top"><td>r39491 </td><td>LCL, ValEdit</td><td>Start implementing validating: don't accept duplicate Key names.</td></tr><br />
<tr valign="top"><td>r39495 </td><td>LCL, ValEdit</td><td>Fix crash in TValueListEditor.ShowColumnTitles when TitleCaptions.Count = 1</td></tr><br />
<tr valign="top"><td>r39496 </td><td>LCL, ValEdit</td><td>Only allow FixedCols := 0 or 1</td></tr><br />
<tr valign="top"><td>r39552 </td><td>LCL, ValEdit</td><td>Do not use Columns.Add, it interferes with setting FixedCols := 1 (by adding an extra column in front).</td></tr><br />
<tr valign="top"><td>r39553 </td><td>LCL, ValEdit</td><td>Implement TValueListEditor.AdjustColumnWidths and override OnDoResize.</td></tr><br />
<tr valign="top"><td>r38935 </td><td>Qt</td><td>fixed range check errors under 64bit</td></tr><br />
<tr valign="top"><td>r39625 </td><td>Qt</td><td>fixed events when month and year are changed in TCalendar. issue [[http://bugs.freepascal.org/view.php?id=23528 23528]]</td></tr><br />
<tr valign="top"><td>r39838 </td><td>Qt</td><td>fixed getClientBounds for TQtPage and TQtGroupBox. It should use QWidget_contentsRect() of underlaying widget or parent. issue [[http://bugs.freepascal.org/view.php?id=23630 23630]]</td></tr><br />
<tr valign="top"><td>r39839 </td><td>Qt</td><td>reverted TQtPage.getClientBounds to use TQtWidget.getClientBounds, it wasn't good solution since it produces a mess in eg. in build lazarus form.</td></tr><br />
<tr valign="top"><td>r39840 </td><td>Qt</td><td>fixed topmargin of groupbox when caption text is empty. issue [[http://bugs.freepascal.org/view.php?id=23642 23642]]</td></tr><br />
<tr valign="top"><td>r39841 </td><td>Qt</td><td>make LCL happy when changing caption of groupbox from empty to some string or viceversa.part of [[http://bugs.freepascal.org/view.php?id=23642 23642]]</td></tr><br />
<tr valign="top"><td>r39878 </td><td>Qt</td><td>fixed SetCapture() and GetCapture() for TQtCustomControl on qtwin32 targets</td></tr><br />
<tr valign="top"><td>r39892 </td><td>Qt</td><td>fixed preffered size of autosized groupboxes. issue [[http://bugs.freepascal.org/view.php?id=23351 23351]]</td></tr><br />
<tr valign="top"><td>r40025 </td><td>Qt</td><td>trial to fix Qt bug when dialog is shown with QtTool as parent. issue [[http://bugs.freepascal.org/view.php?id=23778 23778]]</td></tr><br />
<tr valign="top"><td>r39618 </td><td>readmes</td><td>updates</td></tr><br />
<tr valign="top"><td>r39391,r39394 </td><td>SynEdit</td><td>Fixed , make TAction regard ReadOnly state</td></tr><br />
<tr valign="top"><td>r39409 </td><td>SynEdit</td><td>LineOverviewGutter, do not cause overflow error on 64 bit</td></tr><br />
<tr valign="top"><td>r39518 </td><td>SynEdit</td><td>fix highlighting "i6", introduced in r32695</td></tr><br />
<tr valign="top"><td>r39540 </td><td>SynEdit</td><td>Fix problems with resizing GutterParts. (Noticeable in right gutter)</td></tr><br />
<tr valign="top"><td>r39606 </td><td>SynEdit</td><td>Fixed Matching bracket, for very long lines. Issue [[http://bugs.freepascal.org/view.php?id=0023517 0023517]]</td></tr><br />
<tr valign="top"><td>r39686 </td><td>SynEdit</td><td>FoldHighlighter (Html, XML): fix invalid fold node on last line. Issue [[http://bugs.freepascal.org/view.php?id=0023543 0023543]]</td></tr><br />
<tr valign="top"><td>r39747 </td><td>SynEdit</td><td>LineNumber-Gutter: update digit-count when setting to visible (Digits where cut off)</td></tr><br />
<tr valign="top"><td>r36955 </td><td>TAChart</td><td>Add TChart.IsZoomed property</td></tr><br />
<tr valign="top"><td>r39599 </td><td>TAChart</td><td>Hide legend if exception happened while attempting to fill it</td></tr><br />
<tr valign="top"><td>r39703 </td><td>TAChart</td><td>Copy HorizSize and VertSize in TSeriesPointer.Assign</td></tr><br />
<tr valign="top"><td>r39705 </td><td>TAChart</td><td>Fix SIGFPE while drawing mark labels for series with NaNs</td></tr><br />
<tr valign="top"><td>r39821 </td><td>TAChart</td><td>Fix exception on destroying clones series</td></tr><br />
<tr valign="top"><td>r39854 </td><td>TAChart</td><td>Set TChartTool.Chart = nil after calling OnAfterXXX event, not before</td></tr><br />
<tr valign="top"><td>r39861 </td><td>TAChart</td><td>Fix SIGFPE in TChartSeries.Add when the last data item is NaN</td></tr><br />
<tr valign="top"><td>r39930 </td><td>TAChart</td><td>Force recalculation of the full extent for linked charts</td></tr><br />
<tr valign="top"><td>r39931 </td><td>TAChart</td><td>Fix TBoxAndWhiskerSeries.Assign to correctly assign class properties</td></tr><br />
<tr valign="top"><td>r40042 </td><td>TAChart</td><td>Make TChartDataItem advanced record instead of object to reduce memory footprint</td></tr><br />
<tr valign="top"><td>r40043 </td><td>TAChart</td><td>Fix drawing of line series with number of points above 1000000</td></tr><br />
<tr valign="top"><td>r40048 </td><td>TAChart</td><td>Call inherited constructor from TCanvasDrawer.Create</td></tr><br />
</table><br />
<br />
== Fixes for 1.0.4 (Merged) ==<br />
<br />
<table><br />
<tr valign="top"><td>r39177 </td><td>Customdrawn</td><td>make timer related functions 64-bit safe (fixes similar to r39164), patch from bug [[http://bugs.freepascal.org/view.php?id=23052 23052]] by lks</td></tr><br />
<tr valign="top"><td>r39280 </td><td>Debugger</td><td>Inspect-Dialog, prevent crash, due to nested updates</td></tr><br />
<tr valign="top"><td>r39285 </td><td>Debugger</td><td>Do not treat "&" as accel-char when displaying exceptions. Issue [[http://bugs.freepascal.org/view.php?id=0023321 0023321]]</td></tr><br />
<tr valign="top"><td>r39290 </td><td>Debugger</td><td>Fix updating Inspect dialog, if triggered via source-editor (pop-up menu)</td></tr><br />
<tr valign="top"><td>r39333 </td><td>Debugger</td><td>Fix range check in disassembler (64 bit debuggee). Issue [[http://bugs.freepascal.org/view.php?id=0023355 0023355]]</td></tr><br />
<tr valign="top"><td>r39042 </td><td>Debugger</td><td>Disable "run to cursor" when debugger is stopped. This command is limited to the current frame (function). It can not be used to start a project. (also disable dcJumpTo, dcStepOut)</td></tr><br />
<tr valign="top"><td>r39131 </td><td>Debugger</td><td>fixed an endless loop in watch eval (eval typecast pointer to record)</td></tr><br />
<tr valign="top"><td>r39030 </td><td>Gtk2</td><td>fixed TGtk2WSCustomListView.GetDisplayRect, also fixed cell renderer which sent wrong item id to owner drawn list view.issue [[http://bugs.freepascal.org/view.php?id=23094 23094]]</td></tr><br />
<tr valign="top"><td>r39032 </td><td>Gtk2</td><td>do not render listbox item by default if we are customdrawn. issue [[http://bugs.freepascal.org/view.php?id=23093 23093]]</td></tr><br />
<tr valign="top"><td>r39033 </td><td>Gtk2</td><td>fixed crash with TListView introduced with r39032.</td></tr><br />
<tr valign="top"><td>r39034 </td><td>Gtk2</td><td>LineTo and MoveToEx must take hdc offset into account.issue [[http://bugs.freepascal.org/view.php?id=23057 23057]]</td></tr><br />
<tr valign="top"><td>r39035 </td><td>Gtk2</td><td>fixed assertion from gtk2 library. issue [[http://bugs.freepascal.org/view.php?id=23099 23099]]</td></tr><br />
<tr valign="top"><td>r39036 </td><td>Gtk2</td><td>do not apply devctx offset into penPos, regression of r39034.issue [[http://bugs.freepascal.org/view.php?id=23057 23057]]</td></tr><br />
<tr valign="top"><td>r39037 </td><td>Gtk2</td><td>completely fixed LineTo() and MoveToEx() regressions from r39034</td></tr><br />
<tr valign="top"><td>r39043 </td><td>Gtk2</td><td>fixed clientRect of GtkTreeView, new routine GetWidgetClientRect() in gtk2proc to simplify gtk2winapi, fixed offset for custom drawn listview.</td></tr><br />
<tr valign="top"><td>r39147 </td><td>Gtk2</td><td>use better approach for RecreateWnd in TGtk2WSCustomListView, fix rendering of icon view. issue [[http://bugs.freepascal.org/view.php?id=23171 23171]]</td></tr><br />
<tr valign="top"><td>r39148 </td><td>Gtk2</td><td>added TGtk2DeviceContext class as deprecated. part of issue [[http://bugs.freepascal.org/view.php?id=23168 23168]]</td></tr><br />
<tr valign="top"><td>r39162 </td><td>Gtk2</td><td>fixed cursor position behaviour on GtkEntry focus/unfocus. issues [[http://bugs.freepascal.org/view.php?id=21897 21897]], [[http://bugs.freepascal.org/view.php?id=23182 23182]].</td></tr><br />
<tr valign="top"><td>r39217 </td><td>Gtk2</td><td>remember selection when edit looses focus.Also preselect test when AutoSelect is true.Patch by Fabrizio Fellini modified by me for autoselect rule. fixes issues [[http://bugs.freepascal.org/view.php?id=23219 23219]], [[http://bugs.freepascal.org/view.php?id=23246 23246]] (regression).</td></tr><br />
<tr valign="top"><td>r39220, r39221 </td><td>Gtk2</td><td>check if scrollbar handle is allocated when setting params.</td></tr><br />
<tr valign="top"><td>r39229 </td><td>Gtk2</td><td>trial to fix freezing of TFloatSpinEdit when we don't use clocale unit since gtk2 takes info from $LANG and our DecimalSeparator could be different. issue [[http://bugs.freepascal.org/view.php?id=23190 23190]]</td></tr><br />
<tr valign="top"><td>r39308 </td><td>gtk2</td><td>register TGtk2WSScrollBar to TCustomScrollBar instead of TScrollBar. Fixes [[http://bugs.freepascal.org/view.php?id=23200 23200]]</td></tr><br />
<tr valign="top"><td>r39326 </td><td>Gtk2</td><td>fixed offset in Gtk2 polygon drawer. issue [[http://bugs.freepascal.org/view.php?id=23359 23359]]</td></tr><br />
<tr valign="top"><td>r39327 </td><td>Gtk2</td><td>correct fix for issue [[http://bugs.freepascal.org/view.php?id=23359 23359]]</td></tr><br />
<tr valign="top"><td>r39371 </td><td>Gtk2</td><td>fixed font color changing on TCheckBox when caption is empty. issue [[http://bugs.freepascal.org/view.php?id=23373 23373]]</td></tr><br />
<tr valign="top"><td>r39374 </td><td>IDE </td><td>Hint: Fix malformated hints, if text has ampersand. or &lt;,... Issue [[http://bugs.freepascal.org/view.php?id=0023320 0023320]] Patch by Bart Broersma</td></tr><br />
<tr valign="top"><td>r39295 </td><td>IDE</td><td> rename identifier: stop on invalid identifier</td></tr><br />
<tr valign="top"><td>r38411 </td><td>IDE</td><td>removed compiler option for switch -vm</td></tr><br />
<tr valign="top"><td>r39057 </td><td>IDE</td><td>invalidate file state cache on rename/copy interactive. Issue [[http://bugs.freepascal.org/view.php?id=23073 23073]]</td></tr><br />
<tr valign="top"><td>r39291 </td><td>IDE</td><td>initial setup dlg: invalidate file state cache when user comes back from another application</td></tr><br />
<tr valign="top"><td>r39101 </td><td>IDE</td><td> SourceEditor: Use selection as default search only if caret is in/at selection (persistent selection)</td></tr><br />
<tr valign="top"><td>r39276 </td><td>IDE</td><td>SourceEditor: Fix asking "Save file", if only 1 tab is open in 2ndary window. Issue [[http://bugs.freepascal.org/view.php?id=0023312 0023312]]</td></tr><br />
<tr valign="top"><td>r39282 </td><td>IDE</td><td>SourceEditor: Fixed crash when closing last tab (via ctrl F4) while code-completion was active. Issue [[http://bugs.freepascal.org/view.php?id=0023317 0023317]]</td></tr><br />
<tr valign="top"><td>r39324 </td><td>Installer, Win</td><td>Add Spanish translation. Issue [[http://bugs.freepascal.org/view.php?id=0023087 0023087]]</td></tr><br />
<tr valign="top"><td>r39331 </td><td>Installer, Win</td><td>Added publisher, and explicit uninstall icon. Issue [[http://bugs.freepascal.org/view.php?id=0021750 0021750]]</td></tr><br />
<tr valign="top"><td>r39049 </td><td>Jedi Code Format</td><td>Locate the parse tree window better. Issue [[http://bugs.freepascal.org/view.php?id=22777 22777]]</td></tr><br />
<tr valign="top"><td>r37314 </td><td>LazReport</td><td> added TlrCodeReport component and sample, it makes reports at runtime with an easy to use api and it doesn't need the report designer, with small changes, from Julio Jimenez Borreguero</td></tr><br />
<tr valign="top"><td>r37320 </td><td>LazReport</td><td> removed testcodereport session file</td></tr><br />
<tr valign="top"><td>r37321 </td><td>LazReport</td><td>lrcodereport: version is 1.0, updated icon, cleanup, first page is now programmers responsability, sample update to export to pdf, from Julio Jimenez Borreguero</td></tr><br />
<tr valign="top"><td>r37381 </td><td>LazReport</td><td>lrcodereport: fix problem with slow generation of pages on second batch, sample now ask for target pdf filename, from Julio Jimenez Borreguero</td></tr><br />
<tr valign="top"><td>r37393 </td><td>LazReport</td><td>lrcodereport: addded accessory SetFont, frm Julio Jimenez Borreguero</td></tr><br />
<tr valign="top"><td>r37404 </td><td>LazReport</td><td> pdfexport, improves exported page sizes, from Julio Jimenez Borreguero</td></tr><br />
<tr valign="top"><td>r37414 </td><td>LazReport</td><td> fix lrcodereport compile on windows, issue [[http://bugs.freepascal.org/view.php?id=22058 22058]]</td></tr><br />
<tr valign="top"><td>r37420 </td><td>LazReport</td><td> enable text rotation in pdfexport, from Julio Jimenez Borreguero</td></tr><br />
<tr valign="top"><td>r39010 </td><td>LazReport</td><td> fix barcode sample crash, remove console window (on windows), issue [[http://bugs.freepascal.org/view.php?id=23086 23086]]</td></tr><br />
<tr valign="top"><td>r39231 </td><td>LazReport</td><td> fix right alignment text on export to PDF, from Tony Whyman, issue [[http://bugs.freepascal.org/view.php?id=23138 23138]]</td></tr><br />
<tr valign="top"><td>r39232 </td><td>LazReport</td><td> Right Justified text incorrectly aligned on printer, from Tony Whyman, issue [[http://bugs.freepascal.org/view.php?id=23135 23135]] </td></tr><br />
<tr valign="top"><td>r39233 </td><td>LazReport</td><td> corrects vertical alignment after tony's patches and improve precision on exporting to pdf, from Julio Jiménez Borreguero</td></tr><br />
<tr valign="top"><td>r39238 </td><td>LazReport</td><td> fix PDF export filter not centering images properly, issue [[http://bugs.freepascal.org/view.php?id=23236 23236]]</td></tr><br />
<tr valign="top"><td>r39239 </td><td>LazReport</td><td> Report Designer crashes with Access Violation on Insert DB Field (TFrame related issue), from Tony Whyman, issue [[http://bugs.freepascal.org/view.php?id=23205 23205]]</td></tr><br />
<tr valign="top"><td>r39240 </td><td>LazReport</td><td> stop designer from processing ContextMenu default action, fix unable to close form designer, issue [[http://bugs.freepascal.org/view.php?id=23248 23248]]</td></tr><br />
<tr valign="top"><td>r39242 </td><td>LazReport</td><td> pdfexport addon now requires powerpdf v0.9.9</td></tr><br />
<tr valign="top"><td>r39243 </td><td>LazReport</td><td> fix report designer do no update properly when compiled for Qt, From Julio Jiménez Borreguero, issue [[http://bugs.freepascal.org/view.php?id=23211 23211]]</td></tr><br />
<tr valign="top"><td>r39250 </td><td>LazReport</td><td> fix exported image size in case is not proportional and stretched</td></tr><br />
<tr valign="top"><td>r39251 </td><td>LazReport</td><td> fix text clipping on exported to PDF report, from Julio Jiménez Borreguero</td></tr><br />
<tr valign="top"><td>r39278 </td><td>LazReport</td><td> fix loading previously saved binary reports on preview window</td></tr><br />
<tr valign="top"><td>r39284 </td><td>LazReport</td><td> fix incorrect scaling of unstretched images on PDF export, PDF export addon now requires PowerPDF 0.9.10, issue [[http://bugs.freepascal.org/view.php?id=23326 23326]]</td></tr><br />
<tr valign="top"><td>r39031 </td><td>LCL</td><td>TCustomListView, use drBounds for item measuring when calculating editor bounds. issue [[http://bugs.freepascal.org/view.php?id=23094 23094]]</td></tr><br />
<tr valign="top"><td>r39118 </td><td>LCL</td><td> dbgrid, check column exists before getting button style, from Tristan Linnell, issue [[http://bugs.freepascal.org/view.php?id=22873 22873]]</td></tr><br />
<tr valign="top"><td>r39207 </td><td>LCL</td><td>add missing checks for FControl in TControlBorderSpacing</td></tr><br />
<tr valign="top"><td>r39188-r39202 </td><td>Make DEB</td><td>Fixes and languages for debian installer</td></tr><br />
<tr valign="top"><td>r38989 </td><td>Packager</td><td>Use a new component's class name as icon resource name. Issue [[http://bugs.freepascal.org/view.php?id=23075 23075]]</td></tr><br />
<tr valign="top"><td>r39078 </td><td>Qt</td><td>mark MouseMove and MouseWheel events as input events.</td></tr><br />
<tr valign="top"><td>r39087,39090 </td><td>Qt</td><td>added checks for handle after message delivery to lcl in case of input events (mouse) - avoids crashes.</td></tr><br />
<tr valign="top"><td>r39106 </td><td>Qt</td><td>Fixed themed drawing of header sections with common style. part of issue [[http://bugs.freepascal.org/view.php?id=23143 23143]]</td></tr><br />
<tr valign="top"><td>r39107 </td><td>Qt</td><td>Fixed weird drawing of header sections by oxygen theme.issue [[http://bugs.freepascal.org/view.php?id=23143 23143]]</td></tr><br />
<tr valign="top"><td>r39141 </td><td>Qt</td><td>fixed crash with hint window inside slotMouseMove. issue [[http://bugs.freepascal.org/view.php?id=23161 23161]]</td></tr><br />
<tr valign="top"><td>r39218 </td><td>Qt</td><td>fixed TListItem clearing icon. issue [[http://bugs.freepascal.org/view.php?id=23225 23225]].</td></tr><br />
<tr valign="top"><td>r39325 </td><td>Qt</td><td>fixed tabwidget icon size. issue [[http://bugs.freepascal.org/view.php?id=23362 23362]]</td></tr><br />
<tr valign="top"><td>r39038 </td><td>SynEdit</td><td>Missing invalidation in Log/Phys Converter.</td></tr><br />
<tr valign="top"><td>r39039 </td><td>SynEdit</td><td>Make sure selection Markup is not hidden by Syncro (or other plugins)</td></tr><br />
<tr valign="top"><td>r39098 </td><td>SynEdit</td><td>fix Gutter streaming to LFM</td></tr><br />
<tr valign="top"><td>r39361 </td><td>SynEdit</td><td>Fixed StatusChanged Handler repeatedly called with old values. Issue [[http://bugs.freepascal.org/view.php?id=0023377 0023377]]</td></tr><br />
<tr valign="top"><td>r39367, r39387</td><td>SynEdit</td><td>LineOverviewGutter, fix updating after lines inserted/removed. Issue [[http://bugs.freepascal.org/view.php?id=0022848 0022848]]</td></tr><br />
<tr valign="top"><td>r39372 </td><td>SynEdit</td><td>Fixed case-insensitive search/replace regex. Issue [[http://bugs.freepascal.org/view.php?id=0023078 0023078]]</td></tr><br />
<tr valign="top"><td>r39390 </td><td>SynEdit</td><td>Fixed do not copy/paste with middle mouse, if SynEdit is readonly. Issue [[http://bugs.freepascal.org/view.php?id=0023392 0023392]]</td></tr><br />
<tr valign="top"><td>r38985 </td><td>TAChart</td><td>Do not draw TColorMapSeries over left and top borders</td></tr><br />
<tr valign="top"><td>r38992 </td><td>TAChart</td><td>Add TChartAxis.MarginsForMarks property ''lets user turn off an 1.0 feature which was sometimes undesirable''</td></tr><br />
<tr valign="top"><td>r39026 </td><td>TAChart</td><td>Add TChartAxisTitle.PositionOnMarks property ''lets user turn off an 1.0 feature which was sometimes undesirable''</td></tr><br />
<tr valign="top"><td>r39067 </td><td>TAChart</td><td>Do not draw 2-d series over the chart frame</td></tr><br />
<tr valign="top"><td>r39068 </td><td>TAChart</td><td>Revert r38985, since a more general fix is implemented in r39067</td></tr><br />
<tr valign="top"><td>r39070 </td><td>TAChart</td><td>Move GetBounds procedure from TBasicChartSeries to TCustomChartSeries</td></tr><br />
<tr valign="top"><td>r39071 </td><td>TAChart</td><td>Ignore infinite series extent when calculating graph bounds</td></tr><br />
<tr valign="top"><td>r39072 </td><td>TAChart</td><td>Fix SIGFPE while drawing area series with infinite Y values</td></tr><br />
<tr valign="top"><td>r39076 </td><td>TAChart</td><td>Copy properties in TChartLegend.Assign</td></tr><br />
<tr valign="top"><td>r39129 </td><td>TAChart</td><td>Measure ZeroLevel in axis units when considering it for label direction</td></tr><br />
<tr valign="top"><td>r39130 </td><td>TAChart</td><td>Fix mark positions for bar series with BarOffsetPercent <> 0</td></tr><br />
<tr valign="top"><td>r39341 </td><td>TAChart</td><td>Fix exception when using TChartNavScrollBar under Qt</td></tr><br />
<tr valign="top"><td>r39351 </td><td>TAChart</td><td>Call Handled after extent restoration in TZoomDragTool</td></tr><br />
<tr valign="top"><td>r39376 </td><td>TAChart</td><td>Start TDateTimeIntervalChartSource intervals from the beginning of month/year</td></tr><br />
<tr valign="top"><td>r39377 </td><td>TAChart</td><td>Update chart upon changes to interval source properties</td></tr><br />
<tr valign="top"><td>r39164 </td><td>win32</td><td>add 64bit safe version of callback and timer functions. Issue [[http://bugs.freepascal.org/view.php?id=23052 23052]]</td></tr><br />
<tr valign="top"><td>r39165 </td><td>win32</td><td>replace TList by TFpList (FTimerData)</td></tr><br />
<tr valign="top"><td>r39166 </td><td>win32</td><td>add stdcall to recently added timer functions</td></tr><br />
<br />
</table><br />
<br />
It is possible that a revision is not listed here, even if it was merged. Please inspect the SVN log for more information.<br />
<br />
== Fixes for 1.0.2 (Merged) ==<br />
<br />
<table><br />
<tr valign="top"><td>r38551,&#x200B;r38552,&#x200B;r38562,&#x200B;r38563</td><td>Carbon</td><td>various winapi compatibility functions fixes</td></tr><br />
<tr valign="top"><td>r38671 </td><td>Carbon</td><td>fix accidental error in index</td></tr><br />
<tr valign="top"><td>r38743 </td><td>Carbon</td><td>reimplement linear gradient draw using shading to support OS X < 10.5</td></tr><br />
<tr valign="top"><td>r38529,&#x200B;r38530,&#x200B;r38535,&#x200B;r38543,&#x200B;r38548</td><td>carbon</td><td>fix carbon clipping, correctly return region types on HRGN related operations, fix generic IntersectClipRect routine</td></tr><br />
<tr valign="top"><td>r38640,&#x200B;r38641,&#x200B;r38642,&#x200B;r38649</td><td>Carbon, Cocoa</td><td>various ExtTextOut fixes for Carbon and Cocoa</td></tr><br />
<tr valign="top"><td>r38922 </td><td>Debugger</td><td>Fix setting stackframe for hint eval, after searching for highest source-frame.</td></tr><br />
<tr valign="top"><td>r38509 </td><td>Debugger</td><td>Ensure Queue is not blocked by LineInfo Request. (If a LineInfoRequest was queued the DebuggerCurrentLine could not search the stack, as commands were not immediately run)</td></tr><br />
<tr valign="top"><td>r38531 </td><td>Debugger</td><td>Workaround to fix exe-line-indicators (blue dots) at debug start</td></tr><br />
<tr valign="top"><td>r38373 </td><td>Gtk2,Qt</td><td>make ETO_OPAQUE work from TCanvas.TextOut(). issue [[http://bugs.freepascal.org/view.php?id=22719 22719]]</td></tr><br />
<tr valign="top"><td>r38519 </td><td>Gtk2</td><td>fixed crash with TListView when viewstyle is vsIcon or vsSmallIcon. issue [[http://bugs.freepascal.org/view.php?id=22778 22778]]</td></tr><br />
<tr valign="top"><td>r38636,&#x200B;r38637 </td><td>Gtk2</td><td>fixed text clipping and text background drawing</td></tr><br />
<tr valign="top"><td>r38697,&#x200B;38698 </td><td>Gtk2</td><td>set TToggleBox.ParentColor default false so it's color is consistent with TButton when eg.parent color is clRed and TToggleBox.Color=clDefault.</td></tr><br />
<tr valign="top"><td>r38727,&#x200B;r38728,&#x200B;r38742,&#x200B;r38744,&#x200B;r38745,&#x200B;r38748</td><td>gtk2</td><td>fix clipping and DC transformations</td></tr><br />
<tr valign="top"><td>r38747 </td><td>gtk2</td><td>fix FrameRect - it must use a passed brush instead of selected one</td></tr><br />
<tr valign="top"><td>r38758 </td><td>gtk2</td><td>allocate GdkColor when we need a BkColor</td></tr><br />
<tr valign="top"><td>r38762 </td><td>Gtk2</td><td>when style is drawing button then use style from button. issue [[http://bugs.freepascal.org/view.php?id=22901 22901]]</td></tr><br />
<tr valign="top"><td>r38799 </td><td>gtk2</td><td>implement SPI_GETWHEELSCROLLLINES. Fix a regression in VirtualTreeView wheel scroll</td></tr><br />
<tr valign="top"><td>r38860 </td><td>Gtk2</td><td>do not change color of TScrollBar since it's painted by theme engine.issue [[http://bugs.freepascal.org/view.php?id=22996 22996]].</td></tr><br />
<tr valign="top"><td>r38868,&#x200B;38875 </td><td>Gtk2</td><td>fixed crash with GtkIconView when multiselect is enabled and dbl clicked. issue [[http://bugs.freepascal.org/view.php?id=22991 22991]]</td></tr><br />
<tr valign="top"><td>r38892 </td><td>Gtk2</td><td>fixed TIconArrangement of GtkListView.</td></tr><br />
<tr valign="top"><td>r38895 </td><td>Gtk2</td><td>send LVIS_FOCUSED for listview. issue [[http://bugs.freepascal.org/view.php?id=23014 23014]]</td></tr><br />
<tr valign="top"><td>r38896 </td><td>Gtk2</td><td>fixed crash in GtkIconView by unref GtkColumn which isn't GtkObject.</td></tr><br />
<tr valign="top"><td>r38897 </td><td>Gtk2</td><td>implemented TGtk2CustomListView.ItemDisplayRect and editor for vsIconView, vsSmallIcon.issue [[http://bugs.freepascal.org/view.php?id=23015 23015]]</td></tr><br />
<tr valign="top"><td>r38899 </td><td>Gtk2</td><td>fixed few memleaks with PGList in TGtk2ListView.</td></tr><br />
<tr valign="top"><td>r38426 </td><td>IDE</td><td>CodeBrowser check for virtual units. Issue [[http://bugs.freepascal.org/view.php?id=0022740 0022740]]</td></tr><br />
<tr valign="top"><td>r38437 </td><td>IDE</td><td>project target: apply default extension even if the file has already an extension, issue [[http://bugs.freepascal.org/view.php?id=22750 22750]]</td></tr><br />
<tr valign="top"><td>r37398 </td><td>IDE</td><td>corrected version info language list, added Ukrainian language, bug [[http://bugs.freepascal.org/view.php?id=22103 22103]]</td></tr><br />
<tr valign="top"><td>r38507 </td><td>IDE</td><td>EditorOpts: default for top-info-hint</td></tr><br />
<tr valign="top"><td>r38444 </td><td>IDE</td><td>fixed crash when releasing non existing component palette select button</td></tr><br />
<tr valign="top"><td>r38722 </td><td>IDE</td><td>added Lithuanian to version info language list, bug [[http://bugs.freepascal.org/view.php?id=22898 22898]]</td></tr><br />
<tr valign="top"><td>r36887 </td><td>LazReport</td><td>fix preview scrolling broken in r36420, issue [[http://bugs.freepascal.org/view.php?id=21633 21633]]</td></tr><br />
<tr valign="top"><td>r36909 </td><td>LazReport</td><td>now fix preview scrolling in windows, broken in r36887</td></tr><br />
<tr valign="top"><td>r38486 </td><td>LCL</td><td>avglvltree: setcompare set when count=0</td></tr><br />
<tr valign="top"><td>r38720 </td><td>LCL</td><td>DefaultTranslator: fix handling of non-ASCII path to .po file, bug [[http://bugs.freepascal.org/view.php?id=22907 22907]], patch by Vladimir Zhirov</td></tr><br />
<tr valign="top"><td>r38769-r38772 </td><td>LCL, gtk2, carbon</td><td>full implementation of GradientFill</td></tr><br />
<tr valign="top"><td>r38396 </td><td>LCL</td><td>ColorBox - keep FSelected in sync all the time. fixes issue [[http://bugs.freepascal.org/view.php?id=22729 22729]]</td></tr><br />
<tr valign="top"><td>r38802 </td><td>LCL</td><td>revert 33020, 33082, 33086, part of 33089 and 33389. These changes made the hint behavior Delphi incompatible thus leading to a regression in third party control like VirtualTreeView that handles hints in CMHintShow. Retrieve parent hint recursively if hintcontrol.hint is empty' (delphi compatible)</td></tr><br />
<tr valign="top"><td>r38927 </td><td>LCL</td><td>check for csDestroying in Parent before calling SetLastFocusedControl in TCustomForm.SetFocusedControl. Not doing this check can expose fpc bug [[http://bugs.freepascal.org/view.php?id=23031 23031]] leading to a crash.</td></tr><br />
<tr valign="top"><td>r38572 </td><td>Qt</td><td>propagate QEvent:ShortcutOverride to parent, so stop key event if shortcut is executed. issue [[http://bugs.freepascal.org/view.php?id=22827 22827]]</td></tr><br />
<tr valign="top"><td>r37075 </td><td>Qt</td><td>fixed behaviour of messageDlg (PromptUser()) to return mrCancel always when Escape key is pressed or close btn clicked.issue [[http://bugs.freepascal.org/view.php?id=21885 21885]]</td></tr><br />
<tr valign="top"><td>r37217,&#x200B;37218,&#x200B;37225,&#x200B;37239,&#x200B;37241,&#x200B;37293,&#x200B;37304,&#x200B;37316</td><td>Qt</td><td>fixed keys handling (arrow keys & enter).</td></tr><br />
<tr valign="top"><td>r37857 </td><td>Qt</td><td>hide statusbar panels with width 0. issue [[http://bugs.freepascal.org/view.php?id=22362 22362]]</td></tr><br />
<tr valign="top"><td>r37862 </td><td>Qt</td><td>hide statusbar panel only when width is 0, do not count any margin.issue [[http://bugs.freepascal.org/view.php?id=22362 22362]]</td></tr><br />
<tr valign="top"><td>r38148 </td><td>Qt</td><td>allow showin modal form with borderStyle=bsNone. issue [[http://bugs.freepascal.org/view.php?id=22568 22568]]</td></tr><br />
<tr valign="top"><td>r38149 </td><td>Qt</td><td>allow edit of combobox with style csSimple. issue [[http://bugs.freepascal.org/view.php?id=22528 22528]]</td></tr><br />
<tr valign="top"><td>r38320 </td><td>Qt</td><td>fixed clearing of icon in tab.part of issue [[http://bugs.freepascal.org/view.php?id=22618 22618]]</td></tr><br />
<tr valign="top"><td>r38326 </td><td>Qt</td><td>fixed modal behaviour of borderless forms.issue [[http://bugs.freepascal.org/view.php?id=22568 22568]]</td></tr><br />
<tr valign="top"><td>r38332 </td><td>Qt</td><td>do not set popup parent for borderless forms (for popup forms) if TCustomForm.Parent (embedded form) is assigned.</td></tr><br />
<tr valign="top"><td>r38365,&#x200B;38366,&#x200B;38367,&#x200B;38368,&#x200B;38369</td><td>Qt</td><td>fix for qt richtext parser, refactored viewport event mouse move. issue [[http://bugs.freepascal.org/view.php?id=22715 22715]]</td></tr><br />
<tr valign="top"><td>r38518 </td><td>Qt</td><td>TQtWinApi.ExtTextOut() implemented Dx param. issue [[http://bugs.freepascal.org/view.php?id=22795 22795]] (zeljko will merge, need some testing)</td></tr><br />
<tr valign="top"><td>r38520 </td><td>Qt</td><td>do not propagate keyrelease event as action trigger. issue [[http://bugs.freepascal.org/view.php?id=22737 22737]]</td></tr><br />
<tr valign="top"><td>r38533 </td><td>Qt</td><td>fixed header offset and getClientRect for TListView when ViewStyle=vsReport.</td></tr><br />
<tr valign="top"><td>r38576,&#x200B;38577 </td><td>Qt</td><td>fixed TQtWidgetSet.FrameRect(), now it uses passed brush to draw frame border.</td></tr><br />
<tr valign="top"><td>r38610 </td><td>Qt</td><td>fixed non ascii utf8 chars in TQtWidgetSet.ExtTextOut() when we use dx param. issue [[http://bugs.freepascal.org/view.php?id=22795 22795]] (depends on merging of r38518).</td></tr><br />
<tr valign="top"><td>r38628,&#x200B;38629,&#x200B;38630,&#x200B;38634 </td><td>Qt</td><td>fixed clipping bugs inside TQtWidgetSet.ExtTextOut()</td></tr><br />
<tr valign="top"><td>r38643 </td><td>Qt</td><td>TQtWidgetSet.ExtTextOut() workaround for Qt-4.8 bug ,now it looks better but some scenarios with ETO_OPAQUE aren't 100% correct yet.</td></tr><br />
<tr valign="top"><td>r38644 </td><td>Qt</td><td>fixed menu flickering. issue [[http://bugs.freepascal.org/view.php?id=22872 22872]]</td></tr><br />
<tr valign="top"><td>r38674 </td><td>Qt</td><td>fixed crash when invalid or null handle is passed into SetCapture.</td></tr><br />
<tr valign="top"><td>r38679 </td><td>Qt</td><td>update bitmap if TMenuItem has associated ImageList and ImageIndex. issue [[http://bugs.freepascal.org/view.php?id=22896 22896]]</td></tr><br />
<tr valign="top"><td>r38709 </td><td>Qt</td><td>improved triggering of OnClick() in QEventShowToParent. issue [[http://bugs.freepascal.org/view.php?id=22872 22872]]</td></tr><br />
<tr valign="top"><td>r38746 </td><td>Qt</td><td>fix theme painting for some qt themes - they expect ARect with X, Y = 0</td></tr><br />
<tr valign="top"><td>r38826 </td><td>Qt</td><td>TQtWidgetSet.SetScrollInfo - fixed wrong result, it must return real slider position, not value which might be out of sync with position. This fixes problems with TScrollingWinControl (TControlScrollbar).</td></tr><br />
<tr valign="top"><td>r38893 </td><td>Qt</td><td>fixed TIconArrangement for TListView vsIcon,vsSmallIcon.</td></tr><br />
<tr valign="top"><td>r38894 </td><td>Qt</td><td>send LVIS_FOCUSED for listview. issue [[http://bugs.freepascal.org/view.php?id=23014 23014]]</td></tr><br />
<tr valign="top"><td>r38972 </td><td>Qt</td><td>added proper casts for some messages to avoid range checks.</td></tr><br />
<tr valign="top"><td>r38428 </td><td>SynEdit</td><td>MultiHighlighter: fix adding text/sections at EOL. issue [[http://bugs.freepascal.org/view.php?id=0022745 0022745]]</td></tr><br />
<tr valign="top"><td>r38670 </td><td>SynEdit</td><td>Fixed past eol paint error ** Must be ported by hand **</td></tr><br />
<tr valign="top"><td>r38672 </td><td>SynEdit</td><td>fixed delete-next-word, if caret past eol. Issue [[http://bugs.freepascal.org/view.php?id=0022890 0022890]]</td></tr><br />
<tr valign="top"><td>r36674 </td><td>TAChart</td><td>Add AddArray, AddNull, AddX and AddY functions to TChartSeries</td></tr><br />
<tr valign="top"><td>r38430 </td><td>TAChart</td><td>Fix out-of-bounds access when drawing empty polygons and polylines</td></tr><br />
<tr valign="top"><td>r38464 </td><td>TAChart</td><td>Fix error message in TFPCanvasDrawer.RadialPie</td></tr><br />
<tr valign="top"><td>r38503 </td><td>TAChart</td><td>Copy BaseLength in TChartArrow.Assign</td></tr><br />
<tr valign="top"><td>r38547 </td><td>TAChart</td><td>Support Y NaNs in polar series ''(this will cause compilation error -- please remove 'and CloseCircle' part from the last conditional in the TPolarSeries.Draw procedure)''</td></tr><br />
<tr valign="top"><td>r38557 </td><td>TAChart</td><td>Support brush style, pen style and pen width in fpvectorial drawer</td></tr><br />
<tr valign="top"><td>r38571 </td><td>TAChart</td><td>Draw chart correctly after decrease of an axis margin</td></tr><br />
<tr valign="top"><td>r38584 </td><td>TAChart</td><td>Copy Attachment and YIndex in TGenericChartMarks.Assign ''(this code is in TATypes unit in v1.0)''</td></tr><br />
<tr valign="top"><td>r38589 </td><td>TAChart</td><td>Do not draw lines which should be invisible in OpenGL drawer</td></tr><br />
<tr valign="top"><td>r38607 </td><td>TAChart</td><td>Workaround for issue [[http://bugs.freepascal.org/view.php?id=22850 22850]] '''see patch in the mailing list'''</td></tr><br />
<tr valign="top"><td>r38617 </td><td>TAChart</td><td>Fix GetNearestPoint returning true with no points found inside radius, issue [[http://bugs.freepascal.org/view.php?id=22854 22854]]</td></tr><br />
<tr valign="top"><td>r38651 </td><td>TAChart</td><td>Fix zero division when calling ImageToGraph before the chart is drawn</td></tr><br />
<tr valign="top"><td>r38673 </td><td>TAChart</td><td>Ignore NaNs while calculating TCustomChartSource.ValuesTotal</td></tr><br />
<tr valign="top"><td>r38675 </td><td>TAChart</td><td>Support Marks.Attachment = maCenter in pie series</td></tr><br />
<tr valign="top"><td>r38694 </td><td>TAChart</td><td>Fix update of TListChartSource.ValuesTotal cache when adding or removing NaNs</td></tr><br />
<tr valign="top"><td>r38710 </td><td>TAChart</td><td>Fix crash when using TChartExtentLink with LinkedChart.Chart = nil</td></tr><br />
<tr valign="top"><td>r38712 </td><td>TAChart</td><td>Fix crash while replacing linked chart in TChartExtentLink</td></tr><br />
<tr valign="top"><td>r38713 </td><td>TAChart</td><td>Use NumberOr function instead of checking for NaN explicitly</td></tr><br />
<tr valign="top"><td>r38719 </td><td>TAChart</td><td>Extract TDrawFuncHelper.ForEachPoint helper procedure ''This also fixes a hang while using data point tool on extremely zoomed-in series''</td></tr><br />
<tr valign="top"><td>r38729 </td><td>TAChart</td><td>Extract TDrawFuncHelper.XRange helper function. + Fix GetNearestPoint for rotated function series.</td></tr><br />
<tr valign="top"><td>r38733 </td><td>TAChart</td><td>Fix TChartSeries.SetColor to notify all listeners and require ListSource. Add TListChartSource.SetColor</td></tr><br />
<tr valign="top"><td>r38735 </td><td>TAChart</td><td>Fix memory leak in TDbChartSource.BeforeDraw</td></tr><br />
<tr valign="top"><td>r38737 </td><td>TAChart</td><td>Fix drawing of pie series with data from the db source</td></tr><br />
<tr valign="top"><td>r38754 </td><td>TAChart</td><td>Fix hang when changing TLineSeries.ShowPoints while drawing chart</td></tr><br />
<tr valign="top"><td>r38757 </td><td>TAChart</td><td>Display crosshair tool on mouse down</td></tr><br />
<tr valign="top"><td>r38779 </td><td>TAChart</td><td>Do not notify from TListChartSource.SetXValue and SetYValue if the value did not actually change.</td></tr><br />
<tr valign="top"><td>r38780 </td><td>TAChart</td><td>Add TBasicPointSeries.MovePoint overload for graph coordinates ''not a fix, but required for r38788''</td></tr><br />
<tr valign="top"><td>r38788 </td><td>TAChart</td><td>Support axis transformations in TCustomChartSeries.MovePoint</td></tr><br />
<tr valign="top"><td>r38792 </td><td>TAChart</td><td>Fix crash on deleting subcomponent with active property editor</td></tr><br />
<tr valign="top"><td>r38811 </td><td>TAChart</td><td>Add IsEquivalent utility function ''required for r38812''</td></tr><br />
<tr valign="top"><td>r38812 </td><td>TAChart</td><td>Fix SIGFPE on TListChartSource.SetXValue(NaN) and SetYValue(NaN)</td></tr><br />
<tr valign="top"><td>r38813 </td><td>TAChart</td><td>Fix TCustomChartSource.FindBounds for the case of extremely large bounds</td></tr><br />
<tr valign="top"><td>r38825 </td><td>TAChart</td><td>Fix drawing of function series with +Infinity in domain exclusions</td></tr><br />
<tr valign="top"><td>r38841 </td><td>TAChart</td><td>Fix inverted Y axis on TChartNavPanel's minimap. Issue [[http://bugs.freepascal.org/view.php?id=22978 22978]]</td></tr><br />
<tr valign="top"><td>r38853 </td><td>TAChart</td><td>Optimize GetNearestPoint for the case of sorted source and at least linear on X point distance</td></tr><br />
<tr valign="top"><td>r38861 </td><td>TAChart</td><td>Make sure the previous tool is deactivated before activating a new one</td></tr><br />
<tr valign="top"><td>r38862 </td><td>TAChart</td><td>Fix crash when the tool is activated while zoom animation is in progress</td></tr><br />
<tr valign="top"><td>r38863 </td><td>TAChart</td><td>Fix drawing of out-of-extent function series with +Infinity in domain exclusions.</td></tr><br />
<tr valign="top"><td>r38873 </td><td>TAChart</td><td>Clear brush when drawing line series.</td></tr><br />
<tr valign="top"><td>r38981 </td><td>TAChart</td><td>Fix a call to the "strict protected" function from non-descendant class in TChartMinorAxis.GetAlignment</td></tr><br />
<tr valign="top"><td>r38982 </td><td>TAChart</td><td>Fix out-of-bounds access while drawing TColorMapSeries with empty ColorSource</td></tr><br />
<tr valign="top"><td>r38473 </td><td>tests</td><td>fixed compilation</td></tr><br />
<br />
</table><br />
<br />
It is possible that a revision is not listed here, even if it was merged. Please inspect the SVN log for more information.<br />
<br />
== Fixes for 1.0 (Merged) ==<br />
<br />
*r36506 LazReport, fix barcode dialog localization (Jesus)<br />
*r36508 Updated Japanese translation<br />
*r36509 Window Column, store pointer to resourcestring<br />
*r36510 LazReport, fix barcode addin when TfrBarCodeObject is not yet instantiated (in this case barcode editor defaults to memo view.<br />
*r36511 DividerBevel: implemented Transparent.<br />
*r36514 IDE: moved macros save/saveall to source editor<br />
*r36515 IDE: update macro descriptions after translating resource strings<br />
*r36516 IDE: trim TLazPackageGraph.GetFallbackOutputDir<br />
*r36517 IDE: check if package needs rebuild: switch to fall back directory: update compiler params<br />
*r36518 IDE: install/uninstall package dialog: fixed icons, added info about current state<br />
*r36523,r36530 IDE: Export as HTML<br />
*r36526 CodeTemplate: Improve final caret pos, if tmpl does not specify<br />
*r36527 CodeTemplate: allow tab to trigger / selection to ignore. issue [[http://bugs.freepascal.org/view.php?id=0017631 0017631]]<br />
*r36528 SynEdit: Template(Syncro) fix invalidation<br />
*r36529 IDE: Printing: break long lines. Issue [[http://bugs.freepascal.org/view.php?id=0013479 0013479]]; <br />
*r36547 IDE: Printing: break long lines. Fix Utf8. Update for rev 36529<br />
*r36531 LazReport: fixed buttonpanel localization in BarCode editor dialog<br />
*r36533 IDE: clean up of unused resourcestrings<br />
*r36534, r36536, r36553, r36583, r36646 regenerated translations; updated Russian translation<br />
*r36535 IDE: more clean up of unused resourcestrings<br />
*r36537 Documents LCLIntf.GetDeviceCaps<br />
*r36538 IDE: always store lazarus directory<br />
*r36539 LazReport: uppercase variable before comparing with hardcoded functions. Properly fix to 21624<br />
*r36543 IDE: setup dialog: using same file resolving as IDE<br />
*r36546 IDE: consider empty lazarusdirectory as pcp, empty fpcsrcdir as lazdir, empty testdir as lazdir<br />
*r36548 IDE: fixed note about wrong laz dir<br />
*r36549 IDE: fixed crash on find identifier references<br />
*r36551 IDE: translate descriptions of all macros<br />
*r36552 IDE: fixed editor tab position combobox items localization on Editor/Misc options page<br />
*r36556,r36557 IDE: warn if upgrading configs<br />
*r36561, 36562, 36563, 36566: Improve Options/Keymap<br />
*r36565 LCL: Prevent TShape.stRectangle disappearing with certain Height/Width and Pen.Width values.<br />
*r36567,r36568,r36569 IDE: show downgrade warning<br />
*r36570 lazbuild: select IDE build mode, fixed compiling with different mode<br />
*r36572 LCL: set csCaptureMouse on TToolButton, but don't send click if mouse is out of ttoolbutton on mouseup.issues [[http://bugs.freepascal.org/view.php?id=19688 19688]],[[http://bugs.freepascal.org/view.php?id=21560 21560]]<br />
*r36574 IDE: fixed saving environment on every change<br />
*r36577 LCL, TreeView: fix GetNextVisible, GetPrevVisible. Issue [[http://bugs.freepascal.org/view.php?id=21264 21264]]<br />
*r36575 IDE/Setup dialog: force taskbar button to be shown<br />
*r36584 IDE: import package list: opendialog<br />
*r36587 IDE: intial setup: fpc src dir: lazdir/fpc/fpcver/source<br />
*r36588 IDE: intial setup: fixed if no candidates found<br />
*r36589,r36590 IDE: compiler file name: search first with macros<br />
*r36591 IDE: verbose search for candidates<br />
*r36592 IDE: search fpc src relative to fpc.exe<br />
*r36594 IDE: check compiler: only run common names<br />
*r36595,r36599 IDE: use under windows as default for make the make.exe in the compiler directory<br />
*r36596 IDE,codetools: fixed ppccross,crossppc to ppcross<br />
*r36601 IDE: unify the 2 filters in KeyMapping window. Prevent a potential crash.<br />
*r36603 debian: updated patches to latest source in lazarus svn<br />
*r36608 Gtk2: do not set widget name, it's completelly unnecessary and produce unexpected behaviour if some keywords are in widget name.issue [[http://bugs.freepascal.org/view.php?id=21661 21661]].<br />
*r36613 SynEdit: Fix an issue with Scrollbars not being updated<br />
*r36617 lazbuild: build ide: replace exe on windows<br />
*r36644 IDE: improved 'Export package list' dialog localization<br />
*r36645 IDE: improved 'Package Graph Explorer' dialog localization<br />
*r36647,r36653,r36654,r36655,r36656,36668,36673 IDE: view / IDE internal / what needs building<br />
*r36648,r36650,r36651 IDE: read state file created by Makefile: fix path delimiters, checking compiled state: ignore -v,-i,-B flags, do not skip all -F<br />
*r36652 IDE: codetools options: shorter caption<br />
*r36658 regenerated translations; updated Russian translation <br />
*r36659 LCL: Refactoring. Make TCalculatorDialog.Execute more understandable by removing a "with" block.<br />
*r36661 LCL: Prevent "Test Dialog" feature of Calculator and Calendar dialogs locking the IDE, issue [[http://bugs.freepascal.org/view.php?id=21644 21644]]<br />
*r36616 SynEdit: do not include IME for WinCe<br />
*r36662 LCL: implementation of TCustomImageList.GetIcon()<br />
*r36663 In GUI strings, unify all 3 dots to have a space before them ( ...)<br />
*r36664 IDE: Use CreateAbsolutePath when switching between relative/absolute paths in AddFile dialogs (CreateAbsoluteSearchPath gives wrong output)<br />
*r36665 LCL: publish TUpDown.OnChangingEx<br />
*r36666 IDE etc.: unify 3 dots in GUI string to have a space ( ...).<br />
*r36667 translation: german: updates from Swen Heinig<br />
*r36669 updatemakefiles: write which lpk have conditionals<br />
*r36670,r36671 IDE,lazbuild: create makefile: use CPPROG instead of COPY to get the current date for Makefile.compiled under Windows<br />
*r36649,r36657,r36602,r36672,r36675,r36677,r36679,r36683,r36701,r36708,r36709 Makefiles: updated, reduced dependencies, fixed double compiles<br />
*r36676 LCL: Implement TListItem.EditCaption, issue [[http://bugs.freepascal.org/view.php?id=20295 20295]].<br />
*r36680,r36699 lazbuild: fixed crash, replaced some MessageDlg with IDEMessageDialog<br />
*r36681 IDE,lazbuild: use parsed compiler filename, make filename<br />
*r36682 IDE: debugfilename, debugsearchpath: use same function as other env vars to resolve macros, trim and find<br />
*r36686,r36688 IDE/lazbuild backup, delete the same lazarus exe on all platforms<br />
*r36694 regenerated translations; updated Russian translation<br />
*r36695 LazDataDesktop: regenerated translations; updated Russian translation<br />
*r36696 IDE: add resource strings for various windows manifest keys<br />
*r36697 fix ImageList.AddMasked() in case of source image has no mask description<br />
*r36702 IDE: TProject.TitleIsDefault: check for project+number, fix for renaming the title of a new project<br />
*r36711 Qt: enable wordwrap on TQtStaticText. issue [[http://bugs.freepascal.org/view.php?id=21697 21697]].<br />
*r36712 LCL: fixed function result<br />
*r36713,r36715 lcl: fixed TToolButton.MouseUp X,Y in boundsrect check<br />
*r36716 LCL, combination of modal form + wsMaximized style produces tiny windows on GTK2, issue [[http://bugs.freepascal.org/view.php?id=21634 21634]]<br />
*r36717 LCL: reverted changes to menus.pp from r36666 (by Paul's request)<br />
*r36718 LCL: regenerated translations<br />
*r36719, *r36826 LCL: fix range check error<br />
*r36720 LazReport: added option to ignore undefined symbols, from Luiz Americo, issue [[http://bugs.freepascal.org/view.php?id=21683 21683]]<br />
*r36723,36724 IDE,lazbuild: fixed repeated build project clean: save project state file before compiling too<br />
*r36727 lazbuild: fixed expanding --lazarusdir<br />
*r36728 make useride: pass --lazarusdir=.<br />
*r36729 Improve TStringHashList, prevents a PO file update crash. Issue [[http://bugs.freepascal.org/view.php?id=21685 21685]]<br />
*r36730 IDE: project wizard: fixed fixed size, bug 21714<br />
*r36731 lazreport: fix possible access violation by checking dataset for nil<br />
*r36732 win32: fix range check error<br />
*r36733 lazbuild: auto create ide/revision.inc if missing<br />
*r36734 Gtk2: fixed mouse capturing on native scrolling win controls (TListBox,TListView etc).issue [[http://bugs.freepascal.org/view.php?id=21713 21713]]<br />
*r36735 LCL: TToolButton: commented debugln().<br />
*r36740 lazbuild: fixed uninitialized function result, fixed checking if init failed, quick check if lazarusdir is valid.<br />
*r36741 lazutils: Patch with font collection support from Circular<br />
*r36744 examples: Adds a OpenURL/OpenDocument test<br />
*r36745 LCL: Adds the sysenvapis include files to the lpk and adds an extra safety in OpenURL for users which forget to encode spaces in filenames<br />
*r36746 IDE: fixed fixed size dialogs<br />
*r36747 IDE: sort selection: layout<br />
*r36748 IDE: added debugging for sort selection<br />
*r36749 gtk2: clean up<br />
*r36750 IDE: less debugging<br />
*r36751 IDE: jump to next/prev error: fixed direction<br />
*r36752 LCL: TTreeView: clean up<br />
*r36753 IDE: next/prev error: clear multi selection<br />
*r36754 lcl: move interface initialization of TCustomEdit from CreateWnd to InitializeWnd. Consistent with other controls and allows interfaces to check is handle is being created<br />
*r36755 IDE: Add acceleration keys and fix tab order in Project Wizard and ImageListEditor, issue [[http://bugs.freepascal.org/view.php?id=21718 21718]]<br />
*r36756 lcl: remove TCustomListBox.Loaded. ItemIndex is initialized in InitializeWnd<br />
*r36757 lcl: call inherited after setting FLines in TCustomMemo.InitializeWnd. Fix potential crash since widgetset code expect FLines be initialized <br />
*r36758 lcl: check for csDestroyingHandle in TControl.HandleObjectShouldBeVisible. Fix issue [[http://bugs.freepascal.org/view.php?id=19882 19882]]<br />
*r36759 lcl: revert 31890 since issue [[http://bugs.freepascal.org/view.php?id=19882 19882]] is properly fixed now<br />
*r36760 gtk2: less hints<br />
*r36761 gtk2: less hints<br />
*r36762 Carbon: fixed result of TWSCarbonCustomListView GetTopItem,GetViewOrigin and GetBoundingRect. issue [[http://bugs.freepascal.org/view.php?id=21733 21733]]<br />
*r36763 Carbon: added themed TComboBox drawing.Patch by David Jenkins. issue [[http://bugs.freepascal.org/view.php?id=21747 21747]]<br />
*r36764 Carbon: added themed TComboBox drawing.Patch by David Jenkins. issue [[http://bugs.freepascal.org/view.php?id=21747 21747]]<br />
*r36765 Docs: added David Jenkins to contributors list<br />
*r36766 Carbon: make carbon widget visibility in sync with lcl. Patch by David Jenkins. issue [[http://bugs.freepascal.org/view.php?id=21731 21731]]<br />
*r36767 lcl: remove Destroying and DestroyWnd calls from TCustomListBox.Destroy<br />
*r36768 lcl: cleanup TCustomListBox.Create<br />
*r36769 codetools: fixed skipping include files in skipped ifdef<br />
*r36770 gtk2: less hints<br />
*r36771 gtk2: less hints<br />
*r36772 ide: fix selection painting of debugger eventlog colors list<br />
*r36773 carbon: improved TCarbonWidgetSet.RawImage_XXXX routines.Patch by David Jenkins. issue [[http://bugs.freepascal.org/view.php?id=21743 21743]].<br />
*r36774 carbon: proper initialization of alpha channel.Patch by David Jenkins. issue [[http://bugs.freepascal.org/view.php?id=21753 21753]]<br />
*r36775 LCL: implement ClientToParent, ParentToClient based on patch of David Jenkins (issue [[http://bugs.freepascal.org/view.php?id=0021763 0021763]])<br />
*r36776 LCL: extend TThemeServices.IsDisabled, IsHot, IsPushed for teCombobox<br />
*r36777 IDE: Fix tab order and set shortcuts in Application Options frame.<br />
*r36778 LazControls: fix potential crash in TListFilterEdit and TTreeFilterEdit<br />
*r36779 GTK2: add TGtk2WidgetSet.SetDesigning to prevent Abstract method call in IDE. Issue [[http://bugs.freepascal.org/view.php?id=21773 21773]]<br />
*r36780 IDE: fix tab order in Project Save Options frame.<br />
*r36781 IDE: fix tab order in frames: Build Modes editor, Miscellaneous Options and Version Info<br />
*r36782 IDE: fix tab order in option frames: Code Generation, Compilation, Linking, Messages, Parsing.<br />
*r36783 GTK2: clean up<br />
*r36784 GTK2: clean up<br />
*r36786 Carbon: removed extra code for teComboBox, since teComboBox is supported by themes as of r36776.<br />
*r36787 gtk2: clean up<br />
*r36788 gtk2: fixed Gtk2WidgetSet.ClipboardGetData mem leak on stream write error<br />
*r36789 gtk2: removed OldCreateStatusBarPanel<br />
*r36790 gtk2: clean up<br />
*r36791 gtk2: clean up<br />
*r36794 IDE: CloseQueryIDEWindows: skip sub forms<br />
*r36795 Fix crash in dbg-console, if dbg not active. issue [[http://bugs.freepascal.org/view.php?id=21712 21712]]<br />
*r36796 SourceEdit: use softcenter for Replace prompt. Issue [[http://bugs.freepascal.org/view.php?id=0021709 0021709]]<br />
*r36797 regenerated translations; updated Russian translation<br />
*r36800 IDE: when checking if a FPC unit has changed: ignore units that have no source in the FPC sources. Needed to ignore user units reachable through fpc.cfg.<br />
*r36801 IDE: fix error message can't find unit if the ppu is in one of the loaded packages<br />
*r36803 DOCS: correct the documentation about CanFocus<br />
*r36806 LCL: clear FActiveDefaultControl on that control destruction<br />
*r36810 LCL: fix copy paste error<br />
*r36811 LCL: don't update Default, Cancel during their applying in UpdateDefaultCancel<br />
*r36812 LCL: add and ability to use own TListItems, TListItem descendants in TListView for delphi compatibility<br />
*r36821 gtk2 intf: fixed compilation FPC_FULLVERSION<20600<br />
*r36822 gtk2 intf: clean up<br />
*r36823 gtk2 intf: clean up<br />
*r36824 gtk2 intf: clean up<br />
*r36825 LCL: initialize font height with the height from DefFontData<br />
*r36852 IDE: when checking if global unit has changed, skip units in packages<br />
*r36857,36859 LCL: TControl.UpdateBaseBounds: set cfBaseBoundsValid<br />
*r36861 LCL: TCustomSplitter.SetAnchors: adapt anchors before applying<br />
*r36870 LCL: SetAlign: restore the basebounds set before changes<br />
*r36877 LCL: clean up<br />
*r36882 LCL: TControl.SetAnchors: during disabled autosize: update basebounds when changing Anchors, bug 21730<br />
*r36884 LCL: fixed sending CM_EXIT,CM_ENTER when flastfocusedcontrol was removed<br />
*r36885 LCL: constraint Width,Height to >=0<br />
*r36888 Converter: fixed 'Missing units' dialog localization, part of bug 21784<br />
*r36889,r36890 codetools: class completion: fixed gathr proc definitions<br />
*r36891 IDE: show compiling resource lines when error on compiling resources<br />
*r36892 IDE: improved message when can not find unit and unit was found in a package<br />
*r36893,r36894 IDE: messages: show debug: lines and calling resource compiler<br />
*r36895,r36896 gtk2 intf: checking for liboverlay, using value-changed instead of change-value<br />
*r36897 LCL: made TImage.DestRect public<br />
*r36899 Fix encoding errors in Japanese translation<br />
*r36900,r36901 startlazarus: fixed asking for custom or default<br />
*r36902 LCL: fixed ShowModal() when Hide() is called on modal form to be Delphi compatibile.issue [[http://bugs.freepascal.org/view.php?id=15390 15390]]<br />
*r36903 IDE: fixed read/write designinfo, bug 21804<br />
*r36904 IDE: do not save a new project where only session was modified, bug 21803<br />
*r36905 gtk2 intf: fixed TGtk2WSCustomTabControl.GetDefaultClientRect to check if gtknotebook has a page<br />
*r36906,36907 codetools: AddLocalVar: do not add hidden used unit<br />
*r36908 Qt: added TQtWidget.testAttribute() function.<br />
*r36910 DBG: Tests for environment<br />
*r36913 TAChart: Set Brush.Color before Brush.Style to work around issue [[http://bugs.freepascal.org/view.php?id=21806 21806]]<br />
*r36914: TAChart: Fix compilation of OpenGL drawer<br />
*r36924 gtk2 intf: TGtk2WSCustomTabControl.GetDefaultClientRect for TTabControl<br />
*r36925 Qt: fixed resize events of TQtTabWidget and accurate information about clientRect changes. issue [[http://bugs.freepascal.org/view.php?id=21805 21805]]<br />
*r36929 Gtk2: fixed text background drawing in TGtk2WidgetSet.ExtTextOut() when BkMode = OPAQUE.issue [[http://bugs.freepascal.org/view.php?id=19384 19384]]<br />
*r36941 Translations: Brazilian Portuguese translation update by Marcelo B Paula, bug 21818<br />
*r36938,36939 LazReport, lift up to preview window improving layout and functionality, from Julio Jimenez B.<br />
*r36942 LazReport, avoid hiding text at some zoom values due small differences in text height calc (DONT MERGE YET, NEEDS MORE TESTING)<br />
*r36943 IDE: msg quickfix for cant find unit: add position<br />
*r36956 carbon: added FHasPaint variable to TCarbonWidget to allow owner draw.issue [[http://bugs.freepascal.org/view.php?id=21744 21744]]<br />
*r36957 carbon: added ScrollRect() routine to TCarbonWidget. issue [[http://bugs.freepascal.org/view.php?id=21741 21741]]<br />
*r36958 carbon: set FTabIndex instead ATabIndex variable in TCarbonTabsControl.SetPageIndex. patch by David Jenkins.issue [[http://bugs.freepascal.org/view.php?id=21728 21728]]<br />
*r36959 carbon: optimized caret drawing to not update whole widget.patch by David Jenkins. issue [[http://bugs.freepascal.org/view.php?id=21768 21768]]<br />
*r36960 carbon: fixed order of check width > height in TCarbonTrackbar.patch by David Jenkins. issue [[http://bugs.freepascal.org/view.php?id=21740 21740]]<br />
*r36961 carbon: implemented autosizing for listview / databrowser columns.patch by David Jenkins. issue [[http://bugs.freepascal.org/view.php?id=21745 21745]]<br />
*r36962 carbon: fixed possible bad loop in TCarbonSpinEdit.CreateWidget.Patch by David Jenkins.issue [[http://bugs.freepascal.org/view.php?id=21732 21732]]<br />
*r36965 IDEIntf: fixed typo<br />
*r36967 Gtk2: fixed retreiving font name from TGtk2WidgetSet.GetObject() when font is default. issue [[http://bugs.freepascal.org/view.php?id=21828 21828]]<br />
*r36968 codetools: JumpToPublishedMethodBody: raise error<br />
*r36969 codetools: fixed FindMethodNodeInImplementation for program<br />
*r36971 tests: codetools: added test for duplicate sections, parsing library<br />
*r36972 codetools: fixed reparsing initialization, finalization, begin<br />
*r36973 codetools: fixed treating initialization, finalization as statement<br />
*r36974,r36975,r36976,36977,36978 codetools: fixed find declaration in library starting in initialization, bug 21832<br />
*r36981,r36982 codetools: identifier completion: fixed continue searching<br />
*r36979 Updated Japanese translation by Haruyuki Fujimaki<br />
*r36980 Fix japanese encoding<br />
*r36983,r36984 codetools: identifier completion: some keywords for library, program<br />
*r36985 codetools: identifier completion: keyword initialization for library, issue [[http://bugs.freepascal.org/view.php?id=21839 21839]]<br />
*r36986 Updated Japanese translation by Haruyuki Fujimaki<br />
*r36990 codetools: identifier list: skip identifier at cursor<br />
*r36991,r36992 IDE: identifier completion: add do after with, issue [[http://bugs.freepascal.org/view.php?id=16850 16850]]<br />
*r36996,r36997,r36999,r37013,r37014,r37015 runtests: fixed compilation, added some tests<br />
*r37012,r37011,r37009,r37008,r37007,r37006,r37005,r37004,r37003,r37002,r37000 carbon interface: clean up<br />
*r37020 IDE: recent/history lists: replaced case sensitive comparison with three types<br />
*r37021 docking: update modified flags<br />
*r37022 codetools: fixed uninitialized result<br />
*r37025 IDE: use unit dialog: check for syntax errors<br />
*r37026,r37027 DBG: Prepare for different line endings. / Accept different line endings (#10, #13, #10#13, #13#10) issue [[http://bugs.freepascal.org/view.php?id=0021834 0021834]].<br />
*r37029 Gtk2: fixed drawing of text with solid brush. issue [[http://bugs.freepascal.org/view.php?id=21863 21863]]<br />
*r37031 Gtk2: do not draw text background if colormap isn't assigned. Second part of issue [[http://bugs.freepascal.org/view.php?id=21863 21863]].<br />
*r37032 gtk2: clean up old mouse capture<br />
*r37033 gtk2: fixed releasecapture<br />
*r37034 gtk2: verbosity for ubuntu liboverlay mouse capture bug<br />
*r37038 sqldb: Enable mssqlconnection for fpc >= 2.6.1 (patch from Reinier Olilagers, bug 21867) - added because creates conflicts with later sqldb merges<br />
*r37040: TAChart: Workaround for TDbChartSource referring to the dataset with Filtered := true<br />
*r37043 LCL, fix TPostScriptPrinterCanvas.ClipRect is empty-rect until explicitly set by user, patch from Joachim Paepke, issue [[http://bugs.freepascal.org/view.php?id=21027 21027]]<br />
*r37051 Translations: Ukrainian translation update by Igor Paliychuk<br />
*r37052 regenerated translations; updated Russian translation<br />
*r37053 LCL: fixed compilation for fpc 2.7.1<br />
*r37054,37055,37057 set TDBLookup.FListLink.DataSource dynamically to FListSource or a local datasource. Issue [[http://bugs.freepascal.org/view.php?id=15410 15410]]<br />
*r37067 LCL: fixed visibility of implemented interfaces<br />
*r37069 simple deb: using make bigide, updated list of tools<br />
*r37070 openglcontrol: fixed mem leak, issue [[http://bugs.freepascal.org/view.php?id=21597 21597]]<br />
*r37071 codetools: identifier completion: unit name of self<br />
*r37076 gtk2: clean up<br />
*r37077 IDE: clean up<br />
*r37092 LCL: fixed compilation for fpc 2.7.1<br />
*r37093 DBG: Testcase: fixed reading env-options<br />
*r37095 SynEdit: fix crash in overview gutter creation. Issue [[http://bugs.freepascal.org/view.php?id=0021887 0021887]]<br />
*r37096 SynEdit: Do not offer OverviewGutter in Gutter-parts designer<br />
*r37101 lazreport: fixed compilation with fpc 2.7.1, new TBookMark<br />
*r37102 lazreport: clean up<br />
*r37112,r37113 SynEdit: highlight class "helper". Fix wrong highlight of "sealed" Issue [[http://bugs.freepascal.org/view.php?id=0021812 0021812]]<br />
*r37115 openglcontrol: fixed mem leak, issue [[http://bugs.freepascal.org/view.php?id=21597 21597]]<br />
*r37126 LCL: Publish some TCheckGroup properties.<br />
*r37129 gtk2: clean up<br />
*r37154,37247,37248 lcl-db: prevent lookup initialization when dataset is destroyed<br />
*r37155 LCL, use rectclip to set clipping rectangle instead of current path because it sometimes get drawn on next stroke (related to r37043)<br />
*r37157 Qt: fixed key events from QCalendar, now tabbing works fine.<br />
*r37160 LCL: published missing properties TCalendar.Hint and TCalendar.TabOrder.<br />
*r37167 LCL: Fix range check error in StringGrid when sorting and RowCount=FixedRows, issue [[http://bugs.freepascal.org/view.php?id=21947 21947]]<br />
*r37073 codetools: resolve expr: thisunitname.implementationenidentifier<br />
*r37078 codetools: find declaration: selfunit.implementationidentifier<br />
*r37079,r37080,r37081,r37082,r37083,r37087,r37089,r37098 codetools: getsmarthint: class variables, enum, array of, inheritance, property params and type, use unit<br />
*r37085 IDE: show compiler options: check compiler<br />
*r37086,37088 IDEIntf: removed TLazCompilerOptions.LCLWidgetType, fixed computing default LCLWidgetType on cross target OS<br />
*r37090 codetools: do not try to search in record ancestors<br />
*r37105 DBG: Watches Copy Name/Value to clipboard. Issue [[http://bugs.freepascal.org/view.php?id=0021860 0021860]]<br />
*r37106 DBG: Register Copy Name/Value to clipboard. Issue [[http://bugs.freepascal.org/view.php?id=0021860 0021860]]<br />
*r37107 DBG: Watches, added inspect/evaluate to popup<br />
*r37116 DBG: Fix a possible crash in debugger (history). Issue [[http://bugs.freepascal.org/view.php?id=0021901 0021901]]<br />
*r37195 SourceEdit: Do not access outdated tab-history entries (dangling pointers). Issue [[http://bugs.freepascal.org/view.php?id=0021939 0021939]]<br />
*r37196 SourceEdit: Only add tabs to tab-history that were accessed<br />
*r37103,r37132 codetools: nested types: Self and inherited<br />
*r37104,r37120 codetools: GetSmartHint: show anonymous arrays<br />
*r37111 IDE: Make Close button work in Components List dialog. Issue [[http://bugs.freepascal.org/view.php?id=21892 21892]],<br />
*r37118 IDE: build ide: if building fails, clear flag clean up once<br />
*r37119 IDE: when building IDE failed: restore backup<br />
*r37121,r37122 IDE: select frame: search in packages<br />
*r37130 IDE: select frame: search in packages<br />
*r37131 LCL, implements textrect clipping in Postscriptprintercanvas<br />
*r37133 SynEdit: Fix WantTabs / Change default to "True" Issue [[http://bugs.freepascal.org/view.php?id=0021904 0021904]]<br />
*r37134 SynEdit: Remove not required invalidation (paint / call to wrong Update() )<br />
*r37135 SynEdit: Remove wrong implementation of Update. Update no longer forwards to Invalidate<br />
*r37136 IpPro: Fix painting for SelectAll<br />
*r37137 IDE, IpPro: Allow copy to clipboard from hint (zeljko added because of conflict in 37345)<br />
*r37140 cody: show code node info: show complete source<br />
*r37141 SynEdit: Fixed Caret paint error (extra caret left on screen) Issue [[http://bugs.freepascal.org/view.php?id=0021924 0021924]]<br />
*r37143 IDEIntf: added TPropertyEditorHook.IsSelected<br />
*r37144 IDEIntf: TDefaultComponentEditor: always select component<br />
*r37146 IDE: if component class is missing: note about RegisterClass<br />
*r37148 Translations: Ukrainian translation cleanup<br />
*r37149 IDE: regenerated translations; updated Russian translation<br />
*r37151 cody: IDE item to create dockable IDE window<br />
*r37152 cody: new IDE window: show dialog to setup form name<br />
*r37162,r37163 IDE: TProjectFileDescriptor.DefaultResourceName: first try without appending a number, check for pascal keywords<br />
*r37164,r37165 IDE: fixed DoGetUnitRegisterInfo for virtual files<br />
*r37166 SynEdit: Fixed Caret when scrolling under older Wine (Win Emulator)[[http://bugs.freepascal.org/view.php?id=21929 21929]]<br />
*r37212 sqldb: added icon for TMySQL55Connection for fpc 2.6.1 '<br />
*r37213,r37214,r37219 codetools: do not save errors outside parser<br />
*r37215 codetools: GetSmartHint: ^, .., file of, class of<br />
*r37220 Translations: Czech IDE translation update by Martin Smat<br />
*r37224 SynEdit: Autocompletion, workaround for click on hint Issue [[http://bugs.freepascal.org/view.php?id=21952 21952]]<br />
*r37231 SynEdit: Prevent some scrolling, while selecting by mouse. Issue [[http://bugs.freepascal.org/view.php?id=0021996 0021996]]<br />
*r37232 DBG: Inspect window, improve scrolling<br />
*r37234 DBG: Improve start-up to work with bug in gdb 7.4<br />
*r37262 searching compiler: search first in dir of fpc.exe, then in PATH<br />
*r37263,r37265 codetools: improved error message on unit not found<br />
*r37264 fix setting radiogroup.itemindex under gtk2. Issue [[http://bugs.freepascal.org/view.php?id=22013 22013]]<br />
*r37267 Docs: improved build_lcl_docs robustness when working with TProcess, patch from Reinier Olislagers, bug 22000<br />
*r37273 SourceEditor: Fix crash when closing several tabs, while debugging (paused / loading line info). Maybe related to issue [[http://bugs.freepascal.org/view.php?id=22015 22015]]<br />
*r37274 Fix Crash in building "Windows" (list of open W.) Menu. Note 0059576 in Issue [[http://bugs.freepascal.org/view.php?id=22015 22015]] (not related to other parts of issue)<br />
*r37280 SQLdb: added missing tmysql55connection.png, bug 22033 '''Related to 37212 and other revisions for TMySQL55Connection'''<br />
*r37281 SynEdit: protect ProcessCommand() against early destruction by ReleaseComponent. Issue [[http://bugs.freepascal.org/view.php?id=0022035 0022035]]<br />
*r37285 IDE: make Close button work in Window Manager<br />
*r37286 Patch from bug 21651, automatically adds quotes to paths with spaces for OpenDocument in Mac OS X<br />
*r37297,r37298 SynEdit, Pas-HL: record helper, deprecated in object<br />
*r37311 Translations: Arabic IDE translation update by Mazen NEIFER<br />
*r37312 IDE: Make Help button work in Editor Window Manager, issue [[http://bugs.freepascal.org/view.php?id=21961 21961]]. (zeljko added to merge list because of conflicts in 37491)<br />
*r37325 regenerated translations; updated Russian translation<br />
*r37326 Translations: Brazilian Portuguese translation update by Marcelo B Paula, bug 22064<br />
*r37327 IDE, Code Generation options: changed wrong -Op386 option to correct -Op80386. Patch by barlone with some consistency changes, bug 22062.<br />
*r37357 Gtk2: fixed mbAll button on dialogs. Added response keys which does not exist in gtk2. issue [[http://bugs.freepascal.org/view.php?id=22083 22083]]<br />
*r37344 gtk2 intf: less hints<br />
*r37345 ipro: less hints <br />
*r37359 lazreport: German translations<br />
*r37360 cody: German translations<br />
*r37039,r37319,r37324,r37361 sqldb: German translations (zeljko added 37039,37319,37324 because of conflicts)<br />
*r37362 educationlaz: German translations<br />
*r37363 ide: German translations<br />
*r37372 lcl: don't access Items of TreeView if DragOver happens during treeview destruction<br />
*r37373 IDE: debugger options: check the resolved file, bug 22086<br />
*r37374 Qt: bypass windowmanager when showing dragimagelist.<br />
*r37375 Gtk2: do not show taskbar entry for dragimagelist.<br />
*r37376 IDE: update TUnitInfo.ResourceBaseClass on loading lfm<br />
*r37378 [Edited, includes selected lines of 37402] SourceEditor: Hide hint, when mouse moves (even if outside IDE, or IDE is not active). Issue [[http://bugs.freepascal.org/view.php?id=0022016 0022016]]<br />
*r37368 DBG: Fixed array len for 64 bit<br />
*r37369 lcl: don't crash when either DragTarget or dragged control is freed (issue [[http://bugs.freepascal.org/view.php?id=22067 22067]])<br />
*r37370 lcl: cleanup debug info<br />
*r37371 lcl: fixed a memory leak when canceling drag of dead control<br />
*r37380 SourceEdit/DBG: Ensure Codebuffer is updated before using it to add watches<br />
*r37383 IDE: TUnitInfo.fModified: do not set on get<br />
*r37384,r37401 IDE: do not set TUnitInfo.Modified when committing source editor to codetools<br />
*r37388,r37389,r37390,r37391,r37392 tests: added tests for cfgscripts, fixed unit output directory, cfgscript: fixed error message if semicolon is missing, IDE: added conditionals functions GetIDEValue, GetEnv, LCL: use IDE widgettype as default<br />
*r37397 TodoList: properly trim comment markers and convert multiline text to single line, fixes bug 22085. Based on patch by Anton.<br />
*r37400 codetools: fixed mem leak<br />
*r37418: TAChart: Fix range check using datapoint tool on a chart without series<br />
*r37440 DBG: do not set temporary stack = -1 in thread changing. This may cause errors<br />
*r37444 DBG: Watches, save "Use instance class" to config<br />
*r37449 LCL: fixed comments<br />
*r37451 Qt: fixed wrong SetCapture() under win32. Problem was passed TQtWidget handle instead of underlaying widget winID() which is native handle.<br />
*r37453 SynEdit: Fix goto bookmark and persistent block. Do not clear persistent block<br />
*r37461 lcl: TCustomForm.UpdateDockCaption: fixed repair garbage<br />
*r37463 IDE: when docked keep IDE caption<br />
*r37464 Help, DBG: New link to wiki for watch properties<br />
*r37475 codetools: TCustomCodeTool.FindLineEndOrCodeAfterPosition: fixed crash when at end of code<br />
*r37476 codetools: clear nodes behind, when linkscanner parsed only parts<br />
*r37481 IDE: fixed storing old LCLWidgeType, bug 22174<br />
*r37482 codetools: save parse error of operator, do not save errors outside parser, fixed parsing method name with generic parameter<br />
*r37483 codetools: allow keywords in program name<br />
*r37534 Qt: do not call setValue() but setPosition() so lcl gets accurate values later. issue [[http://bugs.freepascal.org/view.php?id=22187 22187]]<br />
*r37491 Help, DBG: Link to wiki for breakpoint properties (zeljko - 37312 is merged too, because of conflicts)<br />
*r37470 IDE, DBG: debug-eval hint, do not show, if selection exceeds one statement (e,g whole file selected). Part of issue [[http://bugs.freepascal.org/view.php?id=0022081 0022081]]<br />
*r37471 SourceEditor: Fix an issue with focusing an editor, that is being closed (while debugging) "no parent handle". Issue [[http://bugs.freepascal.org/view.php?id=0022015 0022015]]<br />
*r37517 SynEdit: fixed folding for "case" and "try" in certain code segments (initialization / case...else try)<br />
*r37518 SynEdit: Pas-HL: fix detection of case...else versus if...then...else<br />
*r37522 SynEdit: Pas-HL: better detection of case...else<br />
*r37623 SourceEditor: Fix (Work-around) an issue with focusing an editor, that is being closed (while debugging) "no parent handle". Issue [[http://bugs.freepascal.org/view.php?id=0022015 0022015]] // Required some parts of r37502<br />
*r37609 DBG: Avoid re-queuing of dis-assembler requests, after cancelling it. Part of issue [[http://bugs.freepascal.org/view.php?id=0022230 0022230]]<br />
*r37643 DBG: Disassembler: prevent disassembler from doing large address ranges, if gdb returns data with far away addresses. Issue [[http://bugs.freepascal.org/view.php?id=0022230 0022230]]<br />
*r37657 DBG: fixed a out of index error, in watches history<br />
*r37694 DBG: Fixed possible crash in watch evaluation (WatchValue freed while evaluating / in GetValue)<br />
*r37466 IDE: added menu item to insert MIT license text<br />
*r37407,r37474,r37492 IDE: TMainIDE.DoSourceEditorCommand: improved focus check, requires r37466<br />
*r37564 LCL: TCustomListView: reset FCacheIndex and FCacheItems before sorting list, otherwise we'll have unexpected results. issue [[http://bugs.freepascal.org/view.php?id=22218 22218]]<br />
*r37505, r37509, r37516, r37523 fixed compilation with fpc 2.7.1<br />
*r37592 lcl: fixed compilation fpc 2.7.1<br />
*r37525 TAChart: Display legend symbols even if the text is empty<br />
*r37565 TAChart: Display major axis marks at the edges of the clip range<br />
*r37576 TAChart: Fix infinite recursion when drawing chart listbox from series with Legend.Multiplicity <> lmSingle<br />
*r37588 TAChart: Include Item.Y in reordered list of TCalculatedChartSource. Update test. '''This will break old tests. Please contact me for a fix --- Ask'''<br />
*r37727 TAChart: Update to the recent version of FPVectorial<br />
*r37587 Qt: unset icon when doing internal sync after sorting. part of issue [[http://bugs.freepascal.org/view.php?id=22218 22218]]<br />
*r37620 LCL: invalidate parent preferredsize when borderspacing changed, bug 17947<br />
*r37621 LCL: clean up - invalidate in TControl.DoBorderSpacingChange no longer needed with new autosizing<br />
*r37622 lazutils: added missing file<br />
*r37624 LCL: GetClientRect: if interface has the right width,height trust the clientrect, this avoids some unneeded resizes<br />
*r37573 IDE: project inspector: add files: allow dotted unit names, bug 22209<br />
*r37619 IDE: open package dependency: try provides, issue [[http://bugs.freepascal.org/view.php?id=17960 17960]]<br />
*r37628 IDE: compiler options: disable target platform for packages<br />
*r37594 codetools: fixed Unneeded extra space in event assignment completion<br />
*r37613 codetools: property completion: add class var for class property variables<br />
*r37614 codetools: class completion: search variables in all sections, bug 22246<br />
*r37625,r37626,r37627 codetools: class completion: fixed searching var node when first is class var<br />
*r37629 codetools: fixed adding class keyword for property setter of a class property<br />
*r37630 IDE: codeexplorer: labels<br />
*r37634 IDEIntf: objectinspector: fixed painting outside paint event<br />
*r37631 codetools: no var node for anonymous record case variables<br />
*r37632 codetools: identifier completion: when creating an override hide higher visibility members<br />
*r37633 codetools: class completion: add static method modifier for setter of class property<br />
*r37636 codetools: class completion: add static method specifier for class property setter<br />
*r37635 IDE: paste component: fix renamed references<br />
*r37637,r37638,r37639 IDE: paste multiple components: fix references, lcl: LRSObjectTextToBinary: write convert list of components<br />
*r37640 IDE: paste components: update TControl.Caption<br />
*r37642 lcl: fixed LRSObjectTextToBinary toWString, issue [[http://bugs.freepascal.org/view.php?id=19650 19650]]<br />
*r37644 codetools: fixed inserting proc bodies in implementation in front of methods<br />
*r37652,r37653,r37655 codetools: using TFileStreamUTF8<br />
*r37656 IDE: using TFileStreamUTF8 and TStringListUTF8<br />
*r37663 IDE: fixed show info on --help when no stdout exists<br />
*r37689 LCL: fixing handling of special keys for TCustomEdit and TCustomMemo<br />
*r37690 codetools: forward proc completion: stay in same section<br />
*r37697 DBG: Dialogs, don't give help related commands to IDE. They will be ignored<br />
*r37698 IDE Help: add urls for dbg dialogs<br />
*r37703 lazutils: utf8pos: added optional parameter StartPos<br />
*r37704 IDE: setup dialog: show fpc source directory release version as warning instead of error<br />
*r37707 tools create deb+rpm: use 128x128 icon<br />
*r37705 SynEdit: open and close clipboard explicitly to write multiple formats.<br />
*r37714 lcl: gtk2: warn only once about liboverlay<br />
*r37711 lhelp: cleaned up paths<br />
*r37712 lhelp: clean up<br />
*r37713 lhelp: resolve macros in HelpEXE on the demand<br />
*r37715 chmhelp: using search path to search for chm files<br />
*r37716,r37717 chmhelp: added path $(LazarusDir)/docs/chm<br />
*r37718 'hmhelp: search ref.chm in docs/chm<br />
*r37726 create_lazarus_deb: added option chmhelp<br />
*r37722 DBG: Event-Log: Do not cache Options. Allow user to change options while debugging<br />
*r37596 Patch from {{MantisLink|0022231}} "fix warnings with fpc 2.6.1".--[[User:AlexVinS|AlexVinS]] 21:40, 8 June 2012 (UTC)<br />
*r37745 deb+rpm: default environmentoptions: updated to 107, removed default gdb entry<br />
*r37748,r37755 lhelp: added makefile<br />
*r37749 make bigide: build lhelp<br />
*r37753 IDE: fixed comparing file names case insensitive<br />
*r37754 lazutils: inlined UTF8CompareStr<br />
*r37760 Use Utf8CompareText instead of AnsiCompare<br />
*r37762 linux: added encoding to desktop file<br />
*r37769 Use Utf8CompareText instead of AnsiCompare<br />
*r37770 TAChart: Fix AV when clearing Series.Styles and TColorMapSeries.ColorSource properties<br />
*r37772 Use Utf8CompareText instead of AnsiCompare<br />
*r36804 win32: mark client rect as required update before WM_SIZE passing, remove DoAdjustClientRectChange - they are called inside WM_SIZE handler after the client rect is updated (fixes bug [[http://bugs.freepascal.org/view.php?id=0021724 0021724]])<br />
**Paul remarked about r36804: "Please don't merge it for at least 2 weeks". Also seems to cause problems in grids, see [http://bugs.freepascal.org/view.php?id=21790 issue [[http://bugs.freepascal.org/view.php?id=21790 21790]]].<br />
*r36993: LCL, fixed Problems setting Width, Height for TCustomGrid if ScrollBars is auto, from cobines, issue [[http://bugs.freepascal.org/view.php?id=21790 21790]]. If r36804 is merged, please merge also r36993<br />
*r37783 startlazarus: linux: adding LIBOVERLAY_SCROLLBAR=0 to avoid problems with mouse capturing<br />
*r37785 gtk2 intf: disable liboverlay by default<br />
*r37790 gtk2 intf: use setenv only on Linux<br />
*r37795: export tgz: added option to add chm files<br />
*r37796 IDE: when copying secondary configs create the primary config directory first<br />
*r37797 rpm: added option chmhelp<br />
*r37810 rpm: fixed building without chmhelp<br />
*r37811 lhelp: fixed invalid recent item path in config, added build modes default,debug<br />
*r37814 chmhelp: clean up old ipc files to prevent IDE hang<br />
*r37817-r37821 MAKE DEB<br />
*r37838 DBG: Fix handling console input<br />
*r37824 chmhelp: Fixed lazarus hanging when chmhelp pipe is leftover from an improperly closed lhelp<br />
*r37825 chmhelp; Fixed chmhelp typo (boolean error)<br />
*r37826 chmhelp: fixed bug where a new lhelp process could be started each time F1 was pressed<br />
*r37841 DBG: Pseudo-Terminal, accept tabs<br />
*r37848 lazutils: docs: fixed encoding and package name<br />
*r37849 lcl: docs: fixed encoding<br />
*r37850 ide: docs: fixed encoding<br />
*r37851 updated docs<br />
*r37853 lcl: docs: fixed some links<br />
*r37852 build_lcl_docs: using UTF-8 file functions, added option -h<br />
*r37855 build_lcl_docs: showcmd: show working directory<br />
*r37861 lcl: check if ListDataset is loading to update lookup info. Issue [[http://bugs.freepascal.org/view.php?id=22337 22337]]<br />
*r37846 win32: let TComboBox.CloseUp fire before Change (delphi compatible). Fix 22352<br />
*r37880 IDE+startlazarus: use same working directory, needed for passing relative file names as command line parameters, fixed building lcl+lazutils chm on ubuntu 12<br />
*r37866 lazutils: fixed unit names<br />
*r37868 lazutils: added fpdoc files<br />
*r37869 docs: building lazutils+lcl chm<br />
*r37885 DBG: fixed parsing sets for debug-inspector<br />
*r37906 IDE-Options / SynEdit: Fixed RightEdge visibility (Recression)<br />
*r37919 DBG: Prevent potential crash/memory-corruption in Watches<br />
*r37920 DBG: Prevent potential crash in (dbg-)OnIdle handling<br />
*r37921 DBG: Prevent build up of no longer needed commands in queue<br />
*r37945 DBG: Prevent a crash, when the selected snapshot is deleted. Cas also happen when starting the debugger, while a snapshot from previous run is active<br />
*r37950 DBG: fixed endless loop in watch eval (auto type cast) Issue [[http://bugs.freepascal.org/view.php?id=0022425 0022425]]<br />
*r37961 DBG: Disable rangechecks for certain PtrUInt casts<br />
*r37993 carbon: fixed crash of IDE when compiled with range checks on<br />
*r38006 gtk2: fixed crash on QuestionDlg<br />
*r38003 IDE: fixed showing custom project options, issue [[http://bugs.freepascal.org/view.php?id=22486 22486]]<br />
** merged ONLY main.pp<br />
*r38016 ToDoList: fixed encoding of French translation, it should be UTF-8, not ISO-8859-1. Patch by batyann811, bug 22489.<br />
*r37981,37983-37989,38001,38004-38005,38012,38017 Win Installer<br />
=== Fixed after RC1 ===<br />
*r38127 IDE, EditorOptions: Fixed finding color attribute in localized IDE<br />
*r38132 IDE: setup: after changing lazarusdir: fetch translations and translate<br />
*r38133 chmhelppkg: invoke lazbuild with --pcp parameter<br />
*r38138 examples: testall: fixed start<br />
*r38139 examples: cleandirs: error for fpc version<br />
*r38140 examples: componentstreaming: fixed typo, clean up<br />
*r38141 lazfreetype: fixed range check error, improved error message<br />
*r38142 examples: mssqlconn: requires fpc 2.6.1<br />
*r38144 examples: synguttermarks: win32 gui mode, fixed Left position<br />
*r38146 examples: tv_add_remove: updated<br />
*r38147 examples: xmlreader: added example xml<br />
*r38157 IDE: fixed saving ambiguousfileaction, bug 22573<br />
*r38158 examples: clean up<br />
*r38038 TAChart: Allow spaces in field names inside TDbChartSource.FieldY<br />
*r38168 synuni: clean up fpc options<br />
*r38170 synuni, semaphorgridlpk: clean up fpc options<br />
*r38022 SynEdit: Fixed drawing errors for frames (left frame site drawn at wrong offset)<br />
*r38145 LCL: TListView fixed "List index out of bounds" while deleting items. issue [[http://bugs.freepascal.org/view.php?id=22552 22552]]<br />
*r38150 SynEdit TSynMultiSyn: Fixed crash when deleting lines. Part of issue [[http://bugs.freepascal.org/view.php?id=0022519 0022519]]<br />
*r38151 SynEdit Highlighter: Fixed crash when scanning empty<br />
*r38152 SynEdit TSynMultiSyn: typo<br />
*r38175 SynEdit TSynMultiSyn: Fixed updating, when appending to EOT. Part of issue [[http://bugs.freepascal.org/view.php?id=0022519 0022519]]<br />
*r38205 lazaruside.fi.po: Finnish translations<br />
*r38180 Synedit: fix matching-bracket-highlight in comments (closing bracket at eol) issue [[http://bugs.freepascal.org/view.php?id=22586 22586]]<br />
*r38198 IDE: Export to html, do not enforce check for writeable. Issue [[http://bugs.freepascal.org/view.php?id=22588 22588]]<br />
*r38199 lazutils: do not use winodws W functions under Win98, issue [[http://bugs.freepascal.org/view.php?id=22596 22596]]; '''Breaks compilation on wince, because win32platform is not defined.'''<br />
*r38202 openglcontrol: win32: fixed sharing context<br />
*r38204 Synedit: fixed typo in IFDEF for fpc 2.60 bug<br />
*r38225 TAChart: Fix division by zero in zoom tools with extreme zoom ratios<br />
*r38226 TAChart: Fix hang in functional series with extreme zoom ratios<br />
*r38223 SynEdit TSynMultiSyn: Several fixes issue [[http://bugs.freepascal.org/view.php?id=0022519 0022519]]<br />
*r38232 TAChart: Add InRangeUlps utility function<br />
*r38233 TAChart: Fix disappearance of axis marks located exactly at chart bounds<br />
*r38234 TAChart: Fix crash when setting Marks.LabelFont from the Object Inspector<br />
*r38237 Examples/SynEdit: Readme and typo in comment<br />
*r38266 IDE: Tweak the layout of ManageExamplesForm<br />
*r38260 TAChart: Use correct notification when the series' source changes<br />
*r38261 TAChart: Issue change notifications when modifying TListChartSource.DataPoint property<br />
*r38285 lhelp: replace MessageBox, with Form.Modal. FIx IPC hang. issue [[http://bugs.freepascal.org/view.php?id=0022592 0022592]]<br />
<br />
=== Fixed after RC2 ===<br />
*r38293 windows installers: don't ask to overwrite the environment options in the secundary config directory from Reinier Olislagers<br />
*r38339 SynEdit TSynMultiSyn: Fix CaseSensitivity for Sheme marker. Issue [[http://bugs.freepascal.org/view.php?id=0022693 0022693]]<br />
*r37386 Remove writeln() that looks like a residual debug message. Issue [[http://bugs.freepascal.org/view.php?id=0022544 0022544]]<br />
*r38385 Translations: removed unmaintained Portuguese translation, which was outdated copy of Brazilian Portuguese one<br />
<br />
== How to merge ==<br />
The lazarus developers have decided to use the native svn merge for this branch. Other branches used the svnmerge.py script to manage the revisions to be merged.<br />
<br />
* TODO: Maybe this information should be put in a separate page.<br />
<br />
[[SVN_Migration#Merge_with_plain_svn]]<br />
=== Using TortoiseSVN ===<br />
As noted in the link above using TortoiseSVN is more or less self explaining. <br />
<br />
* TODO: add some screen shots.<br />
<br />
When committing, in the recent messages a nice commit message is available.<br />
<br />
Tested with TortoiseSVN 1.7.6, SVN 1.7.4.<br />
<br />
=== Show list of revision that can be merged ===<br />
In the lazarus fixes_1_0 directory do:<br />
svn mergeinfo ^/trunk --show-revs eligible<br />
Or if you don't have a fixes directory checked out, you can pass the URL path of the fixes branch:<br />
svn mergeinfo ^/trunk http://svn.freepascal.org/svn/lazarus/branches/fixes_1_0 --show-revs eligible<br />
<br />
=== Show list of revision that have been merged ===<br />
In the lazarus fixes_1_0 directory do:<br />
svn mergeinfo ^/trunk --show-revs merged<br />
<br />
=== Merging revisions from trunk ===<br />
To merge one or more revisions from trunk, use the svn merge command. For example to merge revision 36506 and 36510 use:<br />
svn merge -c 36506,36510 ^/trunk<br />
<br />
To generate a commit log message, use:<br />
svn log ^/trunk -c 36506,36510 > svnmerge-commit-message.txt<br />
<br />
Edit svnmerge-commit-message.txt with your favorite text editor and add a first line like:<br />
Merged revision 36506,36510 from /trunk.<br />
<br />
Commit this with:<br />
svn commit -F svnmerge-commit-message.txt<br />
<br />
=== Blocking a revision to be merged ===<br />
Sometimes you want to block a revision to be merged, i.e. you want to make sure that this revision is never merged to the fixes branch, for example, because it contains a new feature or it contains a version number change not applicable to the fixes branch, but only to trunk. To block revision 36507, use:<br />
svn merge -c 36507 --record-only ^/trunk<br />
Then you can create a log message with:<br />
svn log ^/trunk -c 36507 > svnmerge-commit-message.txt<br />
Edit svnmerge-commit-message.txt with your favorite text editor and add first line like:<br />
Blocked revision 36507 from /trunk<br />
Then commit this change:<br />
svn commit -F svnmerge-commit-message.txt<br />
<br />
[[Category:Lazarus]]</div>
Paul Ishenin
https://wiki.freepascal.org/index.php?title=Lazarus_1.0_fixes_branch&diff=70438
Lazarus 1.0 fixes branch
2013-06-10T01:28:17Z
<p>Paul Ishenin: /* Fixes for 1.0.12 */</p>
<hr />
<div>This page contains the revisions to be merged from trunk to the [http://svn.freepascal.org/svn/lazarus/branches/fixes_1_0/ Lazarus 1.0 fixes] branch.<br><br />
Release notes can be found here [http://wiki.lazarus.freepascal.org/Lazarus_0.99.0_release_notes Release notes]<br />
<br />
== Fixes for 1.0.12 ==<br />
=== Merge requests ===<br />
*r41502, r4150, r41572: lcl: reset hintwindow region after color change<br />
==== Submitted by developer / committer ====<br />
<br />
===== Conflicts =====<br />
*r41407, r41408, r41409 lcl: initialize PageControl.PageIndex in handle creation instead of loaded. Fix issue when setting TabVisible after control is loaded<br />
*r41414 lcl: properly initialize keys for sorted lookup controls. Issue 23619<br />
<br />
==== Submitted by others ====<br />
<br />
=== Merged revisions for 1.0.12 ===<br />
<br />
*r41291 Qt: fixed LCLIntf.Frame3D. When FillBrush isn't filled then draw shaded box without brush (applies painter brush).issue #24445<br />
*r41475 Qt: fixed problem with TCustomPanel.Color, when panel is painted via Frame3d.Problem raised with r41291 while fixing #24445<br />
<br />
== Fixes for 1.0.10 (Merged) ==<br />
<br />
<table><br />
<tr valign="top"><td>r40581 </td><td>codetools</td><td>fpc source scores: unit fileinfo on target non wince, bug [[http://bugs.freepascal.org/view.php?id=24070 24070]]</td></tr><br />
<tr valign="top"><td>r41481 </td><td>codetools</td><td>removed old fpc 1.0 defines, biting 2.7.1 sources</td></tr><br />
<tr valign="top"><td>r40543 </td><td>DBGrids</td><td>fix crash in PrepareCellHints when DataLink is not Active (issue [[http://bugs.freepascal.org/view.php?id=0024028 0024028]]).</td></tr><br />
<tr valign="top"><td>r41240 </td><td>Debugger</td><td>utf8 content for event-log (warnings/OutputDebugString). Issue [[http://bugs.freepascal.org/view.php?id=24353 24353]]</td></tr><br />
<tr valign="top"><td>r41233,&#x200B;r41260,&#x200B;r41265,&#x200B;r41266,&#x200B;r41270,&#x200B;r41273,&#x200B;r41275,&#x200B;r41279,&#x200B;r41293</td><td>Debugger</td><td>Improved shortstring detection. strings with utf8 content in locals and some in watches</td></tr><br />
<tr valign="top"><td>r41298 </td><td>Debugger</td><td>more utf8 for strings in watches</td></tr><br />
<tr valign="top"><td>r38231 </td><td>IDE</td><td>itmEditUndo\itmEditRedo is almost always Enabled, even when it is impossible to Undo\Redo in source Editor, issue [[http://bugs.freepascal.org/view.php?id=22633 22633]]</td></tr><br />
<tr valign="top"><td>r39405 </td><td>IDE</td><td>Autocheck radiobutton when you enter a value in the HeightEdit / WidthEdit, issue [[http://bugs.freepascal.org/view.php?id=23398 23398]]</td></tr><br />
<tr valign="top"><td>r40577 </td><td>IDE</td><td>test compiler settings: show message when busy</td></tr><br />
<tr valign="top"><td>r40628 </td><td>IDE</td><td>fixed showing broken dependencies</td></tr><br />
<tr valign="top"><td>r40640 </td><td>IDE</td><td>help for fpc messages: fixed crash when no help found, search for message file in compiler directories</td></tr><br />
<tr valign="top"><td>r40730 </td><td>IDE</td><td>project resource file version: do not set modifie is the same and initialize it after read</td></tr><br />
<tr valign="top"><td>r40803 </td><td>IDE:</td><td>package editor: extend unit/include path: shorten paths that are not sub directories, bug [[http://bugs.freepascal.org/view.php?id=24272 24272]]</td></tr><br />
<tr valign="top"><td>r41130 </td><td>IDE</td><td>remove & from key map resourcestrings</td></tr><br />
<tr valign="top"><td>r41165 </td><td>IDE</td><td>fixed caption Free Pascal in highlighter</td></tr><br />
<tr valign="top"><td>r41319 </td><td>IDE</td><td>add example projects to recent menu only once</td></tr><br />
<tr valign="top"><td>r40636 </td><td>IDEIntf</td><td>register TBoolPropertyEditor for WordBool, LongBool and QWordBool, needed since fpc 2.6.0</td></tr><br />
<tr valign="top"><td>r40728 </td><td>IDEIntf:</td><td>TCollectionPropertyEditor: fixed unselecting if owner is freed</td></tr><br />
<tr valign="top"><td>r41049 </td><td>Installer,&nbsp;Win</td><td>add French translation. Patch by ChrisF. Issue [[http://bugs.freepascal.org/view.php?id=24171 24171]]</td></tr><br />
<tr valign="top"><td>r41057 </td><td>Installer,&nbsp;Win</td><td>cleaned up OldInOtherFolder1 string as per ChrisF's comment in bug [[http://bugs.freepascal.org/view.php?id=24171 24171]]</td></tr><br />
<tr valign="top"><td>r40562 </td><td>LCL</td><td>gtk, fix LazReport designer sometimes presented as a thin vertical or horizontal band that runs from center of screen under gtk2/64-bit, related to issue [[http://bugs.freepascal.org/view.php?id=21634 21634]]</td></tr><br />
<tr valign="top"><td>r40778 </td><td>LCL</td><td>navFocusableButtons doesn't work in TDBNavigator, modified patch from Éderson Cássio, issue [[http://bugs.freepascal.org/view.php?id=24191 24191]]</td></tr><br />
<tr valign="top"><td>r41501 </td><td>LCL</td><td>use UTF8Length instead of Length on calc dbgrid column field width, from Rumen Gyurov, issue [[http://bugs.freepascal.org/view.php?id=24491 24491]]</td></tr><br />
<tr valign="top"><td>r40758 </td><td>LCL</td><td>fixed conditionals for default LCLWidgetType</td></tr><br />
<tr valign="top"><td>r41373 </td><td>LCL</td><td>TTreeView: clear cache when adding node</td></tr><br />
<tr valign="top"><td>r41411 </td><td>LCL</td><td>prevent change in dbcombobox when autoedit is false. Issue [[http://bugs.freepascal.org/view.php?id=24207 24207]]</td></tr><br />
<tr valign="top"><td>r41453 </td><td>LCL</td><td>TFilterComboBox: freenotification for ShellListView, bug [[http://bugs.freepascal.org/view.php?id=24512 24512]]</td></tr><br />
<tr valign="top"><td>r41477 </td><td>LCL gtk2</td><td>fixed AskUser,QuestionDlg escape key result</td></tr><br />
<tr valign="top"><td>r40900 </td><td>LCL</td><td>MaskEdit: respect AutoSelect if control is masked. Issue [[http://bugs.freepascal.org/view.php?id=0024311 0024311]]</td></tr><br />
<tr valign="top"><td>r40513 </td><td>Qt</td><td>do not trigger scroll events while calling SetScrollInfo, fix issue 23815</td></tr><br />
<tr valign="top"><td>r40563 </td><td>Qt</td><td>fixed default text color of QTabBar. issue [[http://bugs.freepascal.org/view.php?id=23985 23985]]</td></tr><br />
<tr valign="top"><td>r40956 </td><td>Qt</td><td>fixed determination of string content (RightToLeft vs. LeftToRight). issue #24340</td></tr><br />
<tr valign="top"><td>r40621,40622, 40625 </td><td>Qt</td><td>fixes for buggy xfwm4 window manager under X11</td></tr><br />
<tr valign="top"><td>r40993 </td><td>Qt</td><td>formatting</td></tr><br />
<tr valign="top"><td>r40995 </td><td>Qt</td><td>fixed visibility of THintWindow class when virtual desktop is switched or application minimized.issue #24363</td></tr><br />
<tr valign="top"><td>r41339 </td><td>Qt</td><td>fixed bad behaviour of popup windows under metacity window manager.</td></tr><br />
<tr valign="top"><td>r41346 </td><td>Qt</td><td>fixed problems with modal and popup windows over modal windows with Mint's Marco window manager (Mate desktop)</td></tr><br />
<tr valign="top"><td>r41378 </td><td>Qt</td><td>fixed bug with AltGr key handling under windows.We are using winapi directly as workaround for bug in Qt library. issue [[http://bugs.freepascal.org/view.php?id=23808 23808]]</td></tr><br />
<tr valign="top"><td>r40764 </td><td>Qt</td><td>implemented getKeyState for caps lock and numlock under x11 and win32 targets</td></tr><br />
<tr valign="top"><td>r41347 </td><td>Qt</td><td>rework fixes for metacity like wm's. Now marco and gnome shell are mapped as metacity.</td></tr><br />
<tr valign="top"><td>r40954 </td><td>Qt</td><td>use QPolygonH to draw poly regions in FillRgn()</td></tr><br />
<tr valign="top"><td>r41144 </td><td>Qt</td><td>workaround for Qt lib bug (QStyle) where disabled button doesn't have activated disabled colors palette. issue [[http://bugs.freepascal.org/view.php?id=24413 24413]]</td></tr><br />
<tr valign="top"><td>r40723 </td><td>ShellCtrls</td><td>declare property ViewStyle of TShellListView as "default vsReport" (issue [[http://bugs.freepascal.org/view.php?id=0024226 0024226]]).</td></tr><br />
<tr valign="top"><td>r41220,r41222,r41228 </td><td>SynEdit</td><td>Trim spaces - position only: Do not mark buffer as modified, if pressing space at EOL. Follow up revision 40680</td></tr><br />
<tr valign="top"><td>r40545 </td><td>SynEdit</td><td>Fixed gutter resizing. Issue [[http://bugs.freepascal.org/view.php?id=0023990 0023990]]</td></tr><br />
<tr valign="top"><td>r40680 </td><td>SynEdit</td><td>fixed trim-space (mode "position only") would corrupt text on certain undo. Issue [[http://bugs.freepascal.org/view.php?id=24101 24101]]</td></tr><br />
<tr valign="top"><td>r41046 </td><td>SynEdit</td><td>Fixed folding in "library" code. Issue [[http://bugs.freepascal.org/view.php?id=0024370 0024370]]</td></tr><br />
<tr valign="top"><td>r37854 </td><td>SynEdit</td><td>Pas Highlighter: recognize {$IFOPT}</td></tr><br />
<tr valign="top"><td>r41047 </td><td>SynEdit</td><td>Pas Highlighter: Completed the list of Ifdef, ifopt, elseif directives</td></tr><br />
<tr valign="top"><td>r41129 </td><td>SynEdit</td><td>Fixed folding in "label" code. Issue [[http://bugs.freepascal.org/view.php?id=0024417 0024417]]</td></tr><br />
<tr valign="top"><td>r41340 </td><td>Translations</td><td>reverted Arabic translation to r37531 by request of Mazen Neifer (current Arabic translation maintainer). Reason is poor quality/machine translation, which makes hard to use translated IDE.</td></tr><br />
</table><br />
<br />
== Fixes for 1.0.8 (Merged) ==<br />
<br />
{{Note| This release contains an upgrade of FPC to version 2.6.2. Please read [[User_Changes_2.6.2]] }}<br />
<br />
<table><br />
<tr valign="top"><td>r40143 </td><td>AggPas</td><td>Fix coordinate calculation in Pixels and Colors properties of TAggFPImage</td></tr><br />
<tr valign="top"><td>r40216 </td><td>AggPas</td><td>Fix TLazIntfImage descriptor for 32-bit pixel format</td></tr><br />
<tr valign="top"><td>r40335 </td><td>codetools</td><td>fixed parsing #0, bug [[http://bugs.freepascal.org/view.php?id=23906 23906]]</td></tr><br />
<tr valign="top"><td>r40482 </td><td>Debugger</td><td>Fixed range-check on linux. Issue [[http://bugs.freepascal.org/view.php?id=23993 23993]] Patch by C Western</td></tr><br />
<tr valign="top"><td>r38476 </td><td>Designer</td><td>Use a record of signed SmallInts to prevent range check errors. Still about issue [[http://bugs.freepascal.org/view.php?id=22760 22760]]</td></tr><br />
<tr valign="top"><td>r40371 </td><td>Gtk2</td><td>Gtk2WSCustomPanel respect TCustomPanel.Visible property when creating handle. issue [[http://bugs.freepascal.org/view.php?id=23940 23940]]</td></tr><br />
<tr valign="top"><td>r40097 </td><td>IDE</td><td>prevent debugger from entering invalid state, if started again before completely stopped. For info see issue [[http://bugs.freepascal.org/view.php?id=0023800 0023800]]</td></tr><br />
<tr valign="top"><td>r40177 </td><td>IDE</td><td>fixed restoring designed form when HideIDEWindowsOnRun = true. issue [[http://bugs.freepascal.org/view.php?id=22535 22535]]</td></tr><br />
<tr valign="top"><td>r40244 </td><td>IDE</td><td>register HTML help for LCL</td></tr><br />
<tr valign="top"><td>r40394 </td><td>IDE: SourceEdit</td><td>fixed word (word from text, not identifier) completion</td></tr><br />
<tr valign="top"><td>r37930 </td><td>Installer, Win</td><td>strip lhelp.exe</td></tr><br />
<tr valign="top"><td>r40354 </td><td>Installer, Win</td><td>fixed typo</td></tr><br />
<tr valign="top"><td>r40127 </td><td>LazReport</td><td>Band.name patch from Giuliano Colla</td></tr><br />
<tr valign="top"><td>r40323 </td><td>LCL, dbgrids</td><td>checks for keydown while dataset is inactive, issue [[http://bugs.freepascal.org/view.php?id=23598 23598]]</td></tr><br />
<tr valign="top"><td>r37446 </td><td>LCL, grids+gtk2</td><td>when pressing somekeys like shift introduces '?' in cell, relaed to issue [[http://bugs.freepascal.org/view.php?id=22056 22056]] (fixes issue [[http://bugs.freepascal.org/view.php?id=23924 23924]])</td></tr><br />
<tr valign="top"><td>r36934 </td><td>LCL, Utils</td><td>Don't HTML-escape spaces in OpenURL, it breaks OpenDocument()</td></tr><br />
<tr valign="top"><td>r37995 </td><td>LCL</td><td>Prevent an error with Pg Up/Down in DbGrid on empty Dataset. Issue [[http://bugs.freepascal.org/view.php?id=22474 22474]], patch from Stefano</td></tr><br />
<tr valign="top"><td>r40364 </td><td>LCL</td><td>Revert Changes from 31132 (and partly 31577) which replaced TGraphicControl.Update by Invalidate</td></tr><br />
<tr valign="top"><td>r40541 </td><td>LCL: gtk2</td><td>fixed registering callback LM_CONTEXTMENU for TCustomControl</td></tr><br />
<tr valign="top"><td>r40180 </td><td>Qt</td><td>keep state of forms hidden from taskbar under X11. Fixes issue [[http://bugs.freepascal.org/view.php?id=23825 23825]].</td></tr><br />
<tr valign="top"><td>r40353 </td><td>Qt</td><td>fixed item caption in TListView vsIcon style. patch by DCelso. issue [[http://bugs.freepascal.org/view.php?id=23879 23879]]</td></tr><br />
<tr valign="top"><td>r40370 </td><td>Qt</td><td>show images when with TListView.vsIcon style when we have more > 1 column. issue [[http://bugs.freepascal.org/view.php?id=23923 23923]]</td></tr><br />
<tr valign="top"><td>r40219 </td><td>SynEdit</td><td>Separator-Gutter, fixed painting</td></tr><br />
<tr valign="top"><td>r40087 </td><td>TAChart</td><td>Call inherited constructor from TBGRABitmapDrawer.Create</td></tr><br />
<tr valign="top"><td>r40090 </td><td>TAChart</td><td>Call inherited constructor from TSVGDrawer.Create</td></tr><br />
<tr valign="top"><td>r40110 </td><td>TAChart</td><td>Fix chart margins calculation for axises with ZPosition > 0</td></tr><br />
<tr valign="top"><td>r40112 </td><td>TAChart</td><td>Fix SIGFPE while drawing very narrow slices in 3D pie chart</td></tr><br />
<tr valign="top"><td>r40136 </td><td>TAChart</td><td>Workaround for range check when using TFitSeries with more than 20000 points. See also issue [[http://bugs.freepascal.org/view.php?id=23816 23816]].</td></tr><br />
<tr valign="top"><td>r39659 </td><td>ValEdit</td><td>add ItemProps to ValueListEditor</td></tr><br />
<tr valign="top"><td>r39813 </td><td>ValEdit</td><td>implement method TValueListEditor.InsertRow</td></tr><br />
<tr valign="top"><td>r39818 </td><td>ValEdit</td><td>Make button and picklist cell editors work in TValueListEditor</td></tr><br />
<tr valign="top"><td>r40193 </td><td>Valedit</td><td>Fix a bug in ValueListEditor when reading / writing value by key (Values['Key'])</td></tr><br />
<tr valign="top"><td>r40194 </td><td>ValEdit</td><td>free TValueListStrings.FItemProps in TValueListStrings.Destroy (issue [[http://bugs.freepascal.org/view.php?id=0023841 0023841]])</td></tr><br />
<tr valign="top"><td>r40195 </td><td>Valedit</td><td>delete also ItemProps when deleting strings</td></tr><br />
<tr valign="top"><td>r40197 </td><td>Valedit</td><td>also release the memory of the TValueListStrings.FItemProps array itself, not only the items</td></tr><br />
<tr valign="top"><td>r40204 </td><td>ValEdit</td><td>fix not updating active cell contents when changing Strings property</td></tr><br />
<tr valign="top"><td>r40209 </td><td>ValEdit</td><td>Fix FItemProps getting out of sync with Strings (issue [[http://bugs.freepascal.org/view.php?id=0023851 0023851]])</td></tr><br />
<tr valign="top"><td>r40224 </td><td>ValEdit</td><td>Remove unnecessary calls to Changing and Changed in overridden methods</td></tr><br />
<tr valign="top"><td>r40225 </td><td>ValEdit</td><td>Fix bug in SetOptions</td></tr><br />
<tr valign="top"><td>r40227 </td><td>ValEdit</td><td>remove unused redeclared OnEditButtonClick property</td></tr><br />
<tr valign="top"><td>r40242 </td><td>ValEdit</td><td>Publish On(Edit)ButtonClick</td></tr><br />
<tr valign="top"><td>r40253 </td><td>ValEdit</td><td>don't hide/show editor inside TValueListStrings.Put</td></tr><br />
<tr valign="top"><td>r40282 </td><td>ValEdit</td><td>Fix not updating cell in TValueListStrings.Put when goAlwaysShowEditor in Options (issue [[http://bugs.freepascal.org/view.php?id=0023875 0023875]])</td></tr><br />
<tr valign="top"><td>r40294 </td><td>ValEdit</td><td>Refactoring. Store ItemProps in TFPObjectList</td></tr><br />
<tr valign="top"><td>r40295 </td><td>ValEdit</td><td>Implement CustomSort so it keeps ItemProps in sync</td></tr><br />
<tr valign="top"><td>r40296 </td><td>ValEdit</td><td>Update Modified when Strings are changed</td></tr><br />
<tr valign="top"><td>r40297 </td><td>ValEdit</td><td>do not store '=' in Strings if "key" and "value" cell is empty</td></tr><br />
<tr valign="top"><td>r40298 </td><td>ValEdit</td><td>Ignore epmty cells when validating</td></tr><br />
<tr valign="top"><td>r40299 </td><td>ValEdit</td><td>Remove unneeded overridden SetTextStr</td></tr><br />
<tr valign="top"><td>r40333 </td><td>ValEdit</td><td>Fix not updating cell in TValueListStrings.Exchange when goAlwaysShowEditor in Options</td></tr><br />
<tr valign="top"><td>r40339 </td><td>ValEdit</td><td>Rename some private fields to improve readability and avoid ugly constructs like FOwner.FOwner</td></tr><br />
<tr valign="top"><td>r40358 </td><td>ValEdit</td><td>fix strange focus swapping</td></tr><br />
<tr valign="top"><td>r40226 </td><td>ValEdit: Refactoring</td><td>remove SelectValueEditor and override SelectEditor instead</td></tr><br />
<tr valign="top"><td>r40319 </td><td>ValEdit: TValueListStrings.Assign</td><td>Assign also ItemProps if Source is TValueListStrings</td></tr><br />
<tr valign="top"><td>r40329 </td><td>ValEdit: TValueListStrings.GetItemProp</td><td>return nil when strings are updating</td></tr><br />
</table><br />
<br />
== Fixes for 1.0.6 (Merged) ==<br />
<br />
<table><br />
<tr valign="top"><td>r39516 </td><td>Carbon</td><td>reapply brush and pen after the DC restore</td></tr><br />
<tr valign="top"><td>r39559,r39560 </td><td>Codetools</td><td>fixed TEventsCodeTool.FindMethodTypeInfo when type is an alias</td></tr><br />
<tr valign="top"><td>r39449 </td><td>Debugger</td><td>Fixed eval of watches with class-typecase and dyn-array (stabs only)</td></tr><br />
<tr valign="top"><td>r39548,r39549 </td><td>Gtk2</td><td>fixed changing of font color on GtkCheckBox. issue [[http://bugs.freepascal.org/view.php?id=23373 23373]]</td></tr><br />
<tr valign="top"><td>r39652 </td><td>Gtk2</td><td>fixed keeping of SelStart() and SelLength().issue [[http://bugs.freepascal.org/view.php?id=23219 23219]]</td></tr><br />
<tr valign="top"><td>r39986 </td><td>IDE, SourceEditor</td><td>Invalidate, if top-info-hint changes</td></tr><br />
<tr valign="top"><td>r37935 </td><td>IDE</td><td>Keymap: missing entries for select+cursor-keys</td></tr><br />
<tr valign="top"><td>r39461 </td><td>IDE</td><td>extract proc: stop if identifier is invalid</td></tr><br />
<tr valign="top"><td>r39575 </td><td>IDE</td><td>find prompt: shorten texts</td></tr><br />
<tr valign="top"><td>r39626 </td><td>IDE</td><td>check Project1 in UpdateHighlighters, bug [[http://bugs.freepascal.org/view.php?id=23529 23529]]</td></tr><br />
<tr valign="top"><td>r40033, r40037 </td><td>IDE</td><td>prevent a crash in designer "Change Class" if new name does not exist / designer: change class dlg: disable ok button</td></tr><br />
<tr valign="top"><td>r39468 </td><td>Installer, Win</td><td>Display info while installing</td></tr><br />
<tr valign="top"><td>r36994 </td><td>LazReport</td><td>published property KeepAspect and Centered for Picture Object</td></tr><br />
<tr valign="top"><td>r36995 </td><td>LazReport</td><td>published WordBreak property on Memo object plus some refactoring</td></tr><br />
<tr valign="top"><td>r38353 </td><td>LazReport</td><td>avoid duplicated export filters</td></tr><br />
<tr valign="top"><td>r38952 </td><td>LazReport</td><td>two additional export filters - TfrImageExportFilter, TfrHtmlDivExportFilter, from Michel Gawrycki</td></tr><br />
<tr valign="top"><td>r39364 </td><td>Lazreport</td><td>clip image when it's bigger than picture object and not stretched</td></tr><br />
<tr valign="top"><td>r39365 </td><td>Lazreport</td><td>fix off by one error in calculation of PictureView size. This avoids unnecessary stretch whew pictureview size = image size</td></tr><br />
<tr valign="top"><td>r39366 </td><td>Lazreport</td><td>apply scale when drawing not stretched image. This fixes the size of image in printed report</td></tr><br />
<tr valign="top"><td>r39368 </td><td>Lazreport</td><td>cleanup. remove unused code in TfrPictureView.Draw</td></tr><br />
<tr valign="top"><td>r39477 </td><td>LazReport</td><td>fix moving/resizing objects when using keyboard under QT (and carbon), Patch from Julio Jiménez Borreguero, issue [[http://bugs.freepascal.org/view.php?id=23435 23435]]</td></tr><br />
<tr valign="top"><td>r39519 </td><td>LazReport</td><td>fix PreviousClipRgn on image drawing, was not valid and it worked fine by coincidence</td></tr><br />
<tr valign="top"><td>r39974 </td><td>LazReport</td><td>fix export filters registering multiple filter extensions are listed only once, issue [[http://bugs.freepascal.org/view.php?id=23759 23759]]</td></tr><br />
<tr valign="top"><td>r40010 </td><td>LazReport</td><td>renamed argument to really check for matching classref</td></tr><br />
<tr valign="top"><td>r39484 </td><td>LazUtils</td><td>xmlreader: handle non existing property list, bug [[http://bugs.freepascal.org/view.php?id=23450 23450]]</td></tr><br />
<tr valign="top"><td>r39441 </td><td>LCL</td><td>Don't publish FixedRows in ValueListEditor, allow only 0 or 1. Issue [[http://bugs.freepascal.org/view.php?id=23430 23430]]</td></tr><br />
<tr valign="top"><td>r39442 </td><td>LCL</td><td>make ValueListEditor work also when ColumnTitles are not shown.</td></tr><br />
<tr valign="top"><td>r39523 </td><td>LCL</td><td>add WM_ACTIVATE to messages.pp</td></tr><br />
<tr valign="top"><td>r39654 </td><td>LCL</td><td>scroll before updatedata in DBLookup. Issue [[http://bugs.freepascal.org/view.php?id=23530 23530]]</td></tr><br />
<tr valign="top"><td>r39887,r39973 </td><td>LCL</td><td>Use PopupMenu getter instead of cached FPopupMenu, so GetPopupMenu can be overrided. issue [[http://bugs.freepascal.org/view.php?id=23336 23336]]</td></tr><br />
<tr valign="top"><td>r39442 </td><td>LCL, ValEdit</td><td>make ValueListEditor work also when ColumnTitles are not shown</td></tr><br />
<tr valign="top"><td>r39469 </td><td>LCL, ValEdit</td><td>override TValueListStrings.SetTextStr: Don't show editor while changing values. Edited cell would not be changed.</td></tr><br />
<tr valign="top"><td>r39491 </td><td>LCL, ValEdit</td><td>Start implementing validating: don't accept duplicate Key names.</td></tr><br />
<tr valign="top"><td>r39495 </td><td>LCL, ValEdit</td><td>Fix crash in TValueListEditor.ShowColumnTitles when TitleCaptions.Count = 1</td></tr><br />
<tr valign="top"><td>r39496 </td><td>LCL, ValEdit</td><td>Only allow FixedCols := 0 or 1</td></tr><br />
<tr valign="top"><td>r39552 </td><td>LCL, ValEdit</td><td>Do not use Columns.Add, it interferes with setting FixedCols := 1 (by adding an extra column in front).</td></tr><br />
<tr valign="top"><td>r39553 </td><td>LCL, ValEdit</td><td>Implement TValueListEditor.AdjustColumnWidths and override OnDoResize.</td></tr><br />
<tr valign="top"><td>r38935 </td><td>Qt</td><td>fixed range check errors under 64bit</td></tr><br />
<tr valign="top"><td>r39625 </td><td>Qt</td><td>fixed events when month and year are changed in TCalendar. issue [[http://bugs.freepascal.org/view.php?id=23528 23528]]</td></tr><br />
<tr valign="top"><td>r39838 </td><td>Qt</td><td>fixed getClientBounds for TQtPage and TQtGroupBox. It should use QWidget_contentsRect() of underlaying widget or parent. issue [[http://bugs.freepascal.org/view.php?id=23630 23630]]</td></tr><br />
<tr valign="top"><td>r39839 </td><td>Qt</td><td>reverted TQtPage.getClientBounds to use TQtWidget.getClientBounds, it wasn't good solution since it produces a mess in eg. in build lazarus form.</td></tr><br />
<tr valign="top"><td>r39840 </td><td>Qt</td><td>fixed topmargin of groupbox when caption text is empty. issue [[http://bugs.freepascal.org/view.php?id=23642 23642]]</td></tr><br />
<tr valign="top"><td>r39841 </td><td>Qt</td><td>make LCL happy when changing caption of groupbox from empty to some string or viceversa.part of [[http://bugs.freepascal.org/view.php?id=23642 23642]]</td></tr><br />
<tr valign="top"><td>r39878 </td><td>Qt</td><td>fixed SetCapture() and GetCapture() for TQtCustomControl on qtwin32 targets</td></tr><br />
<tr valign="top"><td>r39892 </td><td>Qt</td><td>fixed preffered size of autosized groupboxes. issue [[http://bugs.freepascal.org/view.php?id=23351 23351]]</td></tr><br />
<tr valign="top"><td>r40025 </td><td>Qt</td><td>trial to fix Qt bug when dialog is shown with QtTool as parent. issue [[http://bugs.freepascal.org/view.php?id=23778 23778]]</td></tr><br />
<tr valign="top"><td>r39618 </td><td>readmes</td><td>updates</td></tr><br />
<tr valign="top"><td>r39391,r39394 </td><td>SynEdit</td><td>Fixed , make TAction regard ReadOnly state</td></tr><br />
<tr valign="top"><td>r39409 </td><td>SynEdit</td><td>LineOverviewGutter, do not cause overflow error on 64 bit</td></tr><br />
<tr valign="top"><td>r39518 </td><td>SynEdit</td><td>fix highlighting "i6", introduced in r32695</td></tr><br />
<tr valign="top"><td>r39540 </td><td>SynEdit</td><td>Fix problems with resizing GutterParts. (Noticeable in right gutter)</td></tr><br />
<tr valign="top"><td>r39606 </td><td>SynEdit</td><td>Fixed Matching bracket, for very long lines. Issue [[http://bugs.freepascal.org/view.php?id=0023517 0023517]]</td></tr><br />
<tr valign="top"><td>r39686 </td><td>SynEdit</td><td>FoldHighlighter (Html, XML): fix invalid fold node on last line. Issue [[http://bugs.freepascal.org/view.php?id=0023543 0023543]]</td></tr><br />
<tr valign="top"><td>r39747 </td><td>SynEdit</td><td>LineNumber-Gutter: update digit-count when setting to visible (Digits where cut off)</td></tr><br />
<tr valign="top"><td>r36955 </td><td>TAChart</td><td>Add TChart.IsZoomed property</td></tr><br />
<tr valign="top"><td>r39599 </td><td>TAChart</td><td>Hide legend if exception happened while attempting to fill it</td></tr><br />
<tr valign="top"><td>r39703 </td><td>TAChart</td><td>Copy HorizSize and VertSize in TSeriesPointer.Assign</td></tr><br />
<tr valign="top"><td>r39705 </td><td>TAChart</td><td>Fix SIGFPE while drawing mark labels for series with NaNs</td></tr><br />
<tr valign="top"><td>r39821 </td><td>TAChart</td><td>Fix exception on destroying clones series</td></tr><br />
<tr valign="top"><td>r39854 </td><td>TAChart</td><td>Set TChartTool.Chart = nil after calling OnAfterXXX event, not before</td></tr><br />
<tr valign="top"><td>r39861 </td><td>TAChart</td><td>Fix SIGFPE in TChartSeries.Add when the last data item is NaN</td></tr><br />
<tr valign="top"><td>r39930 </td><td>TAChart</td><td>Force recalculation of the full extent for linked charts</td></tr><br />
<tr valign="top"><td>r39931 </td><td>TAChart</td><td>Fix TBoxAndWhiskerSeries.Assign to correctly assign class properties</td></tr><br />
<tr valign="top"><td>r40042 </td><td>TAChart</td><td>Make TChartDataItem advanced record instead of object to reduce memory footprint</td></tr><br />
<tr valign="top"><td>r40043 </td><td>TAChart</td><td>Fix drawing of line series with number of points above 1000000</td></tr><br />
<tr valign="top"><td>r40048 </td><td>TAChart</td><td>Call inherited constructor from TCanvasDrawer.Create</td></tr><br />
</table><br />
<br />
== Fixes for 1.0.4 (Merged) ==<br />
<br />
<table><br />
<tr valign="top"><td>r39177 </td><td>Customdrawn</td><td>make timer related functions 64-bit safe (fixes similar to r39164), patch from bug [[http://bugs.freepascal.org/view.php?id=23052 23052]] by lks</td></tr><br />
<tr valign="top"><td>r39280 </td><td>Debugger</td><td>Inspect-Dialog, prevent crash, due to nested updates</td></tr><br />
<tr valign="top"><td>r39285 </td><td>Debugger</td><td>Do not treat "&" as accel-char when displaying exceptions. Issue [[http://bugs.freepascal.org/view.php?id=0023321 0023321]]</td></tr><br />
<tr valign="top"><td>r39290 </td><td>Debugger</td><td>Fix updating Inspect dialog, if triggered via source-editor (pop-up menu)</td></tr><br />
<tr valign="top"><td>r39333 </td><td>Debugger</td><td>Fix range check in disassembler (64 bit debuggee). Issue [[http://bugs.freepascal.org/view.php?id=0023355 0023355]]</td></tr><br />
<tr valign="top"><td>r39042 </td><td>Debugger</td><td>Disable "run to cursor" when debugger is stopped. This command is limited to the current frame (function). It can not be used to start a project. (also disable dcJumpTo, dcStepOut)</td></tr><br />
<tr valign="top"><td>r39131 </td><td>Debugger</td><td>fixed an endless loop in watch eval (eval typecast pointer to record)</td></tr><br />
<tr valign="top"><td>r39030 </td><td>Gtk2</td><td>fixed TGtk2WSCustomListView.GetDisplayRect, also fixed cell renderer which sent wrong item id to owner drawn list view.issue [[http://bugs.freepascal.org/view.php?id=23094 23094]]</td></tr><br />
<tr valign="top"><td>r39032 </td><td>Gtk2</td><td>do not render listbox item by default if we are customdrawn. issue [[http://bugs.freepascal.org/view.php?id=23093 23093]]</td></tr><br />
<tr valign="top"><td>r39033 </td><td>Gtk2</td><td>fixed crash with TListView introduced with r39032.</td></tr><br />
<tr valign="top"><td>r39034 </td><td>Gtk2</td><td>LineTo and MoveToEx must take hdc offset into account.issue [[http://bugs.freepascal.org/view.php?id=23057 23057]]</td></tr><br />
<tr valign="top"><td>r39035 </td><td>Gtk2</td><td>fixed assertion from gtk2 library. issue [[http://bugs.freepascal.org/view.php?id=23099 23099]]</td></tr><br />
<tr valign="top"><td>r39036 </td><td>Gtk2</td><td>do not apply devctx offset into penPos, regression of r39034.issue [[http://bugs.freepascal.org/view.php?id=23057 23057]]</td></tr><br />
<tr valign="top"><td>r39037 </td><td>Gtk2</td><td>completely fixed LineTo() and MoveToEx() regressions from r39034</td></tr><br />
<tr valign="top"><td>r39043 </td><td>Gtk2</td><td>fixed clientRect of GtkTreeView, new routine GetWidgetClientRect() in gtk2proc to simplify gtk2winapi, fixed offset for custom drawn listview.</td></tr><br />
<tr valign="top"><td>r39147 </td><td>Gtk2</td><td>use better approach for RecreateWnd in TGtk2WSCustomListView, fix rendering of icon view. issue [[http://bugs.freepascal.org/view.php?id=23171 23171]]</td></tr><br />
<tr valign="top"><td>r39148 </td><td>Gtk2</td><td>added TGtk2DeviceContext class as deprecated. part of issue [[http://bugs.freepascal.org/view.php?id=23168 23168]]</td></tr><br />
<tr valign="top"><td>r39162 </td><td>Gtk2</td><td>fixed cursor position behaviour on GtkEntry focus/unfocus. issues [[http://bugs.freepascal.org/view.php?id=21897 21897]], [[http://bugs.freepascal.org/view.php?id=23182 23182]].</td></tr><br />
<tr valign="top"><td>r39217 </td><td>Gtk2</td><td>remember selection when edit looses focus.Also preselect test when AutoSelect is true.Patch by Fabrizio Fellini modified by me for autoselect rule. fixes issues [[http://bugs.freepascal.org/view.php?id=23219 23219]], [[http://bugs.freepascal.org/view.php?id=23246 23246]] (regression).</td></tr><br />
<tr valign="top"><td>r39220, r39221 </td><td>Gtk2</td><td>check if scrollbar handle is allocated when setting params.</td></tr><br />
<tr valign="top"><td>r39229 </td><td>Gtk2</td><td>trial to fix freezing of TFloatSpinEdit when we don't use clocale unit since gtk2 takes info from $LANG and our DecimalSeparator could be different. issue [[http://bugs.freepascal.org/view.php?id=23190 23190]]</td></tr><br />
<tr valign="top"><td>r39308 </td><td>gtk2</td><td>register TGtk2WSScrollBar to TCustomScrollBar instead of TScrollBar. Fixes [[http://bugs.freepascal.org/view.php?id=23200 23200]]</td></tr><br />
<tr valign="top"><td>r39326 </td><td>Gtk2</td><td>fixed offset in Gtk2 polygon drawer. issue [[http://bugs.freepascal.org/view.php?id=23359 23359]]</td></tr><br />
<tr valign="top"><td>r39327 </td><td>Gtk2</td><td>correct fix for issue [[http://bugs.freepascal.org/view.php?id=23359 23359]]</td></tr><br />
<tr valign="top"><td>r39371 </td><td>Gtk2</td><td>fixed font color changing on TCheckBox when caption is empty. issue [[http://bugs.freepascal.org/view.php?id=23373 23373]]</td></tr><br />
<tr valign="top"><td>r39374 </td><td>IDE </td><td>Hint: Fix malformated hints, if text has ampersand. or &lt;,... Issue [[http://bugs.freepascal.org/view.php?id=0023320 0023320]] Patch by Bart Broersma</td></tr><br />
<tr valign="top"><td>r39295 </td><td>IDE</td><td> rename identifier: stop on invalid identifier</td></tr><br />
<tr valign="top"><td>r38411 </td><td>IDE</td><td>removed compiler option for switch -vm</td></tr><br />
<tr valign="top"><td>r39057 </td><td>IDE</td><td>invalidate file state cache on rename/copy interactive. Issue [[http://bugs.freepascal.org/view.php?id=23073 23073]]</td></tr><br />
<tr valign="top"><td>r39291 </td><td>IDE</td><td>initial setup dlg: invalidate file state cache when user comes back from another application</td></tr><br />
<tr valign="top"><td>r39101 </td><td>IDE</td><td> SourceEditor: Use selection as default search only if caret is in/at selection (persistent selection)</td></tr><br />
<tr valign="top"><td>r39276 </td><td>IDE</td><td>SourceEditor: Fix asking "Save file", if only 1 tab is open in 2ndary window. Issue [[http://bugs.freepascal.org/view.php?id=0023312 0023312]]</td></tr><br />
<tr valign="top"><td>r39282 </td><td>IDE</td><td>SourceEditor: Fixed crash when closing last tab (via ctrl F4) while code-completion was active. Issue [[http://bugs.freepascal.org/view.php?id=0023317 0023317]]</td></tr><br />
<tr valign="top"><td>r39324 </td><td>Installer, Win</td><td>Add Spanish translation. Issue [[http://bugs.freepascal.org/view.php?id=0023087 0023087]]</td></tr><br />
<tr valign="top"><td>r39331 </td><td>Installer, Win</td><td>Added publisher, and explicit uninstall icon. Issue [[http://bugs.freepascal.org/view.php?id=0021750 0021750]]</td></tr><br />
<tr valign="top"><td>r39049 </td><td>Jedi Code Format</td><td>Locate the parse tree window better. Issue [[http://bugs.freepascal.org/view.php?id=22777 22777]]</td></tr><br />
<tr valign="top"><td>r37314 </td><td>LazReport</td><td> added TlrCodeReport component and sample, it makes reports at runtime with an easy to use api and it doesn't need the report designer, with small changes, from Julio Jimenez Borreguero</td></tr><br />
<tr valign="top"><td>r37320 </td><td>LazReport</td><td> removed testcodereport session file</td></tr><br />
<tr valign="top"><td>r37321 </td><td>LazReport</td><td>lrcodereport: version is 1.0, updated icon, cleanup, first page is now programmers responsability, sample update to export to pdf, from Julio Jimenez Borreguero</td></tr><br />
<tr valign="top"><td>r37381 </td><td>LazReport</td><td>lrcodereport: fix problem with slow generation of pages on second batch, sample now ask for target pdf filename, from Julio Jimenez Borreguero</td></tr><br />
<tr valign="top"><td>r37393 </td><td>LazReport</td><td>lrcodereport: addded accessory SetFont, frm Julio Jimenez Borreguero</td></tr><br />
<tr valign="top"><td>r37404 </td><td>LazReport</td><td> pdfexport, improves exported page sizes, from Julio Jimenez Borreguero</td></tr><br />
<tr valign="top"><td>r37414 </td><td>LazReport</td><td> fix lrcodereport compile on windows, issue [[http://bugs.freepascal.org/view.php?id=22058 22058]]</td></tr><br />
<tr valign="top"><td>r37420 </td><td>LazReport</td><td> enable text rotation in pdfexport, from Julio Jimenez Borreguero</td></tr><br />
<tr valign="top"><td>r39010 </td><td>LazReport</td><td> fix barcode sample crash, remove console window (on windows), issue [[http://bugs.freepascal.org/view.php?id=23086 23086]]</td></tr><br />
<tr valign="top"><td>r39231 </td><td>LazReport</td><td> fix right alignment text on export to PDF, from Tony Whyman, issue [[http://bugs.freepascal.org/view.php?id=23138 23138]]</td></tr><br />
<tr valign="top"><td>r39232 </td><td>LazReport</td><td> Right Justified text incorrectly aligned on printer, from Tony Whyman, issue [[http://bugs.freepascal.org/view.php?id=23135 23135]] </td></tr><br />
<tr valign="top"><td>r39233 </td><td>LazReport</td><td> corrects vertical alignment after tony's patches and improve precision on exporting to pdf, from Julio Jiménez Borreguero</td></tr><br />
<tr valign="top"><td>r39238 </td><td>LazReport</td><td> fix PDF export filter not centering images properly, issue [[http://bugs.freepascal.org/view.php?id=23236 23236]]</td></tr><br />
<tr valign="top"><td>r39239 </td><td>LazReport</td><td> Report Designer crashes with Access Violation on Insert DB Field (TFrame related issue), from Tony Whyman, issue [[http://bugs.freepascal.org/view.php?id=23205 23205]]</td></tr><br />
<tr valign="top"><td>r39240 </td><td>LazReport</td><td> stop designer from processing ContextMenu default action, fix unable to close form designer, issue [[http://bugs.freepascal.org/view.php?id=23248 23248]]</td></tr><br />
<tr valign="top"><td>r39242 </td><td>LazReport</td><td> pdfexport addon now requires powerpdf v0.9.9</td></tr><br />
<tr valign="top"><td>r39243 </td><td>LazReport</td><td> fix report designer do no update properly when compiled for Qt, From Julio Jiménez Borreguero, issue [[http://bugs.freepascal.org/view.php?id=23211 23211]]</td></tr><br />
<tr valign="top"><td>r39250 </td><td>LazReport</td><td> fix exported image size in case is not proportional and stretched</td></tr><br />
<tr valign="top"><td>r39251 </td><td>LazReport</td><td> fix text clipping on exported to PDF report, from Julio Jiménez Borreguero</td></tr><br />
<tr valign="top"><td>r39278 </td><td>LazReport</td><td> fix loading previously saved binary reports on preview window</td></tr><br />
<tr valign="top"><td>r39284 </td><td>LazReport</td><td> fix incorrect scaling of unstretched images on PDF export, PDF export addon now requires PowerPDF 0.9.10, issue [[http://bugs.freepascal.org/view.php?id=23326 23326]]</td></tr><br />
<tr valign="top"><td>r39031 </td><td>LCL</td><td>TCustomListView, use drBounds for item measuring when calculating editor bounds. issue [[http://bugs.freepascal.org/view.php?id=23094 23094]]</td></tr><br />
<tr valign="top"><td>r39118 </td><td>LCL</td><td> dbgrid, check column exists before getting button style, from Tristan Linnell, issue [[http://bugs.freepascal.org/view.php?id=22873 22873]]</td></tr><br />
<tr valign="top"><td>r39207 </td><td>LCL</td><td>add missing checks for FControl in TControlBorderSpacing</td></tr><br />
<tr valign="top"><td>r39188-r39202 </td><td>Make DEB</td><td>Fixes and languages for debian installer</td></tr><br />
<tr valign="top"><td>r38989 </td><td>Packager</td><td>Use a new component's class name as icon resource name. Issue [[http://bugs.freepascal.org/view.php?id=23075 23075]]</td></tr><br />
<tr valign="top"><td>r39078 </td><td>Qt</td><td>mark MouseMove and MouseWheel events as input events.</td></tr><br />
<tr valign="top"><td>r39087,39090 </td><td>Qt</td><td>added checks for handle after message delivery to lcl in case of input events (mouse) - avoids crashes.</td></tr><br />
<tr valign="top"><td>r39106 </td><td>Qt</td><td>Fixed themed drawing of header sections with common style. part of issue [[http://bugs.freepascal.org/view.php?id=23143 23143]]</td></tr><br />
<tr valign="top"><td>r39107 </td><td>Qt</td><td>Fixed weird drawing of header sections by oxygen theme.issue [[http://bugs.freepascal.org/view.php?id=23143 23143]]</td></tr><br />
<tr valign="top"><td>r39141 </td><td>Qt</td><td>fixed crash with hint window inside slotMouseMove. issue [[http://bugs.freepascal.org/view.php?id=23161 23161]]</td></tr><br />
<tr valign="top"><td>r39218 </td><td>Qt</td><td>fixed TListItem clearing icon. issue [[http://bugs.freepascal.org/view.php?id=23225 23225]].</td></tr><br />
<tr valign="top"><td>r39325 </td><td>Qt</td><td>fixed tabwidget icon size. issue [[http://bugs.freepascal.org/view.php?id=23362 23362]]</td></tr><br />
<tr valign="top"><td>r39038 </td><td>SynEdit</td><td>Missing invalidation in Log/Phys Converter.</td></tr><br />
<tr valign="top"><td>r39039 </td><td>SynEdit</td><td>Make sure selection Markup is not hidden by Syncro (or other plugins)</td></tr><br />
<tr valign="top"><td>r39098 </td><td>SynEdit</td><td>fix Gutter streaming to LFM</td></tr><br />
<tr valign="top"><td>r39361 </td><td>SynEdit</td><td>Fixed StatusChanged Handler repeatedly called with old values. Issue [[http://bugs.freepascal.org/view.php?id=0023377 0023377]]</td></tr><br />
<tr valign="top"><td>r39367, r39387</td><td>SynEdit</td><td>LineOverviewGutter, fix updating after lines inserted/removed. Issue [[http://bugs.freepascal.org/view.php?id=0022848 0022848]]</td></tr><br />
<tr valign="top"><td>r39372 </td><td>SynEdit</td><td>Fixed case-insensitive search/replace regex. Issue [[http://bugs.freepascal.org/view.php?id=0023078 0023078]]</td></tr><br />
<tr valign="top"><td>r39390 </td><td>SynEdit</td><td>Fixed do not copy/paste with middle mouse, if SynEdit is readonly. Issue [[http://bugs.freepascal.org/view.php?id=0023392 0023392]]</td></tr><br />
<tr valign="top"><td>r38985 </td><td>TAChart</td><td>Do not draw TColorMapSeries over left and top borders</td></tr><br />
<tr valign="top"><td>r38992 </td><td>TAChart</td><td>Add TChartAxis.MarginsForMarks property ''lets user turn off an 1.0 feature which was sometimes undesirable''</td></tr><br />
<tr valign="top"><td>r39026 </td><td>TAChart</td><td>Add TChartAxisTitle.PositionOnMarks property ''lets user turn off an 1.0 feature which was sometimes undesirable''</td></tr><br />
<tr valign="top"><td>r39067 </td><td>TAChart</td><td>Do not draw 2-d series over the chart frame</td></tr><br />
<tr valign="top"><td>r39068 </td><td>TAChart</td><td>Revert r38985, since a more general fix is implemented in r39067</td></tr><br />
<tr valign="top"><td>r39070 </td><td>TAChart</td><td>Move GetBounds procedure from TBasicChartSeries to TCustomChartSeries</td></tr><br />
<tr valign="top"><td>r39071 </td><td>TAChart</td><td>Ignore infinite series extent when calculating graph bounds</td></tr><br />
<tr valign="top"><td>r39072 </td><td>TAChart</td><td>Fix SIGFPE while drawing area series with infinite Y values</td></tr><br />
<tr valign="top"><td>r39076 </td><td>TAChart</td><td>Copy properties in TChartLegend.Assign</td></tr><br />
<tr valign="top"><td>r39129 </td><td>TAChart</td><td>Measure ZeroLevel in axis units when considering it for label direction</td></tr><br />
<tr valign="top"><td>r39130 </td><td>TAChart</td><td>Fix mark positions for bar series with BarOffsetPercent <> 0</td></tr><br />
<tr valign="top"><td>r39341 </td><td>TAChart</td><td>Fix exception when using TChartNavScrollBar under Qt</td></tr><br />
<tr valign="top"><td>r39351 </td><td>TAChart</td><td>Call Handled after extent restoration in TZoomDragTool</td></tr><br />
<tr valign="top"><td>r39376 </td><td>TAChart</td><td>Start TDateTimeIntervalChartSource intervals from the beginning of month/year</td></tr><br />
<tr valign="top"><td>r39377 </td><td>TAChart</td><td>Update chart upon changes to interval source properties</td></tr><br />
<tr valign="top"><td>r39164 </td><td>win32</td><td>add 64bit safe version of callback and timer functions. Issue [[http://bugs.freepascal.org/view.php?id=23052 23052]]</td></tr><br />
<tr valign="top"><td>r39165 </td><td>win32</td><td>replace TList by TFpList (FTimerData)</td></tr><br />
<tr valign="top"><td>r39166 </td><td>win32</td><td>add stdcall to recently added timer functions</td></tr><br />
<br />
</table><br />
<br />
It is possible that a revision is not listed here, even if it was merged. Please inspect the SVN log for more information.<br />
<br />
== Fixes for 1.0.2 (Merged) ==<br />
<br />
<table><br />
<tr valign="top"><td>r38551,&#x200B;r38552,&#x200B;r38562,&#x200B;r38563</td><td>Carbon</td><td>various winapi compatibility functions fixes</td></tr><br />
<tr valign="top"><td>r38671 </td><td>Carbon</td><td>fix accidental error in index</td></tr><br />
<tr valign="top"><td>r38743 </td><td>Carbon</td><td>reimplement linear gradient draw using shading to support OS X < 10.5</td></tr><br />
<tr valign="top"><td>r38529,&#x200B;r38530,&#x200B;r38535,&#x200B;r38543,&#x200B;r38548</td><td>carbon</td><td>fix carbon clipping, correctly return region types on HRGN related operations, fix generic IntersectClipRect routine</td></tr><br />
<tr valign="top"><td>r38640,&#x200B;r38641,&#x200B;r38642,&#x200B;r38649</td><td>Carbon, Cocoa</td><td>various ExtTextOut fixes for Carbon and Cocoa</td></tr><br />
<tr valign="top"><td>r38922 </td><td>Debugger</td><td>Fix setting stackframe for hint eval, after searching for highest source-frame.</td></tr><br />
<tr valign="top"><td>r38509 </td><td>Debugger</td><td>Ensure Queue is not blocked by LineInfo Request. (If a LineInfoRequest was queued the DebuggerCurrentLine could not search the stack, as commands were not immediately run)</td></tr><br />
<tr valign="top"><td>r38531 </td><td>Debugger</td><td>Workaround to fix exe-line-indicators (blue dots) at debug start</td></tr><br />
<tr valign="top"><td>r38373 </td><td>Gtk2,Qt</td><td>make ETO_OPAQUE work from TCanvas.TextOut(). issue [[http://bugs.freepascal.org/view.php?id=22719 22719]]</td></tr><br />
<tr valign="top"><td>r38519 </td><td>Gtk2</td><td>fixed crash with TListView when viewstyle is vsIcon or vsSmallIcon. issue [[http://bugs.freepascal.org/view.php?id=22778 22778]]</td></tr><br />
<tr valign="top"><td>r38636,&#x200B;r38637 </td><td>Gtk2</td><td>fixed text clipping and text background drawing</td></tr><br />
<tr valign="top"><td>r38697,&#x200B;38698 </td><td>Gtk2</td><td>set TToggleBox.ParentColor default false so it's color is consistent with TButton when eg.parent color is clRed and TToggleBox.Color=clDefault.</td></tr><br />
<tr valign="top"><td>r38727,&#x200B;r38728,&#x200B;r38742,&#x200B;r38744,&#x200B;r38745,&#x200B;r38748</td><td>gtk2</td><td>fix clipping and DC transformations</td></tr><br />
<tr valign="top"><td>r38747 </td><td>gtk2</td><td>fix FrameRect - it must use a passed brush instead of selected one</td></tr><br />
<tr valign="top"><td>r38758 </td><td>gtk2</td><td>allocate GdkColor when we need a BkColor</td></tr><br />
<tr valign="top"><td>r38762 </td><td>Gtk2</td><td>when style is drawing button then use style from button. issue [[http://bugs.freepascal.org/view.php?id=22901 22901]]</td></tr><br />
<tr valign="top"><td>r38799 </td><td>gtk2</td><td>implement SPI_GETWHEELSCROLLLINES. Fix a regression in VirtualTreeView wheel scroll</td></tr><br />
<tr valign="top"><td>r38860 </td><td>Gtk2</td><td>do not change color of TScrollBar since it's painted by theme engine.issue [[http://bugs.freepascal.org/view.php?id=22996 22996]].</td></tr><br />
<tr valign="top"><td>r38868,&#x200B;38875 </td><td>Gtk2</td><td>fixed crash with GtkIconView when multiselect is enabled and dbl clicked. issue [[http://bugs.freepascal.org/view.php?id=22991 22991]]</td></tr><br />
<tr valign="top"><td>r38892 </td><td>Gtk2</td><td>fixed TIconArrangement of GtkListView.</td></tr><br />
<tr valign="top"><td>r38895 </td><td>Gtk2</td><td>send LVIS_FOCUSED for listview. issue [[http://bugs.freepascal.org/view.php?id=23014 23014]]</td></tr><br />
<tr valign="top"><td>r38896 </td><td>Gtk2</td><td>fixed crash in GtkIconView by unref GtkColumn which isn't GtkObject.</td></tr><br />
<tr valign="top"><td>r38897 </td><td>Gtk2</td><td>implemented TGtk2CustomListView.ItemDisplayRect and editor for vsIconView, vsSmallIcon.issue [[http://bugs.freepascal.org/view.php?id=23015 23015]]</td></tr><br />
<tr valign="top"><td>r38899 </td><td>Gtk2</td><td>fixed few memleaks with PGList in TGtk2ListView.</td></tr><br />
<tr valign="top"><td>r38426 </td><td>IDE</td><td>CodeBrowser check for virtual units. Issue [[http://bugs.freepascal.org/view.php?id=0022740 0022740]]</td></tr><br />
<tr valign="top"><td>r38437 </td><td>IDE</td><td>project target: apply default extension even if the file has already an extension, issue [[http://bugs.freepascal.org/view.php?id=22750 22750]]</td></tr><br />
<tr valign="top"><td>r37398 </td><td>IDE</td><td>corrected version info language list, added Ukrainian language, bug [[http://bugs.freepascal.org/view.php?id=22103 22103]]</td></tr><br />
<tr valign="top"><td>r38507 </td><td>IDE</td><td>EditorOpts: default for top-info-hint</td></tr><br />
<tr valign="top"><td>r38444 </td><td>IDE</td><td>fixed crash when releasing non existing component palette select button</td></tr><br />
<tr valign="top"><td>r38722 </td><td>IDE</td><td>added Lithuanian to version info language list, bug [[http://bugs.freepascal.org/view.php?id=22898 22898]]</td></tr><br />
<tr valign="top"><td>r36887 </td><td>LazReport</td><td>fix preview scrolling broken in r36420, issue [[http://bugs.freepascal.org/view.php?id=21633 21633]]</td></tr><br />
<tr valign="top"><td>r36909 </td><td>LazReport</td><td>now fix preview scrolling in windows, broken in r36887</td></tr><br />
<tr valign="top"><td>r38486 </td><td>LCL</td><td>avglvltree: setcompare set when count=0</td></tr><br />
<tr valign="top"><td>r38720 </td><td>LCL</td><td>DefaultTranslator: fix handling of non-ASCII path to .po file, bug [[http://bugs.freepascal.org/view.php?id=22907 22907]], patch by Vladimir Zhirov</td></tr><br />
<tr valign="top"><td>r38769-r38772 </td><td>LCL, gtk2, carbon</td><td>full implementation of GradientFill</td></tr><br />
<tr valign="top"><td>r38396 </td><td>LCL</td><td>ColorBox - keep FSelected in sync all the time. fixes issue [[http://bugs.freepascal.org/view.php?id=22729 22729]]</td></tr><br />
<tr valign="top"><td>r38802 </td><td>LCL</td><td>revert 33020, 33082, 33086, part of 33089 and 33389. These changes made the hint behavior Delphi incompatible thus leading to a regression in third party control like VirtualTreeView that handles hints in CMHintShow. Retrieve parent hint recursively if hintcontrol.hint is empty' (delphi compatible)</td></tr><br />
<tr valign="top"><td>r38927 </td><td>LCL</td><td>check for csDestroying in Parent before calling SetLastFocusedControl in TCustomForm.SetFocusedControl. Not doing this check can expose fpc bug [[http://bugs.freepascal.org/view.php?id=23031 23031]] leading to a crash.</td></tr><br />
<tr valign="top"><td>r38572 </td><td>Qt</td><td>propagate QEvent:ShortcutOverride to parent, so stop key event if shortcut is executed. issue [[http://bugs.freepascal.org/view.php?id=22827 22827]]</td></tr><br />
<tr valign="top"><td>r37075 </td><td>Qt</td><td>fixed behaviour of messageDlg (PromptUser()) to return mrCancel always when Escape key is pressed or close btn clicked.issue [[http://bugs.freepascal.org/view.php?id=21885 21885]]</td></tr><br />
<tr valign="top"><td>r37217,&#x200B;37218,&#x200B;37225,&#x200B;37239,&#x200B;37241,&#x200B;37293,&#x200B;37304,&#x200B;37316</td><td>Qt</td><td>fixed keys handling (arrow keys & enter).</td></tr><br />
<tr valign="top"><td>r37857 </td><td>Qt</td><td>hide statusbar panels with width 0. issue [[http://bugs.freepascal.org/view.php?id=22362 22362]]</td></tr><br />
<tr valign="top"><td>r37862 </td><td>Qt</td><td>hide statusbar panel only when width is 0, do not count any margin.issue [[http://bugs.freepascal.org/view.php?id=22362 22362]]</td></tr><br />
<tr valign="top"><td>r38148 </td><td>Qt</td><td>allow showin modal form with borderStyle=bsNone. issue [[http://bugs.freepascal.org/view.php?id=22568 22568]]</td></tr><br />
<tr valign="top"><td>r38149 </td><td>Qt</td><td>allow edit of combobox with style csSimple. issue [[http://bugs.freepascal.org/view.php?id=22528 22528]]</td></tr><br />
<tr valign="top"><td>r38320 </td><td>Qt</td><td>fixed clearing of icon in tab.part of issue [[http://bugs.freepascal.org/view.php?id=22618 22618]]</td></tr><br />
<tr valign="top"><td>r38326 </td><td>Qt</td><td>fixed modal behaviour of borderless forms.issue [[http://bugs.freepascal.org/view.php?id=22568 22568]]</td></tr><br />
<tr valign="top"><td>r38332 </td><td>Qt</td><td>do not set popup parent for borderless forms (for popup forms) if TCustomForm.Parent (embedded form) is assigned.</td></tr><br />
<tr valign="top"><td>r38365,&#x200B;38366,&#x200B;38367,&#x200B;38368,&#x200B;38369</td><td>Qt</td><td>fix for qt richtext parser, refactored viewport event mouse move. issue [[http://bugs.freepascal.org/view.php?id=22715 22715]]</td></tr><br />
<tr valign="top"><td>r38518 </td><td>Qt</td><td>TQtWinApi.ExtTextOut() implemented Dx param. issue [[http://bugs.freepascal.org/view.php?id=22795 22795]] (zeljko will merge, need some testing)</td></tr><br />
<tr valign="top"><td>r38520 </td><td>Qt</td><td>do not propagate keyrelease event as action trigger. issue [[http://bugs.freepascal.org/view.php?id=22737 22737]]</td></tr><br />
<tr valign="top"><td>r38533 </td><td>Qt</td><td>fixed header offset and getClientRect for TListView when ViewStyle=vsReport.</td></tr><br />
<tr valign="top"><td>r38576,&#x200B;38577 </td><td>Qt</td><td>fixed TQtWidgetSet.FrameRect(), now it uses passed brush to draw frame border.</td></tr><br />
<tr valign="top"><td>r38610 </td><td>Qt</td><td>fixed non ascii utf8 chars in TQtWidgetSet.ExtTextOut() when we use dx param. issue [[http://bugs.freepascal.org/view.php?id=22795 22795]] (depends on merging of r38518).</td></tr><br />
<tr valign="top"><td>r38628,&#x200B;38629,&#x200B;38630,&#x200B;38634 </td><td>Qt</td><td>fixed clipping bugs inside TQtWidgetSet.ExtTextOut()</td></tr><br />
<tr valign="top"><td>r38643 </td><td>Qt</td><td>TQtWidgetSet.ExtTextOut() workaround for Qt-4.8 bug ,now it looks better but some scenarios with ETO_OPAQUE aren't 100% correct yet.</td></tr><br />
<tr valign="top"><td>r38644 </td><td>Qt</td><td>fixed menu flickering. issue [[http://bugs.freepascal.org/view.php?id=22872 22872]]</td></tr><br />
<tr valign="top"><td>r38674 </td><td>Qt</td><td>fixed crash when invalid or null handle is passed into SetCapture.</td></tr><br />
<tr valign="top"><td>r38679 </td><td>Qt</td><td>update bitmap if TMenuItem has associated ImageList and ImageIndex. issue [[http://bugs.freepascal.org/view.php?id=22896 22896]]</td></tr><br />
<tr valign="top"><td>r38709 </td><td>Qt</td><td>improved triggering of OnClick() in QEventShowToParent. issue [[http://bugs.freepascal.org/view.php?id=22872 22872]]</td></tr><br />
<tr valign="top"><td>r38746 </td><td>Qt</td><td>fix theme painting for some qt themes - they expect ARect with X, Y = 0</td></tr><br />
<tr valign="top"><td>r38826 </td><td>Qt</td><td>TQtWidgetSet.SetScrollInfo - fixed wrong result, it must return real slider position, not value which might be out of sync with position. This fixes problems with TScrollingWinControl (TControlScrollbar).</td></tr><br />
<tr valign="top"><td>r38893 </td><td>Qt</td><td>fixed TIconArrangement for TListView vsIcon,vsSmallIcon.</td></tr><br />
<tr valign="top"><td>r38894 </td><td>Qt</td><td>send LVIS_FOCUSED for listview. issue [[http://bugs.freepascal.org/view.php?id=23014 23014]]</td></tr><br />
<tr valign="top"><td>r38972 </td><td>Qt</td><td>added proper casts for some messages to avoid range checks.</td></tr><br />
<tr valign="top"><td>r38428 </td><td>SynEdit</td><td>MultiHighlighter: fix adding text/sections at EOL. issue [[http://bugs.freepascal.org/view.php?id=0022745 0022745]]</td></tr><br />
<tr valign="top"><td>r38670 </td><td>SynEdit</td><td>Fixed past eol paint error ** Must be ported by hand **</td></tr><br />
<tr valign="top"><td>r38672 </td><td>SynEdit</td><td>fixed delete-next-word, if caret past eol. Issue [[http://bugs.freepascal.org/view.php?id=0022890 0022890]]</td></tr><br />
<tr valign="top"><td>r36674 </td><td>TAChart</td><td>Add AddArray, AddNull, AddX and AddY functions to TChartSeries</td></tr><br />
<tr valign="top"><td>r38430 </td><td>TAChart</td><td>Fix out-of-bounds access when drawing empty polygons and polylines</td></tr><br />
<tr valign="top"><td>r38464 </td><td>TAChart</td><td>Fix error message in TFPCanvasDrawer.RadialPie</td></tr><br />
<tr valign="top"><td>r38503 </td><td>TAChart</td><td>Copy BaseLength in TChartArrow.Assign</td></tr><br />
<tr valign="top"><td>r38547 </td><td>TAChart</td><td>Support Y NaNs in polar series ''(this will cause compilation error -- please remove 'and CloseCircle' part from the last conditional in the TPolarSeries.Draw procedure)''</td></tr><br />
<tr valign="top"><td>r38557 </td><td>TAChart</td><td>Support brush style, pen style and pen width in fpvectorial drawer</td></tr><br />
<tr valign="top"><td>r38571 </td><td>TAChart</td><td>Draw chart correctly after decrease of an axis margin</td></tr><br />
<tr valign="top"><td>r38584 </td><td>TAChart</td><td>Copy Attachment and YIndex in TGenericChartMarks.Assign ''(this code is in TATypes unit in v1.0)''</td></tr><br />
<tr valign="top"><td>r38589 </td><td>TAChart</td><td>Do not draw lines which should be invisible in OpenGL drawer</td></tr><br />
<tr valign="top"><td>r38607 </td><td>TAChart</td><td>Workaround for issue [[http://bugs.freepascal.org/view.php?id=22850 22850]] '''see patch in the mailing list'''</td></tr><br />
<tr valign="top"><td>r38617 </td><td>TAChart</td><td>Fix GetNearestPoint returning true with no points found inside radius, issue [[http://bugs.freepascal.org/view.php?id=22854 22854]]</td></tr><br />
<tr valign="top"><td>r38651 </td><td>TAChart</td><td>Fix zero division when calling ImageToGraph before the chart is drawn</td></tr><br />
<tr valign="top"><td>r38673 </td><td>TAChart</td><td>Ignore NaNs while calculating TCustomChartSource.ValuesTotal</td></tr><br />
<tr valign="top"><td>r38675 </td><td>TAChart</td><td>Support Marks.Attachment = maCenter in pie series</td></tr><br />
<tr valign="top"><td>r38694 </td><td>TAChart</td><td>Fix update of TListChartSource.ValuesTotal cache when adding or removing NaNs</td></tr><br />
<tr valign="top"><td>r38710 </td><td>TAChart</td><td>Fix crash when using TChartExtentLink with LinkedChart.Chart = nil</td></tr><br />
<tr valign="top"><td>r38712 </td><td>TAChart</td><td>Fix crash while replacing linked chart in TChartExtentLink</td></tr><br />
<tr valign="top"><td>r38713 </td><td>TAChart</td><td>Use NumberOr function instead of checking for NaN explicitly</td></tr><br />
<tr valign="top"><td>r38719 </td><td>TAChart</td><td>Extract TDrawFuncHelper.ForEachPoint helper procedure ''This also fixes a hang while using data point tool on extremely zoomed-in series''</td></tr><br />
<tr valign="top"><td>r38729 </td><td>TAChart</td><td>Extract TDrawFuncHelper.XRange helper function. + Fix GetNearestPoint for rotated function series.</td></tr><br />
<tr valign="top"><td>r38733 </td><td>TAChart</td><td>Fix TChartSeries.SetColor to notify all listeners and require ListSource. Add TListChartSource.SetColor</td></tr><br />
<tr valign="top"><td>r38735 </td><td>TAChart</td><td>Fix memory leak in TDbChartSource.BeforeDraw</td></tr><br />
<tr valign="top"><td>r38737 </td><td>TAChart</td><td>Fix drawing of pie series with data from the db source</td></tr><br />
<tr valign="top"><td>r38754 </td><td>TAChart</td><td>Fix hang when changing TLineSeries.ShowPoints while drawing chart</td></tr><br />
<tr valign="top"><td>r38757 </td><td>TAChart</td><td>Display crosshair tool on mouse down</td></tr><br />
<tr valign="top"><td>r38779 </td><td>TAChart</td><td>Do not notify from TListChartSource.SetXValue and SetYValue if the value did not actually change.</td></tr><br />
<tr valign="top"><td>r38780 </td><td>TAChart</td><td>Add TBasicPointSeries.MovePoint overload for graph coordinates ''not a fix, but required for r38788''</td></tr><br />
<tr valign="top"><td>r38788 </td><td>TAChart</td><td>Support axis transformations in TCustomChartSeries.MovePoint</td></tr><br />
<tr valign="top"><td>r38792 </td><td>TAChart</td><td>Fix crash on deleting subcomponent with active property editor</td></tr><br />
<tr valign="top"><td>r38811 </td><td>TAChart</td><td>Add IsEquivalent utility function ''required for r38812''</td></tr><br />
<tr valign="top"><td>r38812 </td><td>TAChart</td><td>Fix SIGFPE on TListChartSource.SetXValue(NaN) and SetYValue(NaN)</td></tr><br />
<tr valign="top"><td>r38813 </td><td>TAChart</td><td>Fix TCustomChartSource.FindBounds for the case of extremely large bounds</td></tr><br />
<tr valign="top"><td>r38825 </td><td>TAChart</td><td>Fix drawing of function series with +Infinity in domain exclusions</td></tr><br />
<tr valign="top"><td>r38841 </td><td>TAChart</td><td>Fix inverted Y axis on TChartNavPanel's minimap. Issue [[http://bugs.freepascal.org/view.php?id=22978 22978]]</td></tr><br />
<tr valign="top"><td>r38853 </td><td>TAChart</td><td>Optimize GetNearestPoint for the case of sorted source and at least linear on X point distance</td></tr><br />
<tr valign="top"><td>r38861 </td><td>TAChart</td><td>Make sure the previous tool is deactivated before activating a new one</td></tr><br />
<tr valign="top"><td>r38862 </td><td>TAChart</td><td>Fix crash when the tool is activated while zoom animation is in progress</td></tr><br />
<tr valign="top"><td>r38863 </td><td>TAChart</td><td>Fix drawing of out-of-extent function series with +Infinity in domain exclusions.</td></tr><br />
<tr valign="top"><td>r38873 </td><td>TAChart</td><td>Clear brush when drawing line series.</td></tr><br />
<tr valign="top"><td>r38981 </td><td>TAChart</td><td>Fix a call to the "strict protected" function from non-descendant class in TChartMinorAxis.GetAlignment</td></tr><br />
<tr valign="top"><td>r38982 </td><td>TAChart</td><td>Fix out-of-bounds access while drawing TColorMapSeries with empty ColorSource</td></tr><br />
<tr valign="top"><td>r38473 </td><td>tests</td><td>fixed compilation</td></tr><br />
<br />
</table><br />
<br />
It is possible that a revision is not listed here, even if it was merged. Please inspect the SVN log for more information.<br />
<br />
== Fixes for 1.0 (Merged) ==<br />
<br />
*r36506 LazReport, fix barcode dialog localization (Jesus)<br />
*r36508 Updated Japanese translation<br />
*r36509 Window Column, store pointer to resourcestring<br />
*r36510 LazReport, fix barcode addin when TfrBarCodeObject is not yet instantiated (in this case barcode editor defaults to memo view.<br />
*r36511 DividerBevel: implemented Transparent.<br />
*r36514 IDE: moved macros save/saveall to source editor<br />
*r36515 IDE: update macro descriptions after translating resource strings<br />
*r36516 IDE: trim TLazPackageGraph.GetFallbackOutputDir<br />
*r36517 IDE: check if package needs rebuild: switch to fall back directory: update compiler params<br />
*r36518 IDE: install/uninstall package dialog: fixed icons, added info about current state<br />
*r36523,r36530 IDE: Export as HTML<br />
*r36526 CodeTemplate: Improve final caret pos, if tmpl does not specify<br />
*r36527 CodeTemplate: allow tab to trigger / selection to ignore. issue [[http://bugs.freepascal.org/view.php?id=0017631 0017631]]<br />
*r36528 SynEdit: Template(Syncro) fix invalidation<br />
*r36529 IDE: Printing: break long lines. Issue [[http://bugs.freepascal.org/view.php?id=0013479 0013479]]; <br />
*r36547 IDE: Printing: break long lines. Fix Utf8. Update for rev 36529<br />
*r36531 LazReport: fixed buttonpanel localization in BarCode editor dialog<br />
*r36533 IDE: clean up of unused resourcestrings<br />
*r36534, r36536, r36553, r36583, r36646 regenerated translations; updated Russian translation<br />
*r36535 IDE: more clean up of unused resourcestrings<br />
*r36537 Documents LCLIntf.GetDeviceCaps<br />
*r36538 IDE: always store lazarus directory<br />
*r36539 LazReport: uppercase variable before comparing with hardcoded functions. Properly fix to 21624<br />
*r36543 IDE: setup dialog: using same file resolving as IDE<br />
*r36546 IDE: consider empty lazarusdirectory as pcp, empty fpcsrcdir as lazdir, empty testdir as lazdir<br />
*r36548 IDE: fixed note about wrong laz dir<br />
*r36549 IDE: fixed crash on find identifier references<br />
*r36551 IDE: translate descriptions of all macros<br />
*r36552 IDE: fixed editor tab position combobox items localization on Editor/Misc options page<br />
*r36556,r36557 IDE: warn if upgrading configs<br />
*r36561, 36562, 36563, 36566: Improve Options/Keymap<br />
*r36565 LCL: Prevent TShape.stRectangle disappearing with certain Height/Width and Pen.Width values.<br />
*r36567,r36568,r36569 IDE: show downgrade warning<br />
*r36570 lazbuild: select IDE build mode, fixed compiling with different mode<br />
*r36572 LCL: set csCaptureMouse on TToolButton, but don't send click if mouse is out of ttoolbutton on mouseup.issues [[http://bugs.freepascal.org/view.php?id=19688 19688]],[[http://bugs.freepascal.org/view.php?id=21560 21560]]<br />
*r36574 IDE: fixed saving environment on every change<br />
*r36577 LCL, TreeView: fix GetNextVisible, GetPrevVisible. Issue [[http://bugs.freepascal.org/view.php?id=21264 21264]]<br />
*r36575 IDE/Setup dialog: force taskbar button to be shown<br />
*r36584 IDE: import package list: opendialog<br />
*r36587 IDE: intial setup: fpc src dir: lazdir/fpc/fpcver/source<br />
*r36588 IDE: intial setup: fixed if no candidates found<br />
*r36589,r36590 IDE: compiler file name: search first with macros<br />
*r36591 IDE: verbose search for candidates<br />
*r36592 IDE: search fpc src relative to fpc.exe<br />
*r36594 IDE: check compiler: only run common names<br />
*r36595,r36599 IDE: use under windows as default for make the make.exe in the compiler directory<br />
*r36596 IDE,codetools: fixed ppccross,crossppc to ppcross<br />
*r36601 IDE: unify the 2 filters in KeyMapping window. Prevent a potential crash.<br />
*r36603 debian: updated patches to latest source in lazarus svn<br />
*r36608 Gtk2: do not set widget name, it's completelly unnecessary and produce unexpected behaviour if some keywords are in widget name.issue [[http://bugs.freepascal.org/view.php?id=21661 21661]].<br />
*r36613 SynEdit: Fix an issue with Scrollbars not being updated<br />
*r36617 lazbuild: build ide: replace exe on windows<br />
*r36644 IDE: improved 'Export package list' dialog localization<br />
*r36645 IDE: improved 'Package Graph Explorer' dialog localization<br />
*r36647,r36653,r36654,r36655,r36656,36668,36673 IDE: view / IDE internal / what needs building<br />
*r36648,r36650,r36651 IDE: read state file created by Makefile: fix path delimiters, checking compiled state: ignore -v,-i,-B flags, do not skip all -F<br />
*r36652 IDE: codetools options: shorter caption<br />
*r36658 regenerated translations; updated Russian translation <br />
*r36659 LCL: Refactoring. Make TCalculatorDialog.Execute more understandable by removing a "with" block.<br />
*r36661 LCL: Prevent "Test Dialog" feature of Calculator and Calendar dialogs locking the IDE, issue [[http://bugs.freepascal.org/view.php?id=21644 21644]]<br />
*r36616 SynEdit: do not include IME for WinCe<br />
*r36662 LCL: implementation of TCustomImageList.GetIcon()<br />
*r36663 In GUI strings, unify all 3 dots to have a space before them ( ...)<br />
*r36664 IDE: Use CreateAbsolutePath when switching between relative/absolute paths in AddFile dialogs (CreateAbsoluteSearchPath gives wrong output)<br />
*r36665 LCL: publish TUpDown.OnChangingEx<br />
*r36666 IDE etc.: unify 3 dots in GUI string to have a space ( ...).<br />
*r36667 translation: german: updates from Swen Heinig<br />
*r36669 updatemakefiles: write which lpk have conditionals<br />
*r36670,r36671 IDE,lazbuild: create makefile: use CPPROG instead of COPY to get the current date for Makefile.compiled under Windows<br />
*r36649,r36657,r36602,r36672,r36675,r36677,r36679,r36683,r36701,r36708,r36709 Makefiles: updated, reduced dependencies, fixed double compiles<br />
*r36676 LCL: Implement TListItem.EditCaption, issue [[http://bugs.freepascal.org/view.php?id=20295 20295]].<br />
*r36680,r36699 lazbuild: fixed crash, replaced some MessageDlg with IDEMessageDialog<br />
*r36681 IDE,lazbuild: use parsed compiler filename, make filename<br />
*r36682 IDE: debugfilename, debugsearchpath: use same function as other env vars to resolve macros, trim and find<br />
*r36686,r36688 IDE/lazbuild backup, delete the same lazarus exe on all platforms<br />
*r36694 regenerated translations; updated Russian translation<br />
*r36695 LazDataDesktop: regenerated translations; updated Russian translation<br />
*r36696 IDE: add resource strings for various windows manifest keys<br />
*r36697 fix ImageList.AddMasked() in case of source image has no mask description<br />
*r36702 IDE: TProject.TitleIsDefault: check for project+number, fix for renaming the title of a new project<br />
*r36711 Qt: enable wordwrap on TQtStaticText. issue [[http://bugs.freepascal.org/view.php?id=21697 21697]].<br />
*r36712 LCL: fixed function result<br />
*r36713,r36715 lcl: fixed TToolButton.MouseUp X,Y in boundsrect check<br />
*r36716 LCL, combination of modal form + wsMaximized style produces tiny windows on GTK2, issue [[http://bugs.freepascal.org/view.php?id=21634 21634]]<br />
*r36717 LCL: reverted changes to menus.pp from r36666 (by Paul's request)<br />
*r36718 LCL: regenerated translations<br />
*r36719, *r36826 LCL: fix range check error<br />
*r36720 LazReport: added option to ignore undefined symbols, from Luiz Americo, issue [[http://bugs.freepascal.org/view.php?id=21683 21683]]<br />
*r36723,36724 IDE,lazbuild: fixed repeated build project clean: save project state file before compiling too<br />
*r36727 lazbuild: fixed expanding --lazarusdir<br />
*r36728 make useride: pass --lazarusdir=.<br />
*r36729 Improve TStringHashList, prevents a PO file update crash. Issue [[http://bugs.freepascal.org/view.php?id=21685 21685]]<br />
*r36730 IDE: project wizard: fixed fixed size, bug 21714<br />
*r36731 lazreport: fix possible access violation by checking dataset for nil<br />
*r36732 win32: fix range check error<br />
*r36733 lazbuild: auto create ide/revision.inc if missing<br />
*r36734 Gtk2: fixed mouse capturing on native scrolling win controls (TListBox,TListView etc).issue [[http://bugs.freepascal.org/view.php?id=21713 21713]]<br />
*r36735 LCL: TToolButton: commented debugln().<br />
*r36740 lazbuild: fixed uninitialized function result, fixed checking if init failed, quick check if lazarusdir is valid.<br />
*r36741 lazutils: Patch with font collection support from Circular<br />
*r36744 examples: Adds a OpenURL/OpenDocument test<br />
*r36745 LCL: Adds the sysenvapis include files to the lpk and adds an extra safety in OpenURL for users which forget to encode spaces in filenames<br />
*r36746 IDE: fixed fixed size dialogs<br />
*r36747 IDE: sort selection: layout<br />
*r36748 IDE: added debugging for sort selection<br />
*r36749 gtk2: clean up<br />
*r36750 IDE: less debugging<br />
*r36751 IDE: jump to next/prev error: fixed direction<br />
*r36752 LCL: TTreeView: clean up<br />
*r36753 IDE: next/prev error: clear multi selection<br />
*r36754 lcl: move interface initialization of TCustomEdit from CreateWnd to InitializeWnd. Consistent with other controls and allows interfaces to check is handle is being created<br />
*r36755 IDE: Add acceleration keys and fix tab order in Project Wizard and ImageListEditor, issue [[http://bugs.freepascal.org/view.php?id=21718 21718]]<br />
*r36756 lcl: remove TCustomListBox.Loaded. ItemIndex is initialized in InitializeWnd<br />
*r36757 lcl: call inherited after setting FLines in TCustomMemo.InitializeWnd. Fix potential crash since widgetset code expect FLines be initialized <br />
*r36758 lcl: check for csDestroyingHandle in TControl.HandleObjectShouldBeVisible. Fix issue [[http://bugs.freepascal.org/view.php?id=19882 19882]]<br />
*r36759 lcl: revert 31890 since issue [[http://bugs.freepascal.org/view.php?id=19882 19882]] is properly fixed now<br />
*r36760 gtk2: less hints<br />
*r36761 gtk2: less hints<br />
*r36762 Carbon: fixed result of TWSCarbonCustomListView GetTopItem,GetViewOrigin and GetBoundingRect. issue [[http://bugs.freepascal.org/view.php?id=21733 21733]]<br />
*r36763 Carbon: added themed TComboBox drawing.Patch by David Jenkins. issue [[http://bugs.freepascal.org/view.php?id=21747 21747]]<br />
*r36764 Carbon: added themed TComboBox drawing.Patch by David Jenkins. issue [[http://bugs.freepascal.org/view.php?id=21747 21747]]<br />
*r36765 Docs: added David Jenkins to contributors list<br />
*r36766 Carbon: make carbon widget visibility in sync with lcl. Patch by David Jenkins. issue [[http://bugs.freepascal.org/view.php?id=21731 21731]]<br />
*r36767 lcl: remove Destroying and DestroyWnd calls from TCustomListBox.Destroy<br />
*r36768 lcl: cleanup TCustomListBox.Create<br />
*r36769 codetools: fixed skipping include files in skipped ifdef<br />
*r36770 gtk2: less hints<br />
*r36771 gtk2: less hints<br />
*r36772 ide: fix selection painting of debugger eventlog colors list<br />
*r36773 carbon: improved TCarbonWidgetSet.RawImage_XXXX routines.Patch by David Jenkins. issue [[http://bugs.freepascal.org/view.php?id=21743 21743]].<br />
*r36774 carbon: proper initialization of alpha channel.Patch by David Jenkins. issue [[http://bugs.freepascal.org/view.php?id=21753 21753]]<br />
*r36775 LCL: implement ClientToParent, ParentToClient based on patch of David Jenkins (issue [[http://bugs.freepascal.org/view.php?id=0021763 0021763]])<br />
*r36776 LCL: extend TThemeServices.IsDisabled, IsHot, IsPushed for teCombobox<br />
*r36777 IDE: Fix tab order and set shortcuts in Application Options frame.<br />
*r36778 LazControls: fix potential crash in TListFilterEdit and TTreeFilterEdit<br />
*r36779 GTK2: add TGtk2WidgetSet.SetDesigning to prevent Abstract method call in IDE. Issue [[http://bugs.freepascal.org/view.php?id=21773 21773]]<br />
*r36780 IDE: fix tab order in Project Save Options frame.<br />
*r36781 IDE: fix tab order in frames: Build Modes editor, Miscellaneous Options and Version Info<br />
*r36782 IDE: fix tab order in option frames: Code Generation, Compilation, Linking, Messages, Parsing.<br />
*r36783 GTK2: clean up<br />
*r36784 GTK2: clean up<br />
*r36786 Carbon: removed extra code for teComboBox, since teComboBox is supported by themes as of r36776.<br />
*r36787 gtk2: clean up<br />
*r36788 gtk2: fixed Gtk2WidgetSet.ClipboardGetData mem leak on stream write error<br />
*r36789 gtk2: removed OldCreateStatusBarPanel<br />
*r36790 gtk2: clean up<br />
*r36791 gtk2: clean up<br />
*r36794 IDE: CloseQueryIDEWindows: skip sub forms<br />
*r36795 Fix crash in dbg-console, if dbg not active. issue [[http://bugs.freepascal.org/view.php?id=21712 21712]]<br />
*r36796 SourceEdit: use softcenter for Replace prompt. Issue [[http://bugs.freepascal.org/view.php?id=0021709 0021709]]<br />
*r36797 regenerated translations; updated Russian translation<br />
*r36800 IDE: when checking if a FPC unit has changed: ignore units that have no source in the FPC sources. Needed to ignore user units reachable through fpc.cfg.<br />
*r36801 IDE: fix error message can't find unit if the ppu is in one of the loaded packages<br />
*r36803 DOCS: correct the documentation about CanFocus<br />
*r36806 LCL: clear FActiveDefaultControl on that control destruction<br />
*r36810 LCL: fix copy paste error<br />
*r36811 LCL: don't update Default, Cancel during their applying in UpdateDefaultCancel<br />
*r36812 LCL: add and ability to use own TListItems, TListItem descendants in TListView for delphi compatibility<br />
*r36821 gtk2 intf: fixed compilation FPC_FULLVERSION<20600<br />
*r36822 gtk2 intf: clean up<br />
*r36823 gtk2 intf: clean up<br />
*r36824 gtk2 intf: clean up<br />
*r36825 LCL: initialize font height with the height from DefFontData<br />
*r36852 IDE: when checking if global unit has changed, skip units in packages<br />
*r36857,36859 LCL: TControl.UpdateBaseBounds: set cfBaseBoundsValid<br />
*r36861 LCL: TCustomSplitter.SetAnchors: adapt anchors before applying<br />
*r36870 LCL: SetAlign: restore the basebounds set before changes<br />
*r36877 LCL: clean up<br />
*r36882 LCL: TControl.SetAnchors: during disabled autosize: update basebounds when changing Anchors, bug 21730<br />
*r36884 LCL: fixed sending CM_EXIT,CM_ENTER when flastfocusedcontrol was removed<br />
*r36885 LCL: constraint Width,Height to >=0<br />
*r36888 Converter: fixed 'Missing units' dialog localization, part of bug 21784<br />
*r36889,r36890 codetools: class completion: fixed gathr proc definitions<br />
*r36891 IDE: show compiling resource lines when error on compiling resources<br />
*r36892 IDE: improved message when can not find unit and unit was found in a package<br />
*r36893,r36894 IDE: messages: show debug: lines and calling resource compiler<br />
*r36895,r36896 gtk2 intf: checking for liboverlay, using value-changed instead of change-value<br />
*r36897 LCL: made TImage.DestRect public<br />
*r36899 Fix encoding errors in Japanese translation<br />
*r36900,r36901 startlazarus: fixed asking for custom or default<br />
*r36902 LCL: fixed ShowModal() when Hide() is called on modal form to be Delphi compatibile.issue [[http://bugs.freepascal.org/view.php?id=15390 15390]]<br />
*r36903 IDE: fixed read/write designinfo, bug 21804<br />
*r36904 IDE: do not save a new project where only session was modified, bug 21803<br />
*r36905 gtk2 intf: fixed TGtk2WSCustomTabControl.GetDefaultClientRect to check if gtknotebook has a page<br />
*r36906,36907 codetools: AddLocalVar: do not add hidden used unit<br />
*r36908 Qt: added TQtWidget.testAttribute() function.<br />
*r36910 DBG: Tests for environment<br />
*r36913 TAChart: Set Brush.Color before Brush.Style to work around issue [[http://bugs.freepascal.org/view.php?id=21806 21806]]<br />
*r36914: TAChart: Fix compilation of OpenGL drawer<br />
*r36924 gtk2 intf: TGtk2WSCustomTabControl.GetDefaultClientRect for TTabControl<br />
*r36925 Qt: fixed resize events of TQtTabWidget and accurate information about clientRect changes. issue [[http://bugs.freepascal.org/view.php?id=21805 21805]]<br />
*r36929 Gtk2: fixed text background drawing in TGtk2WidgetSet.ExtTextOut() when BkMode = OPAQUE.issue [[http://bugs.freepascal.org/view.php?id=19384 19384]]<br />
*r36941 Translations: Brazilian Portuguese translation update by Marcelo B Paula, bug 21818<br />
*r36938,36939 LazReport, lift up to preview window improving layout and functionality, from Julio Jimenez B.<br />
*r36942 LazReport, avoid hiding text at some zoom values due small differences in text height calc (DONT MERGE YET, NEEDS MORE TESTING)<br />
*r36943 IDE: msg quickfix for cant find unit: add position<br />
*r36956 carbon: added FHasPaint variable to TCarbonWidget to allow owner draw.issue [[http://bugs.freepascal.org/view.php?id=21744 21744]]<br />
*r36957 carbon: added ScrollRect() routine to TCarbonWidget. issue [[http://bugs.freepascal.org/view.php?id=21741 21741]]<br />
*r36958 carbon: set FTabIndex instead ATabIndex variable in TCarbonTabsControl.SetPageIndex. patch by David Jenkins.issue [[http://bugs.freepascal.org/view.php?id=21728 21728]]<br />
*r36959 carbon: optimized caret drawing to not update whole widget.patch by David Jenkins. issue [[http://bugs.freepascal.org/view.php?id=21768 21768]]<br />
*r36960 carbon: fixed order of check width > height in TCarbonTrackbar.patch by David Jenkins. issue [[http://bugs.freepascal.org/view.php?id=21740 21740]]<br />
*r36961 carbon: implemented autosizing for listview / databrowser columns.patch by David Jenkins. issue [[http://bugs.freepascal.org/view.php?id=21745 21745]]<br />
*r36962 carbon: fixed possible bad loop in TCarbonSpinEdit.CreateWidget.Patch by David Jenkins.issue [[http://bugs.freepascal.org/view.php?id=21732 21732]]<br />
*r36965 IDEIntf: fixed typo<br />
*r36967 Gtk2: fixed retreiving font name from TGtk2WidgetSet.GetObject() when font is default. issue [[http://bugs.freepascal.org/view.php?id=21828 21828]]<br />
*r36968 codetools: JumpToPublishedMethodBody: raise error<br />
*r36969 codetools: fixed FindMethodNodeInImplementation for program<br />
*r36971 tests: codetools: added test for duplicate sections, parsing library<br />
*r36972 codetools: fixed reparsing initialization, finalization, begin<br />
*r36973 codetools: fixed treating initialization, finalization as statement<br />
*r36974,r36975,r36976,36977,36978 codetools: fixed find declaration in library starting in initialization, bug 21832<br />
*r36981,r36982 codetools: identifier completion: fixed continue searching<br />
*r36979 Updated Japanese translation by Haruyuki Fujimaki<br />
*r36980 Fix japanese encoding<br />
*r36983,r36984 codetools: identifier completion: some keywords for library, program<br />
*r36985 codetools: identifier completion: keyword initialization for library, issue [[http://bugs.freepascal.org/view.php?id=21839 21839]]<br />
*r36986 Updated Japanese translation by Haruyuki Fujimaki<br />
*r36990 codetools: identifier list: skip identifier at cursor<br />
*r36991,r36992 IDE: identifier completion: add do after with, issue [[http://bugs.freepascal.org/view.php?id=16850 16850]]<br />
*r36996,r36997,r36999,r37013,r37014,r37015 runtests: fixed compilation, added some tests<br />
*r37012,r37011,r37009,r37008,r37007,r37006,r37005,r37004,r37003,r37002,r37000 carbon interface: clean up<br />
*r37020 IDE: recent/history lists: replaced case sensitive comparison with three types<br />
*r37021 docking: update modified flags<br />
*r37022 codetools: fixed uninitialized result<br />
*r37025 IDE: use unit dialog: check for syntax errors<br />
*r37026,r37027 DBG: Prepare for different line endings. / Accept different line endings (#10, #13, #10#13, #13#10) issue [[http://bugs.freepascal.org/view.php?id=0021834 0021834]].<br />
*r37029 Gtk2: fixed drawing of text with solid brush. issue [[http://bugs.freepascal.org/view.php?id=21863 21863]]<br />
*r37031 Gtk2: do not draw text background if colormap isn't assigned. Second part of issue [[http://bugs.freepascal.org/view.php?id=21863 21863]].<br />
*r37032 gtk2: clean up old mouse capture<br />
*r37033 gtk2: fixed releasecapture<br />
*r37034 gtk2: verbosity for ubuntu liboverlay mouse capture bug<br />
*r37038 sqldb: Enable mssqlconnection for fpc >= 2.6.1 (patch from Reinier Olilagers, bug 21867) - added because creates conflicts with later sqldb merges<br />
*r37040: TAChart: Workaround for TDbChartSource referring to the dataset with Filtered := true<br />
*r37043 LCL, fix TPostScriptPrinterCanvas.ClipRect is empty-rect until explicitly set by user, patch from Joachim Paepke, issue [[http://bugs.freepascal.org/view.php?id=21027 21027]]<br />
*r37051 Translations: Ukrainian translation update by Igor Paliychuk<br />
*r37052 regenerated translations; updated Russian translation<br />
*r37053 LCL: fixed compilation for fpc 2.7.1<br />
*r37054,37055,37057 set TDBLookup.FListLink.DataSource dynamically to FListSource or a local datasource. Issue [[http://bugs.freepascal.org/view.php?id=15410 15410]]<br />
*r37067 LCL: fixed visibility of implemented interfaces<br />
*r37069 simple deb: using make bigide, updated list of tools<br />
*r37070 openglcontrol: fixed mem leak, issue [[http://bugs.freepascal.org/view.php?id=21597 21597]]<br />
*r37071 codetools: identifier completion: unit name of self<br />
*r37076 gtk2: clean up<br />
*r37077 IDE: clean up<br />
*r37092 LCL: fixed compilation for fpc 2.7.1<br />
*r37093 DBG: Testcase: fixed reading env-options<br />
*r37095 SynEdit: fix crash in overview gutter creation. Issue [[http://bugs.freepascal.org/view.php?id=0021887 0021887]]<br />
*r37096 SynEdit: Do not offer OverviewGutter in Gutter-parts designer<br />
*r37101 lazreport: fixed compilation with fpc 2.7.1, new TBookMark<br />
*r37102 lazreport: clean up<br />
*r37112,r37113 SynEdit: highlight class "helper". Fix wrong highlight of "sealed" Issue [[http://bugs.freepascal.org/view.php?id=0021812 0021812]]<br />
*r37115 openglcontrol: fixed mem leak, issue [[http://bugs.freepascal.org/view.php?id=21597 21597]]<br />
*r37126 LCL: Publish some TCheckGroup properties.<br />
*r37129 gtk2: clean up<br />
*r37154,37247,37248 lcl-db: prevent lookup initialization when dataset is destroyed<br />
*r37155 LCL, use rectclip to set clipping rectangle instead of current path because it sometimes get drawn on next stroke (related to r37043)<br />
*r37157 Qt: fixed key events from QCalendar, now tabbing works fine.<br />
*r37160 LCL: published missing properties TCalendar.Hint and TCalendar.TabOrder.<br />
*r37167 LCL: Fix range check error in StringGrid when sorting and RowCount=FixedRows, issue [[http://bugs.freepascal.org/view.php?id=21947 21947]]<br />
*r37073 codetools: resolve expr: thisunitname.implementationenidentifier<br />
*r37078 codetools: find declaration: selfunit.implementationidentifier<br />
*r37079,r37080,r37081,r37082,r37083,r37087,r37089,r37098 codetools: getsmarthint: class variables, enum, array of, inheritance, property params and type, use unit<br />
*r37085 IDE: show compiler options: check compiler<br />
*r37086,37088 IDEIntf: removed TLazCompilerOptions.LCLWidgetType, fixed computing default LCLWidgetType on cross target OS<br />
*r37090 codetools: do not try to search in record ancestors<br />
*r37105 DBG: Watches Copy Name/Value to clipboard. Issue [[http://bugs.freepascal.org/view.php?id=0021860 0021860]]<br />
*r37106 DBG: Register Copy Name/Value to clipboard. Issue [[http://bugs.freepascal.org/view.php?id=0021860 0021860]]<br />
*r37107 DBG: Watches, added inspect/evaluate to popup<br />
*r37116 DBG: Fix a possible crash in debugger (history). Issue [[http://bugs.freepascal.org/view.php?id=0021901 0021901]]<br />
*r37195 SourceEdit: Do not access outdated tab-history entries (dangling pointers). Issue [[http://bugs.freepascal.org/view.php?id=0021939 0021939]]<br />
*r37196 SourceEdit: Only add tabs to tab-history that were accessed<br />
*r37103,r37132 codetools: nested types: Self and inherited<br />
*r37104,r37120 codetools: GetSmartHint: show anonymous arrays<br />
*r37111 IDE: Make Close button work in Components List dialog. Issue [[http://bugs.freepascal.org/view.php?id=21892 21892]],<br />
*r37118 IDE: build ide: if building fails, clear flag clean up once<br />
*r37119 IDE: when building IDE failed: restore backup<br />
*r37121,r37122 IDE: select frame: search in packages<br />
*r37130 IDE: select frame: search in packages<br />
*r37131 LCL, implements textrect clipping in Postscriptprintercanvas<br />
*r37133 SynEdit: Fix WantTabs / Change default to "True" Issue [[http://bugs.freepascal.org/view.php?id=0021904 0021904]]<br />
*r37134 SynEdit: Remove not required invalidation (paint / call to wrong Update() )<br />
*r37135 SynEdit: Remove wrong implementation of Update. Update no longer forwards to Invalidate<br />
*r37136 IpPro: Fix painting for SelectAll<br />
*r37137 IDE, IpPro: Allow copy to clipboard from hint (zeljko added because of conflict in 37345)<br />
*r37140 cody: show code node info: show complete source<br />
*r37141 SynEdit: Fixed Caret paint error (extra caret left on screen) Issue [[http://bugs.freepascal.org/view.php?id=0021924 0021924]]<br />
*r37143 IDEIntf: added TPropertyEditorHook.IsSelected<br />
*r37144 IDEIntf: TDefaultComponentEditor: always select component<br />
*r37146 IDE: if component class is missing: note about RegisterClass<br />
*r37148 Translations: Ukrainian translation cleanup<br />
*r37149 IDE: regenerated translations; updated Russian translation<br />
*r37151 cody: IDE item to create dockable IDE window<br />
*r37152 cody: new IDE window: show dialog to setup form name<br />
*r37162,r37163 IDE: TProjectFileDescriptor.DefaultResourceName: first try without appending a number, check for pascal keywords<br />
*r37164,r37165 IDE: fixed DoGetUnitRegisterInfo for virtual files<br />
*r37166 SynEdit: Fixed Caret when scrolling under older Wine (Win Emulator)[[http://bugs.freepascal.org/view.php?id=21929 21929]]<br />
*r37212 sqldb: added icon for TMySQL55Connection for fpc 2.6.1 '<br />
*r37213,r37214,r37219 codetools: do not save errors outside parser<br />
*r37215 codetools: GetSmartHint: ^, .., file of, class of<br />
*r37220 Translations: Czech IDE translation update by Martin Smat<br />
*r37224 SynEdit: Autocompletion, workaround for click on hint Issue [[http://bugs.freepascal.org/view.php?id=21952 21952]]<br />
*r37231 SynEdit: Prevent some scrolling, while selecting by mouse. Issue [[http://bugs.freepascal.org/view.php?id=0021996 0021996]]<br />
*r37232 DBG: Inspect window, improve scrolling<br />
*r37234 DBG: Improve start-up to work with bug in gdb 7.4<br />
*r37262 searching compiler: search first in dir of fpc.exe, then in PATH<br />
*r37263,r37265 codetools: improved error message on unit not found<br />
*r37264 fix setting radiogroup.itemindex under gtk2. Issue [[http://bugs.freepascal.org/view.php?id=22013 22013]]<br />
*r37267 Docs: improved build_lcl_docs robustness when working with TProcess, patch from Reinier Olislagers, bug 22000<br />
*r37273 SourceEditor: Fix crash when closing several tabs, while debugging (paused / loading line info). Maybe related to issue [[http://bugs.freepascal.org/view.php?id=22015 22015]]<br />
*r37274 Fix Crash in building "Windows" (list of open W.) Menu. Note 0059576 in Issue [[http://bugs.freepascal.org/view.php?id=22015 22015]] (not related to other parts of issue)<br />
*r37280 SQLdb: added missing tmysql55connection.png, bug 22033 '''Related to 37212 and other revisions for TMySQL55Connection'''<br />
*r37281 SynEdit: protect ProcessCommand() against early destruction by ReleaseComponent. Issue [[http://bugs.freepascal.org/view.php?id=0022035 0022035]]<br />
*r37285 IDE: make Close button work in Window Manager<br />
*r37286 Patch from bug 21651, automatically adds quotes to paths with spaces for OpenDocument in Mac OS X<br />
*r37297,r37298 SynEdit, Pas-HL: record helper, deprecated in object<br />
*r37311 Translations: Arabic IDE translation update by Mazen NEIFER<br />
*r37312 IDE: Make Help button work in Editor Window Manager, issue [[http://bugs.freepascal.org/view.php?id=21961 21961]]. (zeljko added to merge list because of conflicts in 37491)<br />
*r37325 regenerated translations; updated Russian translation<br />
*r37326 Translations: Brazilian Portuguese translation update by Marcelo B Paula, bug 22064<br />
*r37327 IDE, Code Generation options: changed wrong -Op386 option to correct -Op80386. Patch by barlone with some consistency changes, bug 22062.<br />
*r37357 Gtk2: fixed mbAll button on dialogs. Added response keys which does not exist in gtk2. issue [[http://bugs.freepascal.org/view.php?id=22083 22083]]<br />
*r37344 gtk2 intf: less hints<br />
*r37345 ipro: less hints <br />
*r37359 lazreport: German translations<br />
*r37360 cody: German translations<br />
*r37039,r37319,r37324,r37361 sqldb: German translations (zeljko added 37039,37319,37324 because of conflicts)<br />
*r37362 educationlaz: German translations<br />
*r37363 ide: German translations<br />
*r37372 lcl: don't access Items of TreeView if DragOver happens during treeview destruction<br />
*r37373 IDE: debugger options: check the resolved file, bug 22086<br />
*r37374 Qt: bypass windowmanager when showing dragimagelist.<br />
*r37375 Gtk2: do not show taskbar entry for dragimagelist.<br />
*r37376 IDE: update TUnitInfo.ResourceBaseClass on loading lfm<br />
*r37378 [Edited, includes selected lines of 37402] SourceEditor: Hide hint, when mouse moves (even if outside IDE, or IDE is not active). Issue [[http://bugs.freepascal.org/view.php?id=0022016 0022016]]<br />
*r37368 DBG: Fixed array len for 64 bit<br />
*r37369 lcl: don't crash when either DragTarget or dragged control is freed (issue [[http://bugs.freepascal.org/view.php?id=22067 22067]])<br />
*r37370 lcl: cleanup debug info<br />
*r37371 lcl: fixed a memory leak when canceling drag of dead control<br />
*r37380 SourceEdit/DBG: Ensure Codebuffer is updated before using it to add watches<br />
*r37383 IDE: TUnitInfo.fModified: do not set on get<br />
*r37384,r37401 IDE: do not set TUnitInfo.Modified when committing source editor to codetools<br />
*r37388,r37389,r37390,r37391,r37392 tests: added tests for cfgscripts, fixed unit output directory, cfgscript: fixed error message if semicolon is missing, IDE: added conditionals functions GetIDEValue, GetEnv, LCL: use IDE widgettype as default<br />
*r37397 TodoList: properly trim comment markers and convert multiline text to single line, fixes bug 22085. Based on patch by Anton.<br />
*r37400 codetools: fixed mem leak<br />
*r37418: TAChart: Fix range check using datapoint tool on a chart without series<br />
*r37440 DBG: do not set temporary stack = -1 in thread changing. This may cause errors<br />
*r37444 DBG: Watches, save "Use instance class" to config<br />
*r37449 LCL: fixed comments<br />
*r37451 Qt: fixed wrong SetCapture() under win32. Problem was passed TQtWidget handle instead of underlaying widget winID() which is native handle.<br />
*r37453 SynEdit: Fix goto bookmark and persistent block. Do not clear persistent block<br />
*r37461 lcl: TCustomForm.UpdateDockCaption: fixed repair garbage<br />
*r37463 IDE: when docked keep IDE caption<br />
*r37464 Help, DBG: New link to wiki for watch properties<br />
*r37475 codetools: TCustomCodeTool.FindLineEndOrCodeAfterPosition: fixed crash when at end of code<br />
*r37476 codetools: clear nodes behind, when linkscanner parsed only parts<br />
*r37481 IDE: fixed storing old LCLWidgeType, bug 22174<br />
*r37482 codetools: save parse error of operator, do not save errors outside parser, fixed parsing method name with generic parameter<br />
*r37483 codetools: allow keywords in program name<br />
*r37534 Qt: do not call setValue() but setPosition() so lcl gets accurate values later. issue [[http://bugs.freepascal.org/view.php?id=22187 22187]]<br />
*r37491 Help, DBG: Link to wiki for breakpoint properties (zeljko - 37312 is merged too, because of conflicts)<br />
*r37470 IDE, DBG: debug-eval hint, do not show, if selection exceeds one statement (e,g whole file selected). Part of issue [[http://bugs.freepascal.org/view.php?id=0022081 0022081]]<br />
*r37471 SourceEditor: Fix an issue with focusing an editor, that is being closed (while debugging) "no parent handle". Issue [[http://bugs.freepascal.org/view.php?id=0022015 0022015]]<br />
*r37517 SynEdit: fixed folding for "case" and "try" in certain code segments (initialization / case...else try)<br />
*r37518 SynEdit: Pas-HL: fix detection of case...else versus if...then...else<br />
*r37522 SynEdit: Pas-HL: better detection of case...else<br />
*r37623 SourceEditor: Fix (Work-around) an issue with focusing an editor, that is being closed (while debugging) "no parent handle". Issue [[http://bugs.freepascal.org/view.php?id=0022015 0022015]] // Required some parts of r37502<br />
*r37609 DBG: Avoid re-queuing of dis-assembler requests, after cancelling it. Part of issue [[http://bugs.freepascal.org/view.php?id=0022230 0022230]]<br />
*r37643 DBG: Disassembler: prevent disassembler from doing large address ranges, if gdb returns data with far away addresses. Issue [[http://bugs.freepascal.org/view.php?id=0022230 0022230]]<br />
*r37657 DBG: fixed a out of index error, in watches history<br />
*r37694 DBG: Fixed possible crash in watch evaluation (WatchValue freed while evaluating / in GetValue)<br />
*r37466 IDE: added menu item to insert MIT license text<br />
*r37407,r37474,r37492 IDE: TMainIDE.DoSourceEditorCommand: improved focus check, requires r37466<br />
*r37564 LCL: TCustomListView: reset FCacheIndex and FCacheItems before sorting list, otherwise we'll have unexpected results. issue [[http://bugs.freepascal.org/view.php?id=22218 22218]]<br />
*r37505, r37509, r37516, r37523 fixed compilation with fpc 2.7.1<br />
*r37592 lcl: fixed compilation fpc 2.7.1<br />
*r37525 TAChart: Display legend symbols even if the text is empty<br />
*r37565 TAChart: Display major axis marks at the edges of the clip range<br />
*r37576 TAChart: Fix infinite recursion when drawing chart listbox from series with Legend.Multiplicity <> lmSingle<br />
*r37588 TAChart: Include Item.Y in reordered list of TCalculatedChartSource. Update test. '''This will break old tests. Please contact me for a fix --- Ask'''<br />
*r37727 TAChart: Update to the recent version of FPVectorial<br />
*r37587 Qt: unset icon when doing internal sync after sorting. part of issue [[http://bugs.freepascal.org/view.php?id=22218 22218]]<br />
*r37620 LCL: invalidate parent preferredsize when borderspacing changed, bug 17947<br />
*r37621 LCL: clean up - invalidate in TControl.DoBorderSpacingChange no longer needed with new autosizing<br />
*r37622 lazutils: added missing file<br />
*r37624 LCL: GetClientRect: if interface has the right width,height trust the clientrect, this avoids some unneeded resizes<br />
*r37573 IDE: project inspector: add files: allow dotted unit names, bug 22209<br />
*r37619 IDE: open package dependency: try provides, issue [[http://bugs.freepascal.org/view.php?id=17960 17960]]<br />
*r37628 IDE: compiler options: disable target platform for packages<br />
*r37594 codetools: fixed Unneeded extra space in event assignment completion<br />
*r37613 codetools: property completion: add class var for class property variables<br />
*r37614 codetools: class completion: search variables in all sections, bug 22246<br />
*r37625,r37626,r37627 codetools: class completion: fixed searching var node when first is class var<br />
*r37629 codetools: fixed adding class keyword for property setter of a class property<br />
*r37630 IDE: codeexplorer: labels<br />
*r37634 IDEIntf: objectinspector: fixed painting outside paint event<br />
*r37631 codetools: no var node for anonymous record case variables<br />
*r37632 codetools: identifier completion: when creating an override hide higher visibility members<br />
*r37633 codetools: class completion: add static method modifier for setter of class property<br />
*r37636 codetools: class completion: add static method specifier for class property setter<br />
*r37635 IDE: paste component: fix renamed references<br />
*r37637,r37638,r37639 IDE: paste multiple components: fix references, lcl: LRSObjectTextToBinary: write convert list of components<br />
*r37640 IDE: paste components: update TControl.Caption<br />
*r37642 lcl: fixed LRSObjectTextToBinary toWString, issue [[http://bugs.freepascal.org/view.php?id=19650 19650]]<br />
*r37644 codetools: fixed inserting proc bodies in implementation in front of methods<br />
*r37652,r37653,r37655 codetools: using TFileStreamUTF8<br />
*r37656 IDE: using TFileStreamUTF8 and TStringListUTF8<br />
*r37663 IDE: fixed show info on --help when no stdout exists<br />
*r37689 LCL: fixing handling of special keys for TCustomEdit and TCustomMemo<br />
*r37690 codetools: forward proc completion: stay in same section<br />
*r37697 DBG: Dialogs, don't give help related commands to IDE. They will be ignored<br />
*r37698 IDE Help: add urls for dbg dialogs<br />
*r37703 lazutils: utf8pos: added optional parameter StartPos<br />
*r37704 IDE: setup dialog: show fpc source directory release version as warning instead of error<br />
*r37707 tools create deb+rpm: use 128x128 icon<br />
*r37705 SynEdit: open and close clipboard explicitly to write multiple formats.<br />
*r37714 lcl: gtk2: warn only once about liboverlay<br />
*r37711 lhelp: cleaned up paths<br />
*r37712 lhelp: clean up<br />
*r37713 lhelp: resolve macros in HelpEXE on the demand<br />
*r37715 chmhelp: using search path to search for chm files<br />
*r37716,r37717 chmhelp: added path $(LazarusDir)/docs/chm<br />
*r37718 'hmhelp: search ref.chm in docs/chm<br />
*r37726 create_lazarus_deb: added option chmhelp<br />
*r37722 DBG: Event-Log: Do not cache Options. Allow user to change options while debugging<br />
*r37596 Patch from {{MantisLink|0022231}} "fix warnings with fpc 2.6.1".--[[User:AlexVinS|AlexVinS]] 21:40, 8 June 2012 (UTC)<br />
*r37745 deb+rpm: default environmentoptions: updated to 107, removed default gdb entry<br />
*r37748,r37755 lhelp: added makefile<br />
*r37749 make bigide: build lhelp<br />
*r37753 IDE: fixed comparing file names case insensitive<br />
*r37754 lazutils: inlined UTF8CompareStr<br />
*r37760 Use Utf8CompareText instead of AnsiCompare<br />
*r37762 linux: added encoding to desktop file<br />
*r37769 Use Utf8CompareText instead of AnsiCompare<br />
*r37770 TAChart: Fix AV when clearing Series.Styles and TColorMapSeries.ColorSource properties<br />
*r37772 Use Utf8CompareText instead of AnsiCompare<br />
*r36804 win32: mark client rect as required update before WM_SIZE passing, remove DoAdjustClientRectChange - they are called inside WM_SIZE handler after the client rect is updated (fixes bug [[http://bugs.freepascal.org/view.php?id=0021724 0021724]])<br />
**Paul remarked about r36804: "Please don't merge it for at least 2 weeks". Also seems to cause problems in grids, see [http://bugs.freepascal.org/view.php?id=21790 issue [[http://bugs.freepascal.org/view.php?id=21790 21790]]].<br />
*r36993: LCL, fixed Problems setting Width, Height for TCustomGrid if ScrollBars is auto, from cobines, issue [[http://bugs.freepascal.org/view.php?id=21790 21790]]. If r36804 is merged, please merge also r36993<br />
*r37783 startlazarus: linux: adding LIBOVERLAY_SCROLLBAR=0 to avoid problems with mouse capturing<br />
*r37785 gtk2 intf: disable liboverlay by default<br />
*r37790 gtk2 intf: use setenv only on Linux<br />
*r37795: export tgz: added option to add chm files<br />
*r37796 IDE: when copying secondary configs create the primary config directory first<br />
*r37797 rpm: added option chmhelp<br />
*r37810 rpm: fixed building without chmhelp<br />
*r37811 lhelp: fixed invalid recent item path in config, added build modes default,debug<br />
*r37814 chmhelp: clean up old ipc files to prevent IDE hang<br />
*r37817-r37821 MAKE DEB<br />
*r37838 DBG: Fix handling console input<br />
*r37824 chmhelp: Fixed lazarus hanging when chmhelp pipe is leftover from an improperly closed lhelp<br />
*r37825 chmhelp; Fixed chmhelp typo (boolean error)<br />
*r37826 chmhelp: fixed bug where a new lhelp process could be started each time F1 was pressed<br />
*r37841 DBG: Pseudo-Terminal, accept tabs<br />
*r37848 lazutils: docs: fixed encoding and package name<br />
*r37849 lcl: docs: fixed encoding<br />
*r37850 ide: docs: fixed encoding<br />
*r37851 updated docs<br />
*r37853 lcl: docs: fixed some links<br />
*r37852 build_lcl_docs: using UTF-8 file functions, added option -h<br />
*r37855 build_lcl_docs: showcmd: show working directory<br />
*r37861 lcl: check if ListDataset is loading to update lookup info. Issue [[http://bugs.freepascal.org/view.php?id=22337 22337]]<br />
*r37846 win32: let TComboBox.CloseUp fire before Change (delphi compatible). Fix 22352<br />
*r37880 IDE+startlazarus: use same working directory, needed for passing relative file names as command line parameters, fixed building lcl+lazutils chm on ubuntu 12<br />
*r37866 lazutils: fixed unit names<br />
*r37868 lazutils: added fpdoc files<br />
*r37869 docs: building lazutils+lcl chm<br />
*r37885 DBG: fixed parsing sets for debug-inspector<br />
*r37906 IDE-Options / SynEdit: Fixed RightEdge visibility (Recression)<br />
*r37919 DBG: Prevent potential crash/memory-corruption in Watches<br />
*r37920 DBG: Prevent potential crash in (dbg-)OnIdle handling<br />
*r37921 DBG: Prevent build up of no longer needed commands in queue<br />
*r37945 DBG: Prevent a crash, when the selected snapshot is deleted. Cas also happen when starting the debugger, while a snapshot from previous run is active<br />
*r37950 DBG: fixed endless loop in watch eval (auto type cast) Issue [[http://bugs.freepascal.org/view.php?id=0022425 0022425]]<br />
*r37961 DBG: Disable rangechecks for certain PtrUInt casts<br />
*r37993 carbon: fixed crash of IDE when compiled with range checks on<br />
*r38006 gtk2: fixed crash on QuestionDlg<br />
*r38003 IDE: fixed showing custom project options, issue [[http://bugs.freepascal.org/view.php?id=22486 22486]]<br />
** merged ONLY main.pp<br />
*r38016 ToDoList: fixed encoding of French translation, it should be UTF-8, not ISO-8859-1. Patch by batyann811, bug 22489.<br />
*r37981,37983-37989,38001,38004-38005,38012,38017 Win Installer<br />
=== Fixed after RC1 ===<br />
*r38127 IDE, EditorOptions: Fixed finding color attribute in localized IDE<br />
*r38132 IDE: setup: after changing lazarusdir: fetch translations and translate<br />
*r38133 chmhelppkg: invoke lazbuild with --pcp parameter<br />
*r38138 examples: testall: fixed start<br />
*r38139 examples: cleandirs: error for fpc version<br />
*r38140 examples: componentstreaming: fixed typo, clean up<br />
*r38141 lazfreetype: fixed range check error, improved error message<br />
*r38142 examples: mssqlconn: requires fpc 2.6.1<br />
*r38144 examples: synguttermarks: win32 gui mode, fixed Left position<br />
*r38146 examples: tv_add_remove: updated<br />
*r38147 examples: xmlreader: added example xml<br />
*r38157 IDE: fixed saving ambiguousfileaction, bug 22573<br />
*r38158 examples: clean up<br />
*r38038 TAChart: Allow spaces in field names inside TDbChartSource.FieldY<br />
*r38168 synuni: clean up fpc options<br />
*r38170 synuni, semaphorgridlpk: clean up fpc options<br />
*r38022 SynEdit: Fixed drawing errors for frames (left frame site drawn at wrong offset)<br />
*r38145 LCL: TListView fixed "List index out of bounds" while deleting items. issue [[http://bugs.freepascal.org/view.php?id=22552 22552]]<br />
*r38150 SynEdit TSynMultiSyn: Fixed crash when deleting lines. Part of issue [[http://bugs.freepascal.org/view.php?id=0022519 0022519]]<br />
*r38151 SynEdit Highlighter: Fixed crash when scanning empty<br />
*r38152 SynEdit TSynMultiSyn: typo<br />
*r38175 SynEdit TSynMultiSyn: Fixed updating, when appending to EOT. Part of issue [[http://bugs.freepascal.org/view.php?id=0022519 0022519]]<br />
*r38205 lazaruside.fi.po: Finnish translations<br />
*r38180 Synedit: fix matching-bracket-highlight in comments (closing bracket at eol) issue [[http://bugs.freepascal.org/view.php?id=22586 22586]]<br />
*r38198 IDE: Export to html, do not enforce check for writeable. Issue [[http://bugs.freepascal.org/view.php?id=22588 22588]]<br />
*r38199 lazutils: do not use winodws W functions under Win98, issue [[http://bugs.freepascal.org/view.php?id=22596 22596]]; '''Breaks compilation on wince, because win32platform is not defined.'''<br />
*r38202 openglcontrol: win32: fixed sharing context<br />
*r38204 Synedit: fixed typo in IFDEF for fpc 2.60 bug<br />
*r38225 TAChart: Fix division by zero in zoom tools with extreme zoom ratios<br />
*r38226 TAChart: Fix hang in functional series with extreme zoom ratios<br />
*r38223 SynEdit TSynMultiSyn: Several fixes issue [[http://bugs.freepascal.org/view.php?id=0022519 0022519]]<br />
*r38232 TAChart: Add InRangeUlps utility function<br />
*r38233 TAChart: Fix disappearance of axis marks located exactly at chart bounds<br />
*r38234 TAChart: Fix crash when setting Marks.LabelFont from the Object Inspector<br />
*r38237 Examples/SynEdit: Readme and typo in comment<br />
*r38266 IDE: Tweak the layout of ManageExamplesForm<br />
*r38260 TAChart: Use correct notification when the series' source changes<br />
*r38261 TAChart: Issue change notifications when modifying TListChartSource.DataPoint property<br />
*r38285 lhelp: replace MessageBox, with Form.Modal. FIx IPC hang. issue [[http://bugs.freepascal.org/view.php?id=0022592 0022592]]<br />
<br />
=== Fixed after RC2 ===<br />
*r38293 windows installers: don't ask to overwrite the environment options in the secundary config directory from Reinier Olislagers<br />
*r38339 SynEdit TSynMultiSyn: Fix CaseSensitivity for Sheme marker. Issue [[http://bugs.freepascal.org/view.php?id=0022693 0022693]]<br />
*r37386 Remove writeln() that looks like a residual debug message. Issue [[http://bugs.freepascal.org/view.php?id=0022544 0022544]]<br />
*r38385 Translations: removed unmaintained Portuguese translation, which was outdated copy of Brazilian Portuguese one<br />
<br />
== How to merge ==<br />
The lazarus developers have decided to use the native svn merge for this branch. Other branches used the svnmerge.py script to manage the revisions to be merged.<br />
<br />
* TODO: Maybe this information should be put in a separate page.<br />
<br />
[[SVN_Migration#Merge_with_plain_svn]]<br />
=== Using TortoiseSVN ===<br />
As noted in the link above using TortoiseSVN is more or less self explaining. <br />
<br />
* TODO: add some screen shots.<br />
<br />
When committing, in the recent messages a nice commit message is available.<br />
<br />
Tested with TortoiseSVN 1.7.6, SVN 1.7.4.<br />
<br />
=== Show list of revision that can be merged ===<br />
In the lazarus fixes_1_0 directory do:<br />
svn mergeinfo ^/trunk --show-revs eligible<br />
Or if you don't have a fixes directory checked out, you can pass the URL path of the fixes branch:<br />
svn mergeinfo ^/trunk http://svn.freepascal.org/svn/lazarus/branches/fixes_1_0 --show-revs eligible<br />
<br />
=== Show list of revision that have been merged ===<br />
In the lazarus fixes_1_0 directory do:<br />
svn mergeinfo ^/trunk --show-revs merged<br />
<br />
=== Merging revisions from trunk ===<br />
To merge one or more revisions from trunk, use the svn merge command. For example to merge revision 36506 and 36510 use:<br />
svn merge -c 36506,36510 ^/trunk<br />
<br />
To generate a commit log message, use:<br />
svn log ^/trunk -c 36506,36510 > svnmerge-commit-message.txt<br />
<br />
Edit svnmerge-commit-message.txt with your favorite text editor and add a first line like:<br />
Merged revision 36506,36510 from /trunk.<br />
<br />
Commit this with:<br />
svn commit -F svnmerge-commit-message.txt<br />
<br />
=== Blocking a revision to be merged ===<br />
Sometimes you want to block a revision to be merged, i.e. you want to make sure that this revision is never merged to the fixes branch, for example, because it contains a new feature or it contains a version number change not applicable to the fixes branch, but only to trunk. To block revision 36507, use:<br />
svn merge -c 36507 --record-only ^/trunk<br />
Then you can create a log message with:<br />
svn log ^/trunk -c 36507 > svnmerge-commit-message.txt<br />
Edit svnmerge-commit-message.txt with your favorite text editor and add first line like:<br />
Blocked revision 36507 from /trunk<br />
Then commit this change:<br />
svn commit -F svnmerge-commit-message.txt<br />
<br />
[[Category:Lazarus]]</div>
Paul Ishenin
https://wiki.freepascal.org/index.php?title=User_Changes_Trunk&diff=69812
User Changes Trunk
2013-05-11T01:53:41Z
<p>Paul Ishenin: /* tautology */</p>
<hr />
<div>== About this page==<br />
<br />
Listed below are intentional changes made to the FPC compiler (trunk) since the [[User_Changes_2.6.2|previous release]], with reasons why these changes have been implemented, and suggestions for how you might adapt your code if you find that previously working code has been adversely affected by these recent changes. The list of new features can be found [[FPC_New_Features_Trunk|here]].<br />
<br />
== All systems ==<br />
<br />
=== Implementation changes ===<br />
<br />
==== Exception type for object reference checking changed ====<br />
* '''Old behaviour''': When object reference checking (''-CR'' or ''{$OBJECTCHECKS ON}'') is enabled and the unit ''SysUtils'' is used then an exception of class ''Exception'' with localizeable message ''Unknown runtime error 210'' is created.<br />
* '''New behaviour''': Now an exception of class ''EObjectCheck'' with localizeable message ''Object reference is Nil'' is created.<br />
* '''Reason''': All other runtime errors in the 2xx range have appropriate exception types, so it is only natural to have an explicit type for runtime error 210 as well.<br />
* '''Remedy''': If your code previously checked an exception for the message ''Unknown runtime error 210'' you should now check for the exception class ''EObjectCheck''.<br />
<br />
==== Literal storage memory has been made read-only ====<br />
<br />
* '''Old behaviour''': read-only data segments were ''de facto'' not supported, and all data could be modified at runtime even if it was not intended for modification (except in some cases on Darwin). This could cause nasty side-effects, e.g the following code:<br />
<br />
<syntaxhighlight><br />
uses sysutils;<br />
var<br />
s: ansistring;<br />
begin<br />
s := 'ansi string';<br />
Writeln(AnsiStrUpper(pchar(s)));<br />
s := 'ansi string';<br />
Writeln(s);<br />
end.<br />
</syntaxhighlight><br />
<br />
would modify the contents of data segment and print<br />
<br />
ANSI STRING<br />
ANSI STRING<br />
<br />
* '''New behaviour''': Data that is not intended to be modified at runtime is put into a read-only segment. This includes literal constants used in expressions and typed constants declared in {$J-} state. Any code which modifies such data (as in the above example) will now crash.<br />
* '''Reason''': This is consistent with the way other compilers (including Delphi) work. Keeping data read-only as much as possible improves a program's loading speed because read-only pages can be mapped directly to the executable file. This also improves program security.<br />
* '''Remedy''': is very code-dependent. In the example above, it is sufficient to call <tt>UniqueString(s)</tt> before <tt>AnsiStrUpper</tt><br />
<br />
==== ''UNICODE'' is defined depending on the mode switch ====<br />
* '''Old behaviour''': When the modeswitch was changed the definition of ''UNICODE'' was not changed.<br />
* '''New behaviour''': If the modeswitch is changed to ''delphiunicode'' the ''UNICODE'' will be defined otherwise it will be undefined.<br />
* '''Reason''': In Delphi 2009 and newer the type String is defined as UnicodeString and ''UNICODE'' is defined there by default as well. For improved Delphi compatibility ''UNICODE'' will be automatically defined if the String type is set to be equal to UnicodeString.<br />
* '''Remedy''': Don't rely on checks for ''UNICODE'' before the mode switches. Also compile time checks for ''UNICODE'' that appear after a modeswitch like ''objfpc'' or ''delphi'' will no longer be evaluated to true.<br />
<br />
=== RTTI changes ===<br />
<br />
==== RTTI for Pointers and Class References ====<br />
* '''Old behavior''': Pointers and Class References had tkUnknown RTTI.<br />
* '''New behavior''': Pointers now have RTTI type tkPointer, and class references have the RTTI type tkClassRef. Each now contains a reference to a type they point to.<br />
* '''Reason''': Both user requests and Delphi compatibility.<br />
* '''Remedy''': The TTypeKind enumeration has more members than before. Adjust any code which uses TTypeKind accordingly.<br />
<br />
==== RTTI for AnsiStrings ====<br />
* '''Old behavior''': AnsiString RTTI previously lacked CodePage information.<br />
* '''New behavior''': A new CodePage member has been added for the tkAString type.<br />
* '''Reason''': This is required for serializing/deserializing of published AnsiString properties, and is now compatible with Delphi.<br />
* '''Remedy''': not known<br />
<br />
==== RTTI for Arrays ====<br />
* '''Old behavior''': tkArray had no member in the TTypeData record, although internally the compiler stored these members: first dimension size, first dimension element count and first dimension element type. So for a 2 dimension array element the type was array for the second dimension.<br />
* '''New behavior''': tkArray now has a TArrayTypeData structure in TTypeData. It has the following members: total array size including all dimensions, total element count, last dimension element type, number of dimensions, type information for each dimension range.<br />
* '''Reason''': This provides more comprehensive RTTI, and is compatible with Delphi.<br />
* '''Remedy''': If your code internally used the older RTTI array information you will need to adapt it to take account of the newly provided TArrayTypeData information.<br />
<br />
==== RTTI for Records ====<br />
* '''Old behavior''': Records RTTI stored field Offsets as 32bit integers.<br />
* '''New behavior''': Records RTTI stores field Offsets as platform-dependent integers (the same size as pointers).<br />
* '''Reason''': Internally the compiler stores Offsets as platform-dependent integers. The new behaviour is Delphi-compatibile.<br />
* '''Remedy''': You need to adjust your code if you used field offsets of record RTTI. This is also true if your code processes any vInitTable field within the VMT of a class.<br />
<br />
==== RTTI for Procedural Variables ====<br />
* '''Old behavior''': tkProcVar lacked any member in the TTypeData record and the compiler stored no information about procedural variables.<br />
* '''New behavior''': tkProcVar now has a new TProcedureSignature structure in TTypeData which contains information about the procedure's calling convention, result type and parameters (where applicable).<br />
* '''Reason''': User request. More informative RTTI. Delphi compatibility.<br />
* '''Remedy''': not known<br />
<br />
==== Use example ====<br />
<syntaxhighlight><br />
program RTTIInfo;<br />
<br />
{$mode objfpc}{$H+}<br />
uses<br />
typinfo;<br />
<br />
type<br />
CP866String = type AnsiString(866);<br />
TProc = procedure(var A: Integer; S: String); stdcall;<br />
TColor = (red, green, blue);<br />
TArr = array[TColor,0..3] of Integer;<br />
PArr = ^TArr;<br />
<br />
procedure DescribeProcedure(Info: PTypeInfo);<br />
const<br />
ParamFlagToStr: array[TParamFlag] of AnsiString = (<br />
'var',<br />
'const',<br />
'array',<br />
'address',<br />
'reference',<br />
'out'<br />
);<br />
CallConvToStr: array[TCallConv] of AnsiString = (<br />
'register',<br />
'cdecl',<br />
'pascal',<br />
'stdcall',<br />
'safecall',<br />
'cppdecl',<br />
'far16',<br />
'oldFPCcall',<br />
'internProc',<br />
'SysCall',<br />
'SoftFloat',<br />
'MWPascal'<br />
);<br />
var<br />
Data: PTypeData;<br />
Param: PProcedureParam;<br />
ParamFlag: TParamFlag;<br />
I: Integer;<br />
Res, S, TypeName: String;<br />
begin<br />
if Info^.Kind <> tkProcedure then<br />
Exit;<br />
Data := GetTypeData(Info);<br />
if Data^.ProcSig.CC <> ccStdCall then<br />
halt(2);<br />
if Data^.ProcSig.ResultType <> nil then<br />
begin<br />
Res := 'function ' + Info^.Name;<br />
TypeName := ': ' + Data^.ProcSig.ResultType^.Name;<br />
end<br />
else<br />
begin<br />
Res := 'procedure ' + Info^.Name;<br />
TypeName := '';<br />
end;<br />
if Data^.ProcSig.ParamCount > 0 then<br />
begin<br />
Res := Res + '(';<br />
for I := 0 to Data^.ProcSig.ParamCount - 1 do<br />
begin<br />
Param := Data^.ProcSig.GetParam(I);<br />
S := '';<br />
for ParamFlag in TParamFlags(Param^.Flags) do<br />
S := S + ParamFlagToStr[ParamFlag] + ' ';<br />
S := S + Param^.Name + ': ' + Param^.ParamType^.Name;<br />
if I > 0 then<br />
Res := Res + '; ';<br />
Res := Res + S;<br />
end;<br />
Res := Res + ')';<br />
end;<br />
Res := Res + TypeName + '; ' + CallConvToStr[Data^.ProcSig.CC] + ';';<br />
WriteLn(Res);<br />
end;<br />
<br />
procedure DescribeAnsiString(Info: PTypeInfo);<br />
var<br />
Data: PTypeData;<br />
begin<br />
if Info^.Kind <> tkAString then<br />
Exit;<br />
Data := GetTypeData(Info);<br />
if Data^.CodePage = 0 then<br />
WriteLn('AnsiString')<br />
else<br />
WriteLn('type AnsiString(',Data^.CodePage,');');<br />
end;<br />
<br />
procedure DescribeArray(Info: PTypeInfo);<br />
var<br />
Data: PTypeData;<br />
Res: String;<br />
I: Integer;<br />
begin<br />
if Info^.Kind <> tkArray then<br />
Exit;<br />
Data := GetTypeData(Info);<br />
Res := 'array[';<br />
for I := 0 to Data^.ArrayData.DimCount - 1 do<br />
begin<br />
if I > 0 then<br />
Res := Res + ', ';<br />
Res := Res + Data^.ArrayData.Dims[I]^.Name;<br />
end;<br />
Res := Res + '] of ' + Data^.ArrayData.ElType^.Name + ';';<br />
WriteLn(Res);<br />
end;<br />
<br />
procedure DescribePointer(Info: PTypeInfo);<br />
var<br />
Data: PTypeData;<br />
begin<br />
if Info^.Kind <> tkPointer then<br />
Exit;<br />
Data := GetTypeData(Info);<br />
if Data^.RefType = nil then<br />
WriteLn('Pointer;')<br />
else<br />
WriteLn('^', Data^.RefType^.Name, ';');<br />
end;<br />
<br />
begin<br />
DescribeProcedure(TypeInfo(TProc));<br />
DescribeAnsiString(TypeInfo(CP866String));<br />
DescribeArray(TypeInfo(TArr));<br />
DescribePointer(TypeInfo(PArr));<br />
DescribePointer(TypeInfo(Pointer));<br />
end.<br />
</syntaxhighlight><br />
<br />
=== Unit changes ===<br />
<br />
==== TBookmark TBookmarkstr and TDataset.Bookmark change to Delphi2009+ compatible definitions ====<br />
* '''Old behaviour''': TDataset.Bookmark was of type TBookmarkstr, TBookmarkstr=string, Tbookmark=pointer<br />
* '''New behaviour''': TDataset.Bookmark is of type TBookmark, TBookmarkstr=ansistring, TBookmark=TBytes. TBookmarkstr will trigger a deprecated warning.<br />
* '''Reason''': D2009+ compatibility, where probably the fact that string became a 2-byte encoding was the trigger.<br />
* '''Remedy''': Adjust typing in descendents and using code accordingly.<br />
<br />
==== FileNameCaseSensitive and FileNameCasePreserving in unit System ====<br />
* '''Old behaviour''': There was only one constant (FileNameCaseSensitive) which signalized behaviour of the respective target platform with regard to the case in filenames. This was often set to true also on platforms not really treating filenames in case sensitive manner (e.g. Win32 and Win64).<br />
* '''New behaviour''': FileNameCaseSensitive is set to true only on platforms which really treat filenames in case sensitive manner and FileNameCasePreserving constant is added to unit system of all platforms to signalize whether the case in filenames supplied when creating or renaming them is preserved or not. This might possibly break existing user code relying on the previous (sometimes incorrect) value of FileNameCaseSensitive.<br />
* '''Reason''': In reality, there are two distinct types of behaviour. If a platform is case sensitive, searching for file "a" will never result in finding file "A" whereas case insensitive platform will happily return "A" if such a file is found on the disk. If a platform is case preserving, it will store file "a" as "a" on disk whereas case non-preserving platform may convert the filenames to uppercase before storing them on disk (i.e. file "a" is in reality stored as "A"). Case non-preserving platforms are never case sensitive, but case preserving platforms may or may not be case sensitive at the same time.<br />
* '''Remedy''': Review your existing code using FileNameCaseSensitive, check which of the two properties described above fit the particular purpose in your case and change to FileNameCasePreserving where appropriate.<br />
<br />
==== Some longtime deprecated functions in unit Unix have been removed. ====<br />
* '''Old behaviour''': Unix.(f)statfs, Unix.shell and Unix.fsync symbols existed in unit Unix <br />
* '''New behaviour''': Unix.(f)statfs, Unix.shell and Unix.fsync were removed<br />
* '''Reason''': These were helper functions and leftovers from the 1.0.x->2.0.0 conversion, deprecated since 2007. Shell had non standarized conventions<br />
* '''Remedy''': All but shell: use the same functions with a "fp" prefix. Shell: use fpsystem. If you checked the return value for other values than -1, a modification of the errorchecking might be necessary. Refer to your *nix documention, or have a look at the transformfpsystemtoshell function in tests/util/redir.pp in the FPC sources to see what a quick fix looks like.<br />
<br />
==== statfs has been renamed to fpstatfs ====<br />
* '''Old behaviour''': One overload of fpstatfs was not renamed from statfs to fpstatfs (around 2.4.0)<br />
* '''New behaviour''': The function has been renamed.<br />
* '''Reason''': Should have been done in 2.4.0 to begin with, but was postponed several times to coincide with a major version change. <br />
* '''Remedy''': Use fpstatfs<br />
<br />
==== RTLeventsync has been removed ====<br />
* '''Old behaviour''': The thread manager record contained an ''rtleventsync'' field, and the RTL had an ''RTLeventsync'' routine. No functionality for this routine was implemented in the FPC-supplied thread manager for any platform.<br />
* '''New behaviour''': The field and routine have been removed.<br />
* '''Reason''': The functionality was not available on any platform by default, and we're not aware of any third party thread manager that implemented them or third party code that relied on it. Additionally, the routine was documented as "Obsolete. Don't use.", without any explanation of what it was supposed to do.<br />
* '''Remedy''': Remove any such calls from your code.<br />
<br />
==== TODBCConnection (odbcconn) No longer autocommit ====<br />
* '''Old behaviour''': Autocommit was enabled: Every change was committed to the database at once.<br />
* '''New behaviour''': Changes must be committed explicitly using Transaction.Commit<br />
* '''Reason''': Transactions are useless if everything is autocommitted: in particular; rollback is not possible.<br />
* '''Remedy''': You can enable autocommit by specifying AUTOCOMMIT=1 in the params of TODBCConnection.<br />
<br />
==== FPCanvas Strikethough property spelling fixed to StrikeThrough ====<br />
* '''Old behaviour''': Fonts had a Striketrough property which is a typo.<br />
* '''New behaviour''': The property has been changed to Strikethrough.<br />
* '''Reason''': Spelling fix.<br />
* '''Remedy''': Please rename property calls in your code. FPC 2.6.2 contains both versions so there is a window for adaptation.<br />
<br />
==== TVersionInfo (fileinfo unit) re-implemented in a platform independent way ====<br />
* '''Old behaviour''': GetVersionSetting method would read file information.<br />
* '''New behaviour''': The ReadFileInfo call will read the information. The global GetProgramVersion call will extract the program major/minor/revision/build version in 1 single call.<br />
* '''Reason''': The unit now uses FPC resources on all platforms, and can now be used to read external resources.<br />
* '''Remedy''': Use the ReadFileInfo call to get the version information. Add relevant units for desired resource support to your uses clause; e.g. if you need to read Windows .exe file info, add winpeimagereader<br />
<br />
==== TDBF unit deprecation removed ====<br />
* '''Old behaviour''': the TDBF units were marked deprecated because the original maintainer of the upstream project stopped maintenance. However, the unit remained in fcl-db and patches were still accepted.<br />
* '''New behaviour''': the deprecation warning is removed. There is a new upstream project maintainer and FPC database devs support this unit again. Note: there is a known problem: TDBF will not work on ARM processors due to alignment issues (http://bugs.freepascal.org/view.php?id=22177). This will only be fixed if a patch is provided, and proven to not produce regressions (e.g. by tests in the FPC db test framework)<br />
* '''Remedy''': N/A<br />
<br />
==== shlobj symbols removed from unit Windows ====<br />
* '''Old behaviour''': When unit windows was splitted between unit windows and shlobj, not all shlobj symbols were removed from Windows. Currently these are being deprecated, and will be removed in next major version.<br />
* '''New behaviour''': shlobj symbols won't be in Windows, code relying on that will fail to compile if it doesn't import shlobj<br />
* '''Reason''': shlobj and windows versions were not compatible and lead to errors. <br />
* '''Remedy''': put shlobj in your uses, if not there already.<br />
<br />
=== Language Changes ===<br />
<br />
==== Variant overload preference for string types ====<br />
* '''Old behaviour''': Preference for string types was (from better to worse): ShortString, AnsiString, WideString, UnicodeString<br />
* '''New behaviour''': Preference for string types now (from better to worse): WideString, UnicodeString, AnsiString, ShortString<br />
* '''Reason''': Unicode characters and codepage information will not lose during the conversion and unicode Delphi compatibility.<br />
* '''Remedy''': Use explicit conversion (e.g. ShortString(V)) if it is needed to pass variant to routine with paticular string type argument.<br />
<br />
==== Default values in implementation but not in interface/forward declaration ====<br />
* '''Old behaviour''': The implementation of a routine could declare default values even if the interface declaration did not have any.<br />
* '''New behaviour''': Default values, if any, must be specified in the interface. They can be repeated in the implementation, but that is not required (just like it was not in the past).<br />
* '''Reason''': Default parameters specified only in the implementation are not, and cannot, be propagated to the interface since a unit's interface can be used before the implementation has been parsed (see http://bugs.freepascal.org/view.php?id=19434), Delphi compatibility.<br />
* '''Remedy''': Always specify default parameter values (also) in the interface/forward declaration of a routine.<br />
<br />
==== Default values are now properly typechecked ====<br />
* '''Old behaviour''': The compiler did not detect default values for parameters of which the type did not in any way correspond to the parameter type. <br />
* '''New behaviour''': The compiler now properly checks whether the type of the constant matches the parameter's type when parsing default values.<br />
* '''Reason''': Proper type checking is one of the fundamental properties of the Pascal language; Delphi compatibility.<br />
* '''Remedy''': Add a typecast around default values that now result in compiler errors, or correct the type of such parameters.<br />
<br />
==== Recursive parameterless function calls in MacPas mode ====<br />
* '''Old behaviour''': When using the name of a function inside its own body on the right hand side of an expression, the compiler treated this as a read of the last value assigned to the function result in MacPas mode.<br />
* '''New behaviour''': The compiler will now treat such occurrences of the function name as recursive function calls in MacPas mode.<br />
* '''Reason''': Compatibility with Mac Pascal compilers.<br />
* '''Remedy''': If you wish to read the current function result value, compile the code with ''{$modeswitch result}'', after which you can use the ''result'' alias for that value. Note that the use of this mode switch can also result in [[User_Changes_2.6.0#Implicit_.22result.22_variable_in_MacPas_mode|different behaviour]] compared to traditional Mac Pascal compilers.<br />
<br />
==== "''strict protected''" visibility modifier ====<br />
* '''Old behaviour''': ''strict protected'' did not correctly limit the visibility of symbols declared in different units.<br />
* '''New behaviour''': ''strict protected'' symbols can now only be accessed from descendent classes, regardless of where they are defined.<br />
* '''Reason''': Fix behaviour to conform to specification/documentation, Delphi compatibility.<br />
* '''Remedy''': Use ''protected'' or ''public'' if less strict accessibility checks are desired.<br />
<br />
==== support for type helpers added ====<br />
* '''Old behaviour''': In modes ''ObjFPC'' and ''MacPas'' it was possible to declare a unique type of a type ''helper''.<br />
* '''New behaviour''': The compiler now interprets the keyword ''helper'' as a helper type if it immediately follows the ''type'' keyword (but only if the mode is ''ObjFPC'' or ''MacPas'' or the mode switch ''Class'' is set).<br />
* '''Example''':<br />
<syntaxhighlight><br />
{$mode objfpc}<br />
type<br />
helper = LongInt;<br />
<br />
otherhelper = type helper;<br />
</syntaxhighlight><br />
The above code will no longer compile.<br />
* '''Reason''': ''type helper'' is a more logical way to declare helpers for primitive types than Delphi's ''record helper'' is.<br />
* '''Remedy''': Escape the keyword ''helper'' using a ''&''. E.g.:<br />
<syntaxhighlight><br />
{$mode objfpc}<br />
type<br />
helper = LongInt;<br />
<br />
otherhelper = type &helper;<br />
</syntaxhighlight><br />
<br />
==== "''strict protected''" and "''protected''" visibility modifier in extended records ====<br />
* '''Old behaviour''': ''strict protected'' and ''protected'' could be used used in extended records.<br />
* '''New behaviour''': ''strict protected'' and ''protected'' are no longer allowed in extended records.<br />
* '''Reason''': The only difference between ''(strict) protected'' and ''(strict) private'' is that the former allows you to access members of a parent class or object. As records don't support inheritence it makes no sense to support ''(strict) protected'' in them. This is also Delphi-compatible.<br />
* '''Remedy''': Use ''private'' instead of ''protected'' and ''strict private'' instead of ''strict protected''.<br />
<br />
==== "''static''" directive on non-class methods ====<br />
* '''Old behaviour''': It was possible to use the ''static'' on normal, non-''class'' methods<br />
* '''New behaviour''': The compiler now generates an error if ''static'' is used on normal, non-''class'' methods (except in ''object'' types)<br />
* '''Reason''': It is only correct to leave out the ''Self'' parameter if it is a class method. This is also Delphi compatible.<br />
* '''Remedy''': Prepend the ''class'' keyword to the method.<br />
<br />
==== "''static''" directive on class operators ====<br />
* '''Old behaviour''': It was possible to use the ''static'' on class operators.<br />
* '''New behaviour''': The compiler now generates an error if ''static'' is used on class operators.<br />
* '''Reason''': Class operators are by definition static, thus the ''static'' would be redundant. This is also Delphi compatible.<br />
* '''Remedy''': Remove the ''static'' keyword from class operators.<br />
<br />
====Classes implementing forward-declared interfaces====<br />
* '''Old behaviour''': It was possible to declare classes as implementing a forward-declared interface.<br />
* '''New behaviour''': Classes can no longer implement forward-declared interfaces.<br />
* '''Reason''': This occasionally [http://bugs.freepascal.org/view.php?id=24184 caused crashes], the compiler did not check in such a case whether the class actually implemented the methods of that interface. Recent versions of Delphi also reject such constructs.<br />
* '''Remedy''': If there is a cyclic dependency between a class and an interface, use a forward declaration for the class instead.<br />
<br />
====Using the function name as alias for loading its current result value in MacPas mode====<br />
* '''Old behaviour''': Inside a function the name of the function could be used on the right hand side (RHS) of an expression in order to refer to the current value of the function result.<br />
* '''New behaviour''': Using the name of a function on the RHS of an expression inside that function's body now always results in a recursive function call.<br />
* '''Reason''': The old behaviour existed because under '''some''' circumstances CodeWarrior behaved that way. Under other circumstances [http://bugs.freepascal.org/view.php?id=22344 it however behaves according to the new rule] and there appears to be no definition available of when it does what. Since it is easier to fix a compilation error than to find out where an intended recursive function call is not doing anything, we opted to change the behaviour.<br />
* '''Remedy''': Either use a temporary local variable to hold the function result if you want to reuse it on the RHS of other expressions, or add '''{$modeswitch result}''' and use the '''result''' pseudo-variable as an alias for the function result.<br />
<br />
== Unix platforms ==<br />
<br />
=== cthreads: critical sections and recursive mutex support ===<br />
* '''Old behaviour''': If the ''cthreads'' unit thread manager was used on a platform without recursive mutex support, critical sections were non-reentrant.<br />
* '''New behaviour''': Initialising a critical section under the above circumstances will now result in a run time error.<br />
* '''Reason''': One of the basic properties of (Delphi/Windows-compatible) critical sections is that they are reentrant, and that is how they are generally used in Pascal code.<br />
* '''Remedy''': Use an RTLEvent instead if reentrancy is not required.<br />
<br />
<br />
== Darwin/i386 and iPhoneSim/i386 ==<br />
<br />
=== Location of certain function result types ===<br />
* '''Old behaviour''': Small records and method pointers were always returned according to the official ABI.<br />
* '''New behaviour''': When a calling convention other than ''cdecl'', ''cppdecl'' or ''mwpascal'' is used, the same convention as on other platforms is now used.<br />
* '''Reason''': Better compatibility with assembler code written for other platforms.<br />
* '''Remedy''': Update your assembler code, or better: if possible, convert it to Pascal.<br />
<br />
== All Darwin/Mac OS X/iOS ==<br />
===MacOSAll unit: changed parameter and opaque types===<br />
<br />
* '''Change''': The headers have been updated to the Mac OS X 10.8 SDK, and in this process a number of signatures have been changed/corrected, and several opaque types have been changed from ^SInt32 into pointers to different/incompatible empty records.<br />
* '''Reason''': The reasons for the signature changes are detailed below. The opaque types have been made incompatible so that the compiler can give error messages when trying to use one opaque type instead of another (e.g., in the past the compiler did not complain when passing a ControlRef to a routine that expected a WindowPtr).<br />
* '''Remedy''': Adjust your code to conform to the new signatures. Regarding the opaque types, that means that these types are no longer assignment-compatible. Some of the more prominent ones that may affect existing, correct, code are HIObject and ControlRef=HIViewRef. This may require adding typecasts to keep code compiling (the same typecasts are required in C)<br />
* '''Changes:''' (apart from the opaque type changes)<br />
** CGGLContextCreate : fixed first parameter (was "var", now is value parameter)<br />
** CFHostGetAddressing: var hasBeenResolved: boolean -> booleanptr because can be nil<br />
** CFHostGetNames: var hasBeenResolved: boolean -> booleanptr because can be nil<br />
** ColorSyncIterateInstalledProfiles: var seed: UInt32 -> UInt32Ptr because can be nil<br />
** AudioStreamGetPropertyInfo: outSize and outWritable changed to pointer because can be nil<br />
** cblas (several var-parametes changed to pointers because they represent arrays):<br />
*** cblas_sswap, cblas_dswap: X, Y<br />
*** cblas_scopy, cblas_dcopy: Y<br />
*** cblas_saxpy, cblas_daxpy: Y<br />
*** catlas_saxpby, catlas_daxpby: Y<br />
*** catlas_sset, catlas_dset: X<br />
*** cblas_sscal, cblas_dscal: X<br />
*** cblas_sgemv, cblas_dgemv: X<br />
*** cblas_strmv, cblas_dtrmv: X<br />
*** cblas_stbmv, cblas_dtbmv: X<br />
*** cblas_stpmv, cblas_dtpmv: Ap, X<br />
*** cblas_strsv, cblas_dtrsv: X<br />
*** cblas_stbsv, cblas_dtbsv: X<br />
*** cblas_stpsv, cblas_dtpsv: Ap, X<br />
*** cblas_ssymv, cblas_dsymv: X<br />
*** cblas_ssbmv, cblas_dsbmv: Y<br />
*** cblas_sspmv, cblas_dspmv: Ap, Y<br />
*** cblas_sger, cblas_dger: A<br />
*** cblas_ssyr, cblas_dsyr: A<br />
*** cblas_sspr, cblas_dspr: Ap<br />
*** cblas_ssyr2, cblas_dsyr2: A<br />
*** cblas_sspr2, cblas_dspr2: A<br />
*** cblas_sgemm, cblas_sgemm: C<br />
*** cblas_ssymm, cblas_Dsymm: C<br />
*** cblas_ssyrk, cblas_dsyrk: C<br />
*** cblas_ssyr2k, cblas_dsyr2k: C<br />
*** cblas_strmm, cblas_dtrmm: B<br />
*** cblas_strsm, cblas_strsm: B<br />
** vBLAS (idem)<br />
*** SDOT: X, Y<br />
*** SNRM2: X<br />
*** SASUM: X<br />
*** ISAMAX: X<br />
*** SSWAP: X, Y<br />
*** SCOPY: X, Y<br />
*** SAXPY: X, Y<br />
*** SROT: X, Y<br />
*** SSCAL: X<br />
*** SGEMV, A, X, Y<br />
*** SGEMM: A, B, C<br />
** vDSP (idem)<br />
*** vDSP_sve_svesq, vDSP_sve_svesqD: __vDSP_A<br />
*** vDSP_normalize, vDSP_normalizeD: __vDSP_A, __vDSP_C<br />
<br />
== Windows/x86_64 ==<br />
<br />
=== Exception handling has been changed to be ABI-conformant ===<br />
<br />
* '''Old behaviour''': Exceptions were handled using platform-independent mechanism based on SetJmp/LongJmp.<br />
* '''New behaviour''': Exceptions are handled using OS-provided means. The most important differences from generic handling are as follows:<br />
** Every executable contains a <tt>.pdata</tt> section describing layout of function stack frames. This data is used to perform stack back-tracing. As a consequence, the backtraces generated when exception occurs are no longer dependent of code optimization settings. However, they may be different from ones produced by gdb.<br />
** GNU binutils have troubles creating executables with <tt>.pdata</tt> sections. In particular, ld version < 2.22 crashes at such executables, and using GNU as together with internal linker will strip all <tt>.pdata</tt>, resulting in a non-working executable.<br />
** An exception is handled in two phases. First phase determines the target frame (i.e. the 'except' statement that will handle the exception), the second phase does actual stack unwinding and executing code in 'finally' statements. In contrast, the generic mechanism is single-phase: it starts unwinding immediately and proceeds until an 'except' statement handles the exception or the stack runs out.<br />
* '''Reason''': Multiple compatibility issues with Windows and third-party DLLs (see http://bugs.freepascal.org/view.php?id=12974 and related issues)<br />
* '''Remedy''': No changes are necessary unless your code relies on specific exception handling details. Build programs using FPC's internal assembler and linker, do not use GNU binutils. The entire feature can be disabled by cycling the compiler with <tt>OPT=-dDISABLE_WIN64_SEH</tt> in command line.<br />
<br />
== WinCE ==<br />
<br />
=== Define ''UNICODE'' was changed to ''FPC_OS_UNICODE'' ===<br />
<br />
* '''Old behaviour''': For arm-wince and i386-wince ''UNICODE'' was defined by default.<br />
* '''New behaviour''': For arm-wince and i386-wince ''FPC_OS_UNICODE'' is defined by default.<br />
* '''Reason''': For upcoming support for setting String to UnicodeString the define ''UNICODE'' now is defined if the type String is currently defined as UnicodeString. This is also in so far Delphi compatible that from Delphi 2009 on ''UNICODE'' is defined as well.<br />
* '''Remedy''': Check for ''FPC_OS_UNICODE'' to decide whether the OS only provides a Unicode API (in the sense of Wide- or UnicodeString) and use ''UNICODE'' to decide whether the type String is currently defined as UnicodeString or not.<br />
<br />
== Other == <br />
<br />
=== Stabs support has been disabled for 64 bit targets ===<br />
* '''Old behaviour''': While the default debug information format for 64 bit targets was DWARF (except for AIX, where it's Stabx), it was possible to switch it to Stabs via the -gs command line parameter.<br />
* '''New behaviour''': Only the DWARF debug format is still supported on 64 bit targets (except for AIX, where Stabx is used).<br />
* '''Reason''': Stabs is not well-defined for 64 bit targets, nor well-supported by gdb on those same targets. This can lead to [http://bugs.freepascal.org/view.php?id=23365 problems]<br />
* '''Remedy''': Do not use -gs when compiling for 64 bit targets. If you do so anyway, the compiler will display a warning and keep the previously set (supported) debug format.<br />
<br />
== See also ==<br />
* [[FPC New Features Trunk]]<br />
[[Category:FPC User Changes by release]]</div>
Paul Ishenin
https://wiki.freepascal.org/index.php?title=User_Changes_Trunk&diff=69803
User Changes Trunk
2013-05-10T12:42:55Z
<p>Paul Ishenin: /* Use example */</p>
<hr />
<div>== About this page==<br />
<br />
Below you can find a list of intentional changes since the [[User_Changes_2.6.2|previous release]] that can change the behaviour of previously working code, along with why these changes were performed and how you can adapt your code if you are affected by them. The list of new features can be found [[FPC_New_Features_Trunk|here]].<br />
<br />
== All systems ==<br />
<br />
=== Implementation changes ===<br />
<br />
==== Exception type for object reference checking changed ====<br />
* '''Old behaviour''': When object reference checking (''-CR'' or ''{$OBJECTCHECKS ON}'') is enabled and the unit ''SysUtils'' is used then an exception of class ''Exception'' with localizeable message ''Unknown runtime error 210'' is created.<br />
* '''New behaviour''': Now an exception of class ''EObjectCheck'' with localizeable message ''Object reference is Nil'' is created.<br />
* '''Reason''': All other runtime errors in the 2xx range have approbiate exception types, so it is only natural to have an explicit type for runtime error 210 as well.<br />
* '''Remedy''': If you checked an exception for the message ''Unknown runtime error 210'' you should now check for the exception class ''EObjectCheck''.<br />
<br />
==== Literal storage memory has been made read-only ====<br />
<br />
* '''Old behaviour''': read-only data segments were de-facto not supported, all data could be modified at runtime even if it was not intended for modification (except in some cases on Darwin). This could cause nasty side-effects, e.g the following code:<br />
<br />
<syntaxhighlight><br />
uses sysutils;<br />
var<br />
s: ansistring;<br />
begin<br />
s := 'ansi string';<br />
Writeln(AnsiStrUpper(pchar(s)));<br />
s := 'ansi string';<br />
Writeln(s);<br />
end.<br />
</syntaxhighlight><br />
<br />
would modify the content of data segment and print<br />
<br />
ANSI STRING<br />
ANSI STRING<br />
<br />
* '''New behaviour''': Data that is not intended to be modified at runtime is put into read-only segment. This includes literal constants used in expressions and typed constants declared in {$J-} state. The code which modifies such data, like the example above, will now crash.<br />
* '''Reason''': This is consistent with the way other compilers, including Delphi, work. Keeping as much as possible data read-only improves loading speed of programs because read-only pages can be mapped directly on executable file, and also improves security of programs.<br />
* '''Remedy''': Depends on the code. In the example above, it is sufficient to call <tt>UniqueString(s)</tt> before <tt>AnsiStrUpper</tt><br />
<br />
==== ''UNICODE'' is defined depending on the mode switch ====<br />
* '''Old behaviour''': When the modeswitch was changed the definition of ''UNICODE'' was not changed.<br />
* '''New behaviour''': If the modeswitch is changed to ''delphiunicode'' the ''UNICODE'' will be defined otherwise it will be undefined.<br />
* '''Reason''': In Delphi 2009 and newer the type String is defined as UnicodeString and ''UNICODE'' is defined there by default as well. For improved Delphi compatibility ''UNICODE'' will be automatically defined if the String type is set to be equal to UnicodeString.<br />
* '''Remedy''': Don't rely on checks for ''UNICODE'' before the mode switches. Also compile time checks for ''UNICODE'' that appear after a modeswitch like ''objfpc'' or ''delphi'' will no longer be evaluated to true.<br />
<br />
=== RTTI changes ===<br />
<br />
==== RTTI for Pointers and Class References ====<br />
* '''Old behavior''': Pointers and Class References had tkUnknown RTTI.<br />
* '''New behavior''': Pointers now have tkPointer and Class References tkClassRef RTTI types. They now contain a reference to a type they point to.<br />
* '''Reason''': Both user requests and Delphi compatibility.<br />
* '''Remedy''': TTypeKind enumeration has more members than before. Adjust your code which depends on TTypeKind.<br />
<br />
==== RTTI for AnsiStrings ====<br />
* '''Old behavior''': AnsiString RTTI did not have CodePage information.<br />
* '''New behavior''': New CodePage member is added for tkAString type.<br />
* '''Reason''': Requires for serializing/deserializing of AnsiString published properties. Delphi compatibility.<br />
* '''Remedy''': not known<br />
<br />
==== RTTI for Arrays ====<br />
* '''Old behavior''': tkArray had no member in TTypeData record but internally compiler stored the next members: first dimension size, first dimension element count and first dimension element type. So for 2 dimension array element type was array for the second dimension.<br />
* '''New behavior''': tkArray now has TArrayTypeData structure in TTypeData. It has the next members: total array size including all dimensions, total element count, last dimension element type, number of dimensions, type information for each dimension range.<br />
* '''Reason''': more informative RTTI. Delphi compatibility.<br />
* '''Remedy''': If your code internally used old RTTI array information you will need to adopt it.<br />
<br />
==== RTTI for Records ====<br />
* '''Old behavior''': Records RTTI stored field Offsets as 32bit integers.<br />
* '''New behavior''': Records RTTI stores field Offsets as platform dependent integers (the same size as pointers).<br />
* '''Reason''': Internally compiler stored Offsets as platform dependent integers. Delphi compatibility.<br />
* '''Remedy''': You need to adjust your code if you used field offsets of record RTTI. This is also true if you manually processed vInitTable field of class VMT.<br />
<br />
==== RTTI for Procedural Variables ====<br />
* '''Old behavior''': tkProcVar had no member in TTypeData record and compiler stored no info the this type.<br />
* '''New behavior''': tkProcVar now has TProcedureSignature structure in TTypeData which contains information about calling convention, result type and parameters information.<br />
* '''Reason''': User request. More informative RTTI. Delphi compatibility.<br />
* '''Remedy''': not known<br />
<br />
==== Use example ====<br />
<syntaxhighlight><br />
program RTTIInfo;<br />
<br />
{$mode objfpc}{$H+}<br />
uses<br />
typinfo;<br />
<br />
type<br />
CP866String = type AnsiString(866);<br />
TProc = procedure(var A: Integer; S: String); stdcall;<br />
TColor = (red, green, blue);<br />
TArr = array[TColor,0..3] of Integer;<br />
PArr = ^TArr;<br />
<br />
procedure DescribeProcedure(Info: PTypeInfo);<br />
const<br />
ParamFlagToStr: array[TParamFlag] of AnsiString = (<br />
'var',<br />
'const',<br />
'array',<br />
'address',<br />
'reference',<br />
'out'<br />
);<br />
CallConvToStr: array[TCallConv] of AnsiString = (<br />
'register',<br />
'cdecl',<br />
'pascal',<br />
'stdcall',<br />
'safecall',<br />
'cppdecl',<br />
'far16',<br />
'oldFPCcall',<br />
'internProc',<br />
'SysCall',<br />
'SoftFloat',<br />
'MWPascal'<br />
);<br />
var<br />
Data: PTypeData;<br />
Param: PProcedureParam;<br />
ParamFlag: TParamFlag;<br />
I: Integer;<br />
Res, S, TypeName: String;<br />
begin<br />
if Info^.Kind <> tkProcedure then<br />
Exit;<br />
Data := GetTypeData(Info);<br />
if Data^.ProcSig.CC <> ccStdCall then<br />
halt(2);<br />
if Data^.ProcSig.ResultType <> nil then<br />
begin<br />
Res := 'function ' + Info^.Name;<br />
TypeName := ': ' + Data^.ProcSig.ResultType^.Name;<br />
end<br />
else<br />
begin<br />
Res := 'procedure ' + Info^.Name;<br />
TypeName := '';<br />
end;<br />
if Data^.ProcSig.ParamCount > 0 then<br />
begin<br />
Res := Res + '(';<br />
for I := 0 to Data^.ProcSig.ParamCount - 1 do<br />
begin<br />
Param := Data^.ProcSig.GetParam(I);<br />
S := '';<br />
for ParamFlag in TParamFlags(Param^.Flags) do<br />
S := S + ParamFlagToStr[ParamFlag] + ' ';<br />
S := S + Param^.Name + ': ' + Param^.ParamType^.Name;<br />
if I > 0 then<br />
Res := Res + '; ';<br />
Res := Res + S;<br />
end;<br />
Res := Res + ')';<br />
end;<br />
Res := Res + TypeName + '; ' + CallConvToStr[Data^.ProcSig.CC] + ';';<br />
WriteLn(Res);<br />
end;<br />
<br />
procedure DescribeAnsiString(Info: PTypeInfo);<br />
var<br />
Data: PTypeData;<br />
begin<br />
if Info^.Kind <> tkAString then<br />
Exit;<br />
Data := GetTypeData(Info);<br />
if Data^.CodePage = 0 then<br />
WriteLn('AnsiString')<br />
else<br />
WriteLn('type AnsiString(',Data^.CodePage,');');<br />
end;<br />
<br />
procedure DescribeArray(Info: PTypeInfo);<br />
var<br />
Data: PTypeData;<br />
Res: String;<br />
I: Integer;<br />
begin<br />
if Info^.Kind <> tkArray then<br />
Exit;<br />
Data := GetTypeData(Info);<br />
Res := 'array[';<br />
for I := 0 to Data^.ArrayData.DimCount - 1 do<br />
begin<br />
if I > 0 then<br />
Res := Res + ', ';<br />
Res := Res + Data^.ArrayData.Dims[I]^.Name;<br />
end;<br />
Res := Res + '] of ' + Data^.ArrayData.ElType^.Name + ';';<br />
WriteLn(Res);<br />
end;<br />
<br />
procedure DescribePointer(Info: PTypeInfo);<br />
var<br />
Data: PTypeData;<br />
begin<br />
if Info^.Kind <> tkPointer then<br />
Exit;<br />
Data := GetTypeData(Info);<br />
if Data^.RefType = nil then<br />
WriteLn('Pointer;')<br />
else<br />
WriteLn('^', Data^.RefType^.Name, ';');<br />
end;<br />
<br />
begin<br />
DescribeProcedure(TypeInfo(TProc));<br />
DescribeAnsiString(TypeInfo(CP866String));<br />
DescribeArray(TypeInfo(TArr));<br />
DescribePointer(TypeInfo(PArr));<br />
DescribePointer(TypeInfo(Pointer));<br />
end.<br />
</syntaxhighlight><br />
<br />
=== Unit changes ===<br />
<br />
==== TBookmark TBookmarkstr and TDataset.Bookmark change to Delphi2009+ compatible definitions ====<br />
* '''Old behaviour''': TDataset.Bookmark was of type TBookmarkstr, TBookmarkstr=string, Tbookmark=pointer<br />
* '''New behaviour''': TDataset.Bookmark is of type TBookmark, TBookmarkstr=ansistring, TBookmark=TBytes. TBookmarkstr will trigger a deprecated warning.<br />
* '''Reason''': D2009+ compatibility, where probably the fact that string became a 2-byte encoding was the trigger.<br />
* '''Remedy''': Adjust typing in descendents and using code accordingly.<br />
<br />
==== FileNameCaseSensitive and FileNameCasePreserving in unit System ====<br />
* '''Old behaviour''': There was only one constant (FileNameCaseSensitive) which signalized behaviour of the respective target platform with regard to the case in filenames. This was often set to true also on platforms not really treating filenames in case sensitive manner (e.g. Win32 and Win64).<br />
* '''New behaviour''': FileNameCaseSensitive is set to true only on platforms which really treat filenames in case sensitive manner and FileNameCasePreserving constant is added to unit system of all platforms to signalize whether the case in filenames supplied when creating or renaming them is preserved or not. This might possibly break existing user code relying on the previous (sometimes incorrect) value of FileNameCaseSensitive.<br />
* '''Reason''': In reality, there are two distinct types of behaviour. If a platform is case sensitive, searching for file "a" will never result in finding file "A" whereas case insensitive platform will happily return "A" if such a file is found on the disk. If a platform is case preserving, it will store file "a" as "a" on disk whereas case non-preserving platform may convert the filenames to uppercase before storing them on disk (i.e. file "a" is in reality stored as "A"). Case non-preserving platforms are never case sensitive, but case preserving platforms may or may not be case sensitive at the same time.<br />
* '''Remedy''': Review your existing code using FileNameCaseSensitive, check which of the two properties described above fit the particular purpose in your case and change to FileNameCasePreserving where appropriate.<br />
<br />
==== Some longtime deprecated functions in unit Unix have been removed. ====<br />
* '''Old behaviour''': Unix.(f)statfs, Unix.shell and Unix.fsync symbols existed in unit Unix <br />
* '''New behaviour''': Unix.(f)statfs, Unix.shell and Unix.fsync were removed<br />
* '''Reason''': These were helper functions and leftovers from the 1.0.x->2.0.0 conversion, deprecated since 2007. Shell had non standarized conventions<br />
* '''Remedy''': All but shell: use the same functions with a "fp" prefix. Shell: use fpsystem. If you checked the return value for other values than -1, a modification of the errorchecking might be necessary. Refer to your *nix documention, or have a look at the transformfpsystemtoshell function in tests/util/redir.pp in the FPC sources to see what a quick fix looks like.<br />
<br />
==== statfs has been renamed to fpstatfs ====<br />
* '''Old behaviour''': One overload of fpstatfs was not renamed from statfs to fpstatfs (around 2.4.0)<br />
* '''New behaviour''': The function has been renamed.<br />
* '''Reason''': Should have been done in 2.4.0 to begin with, but was postponed several times to coincide with a major version change. <br />
* '''Remedy''': Use fpstatfs<br />
<br />
==== RTLeventsync has been removed ====<br />
* '''Old behaviour''': The thread manager record contained an ''rtleventsync'' field, and the RTL had an ''RTLeventsync'' routine. No functionality for this routine was implemented in the FPC-supplied thread manager for any platform.<br />
* '''New behaviour''': The field and routine have been removed.<br />
* '''Reason''': The functionality was not available on any platform by default, and we're not aware of any third party thread manager that implemented them or third party code that relied on it. Additionally, the routine was documented as "Obsolete. Don't use.", without any explanation of what it was supposed to do.<br />
* '''Remedy''': Remove any such calls from your code.<br />
<br />
==== TODBCConnection (odbcconn) No longer autocommit ====<br />
* '''Old behaviour''': Autocommit was enabled: Every change was committed to the database at once.<br />
* '''New behaviour''': Changes must be committed explicitly using Transaction.Commit<br />
* '''Reason''': Transactions are useless if everything is autocommitted: in particular; rollback is not possible.<br />
* '''Remedy''': You can enable autocommit by specifying AUTOCOMMIT=1 in the params of TODBCConnection.<br />
<br />
==== FPCanvas Strikethough property spelling fixed to StrikeThrough ====<br />
* '''Old behaviour''': Fonts had a Striketrough property which is a typo.<br />
* '''New behaviour''': The property has been changed to Strikethrough.<br />
* '''Reason''': Spelling fix.<br />
* '''Remedy''': Please rename property calls in your code. FPC 2.6.2 contains both versions so there is a window for adaptation.<br />
<br />
==== TVersionInfo (fileinfo unit) re-implemented in a platform independent way ====<br />
* '''Old behaviour''': GetVersionSetting method would read file information.<br />
* '''New behaviour''': The ReadFileInfo call will read the information. The global GetProgramVersion call will extract the program major/minor/revision/build version in 1 single call.<br />
* '''Reason''': The unit now uses FPC resources on all platforms, and can now be used to read external resources.<br />
* '''Remedy''': Use the ReadFileInfo call to get the version information. Add relevant units for desired resource support to your uses clause; e.g. if you need to read Windows .exe file info, add winpeimagereader<br />
<br />
==== TDBF unit deprecation removed ====<br />
* '''Old behaviour''': the TDBF units were marked deprecated because the original maintainer of the upstream project stopped maintenance. However, the unit remained in fcl-db and patches were still accepted.<br />
* '''New behaviour''': the deprecation warning is removed. There is a new upstream project maintainer and FPC database devs support this unit again. Note: there is a known problem: TDBF will not work on ARM processors due to alignment issues (http://bugs.freepascal.org/view.php?id=22177). This will only be fixed if a patch is provided, and proven to not produce regressions (e.g. by tests in the FPC db test framework)<br />
* '''Remedy''': N/A<br />
<br />
==== shlobj symbols removed from unit Windows ====<br />
* '''Old behaviour''': When unit windows was splitted between unit windows and shlobj, not all shlobj symbols were removed from Windows. Currently these are being deprecated, and will be removed in next major version.<br />
* '''New behaviour''': shlobj symbols won't be in Windows, code relying on that will fail to compile if it doesn't import shlobj<br />
* '''Reason''': shlobj and windows versions were not compatible and lead to errors. <br />
* '''Remedy''': put shlobj in your uses, if not there already.<br />
<br />
=== Language Changes ===<br />
<br />
==== Variant overload preference for string types ====<br />
* '''Old behaviour''': Preference for string types was (from better to worse): ShortString, AnsiString, WideString, UnicodeString<br />
* '''New behaviour''': Preference for string types now (from better to worse): WideString, UnicodeString, AnsiString, ShortString<br />
* '''Reason''': Unicode characters and codepage information will not lose during the conversion and unicode Delphi compatibility.<br />
* '''Remedy''': Use explicit conversion (e.g. ShortString(V)) if it is needed to pass variant to routine with paticular string type argument.<br />
<br />
==== Default values in implementation but not in interface/forward declaration ====<br />
* '''Old behaviour''': The implementation of a routine could declare default values even if the interface declaration did not have any.<br />
* '''New behaviour''': Default values, if any, must be specified in the interface. They can be repeated in the implementation, but that is not required (just like it was not in the past).<br />
* '''Reason''': Default parameters specified only in the implementation are not, and cannot, be propagated to the interface since a unit's interface can be used before the implementation has been parsed (see http://bugs.freepascal.org/view.php?id=19434), Delphi compatibility.<br />
* '''Remedy''': Always specify default parameter values (also) in the interface/forward declaration of a routine.<br />
<br />
==== Default values are now properly typechecked ====<br />
* '''Old behaviour''': The compiler did not detect default values for parameters of which the type did not in any way correspond to the parameter type. <br />
* '''New behaviour''': The compiler now properly checks whether the type of the constant matches the parameter's type when parsing default values.<br />
* '''Reason''': Proper type checking is one of the fundamental properties of the Pascal language; Delphi compatibility.<br />
* '''Remedy''': Add a typecast around default values that now result in compiler errors, or correct the type of such parameters.<br />
<br />
==== Recursive parameterless function calls in MacPas mode ====<br />
* '''Old behaviour''': When using the name of a function inside its own body on the right hand side of an expression, the compiler treated this as a read of the last value assigned to the function result in MacPas mode.<br />
* '''New behaviour''': The compiler will now treat such occurrences of the function name as recursive function calls in MacPas mode.<br />
* '''Reason''': Compatibility with Mac Pascal compilers.<br />
* '''Remedy''': If you wish to read the current function result value, compile the code with ''{$modeswitch result}'', after which you can use the ''result'' alias for that value. Note that the use of this mode switch can also result in [[User_Changes_2.6.0#Implicit_.22result.22_variable_in_MacPas_mode|different behaviour]] compared to traditional Mac Pascal compilers.<br />
<br />
==== "''strict protected''" visibility modifier ====<br />
* '''Old behaviour''': ''strict protected'' did not correctly limit the visibility of symbols declared in different units.<br />
* '''New behaviour''': ''strict protected'' symbols can now only be accessed from descendent classes, regardless of where they are defined.<br />
* '''Reason''': Fix behaviour to conform to specification/documentation, Delphi compatibility.<br />
* '''Remedy''': Use ''protected'' or ''public'' if less strict accessibility checks are desired.<br />
<br />
==== support for type helpers added ====<br />
* '''Old behaviour''': In modes ''ObjFPC'' and ''MacPas'' it was possible to declare a unique type of a type ''helper''.<br />
* '''New behaviour''': The compiler now interprets the keyword ''helper'' as a helper type if it immediately follows the ''type'' keyword (but only if the mode is ''ObjFPC'' or ''MacPas'' or the mode switch ''Class'' is set).<br />
* '''Example''':<br />
<syntaxhighlight><br />
{$mode objfpc}<br />
type<br />
helper = LongInt;<br />
<br />
otherhelper = type helper;<br />
</syntaxhighlight><br />
The above code will no longer compile.<br />
* '''Reason''': ''type helper'' is a more logical way to declare helpers for primitive types than Delphi's ''record helper'' is.<br />
* '''Remedy''': Escape the keyword ''helper'' using a ''&''. E.g.:<br />
<syntaxhighlight><br />
{$mode objfpc}<br />
type<br />
helper = LongInt;<br />
<br />
otherhelper = type &helper;<br />
</syntaxhighlight><br />
<br />
==== "''strict protected''" and "''protected''" visibility modifier in extended records ====<br />
* '''Old behaviour''': ''strict protected'' and ''protected'' could be used used in extended records.<br />
* '''New behaviour''': ''strict protected'' and ''protected'' are no longer allowed in extended records.<br />
* '''Reason''': The only difference between ''(strict) protected'' and ''(strict) private'' is that the former allows you to access members of a parent class or object. As records don't support inheritence it makes no sense to support ''(strict) protected'' in them. This is also Delphi-compatible.<br />
* '''Remedy''': Use ''private'' instead of ''protected'' and ''strict private'' instead of ''strict protected''.<br />
<br />
==== "''static''" directive on non-class methods ====<br />
* '''Old behaviour''': It was possible to use the ''static'' on normal, non-''class'' methods<br />
* '''New behaviour''': The compiler now generates an error if ''static'' is used on normal, non-''class'' methods (except in ''object'' types)<br />
* '''Reason''': It is only correct to leave out the ''Self'' parameter if it is a class method. This is also Delphi compatible.<br />
* '''Remedy''': Prepend the ''class'' keyword to the method.<br />
<br />
==== "''static''" directive on class operators ====<br />
* '''Old behaviour''': It was possible to use the ''static'' on class operators.<br />
* '''New behaviour''': The compiler now generates an error if ''static'' is used on class operators.<br />
* '''Reason''': Class operators are by definition static, thus the ''static'' would be redundant. This is also Delphi compatible.<br />
* '''Remedy''': Remove the ''static'' keyword from class operators.<br />
<br />
====Classes implementing forward-declared interfaces====<br />
* '''Old behaviour''': It was possible to declare classes as implementing a forward-declared interface.<br />
* '''New behaviour''': Classes can no longer implement forward-declared interfaces.<br />
* '''Reason''': This occasionally [http://bugs.freepascal.org/view.php?id=24184 caused crashes], the compiler did not check in such a case whether the class actually implemented the methods of that interface. Recent versions of Delphi also reject such constructs.<br />
* '''Remedy''': If there is a cyclic dependency between a class and an interface, use a forward declaration for the class instead.<br />
<br />
====Using the function name as alias for loading its current result value in MacPas mode====<br />
* '''Old behaviour''': Inside a function the name of the function could be used on the right hand side (RHS) of an expression in order to refer to the current value of the function result.<br />
* '''New behaviour''': Using the name of a function on the RHS of an expression inside that function's body now always results in a recursive function call.<br />
* '''Reason''': The old behaviour existed because under '''some''' circumstances CodeWarrior behaved that way. Under other circumstances [http://bugs.freepascal.org/view.php?id=22344 it however behaves according to the new rule] and there appears to be no definition available of when it does what. Since it is easier to fix a compilation error than to find out where an intended recursive function call is not doing anything, we opted to change the behaviour.<br />
* '''Remedy''': Either use a temporary local variable to hold the function result if you want to reuse it on the RHS of other expressions, or add '''{$modeswitch result}''' and use the '''result''' pseudo-variable as an alias for the function result.<br />
<br />
== Unix platforms ==<br />
<br />
=== cthreads: critical sections and recursive mutex support ===<br />
* '''Old behaviour''': If the ''cthreads'' unit thread manager was used on a platform without recursive mutex support, critical sections were non-reentrant.<br />
* '''New behaviour''': Initialising a critical section under the above circumstances will now result in a run time error.<br />
* '''Reason''': One of the basic properties of (Delphi/Windows-compatible) critical sections is that they are reentrant, and that is how they are generally used in Pascal code.<br />
* '''Remedy''': Use an RTLEvent instead if reentrancy is not required.<br />
<br />
<br />
== Darwin/i386 and iPhoneSim/i386 ==<br />
<br />
=== Location of certain function result types ===<br />
* '''Old behaviour''': Small records and method pointers were always returned according to the official ABI.<br />
* '''New behaviour''': When a calling convention other than ''cdecl'', ''cppdecl'' or ''mwpascal'' is used, the same convention as on other platforms is now used.<br />
* '''Reason''': Better compatibility with assembler code written for other platforms.<br />
* '''Remedy''': Update your assembler code, or better: if possible, convert it to Pascal.<br />
<br />
== All Darwin/Mac OS X/iOS ==<br />
===MacOSAll unit: changed parameter and opaque types===<br />
<br />
* '''Change''': The headers have been updated to the Mac OS X 10.8 SDK, and in this process a number of signatures have been changed/corrected, and several opaque types have been changed from ^SInt32 into pointers to different/incompatible empty records.<br />
* '''Reason''': The reasons for the signature changes are detailed below. The opaque types have been made incompatible so that the compiler can give error messages when trying to use one opaque type instead of another (e.g., in the past the compiler did not complain when passing a ControlRef to a routine that expected a WindowPtr).<br />
* '''Remedy''': Adjust your code to conform to the new signatures. Regarding the opaque types, that means that these types are no longer assignment-compatible. Some of the more prominent ones that may affect existing, correct, code are HIObject and ControlRef=HIViewRef. This may require adding typecasts to keep code compiling (the same typecasts are required in C)<br />
* '''Changes:''' (apart from the opaque type changes)<br />
** CGGLContextCreate : fixed first parameter (was "var", now is value parameter)<br />
** CFHostGetAddressing: var hasBeenResolved: boolean -> booleanptr because can be nil<br />
** CFHostGetNames: var hasBeenResolved: boolean -> booleanptr because can be nil<br />
** ColorSyncIterateInstalledProfiles: var seed: UInt32 -> UInt32Ptr because can be nil<br />
** AudioStreamGetPropertyInfo: outSize and outWritable changed to pointer because can be nil<br />
** cblas (several var-parametes changed to pointers because they represent arrays):<br />
*** cblas_sswap, cblas_dswap: X, Y<br />
*** cblas_scopy, cblas_dcopy: Y<br />
*** cblas_saxpy, cblas_daxpy: Y<br />
*** catlas_saxpby, catlas_daxpby: Y<br />
*** catlas_sset, catlas_dset: X<br />
*** cblas_sscal, cblas_dscal: X<br />
*** cblas_sgemv, cblas_dgemv: X<br />
*** cblas_strmv, cblas_dtrmv: X<br />
*** cblas_stbmv, cblas_dtbmv: X<br />
*** cblas_stpmv, cblas_dtpmv: Ap, X<br />
*** cblas_strsv, cblas_dtrsv: X<br />
*** cblas_stbsv, cblas_dtbsv: X<br />
*** cblas_stpsv, cblas_dtpsv: Ap, X<br />
*** cblas_ssymv, cblas_dsymv: X<br />
*** cblas_ssbmv, cblas_dsbmv: Y<br />
*** cblas_sspmv, cblas_dspmv: Ap, Y<br />
*** cblas_sger, cblas_dger: A<br />
*** cblas_ssyr, cblas_dsyr: A<br />
*** cblas_sspr, cblas_dspr: Ap<br />
*** cblas_ssyr2, cblas_dsyr2: A<br />
*** cblas_sspr2, cblas_dspr2: A<br />
*** cblas_sgemm, cblas_sgemm: C<br />
*** cblas_ssymm, cblas_Dsymm: C<br />
*** cblas_ssyrk, cblas_dsyrk: C<br />
*** cblas_ssyr2k, cblas_dsyr2k: C<br />
*** cblas_strmm, cblas_dtrmm: B<br />
*** cblas_strsm, cblas_strsm: B<br />
** vBLAS (idem)<br />
*** SDOT: X, Y<br />
*** SNRM2: X<br />
*** SASUM: X<br />
*** ISAMAX: X<br />
*** SSWAP: X, Y<br />
*** SCOPY: X, Y<br />
*** SAXPY: X, Y<br />
*** SROT: X, Y<br />
*** SSCAL: X<br />
*** SGEMV, A, X, Y<br />
*** SGEMM: A, B, C<br />
** vDSP (idem)<br />
*** vDSP_sve_svesq, vDSP_sve_svesqD: __vDSP_A<br />
*** vDSP_normalize, vDSP_normalizeD: __vDSP_A, __vDSP_C<br />
<br />
== Windows/x86_64 ==<br />
<br />
=== Exception handling has been changed to be ABI-conformant ===<br />
<br />
* '''Old behaviour''': Exceptions were handled using platform-independent mechanism based on SetJmp/LongJmp.<br />
* '''New behaviour''': Exceptions are handled using OS-provided means. The most important differences from generic handling are as follows:<br />
** Every executable contains a <tt>.pdata</tt> section describing layout of function stack frames. This data is used to perform stack back-tracing. As a consequence, the backtraces generated when exception occurs are no longer dependent of code optimization settings. However, they may be different from ones produced by gdb.<br />
** GNU binutils have troubles creating executables with <tt>.pdata</tt> sections. In particular, ld version < 2.22 crashes at such executables, and using GNU as together with internal linker will strip all <tt>.pdata</tt>, resulting in a non-working executable.<br />
** An exception is handled in two phases. First phase determines the target frame (i.e. the 'except' statement that will handle the exception), the second phase does actual stack unwinding and executing code in 'finally' statements. In contrast, the generic mechanism is single-phase: it starts unwinding immediately and proceeds until an 'except' statement handles the exception or the stack runs out.<br />
* '''Reason''': Multiple compatibility issues with Windows and third-party DLLs (see http://bugs.freepascal.org/view.php?id=12974 and related issues)<br />
* '''Remedy''': No changes are necessary unless your code relies on specific exception handling details. Build programs using FPC's internal assembler and linker, do not use GNU binutils. The entire feature can be disabled by cycling the compiler with <tt>OPT=-dDISABLE_WIN64_SEH</tt> in command line.<br />
<br />
== WinCE ==<br />
<br />
=== Define ''UNICODE'' was changed to ''FPC_OS_UNICODE'' ===<br />
<br />
* '''Old behaviour''': For arm-wince and i386-wince ''UNICODE'' was defined by default.<br />
* '''New behaviour''': For arm-wince and i386-wince ''FPC_OS_UNICODE'' is defined by default.<br />
* '''Reason''': For upcoming support for setting String to UnicodeString the define ''UNICODE'' now is defined if the type String is currently defined as UnicodeString. This is also in so far Delphi compatible that from Delphi 2009 on ''UNICODE'' is defined as well.<br />
* '''Remedy''': Check for ''FPC_OS_UNICODE'' to decide whether the OS only provides a Unicode API (in the sense of Wide- or UnicodeString) and use ''UNICODE'' to decide whether the type String is currently defined as UnicodeString or not.<br />
<br />
== Other == <br />
<br />
=== Stabs support has been disabled for 64 bit targets ===<br />
* '''Old behaviour''': While the default debug information format for 64 bit targets was DWARF (except for AIX, where it's Stabx), it was possible to switch it to Stabs via the -gs command line parameter.<br />
* '''New behaviour''': Only the DWARF debug format is still supported on 64 bit targets (except for AIX, where Stabx is used).<br />
* '''Reason''': Stabs is not well-defined for 64 bit targets, nor well-supported by gdb on those same targets. This can lead to [http://bugs.freepascal.org/view.php?id=23365 problems]<br />
* '''Remedy''': Do not use -gs when compiling for 64 bit targets. If you do so anyway, the compiler will display a warning and keep the previously set (supported) debug format.<br />
<br />
== See also ==<br />
* [[FPC New Features Trunk]]<br />
[[Category:FPC User Changes by release]]</div>
Paul Ishenin
https://wiki.freepascal.org/index.php?title=User_Changes_Trunk&diff=69782
User Changes Trunk
2013-05-08T13:36:16Z
<p>Paul Ishenin: /* Use example */</p>
<hr />
<div>== About this page==<br />
<br />
Below you can find a list of intentional changes since the [[User_Changes_2.6.2|previous release]] that can change the behaviour of previously working code, along with why these changes were performed and how you can adapt your code if you are affected by them. The list of new features can be found [[FPC_New_Features_Trunk|here]].<br />
<br />
== All systems ==<br />
<br />
=== Implementation changes ===<br />
<br />
==== Exception type for object reference checking changed ====<br />
* '''Old behaviour''': When object reference checking (''-CR'' or ''{$OBJECTCHECKS ON}'') is enabled and the unit ''SysUtils'' is used then an exception of class ''Exception'' with localizeable message ''Unknown runtime error 210'' is created.<br />
* '''New behaviour''': Now an exception of class ''EObjectCheck'' with localizeable message ''Object reference is Nil'' is created.<br />
* '''Reason''': All other runtime errors in the 2xx range have approbiate exception types, so it is only natural to have an explicit type for runtime error 210 as well.<br />
* '''Remedy''': If you checked an exception for the message ''Unknown runtime error 210'' you should now check for the exception class ''EObjectCheck''.<br />
<br />
==== Literal storage memory has been made read-only ====<br />
<br />
* '''Old behaviour''': read-only data segments were de-facto not supported, all data could be modified at runtime even if it was not intended for modification (except in some cases on Darwin). This could cause nasty side-effects, e.g the following code:<br />
<br />
<syntaxhighlight><br />
uses sysutils;<br />
var<br />
s: ansistring;<br />
begin<br />
s := 'ansi string';<br />
Writeln(AnsiStrUpper(pchar(s)));<br />
s := 'ansi string';<br />
Writeln(s);<br />
end.<br />
</syntaxhighlight><br />
<br />
would modify the content of data segment and print<br />
<br />
ANSI STRING<br />
ANSI STRING<br />
<br />
* '''New behaviour''': Data that is not intended to be modified at runtime is put into read-only segment. This includes literal constants used in expressions and typed constants declared in {$J-} state. The code which modifies such data, like the example above, will now crash.<br />
* '''Reason''': This is consistent with the way other compilers, including Delphi, work. Keeping as much as possible data read-only improves loading speed of programs because read-only pages can be mapped directly on executable file, and also improves security of programs.<br />
* '''Remedy''': Depends on the code. In the example above, it is sufficient to call <tt>UniqueString(s)</tt> before <tt>AnsiStrUpper</tt><br />
<br />
==== ''UNICODE'' is defined depending on the mode switch ====<br />
* '''Old behaviour''': When the modeswitch was changed the definition of ''UNICODE'' was not changed.<br />
* '''New behaviour''': If the modeswitch is changed to ''delphiunicode'' the ''UNICODE'' will be defined otherwise it will be undefined.<br />
* '''Reason''': In Delphi 2009 and newer the type String is defined as UnicodeString and ''UNICODE'' is defined there by default as well. For improved Delphi compatibility ''UNICODE'' will be automatically defined if the String type is set to be equal to UnicodeString.<br />
* '''Remedy''': Don't rely on checks for ''UNICODE'' before the mode switches. Also compile time checks for ''UNICODE'' that appear after a modeswitch like ''objfpc'' or ''delphi'' will no longer be evaluated to true.<br />
<br />
=== RTTI changes ===<br />
<br />
==== RTTI for Pointers and Class References ====<br />
* '''Old behavior''': Pointers and Class References had tkUnknown RTTI.<br />
* '''New behavior''': Pointers now have tkPointer and Class References tkClassRef RTTI types. They now contain a reference to a type they point to.<br />
* '''Reason''': Both user requests and Delphi compatibility.<br />
* '''Remedy''': TTypeKind enumeration has more members than before. Adjust your code which depends on TTypeKind.<br />
<br />
==== RTTI for AnsiStrings ====<br />
* '''Old behavior''': AnsiString RTTI did not have CodePage information.<br />
* '''New behavior''': New CodePage member is added for tkAString type.<br />
* '''Reason''': Requires for serializing/deserializing of AnsiString published properties. Delphi compatibility.<br />
* '''Remedy''': not known<br />
<br />
==== RTTI for Arrays ====<br />
* '''Old behavior''': tkArray had no member in TTypeData record but internally compiler stored the next members: first dimension size, first dimension element count and first dimension element type. So for 2 dimension array element type was array for the second dimension.<br />
* '''New behavior''': tkArray now has TArrayTypeData structure in TTypeData. It has the next members: total array size including all dimensions, total element count, last dimension element type, number of dimensions, type information for each dimension range.<br />
* '''Reason''': more informative RTTI. Delphi compatibility.<br />
* '''Remedy''': If your code internally used old RTTI array information you will need to adopt it.<br />
<br />
==== RTTI for Records ====<br />
* '''Old behavior''': Records RTTI stored field Offsets as 32bit integers.<br />
* '''New behavior''': Records RTTI stores field Offsets as platform dependent integers (the same size as pointers).<br />
* '''Reason''': Internally compiler stored Offsets as platform dependent integers. Delphi compatibility.<br />
* '''Remedy''': You need to adjust your code if you used field offsets of record RTTI. This is also true if you manually processed vInitTable field of class VMT.<br />
<br />
==== RTTI for Procedural Variables ====<br />
* '''Old behavior''': tkProcVar had no member in TTypeData record and compiler stored no info the this type.<br />
* '''New behavior''': tkProcVar now has TProcedureSignature structure in TTypeData which contains information about calling convention, result type and parameters information.<br />
* '''Reason''': User request. More informative RTTI. Delphi compatibility.<br />
* '''Remedy''': not known<br />
<br />
==== Use example ====<br />
<syntaxhighlight><br />
program RTTIInfo;<br />
<br />
{$mode objfpc}{$H+}<br />
uses<br />
typinfo;<br />
<br />
type<br />
CP866String = type AnsiString(866);<br />
TProc = procedure(var A: Integer; S: String); stdcall;<br />
TColor = (red, green, blue);<br />
TArr = array[TColor,0..3] of Integer;<br />
PArr = ^TArr;<br />
<br />
procedure DescribeProcedure(Info: PTypeInfo);<br />
const<br />
ParamFlagToStr: array[TParamFlag] of AnsiString = (<br />
'var',<br />
'const',<br />
'array',<br />
'address',<br />
'reference',<br />
'out'<br />
);<br />
CallConvToStr: array[TCallConv] of AnsiString = (<br />
'register',<br />
'cdecl',<br />
'pascal',<br />
'stdcall',<br />
'safecall',<br />
'cppdecl',<br />
'far16',<br />
'oldFPCcall',<br />
'internProc',<br />
'SysCall',<br />
'SoftFloat',<br />
'MWPascal'<br />
);<br />
var<br />
Data: PTypeData;<br />
Param: PProcedureParam;<br />
ParamFlag: TParamFlag;<br />
I: Integer;<br />
Res, S, TypeName: String;<br />
begin<br />
if Info^.Kind <> tkProcedure then<br />
Exit;<br />
Data := GetTypeData(Info);<br />
if Data^.ProcSig.CC <> ccStdCall then<br />
halt(2);<br />
if Data^.ProcSig.ResultType <> nil then<br />
begin<br />
Res := 'function ' + Info^.Name;<br />
TypeName := ': ' + Data^.ProcSig.ResultType^.Name;<br />
end<br />
else<br />
begin<br />
Res := 'procedure ' + Info^.Name;<br />
TypeName := '';<br />
end;<br />
if Data^.ProcSig.ParamCount > 0 then<br />
begin<br />
Res := Res + '(';<br />
Param := PProcedureParam(PAnsiChar(@Data^.ProcSig.Flags) + SizeOf(TProcedureSignature));<br />
for I := 0 to Data^.ProcSig.ParamCount - 1 do<br />
begin<br />
S := '';<br />
for ParamFlag in TParamFlags(Param^.Flags) do<br />
S := S + ParamFlagToStr[ParamFlag] + ' ';<br />
S := S + Param^.Name + ': ' + Param^.ParamType^.Name;<br />
if I > 0 then<br />
Res := Res + '; ';<br />
Res := Res + S;<br />
Param := PProcedureParam(PAnsiChar(@Param^.Name) + (Length(Param^.Name) + 1) * SizeOf(AnsiChar));<br />
end;<br />
Res := Res + ')';<br />
end;<br />
Res := Res + TypeName + '; ' + CallConvToStr[Data^.ProcSig.CC] + ';';<br />
WriteLn(Res);<br />
end;<br />
<br />
procedure DescribeAnsiString(Info: PTypeInfo);<br />
var<br />
Data: PTypeData;<br />
begin<br />
if Info^.Kind <> tkAString then<br />
Exit;<br />
Data := GetTypeData(Info);<br />
if Data^.CodePage = 0 then<br />
WriteLn('AnsiString')<br />
else<br />
WriteLn('type AnsiString(',Data^.CodePage,');');<br />
end;<br />
<br />
procedure DescribeArray(Info: PTypeInfo);<br />
var<br />
Data: PTypeData;<br />
Res: String;<br />
I: Integer;<br />
begin<br />
if Info^.Kind <> tkArray then<br />
Exit;<br />
Data := GetTypeData(Info);<br />
Res := 'array[';<br />
for I := 0 to Data^.ArrayData.DimCount - 1 do<br />
begin<br />
if I > 0 then<br />
Res := Res + ', ';<br />
Res := Res + Data^.ArrayData.Dims[I]^.Name;<br />
end;<br />
Res := Res + '] of ' + Data^.ArrayData.ElType^.Name + ';';<br />
WriteLn(Res);<br />
end;<br />
<br />
procedure DescribePointer(Info: PTypeInfo);<br />
var<br />
Data: PTypeData;<br />
begin<br />
if Info^.Kind <> tkPointer then<br />
Exit;<br />
Data := GetTypeData(Info);<br />
if Data^.RefType = nil then<br />
WriteLn('Pointer;')<br />
else<br />
WriteLn('^', Data^.RefType^.Name, ';');<br />
end;<br />
<br />
begin<br />
DescribeProcedure(TypeInfo(TProc));<br />
DescribeAnsiString(TypeInfo(CP866String));<br />
DescribeArray(TypeInfo(TArr));<br />
DescribePointer(TypeInfo(PArr));<br />
DescribePointer(TypeInfo(Pointer));<br />
end.<br />
</syntaxhighlight><br />
<br />
=== Unit changes ===<br />
<br />
==== TBookmark TBookmarkstr and TDataset.Bookmark change to Delphi2009+ compatible definitions ====<br />
* '''Old behaviour''': TDataset.Bookmark was of type TBookmarkstr, TBookmarkstr=string, Tbookmark=pointer<br />
* '''New behaviour''': TDataset.Bookmark is of type TBookmark, TBookmarkstr=ansistring, TBookmark=TBytes. TBookmarkstr will trigger a deprecated warning.<br />
* '''Reason''': D2009+ compatibility, where probably the fact that string became a 2-byte encoding was the trigger.<br />
* '''Remedy''': Adjust typing in descendents and using code accordingly.<br />
<br />
==== FileNameCaseSensitive and FileNameCasePreserving in unit System ====<br />
* '''Old behaviour''': There was only one constant (FileNameCaseSensitive) which signalized behaviour of the respective target platform with regard to the case in filenames. This was often set to true also on platforms not really treating filenames in case sensitive manner (e.g. Win32 and Win64).<br />
* '''New behaviour''': FileNameCaseSensitive is set to true only on platforms which really treat filenames in case sensitive manner and FileNameCasePreserving constant is added to unit system of all platforms to signalize whether the case in filenames supplied when creating or renaming them is preserved or not. This might possibly break existing user code relying on the previous (sometimes incorrect) value of FileNameCaseSensitive.<br />
* '''Reason''': In reality, there are two distinct types of behaviour. If a platform is case sensitive, searching for file "a" will never result in finding file "A" whereas case insensitive platform will happily return "A" if such a file is found on the disk. If a platform is case preserving, it will store file "a" as "a" on disk whereas case non-preserving platform may convert the filenames to uppercase before storing them on disk (i.e. file "a" is in reality stored as "A"). Case non-preserving platforms are never case sensitive, but case preserving platforms may or may not be case sensitive at the same time.<br />
* '''Remedy''': Review your existing code using FileNameCaseSensitive, check which of the two properties described above fit the particular purpose in your case and change to FileNameCasePreserving where appropriate.<br />
<br />
==== Some longtime deprecated functions in unit Unix have been removed. ====<br />
* '''Old behaviour''': Unix.(f)statfs, Unix.shell and Unix.fsync symbols existed in unit Unix <br />
* '''New behaviour''': Unix.(f)statfs, Unix.shell and Unix.fsync were removed<br />
* '''Reason''': These were helper functions and leftovers from the 1.0.x->2.0.0 conversion, deprecated since 2007. Shell had non standarized conventions<br />
* '''Remedy''': All but shell: use the same functions with a "fp" prefix. Shell: use fpsystem. If you checked the return value for other values than -1, a modification of the errorchecking might be necessary. Refer to your *nix documention, or have a look at the transformfpsystemtoshell function in tests/util/redir.pp in the FPC sources to see what a quick fix looks like.<br />
<br />
==== statfs has been renamed to fpstatfs ====<br />
* '''Old behaviour''': One overload of fpstatfs was not renamed from statfs to fpstatfs (around 2.4.0)<br />
* '''New behaviour''': The function has been renamed.<br />
* '''Reason''': Should have been done in 2.4.0 to begin with, but was postponed several times to coincide with a major version change. <br />
* '''Remedy''': Use fpstatfs<br />
<br />
==== RTLeventsync has been removed ====<br />
* '''Old behaviour''': The thread manager record contained an ''rtleventsync'' field, and the RTL had an ''RTLeventsync'' routine. No functionality for this routine was implemented in the FPC-supplied thread manager for any platform.<br />
* '''New behaviour''': The field and routine have been removed.<br />
* '''Reason''': The functionality was not available on any platform by default, and we're not aware of any third party thread manager that implemented them or third party code that relied on it. Additionally, the routine was documented as "Obsolete. Don't use.", without any explanation of what it was supposed to do.<br />
* '''Remedy''': Remove any such calls from your code.<br />
<br />
==== TODBCConnection (odbcconn) No longer autocommit ====<br />
* '''Old behaviour''': Autocommit was enabled: Every change was committed to the database at once.<br />
* '''New behaviour''': Changes must be committed explicitly using Transaction.Commit<br />
* '''Reason''': Transactions are useless if everything is autocommitted: in particular; rollback is not possible.<br />
* '''Remedy''': You can enable autocommit by specifying AUTOCOMMIT=1 in the params of TODBCConnection.<br />
<br />
==== FPCanvas Strikethough property spelling fixed to StrikeThrough ====<br />
* '''Old behaviour''': Fonts had a Striketrough property which is a typo.<br />
* '''New behaviour''': The property has been changed to Strikethrough.<br />
* '''Reason''': Spelling fix.<br />
* '''Remedy''': Please rename property calls in your code. FPC 2.6.2 contains both versions so there is a window for adaptation.<br />
<br />
==== TVersionInfo (fileinfo unit) re-implemented in a platform independent way ====<br />
* '''Old behaviour''': GetVersionSetting method would read file information.<br />
* '''New behaviour''': The ReadFileInfo call will read the information. The global GetProgramVersion call will extract the program major/minor/revision/build version in 1 single call.<br />
* '''Reason''': The unit now uses FPC resources on all platforms, and can now be used to read external resources.<br />
* '''Remedy''': Use the ReadFileInfo call to get the version information. Add relevant units for desired resource support to your uses clause; e.g. if you need to read Windows .exe file info, add winpeimagereader<br />
<br />
==== TDBF unit deprecation removed ====<br />
* '''Old behaviour''': the TDBF units were marked deprecated because the original maintainer of the upstream project stopped maintenance. However, the unit remained in fcl-db and patches were still accepted.<br />
* '''New behaviour''': the deprecation warning is removed. There is a new upstream project maintainer and FPC database devs support this unit again. Note: there is a known problem: TDBF will not work on ARM processors due to alignment issues (http://bugs.freepascal.org/view.php?id=22177). This will only be fixed if a patch is provided, and proven to not produce regressions (e.g. by tests in the FPC db test framework)<br />
* '''Remedy''': N/A<br />
<br />
==== shlobj symbols removed from unit Windows ====<br />
* '''Old behaviour''': When unit windows was splitted between unit windows and shlobj, not all shlobj symbols were removed from Windows. Currently these are being deprecated, and will be removed in next major version.<br />
* '''New behaviour''': shlobj symbols won't be in Windows, code relying on that will fail to compile if it doesn't import shlobj<br />
* '''Reason''': shlobj and windows versions were not compatible and lead to errors. <br />
* '''Remedy''': put shlobj in your uses, if not there already.<br />
<br />
=== Language Changes ===<br />
<br />
==== Variant overload preference for string types ====<br />
* '''Old behaviour''': Preference for string types was (from better to worse): ShortString, AnsiString, WideString, UnicodeString<br />
* '''New behaviour''': Preference for string types now (from better to worse): WideString, UnicodeString, AnsiString, ShortString<br />
* '''Reason''': Unicode characters and codepage information will not lose during the conversion and unicode Delphi compatibility.<br />
* '''Remedy''': Use explicit conversion (e.g. ShortString(V)) if it is needed to pass variant to routine with paticular string type argument.<br />
<br />
==== Default values in implementation but not in interface/forward declaration ====<br />
* '''Old behaviour''': The implementation of a routine could declare default values even if the interface declaration did not have any.<br />
* '''New behaviour''': Default values, if any, must be specified in the interface. They can be repeated in the implementation, but that is not required (just like it was not in the past).<br />
* '''Reason''': Default parameters specified only in the implementation are not, and cannot, be propagated to the interface since a unit's interface can be used before the implementation has been parsed (see http://bugs.freepascal.org/view.php?id=19434), Delphi compatibility.<br />
* '''Remedy''': Always specify default parameter values (also) in the interface/forward declaration of a routine.<br />
<br />
==== Default values are now properly typechecked ====<br />
* '''Old behaviour''': The compiler did not detect default values for parameters of which the type did not in any way correspond to the parameter type. <br />
* '''New behaviour''': The compiler now properly checks whether the type of the constant matches the parameter's type when parsing default values.<br />
* '''Reason''': Proper type checking is one of the fundamental properties of the Pascal language; Delphi compatibility.<br />
* '''Remedy''': Add a typecast around default values that now result in compiler errors, or correct the type of such parameters.<br />
<br />
==== Recursive parameterless function calls in MacPas mode ====<br />
* '''Old behaviour''': When using the name of a function inside its own body on the right hand side of an expression, the compiler treated this as a read of the last value assigned to the function result in MacPas mode.<br />
* '''New behaviour''': The compiler will now treat such occurrences of the function name as recursive function calls in MacPas mode.<br />
* '''Reason''': Compatibility with Mac Pascal compilers.<br />
* '''Remedy''': If you wish to read the current function result value, compile the code with ''{$modeswitch result}'', after which you can use the ''result'' alias for that value. Note that the use of this mode switch can also result in [[User_Changes_2.6.0#Implicit_.22result.22_variable_in_MacPas_mode|different behaviour]] compared to traditional Mac Pascal compilers.<br />
<br />
==== "''strict protected''" visibility modifier ====<br />
* '''Old behaviour''': ''strict protected'' did not correctly limit the visibility of symbols declared in different units.<br />
* '''New behaviour''': ''strict protected'' symbols can now only be accessed from descendent classes, regardless of where they are defined.<br />
* '''Reason''': Fix behaviour to conform to specification/documentation, Delphi compatibility.<br />
* '''Remedy''': Use ''protected'' or ''public'' if less strict accessibility checks are desired.<br />
<br />
==== support for type helpers added ====<br />
* '''Old behaviour''': In modes ''ObjFPC'' and ''MacPas'' it was possible to declare a unique type of a type ''helper''.<br />
* '''New behaviour''': The compiler now interprets the keyword ''helper'' as a helper type if it immediately follows the ''type'' keyword (but only if the mode is ''ObjFPC'' or ''MacPas'' or the mode switch ''Class'' is set).<br />
* '''Example''':<br />
<syntaxhighlight><br />
{$mode objfpc}<br />
type<br />
helper = LongInt;<br />
<br />
otherhelper = type helper;<br />
</syntaxhighlight><br />
The above code will no longer compile.<br />
* '''Reason''': ''type helper'' is a more logical way to declare helpers for primitive types than Delphi's ''record helper'' is.<br />
* '''Remedy''': Escape the keyword ''helper'' using a ''&''. E.g.:<br />
<syntaxhighlight><br />
{$mode objfpc}<br />
type<br />
helper = LongInt;<br />
<br />
otherhelper = type &helper;<br />
</syntaxhighlight><br />
<br />
==== "''strict protected''" and "''protected''" visibility modifier in extended records ====<br />
* '''Old behaviour''': ''strict protected'' and ''protected'' could be used used in extended records.<br />
* '''New behaviour''': ''strict protected'' and ''protected'' are no longer allowed in extended records.<br />
* '''Reason''': The only difference between ''(strict) protected'' and ''(strict) private'' is that the former allows you to access members of a parent class or object. As records don't support inheritence it makes no sense to support ''(strict) protected'' in them. This is also Delphi-compatible.<br />
* '''Remedy''': Use ''private'' instead of ''protected'' and ''strict private'' instead of ''strict protected''.<br />
<br />
==== "''static''" directive on non-class methods ====<br />
* '''Old behaviour''': It was possible to use the ''static'' on normal, non-''class'' methods<br />
* '''New behaviour''': The compiler now generates an error if ''static'' is used on normal, non-''class'' methods (except in ''object'' types)<br />
* '''Reason''': It is only correct to leave out the ''Self'' parameter if it is a class method. This is also Delphi compatible.<br />
* '''Remedy''': Prepend the ''class'' keyword to the method.<br />
<br />
==== "''static''" directive on class operators ====<br />
* '''Old behaviour''': It was possible to use the ''static'' on class operators.<br />
* '''New behaviour''': The compiler now generates an error if ''static'' is used on class operators.<br />
* '''Reason''': Class operators are by definition static, thus the ''static'' would be redundant. This is also Delphi compatible.<br />
* '''Remedy''': Remove the ''static'' keyword from class operators.<br />
<br />
====Classes implementing forward-declared interfaces====<br />
* '''Old behaviour''': It was possible to declare classes as implementing a forward-declared interface.<br />
* '''New behaviour''': Classes can no longer implement forward-declared interfaces.<br />
* '''Reason''': This occasionally [http://bugs.freepascal.org/view.php?id=24184 caused crashes], the compiler did not check in such a case whether the class actually implemented the methods of that interface. Recent versions of Delphi also reject such constructs.<br />
* '''Remedy''': If there is a cyclic dependency between a class and an interface, use a forward declaration for the class instead.<br />
<br />
====Using the function name as alias for loading its current result value in MacPas mode====<br />
* '''Old behaviour''': Inside a function the name of the function could be used on the right hand side (RHS) of an expression in order to refer to the current value of the function result.<br />
* '''New behaviour''': Using the name of a function on the RHS of an expression inside that function's body now always results in a recursive function call.<br />
* '''Reason''': The old behaviour existed because under '''some''' circumstances CodeWarrior behaved that way. Under other circumstances [http://bugs.freepascal.org/view.php?id=22344 it however behaves according to the new rule] and there appears to be no definition available of when it does what. Since it is easier to fix a compilation error than to find out where an intended recursive function call is not doing anything, we opted to change the behaviour.<br />
* '''Remedy''': Either use a temporary local variable to hold the function result if you want to reuse it on the RHS of other expressions, or add '''{$modeswitch result}''' and use the '''result''' pseudo-variable as an alias for the function result.<br />
<br />
== Unix platforms ==<br />
<br />
=== cthreads: critical sections and recursive mutex support ===<br />
* '''Old behaviour''': If the ''cthreads'' unit thread manager was used on a platform without recursive mutex support, critical sections were non-reentrant.<br />
* '''New behaviour''': Initialising a critical section under the above circumstances will now result in a run time error.<br />
* '''Reason''': One of the basic properties of (Delphi/Windows-compatible) critical sections is that they are reentrant, and that is how they are generally used in Pascal code.<br />
* '''Remedy''': Use an RTLEvent instead if reentrancy is not required.<br />
<br />
<br />
== Darwin/i386 and iPhoneSim/i386 ==<br />
<br />
=== Location of certain function result types ===<br />
* '''Old behaviour''': Small records and method pointers were always returned according to the official ABI.<br />
* '''New behaviour''': When a calling convention other than ''cdecl'', ''cppdecl'' or ''mwpascal'' is used, the same convention as on other platforms is now used.<br />
* '''Reason''': Better compatibility with assembler code written for other platforms.<br />
* '''Remedy''': Update your assembler code, or better: if possible, convert it to Pascal.<br />
<br />
== All Darwin/Mac OS X/iOS ==<br />
===MacOSAll unit: changed parameter and opaque types===<br />
<br />
* '''Change''': The headers have been updated to the Mac OS X 10.8 SDK, and in this process a number of signatures have been changed/corrected, and several opaque types have been changed from ^SInt32 into pointers to different/incompatible empty records.<br />
* '''Reason''': The reasons for the signature changes are detailed below. The opaque types have been made incompatible so that the compiler can give error messages when trying to use one opaque type instead of another (e.g., in the past the compiler did not complain when passing a ControlRef to a routine that expected a WindowPtr).<br />
* '''Remedy''': Adjust your code to conform to the new signatures. Regarding the opaque types, that means that these types are no longer assignment-compatible. Some of the more prominent ones that may affect existing, correct, code are HIObject and ControlRef=HIViewRef. This may require adding typecasts to keep code compiling (the same typecasts are required in C)<br />
* '''Changes:''' (apart from the opaque type changes)<br />
** CGGLContextCreate : fixed first parameter (was "var", now is value parameter)<br />
** CFHostGetAddressing: var hasBeenResolved: boolean -> booleanptr because can be nil<br />
** CFHostGetNames: var hasBeenResolved: boolean -> booleanptr because can be nil<br />
** ColorSyncIterateInstalledProfiles: var seed: UInt32 -> UInt32Ptr because can be nil<br />
** AudioStreamGetPropertyInfo: outSize and outWritable changed to pointer because can be nil<br />
** cblas (several var-parametes changed to pointers because they represent arrays):<br />
*** cblas_sswap, cblas_dswap: X, Y<br />
*** cblas_scopy, cblas_dcopy: Y<br />
*** cblas_saxpy, cblas_daxpy: Y<br />
*** catlas_saxpby, catlas_daxpby: Y<br />
*** catlas_sset, catlas_dset: X<br />
*** cblas_sscal, cblas_dscal: X<br />
*** cblas_sgemv, cblas_dgemv: X<br />
*** cblas_strmv, cblas_dtrmv: X<br />
*** cblas_stbmv, cblas_dtbmv: X<br />
*** cblas_stpmv, cblas_dtpmv: Ap, X<br />
*** cblas_strsv, cblas_dtrsv: X<br />
*** cblas_stbsv, cblas_dtbsv: X<br />
*** cblas_stpsv, cblas_dtpsv: Ap, X<br />
*** cblas_ssymv, cblas_dsymv: X<br />
*** cblas_ssbmv, cblas_dsbmv: Y<br />
*** cblas_sspmv, cblas_dspmv: Ap, Y<br />
*** cblas_sger, cblas_dger: A<br />
*** cblas_ssyr, cblas_dsyr: A<br />
*** cblas_sspr, cblas_dspr: Ap<br />
*** cblas_ssyr2, cblas_dsyr2: A<br />
*** cblas_sspr2, cblas_dspr2: A<br />
*** cblas_sgemm, cblas_sgemm: C<br />
*** cblas_ssymm, cblas_Dsymm: C<br />
*** cblas_ssyrk, cblas_dsyrk: C<br />
*** cblas_ssyr2k, cblas_dsyr2k: C<br />
*** cblas_strmm, cblas_dtrmm: B<br />
*** cblas_strsm, cblas_strsm: B<br />
** vBLAS (idem)<br />
*** SDOT: X, Y<br />
*** SNRM2: X<br />
*** SASUM: X<br />
*** ISAMAX: X<br />
*** SSWAP: X, Y<br />
*** SCOPY: X, Y<br />
*** SAXPY: X, Y<br />
*** SROT: X, Y<br />
*** SSCAL: X<br />
*** SGEMV, A, X, Y<br />
*** SGEMM: A, B, C<br />
** vDSP (idem)<br />
*** vDSP_sve_svesq, vDSP_sve_svesqD: __vDSP_A<br />
*** vDSP_normalize, vDSP_normalizeD: __vDSP_A, __vDSP_C<br />
<br />
== Windows/x86_64 ==<br />
<br />
=== Exception handling has been changed to be ABI-conformant ===<br />
<br />
* '''Old behaviour''': Exceptions were handled using platform-independent mechanism based on SetJmp/LongJmp.<br />
* '''New behaviour''': Exceptions are handled using OS-provided means. The most important differences from generic handling are as follows:<br />
** Every executable contains a <tt>.pdata</tt> section describing layout of function stack frames. This data is used to perform stack back-tracing. As a consequence, the backtraces generated when exception occurs are no longer dependent of code optimization settings. However, they may be different from ones produced by gdb.<br />
** GNU binutils have troubles creating executables with <tt>.pdata</tt> sections. In particular, ld version < 2.22 crashes at such executables, and using GNU as together with internal linker will strip all <tt>.pdata</tt>, resulting in a non-working executable.<br />
** An exception is handled in two phases. First phase determines the target frame (i.e. the 'except' statement that will handle the exception), the second phase does actual stack unwinding and executing code in 'finally' statements. In contrast, the generic mechanism is single-phase: it starts unwinding immediately and proceeds until an 'except' statement handles the exception or the stack runs out.<br />
* '''Reason''': Multiple compatibility issues with Windows and third-party DLLs (see http://bugs.freepascal.org/view.php?id=12974 and related issues)<br />
* '''Remedy''': No changes are necessary unless your code relies on specific exception handling details. Build programs using FPC's internal assembler and linker, do not use GNU binutils. The entire feature can be disabled by cycling the compiler with <tt>OPT=-dDISABLE_WIN64_SEH</tt> in command line.<br />
<br />
== WinCE ==<br />
<br />
=== Define ''UNICODE'' was changed to ''FPC_OS_UNICODE'' ===<br />
<br />
* '''Old behaviour''': For arm-wince and i386-wince ''UNICODE'' was defined by default.<br />
* '''New behaviour''': For arm-wince and i386-wince ''FPC_OS_UNICODE'' is defined by default.<br />
* '''Reason''': For upcoming support for setting String to UnicodeString the define ''UNICODE'' now is defined if the type String is currently defined as UnicodeString. This is also in so far Delphi compatible that from Delphi 2009 on ''UNICODE'' is defined as well.<br />
* '''Remedy''': Check for ''FPC_OS_UNICODE'' to decide whether the OS only provides a Unicode API (in the sense of Wide- or UnicodeString) and use ''UNICODE'' to decide whether the type String is currently defined as UnicodeString or not.<br />
<br />
== Other == <br />
<br />
=== Stabs support has been disabled for 64 bit targets ===<br />
* '''Old behaviour''': While the default debug information format for 64 bit targets was DWARF (except for AIX, where it's Stabx), it was possible to switch it to Stabs via the -gs command line parameter.<br />
* '''New behaviour''': Only the DWARF debug format is still supported on 64 bit targets (except for AIX, where Stabx is used).<br />
* '''Reason''': Stabs is not well-defined for 64 bit targets, nor well-supported by gdb on those same targets. This can lead to [http://bugs.freepascal.org/view.php?id=23365 problems]<br />
* '''Remedy''': Do not use -gs when compiling for 64 bit targets. If you do so anyway, the compiler will display a warning and keep the previously set (supported) debug format.<br />
<br />
== See also ==<br />
* [[FPC New Features Trunk]]<br />
[[Category:FPC User Changes by release]]</div>
Paul Ishenin
https://wiki.freepascal.org/index.php?title=User_Changes_Trunk&diff=69780
User Changes Trunk
2013-05-08T06:11:11Z
<p>Paul Ishenin: /* example */</p>
<hr />
<div>== About this page==<br />
<br />
Below you can find a list of intentional changes since the [[User_Changes_2.6.2|previous release]] that can change the behaviour of previously working code, along with why these changes were performed and how you can adapt your code if you are affected by them. The list of new features can be found [[FPC_New_Features_Trunk|here]].<br />
<br />
== All systems ==<br />
<br />
=== Implementation changes ===<br />
<br />
==== Exception type for object reference checking changed ====<br />
* '''Old behaviour''': When object reference checking (''-CR'' or ''{$OBJECTCHECKS ON}'') is enabled and the unit ''SysUtils'' is used then an exception of class ''Exception'' with localizeable message ''Unknown runtime error 210'' is created.<br />
* '''New behaviour''': Now an exception of class ''EObjectCheck'' with localizeable message ''Object reference is Nil'' is created.<br />
* '''Reason''': All other runtime errors in the 2xx range have approbiate exception types, so it is only natural to have an explicit type for runtime error 210 as well.<br />
* '''Remedy''': If you checked an exception for the message ''Unknown runtime error 210'' you should now check for the exception class ''EObjectCheck''.<br />
<br />
==== Literal storage memory has been made read-only ====<br />
<br />
* '''Old behaviour''': read-only data segments were de-facto not supported, all data could be modified at runtime even if it was not intended for modification (except in some cases on Darwin). This could cause nasty side-effects, e.g the following code:<br />
<br />
<syntaxhighlight><br />
uses sysutils;<br />
var<br />
s: ansistring;<br />
begin<br />
s := 'ansi string';<br />
Writeln(AnsiStrUpper(pchar(s)));<br />
s := 'ansi string';<br />
Writeln(s);<br />
end.<br />
</syntaxhighlight><br />
<br />
would modify the content of data segment and print<br />
<br />
ANSI STRING<br />
ANSI STRING<br />
<br />
* '''New behaviour''': Data that is not intended to be modified at runtime is put into read-only segment. This includes literal constants used in expressions and typed constants declared in {$J-} state. The code which modifies such data, like the example above, will now crash.<br />
* '''Reason''': This is consistent with the way other compilers, including Delphi, work. Keeping as much as possible data read-only improves loading speed of programs because read-only pages can be mapped directly on executable file, and also improves security of programs.<br />
* '''Remedy''': Depends on the code. In the example above, it is sufficient to call <tt>UniqueString(s)</tt> before <tt>AnsiStrUpper</tt><br />
<br />
==== ''UNICODE'' is defined depending on the mode switch ====<br />
* '''Old behaviour''': When the modeswitch was changed the definition of ''UNICODE'' was not changed.<br />
* '''New behaviour''': If the modeswitch is changed to ''delphiunicode'' the ''UNICODE'' will be defined otherwise it will be undefined.<br />
* '''Reason''': In Delphi 2009 and newer the type String is defined as UnicodeString and ''UNICODE'' is defined there by default as well. For improved Delphi compatibility ''UNICODE'' will be automatically defined if the String type is set to be equal to UnicodeString.<br />
* '''Remedy''': Don't rely on checks for ''UNICODE'' before the mode switches. Also compile time checks for ''UNICODE'' that appear after a modeswitch like ''objfpc'' or ''delphi'' will no longer be evaluated to true.<br />
<br />
=== RTTI changes ===<br />
<br />
==== RTTI for Pointers and Class References ====<br />
* '''Old behavior''': Pointers and Class References had tkUnknown RTTI.<br />
* '''New behavior''': Pointers now have tkPointer and Class References tkClassRef RTTI types. They now contain a reference to a type they point to.<br />
* '''Reason''': Both user requests and Delphi compatibility.<br />
* '''Remedy''': TTypeKind enumeration has more members than before. Adjust your code which depends on TTypeKind.<br />
<br />
==== RTTI for AnsiStrings ====<br />
* '''Old behavior''': AnsiString RTTI did not have CodePage information.<br />
* '''New behavior''': New CodePage member is added for tkAString type.<br />
* '''Reason''': Requires for serializing/deserializing of AnsiString published properties. Delphi compatibility.<br />
* '''Remedy''': not known<br />
<br />
==== RTTI for Arrays ====<br />
* '''Old behavior''': tkArray had no member in TTypeData record but internally compiler stored the next members: first dimension size, first dimension element count and first dimension element type. So for 2 dimension array element type was array for the second dimension.<br />
* '''New behavior''': tkArray now has TArrayTypeData structure in TTypeData. It has the next members: total array size including all dimensions, total element count, last dimension element type, number of dimensions, type information for each dimension range.<br />
* '''Reason''': more informative RTTI. Delphi compatibility.<br />
* '''Remedy''': If your code internally used old RTTI array information you will need to adopt it.<br />
<br />
==== RTTI for Records ====<br />
* '''Old behavior''': Records RTTI stored field Offsets as 32bit integers.<br />
* '''New behavior''': Records RTTI stores field Offsets as platform dependent integers (the same size as pointers).<br />
* '''Reason''': Internally compiler stored Offsets as platform dependent integers. Delphi compatibility.<br />
* '''Remedy''': You need to adjust your code if you used field offsets of record RTTI. This is also true if you manually processed vInitTable field of class VMT.<br />
<br />
==== RTTI for Procedural Variables ====<br />
* '''Old behavior''': tkProcVar had no member in TTypeData record and compiler stored no info the this type.<br />
* '''New behavior''': tkProcVar now has TProcedureSignature structure in TTypeData which contains information about calling convention, result type and parameters information.<br />
* '''Reason''': User request. More informative RTTI. Delphi compatibility.<br />
* '''Remedy''': not known<br />
<br />
==== Use example ====<br />
<syntaxhighlight><br />
program RTTIInfo;<br />
<br />
{$mode objfpc}{$H+}<br />
uses<br />
typinfo;<br />
<br />
type<br />
CP866String = type AnsiString(866);<br />
TProc = procedure(var A: Integer; S: String); stdcall;<br />
TColor = (red, green, blue);<br />
TArr = array[TColor,0..3] of Integer;<br />
PArr = ^TArr;<br />
<br />
procedure DescribeProcedure(Info: PTypeInfo);<br />
const<br />
ParamFlagToStr: array[TParamFlag] of AnsiString = (<br />
'var',<br />
'const',<br />
'array',<br />
'address',<br />
'reference',<br />
'out'<br />
);<br />
CallConvToStr: array[TCallConv] of AnsiString = (<br />
'register',<br />
'cdecl',<br />
'pascal',<br />
'stdcall',<br />
'safecall',<br />
'cppdecl',<br />
'far16',<br />
'oldFPCcall',<br />
'internProc',<br />
'SysCall',<br />
'SoftFloat',<br />
'MWPascal'<br />
);<br />
var<br />
Data: PTypeData;<br />
Param: PProcedureParam;<br />
ParamFlags: TParamFlags;<br />
ParamFlag: TParamFlag;<br />
I: Integer;<br />
Res, S, TypeName: String;<br />
begin<br />
if Info^.Kind <> tkProcedure then<br />
Exit;<br />
Data := GetTypeData(Info);<br />
if Data^.ProcSig.CC <> ccStdCall then<br />
halt(2);<br />
if Data^.ProcSig.ResultType <> nil then<br />
begin<br />
Res := 'function ' + Info^.Name;<br />
TypeName := ': ' + Data^.ProcSig.ResultType^.Name;<br />
end<br />
else<br />
begin<br />
Res := 'procedure ' + Info^.Name;<br />
TypeName := '';<br />
end;<br />
if Data^.ProcSig.ParamCount > 0 then<br />
begin<br />
Res := Res + '(';<br />
Param := PProcedureParam(PAnsiChar(@Data^.ProcSig.Flags) + SizeOf(TProcedureSignature));<br />
for I := 0 to Data^.ProcSig.ParamCount - 1 do<br />
begin<br />
S := '';<br />
ParamFlags := TParamFlags(Param^.Flags);<br />
for ParamFlag := Low(TParamFlag) to High(TParamFlag) do<br />
if ParamFlag in ParamFlags then<br />
S := S + ParamFlagToStr[ParamFlag] + ' ';<br />
S := S + Param^.Name + ': ' + Param^.ParamType^.Name;<br />
if I > 0 then<br />
Res := Res + '; ';<br />
Res := Res + S;<br />
Param := PProcedureParam(PAnsiChar(@Param^.Name) + (Length(Param^.Name) + 1) * SizeOf(AnsiChar));<br />
end;<br />
Res := Res + ')';<br />
end;<br />
Res := Res + TypeName + '; ' + CallConvToStr[Data^.ProcSig.CC] + ';';<br />
WriteLn(Res);<br />
end;<br />
<br />
procedure DescribeAnsiString(Info: PTypeInfo);<br />
var<br />
Data: PTypeData;<br />
begin<br />
if Info^.Kind <> tkAString then<br />
Exit;<br />
Data := GetTypeData(Info);<br />
if Data^.CodePage = 0 then<br />
WriteLn('AnsiString')<br />
else<br />
WriteLn('type AnsiString(',Data^.CodePage,');');<br />
end;<br />
<br />
procedure DescribeArray(Info: PTypeInfo);<br />
var<br />
Data: PTypeData;<br />
Res: String;<br />
I: Integer;<br />
begin<br />
if Info^.Kind <> tkArray then<br />
Exit;<br />
Data := GetTypeData(Info);<br />
Res := 'array[';<br />
for I := 0 to Data^.ArrayData.DimCount - 1 do<br />
begin<br />
if I > 0 then<br />
Res := Res + ', ';<br />
Res := Res + Data^.ArrayData.Dims[I]^.Name;<br />
end;<br />
Res := Res + '] of ' + Data^.ArrayData.ElType^.Name + ';';<br />
WriteLn(Res);<br />
end;<br />
<br />
procedure DescribePointer(Info: PTypeInfo);<br />
var<br />
Data: PTypeData;<br />
begin<br />
if Info^.Kind <> tkPointer then<br />
Exit;<br />
Data := GetTypeData(Info);<br />
if Data^.RefType = nil then<br />
WriteLn('Pointer;')<br />
else<br />
WriteLn('^', Data^.RefType^.Name, ';');<br />
end;<br />
<br />
begin<br />
DescribeProcedure(TypeInfo(TProc));<br />
DescribeAnsiString(TypeInfo(CP866String));<br />
DescribeArray(TypeInfo(TArr));<br />
DescribePointer(TypeInfo(PArr));<br />
DescribePointer(TypeInfo(Pointer));<br />
end.<br />
</syntaxhighlight><br />
<br />
=== Unit changes ===<br />
<br />
==== TBookmark TBookmarkstr and TDataset.Bookmark change to Delphi2009+ compatible definitions ====<br />
* '''Old behaviour''': TDataset.Bookmark was of type TBookmarkstr, TBookmarkstr=string, Tbookmark=pointer<br />
* '''New behaviour''': TDataset.Bookmark is of type TBookmark, TBookmarkstr=ansistring, TBookmark=TBytes. TBookmarkstr will trigger a deprecated warning.<br />
* '''Reason''': D2009+ compatibility, where probably the fact that string became a 2-byte encoding was the trigger.<br />
* '''Remedy''': Adjust typing in descendents and using code accordingly.<br />
<br />
==== FileNameCaseSensitive and FileNameCasePreserving in unit System ====<br />
* '''Old behaviour''': There was only one constant (FileNameCaseSensitive) which signalized behaviour of the respective target platform with regard to the case in filenames. This was often set to true also on platforms not really treating filenames in case sensitive manner (e.g. Win32 and Win64).<br />
* '''New behaviour''': FileNameCaseSensitive is set to true only on platforms which really treat filenames in case sensitive manner and FileNameCasePreserving constant is added to unit system of all platforms to signalize whether the case in filenames supplied when creating or renaming them is preserved or not. This might possibly break existing user code relying on the previous (sometimes incorrect) value of FileNameCaseSensitive.<br />
* '''Reason''': In reality, there are two distinct types of behaviour. If a platform is case sensitive, searching for file "a" will never result in finding file "A" whereas case insensitive platform will happily return "A" if such a file is found on the disk. If a platform is case preserving, it will store file "a" as "a" on disk whereas case non-preserving platform may convert the filenames to uppercase before storing them on disk (i.e. file "a" is in reality stored as "A"). Case non-preserving platforms are never case sensitive, but case preserving platforms may or may not be case sensitive at the same time.<br />
* '''Remedy''': Review your existing code using FileNameCaseSensitive, check which of the two properties described above fit the particular purpose in your case and change to FileNameCasePreserving where appropriate.<br />
<br />
==== Some longtime deprecated functions in unit Unix have been removed. ====<br />
* '''Old behaviour''': Unix.(f)statfs, Unix.shell and Unix.fsync symbols existed in unit Unix <br />
* '''New behaviour''': Unix.(f)statfs, Unix.shell and Unix.fsync were removed<br />
* '''Reason''': These were helper functions and leftovers from the 1.0.x->2.0.0 conversion, deprecated since 2007. Shell had non standarized conventions<br />
* '''Remedy''': All but shell: use the same functions with a "fp" prefix. Shell: use fpsystem. If you checked the return value for other values than -1, a modification of the errorchecking might be necessary. Refer to your *nix documention, or have a look at the transformfpsystemtoshell function in tests/util/redir.pp in the FPC sources to see what a quick fix looks like.<br />
<br />
==== statfs has been renamed to fpstatfs ====<br />
* '''Old behaviour''': One overload of fpstatfs was not renamed from statfs to fpstatfs (around 2.4.0)<br />
* '''New behaviour''': The function has been renamed.<br />
* '''Reason''': Should have been done in 2.4.0 to begin with, but was postponed several times to coincide with a major version change. <br />
* '''Remedy''': Use fpstatfs<br />
<br />
==== RTLeventsync has been removed ====<br />
* '''Old behaviour''': The thread manager record contained an ''rtleventsync'' field, and the RTL had an ''RTLeventsync'' routine. No functionality for this routine was implemented in the FPC-supplied thread manager for any platform.<br />
* '''New behaviour''': The field and routine have been removed.<br />
* '''Reason''': The functionality was not available on any platform by default, and we're not aware of any third party thread manager that implemented them or third party code that relied on it. Additionally, the routine was documented as "Obsolete. Don't use.", without any explanation of what it was supposed to do.<br />
* '''Remedy''': Remove any such calls from your code.<br />
<br />
==== TODBCConnection (odbcconn) No longer autocommit ====<br />
* '''Old behaviour''': Autocommit was enabled: Every change was committed to the database at once.<br />
* '''New behaviour''': Changes must be committed explicitly using Transaction.Commit<br />
* '''Reason''': Transactions are useless if everything is autocommitted: in particular; rollback is not possible.<br />
* '''Remedy''': You can enable autocommit by specifying AUTOCOMMIT=1 in the params of TODBCConnection.<br />
<br />
==== FPCanvas Strikethough property spelling fixed to StrikeThrough ====<br />
* '''Old behaviour''': Fonts had a Striketrough property which is a typo.<br />
* '''New behaviour''': The property has been changed to Strikethrough.<br />
* '''Reason''': Spelling fix.<br />
* '''Remedy''': Please rename property calls in your code. FPC 2.6.2 contains both versions so there is a window for adaptation.<br />
<br />
==== TVersionInfo (fileinfo unit) re-implemented in a platform independent way ====<br />
* '''Old behaviour''': GetVersionSetting method would read file information.<br />
* '''New behaviour''': The ReadFileInfo call will read the information. The global GetProgramVersion call will extract the program major/minor/revision/build version in 1 single call.<br />
* '''Reason''': The unit now uses FPC resources on all platforms, and can now be used to read external resources.<br />
* '''Remedy''': Use the ReadFileInfo call to get the version information. Add relevant units for desired resource support to your uses clause; e.g. if you need to read Windows .exe file info, add winpeimagereader<br />
<br />
==== TDBF unit deprecation removed ====<br />
* '''Old behaviour''': the TDBF units were marked deprecated because the original maintainer of the upstream project stopped maintenance. However, the unit remained in fcl-db and patches were still accepted.<br />
* '''New behaviour''': the deprecation warning is removed. There is a new upstream project maintainer and FPC database devs support this unit again. Note: there is a known problem: TDBF will not work on ARM processors due to alignment issues (http://bugs.freepascal.org/view.php?id=22177). This will only be fixed if a patch is provided, and proven to not produce regressions (e.g. by tests in the FPC db test framework)<br />
* '''Remedy''': N/A<br />
<br />
==== shlobj symbols removed from unit Windows ====<br />
* '''Old behaviour''': When unit windows was splitted between unit windows and shlobj, not all shlobj symbols were removed from Windows. Currently these are being deprecated, and will be removed in next major version.<br />
* '''New behaviour''': shlobj symbols won't be in Windows, code relying on that will fail to compile if it doesn't import shlobj<br />
* '''Reason''': shlobj and windows versions were not compatible and lead to errors. <br />
* '''Remedy''': put shlobj in your uses, if not there already.<br />
<br />
=== Language Changes ===<br />
<br />
==== Variant overload preference for string types ====<br />
* '''Old behaviour''': Preference for string types was (from better to worse): ShortString, AnsiString, WideString, UnicodeString<br />
* '''New behaviour''': Preference for string types now (from better to worse): WideString, UnicodeString, AnsiString, ShortString<br />
* '''Reason''': Unicode characters and codepage information will not lose during the conversion and unicode Delphi compatibility.<br />
* '''Remedy''': Use explicit conversion (e.g. ShortString(V)) if it is needed to pass variant to routine with paticular string type argument.<br />
<br />
==== Default values in implementation but not in interface/forward declaration ====<br />
* '''Old behaviour''': The implementation of a routine could declare default values even if the interface declaration did not have any.<br />
* '''New behaviour''': Default values, if any, must be specified in the interface. They can be repeated in the implementation, but that is not required (just like it was not in the past).<br />
* '''Reason''': Default parameters specified only in the implementation are not, and cannot, be propagated to the interface since a unit's interface can be used before the implementation has been parsed (see http://bugs.freepascal.org/view.php?id=19434), Delphi compatibility.<br />
* '''Remedy''': Always specify default parameter values (also) in the interface/forward declaration of a routine.<br />
<br />
==== Default values are now properly typechecked ====<br />
* '''Old behaviour''': The compiler did not detect default values for parameters of which the type did not in any way correspond to the parameter type. <br />
* '''New behaviour''': The compiler now properly checks whether the type of the constant matches the parameter's type when parsing default values.<br />
* '''Reason''': Proper type checking is one of the fundamental properties of the Pascal language; Delphi compatibility.<br />
* '''Remedy''': Add a typecast around default values that now result in compiler errors, or correct the type of such parameters.<br />
<br />
==== Recursive parameterless function calls in MacPas mode ====<br />
* '''Old behaviour''': When using the name of a function inside its own body on the right hand side of an expression, the compiler treated this as a read of the last value assigned to the function result in MacPas mode.<br />
* '''New behaviour''': The compiler will now treat such occurrences of the function name as recursive function calls in MacPas mode.<br />
* '''Reason''': Compatibility with Mac Pascal compilers.<br />
* '''Remedy''': If you wish to read the current function result value, compile the code with ''{$modeswitch result}'', after which you can use the ''result'' alias for that value. Note that the use of this mode switch can also result in [[User_Changes_2.6.0#Implicit_.22result.22_variable_in_MacPas_mode|different behaviour]] compared to traditional Mac Pascal compilers.<br />
<br />
==== "''strict protected''" visibility modifier ====<br />
* '''Old behaviour''': ''strict protected'' did not correctly limit the visibility of symbols declared in different units.<br />
* '''New behaviour''': ''strict protected'' symbols can now only be accessed from descendent classes, regardless of where they are defined.<br />
* '''Reason''': Fix behaviour to conform to specification/documentation, Delphi compatibility.<br />
* '''Remedy''': Use ''protected'' or ''public'' if less strict accessibility checks are desired.<br />
<br />
==== support for type helpers added ====<br />
* '''Old behaviour''': In modes ''ObjFPC'' and ''MacPas'' it was possible to declare a unique type of a type ''helper''.<br />
* '''New behaviour''': The compiler now interprets the keyword ''helper'' as a helper type if it immediately follows the ''type'' keyword (but only if the mode is ''ObjFPC'' or ''MacPas'' or the mode switch ''Class'' is set).<br />
* '''Example''':<br />
<syntaxhighlight><br />
{$mode objfpc}<br />
type<br />
helper = LongInt;<br />
<br />
otherhelper = type helper;<br />
</syntaxhighlight><br />
The above code will no longer compile.<br />
* '''Reason''': ''type helper'' is a more logical way to declare helpers for primitive types than Delphi's ''record helper'' is.<br />
* '''Remedy''': Escape the keyword ''helper'' using a ''&''. E.g.:<br />
<syntaxhighlight><br />
{$mode objfpc}<br />
type<br />
helper = LongInt;<br />
<br />
otherhelper = type &helper;<br />
</syntaxhighlight><br />
<br />
==== "''strict protected''" and "''protected''" visibility modifier in extended records ====<br />
* '''Old behaviour''': ''strict protected'' and ''protected'' could be used used in extended records.<br />
* '''New behaviour''': ''strict protected'' and ''protected'' are no longer allowed in extended records.<br />
* '''Reason''': The only difference between ''(strict) protected'' and ''(strict) private'' is that the former allows you to access members of a parent class or object. As records don't support inheritence it makes no sense to support ''(strict) protected'' in them. This is also Delphi-compatible.<br />
* '''Remedy''': Use ''private'' instead of ''protected'' and ''strict private'' instead of ''strict protected''.<br />
<br />
==== "''static''" directive on non-class methods ====<br />
* '''Old behaviour''': It was possible to use the ''static'' on normal, non-''class'' methods<br />
* '''New behaviour''': The compiler now generates an error if ''static'' is used on normal, non-''class'' methods (except in ''object'' types)<br />
* '''Reason''': It is only correct to leave out the ''Self'' parameter if it is a class method. This is also Delphi compatible.<br />
* '''Remedy''': Prepend the ''class'' keyword to the method.<br />
<br />
==== "''static''" directive on class operators ====<br />
* '''Old behaviour''': It was possible to use the ''static'' on class operators.<br />
* '''New behaviour''': The compiler now generates an error if ''static'' is used on class operators.<br />
* '''Reason''': Class operators are by definition static, thus the ''static'' would be redundant. This is also Delphi compatible.<br />
* '''Remedy''': Remove the ''static'' keyword from class operators.<br />
<br />
====Classes implementing forward-declared interfaces====<br />
* '''Old behaviour''': It was possible to declare classes as implementing a forward-declared interface.<br />
* '''New behaviour''': Classes can no longer implement forward-declared interfaces.<br />
* '''Reason''': This occasionally [http://bugs.freepascal.org/view.php?id=24184 caused crashes], the compiler did not check in such a case whether the class actually implemented the methods of that interface. Recent versions of Delphi also reject such constructs.<br />
* '''Remedy''': If there is a cyclic dependency between a class and an interface, use a forward declaration for the class instead.<br />
<br />
====Using the function name as alias for loading its current result value in MacPas mode====<br />
* '''Old behaviour''': Inside a function the name of the function could be used on the right hand side (RHS) of an expression in order to refer to the current value of the function result.<br />
* '''New behaviour''': Using the name of a function on the RHS of an expression inside that function's body now always results in a recursive function call.<br />
* '''Reason''': The old behaviour existed because under '''some''' circumstances CodeWarrior behaved that way. Under other circumstances [http://bugs.freepascal.org/view.php?id=22344 it however behaves according to the new rule] and there appears to be no definition available of when it does what. Since it is easier to fix a compilation error than to find out where an intended recursive function call is not doing anything, we opted to change the behaviour.<br />
* '''Remedy''': Either use a temporary local variable to hold the function result if you want to reuse it on the RHS of other expressions, or add '''{$modeswitch result}''' and use the '''result''' pseudo-variable as an alias for the function result.<br />
<br />
== Unix platforms ==<br />
<br />
=== cthreads: critical sections and recursive mutex support ===<br />
* '''Old behaviour''': If the ''cthreads'' unit thread manager was used on a platform without recursive mutex support, critical sections were non-reentrant.<br />
* '''New behaviour''': Initialising a critical section under the above circumstances will now result in a run time error.<br />
* '''Reason''': One of the basic properties of (Delphi/Windows-compatible) critical sections is that they are reentrant, and that is how they are generally used in Pascal code.<br />
* '''Remedy''': Use an RTLEvent instead if reentrancy is not required.<br />
<br />
<br />
== Darwin/i386 and iPhoneSim/i386 ==<br />
<br />
=== Location of certain function result types ===<br />
* '''Old behaviour''': Small records and method pointers were always returned according to the official ABI.<br />
* '''New behaviour''': When a calling convention other than ''cdecl'', ''cppdecl'' or ''mwpascal'' is used, the same convention as on other platforms is now used.<br />
* '''Reason''': Better compatibility with assembler code written for other platforms.<br />
* '''Remedy''': Update your assembler code, or better: if possible, convert it to Pascal.<br />
<br />
== All Darwin/Mac OS X/iOS ==<br />
===MacOSAll unit: changed parameter and opaque types===<br />
<br />
* '''Change''': The headers have been updated to the Mac OS X 10.8 SDK, and in this process a number of signatures have been changed/corrected, and several opaque types have been changed from ^SInt32 into pointers to different/incompatible empty records.<br />
* '''Reason''': The reasons for the signature changes are detailed below. The opaque types have been made incompatible so that the compiler can give error messages when trying to use one opaque type instead of another (e.g., in the past the compiler did not complain when passing a ControlRef to a routine that expected a WindowPtr).<br />
* '''Remedy''': Adjust your code to conform to the new signatures. Regarding the opaque types, that means that these types are no longer assignment-compatible. Some of the more prominent ones that may affect existing, correct, code are HIObject and ControlRef=HIViewRef. This may require adding typecasts to keep code compiling (the same typecasts are required in C)<br />
* '''Changes:''' (apart from the opaque type changes)<br />
** CGGLContextCreate : fixed first parameter (was "var", now is value parameter)<br />
** CFHostGetAddressing: var hasBeenResolved: boolean -> booleanptr because can be nil<br />
** CFHostGetNames: var hasBeenResolved: boolean -> booleanptr because can be nil<br />
** ColorSyncIterateInstalledProfiles: var seed: UInt32 -> UInt32Ptr because can be nil<br />
** AudioStreamGetPropertyInfo: outSize and outWritable changed to pointer because can be nil<br />
** cblas (several var-parametes changed to pointers because they represent arrays):<br />
*** cblas_sswap, cblas_dswap: X, Y<br />
*** cblas_scopy, cblas_dcopy: Y<br />
*** cblas_saxpy, cblas_daxpy: Y<br />
*** catlas_saxpby, catlas_daxpby: Y<br />
*** catlas_sset, catlas_dset: X<br />
*** cblas_sscal, cblas_dscal: X<br />
*** cblas_sgemv, cblas_dgemv: X<br />
*** cblas_strmv, cblas_dtrmv: X<br />
*** cblas_stbmv, cblas_dtbmv: X<br />
*** cblas_stpmv, cblas_dtpmv: Ap, X<br />
*** cblas_strsv, cblas_dtrsv: X<br />
*** cblas_stbsv, cblas_dtbsv: X<br />
*** cblas_stpsv, cblas_dtpsv: Ap, X<br />
*** cblas_ssymv, cblas_dsymv: X<br />
*** cblas_ssbmv, cblas_dsbmv: Y<br />
*** cblas_sspmv, cblas_dspmv: Ap, Y<br />
*** cblas_sger, cblas_dger: A<br />
*** cblas_ssyr, cblas_dsyr: A<br />
*** cblas_sspr, cblas_dspr: Ap<br />
*** cblas_ssyr2, cblas_dsyr2: A<br />
*** cblas_sspr2, cblas_dspr2: A<br />
*** cblas_sgemm, cblas_sgemm: C<br />
*** cblas_ssymm, cblas_Dsymm: C<br />
*** cblas_ssyrk, cblas_dsyrk: C<br />
*** cblas_ssyr2k, cblas_dsyr2k: C<br />
*** cblas_strmm, cblas_dtrmm: B<br />
*** cblas_strsm, cblas_strsm: B<br />
** vBLAS (idem)<br />
*** SDOT: X, Y<br />
*** SNRM2: X<br />
*** SASUM: X<br />
*** ISAMAX: X<br />
*** SSWAP: X, Y<br />
*** SCOPY: X, Y<br />
*** SAXPY: X, Y<br />
*** SROT: X, Y<br />
*** SSCAL: X<br />
*** SGEMV, A, X, Y<br />
*** SGEMM: A, B, C<br />
** vDSP (idem)<br />
*** vDSP_sve_svesq, vDSP_sve_svesqD: __vDSP_A<br />
*** vDSP_normalize, vDSP_normalizeD: __vDSP_A, __vDSP_C<br />
<br />
== Windows/x86_64 ==<br />
<br />
=== Exception handling has been changed to be ABI-conformant ===<br />
<br />
* '''Old behaviour''': Exceptions were handled using platform-independent mechanism based on SetJmp/LongJmp.<br />
* '''New behaviour''': Exceptions are handled using OS-provided means. The most important differences from generic handling are as follows:<br />
** Every executable contains a <tt>.pdata</tt> section describing layout of function stack frames. This data is used to perform stack back-tracing. As a consequence, the backtraces generated when exception occurs are no longer dependent of code optimization settings. However, they may be different from ones produced by gdb.<br />
** GNU binutils have troubles creating executables with <tt>.pdata</tt> sections. In particular, ld version < 2.22 crashes at such executables, and using GNU as together with internal linker will strip all <tt>.pdata</tt>, resulting in a non-working executable.<br />
** An exception is handled in two phases. First phase determines the target frame (i.e. the 'except' statement that will handle the exception), the second phase does actual stack unwinding and executing code in 'finally' statements. In contrast, the generic mechanism is single-phase: it starts unwinding immediately and proceeds until an 'except' statement handles the exception or the stack runs out.<br />
* '''Reason''': Multiple compatibility issues with Windows and third-party DLLs (see http://bugs.freepascal.org/view.php?id=12974 and related issues)<br />
* '''Remedy''': No changes are necessary unless your code relies on specific exception handling details. Build programs using FPC's internal assembler and linker, do not use GNU binutils. The entire feature can be disabled by cycling the compiler with <tt>OPT=-dDISABLE_WIN64_SEH</tt> in command line.<br />
<br />
== WinCE ==<br />
<br />
=== Define ''UNICODE'' was changed to ''FPC_OS_UNICODE'' ===<br />
<br />
* '''Old behaviour''': For arm-wince and i386-wince ''UNICODE'' was defined by default.<br />
* '''New behaviour''': For arm-wince and i386-wince ''FPC_OS_UNICODE'' is defined by default.<br />
* '''Reason''': For upcoming support for setting String to UnicodeString the define ''UNICODE'' now is defined if the type String is currently defined as UnicodeString. This is also in so far Delphi compatible that from Delphi 2009 on ''UNICODE'' is defined as well.<br />
* '''Remedy''': Check for ''FPC_OS_UNICODE'' to decide whether the OS only provides a Unicode API (in the sense of Wide- or UnicodeString) and use ''UNICODE'' to decide whether the type String is currently defined as UnicodeString or not.<br />
<br />
== Other == <br />
<br />
=== Stabs support has been disabled for 64 bit targets ===<br />
* '''Old behaviour''': While the default debug information format for 64 bit targets was DWARF (except for AIX, where it's Stabx), it was possible to switch it to Stabs via the -gs command line parameter.<br />
* '''New behaviour''': Only the DWARF debug format is still supported on 64 bit targets (except for AIX, where Stabx is used).<br />
* '''Reason''': Stabs is not well-defined for 64 bit targets, nor well-supported by gdb on those same targets. This can lead to [http://bugs.freepascal.org/view.php?id=23365 problems]<br />
* '''Remedy''': Do not use -gs when compiling for 64 bit targets. If you do so anyway, the compiler will display a warning and keep the previously set (supported) debug format.<br />
<br />
== See also ==<br />
* [[FPC New Features Trunk]]<br />
[[Category:FPC User Changes by release]]</div>
Paul Ishenin
https://wiki.freepascal.org/index.php?title=User_Changes_Trunk&diff=69779
User Changes Trunk
2013-05-08T06:10:07Z
<p>Paul Ishenin: /* RTTI changes */</p>
<hr />
<div>== About this page==<br />
<br />
Below you can find a list of intentional changes since the [[User_Changes_2.6.2|previous release]] that can change the behaviour of previously working code, along with why these changes were performed and how you can adapt your code if you are affected by them. The list of new features can be found [[FPC_New_Features_Trunk|here]].<br />
<br />
== All systems ==<br />
<br />
=== Implementation changes ===<br />
<br />
==== Exception type for object reference checking changed ====<br />
* '''Old behaviour''': When object reference checking (''-CR'' or ''{$OBJECTCHECKS ON}'') is enabled and the unit ''SysUtils'' is used then an exception of class ''Exception'' with localizeable message ''Unknown runtime error 210'' is created.<br />
* '''New behaviour''': Now an exception of class ''EObjectCheck'' with localizeable message ''Object reference is Nil'' is created.<br />
* '''Reason''': All other runtime errors in the 2xx range have approbiate exception types, so it is only natural to have an explicit type for runtime error 210 as well.<br />
* '''Remedy''': If you checked an exception for the message ''Unknown runtime error 210'' you should now check for the exception class ''EObjectCheck''.<br />
<br />
==== Literal storage memory has been made read-only ====<br />
<br />
* '''Old behaviour''': read-only data segments were de-facto not supported, all data could be modified at runtime even if it was not intended for modification (except in some cases on Darwin). This could cause nasty side-effects, e.g the following code:<br />
<br />
<syntaxhighlight><br />
uses sysutils;<br />
var<br />
s: ansistring;<br />
begin<br />
s := 'ansi string';<br />
Writeln(AnsiStrUpper(pchar(s)));<br />
s := 'ansi string';<br />
Writeln(s);<br />
end.<br />
</syntaxhighlight><br />
<br />
would modify the content of data segment and print<br />
<br />
ANSI STRING<br />
ANSI STRING<br />
<br />
* '''New behaviour''': Data that is not intended to be modified at runtime is put into read-only segment. This includes literal constants used in expressions and typed constants declared in {$J-} state. The code which modifies such data, like the example above, will now crash.<br />
* '''Reason''': This is consistent with the way other compilers, including Delphi, work. Keeping as much as possible data read-only improves loading speed of programs because read-only pages can be mapped directly on executable file, and also improves security of programs.<br />
* '''Remedy''': Depends on the code. In the example above, it is sufficient to call <tt>UniqueString(s)</tt> before <tt>AnsiStrUpper</tt><br />
<br />
==== ''UNICODE'' is defined depending on the mode switch ====<br />
* '''Old behaviour''': When the modeswitch was changed the definition of ''UNICODE'' was not changed.<br />
* '''New behaviour''': If the modeswitch is changed to ''delphiunicode'' the ''UNICODE'' will be defined otherwise it will be undefined.<br />
* '''Reason''': In Delphi 2009 and newer the type String is defined as UnicodeString and ''UNICODE'' is defined there by default as well. For improved Delphi compatibility ''UNICODE'' will be automatically defined if the String type is set to be equal to UnicodeString.<br />
* '''Remedy''': Don't rely on checks for ''UNICODE'' before the mode switches. Also compile time checks for ''UNICODE'' that appear after a modeswitch like ''objfpc'' or ''delphi'' will no longer be evaluated to true.<br />
<br />
=== RTTI changes ===<br />
<br />
==== RTTI for Pointers and Class References ====<br />
* '''Old behavior''': Pointers and Class References had tkUnknown RTTI.<br />
* '''New behavior''': Pointers now have tkPointer and Class References tkClassRef RTTI types. They now contain a reference to a type they point to.<br />
* '''Reason''': Both user requests and Delphi compatibility.<br />
* '''Remedy''': TTypeKind enumeration has more members than before. Adjust your code which depends on TTypeKind.<br />
<br />
==== RTTI for AnsiStrings ====<br />
* '''Old behavior''': AnsiString RTTI did not have CodePage information.<br />
* '''New behavior''': New CodePage member is added for tkAString type.<br />
* '''Reason''': Requires for serializing/deserializing of AnsiString published properties. Delphi compatibility.<br />
* '''Remedy''': not known<br />
<br />
==== RTTI for Arrays ====<br />
* '''Old behavior''': tkArray had no member in TTypeData record but internally compiler stored the next members: first dimension size, first dimension element count and first dimension element type. So for 2 dimension array element type was array for the second dimension.<br />
* '''New behavior''': tkArray now has TArrayTypeData structure in TTypeData. It has the next members: total array size including all dimensions, total element count, last dimension element type, number of dimensions, type information for each dimension range.<br />
* '''Reason''': more informative RTTI. Delphi compatibility.<br />
* '''Remedy''': If your code internally used old RTTI array information you will need to adopt it.<br />
<br />
==== RTTI for Records ====<br />
* '''Old behavior''': Records RTTI stored field Offsets as 32bit integers.<br />
* '''New behavior''': Records RTTI stores field Offsets as platform dependent integers (the same size as pointers).<br />
* '''Reason''': Internally compiler stored Offsets as platform dependent integers. Delphi compatibility.<br />
* '''Remedy''': You need to adjust your code if you used field offsets of record RTTI. This is also true if you manually processed vInitTable field of class VMT.<br />
<br />
==== RTTI for Procedural Variables ====<br />
* '''Old behavior''': tkProcVar had no member in TTypeData record and compiler stored no info the this type.<br />
* '''New behavior''': tkProcVar now has TProcedureSignature structure in TTypeData which contains information about calling convention, result type and parameters information.<br />
* '''Reason''': User request. More informative RTTI. Delphi compatibility.<br />
* '''Remedy''': not known<br />
<br />
The next program shows how to work with new RTTI properties:<br />
<syntaxhighlight><br />
program RTTIInfo;<br />
<br />
{$mode objfpc}{$H+}<br />
uses<br />
typinfo;<br />
<br />
type<br />
CP866String = type AnsiString(866);<br />
TProc = procedure(var A: Integer; S: String); stdcall;<br />
TColor = (red, green, blue);<br />
TArr = array[TColor,0..3] of Integer;<br />
PArr = ^TArr;<br />
<br />
procedure DescribeProcedure(Info: PTypeInfo);<br />
const<br />
ParamFlagToStr: array[TParamFlag] of AnsiString = (<br />
'var',<br />
'const',<br />
'array',<br />
'address',<br />
'reference',<br />
'out'<br />
);<br />
CallConvToStr: array[TCallConv] of AnsiString = (<br />
'register',<br />
'cdecl',<br />
'pascal',<br />
'stdcall',<br />
'safecall',<br />
'cppdecl',<br />
'far16',<br />
'oldFPCcall',<br />
'internProc',<br />
'SysCall',<br />
'SoftFloat',<br />
'MWPascal'<br />
);<br />
var<br />
Data: PTypeData;<br />
Param: PProcedureParam;<br />
ParamFlags: TParamFlags;<br />
ParamFlag: TParamFlag;<br />
I: Integer;<br />
Res, S, TypeName: String;<br />
begin<br />
if Info^.Kind <> tkProcedure then<br />
Exit;<br />
Data := GetTypeData(Info);<br />
if Data^.ProcSig.CC <> ccStdCall then<br />
halt(2);<br />
if Data^.ProcSig.ResultType <> nil then<br />
begin<br />
Res := 'function ' + Info^.Name;<br />
TypeName := ': ' + Data^.ProcSig.ResultType^.Name;<br />
end<br />
else<br />
begin<br />
Res := 'procedure ' + Info^.Name;<br />
TypeName := '';<br />
end;<br />
if Data^.ProcSig.ParamCount > 0 then<br />
begin<br />
Res := Res + '(';<br />
Param := PProcedureParam(PAnsiChar(@Data^.ProcSig.Flags) + SizeOf(TProcedureSignature));<br />
for I := 0 to Data^.ProcSig.ParamCount - 1 do<br />
begin<br />
S := '';<br />
ParamFlags := TParamFlags(Param^.Flags);<br />
for ParamFlag := Low(TParamFlag) to High(TParamFlag) do<br />
if ParamFlag in ParamFlags then<br />
S := S + ParamFlagToStr[ParamFlag] + ' ';<br />
S := S + Param^.Name + ': ' + Param^.ParamType^.Name;<br />
if I > 0 then<br />
Res := Res + '; ';<br />
Res := Res + S;<br />
Param := PProcedureParam(PAnsiChar(@Param^.Name) + (Length(Param^.Name) + 1) * SizeOf(AnsiChar));<br />
end;<br />
Res := Res + ')';<br />
end;<br />
Res := Res + TypeName + '; ' + CallConvToStr[Data^.ProcSig.CC] + ';';<br />
WriteLn(Res);<br />
end;<br />
<br />
procedure DescribeAnsiString(Info: PTypeInfo);<br />
var<br />
Data: PTypeData;<br />
begin<br />
if Info^.Kind <> tkAString then<br />
Exit;<br />
Data := GetTypeData(Info);<br />
if Data^.CodePage = 0 then<br />
WriteLn('AnsiString')<br />
else<br />
WriteLn('type AnsiString(',Data^.CodePage,');');<br />
end;<br />
<br />
procedure DescribeArray(Info: PTypeInfo);<br />
var<br />
Data: PTypeData;<br />
Res: String;<br />
I: Integer;<br />
begin<br />
if Info^.Kind <> tkArray then<br />
Exit;<br />
Data := GetTypeData(Info);<br />
Res := 'array[';<br />
for I := 0 to Data^.ArrayData.DimCount - 1 do<br />
begin<br />
if I > 0 then<br />
Res := Res + ', ';<br />
Res := Res + Data^.ArrayData.Dims[I]^.Name;<br />
end;<br />
Res := Res + '] of ' + Data^.ArrayData.ElType^.Name + ';';<br />
WriteLn(Res);<br />
end;<br />
<br />
procedure DescribePointer(Info: PTypeInfo);<br />
var<br />
Data: PTypeData;<br />
begin<br />
if Info^.Kind <> tkPointer then<br />
Exit;<br />
Data := GetTypeData(Info);<br />
if Data^.RefType = nil then<br />
WriteLn('Pointer;')<br />
else<br />
WriteLn('^', Data^.RefType^.Name, ';');<br />
end;<br />
<br />
begin<br />
DescribeProcedure(TypeInfo(TProc));<br />
DescribeAnsiString(TypeInfo(CP866String));<br />
DescribeArray(TypeInfo(TArr));<br />
DescribePointer(TypeInfo(PArr));<br />
DescribePointer(TypeInfo(Pointer));<br />
end.<br />
</syntaxhighlight><br />
<br />
=== Unit changes ===<br />
<br />
==== TBookmark TBookmarkstr and TDataset.Bookmark change to Delphi2009+ compatible definitions ====<br />
* '''Old behaviour''': TDataset.Bookmark was of type TBookmarkstr, TBookmarkstr=string, Tbookmark=pointer<br />
* '''New behaviour''': TDataset.Bookmark is of type TBookmark, TBookmarkstr=ansistring, TBookmark=TBytes. TBookmarkstr will trigger a deprecated warning.<br />
* '''Reason''': D2009+ compatibility, where probably the fact that string became a 2-byte encoding was the trigger.<br />
* '''Remedy''': Adjust typing in descendents and using code accordingly.<br />
<br />
==== FileNameCaseSensitive and FileNameCasePreserving in unit System ====<br />
* '''Old behaviour''': There was only one constant (FileNameCaseSensitive) which signalized behaviour of the respective target platform with regard to the case in filenames. This was often set to true also on platforms not really treating filenames in case sensitive manner (e.g. Win32 and Win64).<br />
* '''New behaviour''': FileNameCaseSensitive is set to true only on platforms which really treat filenames in case sensitive manner and FileNameCasePreserving constant is added to unit system of all platforms to signalize whether the case in filenames supplied when creating or renaming them is preserved or not. This might possibly break existing user code relying on the previous (sometimes incorrect) value of FileNameCaseSensitive.<br />
* '''Reason''': In reality, there are two distinct types of behaviour. If a platform is case sensitive, searching for file "a" will never result in finding file "A" whereas case insensitive platform will happily return "A" if such a file is found on the disk. If a platform is case preserving, it will store file "a" as "a" on disk whereas case non-preserving platform may convert the filenames to uppercase before storing them on disk (i.e. file "a" is in reality stored as "A"). Case non-preserving platforms are never case sensitive, but case preserving platforms may or may not be case sensitive at the same time.<br />
* '''Remedy''': Review your existing code using FileNameCaseSensitive, check which of the two properties described above fit the particular purpose in your case and change to FileNameCasePreserving where appropriate.<br />
<br />
==== Some longtime deprecated functions in unit Unix have been removed. ====<br />
* '''Old behaviour''': Unix.(f)statfs, Unix.shell and Unix.fsync symbols existed in unit Unix <br />
* '''New behaviour''': Unix.(f)statfs, Unix.shell and Unix.fsync were removed<br />
* '''Reason''': These were helper functions and leftovers from the 1.0.x->2.0.0 conversion, deprecated since 2007. Shell had non standarized conventions<br />
* '''Remedy''': All but shell: use the same functions with a "fp" prefix. Shell: use fpsystem. If you checked the return value for other values than -1, a modification of the errorchecking might be necessary. Refer to your *nix documention, or have a look at the transformfpsystemtoshell function in tests/util/redir.pp in the FPC sources to see what a quick fix looks like.<br />
<br />
==== statfs has been renamed to fpstatfs ====<br />
* '''Old behaviour''': One overload of fpstatfs was not renamed from statfs to fpstatfs (around 2.4.0)<br />
* '''New behaviour''': The function has been renamed.<br />
* '''Reason''': Should have been done in 2.4.0 to begin with, but was postponed several times to coincide with a major version change. <br />
* '''Remedy''': Use fpstatfs<br />
<br />
==== RTLeventsync has been removed ====<br />
* '''Old behaviour''': The thread manager record contained an ''rtleventsync'' field, and the RTL had an ''RTLeventsync'' routine. No functionality for this routine was implemented in the FPC-supplied thread manager for any platform.<br />
* '''New behaviour''': The field and routine have been removed.<br />
* '''Reason''': The functionality was not available on any platform by default, and we're not aware of any third party thread manager that implemented them or third party code that relied on it. Additionally, the routine was documented as "Obsolete. Don't use.", without any explanation of what it was supposed to do.<br />
* '''Remedy''': Remove any such calls from your code.<br />
<br />
==== TODBCConnection (odbcconn) No longer autocommit ====<br />
* '''Old behaviour''': Autocommit was enabled: Every change was committed to the database at once.<br />
* '''New behaviour''': Changes must be committed explicitly using Transaction.Commit<br />
* '''Reason''': Transactions are useless if everything is autocommitted: in particular; rollback is not possible.<br />
* '''Remedy''': You can enable autocommit by specifying AUTOCOMMIT=1 in the params of TODBCConnection.<br />
<br />
==== FPCanvas Strikethough property spelling fixed to StrikeThrough ====<br />
* '''Old behaviour''': Fonts had a Striketrough property which is a typo.<br />
* '''New behaviour''': The property has been changed to Strikethrough.<br />
* '''Reason''': Spelling fix.<br />
* '''Remedy''': Please rename property calls in your code. FPC 2.6.2 contains both versions so there is a window for adaptation.<br />
<br />
==== TVersionInfo (fileinfo unit) re-implemented in a platform independent way ====<br />
* '''Old behaviour''': GetVersionSetting method would read file information.<br />
* '''New behaviour''': The ReadFileInfo call will read the information. The global GetProgramVersion call will extract the program major/minor/revision/build version in 1 single call.<br />
* '''Reason''': The unit now uses FPC resources on all platforms, and can now be used to read external resources.<br />
* '''Remedy''': Use the ReadFileInfo call to get the version information. Add relevant units for desired resource support to your uses clause; e.g. if you need to read Windows .exe file info, add winpeimagereader<br />
<br />
==== TDBF unit deprecation removed ====<br />
* '''Old behaviour''': the TDBF units were marked deprecated because the original maintainer of the upstream project stopped maintenance. However, the unit remained in fcl-db and patches were still accepted.<br />
* '''New behaviour''': the deprecation warning is removed. There is a new upstream project maintainer and FPC database devs support this unit again. Note: there is a known problem: TDBF will not work on ARM processors due to alignment issues (http://bugs.freepascal.org/view.php?id=22177). This will only be fixed if a patch is provided, and proven to not produce regressions (e.g. by tests in the FPC db test framework)<br />
* '''Remedy''': N/A<br />
<br />
==== shlobj symbols removed from unit Windows ====<br />
* '''Old behaviour''': When unit windows was splitted between unit windows and shlobj, not all shlobj symbols were removed from Windows. Currently these are being deprecated, and will be removed in next major version.<br />
* '''New behaviour''': shlobj symbols won't be in Windows, code relying on that will fail to compile if it doesn't import shlobj<br />
* '''Reason''': shlobj and windows versions were not compatible and lead to errors. <br />
* '''Remedy''': put shlobj in your uses, if not there already.<br />
<br />
=== Language Changes ===<br />
<br />
==== Variant overload preference for string types ====<br />
* '''Old behaviour''': Preference for string types was (from better to worse): ShortString, AnsiString, WideString, UnicodeString<br />
* '''New behaviour''': Preference for string types now (from better to worse): WideString, UnicodeString, AnsiString, ShortString<br />
* '''Reason''': Unicode characters and codepage information will not lose during the conversion and unicode Delphi compatibility.<br />
* '''Remedy''': Use explicit conversion (e.g. ShortString(V)) if it is needed to pass variant to routine with paticular string type argument.<br />
<br />
==== Default values in implementation but not in interface/forward declaration ====<br />
* '''Old behaviour''': The implementation of a routine could declare default values even if the interface declaration did not have any.<br />
* '''New behaviour''': Default values, if any, must be specified in the interface. They can be repeated in the implementation, but that is not required (just like it was not in the past).<br />
* '''Reason''': Default parameters specified only in the implementation are not, and cannot, be propagated to the interface since a unit's interface can be used before the implementation has been parsed (see http://bugs.freepascal.org/view.php?id=19434), Delphi compatibility.<br />
* '''Remedy''': Always specify default parameter values (also) in the interface/forward declaration of a routine.<br />
<br />
==== Default values are now properly typechecked ====<br />
* '''Old behaviour''': The compiler did not detect default values for parameters of which the type did not in any way correspond to the parameter type. <br />
* '''New behaviour''': The compiler now properly checks whether the type of the constant matches the parameter's type when parsing default values.<br />
* '''Reason''': Proper type checking is one of the fundamental properties of the Pascal language; Delphi compatibility.<br />
* '''Remedy''': Add a typecast around default values that now result in compiler errors, or correct the type of such parameters.<br />
<br />
==== Recursive parameterless function calls in MacPas mode ====<br />
* '''Old behaviour''': When using the name of a function inside its own body on the right hand side of an expression, the compiler treated this as a read of the last value assigned to the function result in MacPas mode.<br />
* '''New behaviour''': The compiler will now treat such occurrences of the function name as recursive function calls in MacPas mode.<br />
* '''Reason''': Compatibility with Mac Pascal compilers.<br />
* '''Remedy''': If you wish to read the current function result value, compile the code with ''{$modeswitch result}'', after which you can use the ''result'' alias for that value. Note that the use of this mode switch can also result in [[User_Changes_2.6.0#Implicit_.22result.22_variable_in_MacPas_mode|different behaviour]] compared to traditional Mac Pascal compilers.<br />
<br />
==== "''strict protected''" visibility modifier ====<br />
* '''Old behaviour''': ''strict protected'' did not correctly limit the visibility of symbols declared in different units.<br />
* '''New behaviour''': ''strict protected'' symbols can now only be accessed from descendent classes, regardless of where they are defined.<br />
* '''Reason''': Fix behaviour to conform to specification/documentation, Delphi compatibility.<br />
* '''Remedy''': Use ''protected'' or ''public'' if less strict accessibility checks are desired.<br />
<br />
==== support for type helpers added ====<br />
* '''Old behaviour''': In modes ''ObjFPC'' and ''MacPas'' it was possible to declare a unique type of a type ''helper''.<br />
* '''New behaviour''': The compiler now interprets the keyword ''helper'' as a helper type if it immediately follows the ''type'' keyword (but only if the mode is ''ObjFPC'' or ''MacPas'' or the mode switch ''Class'' is set).<br />
* '''Example''':<br />
<syntaxhighlight><br />
{$mode objfpc}<br />
type<br />
helper = LongInt;<br />
<br />
otherhelper = type helper;<br />
</syntaxhighlight><br />
The above code will no longer compile.<br />
* '''Reason''': ''type helper'' is a more logical way to declare helpers for primitive types than Delphi's ''record helper'' is.<br />
* '''Remedy''': Escape the keyword ''helper'' using a ''&''. E.g.:<br />
<syntaxhighlight><br />
{$mode objfpc}<br />
type<br />
helper = LongInt;<br />
<br />
otherhelper = type &helper;<br />
</syntaxhighlight><br />
<br />
==== "''strict protected''" and "''protected''" visibility modifier in extended records ====<br />
* '''Old behaviour''': ''strict protected'' and ''protected'' could be used used in extended records.<br />
* '''New behaviour''': ''strict protected'' and ''protected'' are no longer allowed in extended records.<br />
* '''Reason''': The only difference between ''(strict) protected'' and ''(strict) private'' is that the former allows you to access members of a parent class or object. As records don't support inheritence it makes no sense to support ''(strict) protected'' in them. This is also Delphi-compatible.<br />
* '''Remedy''': Use ''private'' instead of ''protected'' and ''strict private'' instead of ''strict protected''.<br />
<br />
==== "''static''" directive on non-class methods ====<br />
* '''Old behaviour''': It was possible to use the ''static'' on normal, non-''class'' methods<br />
* '''New behaviour''': The compiler now generates an error if ''static'' is used on normal, non-''class'' methods (except in ''object'' types)<br />
* '''Reason''': It is only correct to leave out the ''Self'' parameter if it is a class method. This is also Delphi compatible.<br />
* '''Remedy''': Prepend the ''class'' keyword to the method.<br />
<br />
==== "''static''" directive on class operators ====<br />
* '''Old behaviour''': It was possible to use the ''static'' on class operators.<br />
* '''New behaviour''': The compiler now generates an error if ''static'' is used on class operators.<br />
* '''Reason''': Class operators are by definition static, thus the ''static'' would be redundant. This is also Delphi compatible.<br />
* '''Remedy''': Remove the ''static'' keyword from class operators.<br />
<br />
====Classes implementing forward-declared interfaces====<br />
* '''Old behaviour''': It was possible to declare classes as implementing a forward-declared interface.<br />
* '''New behaviour''': Classes can no longer implement forward-declared interfaces.<br />
* '''Reason''': This occasionally [http://bugs.freepascal.org/view.php?id=24184 caused crashes], the compiler did not check in such a case whether the class actually implemented the methods of that interface. Recent versions of Delphi also reject such constructs.<br />
* '''Remedy''': If there is a cyclic dependency between a class and an interface, use a forward declaration for the class instead.<br />
<br />
====Using the function name as alias for loading its current result value in MacPas mode====<br />
* '''Old behaviour''': Inside a function the name of the function could be used on the right hand side (RHS) of an expression in order to refer to the current value of the function result.<br />
* '''New behaviour''': Using the name of a function on the RHS of an expression inside that function's body now always results in a recursive function call.<br />
* '''Reason''': The old behaviour existed because under '''some''' circumstances CodeWarrior behaved that way. Under other circumstances [http://bugs.freepascal.org/view.php?id=22344 it however behaves according to the new rule] and there appears to be no definition available of when it does what. Since it is easier to fix a compilation error than to find out where an intended recursive function call is not doing anything, we opted to change the behaviour.<br />
* '''Remedy''': Either use a temporary local variable to hold the function result if you want to reuse it on the RHS of other expressions, or add '''{$modeswitch result}''' and use the '''result''' pseudo-variable as an alias for the function result.<br />
<br />
== Unix platforms ==<br />
<br />
=== cthreads: critical sections and recursive mutex support ===<br />
* '''Old behaviour''': If the ''cthreads'' unit thread manager was used on a platform without recursive mutex support, critical sections were non-reentrant.<br />
* '''New behaviour''': Initialising a critical section under the above circumstances will now result in a run time error.<br />
* '''Reason''': One of the basic properties of (Delphi/Windows-compatible) critical sections is that they are reentrant, and that is how they are generally used in Pascal code.<br />
* '''Remedy''': Use an RTLEvent instead if reentrancy is not required.<br />
<br />
<br />
== Darwin/i386 and iPhoneSim/i386 ==<br />
<br />
=== Location of certain function result types ===<br />
* '''Old behaviour''': Small records and method pointers were always returned according to the official ABI.<br />
* '''New behaviour''': When a calling convention other than ''cdecl'', ''cppdecl'' or ''mwpascal'' is used, the same convention as on other platforms is now used.<br />
* '''Reason''': Better compatibility with assembler code written for other platforms.<br />
* '''Remedy''': Update your assembler code, or better: if possible, convert it to Pascal.<br />
<br />
== All Darwin/Mac OS X/iOS ==<br />
===MacOSAll unit: changed parameter and opaque types===<br />
<br />
* '''Change''': The headers have been updated to the Mac OS X 10.8 SDK, and in this process a number of signatures have been changed/corrected, and several opaque types have been changed from ^SInt32 into pointers to different/incompatible empty records.<br />
* '''Reason''': The reasons for the signature changes are detailed below. The opaque types have been made incompatible so that the compiler can give error messages when trying to use one opaque type instead of another (e.g., in the past the compiler did not complain when passing a ControlRef to a routine that expected a WindowPtr).<br />
* '''Remedy''': Adjust your code to conform to the new signatures. Regarding the opaque types, that means that these types are no longer assignment-compatible. Some of the more prominent ones that may affect existing, correct, code are HIObject and ControlRef=HIViewRef. This may require adding typecasts to keep code compiling (the same typecasts are required in C)<br />
* '''Changes:''' (apart from the opaque type changes)<br />
** CGGLContextCreate : fixed first parameter (was "var", now is value parameter)<br />
** CFHostGetAddressing: var hasBeenResolved: boolean -> booleanptr because can be nil<br />
** CFHostGetNames: var hasBeenResolved: boolean -> booleanptr because can be nil<br />
** ColorSyncIterateInstalledProfiles: var seed: UInt32 -> UInt32Ptr because can be nil<br />
** AudioStreamGetPropertyInfo: outSize and outWritable changed to pointer because can be nil<br />
** cblas (several var-parametes changed to pointers because they represent arrays):<br />
*** cblas_sswap, cblas_dswap: X, Y<br />
*** cblas_scopy, cblas_dcopy: Y<br />
*** cblas_saxpy, cblas_daxpy: Y<br />
*** catlas_saxpby, catlas_daxpby: Y<br />
*** catlas_sset, catlas_dset: X<br />
*** cblas_sscal, cblas_dscal: X<br />
*** cblas_sgemv, cblas_dgemv: X<br />
*** cblas_strmv, cblas_dtrmv: X<br />
*** cblas_stbmv, cblas_dtbmv: X<br />
*** cblas_stpmv, cblas_dtpmv: Ap, X<br />
*** cblas_strsv, cblas_dtrsv: X<br />
*** cblas_stbsv, cblas_dtbsv: X<br />
*** cblas_stpsv, cblas_dtpsv: Ap, X<br />
*** cblas_ssymv, cblas_dsymv: X<br />
*** cblas_ssbmv, cblas_dsbmv: Y<br />
*** cblas_sspmv, cblas_dspmv: Ap, Y<br />
*** cblas_sger, cblas_dger: A<br />
*** cblas_ssyr, cblas_dsyr: A<br />
*** cblas_sspr, cblas_dspr: Ap<br />
*** cblas_ssyr2, cblas_dsyr2: A<br />
*** cblas_sspr2, cblas_dspr2: A<br />
*** cblas_sgemm, cblas_sgemm: C<br />
*** cblas_ssymm, cblas_Dsymm: C<br />
*** cblas_ssyrk, cblas_dsyrk: C<br />
*** cblas_ssyr2k, cblas_dsyr2k: C<br />
*** cblas_strmm, cblas_dtrmm: B<br />
*** cblas_strsm, cblas_strsm: B<br />
** vBLAS (idem)<br />
*** SDOT: X, Y<br />
*** SNRM2: X<br />
*** SASUM: X<br />
*** ISAMAX: X<br />
*** SSWAP: X, Y<br />
*** SCOPY: X, Y<br />
*** SAXPY: X, Y<br />
*** SROT: X, Y<br />
*** SSCAL: X<br />
*** SGEMV, A, X, Y<br />
*** SGEMM: A, B, C<br />
** vDSP (idem)<br />
*** vDSP_sve_svesq, vDSP_sve_svesqD: __vDSP_A<br />
*** vDSP_normalize, vDSP_normalizeD: __vDSP_A, __vDSP_C<br />
<br />
== Windows/x86_64 ==<br />
<br />
=== Exception handling has been changed to be ABI-conformant ===<br />
<br />
* '''Old behaviour''': Exceptions were handled using platform-independent mechanism based on SetJmp/LongJmp.<br />
* '''New behaviour''': Exceptions are handled using OS-provided means. The most important differences from generic handling are as follows:<br />
** Every executable contains a <tt>.pdata</tt> section describing layout of function stack frames. This data is used to perform stack back-tracing. As a consequence, the backtraces generated when exception occurs are no longer dependent of code optimization settings. However, they may be different from ones produced by gdb.<br />
** GNU binutils have troubles creating executables with <tt>.pdata</tt> sections. In particular, ld version < 2.22 crashes at such executables, and using GNU as together with internal linker will strip all <tt>.pdata</tt>, resulting in a non-working executable.<br />
** An exception is handled in two phases. First phase determines the target frame (i.e. the 'except' statement that will handle the exception), the second phase does actual stack unwinding and executing code in 'finally' statements. In contrast, the generic mechanism is single-phase: it starts unwinding immediately and proceeds until an 'except' statement handles the exception or the stack runs out.<br />
* '''Reason''': Multiple compatibility issues with Windows and third-party DLLs (see http://bugs.freepascal.org/view.php?id=12974 and related issues)<br />
* '''Remedy''': No changes are necessary unless your code relies on specific exception handling details. Build programs using FPC's internal assembler and linker, do not use GNU binutils. The entire feature can be disabled by cycling the compiler with <tt>OPT=-dDISABLE_WIN64_SEH</tt> in command line.<br />
<br />
== WinCE ==<br />
<br />
=== Define ''UNICODE'' was changed to ''FPC_OS_UNICODE'' ===<br />
<br />
* '''Old behaviour''': For arm-wince and i386-wince ''UNICODE'' was defined by default.<br />
* '''New behaviour''': For arm-wince and i386-wince ''FPC_OS_UNICODE'' is defined by default.<br />
* '''Reason''': For upcoming support for setting String to UnicodeString the define ''UNICODE'' now is defined if the type String is currently defined as UnicodeString. This is also in so far Delphi compatible that from Delphi 2009 on ''UNICODE'' is defined as well.<br />
* '''Remedy''': Check for ''FPC_OS_UNICODE'' to decide whether the OS only provides a Unicode API (in the sense of Wide- or UnicodeString) and use ''UNICODE'' to decide whether the type String is currently defined as UnicodeString or not.<br />
<br />
== Other == <br />
<br />
=== Stabs support has been disabled for 64 bit targets ===<br />
* '''Old behaviour''': While the default debug information format for 64 bit targets was DWARF (except for AIX, where it's Stabx), it was possible to switch it to Stabs via the -gs command line parameter.<br />
* '''New behaviour''': Only the DWARF debug format is still supported on 64 bit targets (except for AIX, where Stabx is used).<br />
* '''Reason''': Stabs is not well-defined for 64 bit targets, nor well-supported by gdb on those same targets. This can lead to [http://bugs.freepascal.org/view.php?id=23365 problems]<br />
* '''Remedy''': Do not use -gs when compiling for 64 bit targets. If you do so anyway, the compiler will display a warning and keep the previously set (supported) debug format.<br />
<br />
== See also ==<br />
* [[FPC New Features Trunk]]<br />
[[Category:FPC User Changes by release]]</div>
Paul Ishenin
https://wiki.freepascal.org/index.php?title=User_Changes_Trunk&diff=69778
User Changes Trunk
2013-05-08T03:08:13Z
<p>Paul Ishenin: /* RTTI changes */</p>
<hr />
<div>== About this page==<br />
<br />
Below you can find a list of intentional changes since the [[User_Changes_2.6.2|previous release]] that can change the behaviour of previously working code, along with why these changes were performed and how you can adapt your code if you are affected by them. The list of new features can be found [[FPC_New_Features_Trunk|here]].<br />
<br />
== All systems ==<br />
<br />
=== Implementation changes ===<br />
<br />
==== Exception type for object reference checking changed ====<br />
* '''Old behaviour''': When object reference checking (''-CR'' or ''{$OBJECTCHECKS ON}'') is enabled and the unit ''SysUtils'' is used then an exception of class ''Exception'' with localizeable message ''Unknown runtime error 210'' is created.<br />
* '''New behaviour''': Now an exception of class ''EObjectCheck'' with localizeable message ''Object reference is Nil'' is created.<br />
* '''Reason''': All other runtime errors in the 2xx range have approbiate exception types, so it is only natural to have an explicit type for runtime error 210 as well.<br />
* '''Remedy''': If you checked an exception for the message ''Unknown runtime error 210'' you should now check for the exception class ''EObjectCheck''.<br />
<br />
==== Literal storage memory has been made read-only ====<br />
<br />
* '''Old behaviour''': read-only data segments were de-facto not supported, all data could be modified at runtime even if it was not intended for modification (except in some cases on Darwin). This could cause nasty side-effects, e.g the following code:<br />
<br />
<syntaxhighlight><br />
uses sysutils;<br />
var<br />
s: ansistring;<br />
begin<br />
s := 'ansi string';<br />
Writeln(AnsiStrUpper(pchar(s)));<br />
s := 'ansi string';<br />
Writeln(s);<br />
end.<br />
</syntaxhighlight><br />
<br />
would modify the content of data segment and print<br />
<br />
ANSI STRING<br />
ANSI STRING<br />
<br />
* '''New behaviour''': Data that is not intended to be modified at runtime is put into read-only segment. This includes literal constants used in expressions and typed constants declared in {$J-} state. The code which modifies such data, like the example above, will now crash.<br />
* '''Reason''': This is consistent with the way other compilers, including Delphi, work. Keeping as much as possible data read-only improves loading speed of programs because read-only pages can be mapped directly on executable file, and also improves security of programs.<br />
* '''Remedy''': Depends on the code. In the example above, it is sufficient to call <tt>UniqueString(s)</tt> before <tt>AnsiStrUpper</tt><br />
<br />
==== ''UNICODE'' is defined depending on the mode switch ====<br />
* '''Old behaviour''': When the modeswitch was changed the definition of ''UNICODE'' was not changed.<br />
* '''New behaviour''': If the modeswitch is changed to ''delphiunicode'' the ''UNICODE'' will be defined otherwise it will be undefined.<br />
* '''Reason''': In Delphi 2009 and newer the type String is defined as UnicodeString and ''UNICODE'' is defined there by default as well. For improved Delphi compatibility ''UNICODE'' will be automatically defined if the String type is set to be equal to UnicodeString.<br />
* '''Remedy''': Don't rely on checks for ''UNICODE'' before the mode switches. Also compile time checks for ''UNICODE'' that appear after a modeswitch like ''objfpc'' or ''delphi'' will no longer be evaluated to true.<br />
<br />
=== RTTI changes ===<br />
<br />
==== RTTI for Pointers and Class References ====<br />
* '''Old behavior''': Pointers and Class References had tkUnknown RTTI.<br />
* '''New behavior''': Pointers now have tkPointer and Class References tkClassRef RTTI types. They now contain a reference to a type they point to.<br />
* '''Reason''': Both user requests and Delphi compatibility.<br />
* '''Remedy''': TTypeKind enumeration has more members than before. Adjust your code which depends on TTypeKind.<br />
<br />
==== RTTI for AnsiStrings ====<br />
* '''Old behavior''': AnsiString RTTI did not have CodePage information.<br />
* '''New behavior''': New CodePage member is added for tkAString type.<br />
* '''Reason''': Requires for serializing/deserializing of AnsiString published properties. Delphi compatibility.<br />
* '''Remedy''': not known<br />
<br />
==== RTTI for Arrays ====<br />
* '''Old behavior''': tkArray had no member in TTypeData record but internally compiler stored the next members: first dimension size, first dimension element count and first dimension element type. So for 2 dimension array element type was array for the second dimension.<br />
* '''New behavior''': tkArray now has TArrayTypeData structure in TTypeData. It has the next members: total array size including all dimensions, total element count, last dimension element type, number of dimensions, type information for each dimension range.<br />
* '''Reason''': more informative RTTI. Delphi compatibility.<br />
* '''Remedy''': If your code internally used old RTTI array information you will need to adopt it.<br />
<br />
==== RTTI for Records ====<br />
* '''Old behavior''': Records RTTI stored field Offsets as 32bit integers.<br />
* '''New behavior''': Records RTTI stores field Offsets as platform dependent integers (the same size as pointers).<br />
* '''Reason''': Internally compiler stored Offsets as platform dependent integers. Delphi compatibility.<br />
* '''Remedy''': You need to adjust your code if you used field offsets of record RTTI. This is also true if you manually processed vInitTable field of class VMT.<br />
<br />
==== RTTI for Procedural Variables ====<br />
* '''Old behavior''': tkProcVar had no member in TTypeData record and compiler stored no info the this type.<br />
* '''New behavior''': tkProcVar now has TProcedureSignature structure in TTypeData which contains information about calling convention, result type and parameters information.<br />
* '''Reason''': User request. More informative RTTI. Delphi compatibility.<br />
* '''Remedy''': not known<br />
<br />
=== Unit changes ===<br />
<br />
==== TBookmark TBookmarkstr and TDataset.Bookmark change to Delphi2009+ compatible definitions ====<br />
* '''Old behaviour''': TDataset.Bookmark was of type TBookmarkstr, TBookmarkstr=string, Tbookmark=pointer<br />
* '''New behaviour''': TDataset.Bookmark is of type TBookmark, TBookmarkstr=ansistring, TBookmark=TBytes. TBookmarkstr will trigger a deprecated warning.<br />
* '''Reason''': D2009+ compatibility, where probably the fact that string became a 2-byte encoding was the trigger.<br />
* '''Remedy''': Adjust typing in descendents and using code accordingly.<br />
<br />
==== FileNameCaseSensitive and FileNameCasePreserving in unit System ====<br />
* '''Old behaviour''': There was only one constant (FileNameCaseSensitive) which signalized behaviour of the respective target platform with regard to the case in filenames. This was often set to true also on platforms not really treating filenames in case sensitive manner (e.g. Win32 and Win64).<br />
* '''New behaviour''': FileNameCaseSensitive is set to true only on platforms which really treat filenames in case sensitive manner and FileNameCasePreserving constant is added to unit system of all platforms to signalize whether the case in filenames supplied when creating or renaming them is preserved or not. This might possibly break existing user code relying on the previous (sometimes incorrect) value of FileNameCaseSensitive.<br />
* '''Reason''': In reality, there are two distinct types of behaviour. If a platform is case sensitive, searching for file "a" will never result in finding file "A" whereas case insensitive platform will happily return "A" if such a file is found on the disk. If a platform is case preserving, it will store file "a" as "a" on disk whereas case non-preserving platform may convert the filenames to uppercase before storing them on disk (i.e. file "a" is in reality stored as "A"). Case non-preserving platforms are never case sensitive, but case preserving platforms may or may not be case sensitive at the same time.<br />
* '''Remedy''': Review your existing code using FileNameCaseSensitive, check which of the two properties described above fit the particular purpose in your case and change to FileNameCasePreserving where appropriate.<br />
<br />
==== Some longtime deprecated functions in unit Unix have been removed. ====<br />
* '''Old behaviour''': Unix.(f)statfs, Unix.shell and Unix.fsync symbols existed in unit Unix <br />
* '''New behaviour''': Unix.(f)statfs, Unix.shell and Unix.fsync were removed<br />
* '''Reason''': These were helper functions and leftovers from the 1.0.x->2.0.0 conversion, deprecated since 2007. Shell had non standarized conventions<br />
* '''Remedy''': All but shell: use the same functions with a "fp" prefix. Shell: use fpsystem. If you checked the return value for other values than -1, a modification of the errorchecking might be necessary. Refer to your *nix documention, or have a look at the transformfpsystemtoshell function in tests/util/redir.pp in the FPC sources to see what a quick fix looks like.<br />
<br />
==== statfs has been renamed to fpstatfs ====<br />
* '''Old behaviour''': One overload of fpstatfs was not renamed from statfs to fpstatfs (around 2.4.0)<br />
* '''New behaviour''': The function has been renamed.<br />
* '''Reason''': Should have been done in 2.4.0 to begin with, but was postponed several times to coincide with a major version change. <br />
* '''Remedy''': Use fpstatfs<br />
<br />
==== RTLeventsync has been removed ====<br />
* '''Old behaviour''': The thread manager record contained an ''rtleventsync'' field, and the RTL had an ''RTLeventsync'' routine. No functionality for this routine was implemented in the FPC-supplied thread manager for any platform.<br />
* '''New behaviour''': The field and routine have been removed.<br />
* '''Reason''': The functionality was not available on any platform by default, and we're not aware of any third party thread manager that implemented them or third party code that relied on it. Additionally, the routine was documented as "Obsolete. Don't use.", without any explanation of what it was supposed to do.<br />
* '''Remedy''': Remove any such calls from your code.<br />
<br />
==== TODBCConnection (odbcconn) No longer autocommit ====<br />
* '''Old behaviour''': Autocommit was enabled: Every change was committed to the database at once.<br />
* '''New behaviour''': Changes must be committed explicitly using Transaction.Commit<br />
* '''Reason''': Transactions are useless if everything is autocommitted: in particular; rollback is not possible.<br />
* '''Remedy''': You can enable autocommit by specifying AUTOCOMMIT=1 in the params of TODBCConnection.<br />
<br />
==== FPCanvas Strikethough property spelling fixed to StrikeThrough ====<br />
* '''Old behaviour''': Fonts had a Striketrough property which is a typo.<br />
* '''New behaviour''': The property has been changed to Strikethrough.<br />
* '''Reason''': Spelling fix.<br />
* '''Remedy''': Please rename property calls in your code. FPC 2.6.2 contains both versions so there is a window for adaptation.<br />
<br />
==== TVersionInfo (fileinfo unit) re-implemented in a platform independent way ====<br />
* '''Old behaviour''': GetVersionSetting method would read file information.<br />
* '''New behaviour''': The ReadFileInfo call will read the information. The global GetProgramVersion call will extract the program major/minor/revision/build version in 1 single call.<br />
* '''Reason''': The unit now uses FPC resources on all platforms, and can now be used to read external resources.<br />
* '''Remedy''': Use the ReadFileInfo call to get the version information. Add relevant units for desired resource support to your uses clause; e.g. if you need to read Windows .exe file info, add winpeimagereader<br />
<br />
==== TDBF unit deprecation removed ====<br />
* '''Old behaviour''': the TDBF units were marked deprecated because the original maintainer of the upstream project stopped maintenance. However, the unit remained in fcl-db and patches were still accepted.<br />
* '''New behaviour''': the deprecation warning is removed. There is a new upstream project maintainer and FPC database devs support this unit again. Note: there is a known problem: TDBF will not work on ARM processors due to alignment issues (http://bugs.freepascal.org/view.php?id=22177). This will only be fixed if a patch is provided, and proven to not produce regressions (e.g. by tests in the FPC db test framework)<br />
* '''Remedy''': N/A<br />
<br />
==== shlobj symbols removed from unit Windows ====<br />
* '''Old behaviour''': When unit windows was splitted between unit windows and shlobj, not all shlobj symbols were removed from Windows. Currently these are being deprecated, and will be removed in next major version.<br />
* '''New behaviour''': shlobj symbols won't be in Windows, code relying on that will fail to compile if it doesn't import shlobj<br />
* '''Reason''': shlobj and windows versions were not compatible and lead to errors. <br />
* '''Remedy''': put shlobj in your uses, if not there already.<br />
<br />
=== Language Changes ===<br />
<br />
==== Variant overload preference for string types ====<br />
* '''Old behaviour''': Preference for string types was (from better to worse): ShortString, AnsiString, WideString, UnicodeString<br />
* '''New behaviour''': Preference for string types now (from better to worse): WideString, UnicodeString, AnsiString, ShortString<br />
* '''Reason''': Unicode characters and codepage information will not lose during the conversion and unicode Delphi compatibility.<br />
* '''Remedy''': Use explicit conversion (e.g. ShortString(V)) if it is needed to pass variant to routine with paticular string type argument.<br />
<br />
==== Default values in implementation but not in interface/forward declaration ====<br />
* '''Old behaviour''': The implementation of a routine could declare default values even if the interface declaration did not have any.<br />
* '''New behaviour''': Default values, if any, must be specified in the interface. They can be repeated in the implementation, but that is not required (just like it was not in the past).<br />
* '''Reason''': Default parameters specified only in the implementation are not, and cannot, be propagated to the interface since a unit's interface can be used before the implementation has been parsed (see http://bugs.freepascal.org/view.php?id=19434), Delphi compatibility.<br />
* '''Remedy''': Always specify default parameter values (also) in the interface/forward declaration of a routine.<br />
<br />
==== Default values are now properly typechecked ====<br />
* '''Old behaviour''': The compiler did not detect default values for parameters of which the type did not in any way correspond to the parameter type. <br />
* '''New behaviour''': The compiler now properly checks whether the type of the constant matches the parameter's type when parsing default values.<br />
* '''Reason''': Proper type checking is one of the fundamental properties of the Pascal language; Delphi compatibility.<br />
* '''Remedy''': Add a typecast around default values that now result in compiler errors, or correct the type of such parameters.<br />
<br />
==== Recursive parameterless function calls in MacPas mode ====<br />
* '''Old behaviour''': When using the name of a function inside its own body on the right hand side of an expression, the compiler treated this as a read of the last value assigned to the function result in MacPas mode.<br />
* '''New behaviour''': The compiler will now treat such occurrences of the function name as recursive function calls in MacPas mode.<br />
* '''Reason''': Compatibility with Mac Pascal compilers.<br />
* '''Remedy''': If you wish to read the current function result value, compile the code with ''{$modeswitch result}'', after which you can use the ''result'' alias for that value. Note that the use of this mode switch can also result in [[User_Changes_2.6.0#Implicit_.22result.22_variable_in_MacPas_mode|different behaviour]] compared to traditional Mac Pascal compilers.<br />
<br />
==== "''strict protected''" visibility modifier ====<br />
* '''Old behaviour''': ''strict protected'' did not correctly limit the visibility of symbols declared in different units.<br />
* '''New behaviour''': ''strict protected'' symbols can now only be accessed from descendent classes, regardless of where they are defined.<br />
* '''Reason''': Fix behaviour to conform to specification/documentation, Delphi compatibility.<br />
* '''Remedy''': Use ''protected'' or ''public'' if less strict accessibility checks are desired.<br />
<br />
==== support for type helpers added ====<br />
* '''Old behaviour''': In modes ''ObjFPC'' and ''MacPas'' it was possible to declare a unique type of a type ''helper''.<br />
* '''New behaviour''': The compiler now interprets the keyword ''helper'' as a helper type if it immediately follows the ''type'' keyword (but only if the mode is ''ObjFPC'' or ''MacPas'' or the mode switch ''Class'' is set).<br />
* '''Example''':<br />
<syntaxhighlight><br />
{$mode objfpc}<br />
type<br />
helper = LongInt;<br />
<br />
otherhelper = type helper;<br />
</syntaxhighlight><br />
The above code will no longer compile.<br />
* '''Reason''': ''type helper'' is a more logical way to declare helpers for primitive types than Delphi's ''record helper'' is.<br />
* '''Remedy''': Escape the keyword ''helper'' using a ''&''. E.g.:<br />
<syntaxhighlight><br />
{$mode objfpc}<br />
type<br />
helper = LongInt;<br />
<br />
otherhelper = type &helper;<br />
</syntaxhighlight><br />
<br />
==== "''strict protected''" and "''protected''" visibility modifier in extended records ====<br />
* '''Old behaviour''': ''strict protected'' and ''protected'' could be used used in extended records.<br />
* '''New behaviour''': ''strict protected'' and ''protected'' are no longer allowed in extended records.<br />
* '''Reason''': The only difference between ''(strict) protected'' and ''(strict) private'' is that the former allows you to access members of a parent class or object. As records don't support inheritence it makes no sense to support ''(strict) protected'' in them. This is also Delphi-compatible.<br />
* '''Remedy''': Use ''private'' instead of ''protected'' and ''strict private'' instead of ''strict protected''.<br />
<br />
==== "''static''" directive on non-class methods ====<br />
* '''Old behaviour''': It was possible to use the ''static'' on normal, non-''class'' methods<br />
* '''New behaviour''': The compiler now generates an error if ''static'' is used on normal, non-''class'' methods (except in ''object'' types)<br />
* '''Reason''': It is only correct to leave out the ''Self'' parameter if it is a class method. This is also Delphi compatible.<br />
* '''Remedy''': Prepend the ''class'' keyword to the method.<br />
<br />
==== "''static''" directive on class operators ====<br />
* '''Old behaviour''': It was possible to use the ''static'' on class operators.<br />
* '''New behaviour''': The compiler now generates an error if ''static'' is used on class operators.<br />
* '''Reason''': Class operators are by definition static, thus the ''static'' would be redundant. This is also Delphi compatible.<br />
* '''Remedy''': Remove the ''static'' keyword from class operators.<br />
<br />
====Classes implementing forward-declared interfaces====<br />
* '''Old behaviour''': It was possible to declare classes as implementing a forward-declared interface.<br />
* '''New behaviour''': Classes can no longer implement forward-declared interfaces.<br />
* '''Reason''': This occasionally [http://bugs.freepascal.org/view.php?id=24184 caused crashes], the compiler did not check in such a case whether the class actually implemented the methods of that interface. Recent versions of Delphi also reject such constructs.<br />
* '''Remedy''': If there is a cyclic dependency between a class and an interface, use a forward declaration for the class instead.<br />
<br />
====Using the function name as alias for loading its current result value in MacPas mode====<br />
* '''Old behaviour''': Inside a function the name of the function could be used on the right hand side (RHS) of an expression in order to refer to the current value of the function result.<br />
* '''New behaviour''': Using the name of a function on the RHS of an expression inside that function's body now always results in a recursive function call.<br />
* '''Reason''': The old behaviour existed because under '''some''' circumstances CodeWarrior behaved that way. Under other circumstances [http://bugs.freepascal.org/view.php?id=22344 it however behaves according to the new rule] and there appears to be no definition available of when it does what. Since it is easier to fix a compilation error than to find out where an intended recursive function call is not doing anything, we opted to change the behaviour.<br />
* '''Remedy''': Either use a temporary local variable to hold the function result if you want to reuse it on the RHS of other expressions, or add '''{$modeswitch result}''' and use the '''result''' pseudo-variable as an alias for the function result.<br />
<br />
== Unix platforms ==<br />
<br />
=== cthreads: critical sections and recursive mutex support ===<br />
* '''Old behaviour''': If the ''cthreads'' unit thread manager was used on a platform without recursive mutex support, critical sections were non-reentrant.<br />
* '''New behaviour''': Initialising a critical section under the above circumstances will now result in a run time error.<br />
* '''Reason''': One of the basic properties of (Delphi/Windows-compatible) critical sections is that they are reentrant, and that is how they are generally used in Pascal code.<br />
* '''Remedy''': Use an RTLEvent instead if reentrancy is not required.<br />
<br />
<br />
== Darwin/i386 and iPhoneSim/i386 ==<br />
<br />
=== Location of certain function result types ===<br />
* '''Old behaviour''': Small records and method pointers were always returned according to the official ABI.<br />
* '''New behaviour''': When a calling convention other than ''cdecl'', ''cppdecl'' or ''mwpascal'' is used, the same convention as on other platforms is now used.<br />
* '''Reason''': Better compatibility with assembler code written for other platforms.<br />
* '''Remedy''': Update your assembler code, or better: if possible, convert it to Pascal.<br />
<br />
== All Darwin/Mac OS X/iOS ==<br />
===MacOSAll unit: changed parameter and opaque types===<br />
<br />
* '''Change''': The headers have been updated to the Mac OS X 10.8 SDK, and in this process a number of signatures have been changed/corrected, and several opaque types have been changed from ^SInt32 into pointers to different/incompatible empty records.<br />
* '''Reason''': The reasons for the signature changes are detailed below. The opaque types have been made incompatible so that the compiler can give error messages when trying to use one opaque type instead of another (e.g., in the past the compiler did not complain when passing a ControlRef to a routine that expected a WindowPtr).<br />
* '''Remedy''': Adjust your code to conform to the new signatures. Regarding the opaque types, that means that these types are no longer assignment-compatible. Some of the more prominent ones that may affect existing, correct, code are HIObject and ControlRef=HIViewRef. This may require adding typecasts to keep code compiling (the same typecasts are required in C)<br />
* '''Changes:''' (apart from the opaque type changes)<br />
** CGGLContextCreate : fixed first parameter (was "var", now is value parameter)<br />
** CFHostGetAddressing: var hasBeenResolved: boolean -> booleanptr because can be nil<br />
** CFHostGetNames: var hasBeenResolved: boolean -> booleanptr because can be nil<br />
** ColorSyncIterateInstalledProfiles: var seed: UInt32 -> UInt32Ptr because can be nil<br />
** AudioStreamGetPropertyInfo: outSize and outWritable changed to pointer because can be nil<br />
** cblas (several var-parametes changed to pointers because they represent arrays):<br />
*** cblas_sswap, cblas_dswap: X, Y<br />
*** cblas_scopy, cblas_dcopy: Y<br />
*** cblas_saxpy, cblas_daxpy: Y<br />
*** catlas_saxpby, catlas_daxpby: Y<br />
*** catlas_sset, catlas_dset: X<br />
*** cblas_sscal, cblas_dscal: X<br />
*** cblas_sgemv, cblas_dgemv: X<br />
*** cblas_strmv, cblas_dtrmv: X<br />
*** cblas_stbmv, cblas_dtbmv: X<br />
*** cblas_stpmv, cblas_dtpmv: Ap, X<br />
*** cblas_strsv, cblas_dtrsv: X<br />
*** cblas_stbsv, cblas_dtbsv: X<br />
*** cblas_stpsv, cblas_dtpsv: Ap, X<br />
*** cblas_ssymv, cblas_dsymv: X<br />
*** cblas_ssbmv, cblas_dsbmv: Y<br />
*** cblas_sspmv, cblas_dspmv: Ap, Y<br />
*** cblas_sger, cblas_dger: A<br />
*** cblas_ssyr, cblas_dsyr: A<br />
*** cblas_sspr, cblas_dspr: Ap<br />
*** cblas_ssyr2, cblas_dsyr2: A<br />
*** cblas_sspr2, cblas_dspr2: A<br />
*** cblas_sgemm, cblas_sgemm: C<br />
*** cblas_ssymm, cblas_Dsymm: C<br />
*** cblas_ssyrk, cblas_dsyrk: C<br />
*** cblas_ssyr2k, cblas_dsyr2k: C<br />
*** cblas_strmm, cblas_dtrmm: B<br />
*** cblas_strsm, cblas_strsm: B<br />
** vBLAS (idem)<br />
*** SDOT: X, Y<br />
*** SNRM2: X<br />
*** SASUM: X<br />
*** ISAMAX: X<br />
*** SSWAP: X, Y<br />
*** SCOPY: X, Y<br />
*** SAXPY: X, Y<br />
*** SROT: X, Y<br />
*** SSCAL: X<br />
*** SGEMV, A, X, Y<br />
*** SGEMM: A, B, C<br />
** vDSP (idem)<br />
*** vDSP_sve_svesq, vDSP_sve_svesqD: __vDSP_A<br />
*** vDSP_normalize, vDSP_normalizeD: __vDSP_A, __vDSP_C<br />
<br />
== Windows/x86_64 ==<br />
<br />
=== Exception handling has been changed to be ABI-conformant ===<br />
<br />
* '''Old behaviour''': Exceptions were handled using platform-independent mechanism based on SetJmp/LongJmp.<br />
* '''New behaviour''': Exceptions are handled using OS-provided means. The most important differences from generic handling are as follows:<br />
** Every executable contains a <tt>.pdata</tt> section describing layout of function stack frames. This data is used to perform stack back-tracing. As a consequence, the backtraces generated when exception occurs are no longer dependent of code optimization settings. However, they may be different from ones produced by gdb.<br />
** GNU binutils have troubles creating executables with <tt>.pdata</tt> sections. In particular, ld version < 2.22 crashes at such executables, and using GNU as together with internal linker will strip all <tt>.pdata</tt>, resulting in a non-working executable.<br />
** An exception is handled in two phases. First phase determines the target frame (i.e. the 'except' statement that will handle the exception), the second phase does actual stack unwinding and executing code in 'finally' statements. In contrast, the generic mechanism is single-phase: it starts unwinding immediately and proceeds until an 'except' statement handles the exception or the stack runs out.<br />
* '''Reason''': Multiple compatibility issues with Windows and third-party DLLs (see http://bugs.freepascal.org/view.php?id=12974 and related issues)<br />
* '''Remedy''': No changes are necessary unless your code relies on specific exception handling details. Build programs using FPC's internal assembler and linker, do not use GNU binutils. The entire feature can be disabled by cycling the compiler with <tt>OPT=-dDISABLE_WIN64_SEH</tt> in command line.<br />
<br />
== WinCE ==<br />
<br />
=== Define ''UNICODE'' was changed to ''FPC_OS_UNICODE'' ===<br />
<br />
* '''Old behaviour''': For arm-wince and i386-wince ''UNICODE'' was defined by default.<br />
* '''New behaviour''': For arm-wince and i386-wince ''FPC_OS_UNICODE'' is defined by default.<br />
* '''Reason''': For upcoming support for setting String to UnicodeString the define ''UNICODE'' now is defined if the type String is currently defined as UnicodeString. This is also in so far Delphi compatible that from Delphi 2009 on ''UNICODE'' is defined as well.<br />
* '''Remedy''': Check for ''FPC_OS_UNICODE'' to decide whether the OS only provides a Unicode API (in the sense of Wide- or UnicodeString) and use ''UNICODE'' to decide whether the type String is currently defined as UnicodeString or not.<br />
<br />
== Other == <br />
<br />
=== Stabs support has been disabled for 64 bit targets ===<br />
* '''Old behaviour''': While the default debug information format for 64 bit targets was DWARF (except for AIX, where it's Stabx), it was possible to switch it to Stabs via the -gs command line parameter.<br />
* '''New behaviour''': Only the DWARF debug format is still supported on 64 bit targets (except for AIX, where Stabx is used).<br />
* '''Reason''': Stabs is not well-defined for 64 bit targets, nor well-supported by gdb on those same targets. This can lead to [http://bugs.freepascal.org/view.php?id=23365 problems]<br />
* '''Remedy''': Do not use -gs when compiling for 64 bit targets. If you do so anyway, the compiler will display a warning and keep the previously set (supported) debug format.<br />
<br />
== See also ==<br />
* [[FPC New Features Trunk]]<br />
[[Category:FPC User Changes by release]]</div>
Paul Ishenin
https://wiki.freepascal.org/index.php?title=User_Changes_Trunk&diff=69762
User Changes Trunk
2013-05-07T13:07:49Z
<p>Paul Ishenin: /* Implementation changes */</p>
<hr />
<div>== About this page==<br />
<br />
Below you can find a list of intentional changes since the [[User_Changes_2.6.2|previous release]] that can change the behaviour of previously working code, along with why these changes were performed and how you can adapt your code if you are affected by them. The list of new features can be found [[FPC_New_Features_Trunk|here]].<br />
<br />
== All systems ==<br />
<br />
=== Implementation changes ===<br />
<br />
==== Exception type for object reference checking changed ====<br />
* '''Old behaviour''': When object reference checking (''-CR'' or ''{$OBJECTCHECKS ON}'') is enabled and the unit ''SysUtils'' is used then an exception of class ''Exception'' with localizeable message ''Unknown runtime error 210'' is created.<br />
* '''New behaviour''': Now an exception of class ''EObjectCheck'' with localizeable message ''Object reference is Nil'' is created.<br />
* '''Reason''': All other runtime errors in the 2xx range have approbiate exception types, so it is only natural to have an explicit type for runtime error 210 as well.<br />
* '''Remedy''': If you checked an exception for the message ''Unknown runtime error 210'' you should now check for the exception class ''EObjectCheck''.<br />
<br />
==== Literal storage memory has been made read-only ====<br />
<br />
* '''Old behaviour''': read-only data segments were de-facto not supported, all data could be modified at runtime even if it was not intended for modification (except in some cases on Darwin). This could cause nasty side-effects, e.g the following code:<br />
<br />
<syntaxhighlight><br />
uses sysutils;<br />
var<br />
s: ansistring;<br />
begin<br />
s := 'ansi string';<br />
Writeln(AnsiStrUpper(pchar(s)));<br />
s := 'ansi string';<br />
Writeln(s);<br />
end.<br />
</syntaxhighlight><br />
<br />
would modify the content of data segment and print<br />
<br />
ANSI STRING<br />
ANSI STRING<br />
<br />
* '''New behaviour''': Data that is not intended to be modified at runtime is put into read-only segment. This includes literal constants used in expressions and typed constants declared in {$J-} state. The code which modifies such data, like the example above, will now crash.<br />
* '''Reason''': This is consistent with the way other compilers, including Delphi, work. Keeping as much as possible data read-only improves loading speed of programs because read-only pages can be mapped directly on executable file, and also improves security of programs.<br />
* '''Remedy''': Depends on the code. In the example above, it is sufficient to call <tt>UniqueString(s)</tt> before <tt>AnsiStrUpper</tt><br />
<br />
==== ''UNICODE'' is defined depending on the mode switch ====<br />
* '''Old behaviour''': When the modeswitch was changed the definition of ''UNICODE'' was not changed.<br />
* '''New behaviour''': If the modeswitch is changed to ''delphiunicode'' the ''UNICODE'' will be defined otherwise it will be undefined.<br />
* '''Reason''': In Delphi 2009 and newer the type String is defined as UnicodeString and ''UNICODE'' is defined there by default as well. For improved Delphi compatibility ''UNICODE'' will be automatically defined if the String type is set to be equal to UnicodeString.<br />
* '''Remedy''': Don't rely on checks for ''UNICODE'' before the mode switches. Also compile time checks for ''UNICODE'' that appear after a modeswitch like ''objfpc'' or ''delphi'' will no longer be evaluated to true.<br />
<br />
=== RTTI changes ===<br />
<br />
==== RTTI for Pointers and Class References ====<br />
* '''Old behavior''': Pointers and Class References had tkUnknown RTTI.<br />
* '''New behavior''': Pointers now have tkPointer and Class References tkClassRef RTTI types. They now contain a reference to a type they point to.<br />
* '''Reason''': Both user requests and Delphi compatibility.<br />
* '''Remedy''': TTypeKind enumeration has more members than before. Adjust your code which depends on TTypeKind.<br />
<br />
==== RTTI for AnsiStrings ====<br />
* '''Old behavior''': AnsiString RTTI did not have CodePage information.<br />
* '''New behavior''': New CodePage member is added for tkAString type.<br />
* '''Reason''': Requires for serializing/deserializing of AnsiString published properties. Delphi compatibility.<br />
* '''Remedy''': not known<br />
<br />
==== RTTI for Arrays ====<br />
* '''Old behavior''': tkArray had no member in TTypeData record but internally compiler stored the next members: first dimension size, first dimension element count and first dimension element type. So for 2 dimension array element type was array for the second dimension.<br />
* '''New behavior''': tkArray now had TArrayTypeData structure in TTypeData. It has the next members: total array size including all dimensions, total element count, last dimension element type, number of dimensions, type information for each dimension range.<br />
* '''Reason''': more informative RTTI. Delphi compatibility.<br />
* '''Remedy''': If your code internally used old RTTI array information you will need to adopt it.<br />
<br />
==== RTTI for Records ====<br />
* '''Old behavior''': Records RTTI stored field Offsets as 32bit integers.<br />
* '''New behavior''': Records RTTI stores field Offsets as platform dependent integers (the same size as pointers).<br />
* '''Reason''': Internally compiler stored Offsets as platform dependent integers. Delphi compatibility.<br />
* '''Remedy''': You need to adjust your code if you used field offsets of record RTTI. This is also true if you manually processed vInitTable field of class VMT.<br />
<br />
=== Unit changes ===<br />
<br />
==== TBookmark TBookmarkstr and TDataset.Bookmark change to Delphi2009+ compatible definitions ====<br />
* '''Old behaviour''': TDataset.Bookmark was of type TBookmarkstr, TBookmarkstr=string, Tbookmark=pointer<br />
* '''New behaviour''': TDataset.Bookmark is of type TBookmark, TBookmarkstr=ansistring, TBookmark=TBytes. TBookmarkstr will trigger a deprecated warning.<br />
* '''Reason''': D2009+ compatibility, where probably the fact that string became a 2-byte encoding was the trigger.<br />
* '''Remedy''': Adjust typing in descendents and using code accordingly.<br />
<br />
==== FileNameCaseSensitive and FileNameCasePreserving in unit System ====<br />
* '''Old behaviour''': There was only one constant (FileNameCaseSensitive) which signalized behaviour of the respective target platform with regard to the case in filenames. This was often set to true also on platforms not really treating filenames in case sensitive manner (e.g. Win32 and Win64).<br />
* '''New behaviour''': FileNameCaseSensitive is set to true only on platforms which really treat filenames in case sensitive manner and FileNameCasePreserving constant is added to unit system of all platforms to signalize whether the case in filenames supplied when creating or renaming them is preserved or not. This might possibly break existing user code relying on the previous (sometimes incorrect) value of FileNameCaseSensitive.<br />
* '''Reason''': In reality, there are two distinct types of behaviour. If a platform is case sensitive, searching for file "a" will never result in finding file "A" whereas case insensitive platform will happily return "A" if such a file is found on the disk. If a platform is case preserving, it will store file "a" as "a" on disk whereas case non-preserving platform may convert the filenames to uppercase before storing them on disk (i.e. file "a" is in reality stored as "A"). Case non-preserving platforms are never case sensitive, but case preserving platforms may or may not be case sensitive at the same time.<br />
* '''Remedy''': Review your existing code using FileNameCaseSensitive, check which of the two properties described above fit the particular purpose in your case and change to FileNameCasePreserving where appropriate.<br />
<br />
==== Some longtime deprecated functions in unit Unix have been removed. ====<br />
* '''Old behaviour''': Unix.(f)statfs, Unix.shell and Unix.fsync symbols existed in unit Unix <br />
* '''New behaviour''': Unix.(f)statfs, Unix.shell and Unix.fsync were removed<br />
* '''Reason''': These were helper functions and leftovers from the 1.0.x->2.0.0 conversion, deprecated since 2007. Shell had non standarized conventions<br />
* '''Remedy''': All but shell: use the same functions with a "fp" prefix. Shell: use fpsystem. If you checked the return value for other values than -1, a modification of the errorchecking might be necessary. Refer to your *nix documention, or have a look at the transformfpsystemtoshell function in tests/util/redir.pp in the FPC sources to see what a quick fix looks like.<br />
<br />
==== statfs has been renamed to fpstatfs ====<br />
* '''Old behaviour''': One overload of fpstatfs was not renamed from statfs to fpstatfs (around 2.4.0)<br />
* '''New behaviour''': The function has been renamed.<br />
* '''Reason''': Should have been done in 2.4.0 to begin with, but was postponed several times to coincide with a major version change. <br />
* '''Remedy''': Use fpstatfs<br />
<br />
==== RTLeventsync has been removed ====<br />
* '''Old behaviour''': The thread manager record contained an ''rtleventsync'' field, and the RTL had an ''RTLeventsync'' routine. No functionality for this routine was implemented in the FPC-supplied thread manager for any platform.<br />
* '''New behaviour''': The field and routine have been removed.<br />
* '''Reason''': The functionality was not available on any platform by default, and we're not aware of any third party thread manager that implemented them or third party code that relied on it. Additionally, the routine was documented as "Obsolete. Don't use.", without any explanation of what it was supposed to do.<br />
* '''Remedy''': Remove any such calls from your code.<br />
<br />
==== TODBCConnection (odbcconn) No longer autocommit ====<br />
* '''Old behaviour''': Autocommit was enabled: Every change was committed to the database at once.<br />
* '''New behaviour''': Changes must be committed explicitly using Transaction.Commit<br />
* '''Reason''': Transactions are useless if everything is autocommitted: in particular; rollback is not possible.<br />
* '''Remedy''': You can enable autocommit by specifying AUTOCOMMIT=1 in the params of TODBCConnection.<br />
<br />
==== FPCanvas Strikethough property spelling fixed to StrikeThrough ====<br />
* '''Old behaviour''': Fonts had a Striketrough property which is a typo.<br />
* '''New behaviour''': The property has been changed to Strikethrough.<br />
* '''Reason''': Spelling fix.<br />
* '''Remedy''': Please rename property calls in your code. FPC 2.6.2 contains both versions so there is a window for adaptation.<br />
<br />
==== TVersionInfo (fileinfo unit) re-implemented in a platform independent way ====<br />
* '''Old behaviour''': GetVersionSetting method would read file information.<br />
* '''New behaviour''': The ReadFileInfo call will read the information. The global GetProgramVersion call will extract the program major/minor/revision/build version in 1 single call.<br />
* '''Reason''': The unit now uses FPC resources on all platforms, and can now be used to read external resources.<br />
* '''Remedy''': Use the ReadFileInfo call to get the version information. Add relevant units for desired resource support to your uses clause; e.g. if you need to read Windows .exe file info, add winpeimagereader<br />
<br />
==== TDBF unit deprecation removed ====<br />
* '''Old behaviour''': the TDBF units were marked deprecated because the original maintainer of the upstream project stopped maintenance. However, the unit remained in fcl-db and patches were still accepted.<br />
* '''New behaviour''': the deprecation warning is removed. There is a new upstream project maintainer and FPC database devs support this unit again. Note: there is a known problem: TDBF will not work on ARM processors due to alignment issues (http://bugs.freepascal.org/view.php?id=22177). This will only be fixed if a patch is provided, and proven to not produce regressions (e.g. by tests in the FPC db test framework)<br />
* '''Remedy''': N/A<br />
<br />
==== shlobj symbols removed from unit Windows ====<br />
* '''Old behaviour''': When unit windows was splitted between unit windows and shlobj, not all shlobj symbols were removed from Windows. Currently these are being deprecated, and will be removed in next major version.<br />
* '''New behaviour''': shlobj symbols won't be in Windows, code relying on that will fail to compile if it doesn't import shlobj<br />
* '''Reason''': shlobj and windows versions were not compatible and lead to errors. <br />
* '''Remedy''': put shlobj in your uses, if not there already.<br />
<br />
=== Language Changes ===<br />
<br />
==== Variant overload preference for string types ====<br />
* '''Old behaviour''': Preference for string types was (from better to worse): ShortString, AnsiString, WideString, UnicodeString<br />
* '''New behaviour''': Preference for string types now (from better to worse): WideString, UnicodeString, AnsiString, ShortString<br />
* '''Reason''': Unicode characters and codepage information will not lose during the conversion and unicode Delphi compatibility.<br />
* '''Remedy''': Use explicit conversion (e.g. ShortString(V)) if it is needed to pass variant to routine with paticular string type argument.<br />
<br />
==== Default values in implementation but not in interface/forward declaration ====<br />
* '''Old behaviour''': The implementation of a routine could declare default values even if the interface declaration did not have any.<br />
* '''New behaviour''': Default values, if any, must be specified in the interface. They can be repeated in the implementation, but that is not required (just like it was not in the past).<br />
* '''Reason''': Default parameters specified only in the implementation are not, and cannot, be propagated to the interface since a unit's interface can be used before the implementation has been parsed (see http://bugs.freepascal.org/view.php?id=19434), Delphi compatibility.<br />
* '''Remedy''': Always specify default parameter values (also) in the interface/forward declaration of a routine.<br />
<br />
==== Default values are now properly typechecked ====<br />
* '''Old behaviour''': The compiler did not detect default values for parameters of which the type did not in any way correspond to the parameter type. <br />
* '''New behaviour''': The compiler now properly checks whether the type of the constant matches the parameter's type when parsing default values.<br />
* '''Reason''': Proper type checking is one of the fundamental properties of the Pascal language; Delphi compatibility.<br />
* '''Remedy''': Add a typecast around default values that now result in compiler errors, or correct the type of such parameters.<br />
<br />
==== Recursive parameterless function calls in MacPas mode ====<br />
* '''Old behaviour''': When using the name of a function inside its own body on the right hand side of an expression, the compiler treated this as a read of the last value assigned to the function result in MacPas mode.<br />
* '''New behaviour''': The compiler will now treat such occurrences of the function name as recursive function calls in MacPas mode.<br />
* '''Reason''': Compatibility with Mac Pascal compilers.<br />
* '''Remedy''': If you wish to read the current function result value, compile the code with ''{$modeswitch result}'', after which you can use the ''result'' alias for that value. Note that the use of this mode switch can also result in [[User_Changes_2.6.0#Implicit_.22result.22_variable_in_MacPas_mode|different behaviour]] compared to traditional Mac Pascal compilers.<br />
<br />
==== "''strict protected''" visibility modifier ====<br />
* '''Old behaviour''': ''strict protected'' did not correctly limit the visibility of symbols declared in different units.<br />
* '''New behaviour''': ''strict protected'' symbols can now only be accessed from descendent classes, regardless of where they are defined.<br />
* '''Reason''': Fix behaviour to conform to specification/documentation, Delphi compatibility.<br />
* '''Remedy''': Use ''protected'' or ''public'' if less strict accessibility checks are desired.<br />
<br />
==== support for type helpers added ====<br />
* '''Old behaviour''': In modes ''ObjFPC'' and ''MacPas'' it was possible to declare a unique type of a type ''helper''.<br />
* '''New behaviour''': The compiler now interprets the keyword ''helper'' as a helper type if it immediately follows the ''type'' keyword (but only if the mode is ''ObjFPC'' or ''MacPas'' or the mode switch ''Class'' is set).<br />
* '''Example''':<br />
<syntaxhighlight><br />
{$mode objfpc}<br />
type<br />
helper = LongInt;<br />
<br />
otherhelper = type helper;<br />
</syntaxhighlight><br />
The above code will no longer compile.<br />
* '''Reason''': ''type helper'' is a more logical way to declare helpers for primitive types than Delphi's ''record helper'' is.<br />
* '''Remedy''': Escape the keyword ''helper'' using a ''&''. E.g.:<br />
<syntaxhighlight><br />
{$mode objfpc}<br />
type<br />
helper = LongInt;<br />
<br />
otherhelper = type &helper;<br />
</syntaxhighlight><br />
<br />
==== "''strict protected''" and "''protected''" visibility modifier in extended records ====<br />
* '''Old behaviour''': ''strict protected'' and ''protected'' could be used used in extended records.<br />
* '''New behaviour''': ''strict protected'' and ''protected'' are no longer allowed in extended records.<br />
* '''Reason''': The only difference between ''(strict) protected'' and ''(strict) private'' is that the former allows you to access members of a parent class or object. As records don't support inheritence it makes no sense to support ''(strict) protected'' in them. This is also Delphi-compatible.<br />
* '''Remedy''': Use ''private'' instead of ''protected'' and ''strict private'' instead of ''strict protected''.<br />
<br />
==== "''static''" directive on non-class methods ====<br />
* '''Old behaviour''': It was possible to use the ''static'' on normal, non-''class'' methods<br />
* '''New behaviour''': The compiler now generates an error if ''static'' is used on normal, non-''class'' methods (except in ''object'' types)<br />
* '''Reason''': It is only correct to leave out the ''Self'' parameter if it is a class method. This is also Delphi compatible.<br />
* '''Remedy''': Prepend the ''class'' keyword to the method.<br />
<br />
==== "''static''" directive on class operators ====<br />
* '''Old behaviour''': It was possible to use the ''static'' on class operators.<br />
* '''New behaviour''': The compiler now generates an error if ''static'' is used on class operators.<br />
* '''Reason''': Class operators are by definition static, thus the ''static'' would be redundant. This is also Delphi compatible.<br />
* '''Remedy''': Remove the ''static'' keyword from class operators.<br />
<br />
====Classes implementing forward-declared interfaces====<br />
* '''Old behaviour''': It was possible to declare classes as implementing a forward-declared interface.<br />
* '''New behaviour''': Classes can no longer implement forward-declared interfaces.<br />
* '''Reason''': This occasionally [http://bugs.freepascal.org/view.php?id=24184 caused crashes], the compiler did not check in such a case whether the class actually implemented the methods of that interface. Recent versions of Delphi also reject such constructs.<br />
* '''Remedy''': If there is a cyclic dependency between a class and an interface, use a forward declaration for the class instead.<br />
<br />
====Using the function name as alias for loading its current result value in MacPas mode====<br />
* '''Old behaviour''': Inside a function the name of the function could be used on the right hand side (RHS) of an expression in order to refer to the current value of the function result.<br />
* '''New behaviour''': Using the name of a function on the RHS of an expression inside that function's body now always results in a recursive function call.<br />
* '''Reason''': The old behaviour existed because under '''some''' circumstances CodeWarrior behaved that way. Under other circumstances [http://bugs.freepascal.org/view.php?id=22344 it however behaves according to the new rule] and there appears to be no definition available of when it does what. Since it is easier to fix a compilation error than to find out where an intended recursive function call is not doing anything, we opted to change the behaviour.<br />
* '''Remedy''': Either use a temporary local variable to hold the function result if you want to reuse it on the RHS of other expressions, or add '''{$modeswitch result}''' and use the '''result''' pseudo-variable as an alias for the function result.<br />
<br />
== Unix platforms ==<br />
<br />
=== cthreads: critical sections and recursive mutex support ===<br />
* '''Old behaviour''': If the ''cthreads'' unit thread manager was used on a platform without recursive mutex support, critical sections were non-reentrant.<br />
* '''New behaviour''': Initialising a critical section under the above circumstances will now result in a run time error.<br />
* '''Reason''': One of the basic properties of (Delphi/Windows-compatible) critical sections is that they are reentrant, and that is how they are generally used in Pascal code.<br />
* '''Remedy''': Use an RTLEvent instead if reentrancy is not required.<br />
<br />
<br />
== Darwin/i386 and iPhoneSim/i386 ==<br />
<br />
=== Location of certain function result types ===<br />
* '''Old behaviour''': Small records and method pointers were always returned according to the official ABI.<br />
* '''New behaviour''': When a calling convention other than ''cdecl'', ''cppdecl'' or ''mwpascal'' is used, the same convention as on other platforms is now used.<br />
* '''Reason''': Better compatibility with assembler code written for other platforms.<br />
* '''Remedy''': Update your assembler code, or better: if possible, convert it to Pascal.<br />
<br />
== All Darwin/Mac OS X/iOS ==<br />
===MacOSAll unit: changed parameter and opaque types===<br />
<br />
* '''Change''': The headers have been updated to the Mac OS X 10.8 SDK, and in this process a number of signatures have been changed/corrected, and several opaque types have been changed from ^SInt32 into pointers to different/incompatible empty records.<br />
* '''Reason''': The reasons for the signature changes are detailed below. The opaque types have been made incompatible so that the compiler can give error messages when trying to use one opaque type instead of another (e.g., in the past the compiler did not complain when passing a ControlRef to a routine that expected a WindowPtr).<br />
* '''Remedy''': Adjust your code to conform to the new signatures. Regarding the opaque types, that means that these types are no longer assignment-compatible. Some of the more prominent ones that may affect existing, correct, code are HIObject and ControlRef=HIViewRef. This may require adding typecasts to keep code compiling (the same typecasts are required in C)<br />
* '''Changes:''' (apart from the opaque type changes)<br />
** CGGLContextCreate : fixed first parameter (was "var", now is value parameter)<br />
** CFHostGetAddressing: var hasBeenResolved: boolean -> booleanptr because can be nil<br />
** CFHostGetNames: var hasBeenResolved: boolean -> booleanptr because can be nil<br />
** ColorSyncIterateInstalledProfiles: var seed: UInt32 -> UInt32Ptr because can be nil<br />
** AudioStreamGetPropertyInfo: outSize and outWritable changed to pointer because can be nil<br />
** cblas (several var-parametes changed to pointers because they represent arrays):<br />
*** cblas_sswap, cblas_dswap: X, Y<br />
*** cblas_scopy, cblas_dcopy: Y<br />
*** cblas_saxpy, cblas_daxpy: Y<br />
*** catlas_saxpby, catlas_daxpby: Y<br />
*** catlas_sset, catlas_dset: X<br />
*** cblas_sscal, cblas_dscal: X<br />
*** cblas_sgemv, cblas_dgemv: X<br />
*** cblas_strmv, cblas_dtrmv: X<br />
*** cblas_stbmv, cblas_dtbmv: X<br />
*** cblas_stpmv, cblas_dtpmv: Ap, X<br />
*** cblas_strsv, cblas_dtrsv: X<br />
*** cblas_stbsv, cblas_dtbsv: X<br />
*** cblas_stpsv, cblas_dtpsv: Ap, X<br />
*** cblas_ssymv, cblas_dsymv: X<br />
*** cblas_ssbmv, cblas_dsbmv: Y<br />
*** cblas_sspmv, cblas_dspmv: Ap, Y<br />
*** cblas_sger, cblas_dger: A<br />
*** cblas_ssyr, cblas_dsyr: A<br />
*** cblas_sspr, cblas_dspr: Ap<br />
*** cblas_ssyr2, cblas_dsyr2: A<br />
*** cblas_sspr2, cblas_dspr2: A<br />
*** cblas_sgemm, cblas_sgemm: C<br />
*** cblas_ssymm, cblas_Dsymm: C<br />
*** cblas_ssyrk, cblas_dsyrk: C<br />
*** cblas_ssyr2k, cblas_dsyr2k: C<br />
*** cblas_strmm, cblas_dtrmm: B<br />
*** cblas_strsm, cblas_strsm: B<br />
** vBLAS (idem)<br />
*** SDOT: X, Y<br />
*** SNRM2: X<br />
*** SASUM: X<br />
*** ISAMAX: X<br />
*** SSWAP: X, Y<br />
*** SCOPY: X, Y<br />
*** SAXPY: X, Y<br />
*** SROT: X, Y<br />
*** SSCAL: X<br />
*** SGEMV, A, X, Y<br />
*** SGEMM: A, B, C<br />
** vDSP (idem)<br />
*** vDSP_sve_svesq, vDSP_sve_svesqD: __vDSP_A<br />
*** vDSP_normalize, vDSP_normalizeD: __vDSP_A, __vDSP_C<br />
<br />
== Windows/x86_64 ==<br />
<br />
=== Exception handling has been changed to be ABI-conformant ===<br />
<br />
* '''Old behaviour''': Exceptions were handled using platform-independent mechanism based on SetJmp/LongJmp.<br />
* '''New behaviour''': Exceptions are handled using OS-provided means. The most important differences from generic handling are as follows:<br />
** Every executable contains a <tt>.pdata</tt> section describing layout of function stack frames. This data is used to perform stack back-tracing. As a consequence, the backtraces generated when exception occurs are no longer dependent of code optimization settings. However, they may be different from ones produced by gdb.<br />
** GNU binutils have troubles creating executables with <tt>.pdata</tt> sections. In particular, ld version < 2.22 crashes at such executables, and using GNU as together with internal linker will strip all <tt>.pdata</tt>, resulting in a non-working executable.<br />
** An exception is handled in two phases. First phase determines the target frame (i.e. the 'except' statement that will handle the exception), the second phase does actual stack unwinding and executing code in 'finally' statements. In contrast, the generic mechanism is single-phase: it starts unwinding immediately and proceeds until an 'except' statement handles the exception or the stack runs out.<br />
* '''Reason''': Multiple compatibility issues with Windows and third-party DLLs (see http://bugs.freepascal.org/view.php?id=12974 and related issues)<br />
* '''Remedy''': No changes are necessary unless your code relies on specific exception handling details. Build programs using FPC's internal assembler and linker, do not use GNU binutils. The entire feature can be disabled by cycling the compiler with <tt>OPT=-dDISABLE_WIN64_SEH</tt> in command line.<br />
<br />
== WinCE ==<br />
<br />
=== Define ''UNICODE'' was changed to ''FPC_OS_UNICODE'' ===<br />
<br />
* '''Old behaviour''': For arm-wince and i386-wince ''UNICODE'' was defined by default.<br />
* '''New behaviour''': For arm-wince and i386-wince ''FPC_OS_UNICODE'' is defined by default.<br />
* '''Reason''': For upcoming support for setting String to UnicodeString the define ''UNICODE'' now is defined if the type String is currently defined as UnicodeString. This is also in so far Delphi compatible that from Delphi 2009 on ''UNICODE'' is defined as well.<br />
* '''Remedy''': Check for ''FPC_OS_UNICODE'' to decide whether the OS only provides a Unicode API (in the sense of Wide- or UnicodeString) and use ''UNICODE'' to decide whether the type String is currently defined as UnicodeString or not.<br />
<br />
== Other == <br />
<br />
=== Stabs support has been disabled for 64 bit targets ===<br />
* '''Old behaviour''': While the default debug information format for 64 bit targets was DWARF (except for AIX, where it's Stabx), it was possible to switch it to Stabs via the -gs command line parameter.<br />
* '''New behaviour''': Only the DWARF debug format is still supported on 64 bit targets (except for AIX, where Stabx is used).<br />
* '''Reason''': Stabs is not well-defined for 64 bit targets, nor well-supported by gdb on those same targets. This can lead to [http://bugs.freepascal.org/view.php?id=23365 problems]<br />
* '''Remedy''': Do not use -gs when compiling for 64 bit targets. If you do so anyway, the compiler will display a warning and keep the previously set (supported) debug format.<br />
<br />
== See also ==<br />
* [[FPC New Features Trunk]]<br />
[[Category:FPC User Changes by release]]</div>
Paul Ishenin
https://wiki.freepascal.org/index.php?title=User:Paul_Ishenin&diff=66818
User:Paul Ishenin
2013-03-17T05:08:43Z
<p>Paul Ishenin: /* My compiler/rtl changes: */</p>
<hr />
<div>My main interests are Lazarus LCL and IDE development.<br />
<br />
== Wiki pages started by me: ==<br />
#[[Theme library]]<br />
#[[Lazarus known issues (things that will never be fixed)]]<br />
#[[Lazarus 0.9.24 release notes]]<br />
#[[Property attributes]]<br />
#[[Lazarus 0.9.26 todo]]<br />
#[[Developer pages]]<br />
#[[Lazarus Development Process]]<br />
#[[How to become Lazarus developer (committer)]]<br />
#[[for-in loop]]<br />
#[[delphi language features which fpc does not have]]<br />
#[[class extensions examples]]<br />
#[[Lazarus 0.99.0 release notes]]<br />
<br />
<br />
Once I was tired from Lazarus and made a few compiler changes to understand it internals better and to make FPC more compatible with recent Delphi language.<br />
<br />
== My compiler/rtl changes: ==<br />
#sealed and abstract classes<br />
#final methods<br />
#fix of showing library hint (library modifier was understood by compiler but it gave no warning message)<br />
#fix to make TObject.Dispact, TObject.DispatchStr virtual<br />
#deprecated hint extension to support deprecated message (like deprecated 'because it is old and unsupported anymore')<br />
#writing TObject.ClassInfo for classes with no RTTI<br />
#new D2009 TObject methods: Equals, GetHashCode, UnitName, ToString<br />
#for-in loop<br />
#"class var", "var", "type", "const" section in classes, class properties, nested classes<br />
#Enumeration.Element syntax support and {$SCOPEDENUM ON/OFF} directive<br />
#Advanced records<br />
#some work on generics</div>
Paul Ishenin
https://wiki.freepascal.org/index.php?title=Delphi_language_features_missing_from_the_Free_Pascal_Compiler&diff=65067
Delphi language features missing from the Free Pascal Compiler
2013-01-18T13:45:20Z
<p>Paul Ishenin: /* Delayed directive */</p>
<hr />
<div>Note: some of new Delphi features are already implemented in [[FPC_New_Features_Trunk|FPC trunk]].<br />
<br />
== New since Delphi 2007 ==<br />
<br />
==== Advanced Records ====<br />
<br />
http://docwiki.embarcadero.com/RADStudio/en/Structured_Types#Records_.28advanced.29<br />
<br />
Advanced records are implemented in FPC 2.6.X without record constructors. Record constructors are implemented in FPC 2.7.1 (trunk).<br />
<br />
== New since Delphi 2009 ==<br />
==== Generics Syntax ====<br />
<br />
A good delphi reference is here: http://docwiki.embarcadero.com/RADStudio/en/Generics_Index<br />
<br />
Partially implemented in 2.5.1/2.6.x, further improved in 2.7.1 by Sven<br />
<br />
==== Support for ansistrings with a definable codepage ====<br />
<br />
Initial implementation available in trunk (2.7.1). Useful for small time testing, but the whole of the codebase hasn't adapted (2011-10-18)<br />
<br />
==== Anonymous Methods ====<br />
<br />
http://docs.embarcadero.com/products/rad_studio/delphiAndcpp2009/HelpUpdate2/EN/html/devcommon/anonymousmethods_xml.html<br />
<br />
== New since Delphi 2010 ==<br />
==== Custom Attributes ====<br />
==== Enhanced RTTI ====<br />
http://docwiki.embarcadero.com/RADStudio/en/RTTI_directive_(Delphi)<br />
<br />
==== Delayed directive ====<br />
<br />
Info is here: http://docwiki.embarcadero.com/RADStudio/en/Libraries_and_Packages#Delayed_Loading<br />
Some info about internals:<br />
#http://blogs.embarcadero.com/abauer/2009/08/25/38894<br />
#http://blogs.embarcadero.com/abauer/2009/08/29/38896<br />
#http://blogs.embarcadero.com/chrishesik/2009/11/02/35056<br />
<br />
fpc wiki about that topic: http://wiki.freepascal.org/Dynamically_loading_headers<br />
<br />
Originally I thought that delayed is similar to weakexternal which FPC has for some platforms but after reading this: http://docwiki.embarcadero.com/CodeExamples/XE3/en/DelayedLoading_(Delphi) I undersatnd that this is simple a wrapped around LoadLibrary and GetProcessAdress with automatic loading and unloading.--[[User:Paul Ishenin|Paul Ishenin]] 13:45, 18 January 2013 (UTC)<br />
<br />
==== AS and IS extended for interfaces ====<br />
<br />
Info is here: <br />
#http://docwiki.embarcadero.com/RADStudio/en/Interface_References#Casting_Interface_References_to_Objects<br />
#http://blogs.embarcadero.com/abauer/2009/08/21/38893<br />
<br />
Already implemented in FPC 2.6.0.<br />
<br />
== Misc ==<br />
# [[packages|(Library) packages]]<br />
# "automated" keyword, which is like "public", but generates COM specific RTTI. Afaik this kind of COM usage is deprecated though.<br />
<br />
== Reference ==<br />
#http://edn.embarcadero.com/article/34324<br />
#http://edn.embarcadero.com/article/images/39076/New_Delphi_Coding_Styles_and_Architectures.pdf<br />
#http://docwiki.embarcadero.com/RADStudio/en/What's_New_in_Delphi_and_C%2B%2BBuilder_2010</div>
Paul Ishenin
https://wiki.freepascal.org/index.php?title=Delphi_language_features_missing_from_the_Free_Pascal_Compiler&diff=65012
Delphi language features missing from the Free Pascal Compiler
2013-01-16T12:36:20Z
<p>Paul Ishenin: /* Advanced Records */</p>
<hr />
<div>Note: some of new Delphi features are already implemented in [[FPC_New_Features_Trunk|FPC trunk]].<br />
<br />
== New since Delphi 2007 ==<br />
<br />
==== Advanced Records ====<br />
<br />
http://docwiki.embarcadero.com/RADStudio/en/Structured_Types#Records_.28advanced.29<br />
<br />
Advanced records are implemented in FPC 2.6.X without record constructors. Record constructors are implemented in FPC 2.7.1 (trunk).<br />
<br />
== New since Delphi 2009 ==<br />
==== Generics Syntax ====<br />
<br />
A good delphi reference is here: http://docwiki.embarcadero.com/RADStudio/en/Generics_Index<br />
<br />
Partially implemented in 2.5.1/2.6.x, further improved in 2.7.1 by Sven<br />
<br />
==== Support for ansistrings with a definable codepage ====<br />
<br />
Initial implementation available in trunk (2.7.1). Useful for small time testing, but the whole of the codebase hasn't adapted (2011-10-18)<br />
<br />
==== Anonymous Methods ====<br />
<br />
http://docs.embarcadero.com/products/rad_studio/delphiAndcpp2009/HelpUpdate2/EN/html/devcommon/anonymousmethods_xml.html<br />
<br />
== New since Delphi 2010 ==<br />
==== Custom Attributes ====<br />
==== Enhanced RTTI ====<br />
http://docwiki.embarcadero.com/RADStudio/en/RTTI_directive_(Delphi)<br />
<br />
==== Delayed directive ====<br />
<br />
Info is here: http://docwiki.embarcadero.com/RADStudio/en/Libraries_and_Packages#Delayed_Loading<br />
Some info about internals:<br />
#http://blogs.embarcadero.com/abauer/2009/08/25/38894<br />
#http://blogs.embarcadero.com/abauer/2009/08/29/38896<br />
#http://blogs.embarcadero.com/chrishesik/2009/11/02/35056<br />
<br />
fpc wiki about that topic: http://wiki.freepascal.org/Dynamically_loading_headers<br />
<br />
==== AS and IS extended for interfaces ====<br />
<br />
Info is here: <br />
#http://docwiki.embarcadero.com/RADStudio/en/Interface_References#Casting_Interface_References_to_Objects<br />
#http://blogs.embarcadero.com/abauer/2009/08/21/38893<br />
<br />
== Misc ==<br />
# [[packages|(Library) packages]]<br />
# "automated" keyword, which is like "public", but generates COM specific RTTI. Afaik this kind of COM usage is deprecated though.<br />
<br />
== Reference ==<br />
#http://edn.embarcadero.com/article/34324<br />
#http://edn.embarcadero.com/article/images/39076/New_Delphi_Coding_Styles_and_Architectures.pdf<br />
#http://docwiki.embarcadero.com/RADStudio/en/What's_New_in_Delphi_and_C%2B%2BBuilder_2010</div>
Paul Ishenin
https://wiki.freepascal.org/index.php?title=Delphi_language_features_missing_from_the_Free_Pascal_Compiler&diff=65011
Delphi language features missing from the Free Pascal Compiler
2013-01-16T12:33:56Z
<p>Paul Ishenin: /* Advanced Records */</p>
<hr />
<div>Note: some of new Delphi features are already implemented in [[FPC_New_Features_Trunk|FPC trunk]].<br />
<br />
== New since Delphi 2007 ==<br />
<br />
==== Advanced Records ====<br />
<br />
http://docwiki.embarcadero.com/RADStudio/en/Structured_Types#Records_.28advanced.29<br />
<br />
Record constructors are implemented in trunk.<br />
<br />
== New since Delphi 2009 ==<br />
==== Generics Syntax ====<br />
<br />
A good delphi reference is here: http://docwiki.embarcadero.com/RADStudio/en/Generics_Index<br />
<br />
Partially implemented in 2.5.1/2.6.x, further improved in 2.7.1 by Sven<br />
<br />
==== Support for ansistrings with a definable codepage ====<br />
<br />
Initial implementation available in trunk (2.7.1). Useful for small time testing, but the whole of the codebase hasn't adapted (2011-10-18)<br />
<br />
==== Anonymous Methods ====<br />
<br />
http://docs.embarcadero.com/products/rad_studio/delphiAndcpp2009/HelpUpdate2/EN/html/devcommon/anonymousmethods_xml.html<br />
<br />
== New since Delphi 2010 ==<br />
==== Custom Attributes ====<br />
==== Enhanced RTTI ====<br />
http://docwiki.embarcadero.com/RADStudio/en/RTTI_directive_(Delphi)<br />
<br />
==== Delayed directive ====<br />
<br />
Info is here: http://docwiki.embarcadero.com/RADStudio/en/Libraries_and_Packages#Delayed_Loading<br />
Some info about internals:<br />
#http://blogs.embarcadero.com/abauer/2009/08/25/38894<br />
#http://blogs.embarcadero.com/abauer/2009/08/29/38896<br />
#http://blogs.embarcadero.com/chrishesik/2009/11/02/35056<br />
<br />
fpc wiki about that topic: http://wiki.freepascal.org/Dynamically_loading_headers<br />
<br />
==== AS and IS extended for interfaces ====<br />
<br />
Info is here: <br />
#http://docwiki.embarcadero.com/RADStudio/en/Interface_References#Casting_Interface_References_to_Objects<br />
#http://blogs.embarcadero.com/abauer/2009/08/21/38893<br />
<br />
== Misc ==<br />
# [[packages|(Library) packages]]<br />
# "automated" keyword, which is like "public", but generates COM specific RTTI. Afaik this kind of COM usage is deprecated though.<br />
<br />
== Reference ==<br />
#http://edn.embarcadero.com/article/34324<br />
#http://edn.embarcadero.com/article/images/39076/New_Delphi_Coding_Styles_and_Architectures.pdf<br />
#http://docwiki.embarcadero.com/RADStudio/en/What's_New_in_Delphi_and_C%2B%2BBuilder_2010</div>
Paul Ishenin
https://wiki.freepascal.org/index.php?title=Lazarus_1.0_fixes_branch&diff=64551
Lazarus 1.0 fixes branch
2012-12-13T01:26:31Z
<p>Paul Ishenin: /* Merged revisions for 1.0.6 */</p>
<hr />
<div>This page contains the revisions to be merged from trunk to the [http://svn.freepascal.org/svn/lazarus/branches/fixes_1_0/ Lazarus 1.0 fixes] branch.<br><br />
Release notes can be found here [http://wiki.lazarus.freepascal.org/Lazarus_0.99.0_release_notes Release notes]<br />
<br />
== Fixes for 1.0.6 ==<br />
=== Merge requests ===<br />
==== Submitted by developer / committer ====<br />
<br />
==== Submitted by others ====<br />
<br />
=== Merged revisions for 1.0.6 ===<br />
<br />
*r36994 LazReport, published property KeepAspect and Centered for Picture Object<br />
*r36995 LazReport, published WordBreak property on Memo object plus some refactoring<br />
*r39364 Lazreport: clip image when it's bigger than picture object and not stretched<br />
*r39365 Lazreport: fix off by one error in calculation of PictureView size. This avoids unnecessary stretch whew pictureview size = image size<br />
*r39366 Lazreport: apply scale when drawing not stretched image. This fixes the size of image in printed report<br />
*r39368 Lazreport: cleanup. remove unused code in TfrPictureView.Draw<br />
*r39477 LazReport, fix moving/resizing objects when using keyboard under QT (and carbon), Patch from Julio Jiménez Borreguero, issue 23435<br />
*r39391,r39394 SynEdit: Fixed , make TAction regard ReadOnly state<br />
*r39409 SynEdit: LineOverviewGutter, do not cause overflow error on 64 bit<br />
*r39441 LCL: Don't publish FixedRows in ValueListEditor, allow only 0 or 1. Issue [[http://bugs.freepascal.org/view.php?id=23430 23430]]<br />
*r39442 LCL: make ValueListEditor work also when ColumnTitles are not shown.<br />
*r39449 DBG: Fixed eval of watches with class-typecase and dyn-array (stabs only)<br />
*r39461 IDE: extract proc: stop if identifier is invalid<br />
*r39484 lazutils: xmlreader: handle non existing property list, bug 23450<br />
*r39518 SynEdit: fix highlighting "i6", introduced in r32695<br />
*r39519 LazReport, fix PreviousClipRgn on image drawing, was not valid and it worked fine by coincidence<br />
*r39516 carbon: reapply brush and pen after the DC restore<br />
*r39523 lcl: add WM_ACTIVATE to messages.pp<br />
<br />
== Fixes for 1.0.4 (Merged) ==<br />
<br />
<table><br />
<tr valign="top"><td>r39177 </td><td>Customdrawn</td><td>make timer related functions 64-bit safe (fixes similar to r39164), patch from bug [[http://bugs.freepascal.org/view.php?id=23052 23052]] by lks</td></tr><br />
<tr valign="top"><td>r39280 </td><td>Debugger</td><td>Inspect-Dialog, prevent crash, due to nested updates</td></tr><br />
<tr valign="top"><td>r39285 </td><td>Debugger</td><td>Do not treat "&" as accel-char when displaying exceptions. Issue [[http://bugs.freepascal.org/view.php?id=0023321 0023321]]</td></tr><br />
<tr valign="top"><td>r39290 </td><td>Debugger</td><td>Fix updating Inspect dialog, if triggered via source-editor (pop-up menu)</td></tr><br />
<tr valign="top"><td>r39333 </td><td>Debugger</td><td>Fix range check in disassembler (64 bit debuggee). Issue [[http://bugs.freepascal.org/view.php?id=0023355 0023355]]</td></tr><br />
<tr valign="top"><td>r39042 </td><td>Debugger</td><td>Disable "run to cursor" when debugger is stopped. This command is limited to the current frame (function). It can not be used to start a project. (also disable dcJumpTo, dcStepOut)</td></tr><br />
<tr valign="top"><td>r39131 </td><td>Debugger</td><td>fixed an endless loop in watch eval (eval typecast pointer to record)</td></tr><br />
<tr valign="top"><td>r39030 </td><td>Gtk2</td><td>fixed TGtk2WSCustomListView.GetDisplayRect, also fixed cell renderer which sent wrong item id to owner drawn list view.issue [[http://bugs.freepascal.org/view.php?id=23094 23094]]</td></tr><br />
<tr valign="top"><td>r39032 </td><td>Gtk2</td><td>do not render listbox item by default if we are customdrawn. issue [[http://bugs.freepascal.org/view.php?id=23093 23093]]</td></tr><br />
<tr valign="top"><td>r39033 </td><td>Gtk2</td><td>fixed crash with TListView introduced with r39032.</td></tr><br />
<tr valign="top"><td>r39034 </td><td>Gtk2</td><td>LineTo and MoveToEx must take hdc offset into account.issue [[http://bugs.freepascal.org/view.php?id=23057 23057]]</td></tr><br />
<tr valign="top"><td>r39035 </td><td>Gtk2</td><td>fixed assertion from gtk2 library. issue [[http://bugs.freepascal.org/view.php?id=23099 23099]]</td></tr><br />
<tr valign="top"><td>r39036 </td><td>Gtk2</td><td>do not apply devctx offset into penPos, regression of r39034.issue [[http://bugs.freepascal.org/view.php?id=23057 23057]]</td></tr><br />
<tr valign="top"><td>r39037 </td><td>Gtk2</td><td>completely fixed LineTo() and MoveToEx() regressions from r39034</td></tr><br />
<tr valign="top"><td>r39043 </td><td>Gtk2</td><td>fixed clientRect of GtkTreeView, new routine GetWidgetClientRect() in gtk2proc to simplify gtk2winapi, fixed offset for custom drawn listview.</td></tr><br />
<tr valign="top"><td>r39147 </td><td>Gtk2</td><td>use better approach for RecreateWnd in TGtk2WSCustomListView, fix rendering of icon view. issue [[http://bugs.freepascal.org/view.php?id=23171 23171]]</td></tr><br />
<tr valign="top"><td>r39148 </td><td>Gtk2</td><td>added TGtk2DeviceContext class as deprecated. part of issue [[http://bugs.freepascal.org/view.php?id=23168 23168]]</td></tr><br />
<tr valign="top"><td>r39162 </td><td>Gtk2</td><td>fixed cursor position behaviour on GtkEntry focus/unfocus. issues [[http://bugs.freepascal.org/view.php?id=21897 21897]], [[http://bugs.freepascal.org/view.php?id=23182 23182]].</td></tr><br />
<tr valign="top"><td>r39217 </td><td>Gtk2</td><td>remember selection when edit looses focus.Also preselect test when AutoSelect is true.Patch by Fabrizio Fellini modified by me for autoselect rule. fixes issues [[http://bugs.freepascal.org/view.php?id=23219 23219]], [[http://bugs.freepascal.org/view.php?id=23246 23246]] (regression).</td></tr><br />
<tr valign="top"><td>r39220, r39221 </td><td>Gtk2</td><td>check if scrollbar handle is allocated when setting params.</td></tr><br />
<tr valign="top"><td>r39229 </td><td>Gtk2</td><td>trial to fix freezing of TFloatSpinEdit when we don't use clocale unit since gtk2 takes info from $LANG and our DecimalSeparator could be different. issue [[http://bugs.freepascal.org/view.php?id=23190 23190]]</td></tr><br />
<tr valign="top"><td>r39308 </td><td>gtk2</td><td>register TGtk2WSScrollBar to TCustomScrollBar instead of TScrollBar. Fixes [[http://bugs.freepascal.org/view.php?id=23200 23200]]</td></tr><br />
<tr valign="top"><td>r39326 </td><td>Gtk2</td><td>fixed offset in Gtk2 polygon drawer. issue [[http://bugs.freepascal.org/view.php?id=23359 23359]]</td></tr><br />
<tr valign="top"><td>r39327 </td><td>Gtk2</td><td>correct fix for issue [[http://bugs.freepascal.org/view.php?id=23359 23359]]</td></tr><br />
<tr valign="top"><td>r39371 </td><td>Gtk2</td><td>fixed font color changing on TCheckBox when caption is empty. issue [[http://bugs.freepascal.org/view.php?id=23373 23373]]</td></tr><br />
<tr valign="top"><td>r39374 </td><td>IDE </td><td>Hint: Fix malformated hints, if text has ampersand. or &lt;,... Issue [[http://bugs.freepascal.org/view.php?id=0023320 0023320]] Patch by Bart Broersma</td></tr><br />
<tr valign="top"><td>r39295 </td><td>IDE</td><td> rename identifier: stop on invalid identifier</td></tr><br />
<tr valign="top"><td>r38411 </td><td>IDE</td><td>removed compiler option for switch -vm</td></tr><br />
<tr valign="top"><td>r39057 </td><td>IDE</td><td>invalidate file state cache on rename/copy interactive. Issue [[http://bugs.freepascal.org/view.php?id=23073 23073]]</td></tr><br />
<tr valign="top"><td>r39291 </td><td>IDE</td><td>initial setup dlg: invalidate file state cache when user comes back from another application</td></tr><br />
<tr valign="top"><td>r39101 </td><td>IDE</td><td> SourceEditor: Use selection as default search only if caret is in/at selection (persistent selection)</td></tr><br />
<tr valign="top"><td>r39276 </td><td>IDE</td><td>SourceEditor: Fix asking "Save file", if only 1 tab is open in 2ndary window. Issue [[http://bugs.freepascal.org/view.php?id=0023312 0023312]]</td></tr><br />
<tr valign="top"><td>r39282 </td><td>IDE</td><td>SourceEditor: Fixed crash when closing last tab (via ctrl F4) while code-completion was active. Issue [[http://bugs.freepascal.org/view.php?id=0023317 0023317]]</td></tr><br />
<tr valign="top"><td>r39324 </td><td>Installer, Win</td><td>Add Spanish translation. Issue [[http://bugs.freepascal.org/view.php?id=0023087 0023087]]</td></tr><br />
<tr valign="top"><td>r39331 </td><td>Installer, Win</td><td>Added publisher, and explicit uninstall icon. Issue [[http://bugs.freepascal.org/view.php?id=0021750 0021750]]</td></tr><br />
<tr valign="top"><td>r39049 </td><td>Jedi Code Format</td><td>Locate the parse tree window better. Issue [[http://bugs.freepascal.org/view.php?id=22777 22777]]</td></tr><br />
<tr valign="top"><td>r37314 </td><td>LazReport</td><td> added TlrCodeReport component and sample, it makes reports at runtime with an easy to use api and it doesn't need the report designer, with small changes, from Julio Jimenez Borreguero</td></tr><br />
<tr valign="top"><td>r37320 </td><td>LazReport</td><td> removed testcodereport session file</td></tr><br />
<tr valign="top"><td>r37321 </td><td>LazReport</td><td>lrcodereport: version is 1.0, updated icon, cleanup, first page is now programmers responsability, sample update to export to pdf, from Julio Jimenez Borreguero</td></tr><br />
<tr valign="top"><td>r37381 </td><td>LazReport</td><td>lrcodereport: fix problem with slow generation of pages on second batch, sample now ask for target pdf filename, from Julio Jimenez Borreguero</td></tr><br />
<tr valign="top"><td>r37393 </td><td>LazReport</td><td>lrcodereport: addded accessory SetFont, frm Julio Jimenez Borreguero</td></tr><br />
<tr valign="top"><td>r37404 </td><td>LazReport</td><td> pdfexport, improves exported page sizes, from Julio Jimenez Borreguero</td></tr><br />
<tr valign="top"><td>r37414 </td><td>LazReport</td><td> fix lrcodereport compile on windows, issue [[http://bugs.freepascal.org/view.php?id=22058 22058]]</td></tr><br />
<tr valign="top"><td>r37420 </td><td>LazReport</td><td> enable text rotation in pdfexport, from Julio Jimenez Borreguero</td></tr><br />
<tr valign="top"><td>r39010 </td><td>LazReport</td><td> fix barcode sample crash, remove console window (on windows), issue [[http://bugs.freepascal.org/view.php?id=23086 23086]]</td></tr><br />
<tr valign="top"><td>r39231 </td><td>LazReport</td><td> fix right alignment text on export to PDF, from Tony Whyman, issue [[http://bugs.freepascal.org/view.php?id=23138 23138]]</td></tr><br />
<tr valign="top"><td>r39232 </td><td>LazReport</td><td> Right Justified text incorrectly aligned on printer, from Tony Whyman, issue [[http://bugs.freepascal.org/view.php?id=23135 23135]] </td></tr><br />
<tr valign="top"><td>r39233 </td><td>LazReport</td><td> corrects vertical alignment after tony's patches and improve precision on exporting to pdf, from Julio Jiménez Borreguero</td></tr><br />
<tr valign="top"><td>r39238 </td><td>LazReport</td><td> fix PDF export filter not centering images properly, issue [[http://bugs.freepascal.org/view.php?id=23236 23236]]</td></tr><br />
<tr valign="top"><td>r39239 </td><td>LazReport</td><td> Report Designer crashes with Access Violation on Insert DB Field (TFrame related issue), from Tony Whyman, issue [[http://bugs.freepascal.org/view.php?id=23205 23205]]</td></tr><br />
<tr valign="top"><td>r39240 </td><td>LazReport</td><td> stop designer from processing ContextMenu default action, fix unable to close form designer, issue [[http://bugs.freepascal.org/view.php?id=23248 23248]]</td></tr><br />
<tr valign="top"><td>r39242 </td><td>LazReport</td><td> pdfexport addon now requires powerpdf v0.9.9</td></tr><br />
<tr valign="top"><td>r39243 </td><td>LazReport</td><td> fix report designer do no update properly when compiled for Qt, From Julio Jiménez Borreguero, issue [[http://bugs.freepascal.org/view.php?id=23211 23211]]</td></tr><br />
<tr valign="top"><td>r39250 </td><td>LazReport</td><td> fix exported image size in case is not proportional and stretched</td></tr><br />
<tr valign="top"><td>r39251 </td><td>LazReport</td><td> fix text clipping on exported to PDF report, from Julio Jiménez Borreguero</td></tr><br />
<tr valign="top"><td>r39278 </td><td>LazReport</td><td> fix loading previously saved binary reports on preview window</td></tr><br />
<tr valign="top"><td>r39284 </td><td>LazReport</td><td> fix incorrect scaling of unstretched images on PDF export, PDF export addon now requires PowerPDF 0.9.10, issue [[http://bugs.freepascal.org/view.php?id=23326 23326]]</td></tr><br />
<tr valign="top"><td>r39031 </td><td>LCL</td><td>TCustomListView, use drBounds for item measuring when calculating editor bounds. issue [[http://bugs.freepascal.org/view.php?id=23094 23094]]</td></tr><br />
<tr valign="top"><td>r39118 </td><td>LCL</td><td> dbgrid, check column exists before getting button style, from Tristan Linnell, issue [[http://bugs.freepascal.org/view.php?id=22873 22873]]</td></tr><br />
<tr valign="top"><td>r39207 </td><td>LCL</td><td>add missing checks for FControl in TControlBorderSpacing</td></tr><br />
<tr valign="top"><td>r39188-r39202 </td><td>Make DEB</td><td>Fixes and languages for debian installer</td></tr><br />
<tr valign="top"><td>r38989 </td><td>Packager</td><td>Use a new component's class name as icon resource name. Issue [[http://bugs.freepascal.org/view.php?id=23075 23075]]</td></tr><br />
<tr valign="top"><td>r39078 </td><td>Qt</td><td>mark MouseMove and MouseWheel events as input events.</td></tr><br />
<tr valign="top"><td>r39087,39090 </td><td>Qt</td><td>added checks for handle after message delivery to lcl in case of input events (mouse) - avoids crashes.</td></tr><br />
<tr valign="top"><td>r39106 </td><td>Qt</td><td>Fixed themed drawing of header sections with common style. part of issue [[http://bugs.freepascal.org/view.php?id=23143 23143]]</td></tr><br />
<tr valign="top"><td>r39107 </td><td>Qt</td><td>Fixed weird drawing of header sections by oxygen theme.issue [[http://bugs.freepascal.org/view.php?id=23143 23143]]</td></tr><br />
<tr valign="top"><td>r39141 </td><td>Qt</td><td>fixed crash with hint window inside slotMouseMove. issue [[http://bugs.freepascal.org/view.php?id=23161 23161]]</td></tr><br />
<tr valign="top"><td>r39218 </td><td>Qt</td><td>fixed TListItem clearing icon. issue [[http://bugs.freepascal.org/view.php?id=23225 23225]].</td></tr><br />
<tr valign="top"><td>r39325 </td><td>Qt</td><td>fixed tabwidget icon size. issue [[http://bugs.freepascal.org/view.php?id=23362 23362]]</td></tr><br />
<tr valign="top"><td>r39038 </td><td>SynEdit</td><td>Missing invalidation in Log/Phys Converter.</td></tr><br />
<tr valign="top"><td>r39039 </td><td>SynEdit</td><td>Make sure selection Markup is not hidden by Syncro (or other plugins)</td></tr><br />
<tr valign="top"><td>r39098 </td><td>SynEdit</td><td>fix Gutter streaming to LFM</td></tr><br />
<tr valign="top"><td>r39361 </td><td>SynEdit</td><td>Fixed StatusChanged Handler repeatedly called with old values. Issue [[http://bugs.freepascal.org/view.php?id=0023377 0023377]]</td></tr><br />
<tr valign="top"><td>r39367, r39387</td><td>SynEdit</td><td>LineOverviewGutter, fix updating after lines inserted/removed. Issue [[http://bugs.freepascal.org/view.php?id=0022848 0022848]]</td></tr><br />
<tr valign="top"><td>r39372 </td><td>SynEdit</td><td>Fixed case-insensitive search/replace regex. Issue [[http://bugs.freepascal.org/view.php?id=0023078 0023078]]</td></tr><br />
<tr valign="top"><td>r39390 </td><td>SynEdit</td><td>Fixed do not copy/paste with middle mouse, if SynEdit is readonly. Issue [[http://bugs.freepascal.org/view.php?id=0023392 0023392]]</td></tr><br />
<tr valign="top"><td>r38985 </td><td>TAChart</td><td>Do not draw TColorMapSeries over left and top borders</td></tr><br />
<tr valign="top"><td>r38992 </td><td>TAChart</td><td>Add TChartAxis.MarginsForMarks property ''lets user turn off an 1.0 feature which was sometimes undesirable''</td></tr><br />
<tr valign="top"><td>r39026 </td><td>TAChart</td><td>Add TChartAxisTitle.PositionOnMarks property ''lets user turn off an 1.0 feature which was sometimes undesirable''</td></tr><br />
<tr valign="top"><td>r39067 </td><td>TAChart</td><td>Do not draw 2-d series over the chart frame</td></tr><br />
<tr valign="top"><td>r39068 </td><td>TAChart</td><td>Revert r38985, since a more general fix is implemented in r39067</td></tr><br />
<tr valign="top"><td>r39070 </td><td>TAChart</td><td>Move GetBounds procedure from TBasicChartSeries to TCustomChartSeries</td></tr><br />
<tr valign="top"><td>r39071 </td><td>TAChart</td><td>Ignore infinite series extent when calculating graph bounds</td></tr><br />
<tr valign="top"><td>r39072 </td><td>TAChart</td><td>Fix SIGFPE while drawing area series with infinite Y values</td></tr><br />
<tr valign="top"><td>r39076 </td><td>TAChart</td><td>Copy properties in TChartLegend.Assign</td></tr><br />
<tr valign="top"><td>r39129 </td><td>TAChart</td><td>Measure ZeroLevel in axis units when considering it for label direction</td></tr><br />
<tr valign="top"><td>r39130 </td><td>TAChart</td><td>Fix mark positions for bar series with BarOffsetPercent <> 0</td></tr><br />
<tr valign="top"><td>r39341 </td><td>TAChart</td><td>Fix exception when using TChartNavScrollBar under Qt</td></tr><br />
<tr valign="top"><td>r39351 </td><td>TAChart</td><td>Call Handled after extent restoration in TZoomDragTool</td></tr><br />
<tr valign="top"><td>r39376 </td><td>TAChart</td><td>Start TDateTimeIntervalChartSource intervals from the beginning of month/year</td></tr><br />
<tr valign="top"><td>r39377 </td><td>TAChart</td><td>Update chart upon changes to interval source properties</td></tr><br />
<tr valign="top"><td>r39164 </td><td>win32</td><td>add 64bit safe version of callback and timer functions. Issue [[http://bugs.freepascal.org/view.php?id=23052 23052]]</td></tr><br />
<tr valign="top"><td>r39165 </td><td>win32</td><td>replace TList by TFpList (FTimerData)</td></tr><br />
<tr valign="top"><td>r39166 </td><td>win32</td><td>add stdcall to recently added timer functions</td></tr><br />
<br />
</table><br />
<br />
It is possible that a revision is not listed here, even if it was merged. Please inspect the SVN log for more information.<br />
<br />
== Fixes for 1.0.2 (Merged) ==<br />
<br />
<table><br />
<tr valign="top"><td>r38551,&#x200B;r38552,&#x200B;r38562,&#x200B;r38563</td><td>Carbon</td><td>various winapi compatibility functions fixes</td></tr><br />
<tr valign="top"><td>r38671 </td><td>Carbon</td><td>fix accidental error in index</td></tr><br />
<tr valign="top"><td>r38743 </td><td>Carbon</td><td>reimplement linear gradient draw using shading to support OS X < 10.5</td></tr><br />
<tr valign="top"><td>r38529,&#x200B;r38530,&#x200B;r38535,&#x200B;r38543,&#x200B;r38548</td><td>carbon</td><td>fix carbon clipping, correctly return region types on HRGN related operations, fix generic IntersectClipRect routine</td></tr><br />
<tr valign="top"><td>r38640,&#x200B;r38641,&#x200B;r38642,&#x200B;r38649</td><td>Carbon, Cocoa</td><td>various ExtTextOut fixes for Carbon and Cocoa</td></tr><br />
<tr valign="top"><td>r38922 </td><td>Debugger</td><td>Fix setting stackframe for hint eval, after searching for highest source-frame.</td></tr><br />
<tr valign="top"><td>r38509 </td><td>Debugger</td><td>Ensure Queue is not blocked by LineInfo Request. (If a LineInfoRequest was queued the DebuggerCurrentLine could not search the stack, as commands were not immediately run)</td></tr><br />
<tr valign="top"><td>r38531 </td><td>Debugger</td><td>Workaround to fix exe-line-indicators (blue dots) at debug start</td></tr><br />
<tr valign="top"><td>r38373 </td><td>Gtk2,Qt</td><td>make ETO_OPAQUE work from TCanvas.TextOut(). issue [[http://bugs.freepascal.org/view.php?id=22719 22719]]</td></tr><br />
<tr valign="top"><td>r38519 </td><td>Gtk2</td><td>fixed crash with TListView when viewstyle is vsIcon or vsSmallIcon. issue [[http://bugs.freepascal.org/view.php?id=22778 22778]]</td></tr><br />
<tr valign="top"><td>r38636,&#x200B;r38637 </td><td>Gtk2</td><td>fixed text clipping and text background drawing</td></tr><br />
<tr valign="top"><td>r38697,&#x200B;38698 </td><td>Gtk2</td><td>set TToggleBox.ParentColor default false so it's color is consistent with TButton when eg.parent color is clRed and TToggleBox.Color=clDefault.</td></tr><br />
<tr valign="top"><td>r38727,&#x200B;r38728,&#x200B;r38742,&#x200B;r38744,&#x200B;r38745,&#x200B;r38748</td><td>gtk2</td><td>fix clipping and DC transformations</td></tr><br />
<tr valign="top"><td>r38747 </td><td>gtk2</td><td>fix FrameRect - it must use a passed brush instead of selected one</td></tr><br />
<tr valign="top"><td>r38758 </td><td>gtk2</td><td>allocate GdkColor when we need a BkColor</td></tr><br />
<tr valign="top"><td>r38762 </td><td>Gtk2</td><td>when style is drawing button then use style from button. issue [[http://bugs.freepascal.org/view.php?id=22901 22901]]</td></tr><br />
<tr valign="top"><td>r38799 </td><td>gtk2</td><td>implement SPI_GETWHEELSCROLLLINES. Fix a regression in VirtualTreeView wheel scroll</td></tr><br />
<tr valign="top"><td>r38860 </td><td>Gtk2</td><td>do not change color of TScrollBar since it's painted by theme engine.issue [[http://bugs.freepascal.org/view.php?id=22996 22996]].</td></tr><br />
<tr valign="top"><td>r38868,&#x200B;38875 </td><td>Gtk2</td><td>fixed crash with GtkIconView when multiselect is enabled and dbl clicked. issue [[http://bugs.freepascal.org/view.php?id=22991 22991]]</td></tr><br />
<tr valign="top"><td>r38892 </td><td>Gtk2</td><td>fixed TIconArrangement of GtkListView.</td></tr><br />
<tr valign="top"><td>r38895 </td><td>Gtk2</td><td>send LVIS_FOCUSED for listview. issue [[http://bugs.freepascal.org/view.php?id=23014 23014]]</td></tr><br />
<tr valign="top"><td>r38896 </td><td>Gtk2</td><td>fixed crash in GtkIconView by unref GtkColumn which isn't GtkObject.</td></tr><br />
<tr valign="top"><td>r38897 </td><td>Gtk2</td><td>implemented TGtk2CustomListView.ItemDisplayRect and editor for vsIconView, vsSmallIcon.issue [[http://bugs.freepascal.org/view.php?id=23015 23015]]</td></tr><br />
<tr valign="top"><td>r38899 </td><td>Gtk2</td><td>fixed few memleaks with PGList in TGtk2ListView.</td></tr><br />
<tr valign="top"><td>r38426 </td><td>IDE</td><td>CodeBrowser check for virtual units. Issue [[http://bugs.freepascal.org/view.php?id=0022740 0022740]]</td></tr><br />
<tr valign="top"><td>r38437 </td><td>IDE</td><td>project target: apply default extension even if the file has already an extension, issue [[http://bugs.freepascal.org/view.php?id=22750 22750]]</td></tr><br />
<tr valign="top"><td>r37398 </td><td>IDE</td><td>corrected version info language list, added Ukrainian language, bug [[http://bugs.freepascal.org/view.php?id=22103 22103]]</td></tr><br />
<tr valign="top"><td>r38507 </td><td>IDE</td><td>EditorOpts: default for top-info-hint</td></tr><br />
<tr valign="top"><td>r38444 </td><td>IDE</td><td>fixed crash when releasing non existing component palette select button</td></tr><br />
<tr valign="top"><td>r38722 </td><td>IDE</td><td>added Lithuanian to version info language list, bug [[http://bugs.freepascal.org/view.php?id=22898 22898]]</td></tr><br />
<tr valign="top"><td>r36887 </td><td>LazReport</td><td>fix preview scrolling broken in r36420, issue [[http://bugs.freepascal.org/view.php?id=21633 21633]]</td></tr><br />
<tr valign="top"><td>r36909 </td><td>LazReport</td><td>now fix preview scrolling in windows, broken in r36887</td></tr><br />
<tr valign="top"><td>r38486 </td><td>LCL</td><td>avglvltree: setcompare set when count=0</td></tr><br />
<tr valign="top"><td>r38720 </td><td>LCL</td><td>DefaultTranslator: fix handling of non-ASCII path to .po file, bug [[http://bugs.freepascal.org/view.php?id=22907 22907]], patch by Vladimir Zhirov</td></tr><br />
<tr valign="top"><td>r38769-r38772 </td><td>LCL, gtk2, carbon</td><td>full implementation of GradientFill</td></tr><br />
<tr valign="top"><td>r38396 </td><td>LCL</td><td>ColorBox - keep FSelected in sync all the time. fixes issue [[http://bugs.freepascal.org/view.php?id=22729 22729]]</td></tr><br />
<tr valign="top"><td>r38802 </td><td>LCL</td><td>revert 33020, 33082, 33086, part of 33089 and 33389. These changes made the hint behavior Delphi incompatible thus leading to a regression in third party control like VirtualTreeView that handles hints in CMHintShow. Retrieve parent hint recursively if hintcontrol.hint is empty' (delphi compatible)</td></tr><br />
<tr valign="top"><td>r38927 </td><td>LCL</td><td>check for csDestroying in Parent before calling SetLastFocusedControl in TCustomForm.SetFocusedControl. Not doing this check can expose fpc bug [[http://bugs.freepascal.org/view.php?id=23031 23031]] leading to a crash.</td></tr><br />
<tr valign="top"><td>r38572 </td><td>Qt</td><td>propagate QEvent:ShortcutOverride to parent, so stop key event if shortcut is executed. issue [[http://bugs.freepascal.org/view.php?id=22827 22827]]</td></tr><br />
<tr valign="top"><td>r37075 </td><td>Qt</td><td>fixed behaviour of messageDlg (PromptUser()) to return mrCancel always when Escape key is pressed or close btn clicked.issue [[http://bugs.freepascal.org/view.php?id=21885 21885]]</td></tr><br />
<tr valign="top"><td>r37217,&#x200B;37218,&#x200B;37225,&#x200B;37239,&#x200B;37241,&#x200B;37293,&#x200B;37304,&#x200B;37316</td><td>Qt</td><td>fixed keys handling (arrow keys & enter).</td></tr><br />
<tr valign="top"><td>r37857 </td><td>Qt</td><td>hide statusbar panels with width 0. issue [[http://bugs.freepascal.org/view.php?id=22362 22362]]</td></tr><br />
<tr valign="top"><td>r37862 </td><td>Qt</td><td>hide statusbar panel only when width is 0, do not count any margin.issue [[http://bugs.freepascal.org/view.php?id=22362 22362]]</td></tr><br />
<tr valign="top"><td>r38148 </td><td>Qt</td><td>allow showin modal form with borderStyle=bsNone. issue [[http://bugs.freepascal.org/view.php?id=22568 22568]]</td></tr><br />
<tr valign="top"><td>r38149 </td><td>Qt</td><td>allow edit of combobox with style csSimple. issue [[http://bugs.freepascal.org/view.php?id=22528 22528]]</td></tr><br />
<tr valign="top"><td>r38320 </td><td>Qt</td><td>fixed clearing of icon in tab.part of issue [[http://bugs.freepascal.org/view.php?id=22618 22618]]</td></tr><br />
<tr valign="top"><td>r38326 </td><td>Qt</td><td>fixed modal behaviour of borderless forms.issue [[http://bugs.freepascal.org/view.php?id=22568 22568]]</td></tr><br />
<tr valign="top"><td>r38332 </td><td>Qt</td><td>do not set popup parent for borderless forms (for popup forms) if TCustomForm.Parent (embedded form) is assigned.</td></tr><br />
<tr valign="top"><td>r38365,&#x200B;38366,&#x200B;38367,&#x200B;38368,&#x200B;38369</td><td>Qt</td><td>fix for qt richtext parser, refactored viewport event mouse move. issue [[http://bugs.freepascal.org/view.php?id=22715 22715]]</td></tr><br />
<tr valign="top"><td>r38518 </td><td>Qt</td><td>TQtWinApi.ExtTextOut() implemented Dx param. issue [[http://bugs.freepascal.org/view.php?id=22795 22795]] (zeljko will merge, need some testing)</td></tr><br />
<tr valign="top"><td>r38520 </td><td>Qt</td><td>do not propagate keyrelease event as action trigger. issue [[http://bugs.freepascal.org/view.php?id=22737 22737]]</td></tr><br />
<tr valign="top"><td>r38533 </td><td>Qt</td><td>fixed header offset and getClientRect for TListView when ViewStyle=vsReport.</td></tr><br />
<tr valign="top"><td>r38576,&#x200B;38577 </td><td>Qt</td><td>fixed TQtWidgetSet.FrameRect(), now it uses passed brush to draw frame border.</td></tr><br />
<tr valign="top"><td>r38610 </td><td>Qt</td><td>fixed non ascii utf8 chars in TQtWidgetSet.ExtTextOut() when we use dx param. issue [[http://bugs.freepascal.org/view.php?id=22795 22795]] (depends on merging of r38518).</td></tr><br />
<tr valign="top"><td>r38628,&#x200B;38629,&#x200B;38630,&#x200B;38634 </td><td>Qt</td><td>fixed clipping bugs inside TQtWidgetSet.ExtTextOut()</td></tr><br />
<tr valign="top"><td>r38643 </td><td>Qt</td><td>TQtWidgetSet.ExtTextOut() workaround for Qt-4.8 bug ,now it looks better but some scenarios with ETO_OPAQUE aren't 100% correct yet.</td></tr><br />
<tr valign="top"><td>r38644 </td><td>Qt</td><td>fixed menu flickering. issue [[http://bugs.freepascal.org/view.php?id=22872 22872]]</td></tr><br />
<tr valign="top"><td>r38674 </td><td>Qt</td><td>fixed crash when invalid or null handle is passed into SetCapture.</td></tr><br />
<tr valign="top"><td>r38679 </td><td>Qt</td><td>update bitmap if TMenuItem has associated ImageList and ImageIndex. issue [[http://bugs.freepascal.org/view.php?id=22896 22896]]</td></tr><br />
<tr valign="top"><td>r38709 </td><td>Qt</td><td>improved triggering of OnClick() in QEventShowToParent. issue [[http://bugs.freepascal.org/view.php?id=22872 22872]]</td></tr><br />
<tr valign="top"><td>r38746 </td><td>Qt</td><td>fix theme painting for some qt themes - they expect ARect with X, Y = 0</td></tr><br />
<tr valign="top"><td>r38826 </td><td>Qt</td><td>TQtWidgetSet.SetScrollInfo - fixed wrong result, it must return real slider position, not value which might be out of sync with position. This fixes problems with TScrollingWinControl (TControlScrollbar).</td></tr><br />
<tr valign="top"><td>r38893 </td><td>Qt</td><td>fixed TIconArrangement for TListView vsIcon,vsSmallIcon.</td></tr><br />
<tr valign="top"><td>r38894 </td><td>Qt</td><td>send LVIS_FOCUSED for listview. issue [[http://bugs.freepascal.org/view.php?id=23014 23014]]</td></tr><br />
<tr valign="top"><td>r38972 </td><td>Qt</td><td>added proper casts for some messages to avoid range checks.</td></tr><br />
<tr valign="top"><td>r38428 </td><td>SynEdit</td><td>MultiHighlighter: fix adding text/sections at EOL. issue [[http://bugs.freepascal.org/view.php?id=0022745 0022745]]</td></tr><br />
<tr valign="top"><td>r38670 </td><td>SynEdit</td><td>Fixed past eol paint error ** Must be ported by hand **</td></tr><br />
<tr valign="top"><td>r38672 </td><td>SynEdit</td><td>fixed delete-next-word, if caret past eol. Issue [[http://bugs.freepascal.org/view.php?id=0022890 0022890]]</td></tr><br />
<tr valign="top"><td>r36674 </td><td>TAChart</td><td>Add AddArray, AddNull, AddX and AddY functions to TChartSeries</td></tr><br />
<tr valign="top"><td>r38430 </td><td>TAChart</td><td>Fix out-of-bounds access when drawing empty polygons and polylines</td></tr><br />
<tr valign="top"><td>r38464 </td><td>TAChart</td><td>Fix error message in TFPCanvasDrawer.RadialPie</td></tr><br />
<tr valign="top"><td>r38503 </td><td>TAChart</td><td>Copy BaseLength in TChartArrow.Assign</td></tr><br />
<tr valign="top"><td>r38547 </td><td>TAChart</td><td>Support Y NaNs in polar series ''(this will cause compilation error -- please remove 'and CloseCircle' part from the last conditional in the TPolarSeries.Draw procedure)''</td></tr><br />
<tr valign="top"><td>r38557 </td><td>TAChart</td><td>Support brush style, pen style and pen width in fpvectorial drawer</td></tr><br />
<tr valign="top"><td>r38571 </td><td>TAChart</td><td>Draw chart correctly after decrease of an axis margin</td></tr><br />
<tr valign="top"><td>r38584 </td><td>TAChart</td><td>Copy Attachment and YIndex in TGenericChartMarks.Assign ''(this code is in TATypes unit in v1.0)''</td></tr><br />
<tr valign="top"><td>r38589 </td><td>TAChart</td><td>Do not draw lines which should be invisible in OpenGL drawer</td></tr><br />
<tr valign="top"><td>r38607 </td><td>TAChart</td><td>Workaround for issue [[http://bugs.freepascal.org/view.php?id=22850 22850]] '''see patch in the mailing list'''</td></tr><br />
<tr valign="top"><td>r38617 </td><td>TAChart</td><td>Fix GetNearestPoint returning true with no points found inside radius, issue [[http://bugs.freepascal.org/view.php?id=22854 22854]]</td></tr><br />
<tr valign="top"><td>r38651 </td><td>TAChart</td><td>Fix zero division when calling ImageToGraph before the chart is drawn</td></tr><br />
<tr valign="top"><td>r38673 </td><td>TAChart</td><td>Ignore NaNs while calculating TCustomChartSource.ValuesTotal</td></tr><br />
<tr valign="top"><td>r38675 </td><td>TAChart</td><td>Support Marks.Attachment = maCenter in pie series</td></tr><br />
<tr valign="top"><td>r38694 </td><td>TAChart</td><td>Fix update of TListChartSource.ValuesTotal cache when adding or removing NaNs</td></tr><br />
<tr valign="top"><td>r38710 </td><td>TAChart</td><td>Fix crash when using TChartExtentLink with LinkedChart.Chart = nil</td></tr><br />
<tr valign="top"><td>r38712 </td><td>TAChart</td><td>Fix crash while replacing linked chart in TChartExtentLink</td></tr><br />
<tr valign="top"><td>r38713 </td><td>TAChart</td><td>Use NumberOr function instead of checking for NaN explicitly</td></tr><br />
<tr valign="top"><td>r38719 </td><td>TAChart</td><td>Extract TDrawFuncHelper.ForEachPoint helper procedure ''This also fixes a hang while using data point tool on extremely zoomed-in series''</td></tr><br />
<tr valign="top"><td>r38729 </td><td>TAChart</td><td>Extract TDrawFuncHelper.XRange helper function. + Fix GetNearestPoint for rotated function series.</td></tr><br />
<tr valign="top"><td>r38733 </td><td>TAChart</td><td>Fix TChartSeries.SetColor to notify all listeners and require ListSource. Add TListChartSource.SetColor</td></tr><br />
<tr valign="top"><td>r38735 </td><td>TAChart</td><td>Fix memory leak in TDbChartSource.BeforeDraw</td></tr><br />
<tr valign="top"><td>r38737 </td><td>TAChart</td><td>Fix drawing of pie series with data from the db source</td></tr><br />
<tr valign="top"><td>r38754 </td><td>TAChart</td><td>Fix hang when changing TLineSeries.ShowPoints while drawing chart</td></tr><br />
<tr valign="top"><td>r38757 </td><td>TAChart</td><td>Display crosshair tool on mouse down</td></tr><br />
<tr valign="top"><td>r38779 </td><td>TAChart</td><td>Do not notify from TListChartSource.SetXValue and SetYValue if the value did not actually change.</td></tr><br />
<tr valign="top"><td>r38780 </td><td>TAChart</td><td>Add TBasicPointSeries.MovePoint overload for graph coordinates ''not a fix, but required for r38788''</td></tr><br />
<tr valign="top"><td>r38788 </td><td>TAChart</td><td>Support axis transformations in TCustomChartSeries.MovePoint</td></tr><br />
<tr valign="top"><td>r38792 </td><td>TAChart</td><td>Fix crash on deleting subcomponent with active property editor</td></tr><br />
<tr valign="top"><td>r38811 </td><td>TAChart</td><td>Add IsEquivalent utility function ''required for r38812''</td></tr><br />
<tr valign="top"><td>r38812 </td><td>TAChart</td><td>Fix SIGFPE on TListChartSource.SetXValue(NaN) and SetYValue(NaN)</td></tr><br />
<tr valign="top"><td>r38813 </td><td>TAChart</td><td>Fix TCustomChartSource.FindBounds for the case of extremely large bounds</td></tr><br />
<tr valign="top"><td>r38825 </td><td>TAChart</td><td>Fix drawing of function series with +Infinity in domain exclusions</td></tr><br />
<tr valign="top"><td>r38841 </td><td>TAChart</td><td>Fix inverted Y axis on TChartNavPanel's minimap. Issue [[http://bugs.freepascal.org/view.php?id=22978 22978]]</td></tr><br />
<tr valign="top"><td>r38853 </td><td>TAChart</td><td>Optimize GetNearestPoint for the case of sorted source and at least linear on X point distance</td></tr><br />
<tr valign="top"><td>r38861 </td><td>TAChart</td><td>Make sure the previous tool is deactivated before activating a new one</td></tr><br />
<tr valign="top"><td>r38862 </td><td>TAChart</td><td>Fix crash when the tool is activated while zoom animation is in progress</td></tr><br />
<tr valign="top"><td>r38863 </td><td>TAChart</td><td>Fix drawing of out-of-extent function series with +Infinity in domain exclusions.</td></tr><br />
<tr valign="top"><td>r38873 </td><td>TAChart</td><td>Clear brush when drawing line series.</td></tr><br />
<tr valign="top"><td>r38981 </td><td>TAChart</td><td>Fix a call to the "strict protected" function from non-descendant class in TChartMinorAxis.GetAlignment</td></tr><br />
<tr valign="top"><td>r38982 </td><td>TAChart</td><td>Fix out-of-bounds access while drawing TColorMapSeries with empty ColorSource</td></tr><br />
<tr valign="top"><td>r38473 </td><td>tests</td><td>fixed compilation</td></tr><br />
<br />
</table><br />
<br />
It is possible that a revision is not listed here, even if it was merged. Please inspect the SVN log for more information.<br />
<br />
== Fixes for 1.0 (Merged) ==<br />
<br />
*r36506 LazReport, fix barcode dialog localization (Jesus)<br />
*r36508 Updated Japanese translation<br />
*r36509 Window Column, store pointer to resourcestring<br />
*r36510 LazReport, fix barcode addin when TfrBarCodeObject is not yet instantiated (in this case barcode editor defaults to memo view.<br />
*r36511 DividerBevel: implemented Transparent.<br />
*r36514 IDE: moved macros save/saveall to source editor<br />
*r36515 IDE: update macro descriptions after translating resource strings<br />
*r36516 IDE: trim TLazPackageGraph.GetFallbackOutputDir<br />
*r36517 IDE: check if package needs rebuild: switch to fall back directory: update compiler params<br />
*r36518 IDE: install/uninstall package dialog: fixed icons, added info about current state<br />
*r36523,r36530 IDE: Export as HTML<br />
*r36526 CodeTemplate: Improve final caret pos, if tmpl does not specify<br />
*r36527 CodeTemplate: allow tab to trigger / selection to ignore. issue [[http://bugs.freepascal.org/view.php?id=0017631 0017631]]<br />
*r36528 SynEdit: Template(Syncro) fix invalidation<br />
*r36529 IDE: Printing: break long lines. Issue [[http://bugs.freepascal.org/view.php?id=0013479 0013479]]; <br />
*r36547 IDE: Printing: break long lines. Fix Utf8. Update for rev 36529<br />
*r36531 LazReport: fixed buttonpanel localization in BarCode editor dialog<br />
*r36533 IDE: clean up of unused resourcestrings<br />
*r36534, r36536, r36553, r36583, r36646 regenerated translations; updated Russian translation<br />
*r36535 IDE: more clean up of unused resourcestrings<br />
*r36537 Documents LCLIntf.GetDeviceCaps<br />
*r36538 IDE: always store lazarus directory<br />
*r36539 LazReport: uppercase variable before comparing with hardcoded functions. Properly fix to 21624<br />
*r36543 IDE: setup dialog: using same file resolving as IDE<br />
*r36546 IDE: consider empty lazarusdirectory as pcp, empty fpcsrcdir as lazdir, empty testdir as lazdir<br />
*r36548 IDE: fixed note about wrong laz dir<br />
*r36549 IDE: fixed crash on find identifier references<br />
*r36551 IDE: translate descriptions of all macros<br />
*r36552 IDE: fixed editor tab position combobox items localization on Editor/Misc options page<br />
*r36556,r36557 IDE: warn if upgrading configs<br />
*r36561, 36562, 36563, 36566: Improve Options/Keymap<br />
*r36565 LCL: Prevent TShape.stRectangle disappearing with certain Height/Width and Pen.Width values.<br />
*r36567,r36568,r36569 IDE: show downgrade warning<br />
*r36570 lazbuild: select IDE build mode, fixed compiling with different mode<br />
*r36572 LCL: set csCaptureMouse on TToolButton, but don't send click if mouse is out of ttoolbutton on mouseup.issues [[http://bugs.freepascal.org/view.php?id=19688 19688]],[[http://bugs.freepascal.org/view.php?id=21560 21560]]<br />
*r36574 IDE: fixed saving environment on every change<br />
*r36577 LCL, TreeView: fix GetNextVisible, GetPrevVisible. Issue [[http://bugs.freepascal.org/view.php?id=21264 21264]]<br />
*r36575 IDE/Setup dialog: force taskbar button to be shown<br />
*r36584 IDE: import package list: opendialog<br />
*r36587 IDE: intial setup: fpc src dir: lazdir/fpc/fpcver/source<br />
*r36588 IDE: intial setup: fixed if no candidates found<br />
*r36589,r36590 IDE: compiler file name: search first with macros<br />
*r36591 IDE: verbose search for candidates<br />
*r36592 IDE: search fpc src relative to fpc.exe<br />
*r36594 IDE: check compiler: only run common names<br />
*r36595,r36599 IDE: use under windows as default for make the make.exe in the compiler directory<br />
*r36596 IDE,codetools: fixed ppccross,crossppc to ppcross<br />
*r36601 IDE: unify the 2 filters in KeyMapping window. Prevent a potential crash.<br />
*r36603 debian: updated patches to latest source in lazarus svn<br />
*r36608 Gtk2: do not set widget name, it's completelly unnecessary and produce unexpected behaviour if some keywords are in widget name.issue [[http://bugs.freepascal.org/view.php?id=21661 21661]].<br />
*r36613 SynEdit: Fix an issue with Scrollbars not being updated<br />
*r36617 lazbuild: build ide: replace exe on windows<br />
*r36644 IDE: improved 'Export package list' dialog localization<br />
*r36645 IDE: improved 'Package Graph Explorer' dialog localization<br />
*r36647,r36653,r36654,r36655,r36656,36668,36673 IDE: view / IDE internal / what needs building<br />
*r36648,r36650,r36651 IDE: read state file created by Makefile: fix path delimiters, checking compiled state: ignore -v,-i,-B flags, do not skip all -F<br />
*r36652 IDE: codetools options: shorter caption<br />
*r36658 regenerated translations; updated Russian translation <br />
*r36659 LCL: Refactoring. Make TCalculatorDialog.Execute more understandable by removing a "with" block.<br />
*r36661 LCL: Prevent "Test Dialog" feature of Calculator and Calendar dialogs locking the IDE, issue [[http://bugs.freepascal.org/view.php?id=21644 21644]]<br />
*r36616 SynEdit: do not include IME for WinCe<br />
*r36662 LCL: implementation of TCustomImageList.GetIcon()<br />
*r36663 In GUI strings, unify all 3 dots to have a space before them ( ...)<br />
*r36664 IDE: Use CreateAbsolutePath when switching between relative/absolute paths in AddFile dialogs (CreateAbsoluteSearchPath gives wrong output)<br />
*r36665 LCL: publish TUpDown.OnChangingEx<br />
*r36666 IDE etc.: unify 3 dots in GUI string to have a space ( ...).<br />
*r36667 translation: german: updates from Swen Heinig<br />
*r36669 updatemakefiles: write which lpk have conditionals<br />
*r36670,r36671 IDE,lazbuild: create makefile: use CPPROG instead of COPY to get the current date for Makefile.compiled under Windows<br />
*r36649,r36657,r36602,r36672,r36675,r36677,r36679,r36683,r36701,r36708,r36709 Makefiles: updated, reduced dependencies, fixed double compiles<br />
*r36676 LCL: Implement TListItem.EditCaption, issue [[http://bugs.freepascal.org/view.php?id=20295 20295]].<br />
*r36680,r36699 lazbuild: fixed crash, replaced some MessageDlg with IDEMessageDialog<br />
*r36681 IDE,lazbuild: use parsed compiler filename, make filename<br />
*r36682 IDE: debugfilename, debugsearchpath: use same function as other env vars to resolve macros, trim and find<br />
*r36686,r36688 IDE/lazbuild backup, delete the same lazarus exe on all platforms<br />
*r36694 regenerated translations; updated Russian translation<br />
*r36695 LazDataDesktop: regenerated translations; updated Russian translation<br />
*r36696 IDE: add resource strings for various windows manifest keys<br />
*r36697 fix ImageList.AddMasked() in case of source image has no mask description<br />
*r36702 IDE: TProject.TitleIsDefault: check for project+number, fix for renaming the title of a new project<br />
*r36711 Qt: enable wordwrap on TQtStaticText. issue [[http://bugs.freepascal.org/view.php?id=21697 21697]].<br />
*r36712 LCL: fixed function result<br />
*r36713,r36715 lcl: fixed TToolButton.MouseUp X,Y in boundsrect check<br />
*r36716 LCL, combination of modal form + wsMaximized style produces tiny windows on GTK2, issue [[http://bugs.freepascal.org/view.php?id=21634 21634]]<br />
*r36717 LCL: reverted changes to menus.pp from r36666 (by Paul's request)<br />
*r36718 LCL: regenerated translations<br />
*r36719, *r36826 LCL: fix range check error<br />
*r36720 LazReport: added option to ignore undefined symbols, from Luiz Americo, issue [[http://bugs.freepascal.org/view.php?id=21683 21683]]<br />
*r36723,36724 IDE,lazbuild: fixed repeated build project clean: save project state file before compiling too<br />
*r36727 lazbuild: fixed expanding --lazarusdir<br />
*r36728 make useride: pass --lazarusdir=.<br />
*r36729 Improve TStringHashList, prevents a PO file update crash. Issue [[http://bugs.freepascal.org/view.php?id=21685 21685]]<br />
*r36730 IDE: project wizard: fixed fixed size, bug 21714<br />
*r36731 lazreport: fix possible access violation by checking dataset for nil<br />
*r36732 win32: fix range check error<br />
*r36733 lazbuild: auto create ide/revision.inc if missing<br />
*r36734 Gtk2: fixed mouse capturing on native scrolling win controls (TListBox,TListView etc).issue [[http://bugs.freepascal.org/view.php?id=21713 21713]]<br />
*r36735 LCL: TToolButton: commented debugln().<br />
*r36740 lazbuild: fixed uninitialized function result, fixed checking if init failed, quick check if lazarusdir is valid.<br />
*r36741 lazutils: Patch with font collection support from Circular<br />
*r36744 examples: Adds a OpenURL/OpenDocument test<br />
*r36745 LCL: Adds the sysenvapis include files to the lpk and adds an extra safety in OpenURL for users which forget to encode spaces in filenames<br />
*r36746 IDE: fixed fixed size dialogs<br />
*r36747 IDE: sort selection: layout<br />
*r36748 IDE: added debugging for sort selection<br />
*r36749 gtk2: clean up<br />
*r36750 IDE: less debugging<br />
*r36751 IDE: jump to next/prev error: fixed direction<br />
*r36752 LCL: TTreeView: clean up<br />
*r36753 IDE: next/prev error: clear multi selection<br />
*r36754 lcl: move interface initialization of TCustomEdit from CreateWnd to InitializeWnd. Consistent with other controls and allows interfaces to check is handle is being created<br />
*r36755 IDE: Add acceleration keys and fix tab order in Project Wizard and ImageListEditor, issue [[http://bugs.freepascal.org/view.php?id=21718 21718]]<br />
*r36756 lcl: remove TCustomListBox.Loaded. ItemIndex is initialized in InitializeWnd<br />
*r36757 lcl: call inherited after setting FLines in TCustomMemo.InitializeWnd. Fix potential crash since widgetset code expect FLines be initialized <br />
*r36758 lcl: check for csDestroyingHandle in TControl.HandleObjectShouldBeVisible. Fix issue [[http://bugs.freepascal.org/view.php?id=19882 19882]]<br />
*r36759 lcl: revert 31890 since issue [[http://bugs.freepascal.org/view.php?id=19882 19882]] is properly fixed now<br />
*r36760 gtk2: less hints<br />
*r36761 gtk2: less hints<br />
*r36762 Carbon: fixed result of TWSCarbonCustomListView GetTopItem,GetViewOrigin and GetBoundingRect. issue [[http://bugs.freepascal.org/view.php?id=21733 21733]]<br />
*r36763 Carbon: added themed TComboBox drawing.Patch by David Jenkins. issue [[http://bugs.freepascal.org/view.php?id=21747 21747]]<br />
*r36764 Carbon: added themed TComboBox drawing.Patch by David Jenkins. issue [[http://bugs.freepascal.org/view.php?id=21747 21747]]<br />
*r36765 Docs: added David Jenkins to contributors list<br />
*r36766 Carbon: make carbon widget visibility in sync with lcl. Patch by David Jenkins. issue [[http://bugs.freepascal.org/view.php?id=21731 21731]]<br />
*r36767 lcl: remove Destroying and DestroyWnd calls from TCustomListBox.Destroy<br />
*r36768 lcl: cleanup TCustomListBox.Create<br />
*r36769 codetools: fixed skipping include files in skipped ifdef<br />
*r36770 gtk2: less hints<br />
*r36771 gtk2: less hints<br />
*r36772 ide: fix selection painting of debugger eventlog colors list<br />
*r36773 carbon: improved TCarbonWidgetSet.RawImage_XXXX routines.Patch by David Jenkins. issue [[http://bugs.freepascal.org/view.php?id=21743 21743]].<br />
*r36774 carbon: proper initialization of alpha channel.Patch by David Jenkins. issue [[http://bugs.freepascal.org/view.php?id=21753 21753]]<br />
*r36775 LCL: implement ClientToParent, ParentToClient based on patch of David Jenkins (issue [[http://bugs.freepascal.org/view.php?id=0021763 0021763]])<br />
*r36776 LCL: extend TThemeServices.IsDisabled, IsHot, IsPushed for teCombobox<br />
*r36777 IDE: Fix tab order and set shortcuts in Application Options frame.<br />
*r36778 LazControls: fix potential crash in TListFilterEdit and TTreeFilterEdit<br />
*r36779 GTK2: add TGtk2WidgetSet.SetDesigning to prevent Abstract method call in IDE. Issue [[http://bugs.freepascal.org/view.php?id=21773 21773]]<br />
*r36780 IDE: fix tab order in Project Save Options frame.<br />
*r36781 IDE: fix tab order in frames: Build Modes editor, Miscellaneous Options and Version Info<br />
*r36782 IDE: fix tab order in option frames: Code Generation, Compilation, Linking, Messages, Parsing.<br />
*r36783 GTK2: clean up<br />
*r36784 GTK2: clean up<br />
*r36786 Carbon: removed extra code for teComboBox, since teComboBox is supported by themes as of r36776.<br />
*r36787 gtk2: clean up<br />
*r36788 gtk2: fixed Gtk2WidgetSet.ClipboardGetData mem leak on stream write error<br />
*r36789 gtk2: removed OldCreateStatusBarPanel<br />
*r36790 gtk2: clean up<br />
*r36791 gtk2: clean up<br />
*r36794 IDE: CloseQueryIDEWindows: skip sub forms<br />
*r36795 Fix crash in dbg-console, if dbg not active. issue [[http://bugs.freepascal.org/view.php?id=21712 21712]]<br />
*r36796 SourceEdit: use softcenter for Replace prompt. Issue [[http://bugs.freepascal.org/view.php?id=0021709 0021709]]<br />
*r36797 regenerated translations; updated Russian translation<br />
*r36800 IDE: when checking if a FPC unit has changed: ignore units that have no source in the FPC sources. Needed to ignore user units reachable through fpc.cfg.<br />
*r36801 IDE: fix error message can't find unit if the ppu is in one of the loaded packages<br />
*r36803 DOCS: correct the documentation about CanFocus<br />
*r36806 LCL: clear FActiveDefaultControl on that control destruction<br />
*r36810 LCL: fix copy paste error<br />
*r36811 LCL: don't update Default, Cancel during their applying in UpdateDefaultCancel<br />
*r36812 LCL: add and ability to use own TListItems, TListItem descendants in TListView for delphi compatibility<br />
*r36821 gtk2 intf: fixed compilation FPC_FULLVERSION<20600<br />
*r36822 gtk2 intf: clean up<br />
*r36823 gtk2 intf: clean up<br />
*r36824 gtk2 intf: clean up<br />
*r36825 LCL: initialize font height with the height from DefFontData<br />
*r36852 IDE: when checking if global unit has changed, skip units in packages<br />
*r36857,36859 LCL: TControl.UpdateBaseBounds: set cfBaseBoundsValid<br />
*r36861 LCL: TCustomSplitter.SetAnchors: adapt anchors before applying<br />
*r36870 LCL: SetAlign: restore the basebounds set before changes<br />
*r36877 LCL: clean up<br />
*r36882 LCL: TControl.SetAnchors: during disabled autosize: update basebounds when changing Anchors, bug 21730<br />
*r36884 LCL: fixed sending CM_EXIT,CM_ENTER when flastfocusedcontrol was removed<br />
*r36885 LCL: constraint Width,Height to >=0<br />
*r36888 Converter: fixed 'Missing units' dialog localization, part of bug 21784<br />
*r36889,r36890 codetools: class completion: fixed gathr proc definitions<br />
*r36891 IDE: show compiling resource lines when error on compiling resources<br />
*r36892 IDE: improved message when can not find unit and unit was found in a package<br />
*r36893,r36894 IDE: messages: show debug: lines and calling resource compiler<br />
*r36895,r36896 gtk2 intf: checking for liboverlay, using value-changed instead of change-value<br />
*r36897 LCL: made TImage.DestRect public<br />
*r36899 Fix encoding errors in Japanese translation<br />
*r36900,r36901 startlazarus: fixed asking for custom or default<br />
*r36902 LCL: fixed ShowModal() when Hide() is called on modal form to be Delphi compatibile.issue [[http://bugs.freepascal.org/view.php?id=15390 15390]]<br />
*r36903 IDE: fixed read/write designinfo, bug 21804<br />
*r36904 IDE: do not save a new project where only session was modified, bug 21803<br />
*r36905 gtk2 intf: fixed TGtk2WSCustomTabControl.GetDefaultClientRect to check if gtknotebook has a page<br />
*r36906,36907 codetools: AddLocalVar: do not add hidden used unit<br />
*r36908 Qt: added TQtWidget.testAttribute() function.<br />
*r36910 DBG: Tests for environment<br />
*r36913 TAChart: Set Brush.Color before Brush.Style to work around issue [[http://bugs.freepascal.org/view.php?id=21806 21806]]<br />
*r36914: TAChart: Fix compilation of OpenGL drawer<br />
*r36924 gtk2 intf: TGtk2WSCustomTabControl.GetDefaultClientRect for TTabControl<br />
*r36925 Qt: fixed resize events of TQtTabWidget and accurate information about clientRect changes. issue [[http://bugs.freepascal.org/view.php?id=21805 21805]]<br />
*r36929 Gtk2: fixed text background drawing in TGtk2WidgetSet.ExtTextOut() when BkMode = OPAQUE.issue [[http://bugs.freepascal.org/view.php?id=19384 19384]]<br />
*r36941 Translations: Brazilian Portuguese translation update by Marcelo B Paula, bug 21818<br />
*r36938,36939 LazReport, lift up to preview window improving layout and functionality, from Julio Jimenez B.<br />
*r36942 LazReport, avoid hiding text at some zoom values due small differences in text height calc (DONT MERGE YET, NEEDS MORE TESTING)<br />
*r36943 IDE: msg quickfix for cant find unit: add position<br />
*r36956 carbon: added FHasPaint variable to TCarbonWidget to allow owner draw.issue [[http://bugs.freepascal.org/view.php?id=21744 21744]]<br />
*r36957 carbon: added ScrollRect() routine to TCarbonWidget. issue [[http://bugs.freepascal.org/view.php?id=21741 21741]]<br />
*r36958 carbon: set FTabIndex instead ATabIndex variable in TCarbonTabsControl.SetPageIndex. patch by David Jenkins.issue [[http://bugs.freepascal.org/view.php?id=21728 21728]]<br />
*r36959 carbon: optimized caret drawing to not update whole widget.patch by David Jenkins. issue [[http://bugs.freepascal.org/view.php?id=21768 21768]]<br />
*r36960 carbon: fixed order of check width > height in TCarbonTrackbar.patch by David Jenkins. issue [[http://bugs.freepascal.org/view.php?id=21740 21740]]<br />
*r36961 carbon: implemented autosizing for listview / databrowser columns.patch by David Jenkins. issue [[http://bugs.freepascal.org/view.php?id=21745 21745]]<br />
*r36962 carbon: fixed possible bad loop in TCarbonSpinEdit.CreateWidget.Patch by David Jenkins.issue [[http://bugs.freepascal.org/view.php?id=21732 21732]]<br />
*r36965 IDEIntf: fixed typo<br />
*r36967 Gtk2: fixed retreiving font name from TGtk2WidgetSet.GetObject() when font is default. issue [[http://bugs.freepascal.org/view.php?id=21828 21828]]<br />
*r36968 codetools: JumpToPublishedMethodBody: raise error<br />
*r36969 codetools: fixed FindMethodNodeInImplementation for program<br />
*r36971 tests: codetools: added test for duplicate sections, parsing library<br />
*r36972 codetools: fixed reparsing initialization, finalization, begin<br />
*r36973 codetools: fixed treating initialization, finalization as statement<br />
*r36974,r36975,r36976,36977,36978 codetools: fixed find declaration in library starting in initialization, bug 21832<br />
*r36981,r36982 codetools: identifier completion: fixed continue searching<br />
*r36979 Updated Japanese translation by Haruyuki Fujimaki<br />
*r36980 Fix japanese encoding<br />
*r36983,r36984 codetools: identifier completion: some keywords for library, program<br />
*r36985 codetools: identifier completion: keyword initialization for library, issue [[http://bugs.freepascal.org/view.php?id=21839 21839]]<br />
*r36986 Updated Japanese translation by Haruyuki Fujimaki<br />
*r36990 codetools: identifier list: skip identifier at cursor<br />
*r36991,r36992 IDE: identifier completion: add do after with, issue [[http://bugs.freepascal.org/view.php?id=16850 16850]]<br />
*r36996,r36997,r36999,r37013,r37014,r37015 runtests: fixed compilation, added some tests<br />
*r37012,r37011,r37009,r37008,r37007,r37006,r37005,r37004,r37003,r37002,r37000 carbon interface: clean up<br />
*r37020 IDE: recent/history lists: replaced case sensitive comparison with three types<br />
*r37021 docking: update modified flags<br />
*r37022 codetools: fixed uninitialized result<br />
*r37025 IDE: use unit dialog: check for syntax errors<br />
*r37026,r37027 DBG: Prepare for different line endings. / Accept different line endings (#10, #13, #10#13, #13#10) issue [[http://bugs.freepascal.org/view.php?id=0021834 0021834]].<br />
*r37029 Gtk2: fixed drawing of text with solid brush. issue [[http://bugs.freepascal.org/view.php?id=21863 21863]]<br />
*r37031 Gtk2: do not draw text background if colormap isn't assigned. Second part of issue [[http://bugs.freepascal.org/view.php?id=21863 21863]].<br />
*r37032 gtk2: clean up old mouse capture<br />
*r37033 gtk2: fixed releasecapture<br />
*r37034 gtk2: verbosity for ubuntu liboverlay mouse capture bug<br />
*r37038 sqldb: Enable mssqlconnection for fpc >= 2.6.1 (patch from Reinier Olilagers, bug 21867) - added because creates conflicts with later sqldb merges<br />
*r37040: TAChart: Workaround for TDbChartSource referring to the dataset with Filtered := true<br />
*r37043 LCL, fix TPostScriptPrinterCanvas.ClipRect is empty-rect until explicitly set by user, patch from Joachim Paepke, issue [[http://bugs.freepascal.org/view.php?id=21027 21027]]<br />
*r37051 Translations: Ukrainian translation update by Igor Paliychuk<br />
*r37052 regenerated translations; updated Russian translation<br />
*r37053 LCL: fixed compilation for fpc 2.7.1<br />
*r37054,37055,37057 set TDBLookup.FListLink.DataSource dynamically to FListSource or a local datasource. Issue [[http://bugs.freepascal.org/view.php?id=15410 15410]]<br />
*r37067 LCL: fixed visibility of implemented interfaces<br />
*r37069 simple deb: using make bigide, updated list of tools<br />
*r37070 openglcontrol: fixed mem leak, issue [[http://bugs.freepascal.org/view.php?id=21597 21597]]<br />
*r37071 codetools: identifier completion: unit name of self<br />
*r37076 gtk2: clean up<br />
*r37077 IDE: clean up<br />
*r37092 LCL: fixed compilation for fpc 2.7.1<br />
*r37093 DBG: Testcase: fixed reading env-options<br />
*r37095 SynEdit: fix crash in overview gutter creation. Issue [[http://bugs.freepascal.org/view.php?id=0021887 0021887]]<br />
*r37096 SynEdit: Do not offer OverviewGutter in Gutter-parts designer<br />
*r37101 lazreport: fixed compilation with fpc 2.7.1, new TBookMark<br />
*r37102 lazreport: clean up<br />
*r37112,r37113 SynEdit: highlight class "helper". Fix wrong highlight of "sealed" Issue [[http://bugs.freepascal.org/view.php?id=0021812 0021812]]<br />
*r37115 openglcontrol: fixed mem leak, issue [[http://bugs.freepascal.org/view.php?id=21597 21597]]<br />
*r37126 LCL: Publish some TCheckGroup properties.<br />
*r37129 gtk2: clean up<br />
*r37154,37247,37248 lcl-db: prevent lookup initialization when dataset is destroyed<br />
*r37155 LCL, use rectclip to set clipping rectangle instead of current path because it sometimes get drawn on next stroke (related to r37043)<br />
*r37157 Qt: fixed key events from QCalendar, now tabbing works fine.<br />
*r37160 LCL: published missing properties TCalendar.Hint and TCalendar.TabOrder.<br />
*r37167 LCL: Fix range check error in StringGrid when sorting and RowCount=FixedRows, issue [[http://bugs.freepascal.org/view.php?id=21947 21947]]<br />
*r37073 codetools: resolve expr: thisunitname.implementationenidentifier<br />
*r37078 codetools: find declaration: selfunit.implementationidentifier<br />
*r37079,r37080,r37081,r37082,r37083,r37087,r37089,r37098 codetools: getsmarthint: class variables, enum, array of, inheritance, property params and type, use unit<br />
*r37085 IDE: show compiler options: check compiler<br />
*r37086,37088 IDEIntf: removed TLazCompilerOptions.LCLWidgetType, fixed computing default LCLWidgetType on cross target OS<br />
*r37090 codetools: do not try to search in record ancestors<br />
*r37105 DBG: Watches Copy Name/Value to clipboard. Issue [[http://bugs.freepascal.org/view.php?id=0021860 0021860]]<br />
*r37106 DBG: Register Copy Name/Value to clipboard. Issue [[http://bugs.freepascal.org/view.php?id=0021860 0021860]]<br />
*r37107 DBG: Watches, added inspect/evaluate to popup<br />
*r37116 DBG: Fix a possible crash in debugger (history). Issue [[http://bugs.freepascal.org/view.php?id=0021901 0021901]]<br />
*r37195 SourceEdit: Do not access outdated tab-history entries (dangling pointers). Issue [[http://bugs.freepascal.org/view.php?id=0021939 0021939]]<br />
*r37196 SourceEdit: Only add tabs to tab-history that were accessed<br />
*r37103,r37132 codetools: nested types: Self and inherited<br />
*r37104,r37120 codetools: GetSmartHint: show anonymous arrays<br />
*r37111 IDE: Make Close button work in Components List dialog. Issue [[http://bugs.freepascal.org/view.php?id=21892 21892]],<br />
*r37118 IDE: build ide: if building fails, clear flag clean up once<br />
*r37119 IDE: when building IDE failed: restore backup<br />
*r37121,r37122 IDE: select frame: search in packages<br />
*r37130 IDE: select frame: search in packages<br />
*r37131 LCL, implements textrect clipping in Postscriptprintercanvas<br />
*r37133 SynEdit: Fix WantTabs / Change default to "True" Issue [[http://bugs.freepascal.org/view.php?id=0021904 0021904]]<br />
*r37134 SynEdit: Remove not required invalidation (paint / call to wrong Update() )<br />
*r37135 SynEdit: Remove wrong implementation of Update. Update no longer forwards to Invalidate<br />
*r37136 IpPro: Fix painting for SelectAll<br />
*r37137 IDE, IpPro: Allow copy to clipboard from hint (zeljko added because of conflict in 37345)<br />
*r37140 cody: show code node info: show complete source<br />
*r37141 SynEdit: Fixed Caret paint error (extra caret left on screen) Issue [[http://bugs.freepascal.org/view.php?id=0021924 0021924]]<br />
*r37143 IDEIntf: added TPropertyEditorHook.IsSelected<br />
*r37144 IDEIntf: TDefaultComponentEditor: always select component<br />
*r37146 IDE: if component class is missing: note about RegisterClass<br />
*r37148 Translations: Ukrainian translation cleanup<br />
*r37149 IDE: regenerated translations; updated Russian translation<br />
*r37151 cody: IDE item to create dockable IDE window<br />
*r37152 cody: new IDE window: show dialog to setup form name<br />
*r37162,r37163 IDE: TProjectFileDescriptor.DefaultResourceName: first try without appending a number, check for pascal keywords<br />
*r37164,r37165 IDE: fixed DoGetUnitRegisterInfo for virtual files<br />
*r37166 SynEdit: Fixed Caret when scrolling under older Wine (Win Emulator)[[http://bugs.freepascal.org/view.php?id=21929 21929]]<br />
*r37212 sqldb: added icon for TMySQL55Connection for fpc 2.6.1 '<br />
*r37213,r37214,r37219 codetools: do not save errors outside parser<br />
*r37215 codetools: GetSmartHint: ^, .., file of, class of<br />
*r37220 Translations: Czech IDE translation update by Martin Smat<br />
*r37224 SynEdit: Autocompletion, workaround for click on hint Issue [[http://bugs.freepascal.org/view.php?id=21952 21952]]<br />
*r37231 SynEdit: Prevent some scrolling, while selecting by mouse. Issue [[http://bugs.freepascal.org/view.php?id=0021996 0021996]]<br />
*r37232 DBG: Inspect window, improve scrolling<br />
*r37234 DBG: Improve start-up to work with bug in gdb 7.4<br />
*r37262 searching compiler: search first in dir of fpc.exe, then in PATH<br />
*r37263,r37265 codetools: improved error message on unit not found<br />
*r37264 fix setting radiogroup.itemindex under gtk2. Issue [[http://bugs.freepascal.org/view.php?id=22013 22013]]<br />
*r37267 Docs: improved build_lcl_docs robustness when working with TProcess, patch from Reinier Olislagers, bug 22000<br />
*r37273 SourceEditor: Fix crash when closing several tabs, while debugging (paused / loading line info). Maybe related to issue [[http://bugs.freepascal.org/view.php?id=22015 22015]]<br />
*r37274 Fix Crash in building "Windows" (list of open W.) Menu. Note 0059576 in Issue [[http://bugs.freepascal.org/view.php?id=22015 22015]] (not related to other parts of issue)<br />
*r37280 SQLdb: added missing tmysql55connection.png, bug 22033 '''Related to 37212 and other revisions for TMySQL55Connection'''<br />
*r37281 SynEdit: protect ProcessCommand() against early destruction by ReleaseComponent. Issue [[http://bugs.freepascal.org/view.php?id=0022035 0022035]]<br />
*r37285 IDE: make Close button work in Window Manager<br />
*r37286 Patch from bug 21651, automatically adds quotes to paths with spaces for OpenDocument in Mac OS X<br />
*r37297,r37298 SynEdit, Pas-HL: record helper, deprecated in object<br />
*r37311 Translations: Arabic IDE translation update by Mazen NEIFER<br />
*r37312 IDE: Make Help button work in Editor Window Manager, issue [[http://bugs.freepascal.org/view.php?id=21961 21961]]. (zeljko added to merge list because of conflicts in 37491)<br />
*r37325 regenerated translations; updated Russian translation<br />
*r37326 Translations: Brazilian Portuguese translation update by Marcelo B Paula, bug 22064<br />
*r37327 IDE, Code Generation options: changed wrong -Op386 option to correct -Op80386. Patch by barlone with some consistency changes, bug 22062.<br />
*r37357 Gtk2: fixed mbAll button on dialogs. Added response keys which does not exist in gtk2. issue [[http://bugs.freepascal.org/view.php?id=22083 22083]]<br />
*r37344 gtk2 intf: less hints<br />
*r37345 ipro: less hints <br />
*r37359 lazreport: German translations<br />
*r37360 cody: German translations<br />
*r37039,r37319,r37324,r37361 sqldb: German translations (zeljko added 37039,37319,37324 because of conflicts)<br />
*r37362 educationlaz: German translations<br />
*r37363 ide: German translations<br />
*r37372 lcl: don't access Items of TreeView if DragOver happens during treeview destruction<br />
*r37373 IDE: debugger options: check the resolved file, bug 22086<br />
*r37374 Qt: bypass windowmanager when showing dragimagelist.<br />
*r37375 Gtk2: do not show taskbar entry for dragimagelist.<br />
*r37376 IDE: update TUnitInfo.ResourceBaseClass on loading lfm<br />
*r37378 [Edited, includes selected lines of 37402] SourceEditor: Hide hint, when mouse moves (even if outside IDE, or IDE is not active). Issue [[http://bugs.freepascal.org/view.php?id=0022016 0022016]]<br />
*r37368 DBG: Fixed array len for 64 bit<br />
*r37369 lcl: don't crash when either DragTarget or dragged control is freed (issue [[http://bugs.freepascal.org/view.php?id=22067 22067]])<br />
*r37370 lcl: cleanup debug info<br />
*r37371 lcl: fixed a memory leak when canceling drag of dead control<br />
*r37380 SourceEdit/DBG: Ensure Codebuffer is updated before using it to add watches<br />
*r37383 IDE: TUnitInfo.fModified: do not set on get<br />
*r37384,r37401 IDE: do not set TUnitInfo.Modified when committing source editor to codetools<br />
*r37388,r37389,r37390,r37391,r37392 tests: added tests for cfgscripts, fixed unit output directory, cfgscript: fixed error message if semicolon is missing, IDE: added conditionals functions GetIDEValue, GetEnv, LCL: use IDE widgettype as default<br />
*r37397 TodoList: properly trim comment markers and convert multiline text to single line, fixes bug 22085. Based on patch by Anton.<br />
*r37400 codetools: fixed mem leak<br />
*r37418: TAChart: Fix range check using datapoint tool on a chart without series<br />
*r37440 DBG: do not set temporary stack = -1 in thread changing. This may cause errors<br />
*r37444 DBG: Watches, save "Use instance class" to config<br />
*r37449 LCL: fixed comments<br />
*r37451 Qt: fixed wrong SetCapture() under win32. Problem was passed TQtWidget handle instead of underlaying widget winID() which is native handle.<br />
*r37453 SynEdit: Fix goto bookmark and persistent block. Do not clear persistent block<br />
*r37461 lcl: TCustomForm.UpdateDockCaption: fixed repair garbage<br />
*r37463 IDE: when docked keep IDE caption<br />
*r37464 Help, DBG: New link to wiki for watch properties<br />
*r37475 codetools: TCustomCodeTool.FindLineEndOrCodeAfterPosition: fixed crash when at end of code<br />
*r37476 codetools: clear nodes behind, when linkscanner parsed only parts<br />
*r37481 IDE: fixed storing old LCLWidgeType, bug 22174<br />
*r37482 codetools: save parse error of operator, do not save errors outside parser, fixed parsing method name with generic parameter<br />
*r37483 codetools: allow keywords in program name<br />
*r37534 Qt: do not call setValue() but setPosition() so lcl gets accurate values later. issue [[http://bugs.freepascal.org/view.php?id=22187 22187]]<br />
*r37491 Help, DBG: Link to wiki for breakpoint properties (zeljko - 37312 is merged too, because of conflicts)<br />
*r37470 IDE, DBG: debug-eval hint, do not show, if selection exceeds one statement (e,g whole file selected). Part of issue [[http://bugs.freepascal.org/view.php?id=0022081 0022081]]<br />
*r37471 SourceEditor: Fix an issue with focusing an editor, that is being closed (while debugging) "no parent handle". Issue [[http://bugs.freepascal.org/view.php?id=0022015 0022015]]<br />
*r37517 SynEdit: fixed folding for "case" and "try" in certain code segments (initialization / case...else try)<br />
*r37518 SynEdit: Pas-HL: fix detection of case...else versus if...then...else<br />
*r37522 SynEdit: Pas-HL: better detection of case...else<br />
*r37623 SourceEditor: Fix (Work-around) an issue with focusing an editor, that is being closed (while debugging) "no parent handle". Issue [[http://bugs.freepascal.org/view.php?id=0022015 0022015]] // Required some parts of r37502<br />
*r37609 DBG: Avoid re-queuing of dis-assembler requests, after cancelling it. Part of issue [[http://bugs.freepascal.org/view.php?id=0022230 0022230]]<br />
*r37643 DBG: Disassembler: prevent disassembler from doing large address ranges, if gdb returns data with far away addresses. Issue [[http://bugs.freepascal.org/view.php?id=0022230 0022230]]<br />
*r37657 DBG: fixed a out of index error, in watches history<br />
*r37694 DBG: Fixed possible crash in watch evaluation (WatchValue freed while evaluating / in GetValue)<br />
*r37466 IDE: added menu item to insert MIT license text<br />
*r37407,r37474,r37492 IDE: TMainIDE.DoSourceEditorCommand: improved focus check, requires r37466<br />
*r37564 LCL: TCustomListView: reset FCacheIndex and FCacheItems before sorting list, otherwise we'll have unexpected results. issue [[http://bugs.freepascal.org/view.php?id=22218 22218]]<br />
*r37505, r37509, r37516, r37523 fixed compilation with fpc 2.7.1<br />
*r37592 lcl: fixed compilation fpc 2.7.1<br />
*r37525 TAChart: Display legend symbols even if the text is empty<br />
*r37565 TAChart: Display major axis marks at the edges of the clip range<br />
*r37576 TAChart: Fix infinite recursion when drawing chart listbox from series with Legend.Multiplicity <> lmSingle<br />
*r37588 TAChart: Include Item.Y in reordered list of TCalculatedChartSource. Update test. '''This will break old tests. Please contact me for a fix --- Ask'''<br />
*r37727 TAChart: Update to the recent version of FPVectorial<br />
*r37587 Qt: unset icon when doing internal sync after sorting. part of issue [[http://bugs.freepascal.org/view.php?id=22218 22218]]<br />
*r37620 LCL: invalidate parent preferredsize when borderspacing changed, bug 17947<br />
*r37621 LCL: clean up - invalidate in TControl.DoBorderSpacingChange no longer needed with new autosizing<br />
*r37622 lazutils: added missing file<br />
*r37624 LCL: GetClientRect: if interface has the right width,height trust the clientrect, this avoids some unneeded resizes<br />
*r37573 IDE: project inspector: add files: allow dotted unit names, bug 22209<br />
*r37619 IDE: open package dependency: try provides, issue [[http://bugs.freepascal.org/view.php?id=17960 17960]]<br />
*r37628 IDE: compiler options: disable target platform for packages<br />
*r37594 codetools: fixed Unneeded extra space in event assignment completion<br />
*r37613 codetools: property completion: add class var for class property variables<br />
*r37614 codetools: class completion: search variables in all sections, bug 22246<br />
*r37625,r37626,r37627 codetools: class completion: fixed searching var node when first is class var<br />
*r37629 codetools: fixed adding class keyword for property setter of a class property<br />
*r37630 IDE: codeexplorer: labels<br />
*r37634 IDEIntf: objectinspector: fixed painting outside paint event<br />
*r37631 codetools: no var node for anonymous record case variables<br />
*r37632 codetools: identifier completion: when creating an override hide higher visibility members<br />
*r37633 codetools: class completion: add static method modifier for setter of class property<br />
*r37636 codetools: class completion: add static method specifier for class property setter<br />
*r37635 IDE: paste component: fix renamed references<br />
*r37637,r37638,r37639 IDE: paste multiple components: fix references, lcl: LRSObjectTextToBinary: write convert list of components<br />
*r37640 IDE: paste components: update TControl.Caption<br />
*r37642 lcl: fixed LRSObjectTextToBinary toWString, issue [[http://bugs.freepascal.org/view.php?id=19650 19650]]<br />
*r37644 codetools: fixed inserting proc bodies in implementation in front of methods<br />
*r37652,r37653,r37655 codetools: using TFileStreamUTF8<br />
*r37656 IDE: using TFileStreamUTF8 and TStringListUTF8<br />
*r37663 IDE: fixed show info on --help when no stdout exists<br />
*r37689 LCL: fixing handling of special keys for TCustomEdit and TCustomMemo<br />
*r37690 codetools: forward proc completion: stay in same section<br />
*r37697 DBG: Dialogs, don't give help related commands to IDE. They will be ignored<br />
*r37698 IDE Help: add urls for dbg dialogs<br />
*r37703 lazutils: utf8pos: added optional parameter StartPos<br />
*r37704 IDE: setup dialog: show fpc source directory release version as warning instead of error<br />
*r37707 tools create deb+rpm: use 128x128 icon<br />
*r37705 SynEdit: open and close clipboard explicitly to write multiple formats.<br />
*r37714 lcl: gtk2: warn only once about liboverlay<br />
*r37711 lhelp: cleaned up paths<br />
*r37712 lhelp: clean up<br />
*r37713 lhelp: resolve macros in HelpEXE on the demand<br />
*r37715 chmhelp: using search path to search for chm files<br />
*r37716,r37717 chmhelp: added path $(LazarusDir)/docs/chm<br />
*r37718 'hmhelp: search ref.chm in docs/chm<br />
*r37726 create_lazarus_deb: added option chmhelp<br />
*r37722 DBG: Event-Log: Do not cache Options. Allow user to change options while debugging<br />
*r37596 Patch from {{MantisLink|0022231}} "fix warnings with fpc 2.6.1".--[[User:AlexVinS|AlexVinS]] 21:40, 8 June 2012 (UTC)<br />
*r37745 deb+rpm: default environmentoptions: updated to 107, removed default gdb entry<br />
*r37748,r37755 lhelp: added makefile<br />
*r37749 make bigide: build lhelp<br />
*r37753 IDE: fixed comparing file names case insensitive<br />
*r37754 lazutils: inlined UTF8CompareStr<br />
*r37760 Use Utf8CompareText instead of AnsiCompare<br />
*r37762 linux: added encoding to desktop file<br />
*r37769 Use Utf8CompareText instead of AnsiCompare<br />
*r37770 TAChart: Fix AV when clearing Series.Styles and TColorMapSeries.ColorSource properties<br />
*r37772 Use Utf8CompareText instead of AnsiCompare<br />
*r36804 win32: mark client rect as required update before WM_SIZE passing, remove DoAdjustClientRectChange - they are called inside WM_SIZE handler after the client rect is updated (fixes bug [[http://bugs.freepascal.org/view.php?id=0021724 0021724]])<br />
**Paul remarked about r36804: "Please don't merge it for at least 2 weeks". Also seems to cause problems in grids, see [http://bugs.freepascal.org/view.php?id=21790 issue [[http://bugs.freepascal.org/view.php?id=21790 21790]]].<br />
*r36993: LCL, fixed Problems setting Width, Height for TCustomGrid if ScrollBars is auto, from cobines, issue [[http://bugs.freepascal.org/view.php?id=21790 21790]]. If r36804 is merged, please merge also r36993<br />
*r37783 startlazarus: linux: adding LIBOVERLAY_SCROLLBAR=0 to avoid problems with mouse capturing<br />
*r37785 gtk2 intf: disable liboverlay by default<br />
*r37790 gtk2 intf: use setenv only on Linux<br />
*r37795: export tgz: added option to add chm files<br />
*r37796 IDE: when copying secondary configs create the primary config directory first<br />
*r37797 rpm: added option chmhelp<br />
*r37810 rpm: fixed building without chmhelp<br />
*r37811 lhelp: fixed invalid recent item path in config, added build modes default,debug<br />
*r37814 chmhelp: clean up old ipc files to prevent IDE hang<br />
*r37817-r37821 MAKE DEB<br />
*r37838 DBG: Fix handling console input<br />
*r37824 chmhelp: Fixed lazarus hanging when chmhelp pipe is leftover from an improperly closed lhelp<br />
*r37825 chmhelp; Fixed chmhelp typo (boolean error)<br />
*r37826 chmhelp: fixed bug where a new lhelp process could be started each time F1 was pressed<br />
*r37841 DBG: Pseudo-Terminal, accept tabs<br />
*r37848 lazutils: docs: fixed encoding and package name<br />
*r37849 lcl: docs: fixed encoding<br />
*r37850 ide: docs: fixed encoding<br />
*r37851 updated docs<br />
*r37853 lcl: docs: fixed some links<br />
*r37852 build_lcl_docs: using UTF-8 file functions, added option -h<br />
*r37855 build_lcl_docs: showcmd: show working directory<br />
*r37861 lcl: check if ListDataset is loading to update lookup info. Issue [[http://bugs.freepascal.org/view.php?id=22337 22337]]<br />
*r37846 win32: let TComboBox.CloseUp fire before Change (delphi compatible). Fix 22352<br />
*r37880 IDE+startlazarus: use same working directory, needed for passing relative file names as command line parameters, fixed building lcl+lazutils chm on ubuntu 12<br />
*r37866 lazutils: fixed unit names<br />
*r37868 lazutils: added fpdoc files<br />
*r37869 docs: building lazutils+lcl chm<br />
*r37885 DBG: fixed parsing sets for debug-inspector<br />
*r37906 IDE-Options / SynEdit: Fixed RightEdge visibility (Recression)<br />
*r37919 DBG: Prevent potential crash/memory-corruption in Watches<br />
*r37920 DBG: Prevent potential crash in (dbg-)OnIdle handling<br />
*r37921 DBG: Prevent build up of no longer needed commands in queue<br />
*r37945 DBG: Prevent a crash, when the selected snapshot is deleted. Cas also happen when starting the debugger, while a snapshot from previous run is active<br />
*r37950 DBG: fixed endless loop in watch eval (auto type cast) Issue [[http://bugs.freepascal.org/view.php?id=0022425 0022425]]<br />
*r37961 DBG: Disable rangechecks for certain PtrUInt casts<br />
*r37993 carbon: fixed crash of IDE when compiled with range checks on<br />
*r38006 gtk2: fixed crash on QuestionDlg<br />
*r38003 IDE: fixed showing custom project options, issue [[http://bugs.freepascal.org/view.php?id=22486 22486]]<br />
** merged ONLY main.pp<br />
*r38016 ToDoList: fixed encoding of French translation, it should be UTF-8, not ISO-8859-1. Patch by batyann811, bug 22489.<br />
*r37981,37983-37989,38001,38004-38005,38012,38017 Win Installer<br />
=== Fixed after RC1 ===<br />
*r38127 IDE, EditorOptions: Fixed finding color attribute in localized IDE<br />
*r38132 IDE: setup: after changing lazarusdir: fetch translations and translate<br />
*r38133 chmhelppkg: invoke lazbuild with --pcp parameter<br />
*r38138 examples: testall: fixed start<br />
*r38139 examples: cleandirs: error for fpc version<br />
*r38140 examples: componentstreaming: fixed typo, clean up<br />
*r38141 lazfreetype: fixed range check error, improved error message<br />
*r38142 examples: mssqlconn: requires fpc 2.6.1<br />
*r38144 examples: synguttermarks: win32 gui mode, fixed Left position<br />
*r38146 examples: tv_add_remove: updated<br />
*r38147 examples: xmlreader: added example xml<br />
*r38157 IDE: fixed saving ambiguousfileaction, bug 22573<br />
*r38158 examples: clean up<br />
*r38038 TAChart: Allow spaces in field names inside TDbChartSource.FieldY<br />
*r38168 synuni: clean up fpc options<br />
*r38170 synuni, semaphorgridlpk: clean up fpc options<br />
*r38022 SynEdit: Fixed drawing errors for frames (left frame site drawn at wrong offset)<br />
*r38145 LCL: TListView fixed "List index out of bounds" while deleting items. issue [[http://bugs.freepascal.org/view.php?id=22552 22552]]<br />
*r38150 SynEdit TSynMultiSyn: Fixed crash when deleting lines. Part of issue [[http://bugs.freepascal.org/view.php?id=0022519 0022519]]<br />
*r38151 SynEdit Highlighter: Fixed crash when scanning empty<br />
*r38152 SynEdit TSynMultiSyn: typo<br />
*r38175 SynEdit TSynMultiSyn: Fixed updating, when appending to EOT. Part of issue [[http://bugs.freepascal.org/view.php?id=0022519 0022519]]<br />
*r38205 lazaruside.fi.po: Finnish translations<br />
*r38180 Synedit: fix matching-bracket-highlight in comments (closing bracket at eol) issue [[http://bugs.freepascal.org/view.php?id=22586 22586]]<br />
*r38198 IDE: Export to html, do not enforce check for writeable. Issue [[http://bugs.freepascal.org/view.php?id=22588 22588]]<br />
*r38199 lazutils: do not use winodws W functions under Win98, issue [[http://bugs.freepascal.org/view.php?id=22596 22596]]; '''Breaks compilation on wince, because win32platform is not defined.'''<br />
*r38202 openglcontrol: win32: fixed sharing context<br />
*r38204 Synedit: fixed typo in IFDEF for fpc 2.60 bug<br />
*r38225 TAChart: Fix division by zero in zoom tools with extreme zoom ratios<br />
*r38226 TAChart: Fix hang in functional series with extreme zoom ratios<br />
*r38223 SynEdit TSynMultiSyn: Several fixes issue [[http://bugs.freepascal.org/view.php?id=0022519 0022519]]<br />
*r38232 TAChart: Add InRangeUlps utility function<br />
*r38233 TAChart: Fix disappearance of axis marks located exactly at chart bounds<br />
*r38234 TAChart: Fix crash when setting Marks.LabelFont from the Object Inspector<br />
*r38237 Examples/SynEdit: Readme and typo in comment<br />
*r38266 IDE: Tweak the layout of ManageExamplesForm<br />
*r38260 TAChart: Use correct notification when the series' source changes<br />
*r38261 TAChart: Issue change notifications when modifying TListChartSource.DataPoint property<br />
*r38285 lhelp: replace MessageBox, with Form.Modal. FIx IPC hang. issue [[http://bugs.freepascal.org/view.php?id=0022592 0022592]]<br />
<br />
=== Fixed after RC2 ===<br />
*r38293 windows installers: don't ask to overwrite the environment options in the secundary config directory from Reinier Olislagers<br />
*r38339 SynEdit TSynMultiSyn: Fix CaseSensitivity for Sheme marker. Issue [[http://bugs.freepascal.org/view.php?id=0022693 0022693]]<br />
*r37386 Remove writeln() that looks like a residual debug message. Issue [[http://bugs.freepascal.org/view.php?id=0022544 0022544]]<br />
*r38385 Translations: removed unmaintained Portuguese translation, which was outdated copy of Brazilian Portuguese one<br />
<br />
== How to merge ==<br />
The lazarus developers have decided to use the native svn merge for this branch. Other branches used the svnmerge.py script to manage the revisions to be merged.<br />
<br />
* TODO: Maybe this information should be put in a separate page.<br />
<br />
[[SVN_Migration#Merge_with_plain_svn]]<br />
=== Using TortoiseSVN ===<br />
As noted in the link above using TortoiseSVN is more or less self explaining. <br />
<br />
* TODO: add some screen shots.<br />
<br />
When committing, in the recent messages a nice commit message is available.<br />
<br />
Tested with TortoiseSVN 1.7.6, SVN 1.7.4.<br />
<br />
=== Show list of revision that can be merged ===<br />
In the lazarus fixes_1_0 directory do:<br />
svn mergeinfo ^/trunk --show-revs eligible<br />
Or if you don't have a fixes directory checked out, you can pass the URL path of the fixes branch:<br />
svn mergeinfo ^/trunk http://svn.freepascal.org/svn/lazarus/branches/fixes_1_0 --show-revs eligible<br />
<br />
=== Show list of revision that have been merged ===<br />
In the lazarus fixes_1_0 directory do:<br />
svn mergeinfo ^/trunk --show-revs merged<br />
<br />
=== Merging revisions from trunk ===<br />
To merge one or more revisions from trunk, use the svn merge command. For example to merge revision 36506 and 36510 use:<br />
svn merge -c 36506,36510 ^/trunk<br />
<br />
To generate a commit log message, use:<br />
svn log ^/trunk -c 36506,36510 > svnmerge-commit-message.txt<br />
<br />
Edit svnmerge-commit-message.txt with your favorite text editor and add a first line like:<br />
Merged revision 36506,36510 from /trunk.<br />
<br />
Commit this with:<br />
svn commit -F svnmerge-commit-message.txt<br />
<br />
=== Blocking a revision to be merged ===<br />
Sometimes you want to block a revision to be merged, i.e. you want to make sure that this revision is never merged to the fixes branch, for example, because it contains a new feature or it contains a version number change not applicable to the fixes branch, but only to trunk. To block revision 36507, use:<br />
svn merge -c 36507 --record-only ^/trunk<br />
Then you can create a log message with:<br />
svn log ^/trunk -c 36507 > svnmerge-commit-message.txt<br />
Edit svnmerge-commit-message.txt with your favorite text editor and add first line like:<br />
Blocked revision 36507 from /trunk<br />
Then commit this change:<br />
svn commit -F svnmerge-commit-message.txt</div>
Paul Ishenin
https://wiki.freepascal.org/index.php?title=Lazarus_1.0_fixes_branch&diff=62121
Lazarus 1.0 fixes branch
2012-09-27T00:30:12Z
<p>Paul Ishenin: /* Fixes for 1.0.2 */</p>
<hr />
<div>This page contains the revisions to be merged from trunk to the [http://svn.freepascal.org/svn/lazarus/branches/fixes_1_0/ Lazarus 1.0 fixes] branch.<br><br />
Release notes can be found here [http://wiki.lazarus.freepascal.org/Lazarus_0.99.0_release_notes Release notes]<br />
<br />
== Fixes for 1.0.2 ==<br />
=== Merge requests ===<br />
==== Submitted by developer / committer ====<br />
<br />
==== Submitted by others ====<br />
<br />
=== Merged revisions for 1.0.2 ===<br />
*r37217,37218,37225,37239,37241,37293,37304,37316 Qt: fixed keys handling (arrow keys & enter).<br />
*r38396 LCL: ColorBox - keep FSelected in sync all the time. fixes issue [[http://bugs.freepascal.org/view.php?id=22729 22729]]<br />
*r38426 CodeBrowser: check for virtual units. Issue [[http://bugs.freepascal.org/view.php?id=0022740 0022740]]<br />
*r38428 SynEdit, MultiHighlighter: fix adding text/sections at EOL. issue [[http://bugs.freepascal.org/view.php?id=0022745 0022745]]<br />
*r38430 TAChart: Fix out-of-bounds access when drawing empty polygons and polylines<br />
*r38437 ide: project target: apply default extension even if the file has already an extension, issue [[http://bugs.freepascal.org/view.php?id=22750 22750]]<br />
*r38444 IDE: fixed crash when releasing non existing component palette select button<br />
*r38473 tests: fixed compilation<br />
*r38464 TAChart: Fix error message in TFPCanvasDrawer.RadialPie<br />
*r38486 avglvltree: setcompare: set when count=0<br />
*r38503 TAChart: Copy BaseLength in TChartArrow.Assign<br />
*r38507 EditorOpts: default for top-info-hint<br />
*r38509 Debugger: Ensure Queue is not blocked by LineInfo Request. (If a LineInfoRequest was queued the DebuggerCurrentLine could not search the stack, as commands were not immediately run)<br />
*r38519 Gtk2: fixed crash with TListView when viewstyle is vsIcon or vsSmallIcon. issue [[http://bugs.freepascal.org/view.php?id=22778 22778]]<br />
*r38520 Qt: do not propagate keyrelease event as action trigger. issue [[http://bugs.freepascal.org/view.php?id=22737 22737]]<br />
*r38531 Debugger: Workaround to fix exe-line-indicators (blue dots) at debug start<br />
*r38533 Qt: fixed header offset and getClientRect for TListView when ViewStyle=vsReport.<br />
*r38547 TAChart: Support Y NaNs in polar series ''(this will cause compilation error -- please remove 'and CloseCircle' part from the last conditional in the TPolarSeries.Draw procedure)''<br />
*r38557 TAChart: Support brush style, pen style and pen width in fpvectorial drawer<br />
*r38571 TAChart: Draw chart correctly after decrease of an axis margin<br />
*r38529,r38530,r38535,r38543,r38548: fix carbon clipping, correctly return region types on HRGN related operations, fix generic IntersectClipRect routine<br />
*r38640,r38641,r38642,r38649: various ExtTextOut fixes for Carbon and Cocoa<br />
*r38551,r38552,r38562,r38563 Carbon: various winapi compatibility functions fixes<br />
*r38518 Qt: TQtWinApi.ExtTextOut() implemented Dx param. issue [[http://bugs.freepascal.org/view.php?id=22795 22795]] (zeljko will merge, need some testing)<br />
*r38572 Qt: propagate QEvent::ShortcutOverride to parent, so stop key event if shortcut is executed. issue [[http://bugs.freepascal.org/view.php?id=22827 22827]]<br />
*r38576,38577: Qt: fixed TQtWidgetSet.FrameRect(), now it uses passed brush to draw frame border.<br />
*r38610 Qt: fixed non ascii utf8 chars in TQtWidgetSet.ExtTextOut() when we use dx param. issue [[http://bugs.freepascal.org/view.php?id=22795 22795]] (depends on merging of r38518).<br />
*r38628,38629,38630,38634: Qt: fixed clipping bugs inside TQtWidgetSet.ExtTextOut()<br />
*38670 SynEdit: Fixed past eol paint error ** Must be ported by hand **<br />
*r38584 TAChart: Copy Attachment and YIndex in TGenericChartMarks.Assign ''(this code is in TATypes unit in v1.0)''<br />
*r38589 TAChart: Do not draw lines which should be invisible in OpenGL drawer<br />
*r38607 TAChart: Workaround for issue [[http://bugs.freepascal.org/view.php?id=22850 22850]] '''see patch in the mailing list'''<br />
*r38617 TAChart: Fix GetNearestPoint returning true with no points found inside radius, issue [[http://bugs.freepascal.org/view.php?id=22854 22854]]<br />
*r38644: Qt: fixed menu flickering. issue [[http://bugs.freepascal.org/view.php?id=22872 22872]]<br />
*r38651: TAChart: Fix zero division when calling ImageToGraph before the chart is drawn<br />
*r38674 Qt: fixed crash when invalid or null handle is passed into SetCapture.<br />
*r38679 Qt: update bitmap if TMenuItem has associated ImageList and ImageIndex. issue [[http://bugs.freepascal.org/view.php?id=22896 22896]]<br />
*r38672 SynEdit: fixed delete-next-word, if caret past eol. Issue [[http://bugs.freepascal.org/view.php?id=0022890 0022890]]<br />
*r38720 LCL, DefaultTranslator: fix handling of non-ASCII path to .po file, bug [[http://bugs.freepascal.org/view.php?id=22907 22907]], patch by Vladimir Zhirov<br />
*r37398 IDE: corrected version info language list, added Ukrainian language, bug [[http://bugs.freepascal.org/view.php?id=22103 22103]]<br />
*r38722 IDE: added Lithuanian to version info language list, bug [[http://bugs.freepascal.org/view.php?id=22898 22898]]<br />
*r38671: carbon: fix accidental error in index<br />
*r38743: carbon: reimplement linear gradient draw using shading to support OS X < 10.5<br />
*r38636,r38637: Gtk2: fixed text clipping and text background drawing<br />
*r38758: gtk2: allocate GdkColor when we need a BkColor<br />
*r38727,r38728,r38742,r38744,r38745,r38748: gtk2: fix clipping and DC transformations<br />
*r38747: gtk2: fix FrameRect - it must use a passed brush instead of selected one<br />
*r38373 Gtk2,Qt: make ETO_OPAQUE work from TCanvas.TextOut(). issue [[http://bugs.freepascal.org/view.php?id=22719 22719]]<br />
*r38769-r38772: lcl, gtk2, carbon: full implementation of GradientFill<br />
*r38673 TAChart: Ignore NaNs while calculating TCustomChartSource.ValuesTotal<br />
*r38675 TAChart: Support Marks.Attachment = maCenter in pie series<br />
*r38694: TAChart: Fix update of TListChartSource.ValuesTotal cache when adding or removing NaNs<br />
*r38710: TAChart: Fix crash when using TChartExtentLink with LinkedChart.Chart = nil<br />
*r38712: TAChart: Fix crash while replacing linked chart in TChartExtentLink<br />
*r38713: TAChart: Use NumberOr function instead of checking for NaN explicitly<br />
*r38719: TAChart: Extract TDrawFuncHelper.ForEachPoint helper procedure ''This also fixes a hang while using data point tool on extremely zoomed-in series''<br />
*r38729: TAChart: Extract TDrawFuncHelper.XRange helper function. + Fix GetNearestPoint for rotated function series.<br />
*r38733: TAChart: Fix TChartSeries.SetColor to notify all listeners and require ListSource. Add TListChartSource.SetColor<br />
*r36674: TAChart: Add AddArray, AddNull, AddX and AddY functions to TChartSeries<br />
*r38697,38698 Gtk2: set TToggleBox.ParentColor default false so it's color is consistent with TButton when eg.parent color is clRed and TToggleBox.Color=clDefault.<br />
*r38709: Qt: improved triggering of OnClick() in QEventShowToParent. issue [[http://bugs.freepascal.org/view.php?id=22872 22872]]<br />
*r38799: gtk2: implement SPI_GETWHEELSCROLLLINES. Fix a regression in VirtualTreeView wheel scroll<br />
*r38762: Gtk2: when style is drawing button then use style from button. issue [[http://bugs.freepascal.org/view.php?id=22901 22901]]<br />
*r38826 Qt: TQtWidgetSet.SetScrollInfo - fixed wrong result, it must return real slider position, not value which might be out of sync with position. This fixes problems with TScrollingWinControl (TControlScrollbar).<br />
*r38735: TAChart: Fix memory leak in TDbChartSource.BeforeDraw<br />
*r38737: TAChart: Fix drawing of pie series with data from the db source<br />
*r38754: TAChart: Fix hang when changing TLineSeries.ShowPoints while drawing chart<br />
*r38757: TAChart: Display crosshair tool on mouse down<br />
*r38779: TAChart: Do not notify from TListChartSource.SetXValue and SetYValue if the value did not actually change.<br />
*r38780: TAChart: Add TBasicPointSeries.MovePoint overload for graph coordinates ''not a fix, but required for r38788''<br />
*r38788: TAChart: Support axis transformations in TCustomChartSeries.MovePoint<br />
*r38792: TAChart: Fix crash on deleting subcomponent with active property editor<br />
*r38802: lcl:revert 33020, 33082, 33086, part of 33089 and 33389. These changes made the hint behavior Delphi incompatible thus leading to a regression in third party control like VirtualTreeView that handles hints in CMHintShow. Retrieve parent hint recursively if hintcontrol.hint is empty' (delphi compatible)<br />
*r38811: TAChart: Add IsEquivalent utility function ''required for r38812''<br />
*r38812: TAChart: Fix SIGFPE on TListChartSource.SetXValue(NaN) and SetYValue(NaN)<br />
*r38813: TAChart: Fix TCustomChartSource.FindBounds for the case of extremely large bounds<br />
*r38825: TAChart: Fix drawing of function series with +Infinity in domain exclusions<br />
*r38841: TAChart: Fix inverted Y axis on TChartNavPanel's minimap. Issue #22978<br />
<br />
== Fixes for 1.0 ==<br />
=== Merged revisions for 1.0.0 ===<br />
==== Submitted by developer / committer ====<br />
*r36506 LazReport, fix barcode dialog localization (Jesus)<br />
*r36508 Updated Japanese translation<br />
*r36509 Window Column, store pointer to resourcestring<br />
*r36510 LazReport, fix barcode addin when TfrBarCodeObject is not yet instantiated (in this case barcode editor defaults to memo view.<br />
*r36511 DividerBevel: implemented Transparent.<br />
*r36514 IDE: moved macros save/saveall to source editor<br />
*r36515 IDE: update macro descriptions after translating resource strings<br />
*r36516 IDE: trim TLazPackageGraph.GetFallbackOutputDir<br />
*r36517 IDE: check if package needs rebuild: switch to fall back directory: update compiler params<br />
*r36518 IDE: install/uninstall package dialog: fixed icons, added info about current state<br />
*r36523,r36530 IDE: Export as HTML<br />
*r36526 CodeTemplate: Improve final caret pos, if tmpl does not specify<br />
*r36527 CodeTemplate: allow tab to trigger / selection to ignore. issue [[http://bugs.freepascal.org/view.php?id=0017631 0017631]]<br />
*r36528 SynEdit: Template(Syncro) fix invalidation<br />
*r36529 IDE: Printing: break long lines. Issue [[http://bugs.freepascal.org/view.php?id=0013479 0013479]]; <br />
*r36547 IDE: Printing: break long lines. Fix Utf8. Update for rev 36529<br />
*r36531 LazReport: fixed buttonpanel localization in BarCode editor dialog<br />
*r36533 IDE: clean up of unused resourcestrings<br />
*r36534, r36536, r36553, r36583, r36646 regenerated translations; updated Russian translation<br />
*r36535 IDE: more clean up of unused resourcestrings<br />
*r36537 Documents LCLIntf.GetDeviceCaps<br />
*r36538 IDE: always store lazarus directory<br />
*r36539 LazReport: uppercase variable before comparing with hardcoded functions. Properly fix to 21624<br />
*r36543 IDE: setup dialog: using same file resolving as IDE<br />
*r36546 IDE: consider empty lazarusdirectory as pcp, empty fpcsrcdir as lazdir, empty testdir as lazdir<br />
*r36548 IDE: fixed note about wrong laz dir<br />
*r36549 IDE: fixed crash on find identifier references<br />
*r36551 IDE: translate descriptions of all macros<br />
*r36552 IDE: fixed editor tab position combobox items localization on Editor/Misc options page<br />
*r36556,r36557 IDE: warn if upgrading configs<br />
*r36561, 36562, 36563, 36566: Improve Options/Keymap<br />
*r36565 LCL: Prevent TShape.stRectangle disappearing with certain Height/Width and Pen.Width values.<br />
*r36567,r36568,r36569 IDE: show downgrade warning<br />
*r36570 lazbuild: select IDE build mode, fixed compiling with different mode<br />
*r36572 LCL: set csCaptureMouse on TToolButton, but don't send click if mouse is out of ttoolbutton on mouseup.issues [[http://bugs.freepascal.org/view.php?id=19688 19688]],[[http://bugs.freepascal.org/view.php?id=21560 21560]]<br />
*r36574 IDE: fixed saving environment on every change<br />
*r36577 LCL, TreeView: fix GetNextVisible, GetPrevVisible. Issue [[http://bugs.freepascal.org/view.php?id=21264 21264]]<br />
*r36575 IDE/Setup dialog: force taskbar button to be shown<br />
*r36584 IDE: import package list: opendialog<br />
*r36587 IDE: intial setup: fpc src dir: lazdir/fpc/fpcver/source<br />
*r36588 IDE: intial setup: fixed if no candidates found<br />
*r36589,r36590 IDE: compiler file name: search first with macros<br />
*r36591 IDE: verbose search for candidates<br />
*r36592 IDE: search fpc src relative to fpc.exe<br />
*r36594 IDE: check compiler: only run common names<br />
*r36595,r36599 IDE: use under windows as default for make the make.exe in the compiler directory<br />
*r36596 IDE,codetools: fixed ppccross,crossppc to ppcross<br />
*r36601 IDE: unify the 2 filters in KeyMapping window. Prevent a potential crash.<br />
*r36603 debian: updated patches to latest source in lazarus svn<br />
*r36608 Gtk2: do not set widget name, it's completelly unnecessary and produce unexpected behaviour if some keywords are in widget name.issue [[http://bugs.freepascal.org/view.php?id=21661 21661]].<br />
*r36613 SynEdit: Fix an issue with Scrollbars not being updated<br />
*r36617 lazbuild: build ide: replace exe on windows<br />
*r36644 IDE: improved 'Export package list' dialog localization<br />
*r36645 IDE: improved 'Package Graph Explorer' dialog localization<br />
*r36647,r36653,r36654,r36655,r36656,36668,36673 IDE: view / IDE internal / what needs building<br />
*r36648,r36650,r36651 IDE: read state file created by Makefile: fix path delimiters, checking compiled state: ignore -v,-i,-B flags, do not skip all -F<br />
*r36652 IDE: codetools options: shorter caption<br />
*r36658 regenerated translations; updated Russian translation <br />
*r36659 LCL: Refactoring. Make TCalculatorDialog.Execute more understandable by removing a "with" block.<br />
*r36661 LCL: Prevent "Test Dialog" feature of Calculator and Calendar dialogs locking the IDE, issue [[http://bugs.freepascal.org/view.php?id=21644 21644]]<br />
*r36616 SynEdit: do not include IME for WinCe<br />
*r36662 LCL: implementation of TCustomImageList.GetIcon()<br />
*r36663 In GUI strings, unify all 3 dots to have a space before them ( ...)<br />
*r36664 IDE: Use CreateAbsolutePath when switching between relative/absolute paths in AddFile dialogs (CreateAbsoluteSearchPath gives wrong output)<br />
*r36665 LCL: publish TUpDown.OnChangingEx<br />
*r36666 IDE etc.: unify 3 dots in GUI string to have a space ( ...).<br />
*r36667 translation: german: updates from Swen Heinig<br />
*r36669 updatemakefiles: write which lpk have conditionals<br />
*r36670,r36671 IDE,lazbuild: create makefile: use CPPROG instead of COPY to get the current date for Makefile.compiled under Windows<br />
*r36649,r36657,r36602,r36672,r36675,r36677,r36679,r36683,r36701,r36708,r36709 Makefiles: updated, reduced dependencies, fixed double compiles<br />
*r36676 LCL: Implement TListItem.EditCaption, issue [[http://bugs.freepascal.org/view.php?id=20295 20295]].<br />
*r36680,r36699 lazbuild: fixed crash, replaced some MessageDlg with IDEMessageDialog<br />
*r36681 IDE,lazbuild: use parsed compiler filename, make filename<br />
*r36682 IDE: debugfilename, debugsearchpath: use same function as other env vars to resolve macros, trim and find<br />
*r36686,r36688 IDE/lazbuild backup, delete the same lazarus exe on all platforms<br />
*r36694 regenerated translations; updated Russian translation<br />
*r36695 LazDataDesktop: regenerated translations; updated Russian translation<br />
*r36696 IDE: add resource strings for various windows manifest keys<br />
*r36697 fix ImageList.AddMasked() in case of source image has no mask description<br />
*r36702 IDE: TProject.TitleIsDefault: check for project+number, fix for renaming the title of a new project<br />
*r36711 Qt: enable wordwrap on TQtStaticText. issue [[http://bugs.freepascal.org/view.php?id=21697 21697]].<br />
*r36712 LCL: fixed function result<br />
*r36713,r36715 lcl: fixed TToolButton.MouseUp X,Y in boundsrect check<br />
*r36716 LCL, combination of modal form + wsMaximized style produces tiny windows on GTK2, issue [[http://bugs.freepascal.org/view.php?id=21634 21634]]<br />
*r36717 LCL: reverted changes to menus.pp from r36666 (by Paul's request)<br />
*r36718 LCL: regenerated translations<br />
*r36719, *r36826 LCL: fix range check error<br />
*r36720 LazReport: added option to ignore undefined symbols, from Luiz Americo, issue [[http://bugs.freepascal.org/view.php?id=21683 21683]]<br />
*r36723,36724 IDE,lazbuild: fixed repeated build project clean: save project state file before compiling too<br />
*r36727 lazbuild: fixed expanding --lazarusdir<br />
*r36728 make useride: pass --lazarusdir=.<br />
*r36729 Improve TStringHashList, prevents a PO file update crash. Issue [[http://bugs.freepascal.org/view.php?id=21685 21685]]<br />
*r36730 IDE: project wizard: fixed fixed size, bug 21714<br />
*r36731 lazreport: fix possible access violation by checking dataset for nil<br />
*r36732 win32: fix range check error<br />
*r36733 lazbuild: auto create ide/revision.inc if missing<br />
*r36734 Gtk2: fixed mouse capturing on native scrolling win controls (TListBox,TListView etc).issue [[http://bugs.freepascal.org/view.php?id=21713 21713]]<br />
*r36735 LCL: TToolButton: commented debugln().<br />
*r36740 lazbuild: fixed uninitialized function result, fixed checking if init failed, quick check if lazarusdir is valid.<br />
*r36741 lazutils: Patch with font collection support from Circular<br />
*r36744 examples: Adds a OpenURL/OpenDocument test<br />
*r36745 LCL: Adds the sysenvapis include files to the lpk and adds an extra safety in OpenURL for users which forget to encode spaces in filenames<br />
*r36746 IDE: fixed fixed size dialogs<br />
*r36747 IDE: sort selection: layout<br />
*r36748 IDE: added debugging for sort selection<br />
*r36749 gtk2: clean up<br />
*r36750 IDE: less debugging<br />
*r36751 IDE: jump to next/prev error: fixed direction<br />
*r36752 LCL: TTreeView: clean up<br />
*r36753 IDE: next/prev error: clear multi selection<br />
*r36754 lcl: move interface initialization of TCustomEdit from CreateWnd to InitializeWnd. Consistent with other controls and allows interfaces to check is handle is being created<br />
*r36755 IDE: Add acceleration keys and fix tab order in Project Wizard and ImageListEditor, issue [[http://bugs.freepascal.org/view.php?id=21718 21718]]<br />
*r36756 lcl: remove TCustomListBox.Loaded. ItemIndex is initialized in InitializeWnd<br />
*r36757 lcl: call inherited after setting FLines in TCustomMemo.InitializeWnd. Fix potential crash since widgetset code expect FLines be initialized <br />
*r36758 lcl: check for csDestroyingHandle in TControl.HandleObjectShouldBeVisible. Fix issue [[http://bugs.freepascal.org/view.php?id=19882 19882]]<br />
*r36759 lcl: revert 31890 since issue [[http://bugs.freepascal.org/view.php?id=19882 19882]] is properly fixed now<br />
*r36760 gtk2: less hints<br />
*r36761 gtk2: less hints<br />
*r36762 Carbon: fixed result of TWSCarbonCustomListView GetTopItem,GetViewOrigin and GetBoundingRect. issue [[http://bugs.freepascal.org/view.php?id=21733 21733]]<br />
*r36763 Carbon: added themed TComboBox drawing.Patch by David Jenkins. issue [[http://bugs.freepascal.org/view.php?id=21747 21747]]<br />
*r36764 Carbon: added themed TComboBox drawing.Patch by David Jenkins. issue [[http://bugs.freepascal.org/view.php?id=21747 21747]]<br />
*r36765 Docs: added David Jenkins to contributors list<br />
*r36766 Carbon: make carbon widget visibility in sync with lcl. Patch by David Jenkins. issue [[http://bugs.freepascal.org/view.php?id=21731 21731]]<br />
*r36767 lcl: remove Destroying and DestroyWnd calls from TCustomListBox.Destroy<br />
*r36768 lcl: cleanup TCustomListBox.Create<br />
*r36769 codetools: fixed skipping include files in skipped ifdef<br />
*r36770 gtk2: less hints<br />
*r36771 gtk2: less hints<br />
*r36772 ide: fix selection painting of debugger eventlog colors list<br />
*r36773 carbon: improved TCarbonWidgetSet.RawImage_XXXX routines.Patch by David Jenkins. issue [[http://bugs.freepascal.org/view.php?id=21743 21743]].<br />
*r36774 carbon: proper initialization of alpha channel.Patch by David Jenkins. issue [[http://bugs.freepascal.org/view.php?id=21753 21753]]<br />
*r36775 LCL: implement ClientToParent, ParentToClient based on patch of David Jenkins (issue [[http://bugs.freepascal.org/view.php?id=0021763 0021763]])<br />
*r36776 LCL: extend TThemeServices.IsDisabled, IsHot, IsPushed for teCombobox<br />
*r36777 IDE: Fix tab order and set shortcuts in Application Options frame.<br />
*r36778 LazControls: fix potential crash in TListFilterEdit and TTreeFilterEdit<br />
*r36779 GTK2: add TGtk2WidgetSet.SetDesigning to prevent Abstract method call in IDE. Issue [[http://bugs.freepascal.org/view.php?id=21773 21773]]<br />
*r36780 IDE: fix tab order in Project Save Options frame.<br />
*r36781 IDE: fix tab order in frames: Build Modes editor, Miscellaneous Options and Version Info<br />
*r36782 IDE: fix tab order in option frames: Code Generation, Compilation, Linking, Messages, Parsing.<br />
*r36783 GTK2: clean up<br />
*r36784 GTK2: clean up<br />
*r36786 Carbon: removed extra code for teComboBox, since teComboBox is supported by themes as of r36776.<br />
*r36787 gtk2: clean up<br />
*r36788 gtk2: fixed Gtk2WidgetSet.ClipboardGetData mem leak on stream write error<br />
*r36789 gtk2: removed OldCreateStatusBarPanel<br />
*r36790 gtk2: clean up<br />
*r36791 gtk2: clean up<br />
*r36794 IDE: CloseQueryIDEWindows: skip sub forms<br />
*r36795 Fix crash in dbg-console, if dbg not active. issue [[http://bugs.freepascal.org/view.php?id=21712 21712]]<br />
*r36796 SourceEdit: use softcenter for Replace prompt. Issue [[http://bugs.freepascal.org/view.php?id=0021709 0021709]]<br />
*r36797 regenerated translations; updated Russian translation<br />
*r36800 IDE: when checking if a FPC unit has changed: ignore units that have no source in the FPC sources. Needed to ignore user units reachable through fpc.cfg.<br />
*r36801 IDE: fix error message can't find unit if the ppu is in one of the loaded packages<br />
*r36803 DOCS: correct the documentation about CanFocus<br />
*r36806 LCL: clear FActiveDefaultControl on that control destruction<br />
*r36810 LCL: fix copy paste error<br />
*r36811 LCL: don't update Default, Cancel during their applying in UpdateDefaultCancel<br />
*r36812 LCL: add and ability to use own TListItems, TListItem descendants in TListView for delphi compatibility<br />
*r36821 gtk2 intf: fixed compilation FPC_FULLVERSION<20600<br />
*r36822 gtk2 intf: clean up<br />
*r36823 gtk2 intf: clean up<br />
*r36824 gtk2 intf: clean up<br />
*r36825 LCL: initialize font height with the height from DefFontData<br />
*r36852 IDE: when checking if global unit has changed, skip units in packages<br />
*r36857,36859 LCL: TControl.UpdateBaseBounds: set cfBaseBoundsValid<br />
*r36861 LCL: TCustomSplitter.SetAnchors: adapt anchors before applying<br />
*r36870 LCL: SetAlign: restore the basebounds set before changes<br />
*r36877 LCL: clean up<br />
*r36882 LCL: TControl.SetAnchors: during disabled autosize: update basebounds when changing Anchors, bug 21730<br />
*r36884 LCL: fixed sending CM_EXIT,CM_ENTER when flastfocusedcontrol was removed<br />
*r36885 LCL: constraint Width,Height to >=0<br />
*r36888 Converter: fixed 'Missing units' dialog localization, part of bug 21784<br />
*r36889,r36890 codetools: class completion: fixed gathr proc definitions<br />
*r36891 IDE: show compiling resource lines when error on compiling resources<br />
*r36892 IDE: improved message when can not find unit and unit was found in a package<br />
*r36893,r36894 IDE: messages: show debug: lines and calling resource compiler<br />
*r36895,r36896 gtk2 intf: checking for liboverlay, using value-changed instead of change-value<br />
*r36897 LCL: made TImage.DestRect public<br />
*r36899 Fix encoding errors in Japanese translation<br />
*r36900,r36901 startlazarus: fixed asking for custom or default<br />
*r36902 LCL: fixed ShowModal() when Hide() is called on modal form to be Delphi compatibile.issue [[http://bugs.freepascal.org/view.php?id=15390 15390]]<br />
*r36903 IDE: fixed read/write designinfo, bug 21804<br />
*r36904 IDE: do not save a new project where only session was modified, bug 21803<br />
*r36905 gtk2 intf: fixed TGtk2WSCustomTabControl.GetDefaultClientRect to check if gtknotebook has a page<br />
*r36906,36907 codetools: AddLocalVar: do not add hidden used unit<br />
*r36908 Qt: added TQtWidget.testAttribute() function.<br />
*r36910 DBG: Tests for environment<br />
*r36913 TAChart: Set Brush.Color before Brush.Style to work around issue [[http://bugs.freepascal.org/view.php?id=21806 21806]]<br />
*r36914: TAChart: Fix compilation of OpenGL drawer<br />
*r36924 gtk2 intf: TGtk2WSCustomTabControl.GetDefaultClientRect for TTabControl<br />
*r36925 Qt: fixed resize events of TQtTabWidget and accurate information about clientRect changes. issue [[http://bugs.freepascal.org/view.php?id=21805 21805]]<br />
*r36929 Gtk2: fixed text background drawing in TGtk2WidgetSet.ExtTextOut() when BkMode = OPAQUE.issue [[http://bugs.freepascal.org/view.php?id=19384 19384]]<br />
*r36941 Translations: Brazilian Portuguese translation update by Marcelo B Paula, bug 21818<br />
*r36938,36939 LazReport, lift up to preview window improving layout and functionality, from Julio Jimenez B.<br />
*r36942 LazReport, avoid hiding text at some zoom values due small differences in text height calc (DONT MERGE YET, NEEDS MORE TESTING)<br />
*r36943 IDE: msg quickfix for cant find unit: add position<br />
*r36956 carbon: added FHasPaint variable to TCarbonWidget to allow owner draw.issue [[http://bugs.freepascal.org/view.php?id=21744 21744]]<br />
*r36957 carbon: added ScrollRect() routine to TCarbonWidget. issue [[http://bugs.freepascal.org/view.php?id=21741 21741]]<br />
*r36958 carbon: set FTabIndex instead ATabIndex variable in TCarbonTabsControl.SetPageIndex. patch by David Jenkins.issue [[http://bugs.freepascal.org/view.php?id=21728 21728]]<br />
*r36959 carbon: optimized caret drawing to not update whole widget.patch by David Jenkins. issue [[http://bugs.freepascal.org/view.php?id=21768 21768]]<br />
*r36960 carbon: fixed order of check width > height in TCarbonTrackbar.patch by David Jenkins. issue [[http://bugs.freepascal.org/view.php?id=21740 21740]]<br />
*r36961 carbon: implemented autosizing for listview / databrowser columns.patch by David Jenkins. issue [[http://bugs.freepascal.org/view.php?id=21745 21745]]<br />
*r36962 carbon: fixed possible bad loop in TCarbonSpinEdit.CreateWidget.Patch by David Jenkins.issue [[http://bugs.freepascal.org/view.php?id=21732 21732]]<br />
*r36965 IDEIntf: fixed typo<br />
*r36967 Gtk2: fixed retreiving font name from TGtk2WidgetSet.GetObject() when font is default. issue [[http://bugs.freepascal.org/view.php?id=21828 21828]]<br />
*r36968 codetools: JumpToPublishedMethodBody: raise error<br />
*r36969 codetools: fixed FindMethodNodeInImplementation for program<br />
*r36971 tests: codetools: added test for duplicate sections, parsing library<br />
*r36972 codetools: fixed reparsing initialization, finalization, begin<br />
*r36973 codetools: fixed treating initialization, finalization as statement<br />
*r36974,r36975,r36976,36977,36978 codetools: fixed find declaration in library starting in initialization, bug 21832<br />
*r36981,r36982 codetools: identifier completion: fixed continue searching<br />
*r36979 Updated Japanese translation by Haruyuki Fujimaki<br />
*r36980 Fix japanese encoding<br />
*r36983,r36984 codetools: identifier completion: some keywords for library, program<br />
*r36985 codetools: identifier completion: keyword initialization for library, issue [[http://bugs.freepascal.org/view.php?id=21839 21839]]<br />
*r36986 Updated Japanese translation by Haruyuki Fujimaki<br />
*r36990 codetools: identifier list: skip identifier at cursor<br />
*r36991,r36992 IDE: identifier completion: add do after with, issue [[http://bugs.freepascal.org/view.php?id=16850 16850]]<br />
*r36996,r36997,r36999,r37013,r37014,r37015 runtests: fixed compilation, added some tests<br />
*r37012,r37011,r37009,r37008,r37007,r37006,r37005,r37004,r37003,r37002,r37000 carbon interface: clean up<br />
*r37020 IDE: recent/history lists: replaced case sensitive comparison with three types<br />
*r37021 docking: update modified flags<br />
*r37022 codetools: fixed uninitialized result<br />
*r37025 IDE: use unit dialog: check for syntax errors<br />
*r37026,r37027 DBG: Prepare for different line endings. / Accept different line endings (#10, #13, #10#13, #13#10) issue [[http://bugs.freepascal.org/view.php?id=0021834 0021834]].<br />
*r37029 Gtk2: fixed drawing of text with solid brush. issue [[http://bugs.freepascal.org/view.php?id=21863 21863]]<br />
*r37031 Gtk2: do not draw text background if colormap isn't assigned. Second part of issue [[http://bugs.freepascal.org/view.php?id=21863 21863]].<br />
*r37032 gtk2: clean up old mouse capture<br />
*r37033 gtk2: fixed releasecapture<br />
*r37034 gtk2: verbosity for ubuntu liboverlay mouse capture bug<br />
*r37038 sqldb: Enable mssqlconnection for fpc >= 2.6.1 (patch from Reinier Olilagers, bug 21867) - added because creates conflicts with later sqldb merges<br />
*r37040: TAChart: Workaround for TDbChartSource referring to the dataset with Filtered := true<br />
*r37043 LCL, fix TPostScriptPrinterCanvas.ClipRect is empty-rect until explicitly set by user, patch from Joachim Paepke, issue [[http://bugs.freepascal.org/view.php?id=21027 21027]]<br />
*r37051 Translations: Ukrainian translation update by Igor Paliychuk<br />
*r37052 regenerated translations; updated Russian translation<br />
*r37053 LCL: fixed compilation for fpc 2.7.1<br />
*r37054,37055,37057 set TDBLookup.FListLink.DataSource dynamically to FListSource or a local datasource. Issue [[http://bugs.freepascal.org/view.php?id=15410 15410]]<br />
*r37067 LCL: fixed visibility of implemented interfaces<br />
*r37069 simple deb: using make bigide, updated list of tools<br />
*r37070 openglcontrol: fixed mem leak, issue [[http://bugs.freepascal.org/view.php?id=21597 21597]]<br />
*r37071 codetools: identifier completion: unit name of self<br />
*r37076 gtk2: clean up<br />
*r37077 IDE: clean up<br />
*r37092 LCL: fixed compilation for fpc 2.7.1<br />
*r37093 DBG: Testcase: fixed reading env-options<br />
*r37095 SynEdit: fix crash in overview gutter creation. Issue [[http://bugs.freepascal.org/view.php?id=0021887 0021887]]<br />
*r37096 SynEdit: Do not offer OverviewGutter in Gutter-parts designer<br />
*r37101 lazreport: fixed compilation with fpc 2.7.1, new TBookMark<br />
*r37102 lazreport: clean up<br />
*r37112,r37113 SynEdit: highlight class "helper". Fix wrong highlight of "sealed" Issue [[http://bugs.freepascal.org/view.php?id=0021812 0021812]]<br />
*r37115 openglcontrol: fixed mem leak, issue [[http://bugs.freepascal.org/view.php?id=21597 21597]]<br />
*r37126 LCL: Publish some TCheckGroup properties.<br />
*r37129 gtk2: clean up<br />
*r37154,37247,37248 lcl-db: prevent lookup initialization when dataset is destroyed<br />
*r37155 LCL, use rectclip to set clipping rectangle instead of current path because it sometimes get drawn on next stroke (related to r37043)<br />
*r37157 Qt: fixed key events from QCalendar, now tabbing works fine.<br />
*r37160 LCL: published missing properties TCalendar.Hint and TCalendar.TabOrder.<br />
*r37167 LCL: Fix range check error in StringGrid when sorting and RowCount=FixedRows, issue [[http://bugs.freepascal.org/view.php?id=21947 21947]]<br />
*r37073 codetools: resolve expr: thisunitname.implementationenidentifier<br />
*r37078 codetools: find declaration: selfunit.implementationidentifier<br />
*r37079,r37080,r37081,r37082,r37083,r37087,r37089,r37098 codetools: getsmarthint: class variables, enum, array of, inheritance, property params and type, use unit<br />
*r37085 IDE: show compiler options: check compiler<br />
*r37086,37088 IDEIntf: removed TLazCompilerOptions.LCLWidgetType, fixed computing default LCLWidgetType on cross target OS<br />
*r37090 codetools: do not try to search in record ancestors<br />
*r37105 DBG: Watches Copy Name/Value to clipboard. Issue [[http://bugs.freepascal.org/view.php?id=0021860 0021860]]<br />
*r37106 DBG: Register Copy Name/Value to clipboard. Issue [[http://bugs.freepascal.org/view.php?id=0021860 0021860]]<br />
*r37107 DBG: Watches, added inspect/evaluate to popup<br />
*r37116 DBG: Fix a possible crash in debugger (history). Issue [[http://bugs.freepascal.org/view.php?id=0021901 0021901]]<br />
*r37195 SourceEdit: Do not access outdated tab-history entries (dangling pointers). Issue [[http://bugs.freepascal.org/view.php?id=0021939 0021939]]<br />
*r37196 SourceEdit: Only add tabs to tab-history that were accessed<br />
*r37103,r37132 codetools: nested types: Self and inherited<br />
*r37104,r37120 codetools: GetSmartHint: show anonymous arrays<br />
*r37111 IDE: Make Close button work in Components List dialog. Issue [[http://bugs.freepascal.org/view.php?id=21892 21892]],<br />
*r37118 IDE: build ide: if building fails, clear flag clean up once<br />
*r37119 IDE: when building IDE failed: restore backup<br />
*r37121,r37122 IDE: select frame: search in packages<br />
*r37130 IDE: select frame: search in packages<br />
*r37131 LCL, implements textrect clipping in Postscriptprintercanvas<br />
*r37133 SynEdit: Fix WantTabs / Change default to "True" Issue [[http://bugs.freepascal.org/view.php?id=0021904 0021904]]<br />
*r37134 SynEdit: Remove not required invalidation (paint / call to wrong Update() )<br />
*r37135 SynEdit: Remove wrong implementation of Update. Update no longer forwards to Invalidate<br />
*r37136 IpPro: Fix painting for SelectAll<br />
*r37137 IDE, IpPro: Allow copy to clipboard from hint (zeljko added because of conflict in 37345)<br />
*r37140 cody: show code node info: show complete source<br />
*r37141 SynEdit: Fixed Caret paint error (extra caret left on screen) Issue [[http://bugs.freepascal.org/view.php?id=0021924 0021924]]<br />
*r37143 IDEIntf: added TPropertyEditorHook.IsSelected<br />
*r37144 IDEIntf: TDefaultComponentEditor: always select component<br />
*r37146 IDE: if component class is missing: note about RegisterClass<br />
*r37148 Translations: Ukrainian translation cleanup<br />
*r37149 IDE: regenerated translations; updated Russian translation<br />
*r37151 cody: IDE item to create dockable IDE window<br />
*r37152 cody: new IDE window: show dialog to setup form name<br />
*r37162,r37163 IDE: TProjectFileDescriptor.DefaultResourceName: first try without appending a number, check for pascal keywords<br />
*r37164,r37165 IDE: fixed DoGetUnitRegisterInfo for virtual files<br />
*r37166 SynEdit: Fixed Caret when scrolling under older Wine (Win Emulator)[[http://bugs.freepascal.org/view.php?id=21929 21929]]<br />
*r37212 sqldb: added icon for TMySQL55Connection for fpc 2.6.1 '<br />
*r37213,r37214,r37219 codetools: do not save errors outside parser<br />
*r37215 codetools: GetSmartHint: ^, .., file of, class of<br />
*r37220 Translations: Czech IDE translation update by Martin Smat<br />
*r37224 SynEdit: Autocompletion, workaround for click on hint Issue [[http://bugs.freepascal.org/view.php?id=21952 21952]]<br />
*r37231 SynEdit: Prevent some scrolling, while selecting by mouse. Issue [[http://bugs.freepascal.org/view.php?id=0021996 0021996]]<br />
*r37232 DBG: Inspect window, improve scrolling<br />
*r37234 DBG: Improve start-up to work with bug in gdb 7.4<br />
*r37262 searching compiler: search first in dir of fpc.exe, then in PATH<br />
*r37263,r37265 codetools: improved error message on unit not found<br />
*r37264 fix setting radiogroup.itemindex under gtk2. Issue [[http://bugs.freepascal.org/view.php?id=22013 22013]]<br />
*r37267 Docs: improved build_lcl_docs robustness when working with TProcess, patch from Reinier Olislagers, bug 22000<br />
*r37273 SourceEditor: Fix crash when closing several tabs, while debugging (paused / loading line info). Maybe related to issue [[http://bugs.freepascal.org/view.php?id=22015 22015]]<br />
*r37274 Fix Crash in building "Windows" (list of open W.) Menu. Note 0059576 in Issue [[http://bugs.freepascal.org/view.php?id=22015 22015]] (not related to other parts of issue)<br />
*r37280 SQLdb: added missing tmysql55connection.png, bug 22033 '''Related to 37212 and other revisions for TMySQL55Connection'''<br />
*r37281 SynEdit: protect ProcessCommand() against early destruction by ReleaseComponent. Issue [[http://bugs.freepascal.org/view.php?id=0022035 0022035]]<br />
*r37285 IDE: make Close button work in Window Manager<br />
*r37286 Patch from bug 21651, automatically adds quotes to paths with spaces for OpenDocument in Mac OS X<br />
*r37297,r37298 SynEdit, Pas-HL: record helper, deprecated in object<br />
*r37311 Translations: Arabic IDE translation update by Mazen NEIFER<br />
*r37312 IDE: Make Help button work in Editor Window Manager, issue [[http://bugs.freepascal.org/view.php?id=21961 21961]]. (zeljko added to merge list because of conflicts in 37491)<br />
*r37325 regenerated translations; updated Russian translation<br />
*r37326 Translations: Brazilian Portuguese translation update by Marcelo B Paula, bug 22064<br />
*r37327 IDE, Code Generation options: changed wrong -Op386 option to correct -Op80386. Patch by barlone with some consistency changes, bug 22062.<br />
*r37357 Gtk2: fixed mbAll button on dialogs. Added response keys which does not exist in gtk2. issue [[http://bugs.freepascal.org/view.php?id=22083 22083]]<br />
*r37344 gtk2 intf: less hints<br />
*r37345 ipro: less hints <br />
*r37359 lazreport: German translations<br />
*r37360 cody: German translations<br />
*r37039,r37319,r37324,r37361 sqldb: German translations (zeljko added 37039,37319,37324 because of conflicts)<br />
*r37362 educationlaz: German translations<br />
*r37363 ide: German translations<br />
*r37372 lcl: don't access Items of TreeView if DragOver happens during treeview destruction<br />
*r37373 IDE: debugger options: check the resolved file, bug 22086<br />
*r37374 Qt: bypass windowmanager when showing dragimagelist.<br />
*r37375 Gtk2: do not show taskbar entry for dragimagelist.<br />
*r37376 IDE: update TUnitInfo.ResourceBaseClass on loading lfm<br />
*r37378 [Edited, includes selected lines of 37402] SourceEditor: Hide hint, when mouse moves (even if outside IDE, or IDE is not active). Issue [[http://bugs.freepascal.org/view.php?id=0022016 0022016]]<br />
*r37368 DBG: Fixed array len for 64 bit<br />
*r37369 lcl: don't crash when either DragTarget or dragged control is freed (issue [[http://bugs.freepascal.org/view.php?id=22067 22067]])<br />
*r37370 lcl: cleanup debug info<br />
*r37371 lcl: fixed a memory leak when canceling drag of dead control<br />
*r37380 SourceEdit/DBG: Ensure Codebuffer is updated before using it to add watches<br />
*r37383 IDE: TUnitInfo.fModified: do not set on get<br />
*r37384,r37401 IDE: do not set TUnitInfo.Modified when committing source editor to codetools<br />
*r37388,r37389,r37390,r37391,r37392 tests: added tests for cfgscripts, fixed unit output directory, cfgscript: fixed error message if semicolon is missing, IDE: added conditionals functions GetIDEValue, GetEnv, LCL: use IDE widgettype as default<br />
*r37397 TodoList: properly trim comment markers and convert multiline text to single line, fixes bug 22085. Based on patch by Anton.<br />
*r37400 codetools: fixed mem leak<br />
*r37418: TAChart: Fix range check using datapoint tool on a chart without series<br />
*r37440 DBG: do not set temporary stack = -1 in thread changing. This may cause errors<br />
*r37444 DBG: Watches, save "Use instance class" to config<br />
*r37449 LCL: fixed comments<br />
*r37451 Qt: fixed wrong SetCapture() under win32. Problem was passed TQtWidget handle instead of underlaying widget winID() which is native handle.<br />
*r37453 SynEdit: Fix goto bookmark and persistent block. Do not clear persistent block<br />
*r37461 lcl: TCustomForm.UpdateDockCaption: fixed repair garbage<br />
*r37463 IDE: when docked keep IDE caption<br />
*r37464 Help, DBG: New link to wiki for watch properties<br />
*r37475 codetools: TCustomCodeTool.FindLineEndOrCodeAfterPosition: fixed crash when at end of code<br />
*r37476 codetools: clear nodes behind, when linkscanner parsed only parts<br />
*r37481 IDE: fixed storing old LCLWidgeType, bug 22174<br />
*r37482 codetools: save parse error of operator, do not save errors outside parser, fixed parsing method name with generic parameter<br />
*r37483 codetools: allow keywords in program name<br />
*r37534 Qt: do not call setValue() but setPosition() so lcl gets accurate values later. issue [[http://bugs.freepascal.org/view.php?id=22187 22187]]<br />
*r37491 Help, DBG: Link to wiki for breakpoint properties (zeljko - 37312 is merged too, because of conflicts)<br />
*r37470 IDE, DBG: debug-eval hint, do not show, if selection exceeds one statement (e,g whole file selected). Part of issue [[http://bugs.freepascal.org/view.php?id=0022081 0022081]]<br />
*r37471 SourceEditor: Fix an issue with focusing an editor, that is being closed (while debugging) "no parent handle". Issue [[http://bugs.freepascal.org/view.php?id=0022015 0022015]]<br />
*r37517 SynEdit: fixed folding for "case" and "try" in certain code segments (initialization / case...else try)<br />
*r37518 SynEdit: Pas-HL: fix detection of case...else versus if...then...else<br />
*r37522 SynEdit: Pas-HL: better detection of case...else<br />
*r37623 SourceEditor: Fix (Work-around) an issue with focusing an editor, that is being closed (while debugging) "no parent handle". Issue [[http://bugs.freepascal.org/view.php?id=0022015 0022015]] // Required some parts of r37502<br />
*r37609 DBG: Avoid re-queuing of dis-assembler requests, after cancelling it. Part of issue [[http://bugs.freepascal.org/view.php?id=0022230 0022230]]<br />
*r37643 DBG: Disassembler: prevent disassembler from doing large address ranges, if gdb returns data with far away addresses. Issue [[http://bugs.freepascal.org/view.php?id=0022230 0022230]]<br />
*r37657 DBG: fixed a out of index error, in watches history<br />
*r37694 DBG: Fixed possible crash in watch evaluation (WatchValue freed while evaluating / in GetValue)<br />
*r37466 IDE: added menu item to insert MIT license text<br />
*r37407,r37474,r37492 IDE: TMainIDE.DoSourceEditorCommand: improved focus check, requires r37466<br />
*r37564 LCL: TCustomListView: reset FCacheIndex and FCacheItems before sorting list, otherwise we'll have unexpected results. issue [[http://bugs.freepascal.org/view.php?id=22218 22218]]<br />
*r37505, r37509, r37516, r37523 fixed compilation with fpc 2.7.1<br />
*r37592 lcl: fixed compilation fpc 2.7.1<br />
*r37525 TAChart: Display legend symbols even if the text is empty<br />
*r37565 TAChart: Display major axis marks at the edges of the clip range<br />
*r37576 TAChart: Fix infinite recursion when drawing chart listbox from series with Legend.Multiplicity <> lmSingle<br />
*r37588 TAChart: Include Item.Y in reordered list of TCalculatedChartSource. Update test. '''This will break old tests. Please contact me for a fix --- Ask'''<br />
*r37727 TAChart: Update to the recent version of FPVectorial<br />
*r37587 Qt: unset icon when doing internal sync after sorting. part of issue [[http://bugs.freepascal.org/view.php?id=22218 22218]]<br />
*r37620 LCL: invalidate parent preferredsize when borderspacing changed, bug 17947<br />
*r37621 LCL: clean up - invalidate in TControl.DoBorderSpacingChange no longer needed with new autosizing<br />
*r37622 lazutils: added missing file<br />
*r37624 LCL: GetClientRect: if interface has the right width,height trust the clientrect, this avoids some unneeded resizes<br />
*r37573 IDE: project inspector: add files: allow dotted unit names, bug 22209<br />
*r37619 IDE: open package dependency: try provides, issue [[http://bugs.freepascal.org/view.php?id=17960 17960]]<br />
*r37628 IDE: compiler options: disable target platform for packages<br />
*r37594 codetools: fixed Unneeded extra space in event assignment completion<br />
*r37613 codetools: property completion: add class var for class property variables<br />
*r37614 codetools: class completion: search variables in all sections, bug 22246<br />
*r37625,r37626,r37627 codetools: class completion: fixed searching var node when first is class var<br />
*r37629 codetools: fixed adding class keyword for property setter of a class property<br />
*r37630 IDE: codeexplorer: labels<br />
*r37634 IDEIntf: objectinspector: fixed painting outside paint event<br />
*r37631 codetools: no var node for anonymous record case variables<br />
*r37632 codetools: identifier completion: when creating an override hide higher visibility members<br />
*r37633 codetools: class completion: add static method modifier for setter of class property<br />
*r37636 codetools: class completion: add static method specifier for class property setter<br />
*r37635 IDE: paste component: fix renamed references<br />
*r37637,r37638,r37639 IDE: paste multiple components: fix references, lcl: LRSObjectTextToBinary: write convert list of components<br />
*r37640 IDE: paste components: update TControl.Caption<br />
*r37642 lcl: fixed LRSObjectTextToBinary toWString, issue [[http://bugs.freepascal.org/view.php?id=19650 19650]]<br />
*r37644 codetools: fixed inserting proc bodies in implementation in front of methods<br />
*r37652,r37653,r37655 codetools: using TFileStreamUTF8<br />
*r37656 IDE: using TFileStreamUTF8 and TStringListUTF8<br />
*r37663 IDE: fixed show info on --help when no stdout exists<br />
*r37689 LCL: fixing handling of special keys for TCustomEdit and TCustomMemo<br />
*r37690 codetools: forward proc completion: stay in same section<br />
*r37697 DBG: Dialogs, don't give help related commands to IDE. They will be ignored<br />
*r37698 IDE Help: add urls for dbg dialogs<br />
*r37703 lazutils: utf8pos: added optional parameter StartPos<br />
*r37704 IDE: setup dialog: show fpc source directory release version as warning instead of error<br />
*r37707 tools create deb+rpm: use 128x128 icon<br />
*r37705 SynEdit: open and close clipboard explicitly to write multiple formats.<br />
*r37714 lcl: gtk2: warn only once about liboverlay<br />
*r37711 lhelp: cleaned up paths<br />
*r37712 lhelp: clean up<br />
*r37713 lhelp: resolve macros in HelpEXE on the demand<br />
*r37715 chmhelp: using search path to search for chm files<br />
*r37716,r37717 chmhelp: added path $(LazarusDir)/docs/chm<br />
*r37718 'hmhelp: search ref.chm in docs/chm<br />
*r37726 create_lazarus_deb: added option chmhelp<br />
*r37722 DBG: Event-Log: Do not cache Options. Allow user to change options while debugging<br />
*r37596 Patch from {{MantisLink|0022231}} "fix warnings with fpc 2.6.1".--[[User:AlexVinS|AlexVinS]] 21:40, 8 June 2012 (UTC)<br />
*r37745 deb+rpm: default environmentoptions: updated to 107, removed default gdb entry<br />
*r37748,r37755 lhelp: added makefile<br />
*r37749 make bigide: build lhelp<br />
*r37753 IDE: fixed comparing file names case insensitive<br />
*r37754 lazutils: inlined UTF8CompareStr<br />
*r37760 Use Utf8CompareText instead of AnsiCompare<br />
*r37762 linux: added encoding to desktop file<br />
*r37769 Use Utf8CompareText instead of AnsiCompare<br />
*r37770 TAChart: Fix AV when clearing Series.Styles and TColorMapSeries.ColorSource properties<br />
*r37772 Use Utf8CompareText instead of AnsiCompare<br />
*r36804 win32: mark client rect as required update before WM_SIZE passing, remove DoAdjustClientRectChange - they are called inside WM_SIZE handler after the client rect is updated (fixes bug [[http://bugs.freepascal.org/view.php?id=0021724 0021724]])<br />
**Paul remarked about r36804: "Please don't merge it for at least 2 weeks". Also seems to cause problems in grids, see [http://bugs.freepascal.org/view.php?id=21790 issue [[http://bugs.freepascal.org/view.php?id=21790 21790]]].<br />
*r36993: LCL, fixed Problems setting Width, Height for TCustomGrid if ScrollBars is auto, from cobines, issue [[http://bugs.freepascal.org/view.php?id=21790 21790]]. If r36804 is merged, please merge also r36993<br />
*r37783 startlazarus: linux: adding LIBOVERLAY_SCROLLBAR=0 to avoid problems with mouse capturing<br />
*r37785 gtk2 intf: disable liboverlay by default<br />
*r37790 gtk2 intf: use setenv only on Linux<br />
*r37795: export tgz: added option to add chm files<br />
*r37796 IDE: when copying secondary configs create the primary config directory first<br />
*r37797 rpm: added option chmhelp<br />
*r37810 rpm: fixed building without chmhelp<br />
*r37811 lhelp: fixed invalid recent item path in config, added build modes default,debug<br />
*r37814 chmhelp: clean up old ipc files to prevent IDE hang<br />
*r37817-r37821 MAKE DEB<br />
*r37838 DBG: Fix handling console input<br />
*r37824 chmhelp: Fixed lazarus hanging when chmhelp pipe is leftover from an improperly closed lhelp<br />
*r37825 chmhelp; Fixed chmhelp typo (boolean error)<br />
*r37826 chmhelp: fixed bug where a new lhelp process could be started each time F1 was pressed<br />
*r37841 DBG: Pseudo-Terminal, accept tabs<br />
*r37848 lazutils: docs: fixed encoding and package name<br />
*r37849 lcl: docs: fixed encoding<br />
*r37850 ide: docs: fixed encoding<br />
*r37851 updated docs<br />
*r37853 lcl: docs: fixed some links<br />
*r37852 build_lcl_docs: using UTF-8 file functions, added option -h<br />
*r37855 build_lcl_docs: showcmd: show working directory<br />
*r37861 lcl: check if ListDataset is loading to update lookup info. Issue [[http://bugs.freepascal.org/view.php?id=22337 22337]]<br />
*r37846 win32: let TComboBox.CloseUp fire before Change (delphi compatible). Fix 22352<br />
*r37880 IDE+startlazarus: use same working directory, needed for passing relative file names as command line parameters, fixed building lcl+lazutils chm on ubuntu 12<br />
*r37866 lazutils: fixed unit names<br />
*r37868 lazutils: added fpdoc files<br />
*r37869 docs: building lazutils+lcl chm<br />
*r37885 DBG: fixed parsing sets for debug-inspector<br />
*r37906 IDE-Options / SynEdit: Fixed RightEdge visibility (Recression)<br />
*r37919 DBG: Prevent potential crash/memory-corruption in Watches<br />
*r37920 DBG: Prevent potential crash in (dbg-)OnIdle handling<br />
*r37921 DBG: Prevent build up of no longer needed commands in queue<br />
*r37945 DBG: Prevent a crash, when the selected snapshot is deleted. Cas also happen when starting the debugger, while a snapshot from previous run is active<br />
*r37950 DBG: fixed endless loop in watch eval (auto type cast) Issue [[http://bugs.freepascal.org/view.php?id=0022425 0022425]]<br />
*r37961 DBG: Disable rangechecks for certain PtrUInt casts<br />
*r37993 carbon: fixed crash of IDE when compiled with range checks on<br />
*r38006 gtk2: fixed crash on QuestionDlg<br />
*r38003 IDE: fixed showing custom project options, issue [[http://bugs.freepascal.org/view.php?id=22486 22486]]<br />
** merged ONLY main.pp<br />
*r38016 ToDoList: fixed encoding of French translation, it should be UTF-8, not ISO-8859-1. Patch by batyann811, bug 22489.<br />
*r37981,37983-37989,38001,38004-38005,38012,38017 Win Installer<br />
===== Fixed after RC1 =====<br />
*r38127 IDE, EditorOptions: Fixed finding color attribute in localized IDE<br />
*r38132 IDE: setup: after changing lazarusdir: fetch translations and translate<br />
*r38133 chmhelppkg: invoke lazbuild with --pcp parameter<br />
*r38138 examples: testall: fixed start<br />
*r38139 examples: cleandirs: error for fpc version<br />
*r38140 examples: componentstreaming: fixed typo, clean up<br />
*r38141 lazfreetype: fixed range check error, improved error message<br />
*r38142 examples: mssqlconn: requires fpc 2.6.1<br />
*r38144 examples: synguttermarks: win32 gui mode, fixed Left position<br />
*r38146 examples: tv_add_remove: updated<br />
*r38147 examples: xmlreader: added example xml<br />
*r38157 IDE: fixed saving ambiguousfileaction, bug 22573<br />
*r38158 examples: clean up<br />
*r38038 TAChart: Allow spaces in field names inside TDbChartSource.FieldY<br />
*r38168 synuni: clean up fpc options<br />
*r38170 synuni, semaphorgridlpk: clean up fpc options<br />
*r38022 SynEdit: Fixed drawing errors for frames (left frame site drawn at wrong offset)<br />
*r38145 LCL: TListView fixed "List index out of bounds" while deleting items. issue [[http://bugs.freepascal.org/view.php?id=22552 22552]]<br />
*r38150 SynEdit TSynMultiSyn: Fixed crash when deleting lines. Part of issue [[http://bugs.freepascal.org/view.php?id=0022519 0022519]]<br />
*r38151 SynEdit Highlighter: Fixed crash when scanning empty<br />
*r38152 SynEdit TSynMultiSyn: typo<br />
*r38175 SynEdit TSynMultiSyn: Fixed updating, when appending to EOT. Part of issue [[http://bugs.freepascal.org/view.php?id=0022519 0022519]]<br />
*r38205 lazaruside.fi.po: Finnish translations<br />
*r38180 Synedit: fix matching-bracket-highlight in comments (closing bracket at eol) issue [[http://bugs.freepascal.org/view.php?id=22586 22586]]<br />
*r38198 IDE: Export to html, do not enforce check for writeable. Issue [[http://bugs.freepascal.org/view.php?id=22588 22588]]<br />
*r38199 lazutils: do not use winodws W functions under Win98, issue [[http://bugs.freepascal.org/view.php?id=22596 22596]]; '''Breaks compilation on wince, because win32platform is not defined.'''<br />
*r38202 openglcontrol: win32: fixed sharing context<br />
*r38204 Synedit: fixed typo in IFDEF for fpc 2.60 bug<br />
*r38225 TAChart: Fix division by zero in zoom tools with extreme zoom ratios<br />
*r38226 TAChart: Fix hang in functional series with extreme zoom ratios<br />
*r38223 SynEdit TSynMultiSyn: Several fixes issue [[http://bugs.freepascal.org/view.php?id=0022519 0022519]]<br />
*r38232 TAChart: Add InRangeUlps utility function<br />
*r38233 TAChart: Fix disappearance of axis marks located exactly at chart bounds<br />
*r38234 TAChart: Fix crash when setting Marks.LabelFont from the Object Inspector<br />
*r38237 Examples/SynEdit: Readme and typo in comment<br />
*r38266 IDE: Tweak the layout of ManageExamplesForm<br />
*r38260 TAChart: Use correct notification when the series' source changes<br />
*r38261 TAChart: Issue change notifications when modifying TListChartSource.DataPoint property<br />
*r38285 lhelp: replace MessageBox, with Form.Modal. FIx IPC hang. issue [[http://bugs.freepascal.org/view.php?id=0022592 0022592]]<br />
<br />
===== Fixed after RC2 =====<br />
*r38293 windows installers: don't ask to overwrite the environment options in the secundary config directory from Reinier Olislagers<br />
*r38339 SynEdit TSynMultiSyn: Fix CaseSensitivity for Sheme marker. Issue [[http://bugs.freepascal.org/view.php?id=0022693 0022693]]<br />
*r37386 Remove writeln() that looks like a residual debug message. Issue [[http://bugs.freepascal.org/view.php?id=0022544 0022544]]<br />
*r38385 Translations: removed unmaintained Portuguese translation, which was outdated copy of Brazilian Portuguese one<br />
<br />
== How to merge ==<br />
The lazarus developers have decided to use the native svn merge for this branch. Other branches used the svnmerge.py script to manage the revisions to be merged.<br />
<br />
* TODO: Maybe this information should be put in a separate page.<br />
<br />
[[SVN_Migration#Merge_with_plain_svn]]<br />
=== Using TortoiseSVN ===<br />
As noted in the link above using TortoiseSVN is more or less self explaining. <br />
<br />
* TODO: add some screen shots.<br />
<br />
When committing, in the recent messages a nice commit message is available.<br />
<br />
Tested with TortoiseSVN 1.7.6, SVN 1.7.4.<br />
<br />
=== Show list of revision that can be merged ===<br />
In the lazarus fixes_1_0 directory do:<br />
svn mergeinfo ^/trunk --show-revs eligible<br />
Or if you don't have a fixes directory checked out, you can pass the URL path of the fixes branch:<br />
svn mergeinfo ^/trunk http://svn.freepascal.org/svn/lazarus/branches/fixes_1_0 --show-revs eligible<br />
<br />
=== Show list of revision that have been merged ===<br />
In the lazarus fixes_1_0 directory do:<br />
svn mergeinfo ^/trunk --show-revs merged<br />
<br />
=== Merging revisions from trunk ===<br />
To merge one or more revisions from trunk, use the svn merge command. For example to merge revision 36506 and 36510 use:<br />
svn merge -c 36506,36510 ^/trunk<br />
<br />
To generate a commit log message, use:<br />
svn log ^/trunk -c 36506,36510 > svnmerge-commit-message.txt<br />
<br />
Edit svnmerge-commit-message.txt with your favorite text editor and add a first line like:<br />
Merged revision 36506,36510 from /trunk.<br />
<br />
Commit this with:<br />
svn commit -F svnmerge-commit-message.txt<br />
<br />
=== Blocking a revision to be merged ===<br />
Sometimes you want to block a revision to be merged, i.e. you want to make sure that this revision is never merged to the fixes branch, for example, because it contains a new feature or it contains a version number change not applicable to the fixes branch, but only to trunk. To block revision 36507, use:<br />
svn merge -c 36507 --record-only ^/trunk<br />
Then you can create a log message with:<br />
svn log ^/trunk -c 36507 > svnmerge-commit-message.txt<br />
Edit svnmerge-commit-message.txt with your favorite text editor and add first line like:<br />
Blocked revision 36507 from /trunk<br />
Then commit this change:<br />
svn commit -F svnmerge-commit-message.txt</div>
Paul Ishenin
https://wiki.freepascal.org/index.php?title=Lazarus_1.0_fixes_branch&diff=62076
Lazarus 1.0 fixes branch
2012-09-26T00:37:41Z
<p>Paul Ishenin: /* Fixes for 1.0.2 */</p>
<hr />
<div>This page contains the revisions to be merged from trunk to the [http://svn.freepascal.org/svn/lazarus/branches/fixes_1_0/ Lazarus 1.0 fixes] branch.<br><br />
Release notes can be found here [http://wiki.lazarus.freepascal.org/Lazarus_0.99.0_release_notes Release notes]<br />
<br />
== Fixes for 1.0.2 ==<br />
=== Merge requests ===<br />
==== Submitted by developer / committer ====<br />
<br />
==== Submitted by others ====<br />
<br />
=== Merged revisions for 1.0.2 ===<br />
*r37217,37218,37225,37239,37241,37293,37304,37316 Qt: fixed keys handling (arrow keys & enter).<br />
*r38396 LCL: ColorBox - keep FSelected in sync all the time. fixes issue [[http://bugs.freepascal.org/view.php?id=22729 22729]]<br />
*r38426 CodeBrowser: check for virtual units. Issue [[http://bugs.freepascal.org/view.php?id=0022740 0022740]]<br />
*r38428 SynEdit, MultiHighlighter: fix adding text/sections at EOL. issue [[http://bugs.freepascal.org/view.php?id=0022745 0022745]]<br />
*r38430 TAChart: Fix out-of-bounds access when drawing empty polygons and polylines<br />
*r38437 ide: project target: apply default extension even if the file has already an extension, issue [[http://bugs.freepascal.org/view.php?id=22750 22750]]<br />
*r38444 IDE: fixed crash when releasing non existing component palette select button<br />
*r38473 tests: fixed compilation<br />
*r38464 TAChart: Fix error message in TFPCanvasDrawer.RadialPie<br />
*r38486 avglvltree: setcompare: set when count=0<br />
*r38503 TAChart: Copy BaseLength in TChartArrow.Assign<br />
*r38507 EditorOpts: default for top-info-hint<br />
*r38509 Debugger: Ensure Queue is not blocked by LineInfo Request. (If a LineInfoRequest was queued the DebuggerCurrentLine could not search the stack, as commands were not immediately run)<br />
*r38519 Gtk2: fixed crash with TListView when viewstyle is vsIcon or vsSmallIcon. issue [[http://bugs.freepascal.org/view.php?id=22778 22778]]<br />
*r38520 Qt: do not propagate keyrelease event as action trigger. issue [[http://bugs.freepascal.org/view.php?id=22737 22737]]<br />
*r38531 Debugger: Workaround to fix exe-line-indicators (blue dots) at debug start<br />
*r38533 Qt: fixed header offset and getClientRect for TListView when ViewStyle=vsReport.<br />
*r38547 TAChart: Support Y NaNs in polar series ''(this will cause compilation error -- please remove 'and CloseCircle' part from the last conditional in the TPolarSeries.Draw procedure)''<br />
*r38557 TAChart: Support brush style, pen style and pen width in fpvectorial drawer<br />
*r38571 TAChart: Draw chart correctly after decrease of an axis margin<br />
*r38529,r38530,r38535,r38543,r38548: fix carbon clipping, correctly return region types on HRGN related operations, fix generic IntersectClipRect routine<br />
*r38640,r38641,r38642,r38649: various ExtTextOut fixes for Carbon and Cocoa<br />
*r38551,r38552,r38562,r38563 Carbon: various winapi compatibility functions fixes<br />
*r38518 Qt: TQtWinApi.ExtTextOut() implemented Dx param. issue [[http://bugs.freepascal.org/view.php?id=22795 22795]] (zeljko will merge, need some testing)<br />
*r38572 Qt: propagate QEvent::ShortcutOverride to parent, so stop key event if shortcut is executed. issue [[http://bugs.freepascal.org/view.php?id=22827 22827]]<br />
*r38576,38577: Qt: fixed TQtWidgetSet.FrameRect(), now it uses passed brush to draw frame border.<br />
*r38610 Qt: fixed non ascii utf8 chars in TQtWidgetSet.ExtTextOut() when we use dx param. issue [[http://bugs.freepascal.org/view.php?id=22795 22795]] (depends on merging of r38518).<br />
*r38628,38629,38630,38634: Qt: fixed clipping bugs inside TQtWidgetSet.ExtTextOut()<br />
*38670 SynEdit: Fixed past eol paint error ** Must be ported by hand **<br />
*r38584 TAChart: Copy Attachment and YIndex in TGenericChartMarks.Assign ''(this code is in TATypes unit in v1.0)''<br />
*r38589 TAChart: Do not draw lines which should be invisible in OpenGL drawer<br />
*r38607 TAChart: Workaround for issue [[http://bugs.freepascal.org/view.php?id=22850 22850]] '''see patch in the mailing list'''<br />
*r38617 TAChart: Fix GetNearestPoint returning true with no points found inside radius, issue [[http://bugs.freepascal.org/view.php?id=22854 22854]]<br />
*r38644: Qt: fixed menu flickering. issue [[http://bugs.freepascal.org/view.php?id=22872 22872]]<br />
*r38651: TAChart: Fix zero division when calling ImageToGraph before the chart is drawn<br />
*r38674 Qt: fixed crash when invalid or null handle is passed into SetCapture.<br />
*r38679 Qt: update bitmap if TMenuItem has associated ImageList and ImageIndex. issue [[http://bugs.freepascal.org/view.php?id=22896 22896]]<br />
*r38672 SynEdit: fixed delete-next-word, if caret past eol. Issue [[http://bugs.freepascal.org/view.php?id=0022890 0022890]]<br />
*r38720 LCL, DefaultTranslator: fix handling of non-ASCII path to .po file, bug 22907, patch by Vladimir Zhirov<br />
*r37398 IDE: corrected version info language list, added Ukrainian language, bug 22103<br />
*r38722 IDE: added Lithuanian to version info language list, bug 22898<br />
*r38671: carbon: fix accidental error in index<br />
*r38743: carbon: reimplement linear gradient draw using shading to support OS X < 10.5<br />
*r38636,r38637: Gtk2: fixed text clipping and text background drawing<br />
*r38758: gtk2: allocate GdkColor when we need a BkColor<br />
*r38727,r38728,r38742,r38744,r38745,r38748: gtk2: fix clipping and DC transformations<br />
*r38747: gtk2: fix FrameRect - it must use a passed brush instead of selected one<br />
*r38373 Gtk2,Qt: make ETO_OPAQUE work from TCanvas.TextOut(). issue #22719<br />
*r38769-r38772: lcl, gtk2, carbon: full implementation of GradientFill<br />
*r38673 TAChart: Ignore NaNs while calculating TCustomChartSource.ValuesTotal<br />
*r38675 TAChart: Support Marks.Attachment = maCenter in pie series<br />
*r38694: TAChart: Fix update of TListChartSource.ValuesTotal cache when adding or removing NaNs<br />
*r38710: TAChart: Fix crash when using TChartExtentLink with LinkedChart.Chart = nil<br />
*r38712: TAChart: Fix crash while replacing linked chart in TChartExtentLink<br />
*r38713: TAChart: Use NumberOr function instead of checking for NaN explicitly<br />
*r38719: TAChart: Extract TDrawFuncHelper.ForEachPoint helper procedure ''This also fixes a hang while using data point tool on extremely zoomed-in series''<br />
*r38729: TAChart: Extract TDrawFuncHelper.XRange helper function. + Fix GetNearestPoint for rotated function series.<br />
*r38733: TAChart: Fix TChartSeries.SetColor to notify all listeners and require ListSource. Add TListChartSource.SetColor<br />
*r36674: TAChart: Add AddArray, AddNull, AddX and AddY functions to TChartSeries<br />
*r38697,38698 Gtk2: set TToggleBox.ParentColor default false so it's color is consistent with TButton when eg.parent color is clRed and TToggleBox.Color=clDefault.<br />
*r38709: Qt: improved triggering of OnClick() in QEventShowToParent. issue [[http://bugs.freepascal.org/view.php?id=22872 22872]]<br />
*r38799: gtk2: implement SPI_GETWHEELSCROLLLINES. Fix a regression in VirtualTreeView wheel scroll<br />
*r38762: Gtk2: when style is drawing button then use style from button. issue #22901<br />
*r38826 Qt: TQtWidgetSet.SetScrollInfo - fixed wrong result, it must return real slider position, not value which might be out of sync with position. This fixes problems with TScrollingWinControl (TControlScrollbar).<br />
*r38735: TAChart: Fix memory leak in TDbChartSource.BeforeDraw<br />
*r38737: TAChart: Fix drawing of pie series with data from the db source<br />
*r38754: TAChart: Fix hang when changing TLineSeries.ShowPoints while drawing chart<br />
*r38757: TAChart: Display crosshair tool on mouse down<br />
*r38779: TAChart: Do not notify from TListChartSource.SetXValue and SetYValue if the value did not actually change.<br />
*r38780: TAChart: Add TBasicPointSeries.MovePoint overload for graph coordinates ''not a fix, but required for r38788''<br />
*r38788: TAChart: Support axis transformations in TCustomChartSeries.MovePoint<br />
*r38792: TAChart: Fix crash on deleting subcomponent with active property editor<br />
*r38802: lcl:revert 33020, 33082, 33086, part of 33089 and 33389. These changes made the hint behavior Delphi incompatible thus leading to a regression in third party control like VirtualTreeView that handles hints in CMHintShow. Retrieve parent hint recursively if hintcontrol.hint is empty' (delphi compatible)<br />
*r38816 LazUtils: improve unicode path/filename handling by Fileutil.ReadFileToString, patch from Takeda Matsuki, bug 22953<br />
<br />
== Fixes for 1.0 ==<br />
=== Merged revisions for 1.0.0 ===<br />
==== Submitted by developer / committer ====<br />
*r36506 LazReport, fix barcode dialog localization (Jesus)<br />
*r36508 Updated Japanese translation<br />
*r36509 Window Column, store pointer to resourcestring<br />
*r36510 LazReport, fix barcode addin when TfrBarCodeObject is not yet instantiated (in this case barcode editor defaults to memo view.<br />
*r36511 DividerBevel: implemented Transparent.<br />
*r36514 IDE: moved macros save/saveall to source editor<br />
*r36515 IDE: update macro descriptions after translating resource strings<br />
*r36516 IDE: trim TLazPackageGraph.GetFallbackOutputDir<br />
*r36517 IDE: check if package needs rebuild: switch to fall back directory: update compiler params<br />
*r36518 IDE: install/uninstall package dialog: fixed icons, added info about current state<br />
*r36523,r36530 IDE: Export as HTML<br />
*r36526 CodeTemplate: Improve final caret pos, if tmpl does not specify<br />
*r36527 CodeTemplate: allow tab to trigger / selection to ignore. issue [[http://bugs.freepascal.org/view.php?id=0017631 0017631]]<br />
*r36528 SynEdit: Template(Syncro) fix invalidation<br />
*r36529 IDE: Printing: break long lines. Issue [[http://bugs.freepascal.org/view.php?id=0013479 0013479]]; <br />
*r36547 IDE: Printing: break long lines. Fix Utf8. Update for rev 36529<br />
*r36531 LazReport: fixed buttonpanel localization in BarCode editor dialog<br />
*r36533 IDE: clean up of unused resourcestrings<br />
*r36534, r36536, r36553, r36583, r36646 regenerated translations; updated Russian translation<br />
*r36535 IDE: more clean up of unused resourcestrings<br />
*r36537 Documents LCLIntf.GetDeviceCaps<br />
*r36538 IDE: always store lazarus directory<br />
*r36539 LazReport: uppercase variable before comparing with hardcoded functions. Properly fix to 21624<br />
*r36543 IDE: setup dialog: using same file resolving as IDE<br />
*r36546 IDE: consider empty lazarusdirectory as pcp, empty fpcsrcdir as lazdir, empty testdir as lazdir<br />
*r36548 IDE: fixed note about wrong laz dir<br />
*r36549 IDE: fixed crash on find identifier references<br />
*r36551 IDE: translate descriptions of all macros<br />
*r36552 IDE: fixed editor tab position combobox items localization on Editor/Misc options page<br />
*r36556,r36557 IDE: warn if upgrading configs<br />
*r36561, 36562, 36563, 36566: Improve Options/Keymap<br />
*r36565 LCL: Prevent TShape.stRectangle disappearing with certain Height/Width and Pen.Width values.<br />
*r36567,r36568,r36569 IDE: show downgrade warning<br />
*r36570 lazbuild: select IDE build mode, fixed compiling with different mode<br />
*r36572 LCL: set csCaptureMouse on TToolButton, but don't send click if mouse is out of ttoolbutton on mouseup.issues [[http://bugs.freepascal.org/view.php?id=19688 19688]],[[http://bugs.freepascal.org/view.php?id=21560 21560]]<br />
*r36574 IDE: fixed saving environment on every change<br />
*r36577 LCL, TreeView: fix GetNextVisible, GetPrevVisible. Issue [[http://bugs.freepascal.org/view.php?id=21264 21264]]<br />
*r36575 IDE/Setup dialog: force taskbar button to be shown<br />
*r36584 IDE: import package list: opendialog<br />
*r36587 IDE: intial setup: fpc src dir: lazdir/fpc/fpcver/source<br />
*r36588 IDE: intial setup: fixed if no candidates found<br />
*r36589,r36590 IDE: compiler file name: search first with macros<br />
*r36591 IDE: verbose search for candidates<br />
*r36592 IDE: search fpc src relative to fpc.exe<br />
*r36594 IDE: check compiler: only run common names<br />
*r36595,r36599 IDE: use under windows as default for make the make.exe in the compiler directory<br />
*r36596 IDE,codetools: fixed ppccross,crossppc to ppcross<br />
*r36601 IDE: unify the 2 filters in KeyMapping window. Prevent a potential crash.<br />
*r36603 debian: updated patches to latest source in lazarus svn<br />
*r36608 Gtk2: do not set widget name, it's completelly unnecessary and produce unexpected behaviour if some keywords are in widget name.issue [[http://bugs.freepascal.org/view.php?id=21661 21661]].<br />
*r36613 SynEdit: Fix an issue with Scrollbars not being updated<br />
*r36617 lazbuild: build ide: replace exe on windows<br />
*r36644 IDE: improved 'Export package list' dialog localization<br />
*r36645 IDE: improved 'Package Graph Explorer' dialog localization<br />
*r36647,r36653,r36654,r36655,r36656,36668,36673 IDE: view / IDE internal / what needs building<br />
*r36648,r36650,r36651 IDE: read state file created by Makefile: fix path delimiters, checking compiled state: ignore -v,-i,-B flags, do not skip all -F<br />
*r36652 IDE: codetools options: shorter caption<br />
*r36658 regenerated translations; updated Russian translation <br />
*r36659 LCL: Refactoring. Make TCalculatorDialog.Execute more understandable by removing a "with" block.<br />
*r36661 LCL: Prevent "Test Dialog" feature of Calculator and Calendar dialogs locking the IDE, issue [[http://bugs.freepascal.org/view.php?id=21644 21644]]<br />
*r36616 SynEdit: do not include IME for WinCe<br />
*r36662 LCL: implementation of TCustomImageList.GetIcon()<br />
*r36663 In GUI strings, unify all 3 dots to have a space before them ( ...)<br />
*r36664 IDE: Use CreateAbsolutePath when switching between relative/absolute paths in AddFile dialogs (CreateAbsoluteSearchPath gives wrong output)<br />
*r36665 LCL: publish TUpDown.OnChangingEx<br />
*r36666 IDE etc.: unify 3 dots in GUI string to have a space ( ...).<br />
*r36667 translation: german: updates from Swen Heinig<br />
*r36669 updatemakefiles: write which lpk have conditionals<br />
*r36670,r36671 IDE,lazbuild: create makefile: use CPPROG instead of COPY to get the current date for Makefile.compiled under Windows<br />
*r36649,r36657,r36602,r36672,r36675,r36677,r36679,r36683,r36701,r36708,r36709 Makefiles: updated, reduced dependencies, fixed double compiles<br />
*r36676 LCL: Implement TListItem.EditCaption, issue [[http://bugs.freepascal.org/view.php?id=20295 20295]].<br />
*r36680,r36699 lazbuild: fixed crash, replaced some MessageDlg with IDEMessageDialog<br />
*r36681 IDE,lazbuild: use parsed compiler filename, make filename<br />
*r36682 IDE: debugfilename, debugsearchpath: use same function as other env vars to resolve macros, trim and find<br />
*r36686,r36688 IDE/lazbuild backup, delete the same lazarus exe on all platforms<br />
*r36694 regenerated translations; updated Russian translation<br />
*r36695 LazDataDesktop: regenerated translations; updated Russian translation<br />
*r36696 IDE: add resource strings for various windows manifest keys<br />
*r36697 fix ImageList.AddMasked() in case of source image has no mask description<br />
*r36702 IDE: TProject.TitleIsDefault: check for project+number, fix for renaming the title of a new project<br />
*r36711 Qt: enable wordwrap on TQtStaticText. issue [[http://bugs.freepascal.org/view.php?id=21697 21697]].<br />
*r36712 LCL: fixed function result<br />
*r36713,r36715 lcl: fixed TToolButton.MouseUp X,Y in boundsrect check<br />
*r36716 LCL, combination of modal form + wsMaximized style produces tiny windows on GTK2, issue [[http://bugs.freepascal.org/view.php?id=21634 21634]]<br />
*r36717 LCL: reverted changes to menus.pp from r36666 (by Paul's request)<br />
*r36718 LCL: regenerated translations<br />
*r36719, *r36826 LCL: fix range check error<br />
*r36720 LazReport: added option to ignore undefined symbols, from Luiz Americo, issue [[http://bugs.freepascal.org/view.php?id=21683 21683]]<br />
*r36723,36724 IDE,lazbuild: fixed repeated build project clean: save project state file before compiling too<br />
*r36727 lazbuild: fixed expanding --lazarusdir<br />
*r36728 make useride: pass --lazarusdir=.<br />
*r36729 Improve TStringHashList, prevents a PO file update crash. Issue [[http://bugs.freepascal.org/view.php?id=21685 21685]]<br />
*r36730 IDE: project wizard: fixed fixed size, bug 21714<br />
*r36731 lazreport: fix possible access violation by checking dataset for nil<br />
*r36732 win32: fix range check error<br />
*r36733 lazbuild: auto create ide/revision.inc if missing<br />
*r36734 Gtk2: fixed mouse capturing on native scrolling win controls (TListBox,TListView etc).issue [[http://bugs.freepascal.org/view.php?id=21713 21713]]<br />
*r36735 LCL: TToolButton: commented debugln().<br />
*r36740 lazbuild: fixed uninitialized function result, fixed checking if init failed, quick check if lazarusdir is valid.<br />
*r36741 lazutils: Patch with font collection support from Circular<br />
*r36744 examples: Adds a OpenURL/OpenDocument test<br />
*r36745 LCL: Adds the sysenvapis include files to the lpk and adds an extra safety in OpenURL for users which forget to encode spaces in filenames<br />
*r36746 IDE: fixed fixed size dialogs<br />
*r36747 IDE: sort selection: layout<br />
*r36748 IDE: added debugging for sort selection<br />
*r36749 gtk2: clean up<br />
*r36750 IDE: less debugging<br />
*r36751 IDE: jump to next/prev error: fixed direction<br />
*r36752 LCL: TTreeView: clean up<br />
*r36753 IDE: next/prev error: clear multi selection<br />
*r36754 lcl: move interface initialization of TCustomEdit from CreateWnd to InitializeWnd. Consistent with other controls and allows interfaces to check is handle is being created<br />
*r36755 IDE: Add acceleration keys and fix tab order in Project Wizard and ImageListEditor, issue [[http://bugs.freepascal.org/view.php?id=21718 21718]]<br />
*r36756 lcl: remove TCustomListBox.Loaded. ItemIndex is initialized in InitializeWnd<br />
*r36757 lcl: call inherited after setting FLines in TCustomMemo.InitializeWnd. Fix potential crash since widgetset code expect FLines be initialized <br />
*r36758 lcl: check for csDestroyingHandle in TControl.HandleObjectShouldBeVisible. Fix issue [[http://bugs.freepascal.org/view.php?id=19882 19882]]<br />
*r36759 lcl: revert 31890 since issue [[http://bugs.freepascal.org/view.php?id=19882 19882]] is properly fixed now<br />
*r36760 gtk2: less hints<br />
*r36761 gtk2: less hints<br />
*r36762 Carbon: fixed result of TWSCarbonCustomListView GetTopItem,GetViewOrigin and GetBoundingRect. issue [[http://bugs.freepascal.org/view.php?id=21733 21733]]<br />
*r36763 Carbon: added themed TComboBox drawing.Patch by David Jenkins. issue [[http://bugs.freepascal.org/view.php?id=21747 21747]]<br />
*r36764 Carbon: added themed TComboBox drawing.Patch by David Jenkins. issue [[http://bugs.freepascal.org/view.php?id=21747 21747]]<br />
*r36765 Docs: added David Jenkins to contributors list<br />
*r36766 Carbon: make carbon widget visibility in sync with lcl. Patch by David Jenkins. issue [[http://bugs.freepascal.org/view.php?id=21731 21731]]<br />
*r36767 lcl: remove Destroying and DestroyWnd calls from TCustomListBox.Destroy<br />
*r36768 lcl: cleanup TCustomListBox.Create<br />
*r36769 codetools: fixed skipping include files in skipped ifdef<br />
*r36770 gtk2: less hints<br />
*r36771 gtk2: less hints<br />
*r36772 ide: fix selection painting of debugger eventlog colors list<br />
*r36773 carbon: improved TCarbonWidgetSet.RawImage_XXXX routines.Patch by David Jenkins. issue [[http://bugs.freepascal.org/view.php?id=21743 21743]].<br />
*r36774 carbon: proper initialization of alpha channel.Patch by David Jenkins. issue [[http://bugs.freepascal.org/view.php?id=21753 21753]]<br />
*r36775 LCL: implement ClientToParent, ParentToClient based on patch of David Jenkins (issue [[http://bugs.freepascal.org/view.php?id=0021763 0021763]])<br />
*r36776 LCL: extend TThemeServices.IsDisabled, IsHot, IsPushed for teCombobox<br />
*r36777 IDE: Fix tab order and set shortcuts in Application Options frame.<br />
*r36778 LazControls: fix potential crash in TListFilterEdit and TTreeFilterEdit<br />
*r36779 GTK2: add TGtk2WidgetSet.SetDesigning to prevent Abstract method call in IDE. Issue [[http://bugs.freepascal.org/view.php?id=21773 21773]]<br />
*r36780 IDE: fix tab order in Project Save Options frame.<br />
*r36781 IDE: fix tab order in frames: Build Modes editor, Miscellaneous Options and Version Info<br />
*r36782 IDE: fix tab order in option frames: Code Generation, Compilation, Linking, Messages, Parsing.<br />
*r36783 GTK2: clean up<br />
*r36784 GTK2: clean up<br />
*r36786 Carbon: removed extra code for teComboBox, since teComboBox is supported by themes as of r36776.<br />
*r36787 gtk2: clean up<br />
*r36788 gtk2: fixed Gtk2WidgetSet.ClipboardGetData mem leak on stream write error<br />
*r36789 gtk2: removed OldCreateStatusBarPanel<br />
*r36790 gtk2: clean up<br />
*r36791 gtk2: clean up<br />
*r36794 IDE: CloseQueryIDEWindows: skip sub forms<br />
*r36795 Fix crash in dbg-console, if dbg not active. issue [[http://bugs.freepascal.org/view.php?id=21712 21712]]<br />
*r36796 SourceEdit: use softcenter for Replace prompt. Issue [[http://bugs.freepascal.org/view.php?id=0021709 0021709]]<br />
*r36797 regenerated translations; updated Russian translation<br />
*r36800 IDE: when checking if a FPC unit has changed: ignore units that have no source in the FPC sources. Needed to ignore user units reachable through fpc.cfg.<br />
*r36801 IDE: fix error message can't find unit if the ppu is in one of the loaded packages<br />
*r36803 DOCS: correct the documentation about CanFocus<br />
*r36806 LCL: clear FActiveDefaultControl on that control destruction<br />
*r36810 LCL: fix copy paste error<br />
*r36811 LCL: don't update Default, Cancel during their applying in UpdateDefaultCancel<br />
*r36812 LCL: add and ability to use own TListItems, TListItem descendants in TListView for delphi compatibility<br />
*r36821 gtk2 intf: fixed compilation FPC_FULLVERSION<20600<br />
*r36822 gtk2 intf: clean up<br />
*r36823 gtk2 intf: clean up<br />
*r36824 gtk2 intf: clean up<br />
*r36825 LCL: initialize font height with the height from DefFontData<br />
*r36852 IDE: when checking if global unit has changed, skip units in packages<br />
*r36857,36859 LCL: TControl.UpdateBaseBounds: set cfBaseBoundsValid<br />
*r36861 LCL: TCustomSplitter.SetAnchors: adapt anchors before applying<br />
*r36870 LCL: SetAlign: restore the basebounds set before changes<br />
*r36877 LCL: clean up<br />
*r36882 LCL: TControl.SetAnchors: during disabled autosize: update basebounds when changing Anchors, bug 21730<br />
*r36884 LCL: fixed sending CM_EXIT,CM_ENTER when flastfocusedcontrol was removed<br />
*r36885 LCL: constraint Width,Height to >=0<br />
*r36888 Converter: fixed 'Missing units' dialog localization, part of bug 21784<br />
*r36889,r36890 codetools: class completion: fixed gathr proc definitions<br />
*r36891 IDE: show compiling resource lines when error on compiling resources<br />
*r36892 IDE: improved message when can not find unit and unit was found in a package<br />
*r36893,r36894 IDE: messages: show debug: lines and calling resource compiler<br />
*r36895,r36896 gtk2 intf: checking for liboverlay, using value-changed instead of change-value<br />
*r36897 LCL: made TImage.DestRect public<br />
*r36899 Fix encoding errors in Japanese translation<br />
*r36900,r36901 startlazarus: fixed asking for custom or default<br />
*r36902 LCL: fixed ShowModal() when Hide() is called on modal form to be Delphi compatibile.issue [[http://bugs.freepascal.org/view.php?id=15390 15390]]<br />
*r36903 IDE: fixed read/write designinfo, bug 21804<br />
*r36904 IDE: do not save a new project where only session was modified, bug 21803<br />
*r36905 gtk2 intf: fixed TGtk2WSCustomTabControl.GetDefaultClientRect to check if gtknotebook has a page<br />
*r36906,36907 codetools: AddLocalVar: do not add hidden used unit<br />
*r36908 Qt: added TQtWidget.testAttribute() function.<br />
*r36910 DBG: Tests for environment<br />
*r36913 TAChart: Set Brush.Color before Brush.Style to work around issue [[http://bugs.freepascal.org/view.php?id=21806 21806]]<br />
*r36914: TAChart: Fix compilation of OpenGL drawer<br />
*r36924 gtk2 intf: TGtk2WSCustomTabControl.GetDefaultClientRect for TTabControl<br />
*r36925 Qt: fixed resize events of TQtTabWidget and accurate information about clientRect changes. issue [[http://bugs.freepascal.org/view.php?id=21805 21805]]<br />
*r36929 Gtk2: fixed text background drawing in TGtk2WidgetSet.ExtTextOut() when BkMode = OPAQUE.issue [[http://bugs.freepascal.org/view.php?id=19384 19384]]<br />
*r36941 Translations: Brazilian Portuguese translation update by Marcelo B Paula, bug 21818<br />
*r36938,36939 LazReport, lift up to preview window improving layout and functionality, from Julio Jimenez B.<br />
*r36942 LazReport, avoid hiding text at some zoom values due small differences in text height calc (DONT MERGE YET, NEEDS MORE TESTING)<br />
*r36943 IDE: msg quickfix for cant find unit: add position<br />
*r36956 carbon: added FHasPaint variable to TCarbonWidget to allow owner draw.issue [[http://bugs.freepascal.org/view.php?id=21744 21744]]<br />
*r36957 carbon: added ScrollRect() routine to TCarbonWidget. issue [[http://bugs.freepascal.org/view.php?id=21741 21741]]<br />
*r36958 carbon: set FTabIndex instead ATabIndex variable in TCarbonTabsControl.SetPageIndex. patch by David Jenkins.issue [[http://bugs.freepascal.org/view.php?id=21728 21728]]<br />
*r36959 carbon: optimized caret drawing to not update whole widget.patch by David Jenkins. issue [[http://bugs.freepascal.org/view.php?id=21768 21768]]<br />
*r36960 carbon: fixed order of check width > height in TCarbonTrackbar.patch by David Jenkins. issue [[http://bugs.freepascal.org/view.php?id=21740 21740]]<br />
*r36961 carbon: implemented autosizing for listview / databrowser columns.patch by David Jenkins. issue [[http://bugs.freepascal.org/view.php?id=21745 21745]]<br />
*r36962 carbon: fixed possible bad loop in TCarbonSpinEdit.CreateWidget.Patch by David Jenkins.issue [[http://bugs.freepascal.org/view.php?id=21732 21732]]<br />
*r36965 IDEIntf: fixed typo<br />
*r36967 Gtk2: fixed retreiving font name from TGtk2WidgetSet.GetObject() when font is default. issue [[http://bugs.freepascal.org/view.php?id=21828 21828]]<br />
*r36968 codetools: JumpToPublishedMethodBody: raise error<br />
*r36969 codetools: fixed FindMethodNodeInImplementation for program<br />
*r36971 tests: codetools: added test for duplicate sections, parsing library<br />
*r36972 codetools: fixed reparsing initialization, finalization, begin<br />
*r36973 codetools: fixed treating initialization, finalization as statement<br />
*r36974,r36975,r36976,36977,36978 codetools: fixed find declaration in library starting in initialization, bug 21832<br />
*r36981,r36982 codetools: identifier completion: fixed continue searching<br />
*r36979 Updated Japanese translation by Haruyuki Fujimaki<br />
*r36980 Fix japanese encoding<br />
*r36983,r36984 codetools: identifier completion: some keywords for library, program<br />
*r36985 codetools: identifier completion: keyword initialization for library, issue [[http://bugs.freepascal.org/view.php?id=21839 21839]]<br />
*r36986 Updated Japanese translation by Haruyuki Fujimaki<br />
*r36990 codetools: identifier list: skip identifier at cursor<br />
*r36991,r36992 IDE: identifier completion: add do after with, issue [[http://bugs.freepascal.org/view.php?id=16850 16850]]<br />
*r36996,r36997,r36999,r37013,r37014,r37015 runtests: fixed compilation, added some tests<br />
*r37012,r37011,r37009,r37008,r37007,r37006,r37005,r37004,r37003,r37002,r37000 carbon interface: clean up<br />
*r37020 IDE: recent/history lists: replaced case sensitive comparison with three types<br />
*r37021 docking: update modified flags<br />
*r37022 codetools: fixed uninitialized result<br />
*r37025 IDE: use unit dialog: check for syntax errors<br />
*r37026,r37027 DBG: Prepare for different line endings. / Accept different line endings (#10, #13, #10#13, #13#10) issue [[http://bugs.freepascal.org/view.php?id=0021834 0021834]].<br />
*r37029 Gtk2: fixed drawing of text with solid brush. issue [[http://bugs.freepascal.org/view.php?id=21863 21863]]<br />
*r37031 Gtk2: do not draw text background if colormap isn't assigned. Second part of issue [[http://bugs.freepascal.org/view.php?id=21863 21863]].<br />
*r37032 gtk2: clean up old mouse capture<br />
*r37033 gtk2: fixed releasecapture<br />
*r37034 gtk2: verbosity for ubuntu liboverlay mouse capture bug<br />
*r37038 sqldb: Enable mssqlconnection for fpc >= 2.6.1 (patch from Reinier Olilagers, bug 21867) - added because creates conflicts with later sqldb merges<br />
*r37040: TAChart: Workaround for TDbChartSource referring to the dataset with Filtered := true<br />
*r37043 LCL, fix TPostScriptPrinterCanvas.ClipRect is empty-rect until explicitly set by user, patch from Joachim Paepke, issue [[http://bugs.freepascal.org/view.php?id=21027 21027]]<br />
*r37051 Translations: Ukrainian translation update by Igor Paliychuk<br />
*r37052 regenerated translations; updated Russian translation<br />
*r37053 LCL: fixed compilation for fpc 2.7.1<br />
*r37054,37055,37057 set TDBLookup.FListLink.DataSource dynamically to FListSource or a local datasource. Issue [[http://bugs.freepascal.org/view.php?id=15410 15410]]<br />
*r37067 LCL: fixed visibility of implemented interfaces<br />
*r37069 simple deb: using make bigide, updated list of tools<br />
*r37070 openglcontrol: fixed mem leak, issue [[http://bugs.freepascal.org/view.php?id=21597 21597]]<br />
*r37071 codetools: identifier completion: unit name of self<br />
*r37076 gtk2: clean up<br />
*r37077 IDE: clean up<br />
*r37092 LCL: fixed compilation for fpc 2.7.1<br />
*r37093 DBG: Testcase: fixed reading env-options<br />
*r37095 SynEdit: fix crash in overview gutter creation. Issue [[http://bugs.freepascal.org/view.php?id=0021887 0021887]]<br />
*r37096 SynEdit: Do not offer OverviewGutter in Gutter-parts designer<br />
*r37101 lazreport: fixed compilation with fpc 2.7.1, new TBookMark<br />
*r37102 lazreport: clean up<br />
*r37112,r37113 SynEdit: highlight class "helper". Fix wrong highlight of "sealed" Issue [[http://bugs.freepascal.org/view.php?id=0021812 0021812]]<br />
*r37115 openglcontrol: fixed mem leak, issue [[http://bugs.freepascal.org/view.php?id=21597 21597]]<br />
*r37126 LCL: Publish some TCheckGroup properties.<br />
*r37129 gtk2: clean up<br />
*r37154,37247,37248 lcl-db: prevent lookup initialization when dataset is destroyed<br />
*r37155 LCL, use rectclip to set clipping rectangle instead of current path because it sometimes get drawn on next stroke (related to r37043)<br />
*r37157 Qt: fixed key events from QCalendar, now tabbing works fine.<br />
*r37160 LCL: published missing properties TCalendar.Hint and TCalendar.TabOrder.<br />
*r37167 LCL: Fix range check error in StringGrid when sorting and RowCount=FixedRows, issue [[http://bugs.freepascal.org/view.php?id=21947 21947]]<br />
*r37073 codetools: resolve expr: thisunitname.implementationenidentifier<br />
*r37078 codetools: find declaration: selfunit.implementationidentifier<br />
*r37079,r37080,r37081,r37082,r37083,r37087,r37089,r37098 codetools: getsmarthint: class variables, enum, array of, inheritance, property params and type, use unit<br />
*r37085 IDE: show compiler options: check compiler<br />
*r37086,37088 IDEIntf: removed TLazCompilerOptions.LCLWidgetType, fixed computing default LCLWidgetType on cross target OS<br />
*r37090 codetools: do not try to search in record ancestors<br />
*r37105 DBG: Watches Copy Name/Value to clipboard. Issue [[http://bugs.freepascal.org/view.php?id=0021860 0021860]]<br />
*r37106 DBG: Register Copy Name/Value to clipboard. Issue [[http://bugs.freepascal.org/view.php?id=0021860 0021860]]<br />
*r37107 DBG: Watches, added inspect/evaluate to popup<br />
*r37116 DBG: Fix a possible crash in debugger (history). Issue [[http://bugs.freepascal.org/view.php?id=0021901 0021901]]<br />
*r37195 SourceEdit: Do not access outdated tab-history entries (dangling pointers). Issue [[http://bugs.freepascal.org/view.php?id=0021939 0021939]]<br />
*r37196 SourceEdit: Only add tabs to tab-history that were accessed<br />
*r37103,r37132 codetools: nested types: Self and inherited<br />
*r37104,r37120 codetools: GetSmartHint: show anonymous arrays<br />
*r37111 IDE: Make Close button work in Components List dialog. Issue [[http://bugs.freepascal.org/view.php?id=21892 21892]],<br />
*r37118 IDE: build ide: if building fails, clear flag clean up once<br />
*r37119 IDE: when building IDE failed: restore backup<br />
*r37121,r37122 IDE: select frame: search in packages<br />
*r37130 IDE: select frame: search in packages<br />
*r37131 LCL, implements textrect clipping in Postscriptprintercanvas<br />
*r37133 SynEdit: Fix WantTabs / Change default to "True" Issue [[http://bugs.freepascal.org/view.php?id=0021904 0021904]]<br />
*r37134 SynEdit: Remove not required invalidation (paint / call to wrong Update() )<br />
*r37135 SynEdit: Remove wrong implementation of Update. Update no longer forwards to Invalidate<br />
*r37136 IpPro: Fix painting for SelectAll<br />
*r37137 IDE, IpPro: Allow copy to clipboard from hint (zeljko added because of conflict in 37345)<br />
*r37140 cody: show code node info: show complete source<br />
*r37141 SynEdit: Fixed Caret paint error (extra caret left on screen) Issue [[http://bugs.freepascal.org/view.php?id=0021924 0021924]]<br />
*r37143 IDEIntf: added TPropertyEditorHook.IsSelected<br />
*r37144 IDEIntf: TDefaultComponentEditor: always select component<br />
*r37146 IDE: if component class is missing: note about RegisterClass<br />
*r37148 Translations: Ukrainian translation cleanup<br />
*r37149 IDE: regenerated translations; updated Russian translation<br />
*r37151 cody: IDE item to create dockable IDE window<br />
*r37152 cody: new IDE window: show dialog to setup form name<br />
*r37162,r37163 IDE: TProjectFileDescriptor.DefaultResourceName: first try without appending a number, check for pascal keywords<br />
*r37164,r37165 IDE: fixed DoGetUnitRegisterInfo for virtual files<br />
*r37166 SynEdit: Fixed Caret when scrolling under older Wine (Win Emulator)[[http://bugs.freepascal.org/view.php?id=21929 21929]]<br />
*r37212 sqldb: added icon for TMySQL55Connection for fpc 2.6.1 '<br />
*r37213,r37214,r37219 codetools: do not save errors outside parser<br />
*r37215 codetools: GetSmartHint: ^, .., file of, class of<br />
*r37220 Translations: Czech IDE translation update by Martin Smat<br />
*r37224 SynEdit: Autocompletion, workaround for click on hint Issue [[http://bugs.freepascal.org/view.php?id=21952 21952]]<br />
*r37231 SynEdit: Prevent some scrolling, while selecting by mouse. Issue [[http://bugs.freepascal.org/view.php?id=0021996 0021996]]<br />
*r37232 DBG: Inspect window, improve scrolling<br />
*r37234 DBG: Improve start-up to work with bug in gdb 7.4<br />
*r37262 searching compiler: search first in dir of fpc.exe, then in PATH<br />
*r37263,r37265 codetools: improved error message on unit not found<br />
*r37264 fix setting radiogroup.itemindex under gtk2. Issue [[http://bugs.freepascal.org/view.php?id=22013 22013]]<br />
*r37267 Docs: improved build_lcl_docs robustness when working with TProcess, patch from Reinier Olislagers, bug 22000<br />
*r37273 SourceEditor: Fix crash when closing several tabs, while debugging (paused / loading line info). Maybe related to issue [[http://bugs.freepascal.org/view.php?id=22015 22015]]<br />
*r37274 Fix Crash in building "Windows" (list of open W.) Menu. Note 0059576 in Issue [[http://bugs.freepascal.org/view.php?id=22015 22015]] (not related to other parts of issue)<br />
*r37280 SQLdb: added missing tmysql55connection.png, bug 22033 '''Related to 37212 and other revisions for TMySQL55Connection'''<br />
*r37281 SynEdit: protect ProcessCommand() against early destruction by ReleaseComponent. Issue [[http://bugs.freepascal.org/view.php?id=0022035 0022035]]<br />
*r37285 IDE: make Close button work in Window Manager<br />
*r37286 Patch from bug 21651, automatically adds quotes to paths with spaces for OpenDocument in Mac OS X<br />
*r37297,r37298 SynEdit, Pas-HL: record helper, deprecated in object<br />
*r37311 Translations: Arabic IDE translation update by Mazen NEIFER<br />
*r37312 IDE: Make Help button work in Editor Window Manager, issue [[http://bugs.freepascal.org/view.php?id=21961 21961]]. (zeljko added to merge list because of conflicts in 37491)<br />
*r37325 regenerated translations; updated Russian translation<br />
*r37326 Translations: Brazilian Portuguese translation update by Marcelo B Paula, bug 22064<br />
*r37327 IDE, Code Generation options: changed wrong -Op386 option to correct -Op80386. Patch by barlone with some consistency changes, bug 22062.<br />
*r37357 Gtk2: fixed mbAll button on dialogs. Added response keys which does not exist in gtk2. issue [[http://bugs.freepascal.org/view.php?id=22083 22083]]<br />
*r37344 gtk2 intf: less hints<br />
*r37345 ipro: less hints <br />
*r37359 lazreport: German translations<br />
*r37360 cody: German translations<br />
*r37039,r37319,r37324,r37361 sqldb: German translations (zeljko added 37039,37319,37324 because of conflicts)<br />
*r37362 educationlaz: German translations<br />
*r37363 ide: German translations<br />
*r37372 lcl: don't access Items of TreeView if DragOver happens during treeview destruction<br />
*r37373 IDE: debugger options: check the resolved file, bug 22086<br />
*r37374 Qt: bypass windowmanager when showing dragimagelist.<br />
*r37375 Gtk2: do not show taskbar entry for dragimagelist.<br />
*r37376 IDE: update TUnitInfo.ResourceBaseClass on loading lfm<br />
*r37378 [Edited, includes selected lines of 37402] SourceEditor: Hide hint, when mouse moves (even if outside IDE, or IDE is not active). Issue [[http://bugs.freepascal.org/view.php?id=0022016 0022016]]<br />
*r37368 DBG: Fixed array len for 64 bit<br />
*r37369 lcl: don't crash when either DragTarget or dragged control is freed (issue [[http://bugs.freepascal.org/view.php?id=22067 22067]])<br />
*r37370 lcl: cleanup debug info<br />
*r37371 lcl: fixed a memory leak when canceling drag of dead control<br />
*r37380 SourceEdit/DBG: Ensure Codebuffer is updated before using it to add watches<br />
*r37383 IDE: TUnitInfo.fModified: do not set on get<br />
*r37384,r37401 IDE: do not set TUnitInfo.Modified when committing source editor to codetools<br />
*r37388,r37389,r37390,r37391,r37392 tests: added tests for cfgscripts, fixed unit output directory, cfgscript: fixed error message if semicolon is missing, IDE: added conditionals functions GetIDEValue, GetEnv, LCL: use IDE widgettype as default<br />
*r37397 TodoList: properly trim comment markers and convert multiline text to single line, fixes bug 22085. Based on patch by Anton.<br />
*r37400 codetools: fixed mem leak<br />
*r37418: TAChart: Fix range check using datapoint tool on a chart without series<br />
*r37440 DBG: do not set temporary stack = -1 in thread changing. This may cause errors<br />
*r37444 DBG: Watches, save "Use instance class" to config<br />
*r37449 LCL: fixed comments<br />
*r37451 Qt: fixed wrong SetCapture() under win32. Problem was passed TQtWidget handle instead of underlaying widget winID() which is native handle.<br />
*r37453 SynEdit: Fix goto bookmark and persistent block. Do not clear persistent block<br />
*r37461 lcl: TCustomForm.UpdateDockCaption: fixed repair garbage<br />
*r37463 IDE: when docked keep IDE caption<br />
*r37464 Help, DBG: New link to wiki for watch properties<br />
*r37475 codetools: TCustomCodeTool.FindLineEndOrCodeAfterPosition: fixed crash when at end of code<br />
*r37476 codetools: clear nodes behind, when linkscanner parsed only parts<br />
*r37481 IDE: fixed storing old LCLWidgeType, bug 22174<br />
*r37482 codetools: save parse error of operator, do not save errors outside parser, fixed parsing method name with generic parameter<br />
*r37483 codetools: allow keywords in program name<br />
*r37534 Qt: do not call setValue() but setPosition() so lcl gets accurate values later. issue [[http://bugs.freepascal.org/view.php?id=22187 22187]]<br />
*r37491 Help, DBG: Link to wiki for breakpoint properties (zeljko - 37312 is merged too, because of conflicts)<br />
*r37470 IDE, DBG: debug-eval hint, do not show, if selection exceeds one statement (e,g whole file selected). Part of issue [[http://bugs.freepascal.org/view.php?id=0022081 0022081]]<br />
*r37471 SourceEditor: Fix an issue with focusing an editor, that is being closed (while debugging) "no parent handle". Issue [[http://bugs.freepascal.org/view.php?id=0022015 0022015]]<br />
*r37517 SynEdit: fixed folding for "case" and "try" in certain code segments (initialization / case...else try)<br />
*r37518 SynEdit: Pas-HL: fix detection of case...else versus if...then...else<br />
*r37522 SynEdit: Pas-HL: better detection of case...else<br />
*r37623 SourceEditor: Fix (Work-around) an issue with focusing an editor, that is being closed (while debugging) "no parent handle". Issue [[http://bugs.freepascal.org/view.php?id=0022015 0022015]] // Required some parts of r37502<br />
*r37609 DBG: Avoid re-queuing of dis-assembler requests, after cancelling it. Part of issue [[http://bugs.freepascal.org/view.php?id=0022230 0022230]]<br />
*r37643 DBG: Disassembler: prevent disassembler from doing large address ranges, if gdb returns data with far away addresses. Issue [[http://bugs.freepascal.org/view.php?id=0022230 0022230]]<br />
*r37657 DBG: fixed a out of index error, in watches history<br />
*r37694 DBG: Fixed possible crash in watch evaluation (WatchValue freed while evaluating / in GetValue)<br />
*r37466 IDE: added menu item to insert MIT license text<br />
*r37407,r37474,r37492 IDE: TMainIDE.DoSourceEditorCommand: improved focus check, requires r37466<br />
*r37564 LCL: TCustomListView: reset FCacheIndex and FCacheItems before sorting list, otherwise we'll have unexpected results. issue [[http://bugs.freepascal.org/view.php?id=22218 22218]]<br />
*r37505, r37509, r37516, r37523 fixed compilation with fpc 2.7.1<br />
*r37592 lcl: fixed compilation fpc 2.7.1<br />
*r37525 TAChart: Display legend symbols even if the text is empty<br />
*r37565 TAChart: Display major axis marks at the edges of the clip range<br />
*r37576 TAChart: Fix infinite recursion when drawing chart listbox from series with Legend.Multiplicity <> lmSingle<br />
*r37588 TAChart: Include Item.Y in reordered list of TCalculatedChartSource. Update test. '''This will break old tests. Please contact me for a fix --- Ask'''<br />
*r37727 TAChart: Update to the recent version of FPVectorial<br />
*r37587 Qt: unset icon when doing internal sync after sorting. part of issue [[http://bugs.freepascal.org/view.php?id=22218 22218]]<br />
*r37620 LCL: invalidate parent preferredsize when borderspacing changed, bug 17947<br />
*r37621 LCL: clean up - invalidate in TControl.DoBorderSpacingChange no longer needed with new autosizing<br />
*r37622 lazutils: added missing file<br />
*r37624 LCL: GetClientRect: if interface has the right width,height trust the clientrect, this avoids some unneeded resizes<br />
*r37573 IDE: project inspector: add files: allow dotted unit names, bug 22209<br />
*r37619 IDE: open package dependency: try provides, issue [[http://bugs.freepascal.org/view.php?id=17960 17960]]<br />
*r37628 IDE: compiler options: disable target platform for packages<br />
*r37594 codetools: fixed Unneeded extra space in event assignment completion<br />
*r37613 codetools: property completion: add class var for class property variables<br />
*r37614 codetools: class completion: search variables in all sections, bug 22246<br />
*r37625,r37626,r37627 codetools: class completion: fixed searching var node when first is class var<br />
*r37629 codetools: fixed adding class keyword for property setter of a class property<br />
*r37630 IDE: codeexplorer: labels<br />
*r37634 IDEIntf: objectinspector: fixed painting outside paint event<br />
*r37631 codetools: no var node for anonymous record case variables<br />
*r37632 codetools: identifier completion: when creating an override hide higher visibility members<br />
*r37633 codetools: class completion: add static method modifier for setter of class property<br />
*r37636 codetools: class completion: add static method specifier for class property setter<br />
*r37635 IDE: paste component: fix renamed references<br />
*r37637,r37638,r37639 IDE: paste multiple components: fix references, lcl: LRSObjectTextToBinary: write convert list of components<br />
*r37640 IDE: paste components: update TControl.Caption<br />
*r37642 lcl: fixed LRSObjectTextToBinary toWString, issue [[http://bugs.freepascal.org/view.php?id=19650 19650]]<br />
*r37644 codetools: fixed inserting proc bodies in implementation in front of methods<br />
*r37652,r37653,r37655 codetools: using TFileStreamUTF8<br />
*r37656 IDE: using TFileStreamUTF8 and TStringListUTF8<br />
*r37663 IDE: fixed show info on --help when no stdout exists<br />
*r37689 LCL: fixing handling of special keys for TCustomEdit and TCustomMemo<br />
*r37690 codetools: forward proc completion: stay in same section<br />
*r37697 DBG: Dialogs, don't give help related commands to IDE. They will be ignored<br />
*r37698 IDE Help: add urls for dbg dialogs<br />
*r37703 lazutils: utf8pos: added optional parameter StartPos<br />
*r37704 IDE: setup dialog: show fpc source directory release version as warning instead of error<br />
*r37707 tools create deb+rpm: use 128x128 icon<br />
*r37705 SynEdit: open and close clipboard explicitly to write multiple formats.<br />
*r37714 lcl: gtk2: warn only once about liboverlay<br />
*r37711 lhelp: cleaned up paths<br />
*r37712 lhelp: clean up<br />
*r37713 lhelp: resolve macros in HelpEXE on the demand<br />
*r37715 chmhelp: using search path to search for chm files<br />
*r37716,r37717 chmhelp: added path $(LazarusDir)/docs/chm<br />
*r37718 'hmhelp: search ref.chm in docs/chm<br />
*r37726 create_lazarus_deb: added option chmhelp<br />
*r37722 DBG: Event-Log: Do not cache Options. Allow user to change options while debugging<br />
*r37596 Patch from {{MantisLink|0022231}} "fix warnings with fpc 2.6.1".--[[User:AlexVinS|AlexVinS]] 21:40, 8 June 2012 (UTC)<br />
*r37745 deb+rpm: default environmentoptions: updated to 107, removed default gdb entry<br />
*r37748,r37755 lhelp: added makefile<br />
*r37749 make bigide: build lhelp<br />
*r37753 IDE: fixed comparing file names case insensitive<br />
*r37754 lazutils: inlined UTF8CompareStr<br />
*r37760 Use Utf8CompareText instead of AnsiCompare<br />
*r37762 linux: added encoding to desktop file<br />
*r37769 Use Utf8CompareText instead of AnsiCompare<br />
*r37770 TAChart: Fix AV when clearing Series.Styles and TColorMapSeries.ColorSource properties<br />
*r37772 Use Utf8CompareText instead of AnsiCompare<br />
*r36804 win32: mark client rect as required update before WM_SIZE passing, remove DoAdjustClientRectChange - they are called inside WM_SIZE handler after the client rect is updated (fixes bug [[http://bugs.freepascal.org/view.php?id=0021724 0021724]])<br />
**Paul remarked about r36804: "Please don't merge it for at least 2 weeks". Also seems to cause problems in grids, see [http://bugs.freepascal.org/view.php?id=21790 issue [[http://bugs.freepascal.org/view.php?id=21790 21790]]].<br />
*r36993: LCL, fixed Problems setting Width, Height for TCustomGrid if ScrollBars is auto, from cobines, issue [[http://bugs.freepascal.org/view.php?id=21790 21790]]. If r36804 is merged, please merge also r36993<br />
*r37783 startlazarus: linux: adding LIBOVERLAY_SCROLLBAR=0 to avoid problems with mouse capturing<br />
*r37785 gtk2 intf: disable liboverlay by default<br />
*r37790 gtk2 intf: use setenv only on Linux<br />
*r37795: export tgz: added option to add chm files<br />
*r37796 IDE: when copying secondary configs create the primary config directory first<br />
*r37797 rpm: added option chmhelp<br />
*r37810 rpm: fixed building without chmhelp<br />
*r37811 lhelp: fixed invalid recent item path in config, added build modes default,debug<br />
*r37814 chmhelp: clean up old ipc files to prevent IDE hang<br />
*r37817-r37821 MAKE DEB<br />
*r37838 DBG: Fix handling console input<br />
*r37824 chmhelp: Fixed lazarus hanging when chmhelp pipe is leftover from an improperly closed lhelp<br />
*r37825 chmhelp; Fixed chmhelp typo (boolean error)<br />
*r37826 chmhelp: fixed bug where a new lhelp process could be started each time F1 was pressed<br />
*r37841 DBG: Pseudo-Terminal, accept tabs<br />
*r37848 lazutils: docs: fixed encoding and package name<br />
*r37849 lcl: docs: fixed encoding<br />
*r37850 ide: docs: fixed encoding<br />
*r37851 updated docs<br />
*r37853 lcl: docs: fixed some links<br />
*r37852 build_lcl_docs: using UTF-8 file functions, added option -h<br />
*r37855 build_lcl_docs: showcmd: show working directory<br />
*r37861 lcl: check if ListDataset is loading to update lookup info. Issue [[http://bugs.freepascal.org/view.php?id=22337 22337]]<br />
*r37846 win32: let TComboBox.CloseUp fire before Change (delphi compatible). Fix 22352<br />
*r37880 IDE+startlazarus: use same working directory, needed for passing relative file names as command line parameters, fixed building lcl+lazutils chm on ubuntu 12<br />
*r37866 lazutils: fixed unit names<br />
*r37868 lazutils: added fpdoc files<br />
*r37869 docs: building lazutils+lcl chm<br />
*r37885 DBG: fixed parsing sets for debug-inspector<br />
*r37906 IDE-Options / SynEdit: Fixed RightEdge visibility (Recression)<br />
*r37919 DBG: Prevent potential crash/memory-corruption in Watches<br />
*r37920 DBG: Prevent potential crash in (dbg-)OnIdle handling<br />
*r37921 DBG: Prevent build up of no longer needed commands in queue<br />
*r37945 DBG: Prevent a crash, when the selected snapshot is deleted. Cas also happen when starting the debugger, while a snapshot from previous run is active<br />
*r37950 DBG: fixed endless loop in watch eval (auto type cast) Issue [[http://bugs.freepascal.org/view.php?id=0022425 0022425]]<br />
*r37961 DBG: Disable rangechecks for certain PtrUInt casts<br />
*r37993 carbon: fixed crash of IDE when compiled with range checks on<br />
*r38006 gtk2: fixed crash on QuestionDlg<br />
*r38003 IDE: fixed showing custom project options, issue [[http://bugs.freepascal.org/view.php?id=22486 22486]]<br />
** merged ONLY main.pp<br />
*r38016 ToDoList: fixed encoding of French translation, it should be UTF-8, not ISO-8859-1. Patch by batyann811, bug 22489.<br />
*r37981,37983-37989,38001,38004-38005,38012,38017 Win Installer<br />
===== Fixed after RC1 =====<br />
*r38127 IDE, EditorOptions: Fixed finding color attribute in localized IDE<br />
*r38132 IDE: setup: after changing lazarusdir: fetch translations and translate<br />
*r38133 chmhelppkg: invoke lazbuild with --pcp parameter<br />
*r38138 examples: testall: fixed start<br />
*r38139 examples: cleandirs: error for fpc version<br />
*r38140 examples: componentstreaming: fixed typo, clean up<br />
*r38141 lazfreetype: fixed range check error, improved error message<br />
*r38142 examples: mssqlconn: requires fpc 2.6.1<br />
*r38144 examples: synguttermarks: win32 gui mode, fixed Left position<br />
*r38146 examples: tv_add_remove: updated<br />
*r38147 examples: xmlreader: added example xml<br />
*r38157 IDE: fixed saving ambiguousfileaction, bug 22573<br />
*r38158 examples: clean up<br />
*r38038 TAChart: Allow spaces in field names inside TDbChartSource.FieldY<br />
*r38168 synuni: clean up fpc options<br />
*r38170 synuni, semaphorgridlpk: clean up fpc options<br />
*r38022 SynEdit: Fixed drawing errors for frames (left frame site drawn at wrong offset)<br />
*r38145 LCL: TListView fixed "List index out of bounds" while deleting items. issue [[http://bugs.freepascal.org/view.php?id=22552 22552]]<br />
*r38150 SynEdit TSynMultiSyn: Fixed crash when deleting lines. Part of issue [[http://bugs.freepascal.org/view.php?id=0022519 0022519]]<br />
*r38151 SynEdit Highlighter: Fixed crash when scanning empty<br />
*r38152 SynEdit TSynMultiSyn: typo<br />
*r38175 SynEdit TSynMultiSyn: Fixed updating, when appending to EOT. Part of issue [[http://bugs.freepascal.org/view.php?id=0022519 0022519]]<br />
*r38205 lazaruside.fi.po: Finnish translations<br />
*r38180 Synedit: fix matching-bracket-highlight in comments (closing bracket at eol) issue [[http://bugs.freepascal.org/view.php?id=22586 22586]]<br />
*r38198 IDE: Export to html, do not enforce check for writeable. Issue [[http://bugs.freepascal.org/view.php?id=22588 22588]]<br />
*r38199 lazutils: do not use winodws W functions under Win98, issue [[http://bugs.freepascal.org/view.php?id=22596 22596]]; '''Breaks compilation on wince, because win32platform is not defined.'''<br />
*r38202 openglcontrol: win32: fixed sharing context<br />
*r38204 Synedit: fixed typo in IFDEF for fpc 2.60 bug<br />
*r38225 TAChart: Fix division by zero in zoom tools with extreme zoom ratios<br />
*r38226 TAChart: Fix hang in functional series with extreme zoom ratios<br />
*r38223 SynEdit TSynMultiSyn: Several fixes issue [[http://bugs.freepascal.org/view.php?id=0022519 0022519]]<br />
*r38232 TAChart: Add InRangeUlps utility function<br />
*r38233 TAChart: Fix disappearance of axis marks located exactly at chart bounds<br />
*r38234 TAChart: Fix crash when setting Marks.LabelFont from the Object Inspector<br />
*r38237 Examples/SynEdit: Readme and typo in comment<br />
*r38266 IDE: Tweak the layout of ManageExamplesForm<br />
*r38260 TAChart: Use correct notification when the series' source changes<br />
*r38261 TAChart: Issue change notifications when modifying TListChartSource.DataPoint property<br />
*r38285 lhelp: replace MessageBox, with Form.Modal. FIx IPC hang. issue [[http://bugs.freepascal.org/view.php?id=0022592 0022592]]<br />
<br />
===== Fixed after RC2 =====<br />
*r38293 windows installers: don't ask to overwrite the environment options in the secundary config directory from Reinier Olislagers<br />
*r38339 SynEdit TSynMultiSyn: Fix CaseSensitivity for Sheme marker. Issue [[http://bugs.freepascal.org/view.php?id=0022693 0022693]]<br />
*r37386 Remove writeln() that looks like a residual debug message. Issue [[http://bugs.freepascal.org/view.php?id=0022544 0022544]]<br />
*r38385 Translations: removed unmaintained Portuguese translation, which was outdated copy of Brazilian Portuguese one<br />
<br />
== How to merge ==<br />
The lazarus developers have decided to use the native svn merge for this branch. Other branches used the svnmerge.py script to manage the revisions to be merged.<br />
<br />
* TODO: Maybe this information should be put in a separate page.<br />
<br />
[[SVN_Migration#Merge_with_plain_svn]]<br />
=== Using TortoiseSVN ===<br />
As noted in the link above using TortoiseSVN is more or less self explaining. <br />
<br />
* TODO: add some screen shots.<br />
<br />
When committing, in the recent messages a nice commit message is available.<br />
<br />
Tested with TortoiseSVN 1.7.6, SVN 1.7.4.<br />
<br />
=== Show list of revision that can be merged ===<br />
In the lazarus fixes_1_0 directory do:<br />
svn mergeinfo ^/trunk --show-revs eligible<br />
Or if you don't have a fixes directory checked out, you can pass the URL path of the fixes branch:<br />
svn mergeinfo ^/trunk http://svn.freepascal.org/svn/lazarus/branches/fixes_1_0 --show-revs eligible<br />
<br />
=== Show list of revision that have been merged ===<br />
In the lazarus fixes_1_0 directory do:<br />
svn mergeinfo ^/trunk --show-revs merged<br />
<br />
=== Merging revisions from trunk ===<br />
To merge one or more revisions from trunk, use the svn merge command. For example to merge revision 36506 and 36510 use:<br />
svn merge -c 36506,36510 ^/trunk<br />
<br />
To generate a commit log message, use:<br />
svn log ^/trunk -c 36506,36510 > svnmerge-commit-message.txt<br />
<br />
Edit svnmerge-commit-message.txt with your favorite text editor and add a first line like:<br />
Merged revision 36506,36510 from /trunk.<br />
<br />
Commit this with:<br />
svn commit -F svnmerge-commit-message.txt<br />
<br />
=== Blocking a revision to be merged ===<br />
Sometimes you want to block a revision to be merged, i.e. you want to make sure that this revision is never merged to the fixes branch, for example, because it contains a new feature or it contains a version number change not applicable to the fixes branch, but only to trunk. To block revision 36507, use:<br />
svn merge -c 36507 --record-only ^/trunk<br />
Then you can create a log message with:<br />
svn log ^/trunk -c 36507 > svnmerge-commit-message.txt<br />
Edit svnmerge-commit-message.txt with your favorite text editor and add first line like:<br />
Blocked revision 36507 from /trunk<br />
Then commit this change:<br />
svn commit -F svnmerge-commit-message.txt</div>
Paul Ishenin
https://wiki.freepascal.org/index.php?title=Lazarus_1.0_fixes_branch&diff=62075
Lazarus 1.0 fixes branch
2012-09-26T00:19:59Z
<p>Paul Ishenin: /* Fixes for 1.0.2 */</p>
<hr />
<div>This page contains the revisions to be merged from trunk to the [http://svn.freepascal.org/svn/lazarus/branches/fixes_1_0/ Lazarus 1.0 fixes] branch.<br><br />
Release notes can be found here [http://wiki.lazarus.freepascal.org/Lazarus_0.99.0_release_notes Release notes]<br />
<br />
== Fixes for 1.0.2 ==<br />
=== Merge requests ===<br />
==== Submitted by developer / committer ====<br />
<br />
*r38802: lcl:revert 33020, 33082, 33086, part of 33089 and 33389. These changes made the hint behavior Delphi incompatible thus leading to a regression in third party control like VirtualTreeView that handles hints in CMHintShow. Retrieve parent hint recursively if hintcontrol.hint is empty' (delphi compatible)<br />
*r38816 LazUtils: improve unicode path/filename handling by Fileutil.ReadFileToString, patch from Takeda Matsuki, bug 22953<br />
<br />
==== Submitted by others ====<br />
<br />
=== Merged revisions for 1.0.2 ===<br />
*r37217,37218,37225,37239,37241,37293,37304,37316 Qt: fixed keys handling (arrow keys & enter).<br />
*r38396 LCL: ColorBox - keep FSelected in sync all the time. fixes issue [[http://bugs.freepascal.org/view.php?id=22729 22729]]<br />
*r38426 CodeBrowser: check for virtual units. Issue [[http://bugs.freepascal.org/view.php?id=0022740 0022740]]<br />
*r38428 SynEdit, MultiHighlighter: fix adding text/sections at EOL. issue [[http://bugs.freepascal.org/view.php?id=0022745 0022745]]<br />
*r38430 TAChart: Fix out-of-bounds access when drawing empty polygons and polylines<br />
*r38437 ide: project target: apply default extension even if the file has already an extension, issue [[http://bugs.freepascal.org/view.php?id=22750 22750]]<br />
*r38444 IDE: fixed crash when releasing non existing component palette select button<br />
*r38473 tests: fixed compilation<br />
*r38464 TAChart: Fix error message in TFPCanvasDrawer.RadialPie<br />
*r38486 avglvltree: setcompare: set when count=0<br />
*r38503 TAChart: Copy BaseLength in TChartArrow.Assign<br />
*r38507 EditorOpts: default for top-info-hint<br />
*r38509 Debugger: Ensure Queue is not blocked by LineInfo Request. (If a LineInfoRequest was queued the DebuggerCurrentLine could not search the stack, as commands were not immediately run)<br />
*r38519 Gtk2: fixed crash with TListView when viewstyle is vsIcon or vsSmallIcon. issue [[http://bugs.freepascal.org/view.php?id=22778 22778]]<br />
*r38520 Qt: do not propagate keyrelease event as action trigger. issue [[http://bugs.freepascal.org/view.php?id=22737 22737]]<br />
*r38531 Debugger: Workaround to fix exe-line-indicators (blue dots) at debug start<br />
*r38533 Qt: fixed header offset and getClientRect for TListView when ViewStyle=vsReport.<br />
*r38547 TAChart: Support Y NaNs in polar series ''(this will cause compilation error -- please remove 'and CloseCircle' part from the last conditional in the TPolarSeries.Draw procedure)''<br />
*r38557 TAChart: Support brush style, pen style and pen width in fpvectorial drawer<br />
*r38571 TAChart: Draw chart correctly after decrease of an axis margin<br />
*r38529,r38530,r38535,r38543,r38548: fix carbon clipping, correctly return region types on HRGN related operations, fix generic IntersectClipRect routine<br />
*r38640,r38641,r38642,r38649: various ExtTextOut fixes for Carbon and Cocoa<br />
*r38551,r38552,r38562,r38563 Carbon: various winapi compatibility functions fixes<br />
*r38518 Qt: TQtWinApi.ExtTextOut() implemented Dx param. issue [[http://bugs.freepascal.org/view.php?id=22795 22795]] (zeljko will merge, need some testing)<br />
*r38572 Qt: propagate QEvent::ShortcutOverride to parent, so stop key event if shortcut is executed. issue [[http://bugs.freepascal.org/view.php?id=22827 22827]]<br />
*r38576,38577: Qt: fixed TQtWidgetSet.FrameRect(), now it uses passed brush to draw frame border.<br />
*r38610 Qt: fixed non ascii utf8 chars in TQtWidgetSet.ExtTextOut() when we use dx param. issue [[http://bugs.freepascal.org/view.php?id=22795 22795]] (depends on merging of r38518).<br />
*r38628,38629,38630,38634: Qt: fixed clipping bugs inside TQtWidgetSet.ExtTextOut()<br />
*38670 SynEdit: Fixed past eol paint error ** Must be ported by hand **<br />
*r38584 TAChart: Copy Attachment and YIndex in TGenericChartMarks.Assign ''(this code is in TATypes unit in v1.0)''<br />
*r38589 TAChart: Do not draw lines which should be invisible in OpenGL drawer<br />
*r38607 TAChart: Workaround for issue [[http://bugs.freepascal.org/view.php?id=22850 22850]] '''see patch in the mailing list'''<br />
*r38617 TAChart: Fix GetNearestPoint returning true with no points found inside radius, issue [[http://bugs.freepascal.org/view.php?id=22854 22854]]<br />
*r38644: Qt: fixed menu flickering. issue [[http://bugs.freepascal.org/view.php?id=22872 22872]]<br />
*r38651: TAChart: Fix zero division when calling ImageToGraph before the chart is drawn<br />
*r38674 Qt: fixed crash when invalid or null handle is passed into SetCapture.<br />
*r38679 Qt: update bitmap if TMenuItem has associated ImageList and ImageIndex. issue [[http://bugs.freepascal.org/view.php?id=22896 22896]]<br />
*r38672 SynEdit: fixed delete-next-word, if caret past eol. Issue [[http://bugs.freepascal.org/view.php?id=0022890 0022890]]<br />
*r38720 LCL, DefaultTranslator: fix handling of non-ASCII path to .po file, bug 22907, patch by Vladimir Zhirov<br />
*r37398 IDE: corrected version info language list, added Ukrainian language, bug 22103<br />
*r38722 IDE: added Lithuanian to version info language list, bug 22898<br />
*r38671: carbon: fix accidental error in index<br />
*r38743: carbon: reimplement linear gradient draw using shading to support OS X < 10.5<br />
*r38636,r38637: Gtk2: fixed text clipping and text background drawing<br />
*r38758: gtk2: allocate GdkColor when we need a BkColor<br />
*r38727,r38728,r38742,r38744,r38745,r38748: gtk2: fix clipping and DC transformations<br />
*r38747: gtk2: fix FrameRect - it must use a passed brush instead of selected one<br />
*r38373 Gtk2,Qt: make ETO_OPAQUE work from TCanvas.TextOut(). issue #22719<br />
*r38769-r38772: lcl, gtk2, carbon: full implementation of GradientFill<br />
*r38673 TAChart: Ignore NaNs while calculating TCustomChartSource.ValuesTotal<br />
*r38675 TAChart: Support Marks.Attachment = maCenter in pie series<br />
*r38694: TAChart: Fix update of TListChartSource.ValuesTotal cache when adding or removing NaNs<br />
*r38710: TAChart: Fix crash when using TChartExtentLink with LinkedChart.Chart = nil<br />
*r38712: TAChart: Fix crash while replacing linked chart in TChartExtentLink<br />
*r38713: TAChart: Use NumberOr function instead of checking for NaN explicitly<br />
*r38719: TAChart: Extract TDrawFuncHelper.ForEachPoint helper procedure ''This also fixes a hang while using data point tool on extremely zoomed-in series''<br />
*r38729: TAChart: Extract TDrawFuncHelper.XRange helper function. + Fix GetNearestPoint for rotated function series.<br />
*r38733: TAChart: Fix TChartSeries.SetColor to notify all listeners and require ListSource. Add TListChartSource.SetColor<br />
*r36674: TAChart: Add AddArray, AddNull, AddX and AddY functions to TChartSeries<br />
*r38697,38698 Gtk2: set TToggleBox.ParentColor default false so it's color is consistent with TButton when eg.parent color is clRed and TToggleBox.Color=clDefault.<br />
*r38709: Qt: improved triggering of OnClick() in QEventShowToParent. issue [[http://bugs.freepascal.org/view.php?id=22872 22872]]<br />
*r38799: gtk2: implement SPI_GETWHEELSCROLLLINES. Fix a regression in VirtualTreeView wheel scroll<br />
*r38762: Gtk2: when style is drawing button then use style from button. issue #22901<br />
*r38826 Qt: TQtWidgetSet.SetScrollInfo - fixed wrong result, it must return real slider position, not value which might be out of sync with position. This fixes problems with TScrollingWinControl (TControlScrollbar).<br />
*r38735: TAChart: Fix memory leak in TDbChartSource.BeforeDraw<br />
*r38737: TAChart: Fix drawing of pie series with data from the db source<br />
*r38754: TAChart: Fix hang when changing TLineSeries.ShowPoints while drawing chart<br />
*r38757: TAChart: Display crosshair tool on mouse down<br />
*r38779: TAChart: Do not notify from TListChartSource.SetXValue and SetYValue if the value did not actually change.<br />
*r38780: TAChart: Add TBasicPointSeries.MovePoint overload for graph coordinates ''not a fix, but required for r38788''<br />
*r38788: TAChart: Support axis transformations in TCustomChartSeries.MovePoint<br />
*r38792: TAChart: Fix crash on deleting subcomponent with active property editor<br />
<br />
== Fixes for 1.0 ==<br />
=== Merged revisions for 1.0.0 ===<br />
==== Submitted by developer / committer ====<br />
*r36506 LazReport, fix barcode dialog localization (Jesus)<br />
*r36508 Updated Japanese translation<br />
*r36509 Window Column, store pointer to resourcestring<br />
*r36510 LazReport, fix barcode addin when TfrBarCodeObject is not yet instantiated (in this case barcode editor defaults to memo view.<br />
*r36511 DividerBevel: implemented Transparent.<br />
*r36514 IDE: moved macros save/saveall to source editor<br />
*r36515 IDE: update macro descriptions after translating resource strings<br />
*r36516 IDE: trim TLazPackageGraph.GetFallbackOutputDir<br />
*r36517 IDE: check if package needs rebuild: switch to fall back directory: update compiler params<br />
*r36518 IDE: install/uninstall package dialog: fixed icons, added info about current state<br />
*r36523,r36530 IDE: Export as HTML<br />
*r36526 CodeTemplate: Improve final caret pos, if tmpl does not specify<br />
*r36527 CodeTemplate: allow tab to trigger / selection to ignore. issue [[http://bugs.freepascal.org/view.php?id=0017631 0017631]]<br />
*r36528 SynEdit: Template(Syncro) fix invalidation<br />
*r36529 IDE: Printing: break long lines. Issue [[http://bugs.freepascal.org/view.php?id=0013479 0013479]]; <br />
*r36547 IDE: Printing: break long lines. Fix Utf8. Update for rev 36529<br />
*r36531 LazReport: fixed buttonpanel localization in BarCode editor dialog<br />
*r36533 IDE: clean up of unused resourcestrings<br />
*r36534, r36536, r36553, r36583, r36646 regenerated translations; updated Russian translation<br />
*r36535 IDE: more clean up of unused resourcestrings<br />
*r36537 Documents LCLIntf.GetDeviceCaps<br />
*r36538 IDE: always store lazarus directory<br />
*r36539 LazReport: uppercase variable before comparing with hardcoded functions. Properly fix to 21624<br />
*r36543 IDE: setup dialog: using same file resolving as IDE<br />
*r36546 IDE: consider empty lazarusdirectory as pcp, empty fpcsrcdir as lazdir, empty testdir as lazdir<br />
*r36548 IDE: fixed note about wrong laz dir<br />
*r36549 IDE: fixed crash on find identifier references<br />
*r36551 IDE: translate descriptions of all macros<br />
*r36552 IDE: fixed editor tab position combobox items localization on Editor/Misc options page<br />
*r36556,r36557 IDE: warn if upgrading configs<br />
*r36561, 36562, 36563, 36566: Improve Options/Keymap<br />
*r36565 LCL: Prevent TShape.stRectangle disappearing with certain Height/Width and Pen.Width values.<br />
*r36567,r36568,r36569 IDE: show downgrade warning<br />
*r36570 lazbuild: select IDE build mode, fixed compiling with different mode<br />
*r36572 LCL: set csCaptureMouse on TToolButton, but don't send click if mouse is out of ttoolbutton on mouseup.issues [[http://bugs.freepascal.org/view.php?id=19688 19688]],[[http://bugs.freepascal.org/view.php?id=21560 21560]]<br />
*r36574 IDE: fixed saving environment on every change<br />
*r36577 LCL, TreeView: fix GetNextVisible, GetPrevVisible. Issue [[http://bugs.freepascal.org/view.php?id=21264 21264]]<br />
*r36575 IDE/Setup dialog: force taskbar button to be shown<br />
*r36584 IDE: import package list: opendialog<br />
*r36587 IDE: intial setup: fpc src dir: lazdir/fpc/fpcver/source<br />
*r36588 IDE: intial setup: fixed if no candidates found<br />
*r36589,r36590 IDE: compiler file name: search first with macros<br />
*r36591 IDE: verbose search for candidates<br />
*r36592 IDE: search fpc src relative to fpc.exe<br />
*r36594 IDE: check compiler: only run common names<br />
*r36595,r36599 IDE: use under windows as default for make the make.exe in the compiler directory<br />
*r36596 IDE,codetools: fixed ppccross,crossppc to ppcross<br />
*r36601 IDE: unify the 2 filters in KeyMapping window. Prevent a potential crash.<br />
*r36603 debian: updated patches to latest source in lazarus svn<br />
*r36608 Gtk2: do not set widget name, it's completelly unnecessary and produce unexpected behaviour if some keywords are in widget name.issue [[http://bugs.freepascal.org/view.php?id=21661 21661]].<br />
*r36613 SynEdit: Fix an issue with Scrollbars not being updated<br />
*r36617 lazbuild: build ide: replace exe on windows<br />
*r36644 IDE: improved 'Export package list' dialog localization<br />
*r36645 IDE: improved 'Package Graph Explorer' dialog localization<br />
*r36647,r36653,r36654,r36655,r36656,36668,36673 IDE: view / IDE internal / what needs building<br />
*r36648,r36650,r36651 IDE: read state file created by Makefile: fix path delimiters, checking compiled state: ignore -v,-i,-B flags, do not skip all -F<br />
*r36652 IDE: codetools options: shorter caption<br />
*r36658 regenerated translations; updated Russian translation <br />
*r36659 LCL: Refactoring. Make TCalculatorDialog.Execute more understandable by removing a "with" block.<br />
*r36661 LCL: Prevent "Test Dialog" feature of Calculator and Calendar dialogs locking the IDE, issue [[http://bugs.freepascal.org/view.php?id=21644 21644]]<br />
*r36616 SynEdit: do not include IME for WinCe<br />
*r36662 LCL: implementation of TCustomImageList.GetIcon()<br />
*r36663 In GUI strings, unify all 3 dots to have a space before them ( ...)<br />
*r36664 IDE: Use CreateAbsolutePath when switching between relative/absolute paths in AddFile dialogs (CreateAbsoluteSearchPath gives wrong output)<br />
*r36665 LCL: publish TUpDown.OnChangingEx<br />
*r36666 IDE etc.: unify 3 dots in GUI string to have a space ( ...).<br />
*r36667 translation: german: updates from Swen Heinig<br />
*r36669 updatemakefiles: write which lpk have conditionals<br />
*r36670,r36671 IDE,lazbuild: create makefile: use CPPROG instead of COPY to get the current date for Makefile.compiled under Windows<br />
*r36649,r36657,r36602,r36672,r36675,r36677,r36679,r36683,r36701,r36708,r36709 Makefiles: updated, reduced dependencies, fixed double compiles<br />
*r36676 LCL: Implement TListItem.EditCaption, issue [[http://bugs.freepascal.org/view.php?id=20295 20295]].<br />
*r36680,r36699 lazbuild: fixed crash, replaced some MessageDlg with IDEMessageDialog<br />
*r36681 IDE,lazbuild: use parsed compiler filename, make filename<br />
*r36682 IDE: debugfilename, debugsearchpath: use same function as other env vars to resolve macros, trim and find<br />
*r36686,r36688 IDE/lazbuild backup, delete the same lazarus exe on all platforms<br />
*r36694 regenerated translations; updated Russian translation<br />
*r36695 LazDataDesktop: regenerated translations; updated Russian translation<br />
*r36696 IDE: add resource strings for various windows manifest keys<br />
*r36697 fix ImageList.AddMasked() in case of source image has no mask description<br />
*r36702 IDE: TProject.TitleIsDefault: check for project+number, fix for renaming the title of a new project<br />
*r36711 Qt: enable wordwrap on TQtStaticText. issue [[http://bugs.freepascal.org/view.php?id=21697 21697]].<br />
*r36712 LCL: fixed function result<br />
*r36713,r36715 lcl: fixed TToolButton.MouseUp X,Y in boundsrect check<br />
*r36716 LCL, combination of modal form + wsMaximized style produces tiny windows on GTK2, issue [[http://bugs.freepascal.org/view.php?id=21634 21634]]<br />
*r36717 LCL: reverted changes to menus.pp from r36666 (by Paul's request)<br />
*r36718 LCL: regenerated translations<br />
*r36719, *r36826 LCL: fix range check error<br />
*r36720 LazReport: added option to ignore undefined symbols, from Luiz Americo, issue [[http://bugs.freepascal.org/view.php?id=21683 21683]]<br />
*r36723,36724 IDE,lazbuild: fixed repeated build project clean: save project state file before compiling too<br />
*r36727 lazbuild: fixed expanding --lazarusdir<br />
*r36728 make useride: pass --lazarusdir=.<br />
*r36729 Improve TStringHashList, prevents a PO file update crash. Issue [[http://bugs.freepascal.org/view.php?id=21685 21685]]<br />
*r36730 IDE: project wizard: fixed fixed size, bug 21714<br />
*r36731 lazreport: fix possible access violation by checking dataset for nil<br />
*r36732 win32: fix range check error<br />
*r36733 lazbuild: auto create ide/revision.inc if missing<br />
*r36734 Gtk2: fixed mouse capturing on native scrolling win controls (TListBox,TListView etc).issue [[http://bugs.freepascal.org/view.php?id=21713 21713]]<br />
*r36735 LCL: TToolButton: commented debugln().<br />
*r36740 lazbuild: fixed uninitialized function result, fixed checking if init failed, quick check if lazarusdir is valid.<br />
*r36741 lazutils: Patch with font collection support from Circular<br />
*r36744 examples: Adds a OpenURL/OpenDocument test<br />
*r36745 LCL: Adds the sysenvapis include files to the lpk and adds an extra safety in OpenURL for users which forget to encode spaces in filenames<br />
*r36746 IDE: fixed fixed size dialogs<br />
*r36747 IDE: sort selection: layout<br />
*r36748 IDE: added debugging for sort selection<br />
*r36749 gtk2: clean up<br />
*r36750 IDE: less debugging<br />
*r36751 IDE: jump to next/prev error: fixed direction<br />
*r36752 LCL: TTreeView: clean up<br />
*r36753 IDE: next/prev error: clear multi selection<br />
*r36754 lcl: move interface initialization of TCustomEdit from CreateWnd to InitializeWnd. Consistent with other controls and allows interfaces to check is handle is being created<br />
*r36755 IDE: Add acceleration keys and fix tab order in Project Wizard and ImageListEditor, issue [[http://bugs.freepascal.org/view.php?id=21718 21718]]<br />
*r36756 lcl: remove TCustomListBox.Loaded. ItemIndex is initialized in InitializeWnd<br />
*r36757 lcl: call inherited after setting FLines in TCustomMemo.InitializeWnd. Fix potential crash since widgetset code expect FLines be initialized <br />
*r36758 lcl: check for csDestroyingHandle in TControl.HandleObjectShouldBeVisible. Fix issue [[http://bugs.freepascal.org/view.php?id=19882 19882]]<br />
*r36759 lcl: revert 31890 since issue [[http://bugs.freepascal.org/view.php?id=19882 19882]] is properly fixed now<br />
*r36760 gtk2: less hints<br />
*r36761 gtk2: less hints<br />
*r36762 Carbon: fixed result of TWSCarbonCustomListView GetTopItem,GetViewOrigin and GetBoundingRect. issue [[http://bugs.freepascal.org/view.php?id=21733 21733]]<br />
*r36763 Carbon: added themed TComboBox drawing.Patch by David Jenkins. issue [[http://bugs.freepascal.org/view.php?id=21747 21747]]<br />
*r36764 Carbon: added themed TComboBox drawing.Patch by David Jenkins. issue [[http://bugs.freepascal.org/view.php?id=21747 21747]]<br />
*r36765 Docs: added David Jenkins to contributors list<br />
*r36766 Carbon: make carbon widget visibility in sync with lcl. Patch by David Jenkins. issue [[http://bugs.freepascal.org/view.php?id=21731 21731]]<br />
*r36767 lcl: remove Destroying and DestroyWnd calls from TCustomListBox.Destroy<br />
*r36768 lcl: cleanup TCustomListBox.Create<br />
*r36769 codetools: fixed skipping include files in skipped ifdef<br />
*r36770 gtk2: less hints<br />
*r36771 gtk2: less hints<br />
*r36772 ide: fix selection painting of debugger eventlog colors list<br />
*r36773 carbon: improved TCarbonWidgetSet.RawImage_XXXX routines.Patch by David Jenkins. issue [[http://bugs.freepascal.org/view.php?id=21743 21743]].<br />
*r36774 carbon: proper initialization of alpha channel.Patch by David Jenkins. issue [[http://bugs.freepascal.org/view.php?id=21753 21753]]<br />
*r36775 LCL: implement ClientToParent, ParentToClient based on patch of David Jenkins (issue [[http://bugs.freepascal.org/view.php?id=0021763 0021763]])<br />
*r36776 LCL: extend TThemeServices.IsDisabled, IsHot, IsPushed for teCombobox<br />
*r36777 IDE: Fix tab order and set shortcuts in Application Options frame.<br />
*r36778 LazControls: fix potential crash in TListFilterEdit and TTreeFilterEdit<br />
*r36779 GTK2: add TGtk2WidgetSet.SetDesigning to prevent Abstract method call in IDE. Issue [[http://bugs.freepascal.org/view.php?id=21773 21773]]<br />
*r36780 IDE: fix tab order in Project Save Options frame.<br />
*r36781 IDE: fix tab order in frames: Build Modes editor, Miscellaneous Options and Version Info<br />
*r36782 IDE: fix tab order in option frames: Code Generation, Compilation, Linking, Messages, Parsing.<br />
*r36783 GTK2: clean up<br />
*r36784 GTK2: clean up<br />
*r36786 Carbon: removed extra code for teComboBox, since teComboBox is supported by themes as of r36776.<br />
*r36787 gtk2: clean up<br />
*r36788 gtk2: fixed Gtk2WidgetSet.ClipboardGetData mem leak on stream write error<br />
*r36789 gtk2: removed OldCreateStatusBarPanel<br />
*r36790 gtk2: clean up<br />
*r36791 gtk2: clean up<br />
*r36794 IDE: CloseQueryIDEWindows: skip sub forms<br />
*r36795 Fix crash in dbg-console, if dbg not active. issue [[http://bugs.freepascal.org/view.php?id=21712 21712]]<br />
*r36796 SourceEdit: use softcenter for Replace prompt. Issue [[http://bugs.freepascal.org/view.php?id=0021709 0021709]]<br />
*r36797 regenerated translations; updated Russian translation<br />
*r36800 IDE: when checking if a FPC unit has changed: ignore units that have no source in the FPC sources. Needed to ignore user units reachable through fpc.cfg.<br />
*r36801 IDE: fix error message can't find unit if the ppu is in one of the loaded packages<br />
*r36803 DOCS: correct the documentation about CanFocus<br />
*r36806 LCL: clear FActiveDefaultControl on that control destruction<br />
*r36810 LCL: fix copy paste error<br />
*r36811 LCL: don't update Default, Cancel during their applying in UpdateDefaultCancel<br />
*r36812 LCL: add and ability to use own TListItems, TListItem descendants in TListView for delphi compatibility<br />
*r36821 gtk2 intf: fixed compilation FPC_FULLVERSION<20600<br />
*r36822 gtk2 intf: clean up<br />
*r36823 gtk2 intf: clean up<br />
*r36824 gtk2 intf: clean up<br />
*r36825 LCL: initialize font height with the height from DefFontData<br />
*r36852 IDE: when checking if global unit has changed, skip units in packages<br />
*r36857,36859 LCL: TControl.UpdateBaseBounds: set cfBaseBoundsValid<br />
*r36861 LCL: TCustomSplitter.SetAnchors: adapt anchors before applying<br />
*r36870 LCL: SetAlign: restore the basebounds set before changes<br />
*r36877 LCL: clean up<br />
*r36882 LCL: TControl.SetAnchors: during disabled autosize: update basebounds when changing Anchors, bug 21730<br />
*r36884 LCL: fixed sending CM_EXIT,CM_ENTER when flastfocusedcontrol was removed<br />
*r36885 LCL: constraint Width,Height to >=0<br />
*r36888 Converter: fixed 'Missing units' dialog localization, part of bug 21784<br />
*r36889,r36890 codetools: class completion: fixed gathr proc definitions<br />
*r36891 IDE: show compiling resource lines when error on compiling resources<br />
*r36892 IDE: improved message when can not find unit and unit was found in a package<br />
*r36893,r36894 IDE: messages: show debug: lines and calling resource compiler<br />
*r36895,r36896 gtk2 intf: checking for liboverlay, using value-changed instead of change-value<br />
*r36897 LCL: made TImage.DestRect public<br />
*r36899 Fix encoding errors in Japanese translation<br />
*r36900,r36901 startlazarus: fixed asking for custom or default<br />
*r36902 LCL: fixed ShowModal() when Hide() is called on modal form to be Delphi compatibile.issue [[http://bugs.freepascal.org/view.php?id=15390 15390]]<br />
*r36903 IDE: fixed read/write designinfo, bug 21804<br />
*r36904 IDE: do not save a new project where only session was modified, bug 21803<br />
*r36905 gtk2 intf: fixed TGtk2WSCustomTabControl.GetDefaultClientRect to check if gtknotebook has a page<br />
*r36906,36907 codetools: AddLocalVar: do not add hidden used unit<br />
*r36908 Qt: added TQtWidget.testAttribute() function.<br />
*r36910 DBG: Tests for environment<br />
*r36913 TAChart: Set Brush.Color before Brush.Style to work around issue [[http://bugs.freepascal.org/view.php?id=21806 21806]]<br />
*r36914: TAChart: Fix compilation of OpenGL drawer<br />
*r36924 gtk2 intf: TGtk2WSCustomTabControl.GetDefaultClientRect for TTabControl<br />
*r36925 Qt: fixed resize events of TQtTabWidget and accurate information about clientRect changes. issue [[http://bugs.freepascal.org/view.php?id=21805 21805]]<br />
*r36929 Gtk2: fixed text background drawing in TGtk2WidgetSet.ExtTextOut() when BkMode = OPAQUE.issue [[http://bugs.freepascal.org/view.php?id=19384 19384]]<br />
*r36941 Translations: Brazilian Portuguese translation update by Marcelo B Paula, bug 21818<br />
*r36938,36939 LazReport, lift up to preview window improving layout and functionality, from Julio Jimenez B.<br />
*r36942 LazReport, avoid hiding text at some zoom values due small differences in text height calc (DONT MERGE YET, NEEDS MORE TESTING)<br />
*r36943 IDE: msg quickfix for cant find unit: add position<br />
*r36956 carbon: added FHasPaint variable to TCarbonWidget to allow owner draw.issue [[http://bugs.freepascal.org/view.php?id=21744 21744]]<br />
*r36957 carbon: added ScrollRect() routine to TCarbonWidget. issue [[http://bugs.freepascal.org/view.php?id=21741 21741]]<br />
*r36958 carbon: set FTabIndex instead ATabIndex variable in TCarbonTabsControl.SetPageIndex. patch by David Jenkins.issue [[http://bugs.freepascal.org/view.php?id=21728 21728]]<br />
*r36959 carbon: optimized caret drawing to not update whole widget.patch by David Jenkins. issue [[http://bugs.freepascal.org/view.php?id=21768 21768]]<br />
*r36960 carbon: fixed order of check width > height in TCarbonTrackbar.patch by David Jenkins. issue [[http://bugs.freepascal.org/view.php?id=21740 21740]]<br />
*r36961 carbon: implemented autosizing for listview / databrowser columns.patch by David Jenkins. issue [[http://bugs.freepascal.org/view.php?id=21745 21745]]<br />
*r36962 carbon: fixed possible bad loop in TCarbonSpinEdit.CreateWidget.Patch by David Jenkins.issue [[http://bugs.freepascal.org/view.php?id=21732 21732]]<br />
*r36965 IDEIntf: fixed typo<br />
*r36967 Gtk2: fixed retreiving font name from TGtk2WidgetSet.GetObject() when font is default. issue [[http://bugs.freepascal.org/view.php?id=21828 21828]]<br />
*r36968 codetools: JumpToPublishedMethodBody: raise error<br />
*r36969 codetools: fixed FindMethodNodeInImplementation for program<br />
*r36971 tests: codetools: added test for duplicate sections, parsing library<br />
*r36972 codetools: fixed reparsing initialization, finalization, begin<br />
*r36973 codetools: fixed treating initialization, finalization as statement<br />
*r36974,r36975,r36976,36977,36978 codetools: fixed find declaration in library starting in initialization, bug 21832<br />
*r36981,r36982 codetools: identifier completion: fixed continue searching<br />
*r36979 Updated Japanese translation by Haruyuki Fujimaki<br />
*r36980 Fix japanese encoding<br />
*r36983,r36984 codetools: identifier completion: some keywords for library, program<br />
*r36985 codetools: identifier completion: keyword initialization for library, issue [[http://bugs.freepascal.org/view.php?id=21839 21839]]<br />
*r36986 Updated Japanese translation by Haruyuki Fujimaki<br />
*r36990 codetools: identifier list: skip identifier at cursor<br />
*r36991,r36992 IDE: identifier completion: add do after with, issue [[http://bugs.freepascal.org/view.php?id=16850 16850]]<br />
*r36996,r36997,r36999,r37013,r37014,r37015 runtests: fixed compilation, added some tests<br />
*r37012,r37011,r37009,r37008,r37007,r37006,r37005,r37004,r37003,r37002,r37000 carbon interface: clean up<br />
*r37020 IDE: recent/history lists: replaced case sensitive comparison with three types<br />
*r37021 docking: update modified flags<br />
*r37022 codetools: fixed uninitialized result<br />
*r37025 IDE: use unit dialog: check for syntax errors<br />
*r37026,r37027 DBG: Prepare for different line endings. / Accept different line endings (#10, #13, #10#13, #13#10) issue [[http://bugs.freepascal.org/view.php?id=0021834 0021834]].<br />
*r37029 Gtk2: fixed drawing of text with solid brush. issue [[http://bugs.freepascal.org/view.php?id=21863 21863]]<br />
*r37031 Gtk2: do not draw text background if colormap isn't assigned. Second part of issue [[http://bugs.freepascal.org/view.php?id=21863 21863]].<br />
*r37032 gtk2: clean up old mouse capture<br />
*r37033 gtk2: fixed releasecapture<br />
*r37034 gtk2: verbosity for ubuntu liboverlay mouse capture bug<br />
*r37038 sqldb: Enable mssqlconnection for fpc >= 2.6.1 (patch from Reinier Olilagers, bug 21867) - added because creates conflicts with later sqldb merges<br />
*r37040: TAChart: Workaround for TDbChartSource referring to the dataset with Filtered := true<br />
*r37043 LCL, fix TPostScriptPrinterCanvas.ClipRect is empty-rect until explicitly set by user, patch from Joachim Paepke, issue [[http://bugs.freepascal.org/view.php?id=21027 21027]]<br />
*r37051 Translations: Ukrainian translation update by Igor Paliychuk<br />
*r37052 regenerated translations; updated Russian translation<br />
*r37053 LCL: fixed compilation for fpc 2.7.1<br />
*r37054,37055,37057 set TDBLookup.FListLink.DataSource dynamically to FListSource or a local datasource. Issue [[http://bugs.freepascal.org/view.php?id=15410 15410]]<br />
*r37067 LCL: fixed visibility of implemented interfaces<br />
*r37069 simple deb: using make bigide, updated list of tools<br />
*r37070 openglcontrol: fixed mem leak, issue [[http://bugs.freepascal.org/view.php?id=21597 21597]]<br />
*r37071 codetools: identifier completion: unit name of self<br />
*r37076 gtk2: clean up<br />
*r37077 IDE: clean up<br />
*r37092 LCL: fixed compilation for fpc 2.7.1<br />
*r37093 DBG: Testcase: fixed reading env-options<br />
*r37095 SynEdit: fix crash in overview gutter creation. Issue [[http://bugs.freepascal.org/view.php?id=0021887 0021887]]<br />
*r37096 SynEdit: Do not offer OverviewGutter in Gutter-parts designer<br />
*r37101 lazreport: fixed compilation with fpc 2.7.1, new TBookMark<br />
*r37102 lazreport: clean up<br />
*r37112,r37113 SynEdit: highlight class "helper". Fix wrong highlight of "sealed" Issue [[http://bugs.freepascal.org/view.php?id=0021812 0021812]]<br />
*r37115 openglcontrol: fixed mem leak, issue [[http://bugs.freepascal.org/view.php?id=21597 21597]]<br />
*r37126 LCL: Publish some TCheckGroup properties.<br />
*r37129 gtk2: clean up<br />
*r37154,37247,37248 lcl-db: prevent lookup initialization when dataset is destroyed<br />
*r37155 LCL, use rectclip to set clipping rectangle instead of current path because it sometimes get drawn on next stroke (related to r37043)<br />
*r37157 Qt: fixed key events from QCalendar, now tabbing works fine.<br />
*r37160 LCL: published missing properties TCalendar.Hint and TCalendar.TabOrder.<br />
*r37167 LCL: Fix range check error in StringGrid when sorting and RowCount=FixedRows, issue [[http://bugs.freepascal.org/view.php?id=21947 21947]]<br />
*r37073 codetools: resolve expr: thisunitname.implementationenidentifier<br />
*r37078 codetools: find declaration: selfunit.implementationidentifier<br />
*r37079,r37080,r37081,r37082,r37083,r37087,r37089,r37098 codetools: getsmarthint: class variables, enum, array of, inheritance, property params and type, use unit<br />
*r37085 IDE: show compiler options: check compiler<br />
*r37086,37088 IDEIntf: removed TLazCompilerOptions.LCLWidgetType, fixed computing default LCLWidgetType on cross target OS<br />
*r37090 codetools: do not try to search in record ancestors<br />
*r37105 DBG: Watches Copy Name/Value to clipboard. Issue [[http://bugs.freepascal.org/view.php?id=0021860 0021860]]<br />
*r37106 DBG: Register Copy Name/Value to clipboard. Issue [[http://bugs.freepascal.org/view.php?id=0021860 0021860]]<br />
*r37107 DBG: Watches, added inspect/evaluate to popup<br />
*r37116 DBG: Fix a possible crash in debugger (history). Issue [[http://bugs.freepascal.org/view.php?id=0021901 0021901]]<br />
*r37195 SourceEdit: Do not access outdated tab-history entries (dangling pointers). Issue [[http://bugs.freepascal.org/view.php?id=0021939 0021939]]<br />
*r37196 SourceEdit: Only add tabs to tab-history that were accessed<br />
*r37103,r37132 codetools: nested types: Self and inherited<br />
*r37104,r37120 codetools: GetSmartHint: show anonymous arrays<br />
*r37111 IDE: Make Close button work in Components List dialog. Issue [[http://bugs.freepascal.org/view.php?id=21892 21892]],<br />
*r37118 IDE: build ide: if building fails, clear flag clean up once<br />
*r37119 IDE: when building IDE failed: restore backup<br />
*r37121,r37122 IDE: select frame: search in packages<br />
*r37130 IDE: select frame: search in packages<br />
*r37131 LCL, implements textrect clipping in Postscriptprintercanvas<br />
*r37133 SynEdit: Fix WantTabs / Change default to "True" Issue [[http://bugs.freepascal.org/view.php?id=0021904 0021904]]<br />
*r37134 SynEdit: Remove not required invalidation (paint / call to wrong Update() )<br />
*r37135 SynEdit: Remove wrong implementation of Update. Update no longer forwards to Invalidate<br />
*r37136 IpPro: Fix painting for SelectAll<br />
*r37137 IDE, IpPro: Allow copy to clipboard from hint (zeljko added because of conflict in 37345)<br />
*r37140 cody: show code node info: show complete source<br />
*r37141 SynEdit: Fixed Caret paint error (extra caret left on screen) Issue [[http://bugs.freepascal.org/view.php?id=0021924 0021924]]<br />
*r37143 IDEIntf: added TPropertyEditorHook.IsSelected<br />
*r37144 IDEIntf: TDefaultComponentEditor: always select component<br />
*r37146 IDE: if component class is missing: note about RegisterClass<br />
*r37148 Translations: Ukrainian translation cleanup<br />
*r37149 IDE: regenerated translations; updated Russian translation<br />
*r37151 cody: IDE item to create dockable IDE window<br />
*r37152 cody: new IDE window: show dialog to setup form name<br />
*r37162,r37163 IDE: TProjectFileDescriptor.DefaultResourceName: first try without appending a number, check for pascal keywords<br />
*r37164,r37165 IDE: fixed DoGetUnitRegisterInfo for virtual files<br />
*r37166 SynEdit: Fixed Caret when scrolling under older Wine (Win Emulator)[[http://bugs.freepascal.org/view.php?id=21929 21929]]<br />
*r37212 sqldb: added icon for TMySQL55Connection for fpc 2.6.1 '<br />
*r37213,r37214,r37219 codetools: do not save errors outside parser<br />
*r37215 codetools: GetSmartHint: ^, .., file of, class of<br />
*r37220 Translations: Czech IDE translation update by Martin Smat<br />
*r37224 SynEdit: Autocompletion, workaround for click on hint Issue [[http://bugs.freepascal.org/view.php?id=21952 21952]]<br />
*r37231 SynEdit: Prevent some scrolling, while selecting by mouse. Issue [[http://bugs.freepascal.org/view.php?id=0021996 0021996]]<br />
*r37232 DBG: Inspect window, improve scrolling<br />
*r37234 DBG: Improve start-up to work with bug in gdb 7.4<br />
*r37262 searching compiler: search first in dir of fpc.exe, then in PATH<br />
*r37263,r37265 codetools: improved error message on unit not found<br />
*r37264 fix setting radiogroup.itemindex under gtk2. Issue [[http://bugs.freepascal.org/view.php?id=22013 22013]]<br />
*r37267 Docs: improved build_lcl_docs robustness when working with TProcess, patch from Reinier Olislagers, bug 22000<br />
*r37273 SourceEditor: Fix crash when closing several tabs, while debugging (paused / loading line info). Maybe related to issue [[http://bugs.freepascal.org/view.php?id=22015 22015]]<br />
*r37274 Fix Crash in building "Windows" (list of open W.) Menu. Note 0059576 in Issue [[http://bugs.freepascal.org/view.php?id=22015 22015]] (not related to other parts of issue)<br />
*r37280 SQLdb: added missing tmysql55connection.png, bug 22033 '''Related to 37212 and other revisions for TMySQL55Connection'''<br />
*r37281 SynEdit: protect ProcessCommand() against early destruction by ReleaseComponent. Issue [[http://bugs.freepascal.org/view.php?id=0022035 0022035]]<br />
*r37285 IDE: make Close button work in Window Manager<br />
*r37286 Patch from bug 21651, automatically adds quotes to paths with spaces for OpenDocument in Mac OS X<br />
*r37297,r37298 SynEdit, Pas-HL: record helper, deprecated in object<br />
*r37311 Translations: Arabic IDE translation update by Mazen NEIFER<br />
*r37312 IDE: Make Help button work in Editor Window Manager, issue [[http://bugs.freepascal.org/view.php?id=21961 21961]]. (zeljko added to merge list because of conflicts in 37491)<br />
*r37325 regenerated translations; updated Russian translation<br />
*r37326 Translations: Brazilian Portuguese translation update by Marcelo B Paula, bug 22064<br />
*r37327 IDE, Code Generation options: changed wrong -Op386 option to correct -Op80386. Patch by barlone with some consistency changes, bug 22062.<br />
*r37357 Gtk2: fixed mbAll button on dialogs. Added response keys which does not exist in gtk2. issue [[http://bugs.freepascal.org/view.php?id=22083 22083]]<br />
*r37344 gtk2 intf: less hints<br />
*r37345 ipro: less hints <br />
*r37359 lazreport: German translations<br />
*r37360 cody: German translations<br />
*r37039,r37319,r37324,r37361 sqldb: German translations (zeljko added 37039,37319,37324 because of conflicts)<br />
*r37362 educationlaz: German translations<br />
*r37363 ide: German translations<br />
*r37372 lcl: don't access Items of TreeView if DragOver happens during treeview destruction<br />
*r37373 IDE: debugger options: check the resolved file, bug 22086<br />
*r37374 Qt: bypass windowmanager when showing dragimagelist.<br />
*r37375 Gtk2: do not show taskbar entry for dragimagelist.<br />
*r37376 IDE: update TUnitInfo.ResourceBaseClass on loading lfm<br />
*r37378 [Edited, includes selected lines of 37402] SourceEditor: Hide hint, when mouse moves (even if outside IDE, or IDE is not active). Issue [[http://bugs.freepascal.org/view.php?id=0022016 0022016]]<br />
*r37368 DBG: Fixed array len for 64 bit<br />
*r37369 lcl: don't crash when either DragTarget or dragged control is freed (issue [[http://bugs.freepascal.org/view.php?id=22067 22067]])<br />
*r37370 lcl: cleanup debug info<br />
*r37371 lcl: fixed a memory leak when canceling drag of dead control<br />
*r37380 SourceEdit/DBG: Ensure Codebuffer is updated before using it to add watches<br />
*r37383 IDE: TUnitInfo.fModified: do not set on get<br />
*r37384,r37401 IDE: do not set TUnitInfo.Modified when committing source editor to codetools<br />
*r37388,r37389,r37390,r37391,r37392 tests: added tests for cfgscripts, fixed unit output directory, cfgscript: fixed error message if semicolon is missing, IDE: added conditionals functions GetIDEValue, GetEnv, LCL: use IDE widgettype as default<br />
*r37397 TodoList: properly trim comment markers and convert multiline text to single line, fixes bug 22085. Based on patch by Anton.<br />
*r37400 codetools: fixed mem leak<br />
*r37418: TAChart: Fix range check using datapoint tool on a chart without series<br />
*r37440 DBG: do not set temporary stack = -1 in thread changing. This may cause errors<br />
*r37444 DBG: Watches, save "Use instance class" to config<br />
*r37449 LCL: fixed comments<br />
*r37451 Qt: fixed wrong SetCapture() under win32. Problem was passed TQtWidget handle instead of underlaying widget winID() which is native handle.<br />
*r37453 SynEdit: Fix goto bookmark and persistent block. Do not clear persistent block<br />
*r37461 lcl: TCustomForm.UpdateDockCaption: fixed repair garbage<br />
*r37463 IDE: when docked keep IDE caption<br />
*r37464 Help, DBG: New link to wiki for watch properties<br />
*r37475 codetools: TCustomCodeTool.FindLineEndOrCodeAfterPosition: fixed crash when at end of code<br />
*r37476 codetools: clear nodes behind, when linkscanner parsed only parts<br />
*r37481 IDE: fixed storing old LCLWidgeType, bug 22174<br />
*r37482 codetools: save parse error of operator, do not save errors outside parser, fixed parsing method name with generic parameter<br />
*r37483 codetools: allow keywords in program name<br />
*r37534 Qt: do not call setValue() but setPosition() so lcl gets accurate values later. issue [[http://bugs.freepascal.org/view.php?id=22187 22187]]<br />
*r37491 Help, DBG: Link to wiki for breakpoint properties (zeljko - 37312 is merged too, because of conflicts)<br />
*r37470 IDE, DBG: debug-eval hint, do not show, if selection exceeds one statement (e,g whole file selected). Part of issue [[http://bugs.freepascal.org/view.php?id=0022081 0022081]]<br />
*r37471 SourceEditor: Fix an issue with focusing an editor, that is being closed (while debugging) "no parent handle". Issue [[http://bugs.freepascal.org/view.php?id=0022015 0022015]]<br />
*r37517 SynEdit: fixed folding for "case" and "try" in certain code segments (initialization / case...else try)<br />
*r37518 SynEdit: Pas-HL: fix detection of case...else versus if...then...else<br />
*r37522 SynEdit: Pas-HL: better detection of case...else<br />
*r37623 SourceEditor: Fix (Work-around) an issue with focusing an editor, that is being closed (while debugging) "no parent handle". Issue [[http://bugs.freepascal.org/view.php?id=0022015 0022015]] // Required some parts of r37502<br />
*r37609 DBG: Avoid re-queuing of dis-assembler requests, after cancelling it. Part of issue [[http://bugs.freepascal.org/view.php?id=0022230 0022230]]<br />
*r37643 DBG: Disassembler: prevent disassembler from doing large address ranges, if gdb returns data with far away addresses. Issue [[http://bugs.freepascal.org/view.php?id=0022230 0022230]]<br />
*r37657 DBG: fixed a out of index error, in watches history<br />
*r37694 DBG: Fixed possible crash in watch evaluation (WatchValue freed while evaluating / in GetValue)<br />
*r37466 IDE: added menu item to insert MIT license text<br />
*r37407,r37474,r37492 IDE: TMainIDE.DoSourceEditorCommand: improved focus check, requires r37466<br />
*r37564 LCL: TCustomListView: reset FCacheIndex and FCacheItems before sorting list, otherwise we'll have unexpected results. issue [[http://bugs.freepascal.org/view.php?id=22218 22218]]<br />
*r37505, r37509, r37516, r37523 fixed compilation with fpc 2.7.1<br />
*r37592 lcl: fixed compilation fpc 2.7.1<br />
*r37525 TAChart: Display legend symbols even if the text is empty<br />
*r37565 TAChart: Display major axis marks at the edges of the clip range<br />
*r37576 TAChart: Fix infinite recursion when drawing chart listbox from series with Legend.Multiplicity <> lmSingle<br />
*r37588 TAChart: Include Item.Y in reordered list of TCalculatedChartSource. Update test. '''This will break old tests. Please contact me for a fix --- Ask'''<br />
*r37727 TAChart: Update to the recent version of FPVectorial<br />
*r37587 Qt: unset icon when doing internal sync after sorting. part of issue [[http://bugs.freepascal.org/view.php?id=22218 22218]]<br />
*r37620 LCL: invalidate parent preferredsize when borderspacing changed, bug 17947<br />
*r37621 LCL: clean up - invalidate in TControl.DoBorderSpacingChange no longer needed with new autosizing<br />
*r37622 lazutils: added missing file<br />
*r37624 LCL: GetClientRect: if interface has the right width,height trust the clientrect, this avoids some unneeded resizes<br />
*r37573 IDE: project inspector: add files: allow dotted unit names, bug 22209<br />
*r37619 IDE: open package dependency: try provides, issue [[http://bugs.freepascal.org/view.php?id=17960 17960]]<br />
*r37628 IDE: compiler options: disable target platform for packages<br />
*r37594 codetools: fixed Unneeded extra space in event assignment completion<br />
*r37613 codetools: property completion: add class var for class property variables<br />
*r37614 codetools: class completion: search variables in all sections, bug 22246<br />
*r37625,r37626,r37627 codetools: class completion: fixed searching var node when first is class var<br />
*r37629 codetools: fixed adding class keyword for property setter of a class property<br />
*r37630 IDE: codeexplorer: labels<br />
*r37634 IDEIntf: objectinspector: fixed painting outside paint event<br />
*r37631 codetools: no var node for anonymous record case variables<br />
*r37632 codetools: identifier completion: when creating an override hide higher visibility members<br />
*r37633 codetools: class completion: add static method modifier for setter of class property<br />
*r37636 codetools: class completion: add static method specifier for class property setter<br />
*r37635 IDE: paste component: fix renamed references<br />
*r37637,r37638,r37639 IDE: paste multiple components: fix references, lcl: LRSObjectTextToBinary: write convert list of components<br />
*r37640 IDE: paste components: update TControl.Caption<br />
*r37642 lcl: fixed LRSObjectTextToBinary toWString, issue [[http://bugs.freepascal.org/view.php?id=19650 19650]]<br />
*r37644 codetools: fixed inserting proc bodies in implementation in front of methods<br />
*r37652,r37653,r37655 codetools: using TFileStreamUTF8<br />
*r37656 IDE: using TFileStreamUTF8 and TStringListUTF8<br />
*r37663 IDE: fixed show info on --help when no stdout exists<br />
*r37689 LCL: fixing handling of special keys for TCustomEdit and TCustomMemo<br />
*r37690 codetools: forward proc completion: stay in same section<br />
*r37697 DBG: Dialogs, don't give help related commands to IDE. They will be ignored<br />
*r37698 IDE Help: add urls for dbg dialogs<br />
*r37703 lazutils: utf8pos: added optional parameter StartPos<br />
*r37704 IDE: setup dialog: show fpc source directory release version as warning instead of error<br />
*r37707 tools create deb+rpm: use 128x128 icon<br />
*r37705 SynEdit: open and close clipboard explicitly to write multiple formats.<br />
*r37714 lcl: gtk2: warn only once about liboverlay<br />
*r37711 lhelp: cleaned up paths<br />
*r37712 lhelp: clean up<br />
*r37713 lhelp: resolve macros in HelpEXE on the demand<br />
*r37715 chmhelp: using search path to search for chm files<br />
*r37716,r37717 chmhelp: added path $(LazarusDir)/docs/chm<br />
*r37718 'hmhelp: search ref.chm in docs/chm<br />
*r37726 create_lazarus_deb: added option chmhelp<br />
*r37722 DBG: Event-Log: Do not cache Options. Allow user to change options while debugging<br />
*r37596 Patch from {{MantisLink|0022231}} "fix warnings with fpc 2.6.1".--[[User:AlexVinS|AlexVinS]] 21:40, 8 June 2012 (UTC)<br />
*r37745 deb+rpm: default environmentoptions: updated to 107, removed default gdb entry<br />
*r37748,r37755 lhelp: added makefile<br />
*r37749 make bigide: build lhelp<br />
*r37753 IDE: fixed comparing file names case insensitive<br />
*r37754 lazutils: inlined UTF8CompareStr<br />
*r37760 Use Utf8CompareText instead of AnsiCompare<br />
*r37762 linux: added encoding to desktop file<br />
*r37769 Use Utf8CompareText instead of AnsiCompare<br />
*r37770 TAChart: Fix AV when clearing Series.Styles and TColorMapSeries.ColorSource properties<br />
*r37772 Use Utf8CompareText instead of AnsiCompare<br />
*r36804 win32: mark client rect as required update before WM_SIZE passing, remove DoAdjustClientRectChange - they are called inside WM_SIZE handler after the client rect is updated (fixes bug [[http://bugs.freepascal.org/view.php?id=0021724 0021724]])<br />
**Paul remarked about r36804: "Please don't merge it for at least 2 weeks". Also seems to cause problems in grids, see [http://bugs.freepascal.org/view.php?id=21790 issue [[http://bugs.freepascal.org/view.php?id=21790 21790]]].<br />
*r36993: LCL, fixed Problems setting Width, Height for TCustomGrid if ScrollBars is auto, from cobines, issue [[http://bugs.freepascal.org/view.php?id=21790 21790]]. If r36804 is merged, please merge also r36993<br />
*r37783 startlazarus: linux: adding LIBOVERLAY_SCROLLBAR=0 to avoid problems with mouse capturing<br />
*r37785 gtk2 intf: disable liboverlay by default<br />
*r37790 gtk2 intf: use setenv only on Linux<br />
*r37795: export tgz: added option to add chm files<br />
*r37796 IDE: when copying secondary configs create the primary config directory first<br />
*r37797 rpm: added option chmhelp<br />
*r37810 rpm: fixed building without chmhelp<br />
*r37811 lhelp: fixed invalid recent item path in config, added build modes default,debug<br />
*r37814 chmhelp: clean up old ipc files to prevent IDE hang<br />
*r37817-r37821 MAKE DEB<br />
*r37838 DBG: Fix handling console input<br />
*r37824 chmhelp: Fixed lazarus hanging when chmhelp pipe is leftover from an improperly closed lhelp<br />
*r37825 chmhelp; Fixed chmhelp typo (boolean error)<br />
*r37826 chmhelp: fixed bug where a new lhelp process could be started each time F1 was pressed<br />
*r37841 DBG: Pseudo-Terminal, accept tabs<br />
*r37848 lazutils: docs: fixed encoding and package name<br />
*r37849 lcl: docs: fixed encoding<br />
*r37850 ide: docs: fixed encoding<br />
*r37851 updated docs<br />
*r37853 lcl: docs: fixed some links<br />
*r37852 build_lcl_docs: using UTF-8 file functions, added option -h<br />
*r37855 build_lcl_docs: showcmd: show working directory<br />
*r37861 lcl: check if ListDataset is loading to update lookup info. Issue [[http://bugs.freepascal.org/view.php?id=22337 22337]]<br />
*r37846 win32: let TComboBox.CloseUp fire before Change (delphi compatible). Fix 22352<br />
*r37880 IDE+startlazarus: use same working directory, needed for passing relative file names as command line parameters, fixed building lcl+lazutils chm on ubuntu 12<br />
*r37866 lazutils: fixed unit names<br />
*r37868 lazutils: added fpdoc files<br />
*r37869 docs: building lazutils+lcl chm<br />
*r37885 DBG: fixed parsing sets for debug-inspector<br />
*r37906 IDE-Options / SynEdit: Fixed RightEdge visibility (Recression)<br />
*r37919 DBG: Prevent potential crash/memory-corruption in Watches<br />
*r37920 DBG: Prevent potential crash in (dbg-)OnIdle handling<br />
*r37921 DBG: Prevent build up of no longer needed commands in queue<br />
*r37945 DBG: Prevent a crash, when the selected snapshot is deleted. Cas also happen when starting the debugger, while a snapshot from previous run is active<br />
*r37950 DBG: fixed endless loop in watch eval (auto type cast) Issue [[http://bugs.freepascal.org/view.php?id=0022425 0022425]]<br />
*r37961 DBG: Disable rangechecks for certain PtrUInt casts<br />
*r37993 carbon: fixed crash of IDE when compiled with range checks on<br />
*r38006 gtk2: fixed crash on QuestionDlg<br />
*r38003 IDE: fixed showing custom project options, issue [[http://bugs.freepascal.org/view.php?id=22486 22486]]<br />
** merged ONLY main.pp<br />
*r38016 ToDoList: fixed encoding of French translation, it should be UTF-8, not ISO-8859-1. Patch by batyann811, bug 22489.<br />
*r37981,37983-37989,38001,38004-38005,38012,38017 Win Installer<br />
===== Fixed after RC1 =====<br />
*r38127 IDE, EditorOptions: Fixed finding color attribute in localized IDE<br />
*r38132 IDE: setup: after changing lazarusdir: fetch translations and translate<br />
*r38133 chmhelppkg: invoke lazbuild with --pcp parameter<br />
*r38138 examples: testall: fixed start<br />
*r38139 examples: cleandirs: error for fpc version<br />
*r38140 examples: componentstreaming: fixed typo, clean up<br />
*r38141 lazfreetype: fixed range check error, improved error message<br />
*r38142 examples: mssqlconn: requires fpc 2.6.1<br />
*r38144 examples: synguttermarks: win32 gui mode, fixed Left position<br />
*r38146 examples: tv_add_remove: updated<br />
*r38147 examples: xmlreader: added example xml<br />
*r38157 IDE: fixed saving ambiguousfileaction, bug 22573<br />
*r38158 examples: clean up<br />
*r38038 TAChart: Allow spaces in field names inside TDbChartSource.FieldY<br />
*r38168 synuni: clean up fpc options<br />
*r38170 synuni, semaphorgridlpk: clean up fpc options<br />
*r38022 SynEdit: Fixed drawing errors for frames (left frame site drawn at wrong offset)<br />
*r38145 LCL: TListView fixed "List index out of bounds" while deleting items. issue [[http://bugs.freepascal.org/view.php?id=22552 22552]]<br />
*r38150 SynEdit TSynMultiSyn: Fixed crash when deleting lines. Part of issue [[http://bugs.freepascal.org/view.php?id=0022519 0022519]]<br />
*r38151 SynEdit Highlighter: Fixed crash when scanning empty<br />
*r38152 SynEdit TSynMultiSyn: typo<br />
*r38175 SynEdit TSynMultiSyn: Fixed updating, when appending to EOT. Part of issue [[http://bugs.freepascal.org/view.php?id=0022519 0022519]]<br />
*r38205 lazaruside.fi.po: Finnish translations<br />
*r38180 Synedit: fix matching-bracket-highlight in comments (closing bracket at eol) issue [[http://bugs.freepascal.org/view.php?id=22586 22586]]<br />
*r38198 IDE: Export to html, do not enforce check for writeable. Issue [[http://bugs.freepascal.org/view.php?id=22588 22588]]<br />
*r38199 lazutils: do not use winodws W functions under Win98, issue [[http://bugs.freepascal.org/view.php?id=22596 22596]]; '''Breaks compilation on wince, because win32platform is not defined.'''<br />
*r38202 openglcontrol: win32: fixed sharing context<br />
*r38204 Synedit: fixed typo in IFDEF for fpc 2.60 bug<br />
*r38225 TAChart: Fix division by zero in zoom tools with extreme zoom ratios<br />
*r38226 TAChart: Fix hang in functional series with extreme zoom ratios<br />
*r38223 SynEdit TSynMultiSyn: Several fixes issue [[http://bugs.freepascal.org/view.php?id=0022519 0022519]]<br />
*r38232 TAChart: Add InRangeUlps utility function<br />
*r38233 TAChart: Fix disappearance of axis marks located exactly at chart bounds<br />
*r38234 TAChart: Fix crash when setting Marks.LabelFont from the Object Inspector<br />
*r38237 Examples/SynEdit: Readme and typo in comment<br />
*r38266 IDE: Tweak the layout of ManageExamplesForm<br />
*r38260 TAChart: Use correct notification when the series' source changes<br />
*r38261 TAChart: Issue change notifications when modifying TListChartSource.DataPoint property<br />
*r38285 lhelp: replace MessageBox, with Form.Modal. FIx IPC hang. issue [[http://bugs.freepascal.org/view.php?id=0022592 0022592]]<br />
<br />
===== Fixed after RC2 =====<br />
*r38293 windows installers: don't ask to overwrite the environment options in the secundary config directory from Reinier Olislagers<br />
*r38339 SynEdit TSynMultiSyn: Fix CaseSensitivity for Sheme marker. Issue [[http://bugs.freepascal.org/view.php?id=0022693 0022693]]<br />
*r37386 Remove writeln() that looks like a residual debug message. Issue [[http://bugs.freepascal.org/view.php?id=0022544 0022544]]<br />
*r38385 Translations: removed unmaintained Portuguese translation, which was outdated copy of Brazilian Portuguese one<br />
<br />
== How to merge ==<br />
The lazarus developers have decided to use the native svn merge for this branch. Other branches used the svnmerge.py script to manage the revisions to be merged.<br />
<br />
* TODO: Maybe this information should be put in a separate page.<br />
<br />
[[SVN_Migration#Merge_with_plain_svn]]<br />
=== Using TortoiseSVN ===<br />
As noted in the link above using TortoiseSVN is more or less self explaining. <br />
<br />
* TODO: add some screen shots.<br />
<br />
When committing, in the recent messages a nice commit message is available.<br />
<br />
Tested with TortoiseSVN 1.7.6, SVN 1.7.4.<br />
<br />
=== Show list of revision that can be merged ===<br />
In the lazarus fixes_1_0 directory do:<br />
svn mergeinfo ^/trunk --show-revs eligible<br />
Or if you don't have a fixes directory checked out, you can pass the URL path of the fixes branch:<br />
svn mergeinfo ^/trunk http://svn.freepascal.org/svn/lazarus/branches/fixes_1_0 --show-revs eligible<br />
<br />
=== Show list of revision that have been merged ===<br />
In the lazarus fixes_1_0 directory do:<br />
svn mergeinfo ^/trunk --show-revs merged<br />
<br />
=== Merging revisions from trunk ===<br />
To merge one or more revisions from trunk, use the svn merge command. For example to merge revision 36506 and 36510 use:<br />
svn merge -c 36506,36510 ^/trunk<br />
<br />
To generate a commit log message, use:<br />
svn log ^/trunk -c 36506,36510 > svnmerge-commit-message.txt<br />
<br />
Edit svnmerge-commit-message.txt with your favorite text editor and add a first line like:<br />
Merged revision 36506,36510 from /trunk.<br />
<br />
Commit this with:<br />
svn commit -F svnmerge-commit-message.txt<br />
<br />
=== Blocking a revision to be merged ===<br />
Sometimes you want to block a revision to be merged, i.e. you want to make sure that this revision is never merged to the fixes branch, for example, because it contains a new feature or it contains a version number change not applicable to the fixes branch, but only to trunk. To block revision 36507, use:<br />
svn merge -c 36507 --record-only ^/trunk<br />
Then you can create a log message with:<br />
svn log ^/trunk -c 36507 > svnmerge-commit-message.txt<br />
Edit svnmerge-commit-message.txt with your favorite text editor and add first line like:<br />
Blocked revision 36507 from /trunk<br />
Then commit this change:<br />
svn commit -F svnmerge-commit-message.txt</div>
Paul Ishenin
https://wiki.freepascal.org/index.php?title=Lazarus_1.0_fixes_branch&diff=62074
Lazarus 1.0 fixes branch
2012-09-26T00:12:44Z
<p>Paul Ishenin: /* Fixes for 1.0.2 */</p>
<hr />
<div>This page contains the revisions to be merged from trunk to the [http://svn.freepascal.org/svn/lazarus/branches/fixes_1_0/ Lazarus 1.0 fixes] branch.<br><br />
Release notes can be found here [http://wiki.lazarus.freepascal.org/Lazarus_0.99.0_release_notes Release notes]<br />
<br />
== Fixes for 1.0.2 ==<br />
=== Merge requests ===<br />
==== Submitted by developer / committer ====<br />
<br />
*r38735: TAChart: Fix memory leak in TDbChartSource.BeforeDraw<br />
*r38737: TAChart: Fix drawing of pie series with data from the db source<br />
*r38754: TAChart: Fix hang when changing TLineSeries.ShowPoints while drawing chart<br />
*r38757: TAChart: Display crosshair tool on mouse down<br />
*r38779: TAChart: Do not notify from TListChartSource.SetXValue and SetYValue if the value did not actually change.<br />
*r38780: TAChart: Add TBasicPointSeries.MovePoint overload for graph coordinates ''not a fix, but required for r38788''<br />
*r38788: TAChart: Support axis transformations in TCustomChartSeries.MovePoint<br />
*r38792: TAChart: Fix crash on deleting subcomponent with active property editor<br />
*r38802: lcl:revert 33020, 33082, 33086, part of 33089 and 33389. These changes made the hint behavior Delphi incompatible thus leading to a regression in third party control like VirtualTreeView that handles hints in CMHintShow. Retrieve parent hint recursively if hintcontrol.hint is empty' (delphi compatible)<br />
*r38816 LazUtils: improve unicode path/filename handling by Fileutil.ReadFileToString, patch from Takeda Matsuki, bug 22953<br />
<br />
==== Submitted by others ====<br />
<br />
=== Merged revisions for 1.0.2 ===<br />
*r37217,37218,37225,37239,37241,37293,37304,37316 Qt: fixed keys handling (arrow keys & enter).<br />
*r38396 LCL: ColorBox - keep FSelected in sync all the time. fixes issue [[http://bugs.freepascal.org/view.php?id=22729 22729]]<br />
*r38426 CodeBrowser: check for virtual units. Issue [[http://bugs.freepascal.org/view.php?id=0022740 0022740]]<br />
*r38428 SynEdit, MultiHighlighter: fix adding text/sections at EOL. issue [[http://bugs.freepascal.org/view.php?id=0022745 0022745]]<br />
*r38430 TAChart: Fix out-of-bounds access when drawing empty polygons and polylines<br />
*r38437 ide: project target: apply default extension even if the file has already an extension, issue [[http://bugs.freepascal.org/view.php?id=22750 22750]]<br />
*r38444 IDE: fixed crash when releasing non existing component palette select button<br />
*r38473 tests: fixed compilation<br />
*r38464 TAChart: Fix error message in TFPCanvasDrawer.RadialPie<br />
*r38486 avglvltree: setcompare: set when count=0<br />
*r38503 TAChart: Copy BaseLength in TChartArrow.Assign<br />
*r38507 EditorOpts: default for top-info-hint<br />
*r38509 Debugger: Ensure Queue is not blocked by LineInfo Request. (If a LineInfoRequest was queued the DebuggerCurrentLine could not search the stack, as commands were not immediately run)<br />
*r38519 Gtk2: fixed crash with TListView when viewstyle is vsIcon or vsSmallIcon. issue [[http://bugs.freepascal.org/view.php?id=22778 22778]]<br />
*r38520 Qt: do not propagate keyrelease event as action trigger. issue [[http://bugs.freepascal.org/view.php?id=22737 22737]]<br />
*r38531 Debugger: Workaround to fix exe-line-indicators (blue dots) at debug start<br />
*r38533 Qt: fixed header offset and getClientRect for TListView when ViewStyle=vsReport.<br />
*r38547 TAChart: Support Y NaNs in polar series ''(this will cause compilation error -- please remove 'and CloseCircle' part from the last conditional in the TPolarSeries.Draw procedure)''<br />
*r38557 TAChart: Support brush style, pen style and pen width in fpvectorial drawer<br />
*r38571 TAChart: Draw chart correctly after decrease of an axis margin<br />
*r38529,r38530,r38535,r38543,r38548: fix carbon clipping, correctly return region types on HRGN related operations, fix generic IntersectClipRect routine<br />
*r38640,r38641,r38642,r38649: various ExtTextOut fixes for Carbon and Cocoa<br />
*r38551,r38552,r38562,r38563 Carbon: various winapi compatibility functions fixes<br />
*r38518 Qt: TQtWinApi.ExtTextOut() implemented Dx param. issue [[http://bugs.freepascal.org/view.php?id=22795 22795]] (zeljko will merge, need some testing)<br />
*r38572 Qt: propagate QEvent::ShortcutOverride to parent, so stop key event if shortcut is executed. issue [[http://bugs.freepascal.org/view.php?id=22827 22827]]<br />
*r38576,38577: Qt: fixed TQtWidgetSet.FrameRect(), now it uses passed brush to draw frame border.<br />
*r38610 Qt: fixed non ascii utf8 chars in TQtWidgetSet.ExtTextOut() when we use dx param. issue [[http://bugs.freepascal.org/view.php?id=22795 22795]] (depends on merging of r38518).<br />
*r38628,38629,38630,38634: Qt: fixed clipping bugs inside TQtWidgetSet.ExtTextOut()<br />
*38670 SynEdit: Fixed past eol paint error ** Must be ported by hand **<br />
*r38584 TAChart: Copy Attachment and YIndex in TGenericChartMarks.Assign ''(this code is in TATypes unit in v1.0)''<br />
*r38589 TAChart: Do not draw lines which should be invisible in OpenGL drawer<br />
*r38607 TAChart: Workaround for issue [[http://bugs.freepascal.org/view.php?id=22850 22850]] '''see patch in the mailing list'''<br />
*r38617 TAChart: Fix GetNearestPoint returning true with no points found inside radius, issue [[http://bugs.freepascal.org/view.php?id=22854 22854]]<br />
*r38644: Qt: fixed menu flickering. issue [[http://bugs.freepascal.org/view.php?id=22872 22872]]<br />
*r38651: TAChart: Fix zero division when calling ImageToGraph before the chart is drawn<br />
*r38674 Qt: fixed crash when invalid or null handle is passed into SetCapture.<br />
*r38679 Qt: update bitmap if TMenuItem has associated ImageList and ImageIndex. issue [[http://bugs.freepascal.org/view.php?id=22896 22896]]<br />
*r38672 SynEdit: fixed delete-next-word, if caret past eol. Issue [[http://bugs.freepascal.org/view.php?id=0022890 0022890]]<br />
*r38720 LCL, DefaultTranslator: fix handling of non-ASCII path to .po file, bug 22907, patch by Vladimir Zhirov<br />
*r37398 IDE: corrected version info language list, added Ukrainian language, bug 22103<br />
*r38722 IDE: added Lithuanian to version info language list, bug 22898<br />
*r38671: carbon: fix accidental error in index<br />
*r38743: carbon: reimplement linear gradient draw using shading to support OS X < 10.5<br />
*r38636,r38637: Gtk2: fixed text clipping and text background drawing<br />
*r38758: gtk2: allocate GdkColor when we need a BkColor<br />
*r38727,r38728,r38742,r38744,r38745,r38748: gtk2: fix clipping and DC transformations<br />
*r38747: gtk2: fix FrameRect - it must use a passed brush instead of selected one<br />
*r38373 Gtk2,Qt: make ETO_OPAQUE work from TCanvas.TextOut(). issue #22719<br />
*r38769-r38772: lcl, gtk2, carbon: full implementation of GradientFill<br />
*r38673 TAChart: Ignore NaNs while calculating TCustomChartSource.ValuesTotal<br />
*r38675 TAChart: Support Marks.Attachment = maCenter in pie series<br />
*r38694: TAChart: Fix update of TListChartSource.ValuesTotal cache when adding or removing NaNs<br />
*r38710: TAChart: Fix crash when using TChartExtentLink with LinkedChart.Chart = nil<br />
*r38712: TAChart: Fix crash while replacing linked chart in TChartExtentLink<br />
*r38713: TAChart: Use NumberOr function instead of checking for NaN explicitly<br />
*r38719: TAChart: Extract TDrawFuncHelper.ForEachPoint helper procedure ''This also fixes a hang while using data point tool on extremely zoomed-in series''<br />
*r38729: TAChart: Extract TDrawFuncHelper.XRange helper function. + Fix GetNearestPoint for rotated function series.<br />
*r38733: TAChart: Fix TChartSeries.SetColor to notify all listeners and require ListSource. Add TListChartSource.SetColor<br />
*r36674: TAChart: Add AddArray, AddNull, AddX and AddY functions to TChartSeries<br />
*r38697,38698 Gtk2: set TToggleBox.ParentColor default false so it's color is consistent with TButton when eg.parent color is clRed and TToggleBox.Color=clDefault.<br />
*r38709: Qt: improved triggering of OnClick() in QEventShowToParent. issue [[http://bugs.freepascal.org/view.php?id=22872 22872]]<br />
*r38799: gtk2: implement SPI_GETWHEELSCROLLLINES. Fix a regression in VirtualTreeView wheel scroll<br />
*r38762: Gtk2: when style is drawing button then use style from button. issue #22901<br />
*r38826 Qt: TQtWidgetSet.SetScrollInfo - fixed wrong result, it must return real slider position, not value which might be out of sync with position. This fixes problems with TScrollingWinControl (TControlScrollbar).<br />
<br />
== Fixes for 1.0 ==<br />
=== Merged revisions for 1.0.0 ===<br />
==== Submitted by developer / committer ====<br />
*r36506 LazReport, fix barcode dialog localization (Jesus)<br />
*r36508 Updated Japanese translation<br />
*r36509 Window Column, store pointer to resourcestring<br />
*r36510 LazReport, fix barcode addin when TfrBarCodeObject is not yet instantiated (in this case barcode editor defaults to memo view.<br />
*r36511 DividerBevel: implemented Transparent.<br />
*r36514 IDE: moved macros save/saveall to source editor<br />
*r36515 IDE: update macro descriptions after translating resource strings<br />
*r36516 IDE: trim TLazPackageGraph.GetFallbackOutputDir<br />
*r36517 IDE: check if package needs rebuild: switch to fall back directory: update compiler params<br />
*r36518 IDE: install/uninstall package dialog: fixed icons, added info about current state<br />
*r36523,r36530 IDE: Export as HTML<br />
*r36526 CodeTemplate: Improve final caret pos, if tmpl does not specify<br />
*r36527 CodeTemplate: allow tab to trigger / selection to ignore. issue [[http://bugs.freepascal.org/view.php?id=0017631 0017631]]<br />
*r36528 SynEdit: Template(Syncro) fix invalidation<br />
*r36529 IDE: Printing: break long lines. Issue [[http://bugs.freepascal.org/view.php?id=0013479 0013479]]; <br />
*r36547 IDE: Printing: break long lines. Fix Utf8. Update for rev 36529<br />
*r36531 LazReport: fixed buttonpanel localization in BarCode editor dialog<br />
*r36533 IDE: clean up of unused resourcestrings<br />
*r36534, r36536, r36553, r36583, r36646 regenerated translations; updated Russian translation<br />
*r36535 IDE: more clean up of unused resourcestrings<br />
*r36537 Documents LCLIntf.GetDeviceCaps<br />
*r36538 IDE: always store lazarus directory<br />
*r36539 LazReport: uppercase variable before comparing with hardcoded functions. Properly fix to 21624<br />
*r36543 IDE: setup dialog: using same file resolving as IDE<br />
*r36546 IDE: consider empty lazarusdirectory as pcp, empty fpcsrcdir as lazdir, empty testdir as lazdir<br />
*r36548 IDE: fixed note about wrong laz dir<br />
*r36549 IDE: fixed crash on find identifier references<br />
*r36551 IDE: translate descriptions of all macros<br />
*r36552 IDE: fixed editor tab position combobox items localization on Editor/Misc options page<br />
*r36556,r36557 IDE: warn if upgrading configs<br />
*r36561, 36562, 36563, 36566: Improve Options/Keymap<br />
*r36565 LCL: Prevent TShape.stRectangle disappearing with certain Height/Width and Pen.Width values.<br />
*r36567,r36568,r36569 IDE: show downgrade warning<br />
*r36570 lazbuild: select IDE build mode, fixed compiling with different mode<br />
*r36572 LCL: set csCaptureMouse on TToolButton, but don't send click if mouse is out of ttoolbutton on mouseup.issues [[http://bugs.freepascal.org/view.php?id=19688 19688]],[[http://bugs.freepascal.org/view.php?id=21560 21560]]<br />
*r36574 IDE: fixed saving environment on every change<br />
*r36577 LCL, TreeView: fix GetNextVisible, GetPrevVisible. Issue [[http://bugs.freepascal.org/view.php?id=21264 21264]]<br />
*r36575 IDE/Setup dialog: force taskbar button to be shown<br />
*r36584 IDE: import package list: opendialog<br />
*r36587 IDE: intial setup: fpc src dir: lazdir/fpc/fpcver/source<br />
*r36588 IDE: intial setup: fixed if no candidates found<br />
*r36589,r36590 IDE: compiler file name: search first with macros<br />
*r36591 IDE: verbose search for candidates<br />
*r36592 IDE: search fpc src relative to fpc.exe<br />
*r36594 IDE: check compiler: only run common names<br />
*r36595,r36599 IDE: use under windows as default for make the make.exe in the compiler directory<br />
*r36596 IDE,codetools: fixed ppccross,crossppc to ppcross<br />
*r36601 IDE: unify the 2 filters in KeyMapping window. Prevent a potential crash.<br />
*r36603 debian: updated patches to latest source in lazarus svn<br />
*r36608 Gtk2: do not set widget name, it's completelly unnecessary and produce unexpected behaviour if some keywords are in widget name.issue [[http://bugs.freepascal.org/view.php?id=21661 21661]].<br />
*r36613 SynEdit: Fix an issue with Scrollbars not being updated<br />
*r36617 lazbuild: build ide: replace exe on windows<br />
*r36644 IDE: improved 'Export package list' dialog localization<br />
*r36645 IDE: improved 'Package Graph Explorer' dialog localization<br />
*r36647,r36653,r36654,r36655,r36656,36668,36673 IDE: view / IDE internal / what needs building<br />
*r36648,r36650,r36651 IDE: read state file created by Makefile: fix path delimiters, checking compiled state: ignore -v,-i,-B flags, do not skip all -F<br />
*r36652 IDE: codetools options: shorter caption<br />
*r36658 regenerated translations; updated Russian translation <br />
*r36659 LCL: Refactoring. Make TCalculatorDialog.Execute more understandable by removing a "with" block.<br />
*r36661 LCL: Prevent "Test Dialog" feature of Calculator and Calendar dialogs locking the IDE, issue [[http://bugs.freepascal.org/view.php?id=21644 21644]]<br />
*r36616 SynEdit: do not include IME for WinCe<br />
*r36662 LCL: implementation of TCustomImageList.GetIcon()<br />
*r36663 In GUI strings, unify all 3 dots to have a space before them ( ...)<br />
*r36664 IDE: Use CreateAbsolutePath when switching between relative/absolute paths in AddFile dialogs (CreateAbsoluteSearchPath gives wrong output)<br />
*r36665 LCL: publish TUpDown.OnChangingEx<br />
*r36666 IDE etc.: unify 3 dots in GUI string to have a space ( ...).<br />
*r36667 translation: german: updates from Swen Heinig<br />
*r36669 updatemakefiles: write which lpk have conditionals<br />
*r36670,r36671 IDE,lazbuild: create makefile: use CPPROG instead of COPY to get the current date for Makefile.compiled under Windows<br />
*r36649,r36657,r36602,r36672,r36675,r36677,r36679,r36683,r36701,r36708,r36709 Makefiles: updated, reduced dependencies, fixed double compiles<br />
*r36676 LCL: Implement TListItem.EditCaption, issue [[http://bugs.freepascal.org/view.php?id=20295 20295]].<br />
*r36680,r36699 lazbuild: fixed crash, replaced some MessageDlg with IDEMessageDialog<br />
*r36681 IDE,lazbuild: use parsed compiler filename, make filename<br />
*r36682 IDE: debugfilename, debugsearchpath: use same function as other env vars to resolve macros, trim and find<br />
*r36686,r36688 IDE/lazbuild backup, delete the same lazarus exe on all platforms<br />
*r36694 regenerated translations; updated Russian translation<br />
*r36695 LazDataDesktop: regenerated translations; updated Russian translation<br />
*r36696 IDE: add resource strings for various windows manifest keys<br />
*r36697 fix ImageList.AddMasked() in case of source image has no mask description<br />
*r36702 IDE: TProject.TitleIsDefault: check for project+number, fix for renaming the title of a new project<br />
*r36711 Qt: enable wordwrap on TQtStaticText. issue [[http://bugs.freepascal.org/view.php?id=21697 21697]].<br />
*r36712 LCL: fixed function result<br />
*r36713,r36715 lcl: fixed TToolButton.MouseUp X,Y in boundsrect check<br />
*r36716 LCL, combination of modal form + wsMaximized style produces tiny windows on GTK2, issue [[http://bugs.freepascal.org/view.php?id=21634 21634]]<br />
*r36717 LCL: reverted changes to menus.pp from r36666 (by Paul's request)<br />
*r36718 LCL: regenerated translations<br />
*r36719, *r36826 LCL: fix range check error<br />
*r36720 LazReport: added option to ignore undefined symbols, from Luiz Americo, issue [[http://bugs.freepascal.org/view.php?id=21683 21683]]<br />
*r36723,36724 IDE,lazbuild: fixed repeated build project clean: save project state file before compiling too<br />
*r36727 lazbuild: fixed expanding --lazarusdir<br />
*r36728 make useride: pass --lazarusdir=.<br />
*r36729 Improve TStringHashList, prevents a PO file update crash. Issue [[http://bugs.freepascal.org/view.php?id=21685 21685]]<br />
*r36730 IDE: project wizard: fixed fixed size, bug 21714<br />
*r36731 lazreport: fix possible access violation by checking dataset for nil<br />
*r36732 win32: fix range check error<br />
*r36733 lazbuild: auto create ide/revision.inc if missing<br />
*r36734 Gtk2: fixed mouse capturing on native scrolling win controls (TListBox,TListView etc).issue [[http://bugs.freepascal.org/view.php?id=21713 21713]]<br />
*r36735 LCL: TToolButton: commented debugln().<br />
*r36740 lazbuild: fixed uninitialized function result, fixed checking if init failed, quick check if lazarusdir is valid.<br />
*r36741 lazutils: Patch with font collection support from Circular<br />
*r36744 examples: Adds a OpenURL/OpenDocument test<br />
*r36745 LCL: Adds the sysenvapis include files to the lpk and adds an extra safety in OpenURL for users which forget to encode spaces in filenames<br />
*r36746 IDE: fixed fixed size dialogs<br />
*r36747 IDE: sort selection: layout<br />
*r36748 IDE: added debugging for sort selection<br />
*r36749 gtk2: clean up<br />
*r36750 IDE: less debugging<br />
*r36751 IDE: jump to next/prev error: fixed direction<br />
*r36752 LCL: TTreeView: clean up<br />
*r36753 IDE: next/prev error: clear multi selection<br />
*r36754 lcl: move interface initialization of TCustomEdit from CreateWnd to InitializeWnd. Consistent with other controls and allows interfaces to check is handle is being created<br />
*r36755 IDE: Add acceleration keys and fix tab order in Project Wizard and ImageListEditor, issue [[http://bugs.freepascal.org/view.php?id=21718 21718]]<br />
*r36756 lcl: remove TCustomListBox.Loaded. ItemIndex is initialized in InitializeWnd<br />
*r36757 lcl: call inherited after setting FLines in TCustomMemo.InitializeWnd. Fix potential crash since widgetset code expect FLines be initialized <br />
*r36758 lcl: check for csDestroyingHandle in TControl.HandleObjectShouldBeVisible. Fix issue [[http://bugs.freepascal.org/view.php?id=19882 19882]]<br />
*r36759 lcl: revert 31890 since issue [[http://bugs.freepascal.org/view.php?id=19882 19882]] is properly fixed now<br />
*r36760 gtk2: less hints<br />
*r36761 gtk2: less hints<br />
*r36762 Carbon: fixed result of TWSCarbonCustomListView GetTopItem,GetViewOrigin and GetBoundingRect. issue [[http://bugs.freepascal.org/view.php?id=21733 21733]]<br />
*r36763 Carbon: added themed TComboBox drawing.Patch by David Jenkins. issue [[http://bugs.freepascal.org/view.php?id=21747 21747]]<br />
*r36764 Carbon: added themed TComboBox drawing.Patch by David Jenkins. issue [[http://bugs.freepascal.org/view.php?id=21747 21747]]<br />
*r36765 Docs: added David Jenkins to contributors list<br />
*r36766 Carbon: make carbon widget visibility in sync with lcl. Patch by David Jenkins. issue [[http://bugs.freepascal.org/view.php?id=21731 21731]]<br />
*r36767 lcl: remove Destroying and DestroyWnd calls from TCustomListBox.Destroy<br />
*r36768 lcl: cleanup TCustomListBox.Create<br />
*r36769 codetools: fixed skipping include files in skipped ifdef<br />
*r36770 gtk2: less hints<br />
*r36771 gtk2: less hints<br />
*r36772 ide: fix selection painting of debugger eventlog colors list<br />
*r36773 carbon: improved TCarbonWidgetSet.RawImage_XXXX routines.Patch by David Jenkins. issue [[http://bugs.freepascal.org/view.php?id=21743 21743]].<br />
*r36774 carbon: proper initialization of alpha channel.Patch by David Jenkins. issue [[http://bugs.freepascal.org/view.php?id=21753 21753]]<br />
*r36775 LCL: implement ClientToParent, ParentToClient based on patch of David Jenkins (issue [[http://bugs.freepascal.org/view.php?id=0021763 0021763]])<br />
*r36776 LCL: extend TThemeServices.IsDisabled, IsHot, IsPushed for teCombobox<br />
*r36777 IDE: Fix tab order and set shortcuts in Application Options frame.<br />
*r36778 LazControls: fix potential crash in TListFilterEdit and TTreeFilterEdit<br />
*r36779 GTK2: add TGtk2WidgetSet.SetDesigning to prevent Abstract method call in IDE. Issue [[http://bugs.freepascal.org/view.php?id=21773 21773]]<br />
*r36780 IDE: fix tab order in Project Save Options frame.<br />
*r36781 IDE: fix tab order in frames: Build Modes editor, Miscellaneous Options and Version Info<br />
*r36782 IDE: fix tab order in option frames: Code Generation, Compilation, Linking, Messages, Parsing.<br />
*r36783 GTK2: clean up<br />
*r36784 GTK2: clean up<br />
*r36786 Carbon: removed extra code for teComboBox, since teComboBox is supported by themes as of r36776.<br />
*r36787 gtk2: clean up<br />
*r36788 gtk2: fixed Gtk2WidgetSet.ClipboardGetData mem leak on stream write error<br />
*r36789 gtk2: removed OldCreateStatusBarPanel<br />
*r36790 gtk2: clean up<br />
*r36791 gtk2: clean up<br />
*r36794 IDE: CloseQueryIDEWindows: skip sub forms<br />
*r36795 Fix crash in dbg-console, if dbg not active. issue [[http://bugs.freepascal.org/view.php?id=21712 21712]]<br />
*r36796 SourceEdit: use softcenter for Replace prompt. Issue [[http://bugs.freepascal.org/view.php?id=0021709 0021709]]<br />
*r36797 regenerated translations; updated Russian translation<br />
*r36800 IDE: when checking if a FPC unit has changed: ignore units that have no source in the FPC sources. Needed to ignore user units reachable through fpc.cfg.<br />
*r36801 IDE: fix error message can't find unit if the ppu is in one of the loaded packages<br />
*r36803 DOCS: correct the documentation about CanFocus<br />
*r36806 LCL: clear FActiveDefaultControl on that control destruction<br />
*r36810 LCL: fix copy paste error<br />
*r36811 LCL: don't update Default, Cancel during their applying in UpdateDefaultCancel<br />
*r36812 LCL: add and ability to use own TListItems, TListItem descendants in TListView for delphi compatibility<br />
*r36821 gtk2 intf: fixed compilation FPC_FULLVERSION<20600<br />
*r36822 gtk2 intf: clean up<br />
*r36823 gtk2 intf: clean up<br />
*r36824 gtk2 intf: clean up<br />
*r36825 LCL: initialize font height with the height from DefFontData<br />
*r36852 IDE: when checking if global unit has changed, skip units in packages<br />
*r36857,36859 LCL: TControl.UpdateBaseBounds: set cfBaseBoundsValid<br />
*r36861 LCL: TCustomSplitter.SetAnchors: adapt anchors before applying<br />
*r36870 LCL: SetAlign: restore the basebounds set before changes<br />
*r36877 LCL: clean up<br />
*r36882 LCL: TControl.SetAnchors: during disabled autosize: update basebounds when changing Anchors, bug 21730<br />
*r36884 LCL: fixed sending CM_EXIT,CM_ENTER when flastfocusedcontrol was removed<br />
*r36885 LCL: constraint Width,Height to >=0<br />
*r36888 Converter: fixed 'Missing units' dialog localization, part of bug 21784<br />
*r36889,r36890 codetools: class completion: fixed gathr proc definitions<br />
*r36891 IDE: show compiling resource lines when error on compiling resources<br />
*r36892 IDE: improved message when can not find unit and unit was found in a package<br />
*r36893,r36894 IDE: messages: show debug: lines and calling resource compiler<br />
*r36895,r36896 gtk2 intf: checking for liboverlay, using value-changed instead of change-value<br />
*r36897 LCL: made TImage.DestRect public<br />
*r36899 Fix encoding errors in Japanese translation<br />
*r36900,r36901 startlazarus: fixed asking for custom or default<br />
*r36902 LCL: fixed ShowModal() when Hide() is called on modal form to be Delphi compatibile.issue [[http://bugs.freepascal.org/view.php?id=15390 15390]]<br />
*r36903 IDE: fixed read/write designinfo, bug 21804<br />
*r36904 IDE: do not save a new project where only session was modified, bug 21803<br />
*r36905 gtk2 intf: fixed TGtk2WSCustomTabControl.GetDefaultClientRect to check if gtknotebook has a page<br />
*r36906,36907 codetools: AddLocalVar: do not add hidden used unit<br />
*r36908 Qt: added TQtWidget.testAttribute() function.<br />
*r36910 DBG: Tests for environment<br />
*r36913 TAChart: Set Brush.Color before Brush.Style to work around issue [[http://bugs.freepascal.org/view.php?id=21806 21806]]<br />
*r36914: TAChart: Fix compilation of OpenGL drawer<br />
*r36924 gtk2 intf: TGtk2WSCustomTabControl.GetDefaultClientRect for TTabControl<br />
*r36925 Qt: fixed resize events of TQtTabWidget and accurate information about clientRect changes. issue [[http://bugs.freepascal.org/view.php?id=21805 21805]]<br />
*r36929 Gtk2: fixed text background drawing in TGtk2WidgetSet.ExtTextOut() when BkMode = OPAQUE.issue [[http://bugs.freepascal.org/view.php?id=19384 19384]]<br />
*r36941 Translations: Brazilian Portuguese translation update by Marcelo B Paula, bug 21818<br />
*r36938,36939 LazReport, lift up to preview window improving layout and functionality, from Julio Jimenez B.<br />
*r36942 LazReport, avoid hiding text at some zoom values due small differences in text height calc (DONT MERGE YET, NEEDS MORE TESTING)<br />
*r36943 IDE: msg quickfix for cant find unit: add position<br />
*r36956 carbon: added FHasPaint variable to TCarbonWidget to allow owner draw.issue [[http://bugs.freepascal.org/view.php?id=21744 21744]]<br />
*r36957 carbon: added ScrollRect() routine to TCarbonWidget. issue [[http://bugs.freepascal.org/view.php?id=21741 21741]]<br />
*r36958 carbon: set FTabIndex instead ATabIndex variable in TCarbonTabsControl.SetPageIndex. patch by David Jenkins.issue [[http://bugs.freepascal.org/view.php?id=21728 21728]]<br />
*r36959 carbon: optimized caret drawing to not update whole widget.patch by David Jenkins. issue [[http://bugs.freepascal.org/view.php?id=21768 21768]]<br />
*r36960 carbon: fixed order of check width > height in TCarbonTrackbar.patch by David Jenkins. issue [[http://bugs.freepascal.org/view.php?id=21740 21740]]<br />
*r36961 carbon: implemented autosizing for listview / databrowser columns.patch by David Jenkins. issue [[http://bugs.freepascal.org/view.php?id=21745 21745]]<br />
*r36962 carbon: fixed possible bad loop in TCarbonSpinEdit.CreateWidget.Patch by David Jenkins.issue [[http://bugs.freepascal.org/view.php?id=21732 21732]]<br />
*r36965 IDEIntf: fixed typo<br />
*r36967 Gtk2: fixed retreiving font name from TGtk2WidgetSet.GetObject() when font is default. issue [[http://bugs.freepascal.org/view.php?id=21828 21828]]<br />
*r36968 codetools: JumpToPublishedMethodBody: raise error<br />
*r36969 codetools: fixed FindMethodNodeInImplementation for program<br />
*r36971 tests: codetools: added test for duplicate sections, parsing library<br />
*r36972 codetools: fixed reparsing initialization, finalization, begin<br />
*r36973 codetools: fixed treating initialization, finalization as statement<br />
*r36974,r36975,r36976,36977,36978 codetools: fixed find declaration in library starting in initialization, bug 21832<br />
*r36981,r36982 codetools: identifier completion: fixed continue searching<br />
*r36979 Updated Japanese translation by Haruyuki Fujimaki<br />
*r36980 Fix japanese encoding<br />
*r36983,r36984 codetools: identifier completion: some keywords for library, program<br />
*r36985 codetools: identifier completion: keyword initialization for library, issue [[http://bugs.freepascal.org/view.php?id=21839 21839]]<br />
*r36986 Updated Japanese translation by Haruyuki Fujimaki<br />
*r36990 codetools: identifier list: skip identifier at cursor<br />
*r36991,r36992 IDE: identifier completion: add do after with, issue [[http://bugs.freepascal.org/view.php?id=16850 16850]]<br />
*r36996,r36997,r36999,r37013,r37014,r37015 runtests: fixed compilation, added some tests<br />
*r37012,r37011,r37009,r37008,r37007,r37006,r37005,r37004,r37003,r37002,r37000 carbon interface: clean up<br />
*r37020 IDE: recent/history lists: replaced case sensitive comparison with three types<br />
*r37021 docking: update modified flags<br />
*r37022 codetools: fixed uninitialized result<br />
*r37025 IDE: use unit dialog: check for syntax errors<br />
*r37026,r37027 DBG: Prepare for different line endings. / Accept different line endings (#10, #13, #10#13, #13#10) issue [[http://bugs.freepascal.org/view.php?id=0021834 0021834]].<br />
*r37029 Gtk2: fixed drawing of text with solid brush. issue [[http://bugs.freepascal.org/view.php?id=21863 21863]]<br />
*r37031 Gtk2: do not draw text background if colormap isn't assigned. Second part of issue [[http://bugs.freepascal.org/view.php?id=21863 21863]].<br />
*r37032 gtk2: clean up old mouse capture<br />
*r37033 gtk2: fixed releasecapture<br />
*r37034 gtk2: verbosity for ubuntu liboverlay mouse capture bug<br />
*r37038 sqldb: Enable mssqlconnection for fpc >= 2.6.1 (patch from Reinier Olilagers, bug 21867) - added because creates conflicts with later sqldb merges<br />
*r37040: TAChart: Workaround for TDbChartSource referring to the dataset with Filtered := true<br />
*r37043 LCL, fix TPostScriptPrinterCanvas.ClipRect is empty-rect until explicitly set by user, patch from Joachim Paepke, issue [[http://bugs.freepascal.org/view.php?id=21027 21027]]<br />
*r37051 Translations: Ukrainian translation update by Igor Paliychuk<br />
*r37052 regenerated translations; updated Russian translation<br />
*r37053 LCL: fixed compilation for fpc 2.7.1<br />
*r37054,37055,37057 set TDBLookup.FListLink.DataSource dynamically to FListSource or a local datasource. Issue [[http://bugs.freepascal.org/view.php?id=15410 15410]]<br />
*r37067 LCL: fixed visibility of implemented interfaces<br />
*r37069 simple deb: using make bigide, updated list of tools<br />
*r37070 openglcontrol: fixed mem leak, issue [[http://bugs.freepascal.org/view.php?id=21597 21597]]<br />
*r37071 codetools: identifier completion: unit name of self<br />
*r37076 gtk2: clean up<br />
*r37077 IDE: clean up<br />
*r37092 LCL: fixed compilation for fpc 2.7.1<br />
*r37093 DBG: Testcase: fixed reading env-options<br />
*r37095 SynEdit: fix crash in overview gutter creation. Issue [[http://bugs.freepascal.org/view.php?id=0021887 0021887]]<br />
*r37096 SynEdit: Do not offer OverviewGutter in Gutter-parts designer<br />
*r37101 lazreport: fixed compilation with fpc 2.7.1, new TBookMark<br />
*r37102 lazreport: clean up<br />
*r37112,r37113 SynEdit: highlight class "helper". Fix wrong highlight of "sealed" Issue [[http://bugs.freepascal.org/view.php?id=0021812 0021812]]<br />
*r37115 openglcontrol: fixed mem leak, issue [[http://bugs.freepascal.org/view.php?id=21597 21597]]<br />
*r37126 LCL: Publish some TCheckGroup properties.<br />
*r37129 gtk2: clean up<br />
*r37154,37247,37248 lcl-db: prevent lookup initialization when dataset is destroyed<br />
*r37155 LCL, use rectclip to set clipping rectangle instead of current path because it sometimes get drawn on next stroke (related to r37043)<br />
*r37157 Qt: fixed key events from QCalendar, now tabbing works fine.<br />
*r37160 LCL: published missing properties TCalendar.Hint and TCalendar.TabOrder.<br />
*r37167 LCL: Fix range check error in StringGrid when sorting and RowCount=FixedRows, issue [[http://bugs.freepascal.org/view.php?id=21947 21947]]<br />
*r37073 codetools: resolve expr: thisunitname.implementationenidentifier<br />
*r37078 codetools: find declaration: selfunit.implementationidentifier<br />
*r37079,r37080,r37081,r37082,r37083,r37087,r37089,r37098 codetools: getsmarthint: class variables, enum, array of, inheritance, property params and type, use unit<br />
*r37085 IDE: show compiler options: check compiler<br />
*r37086,37088 IDEIntf: removed TLazCompilerOptions.LCLWidgetType, fixed computing default LCLWidgetType on cross target OS<br />
*r37090 codetools: do not try to search in record ancestors<br />
*r37105 DBG: Watches Copy Name/Value to clipboard. Issue [[http://bugs.freepascal.org/view.php?id=0021860 0021860]]<br />
*r37106 DBG: Register Copy Name/Value to clipboard. Issue [[http://bugs.freepascal.org/view.php?id=0021860 0021860]]<br />
*r37107 DBG: Watches, added inspect/evaluate to popup<br />
*r37116 DBG: Fix a possible crash in debugger (history). Issue [[http://bugs.freepascal.org/view.php?id=0021901 0021901]]<br />
*r37195 SourceEdit: Do not access outdated tab-history entries (dangling pointers). Issue [[http://bugs.freepascal.org/view.php?id=0021939 0021939]]<br />
*r37196 SourceEdit: Only add tabs to tab-history that were accessed<br />
*r37103,r37132 codetools: nested types: Self and inherited<br />
*r37104,r37120 codetools: GetSmartHint: show anonymous arrays<br />
*r37111 IDE: Make Close button work in Components List dialog. Issue [[http://bugs.freepascal.org/view.php?id=21892 21892]],<br />
*r37118 IDE: build ide: if building fails, clear flag clean up once<br />
*r37119 IDE: when building IDE failed: restore backup<br />
*r37121,r37122 IDE: select frame: search in packages<br />
*r37130 IDE: select frame: search in packages<br />
*r37131 LCL, implements textrect clipping in Postscriptprintercanvas<br />
*r37133 SynEdit: Fix WantTabs / Change default to "True" Issue [[http://bugs.freepascal.org/view.php?id=0021904 0021904]]<br />
*r37134 SynEdit: Remove not required invalidation (paint / call to wrong Update() )<br />
*r37135 SynEdit: Remove wrong implementation of Update. Update no longer forwards to Invalidate<br />
*r37136 IpPro: Fix painting for SelectAll<br />
*r37137 IDE, IpPro: Allow copy to clipboard from hint (zeljko added because of conflict in 37345)<br />
*r37140 cody: show code node info: show complete source<br />
*r37141 SynEdit: Fixed Caret paint error (extra caret left on screen) Issue [[http://bugs.freepascal.org/view.php?id=0021924 0021924]]<br />
*r37143 IDEIntf: added TPropertyEditorHook.IsSelected<br />
*r37144 IDEIntf: TDefaultComponentEditor: always select component<br />
*r37146 IDE: if component class is missing: note about RegisterClass<br />
*r37148 Translations: Ukrainian translation cleanup<br />
*r37149 IDE: regenerated translations; updated Russian translation<br />
*r37151 cody: IDE item to create dockable IDE window<br />
*r37152 cody: new IDE window: show dialog to setup form name<br />
*r37162,r37163 IDE: TProjectFileDescriptor.DefaultResourceName: first try without appending a number, check for pascal keywords<br />
*r37164,r37165 IDE: fixed DoGetUnitRegisterInfo for virtual files<br />
*r37166 SynEdit: Fixed Caret when scrolling under older Wine (Win Emulator)[[http://bugs.freepascal.org/view.php?id=21929 21929]]<br />
*r37212 sqldb: added icon for TMySQL55Connection for fpc 2.6.1 '<br />
*r37213,r37214,r37219 codetools: do not save errors outside parser<br />
*r37215 codetools: GetSmartHint: ^, .., file of, class of<br />
*r37220 Translations: Czech IDE translation update by Martin Smat<br />
*r37224 SynEdit: Autocompletion, workaround for click on hint Issue [[http://bugs.freepascal.org/view.php?id=21952 21952]]<br />
*r37231 SynEdit: Prevent some scrolling, while selecting by mouse. Issue [[http://bugs.freepascal.org/view.php?id=0021996 0021996]]<br />
*r37232 DBG: Inspect window, improve scrolling<br />
*r37234 DBG: Improve start-up to work with bug in gdb 7.4<br />
*r37262 searching compiler: search first in dir of fpc.exe, then in PATH<br />
*r37263,r37265 codetools: improved error message on unit not found<br />
*r37264 fix setting radiogroup.itemindex under gtk2. Issue [[http://bugs.freepascal.org/view.php?id=22013 22013]]<br />
*r37267 Docs: improved build_lcl_docs robustness when working with TProcess, patch from Reinier Olislagers, bug 22000<br />
*r37273 SourceEditor: Fix crash when closing several tabs, while debugging (paused / loading line info). Maybe related to issue [[http://bugs.freepascal.org/view.php?id=22015 22015]]<br />
*r37274 Fix Crash in building "Windows" (list of open W.) Menu. Note 0059576 in Issue [[http://bugs.freepascal.org/view.php?id=22015 22015]] (not related to other parts of issue)<br />
*r37280 SQLdb: added missing tmysql55connection.png, bug 22033 '''Related to 37212 and other revisions for TMySQL55Connection'''<br />
*r37281 SynEdit: protect ProcessCommand() against early destruction by ReleaseComponent. Issue [[http://bugs.freepascal.org/view.php?id=0022035 0022035]]<br />
*r37285 IDE: make Close button work in Window Manager<br />
*r37286 Patch from bug 21651, automatically adds quotes to paths with spaces for OpenDocument in Mac OS X<br />
*r37297,r37298 SynEdit, Pas-HL: record helper, deprecated in object<br />
*r37311 Translations: Arabic IDE translation update by Mazen NEIFER<br />
*r37312 IDE: Make Help button work in Editor Window Manager, issue [[http://bugs.freepascal.org/view.php?id=21961 21961]]. (zeljko added to merge list because of conflicts in 37491)<br />
*r37325 regenerated translations; updated Russian translation<br />
*r37326 Translations: Brazilian Portuguese translation update by Marcelo B Paula, bug 22064<br />
*r37327 IDE, Code Generation options: changed wrong -Op386 option to correct -Op80386. Patch by barlone with some consistency changes, bug 22062.<br />
*r37357 Gtk2: fixed mbAll button on dialogs. Added response keys which does not exist in gtk2. issue [[http://bugs.freepascal.org/view.php?id=22083 22083]]<br />
*r37344 gtk2 intf: less hints<br />
*r37345 ipro: less hints <br />
*r37359 lazreport: German translations<br />
*r37360 cody: German translations<br />
*r37039,r37319,r37324,r37361 sqldb: German translations (zeljko added 37039,37319,37324 because of conflicts)<br />
*r37362 educationlaz: German translations<br />
*r37363 ide: German translations<br />
*r37372 lcl: don't access Items of TreeView if DragOver happens during treeview destruction<br />
*r37373 IDE: debugger options: check the resolved file, bug 22086<br />
*r37374 Qt: bypass windowmanager when showing dragimagelist.<br />
*r37375 Gtk2: do not show taskbar entry for dragimagelist.<br />
*r37376 IDE: update TUnitInfo.ResourceBaseClass on loading lfm<br />
*r37378 [Edited, includes selected lines of 37402] SourceEditor: Hide hint, when mouse moves (even if outside IDE, or IDE is not active). Issue [[http://bugs.freepascal.org/view.php?id=0022016 0022016]]<br />
*r37368 DBG: Fixed array len for 64 bit<br />
*r37369 lcl: don't crash when either DragTarget or dragged control is freed (issue [[http://bugs.freepascal.org/view.php?id=22067 22067]])<br />
*r37370 lcl: cleanup debug info<br />
*r37371 lcl: fixed a memory leak when canceling drag of dead control<br />
*r37380 SourceEdit/DBG: Ensure Codebuffer is updated before using it to add watches<br />
*r37383 IDE: TUnitInfo.fModified: do not set on get<br />
*r37384,r37401 IDE: do not set TUnitInfo.Modified when committing source editor to codetools<br />
*r37388,r37389,r37390,r37391,r37392 tests: added tests for cfgscripts, fixed unit output directory, cfgscript: fixed error message if semicolon is missing, IDE: added conditionals functions GetIDEValue, GetEnv, LCL: use IDE widgettype as default<br />
*r37397 TodoList: properly trim comment markers and convert multiline text to single line, fixes bug 22085. Based on patch by Anton.<br />
*r37400 codetools: fixed mem leak<br />
*r37418: TAChart: Fix range check using datapoint tool on a chart without series<br />
*r37440 DBG: do not set temporary stack = -1 in thread changing. This may cause errors<br />
*r37444 DBG: Watches, save "Use instance class" to config<br />
*r37449 LCL: fixed comments<br />
*r37451 Qt: fixed wrong SetCapture() under win32. Problem was passed TQtWidget handle instead of underlaying widget winID() which is native handle.<br />
*r37453 SynEdit: Fix goto bookmark and persistent block. Do not clear persistent block<br />
*r37461 lcl: TCustomForm.UpdateDockCaption: fixed repair garbage<br />
*r37463 IDE: when docked keep IDE caption<br />
*r37464 Help, DBG: New link to wiki for watch properties<br />
*r37475 codetools: TCustomCodeTool.FindLineEndOrCodeAfterPosition: fixed crash when at end of code<br />
*r37476 codetools: clear nodes behind, when linkscanner parsed only parts<br />
*r37481 IDE: fixed storing old LCLWidgeType, bug 22174<br />
*r37482 codetools: save parse error of operator, do not save errors outside parser, fixed parsing method name with generic parameter<br />
*r37483 codetools: allow keywords in program name<br />
*r37534 Qt: do not call setValue() but setPosition() so lcl gets accurate values later. issue [[http://bugs.freepascal.org/view.php?id=22187 22187]]<br />
*r37491 Help, DBG: Link to wiki for breakpoint properties (zeljko - 37312 is merged too, because of conflicts)<br />
*r37470 IDE, DBG: debug-eval hint, do not show, if selection exceeds one statement (e,g whole file selected). Part of issue [[http://bugs.freepascal.org/view.php?id=0022081 0022081]]<br />
*r37471 SourceEditor: Fix an issue with focusing an editor, that is being closed (while debugging) "no parent handle". Issue [[http://bugs.freepascal.org/view.php?id=0022015 0022015]]<br />
*r37517 SynEdit: fixed folding for "case" and "try" in certain code segments (initialization / case...else try)<br />
*r37518 SynEdit: Pas-HL: fix detection of case...else versus if...then...else<br />
*r37522 SynEdit: Pas-HL: better detection of case...else<br />
*r37623 SourceEditor: Fix (Work-around) an issue with focusing an editor, that is being closed (while debugging) "no parent handle". Issue [[http://bugs.freepascal.org/view.php?id=0022015 0022015]] // Required some parts of r37502<br />
*r37609 DBG: Avoid re-queuing of dis-assembler requests, after cancelling it. Part of issue [[http://bugs.freepascal.org/view.php?id=0022230 0022230]]<br />
*r37643 DBG: Disassembler: prevent disassembler from doing large address ranges, if gdb returns data with far away addresses. Issue [[http://bugs.freepascal.org/view.php?id=0022230 0022230]]<br />
*r37657 DBG: fixed a out of index error, in watches history<br />
*r37694 DBG: Fixed possible crash in watch evaluation (WatchValue freed while evaluating / in GetValue)<br />
*r37466 IDE: added menu item to insert MIT license text<br />
*r37407,r37474,r37492 IDE: TMainIDE.DoSourceEditorCommand: improved focus check, requires r37466<br />
*r37564 LCL: TCustomListView: reset FCacheIndex and FCacheItems before sorting list, otherwise we'll have unexpected results. issue [[http://bugs.freepascal.org/view.php?id=22218 22218]]<br />
*r37505, r37509, r37516, r37523 fixed compilation with fpc 2.7.1<br />
*r37592 lcl: fixed compilation fpc 2.7.1<br />
*r37525 TAChart: Display legend symbols even if the text is empty<br />
*r37565 TAChart: Display major axis marks at the edges of the clip range<br />
*r37576 TAChart: Fix infinite recursion when drawing chart listbox from series with Legend.Multiplicity <> lmSingle<br />
*r37588 TAChart: Include Item.Y in reordered list of TCalculatedChartSource. Update test. '''This will break old tests. Please contact me for a fix --- Ask'''<br />
*r37727 TAChart: Update to the recent version of FPVectorial<br />
*r37587 Qt: unset icon when doing internal sync after sorting. part of issue [[http://bugs.freepascal.org/view.php?id=22218 22218]]<br />
*r37620 LCL: invalidate parent preferredsize when borderspacing changed, bug 17947<br />
*r37621 LCL: clean up - invalidate in TControl.DoBorderSpacingChange no longer needed with new autosizing<br />
*r37622 lazutils: added missing file<br />
*r37624 LCL: GetClientRect: if interface has the right width,height trust the clientrect, this avoids some unneeded resizes<br />
*r37573 IDE: project inspector: add files: allow dotted unit names, bug 22209<br />
*r37619 IDE: open package dependency: try provides, issue [[http://bugs.freepascal.org/view.php?id=17960 17960]]<br />
*r37628 IDE: compiler options: disable target platform for packages<br />
*r37594 codetools: fixed Unneeded extra space in event assignment completion<br />
*r37613 codetools: property completion: add class var for class property variables<br />
*r37614 codetools: class completion: search variables in all sections, bug 22246<br />
*r37625,r37626,r37627 codetools: class completion: fixed searching var node when first is class var<br />
*r37629 codetools: fixed adding class keyword for property setter of a class property<br />
*r37630 IDE: codeexplorer: labels<br />
*r37634 IDEIntf: objectinspector: fixed painting outside paint event<br />
*r37631 codetools: no var node for anonymous record case variables<br />
*r37632 codetools: identifier completion: when creating an override hide higher visibility members<br />
*r37633 codetools: class completion: add static method modifier for setter of class property<br />
*r37636 codetools: class completion: add static method specifier for class property setter<br />
*r37635 IDE: paste component: fix renamed references<br />
*r37637,r37638,r37639 IDE: paste multiple components: fix references, lcl: LRSObjectTextToBinary: write convert list of components<br />
*r37640 IDE: paste components: update TControl.Caption<br />
*r37642 lcl: fixed LRSObjectTextToBinary toWString, issue [[http://bugs.freepascal.org/view.php?id=19650 19650]]<br />
*r37644 codetools: fixed inserting proc bodies in implementation in front of methods<br />
*r37652,r37653,r37655 codetools: using TFileStreamUTF8<br />
*r37656 IDE: using TFileStreamUTF8 and TStringListUTF8<br />
*r37663 IDE: fixed show info on --help when no stdout exists<br />
*r37689 LCL: fixing handling of special keys for TCustomEdit and TCustomMemo<br />
*r37690 codetools: forward proc completion: stay in same section<br />
*r37697 DBG: Dialogs, don't give help related commands to IDE. They will be ignored<br />
*r37698 IDE Help: add urls for dbg dialogs<br />
*r37703 lazutils: utf8pos: added optional parameter StartPos<br />
*r37704 IDE: setup dialog: show fpc source directory release version as warning instead of error<br />
*r37707 tools create deb+rpm: use 128x128 icon<br />
*r37705 SynEdit: open and close clipboard explicitly to write multiple formats.<br />
*r37714 lcl: gtk2: warn only once about liboverlay<br />
*r37711 lhelp: cleaned up paths<br />
*r37712 lhelp: clean up<br />
*r37713 lhelp: resolve macros in HelpEXE on the demand<br />
*r37715 chmhelp: using search path to search for chm files<br />
*r37716,r37717 chmhelp: added path $(LazarusDir)/docs/chm<br />
*r37718 'hmhelp: search ref.chm in docs/chm<br />
*r37726 create_lazarus_deb: added option chmhelp<br />
*r37722 DBG: Event-Log: Do not cache Options. Allow user to change options while debugging<br />
*r37596 Patch from {{MantisLink|0022231}} "fix warnings with fpc 2.6.1".--[[User:AlexVinS|AlexVinS]] 21:40, 8 June 2012 (UTC)<br />
*r37745 deb+rpm: default environmentoptions: updated to 107, removed default gdb entry<br />
*r37748,r37755 lhelp: added makefile<br />
*r37749 make bigide: build lhelp<br />
*r37753 IDE: fixed comparing file names case insensitive<br />
*r37754 lazutils: inlined UTF8CompareStr<br />
*r37760 Use Utf8CompareText instead of AnsiCompare<br />
*r37762 linux: added encoding to desktop file<br />
*r37769 Use Utf8CompareText instead of AnsiCompare<br />
*r37770 TAChart: Fix AV when clearing Series.Styles and TColorMapSeries.ColorSource properties<br />
*r37772 Use Utf8CompareText instead of AnsiCompare<br />
*r36804 win32: mark client rect as required update before WM_SIZE passing, remove DoAdjustClientRectChange - they are called inside WM_SIZE handler after the client rect is updated (fixes bug [[http://bugs.freepascal.org/view.php?id=0021724 0021724]])<br />
**Paul remarked about r36804: "Please don't merge it for at least 2 weeks". Also seems to cause problems in grids, see [http://bugs.freepascal.org/view.php?id=21790 issue [[http://bugs.freepascal.org/view.php?id=21790 21790]]].<br />
*r36993: LCL, fixed Problems setting Width, Height for TCustomGrid if ScrollBars is auto, from cobines, issue [[http://bugs.freepascal.org/view.php?id=21790 21790]]. If r36804 is merged, please merge also r36993<br />
*r37783 startlazarus: linux: adding LIBOVERLAY_SCROLLBAR=0 to avoid problems with mouse capturing<br />
*r37785 gtk2 intf: disable liboverlay by default<br />
*r37790 gtk2 intf: use setenv only on Linux<br />
*r37795: export tgz: added option to add chm files<br />
*r37796 IDE: when copying secondary configs create the primary config directory first<br />
*r37797 rpm: added option chmhelp<br />
*r37810 rpm: fixed building without chmhelp<br />
*r37811 lhelp: fixed invalid recent item path in config, added build modes default,debug<br />
*r37814 chmhelp: clean up old ipc files to prevent IDE hang<br />
*r37817-r37821 MAKE DEB<br />
*r37838 DBG: Fix handling console input<br />
*r37824 chmhelp: Fixed lazarus hanging when chmhelp pipe is leftover from an improperly closed lhelp<br />
*r37825 chmhelp; Fixed chmhelp typo (boolean error)<br />
*r37826 chmhelp: fixed bug where a new lhelp process could be started each time F1 was pressed<br />
*r37841 DBG: Pseudo-Terminal, accept tabs<br />
*r37848 lazutils: docs: fixed encoding and package name<br />
*r37849 lcl: docs: fixed encoding<br />
*r37850 ide: docs: fixed encoding<br />
*r37851 updated docs<br />
*r37853 lcl: docs: fixed some links<br />
*r37852 build_lcl_docs: using UTF-8 file functions, added option -h<br />
*r37855 build_lcl_docs: showcmd: show working directory<br />
*r37861 lcl: check if ListDataset is loading to update lookup info. Issue [[http://bugs.freepascal.org/view.php?id=22337 22337]]<br />
*r37846 win32: let TComboBox.CloseUp fire before Change (delphi compatible). Fix 22352<br />
*r37880 IDE+startlazarus: use same working directory, needed for passing relative file names as command line parameters, fixed building lcl+lazutils chm on ubuntu 12<br />
*r37866 lazutils: fixed unit names<br />
*r37868 lazutils: added fpdoc files<br />
*r37869 docs: building lazutils+lcl chm<br />
*r37885 DBG: fixed parsing sets for debug-inspector<br />
*r37906 IDE-Options / SynEdit: Fixed RightEdge visibility (Recression)<br />
*r37919 DBG: Prevent potential crash/memory-corruption in Watches<br />
*r37920 DBG: Prevent potential crash in (dbg-)OnIdle handling<br />
*r37921 DBG: Prevent build up of no longer needed commands in queue<br />
*r37945 DBG: Prevent a crash, when the selected snapshot is deleted. Cas also happen when starting the debugger, while a snapshot from previous run is active<br />
*r37950 DBG: fixed endless loop in watch eval (auto type cast) Issue [[http://bugs.freepascal.org/view.php?id=0022425 0022425]]<br />
*r37961 DBG: Disable rangechecks for certain PtrUInt casts<br />
*r37993 carbon: fixed crash of IDE when compiled with range checks on<br />
*r38006 gtk2: fixed crash on QuestionDlg<br />
*r38003 IDE: fixed showing custom project options, issue [[http://bugs.freepascal.org/view.php?id=22486 22486]]<br />
** merged ONLY main.pp<br />
*r38016 ToDoList: fixed encoding of French translation, it should be UTF-8, not ISO-8859-1. Patch by batyann811, bug 22489.<br />
*r37981,37983-37989,38001,38004-38005,38012,38017 Win Installer<br />
===== Fixed after RC1 =====<br />
*r38127 IDE, EditorOptions: Fixed finding color attribute in localized IDE<br />
*r38132 IDE: setup: after changing lazarusdir: fetch translations and translate<br />
*r38133 chmhelppkg: invoke lazbuild with --pcp parameter<br />
*r38138 examples: testall: fixed start<br />
*r38139 examples: cleandirs: error for fpc version<br />
*r38140 examples: componentstreaming: fixed typo, clean up<br />
*r38141 lazfreetype: fixed range check error, improved error message<br />
*r38142 examples: mssqlconn: requires fpc 2.6.1<br />
*r38144 examples: synguttermarks: win32 gui mode, fixed Left position<br />
*r38146 examples: tv_add_remove: updated<br />
*r38147 examples: xmlreader: added example xml<br />
*r38157 IDE: fixed saving ambiguousfileaction, bug 22573<br />
*r38158 examples: clean up<br />
*r38038 TAChart: Allow spaces in field names inside TDbChartSource.FieldY<br />
*r38168 synuni: clean up fpc options<br />
*r38170 synuni, semaphorgridlpk: clean up fpc options<br />
*r38022 SynEdit: Fixed drawing errors for frames (left frame site drawn at wrong offset)<br />
*r38145 LCL: TListView fixed "List index out of bounds" while deleting items. issue [[http://bugs.freepascal.org/view.php?id=22552 22552]]<br />
*r38150 SynEdit TSynMultiSyn: Fixed crash when deleting lines. Part of issue [[http://bugs.freepascal.org/view.php?id=0022519 0022519]]<br />
*r38151 SynEdit Highlighter: Fixed crash when scanning empty<br />
*r38152 SynEdit TSynMultiSyn: typo<br />
*r38175 SynEdit TSynMultiSyn: Fixed updating, when appending to EOT. Part of issue [[http://bugs.freepascal.org/view.php?id=0022519 0022519]]<br />
*r38205 lazaruside.fi.po: Finnish translations<br />
*r38180 Synedit: fix matching-bracket-highlight in comments (closing bracket at eol) issue [[http://bugs.freepascal.org/view.php?id=22586 22586]]<br />
*r38198 IDE: Export to html, do not enforce check for writeable. Issue [[http://bugs.freepascal.org/view.php?id=22588 22588]]<br />
*r38199 lazutils: do not use winodws W functions under Win98, issue [[http://bugs.freepascal.org/view.php?id=22596 22596]]; '''Breaks compilation on wince, because win32platform is not defined.'''<br />
*r38202 openglcontrol: win32: fixed sharing context<br />
*r38204 Synedit: fixed typo in IFDEF for fpc 2.60 bug<br />
*r38225 TAChart: Fix division by zero in zoom tools with extreme zoom ratios<br />
*r38226 TAChart: Fix hang in functional series with extreme zoom ratios<br />
*r38223 SynEdit TSynMultiSyn: Several fixes issue [[http://bugs.freepascal.org/view.php?id=0022519 0022519]]<br />
*r38232 TAChart: Add InRangeUlps utility function<br />
*r38233 TAChart: Fix disappearance of axis marks located exactly at chart bounds<br />
*r38234 TAChart: Fix crash when setting Marks.LabelFont from the Object Inspector<br />
*r38237 Examples/SynEdit: Readme and typo in comment<br />
*r38266 IDE: Tweak the layout of ManageExamplesForm<br />
*r38260 TAChart: Use correct notification when the series' source changes<br />
*r38261 TAChart: Issue change notifications when modifying TListChartSource.DataPoint property<br />
*r38285 lhelp: replace MessageBox, with Form.Modal. FIx IPC hang. issue [[http://bugs.freepascal.org/view.php?id=0022592 0022592]]<br />
<br />
===== Fixed after RC2 =====<br />
*r38293 windows installers: don't ask to overwrite the environment options in the secundary config directory from Reinier Olislagers<br />
*r38339 SynEdit TSynMultiSyn: Fix CaseSensitivity for Sheme marker. Issue [[http://bugs.freepascal.org/view.php?id=0022693 0022693]]<br />
*r37386 Remove writeln() that looks like a residual debug message. Issue [[http://bugs.freepascal.org/view.php?id=0022544 0022544]]<br />
*r38385 Translations: removed unmaintained Portuguese translation, which was outdated copy of Brazilian Portuguese one<br />
<br />
== How to merge ==<br />
The lazarus developers have decided to use the native svn merge for this branch. Other branches used the svnmerge.py script to manage the revisions to be merged.<br />
<br />
* TODO: Maybe this information should be put in a separate page.<br />
<br />
[[SVN_Migration#Merge_with_plain_svn]]<br />
=== Using TortoiseSVN ===<br />
As noted in the link above using TortoiseSVN is more or less self explaining. <br />
<br />
* TODO: add some screen shots.<br />
<br />
When committing, in the recent messages a nice commit message is available.<br />
<br />
Tested with TortoiseSVN 1.7.6, SVN 1.7.4.<br />
<br />
=== Show list of revision that can be merged ===<br />
In the lazarus fixes_1_0 directory do:<br />
svn mergeinfo ^/trunk --show-revs eligible<br />
Or if you don't have a fixes directory checked out, you can pass the URL path of the fixes branch:<br />
svn mergeinfo ^/trunk http://svn.freepascal.org/svn/lazarus/branches/fixes_1_0 --show-revs eligible<br />
<br />
=== Show list of revision that have been merged ===<br />
In the lazarus fixes_1_0 directory do:<br />
svn mergeinfo ^/trunk --show-revs merged<br />
<br />
=== Merging revisions from trunk ===<br />
To merge one or more revisions from trunk, use the svn merge command. For example to merge revision 36506 and 36510 use:<br />
svn merge -c 36506,36510 ^/trunk<br />
<br />
To generate a commit log message, use:<br />
svn log ^/trunk -c 36506,36510 > svnmerge-commit-message.txt<br />
<br />
Edit svnmerge-commit-message.txt with your favorite text editor and add a first line like:<br />
Merged revision 36506,36510 from /trunk.<br />
<br />
Commit this with:<br />
svn commit -F svnmerge-commit-message.txt<br />
<br />
=== Blocking a revision to be merged ===<br />
Sometimes you want to block a revision to be merged, i.e. you want to make sure that this revision is never merged to the fixes branch, for example, because it contains a new feature or it contains a version number change not applicable to the fixes branch, but only to trunk. To block revision 36507, use:<br />
svn merge -c 36507 --record-only ^/trunk<br />
Then you can create a log message with:<br />
svn log ^/trunk -c 36507 > svnmerge-commit-message.txt<br />
Edit svnmerge-commit-message.txt with your favorite text editor and add first line like:<br />
Blocked revision 36507 from /trunk<br />
Then commit this change:<br />
svn commit -F svnmerge-commit-message.txt</div>
Paul Ishenin
https://wiki.freepascal.org/index.php?title=Lazarus_1.0_fixes_branch&diff=62073
Lazarus 1.0 fixes branch
2012-09-26T00:10:54Z
<p>Paul Ishenin: /* Merged revisions for 1.0.2 */</p>
<hr />
<div>This page contains the revisions to be merged from trunk to the [http://svn.freepascal.org/svn/lazarus/branches/fixes_1_0/ Lazarus 1.0 fixes] branch.<br><br />
Release notes can be found here [http://wiki.lazarus.freepascal.org/Lazarus_0.99.0_release_notes Release notes]<br />
<br />
== Fixes for 1.0.2 ==<br />
=== Merge requests ===<br />
==== Submitted by developer / committer ====<br />
<br />
*r38735: TAChart: Fix memory leak in TDbChartSource.BeforeDraw<br />
*r38737: TAChart: Fix drawing of pie series with data from the db source<br />
*r38754: TAChart: Fix hang when changing TLineSeries.ShowPoints while drawing chart<br />
*r38757: TAChart: Display crosshair tool on mouse down<br />
*r38779: TAChart: Do not notify from TListChartSource.SetXValue and SetYValue if the value did not actually change.<br />
*r38780: TAChart: Add TBasicPointSeries.MovePoint overload for graph coordinates ''not a fix, but required for r38788''<br />
*r38788: TAChart: Support axis transformations in TCustomChartSeries.MovePoint<br />
*r38792: TAChart: Fix crash on deleting subcomponent with active property editor<br />
*r38802: lcl:revert 33020, 33082, 33086, part of 33089 and 33389. These changes made the hint behavior Delphi incompatible thus leading to a regression in third party control like VirtualTreeView that handles hints in CMHintShow. Retrieve parent hint recursively if hintcontrol.hint is empty' (delphi compatible)<br />
*r38816 LazUtils: improve unicode path/filename handling by Fileutil.ReadFileToString, patch from Takeda Matsuki, bug 22953<br />
*r38826 Qt: TQtWidgetSet.SetScrollInfo - fixed wrong result, it must return real slider position, not value which might be out of sync with position. This fixes problems with TScrollingWinControl (TControlScrollbar).<br />
<br />
==== Submitted by others ====<br />
<br />
=== Merged revisions for 1.0.2 ===<br />
*r37217,37218,37225,37239,37241,37293,37304,37316 Qt: fixed keys handling (arrow keys & enter).<br />
*r38396 LCL: ColorBox - keep FSelected in sync all the time. fixes issue [[http://bugs.freepascal.org/view.php?id=22729 22729]]<br />
*r38426 CodeBrowser: check for virtual units. Issue [[http://bugs.freepascal.org/view.php?id=0022740 0022740]]<br />
*r38428 SynEdit, MultiHighlighter: fix adding text/sections at EOL. issue [[http://bugs.freepascal.org/view.php?id=0022745 0022745]]<br />
*r38430 TAChart: Fix out-of-bounds access when drawing empty polygons and polylines<br />
*r38437 ide: project target: apply default extension even if the file has already an extension, issue [[http://bugs.freepascal.org/view.php?id=22750 22750]]<br />
*r38444 IDE: fixed crash when releasing non existing component palette select button<br />
*r38473 tests: fixed compilation<br />
*r38464 TAChart: Fix error message in TFPCanvasDrawer.RadialPie<br />
*r38486 avglvltree: setcompare: set when count=0<br />
*r38503 TAChart: Copy BaseLength in TChartArrow.Assign<br />
*r38507 EditorOpts: default for top-info-hint<br />
*r38509 Debugger: Ensure Queue is not blocked by LineInfo Request. (If a LineInfoRequest was queued the DebuggerCurrentLine could not search the stack, as commands were not immediately run)<br />
*r38519 Gtk2: fixed crash with TListView when viewstyle is vsIcon or vsSmallIcon. issue [[http://bugs.freepascal.org/view.php?id=22778 22778]]<br />
*r38520 Qt: do not propagate keyrelease event as action trigger. issue [[http://bugs.freepascal.org/view.php?id=22737 22737]]<br />
*r38531 Debugger: Workaround to fix exe-line-indicators (blue dots) at debug start<br />
*r38533 Qt: fixed header offset and getClientRect for TListView when ViewStyle=vsReport.<br />
*r38547 TAChart: Support Y NaNs in polar series ''(this will cause compilation error -- please remove 'and CloseCircle' part from the last conditional in the TPolarSeries.Draw procedure)''<br />
*r38557 TAChart: Support brush style, pen style and pen width in fpvectorial drawer<br />
*r38571 TAChart: Draw chart correctly after decrease of an axis margin<br />
*r38529,r38530,r38535,r38543,r38548: fix carbon clipping, correctly return region types on HRGN related operations, fix generic IntersectClipRect routine<br />
*r38640,r38641,r38642,r38649: various ExtTextOut fixes for Carbon and Cocoa<br />
*r38551,r38552,r38562,r38563 Carbon: various winapi compatibility functions fixes<br />
*r38518 Qt: TQtWinApi.ExtTextOut() implemented Dx param. issue [[http://bugs.freepascal.org/view.php?id=22795 22795]] (zeljko will merge, need some testing)<br />
*r38572 Qt: propagate QEvent::ShortcutOverride to parent, so stop key event if shortcut is executed. issue [[http://bugs.freepascal.org/view.php?id=22827 22827]]<br />
*r38576,38577: Qt: fixed TQtWidgetSet.FrameRect(), now it uses passed brush to draw frame border.<br />
*r38610 Qt: fixed non ascii utf8 chars in TQtWidgetSet.ExtTextOut() when we use dx param. issue [[http://bugs.freepascal.org/view.php?id=22795 22795]] (depends on merging of r38518).<br />
*r38628,38629,38630,38634: Qt: fixed clipping bugs inside TQtWidgetSet.ExtTextOut()<br />
*38670 SynEdit: Fixed past eol paint error ** Must be ported by hand **<br />
*r38584 TAChart: Copy Attachment and YIndex in TGenericChartMarks.Assign ''(this code is in TATypes unit in v1.0)''<br />
*r38589 TAChart: Do not draw lines which should be invisible in OpenGL drawer<br />
*r38607 TAChart: Workaround for issue [[http://bugs.freepascal.org/view.php?id=22850 22850]] '''see patch in the mailing list'''<br />
*r38617 TAChart: Fix GetNearestPoint returning true with no points found inside radius, issue [[http://bugs.freepascal.org/view.php?id=22854 22854]]<br />
*r38644: Qt: fixed menu flickering. issue [[http://bugs.freepascal.org/view.php?id=22872 22872]]<br />
*r38651: TAChart: Fix zero division when calling ImageToGraph before the chart is drawn<br />
*r38674 Qt: fixed crash when invalid or null handle is passed into SetCapture.<br />
*r38679 Qt: update bitmap if TMenuItem has associated ImageList and ImageIndex. issue [[http://bugs.freepascal.org/view.php?id=22896 22896]]<br />
*r38672 SynEdit: fixed delete-next-word, if caret past eol. Issue [[http://bugs.freepascal.org/view.php?id=0022890 0022890]]<br />
*r38720 LCL, DefaultTranslator: fix handling of non-ASCII path to .po file, bug 22907, patch by Vladimir Zhirov<br />
*r37398 IDE: corrected version info language list, added Ukrainian language, bug 22103<br />
*r38722 IDE: added Lithuanian to version info language list, bug 22898<br />
*r38671: carbon: fix accidental error in index<br />
*r38743: carbon: reimplement linear gradient draw using shading to support OS X < 10.5<br />
*r38636,r38637: Gtk2: fixed text clipping and text background drawing<br />
*r38758: gtk2: allocate GdkColor when we need a BkColor<br />
*r38727,r38728,r38742,r38744,r38745,r38748: gtk2: fix clipping and DC transformations<br />
*r38747: gtk2: fix FrameRect - it must use a passed brush instead of selected one<br />
*r38373 Gtk2,Qt: make ETO_OPAQUE work from TCanvas.TextOut(). issue #22719<br />
*r38769-r38772: lcl, gtk2, carbon: full implementation of GradientFill<br />
*r38673 TAChart: Ignore NaNs while calculating TCustomChartSource.ValuesTotal<br />
*r38675 TAChart: Support Marks.Attachment = maCenter in pie series<br />
*r38694: TAChart: Fix update of TListChartSource.ValuesTotal cache when adding or removing NaNs<br />
*r38710: TAChart: Fix crash when using TChartExtentLink with LinkedChart.Chart = nil<br />
*r38712: TAChart: Fix crash while replacing linked chart in TChartExtentLink<br />
*r38713: TAChart: Use NumberOr function instead of checking for NaN explicitly<br />
*r38719: TAChart: Extract TDrawFuncHelper.ForEachPoint helper procedure ''This also fixes a hang while using data point tool on extremely zoomed-in series''<br />
*r38729: TAChart: Extract TDrawFuncHelper.XRange helper function. + Fix GetNearestPoint for rotated function series.<br />
*r38733: TAChart: Fix TChartSeries.SetColor to notify all listeners and require ListSource. Add TListChartSource.SetColor<br />
*r36674: TAChart: Add AddArray, AddNull, AddX and AddY functions to TChartSeries<br />
*r38697,38698 Gtk2: set TToggleBox.ParentColor default false so it's color is consistent with TButton when eg.parent color is clRed and TToggleBox.Color=clDefault.<br />
*r38709: Qt: improved triggering of OnClick() in QEventShowToParent. issue [[http://bugs.freepascal.org/view.php?id=22872 22872]]<br />
*r38799: gtk2: implement SPI_GETWHEELSCROLLLINES. Fix a regression in VirtualTreeView wheel scroll<br />
*r38762: Gtk2: when style is drawing button then use style from button. issue #22901<br />
<br />
== Fixes for 1.0 ==<br />
=== Merged revisions for 1.0.0 ===<br />
==== Submitted by developer / committer ====<br />
*r36506 LazReport, fix barcode dialog localization (Jesus)<br />
*r36508 Updated Japanese translation<br />
*r36509 Window Column, store pointer to resourcestring<br />
*r36510 LazReport, fix barcode addin when TfrBarCodeObject is not yet instantiated (in this case barcode editor defaults to memo view.<br />
*r36511 DividerBevel: implemented Transparent.<br />
*r36514 IDE: moved macros save/saveall to source editor<br />
*r36515 IDE: update macro descriptions after translating resource strings<br />
*r36516 IDE: trim TLazPackageGraph.GetFallbackOutputDir<br />
*r36517 IDE: check if package needs rebuild: switch to fall back directory: update compiler params<br />
*r36518 IDE: install/uninstall package dialog: fixed icons, added info about current state<br />
*r36523,r36530 IDE: Export as HTML<br />
*r36526 CodeTemplate: Improve final caret pos, if tmpl does not specify<br />
*r36527 CodeTemplate: allow tab to trigger / selection to ignore. issue [[http://bugs.freepascal.org/view.php?id=0017631 0017631]]<br />
*r36528 SynEdit: Template(Syncro) fix invalidation<br />
*r36529 IDE: Printing: break long lines. Issue [[http://bugs.freepascal.org/view.php?id=0013479 0013479]]; <br />
*r36547 IDE: Printing: break long lines. Fix Utf8. Update for rev 36529<br />
*r36531 LazReport: fixed buttonpanel localization in BarCode editor dialog<br />
*r36533 IDE: clean up of unused resourcestrings<br />
*r36534, r36536, r36553, r36583, r36646 regenerated translations; updated Russian translation<br />
*r36535 IDE: more clean up of unused resourcestrings<br />
*r36537 Documents LCLIntf.GetDeviceCaps<br />
*r36538 IDE: always store lazarus directory<br />
*r36539 LazReport: uppercase variable before comparing with hardcoded functions. Properly fix to 21624<br />
*r36543 IDE: setup dialog: using same file resolving as IDE<br />
*r36546 IDE: consider empty lazarusdirectory as pcp, empty fpcsrcdir as lazdir, empty testdir as lazdir<br />
*r36548 IDE: fixed note about wrong laz dir<br />
*r36549 IDE: fixed crash on find identifier references<br />
*r36551 IDE: translate descriptions of all macros<br />
*r36552 IDE: fixed editor tab position combobox items localization on Editor/Misc options page<br />
*r36556,r36557 IDE: warn if upgrading configs<br />
*r36561, 36562, 36563, 36566: Improve Options/Keymap<br />
*r36565 LCL: Prevent TShape.stRectangle disappearing with certain Height/Width and Pen.Width values.<br />
*r36567,r36568,r36569 IDE: show downgrade warning<br />
*r36570 lazbuild: select IDE build mode, fixed compiling with different mode<br />
*r36572 LCL: set csCaptureMouse on TToolButton, but don't send click if mouse is out of ttoolbutton on mouseup.issues [[http://bugs.freepascal.org/view.php?id=19688 19688]],[[http://bugs.freepascal.org/view.php?id=21560 21560]]<br />
*r36574 IDE: fixed saving environment on every change<br />
*r36577 LCL, TreeView: fix GetNextVisible, GetPrevVisible. Issue [[http://bugs.freepascal.org/view.php?id=21264 21264]]<br />
*r36575 IDE/Setup dialog: force taskbar button to be shown<br />
*r36584 IDE: import package list: opendialog<br />
*r36587 IDE: intial setup: fpc src dir: lazdir/fpc/fpcver/source<br />
*r36588 IDE: intial setup: fixed if no candidates found<br />
*r36589,r36590 IDE: compiler file name: search first with macros<br />
*r36591 IDE: verbose search for candidates<br />
*r36592 IDE: search fpc src relative to fpc.exe<br />
*r36594 IDE: check compiler: only run common names<br />
*r36595,r36599 IDE: use under windows as default for make the make.exe in the compiler directory<br />
*r36596 IDE,codetools: fixed ppccross,crossppc to ppcross<br />
*r36601 IDE: unify the 2 filters in KeyMapping window. Prevent a potential crash.<br />
*r36603 debian: updated patches to latest source in lazarus svn<br />
*r36608 Gtk2: do not set widget name, it's completelly unnecessary and produce unexpected behaviour if some keywords are in widget name.issue [[http://bugs.freepascal.org/view.php?id=21661 21661]].<br />
*r36613 SynEdit: Fix an issue with Scrollbars not being updated<br />
*r36617 lazbuild: build ide: replace exe on windows<br />
*r36644 IDE: improved 'Export package list' dialog localization<br />
*r36645 IDE: improved 'Package Graph Explorer' dialog localization<br />
*r36647,r36653,r36654,r36655,r36656,36668,36673 IDE: view / IDE internal / what needs building<br />
*r36648,r36650,r36651 IDE: read state file created by Makefile: fix path delimiters, checking compiled state: ignore -v,-i,-B flags, do not skip all -F<br />
*r36652 IDE: codetools options: shorter caption<br />
*r36658 regenerated translations; updated Russian translation <br />
*r36659 LCL: Refactoring. Make TCalculatorDialog.Execute more understandable by removing a "with" block.<br />
*r36661 LCL: Prevent "Test Dialog" feature of Calculator and Calendar dialogs locking the IDE, issue [[http://bugs.freepascal.org/view.php?id=21644 21644]]<br />
*r36616 SynEdit: do not include IME for WinCe<br />
*r36662 LCL: implementation of TCustomImageList.GetIcon()<br />
*r36663 In GUI strings, unify all 3 dots to have a space before them ( ...)<br />
*r36664 IDE: Use CreateAbsolutePath when switching between relative/absolute paths in AddFile dialogs (CreateAbsoluteSearchPath gives wrong output)<br />
*r36665 LCL: publish TUpDown.OnChangingEx<br />
*r36666 IDE etc.: unify 3 dots in GUI string to have a space ( ...).<br />
*r36667 translation: german: updates from Swen Heinig<br />
*r36669 updatemakefiles: write which lpk have conditionals<br />
*r36670,r36671 IDE,lazbuild: create makefile: use CPPROG instead of COPY to get the current date for Makefile.compiled under Windows<br />
*r36649,r36657,r36602,r36672,r36675,r36677,r36679,r36683,r36701,r36708,r36709 Makefiles: updated, reduced dependencies, fixed double compiles<br />
*r36676 LCL: Implement TListItem.EditCaption, issue [[http://bugs.freepascal.org/view.php?id=20295 20295]].<br />
*r36680,r36699 lazbuild: fixed crash, replaced some MessageDlg with IDEMessageDialog<br />
*r36681 IDE,lazbuild: use parsed compiler filename, make filename<br />
*r36682 IDE: debugfilename, debugsearchpath: use same function as other env vars to resolve macros, trim and find<br />
*r36686,r36688 IDE/lazbuild backup, delete the same lazarus exe on all platforms<br />
*r36694 regenerated translations; updated Russian translation<br />
*r36695 LazDataDesktop: regenerated translations; updated Russian translation<br />
*r36696 IDE: add resource strings for various windows manifest keys<br />
*r36697 fix ImageList.AddMasked() in case of source image has no mask description<br />
*r36702 IDE: TProject.TitleIsDefault: check for project+number, fix for renaming the title of a new project<br />
*r36711 Qt: enable wordwrap on TQtStaticText. issue [[http://bugs.freepascal.org/view.php?id=21697 21697]].<br />
*r36712 LCL: fixed function result<br />
*r36713,r36715 lcl: fixed TToolButton.MouseUp X,Y in boundsrect check<br />
*r36716 LCL, combination of modal form + wsMaximized style produces tiny windows on GTK2, issue [[http://bugs.freepascal.org/view.php?id=21634 21634]]<br />
*r36717 LCL: reverted changes to menus.pp from r36666 (by Paul's request)<br />
*r36718 LCL: regenerated translations<br />
*r36719, *r36826 LCL: fix range check error<br />
*r36720 LazReport: added option to ignore undefined symbols, from Luiz Americo, issue [[http://bugs.freepascal.org/view.php?id=21683 21683]]<br />
*r36723,36724 IDE,lazbuild: fixed repeated build project clean: save project state file before compiling too<br />
*r36727 lazbuild: fixed expanding --lazarusdir<br />
*r36728 make useride: pass --lazarusdir=.<br />
*r36729 Improve TStringHashList, prevents a PO file update crash. Issue [[http://bugs.freepascal.org/view.php?id=21685 21685]]<br />
*r36730 IDE: project wizard: fixed fixed size, bug 21714<br />
*r36731 lazreport: fix possible access violation by checking dataset for nil<br />
*r36732 win32: fix range check error<br />
*r36733 lazbuild: auto create ide/revision.inc if missing<br />
*r36734 Gtk2: fixed mouse capturing on native scrolling win controls (TListBox,TListView etc).issue [[http://bugs.freepascal.org/view.php?id=21713 21713]]<br />
*r36735 LCL: TToolButton: commented debugln().<br />
*r36740 lazbuild: fixed uninitialized function result, fixed checking if init failed, quick check if lazarusdir is valid.<br />
*r36741 lazutils: Patch with font collection support from Circular<br />
*r36744 examples: Adds a OpenURL/OpenDocument test<br />
*r36745 LCL: Adds the sysenvapis include files to the lpk and adds an extra safety in OpenURL for users which forget to encode spaces in filenames<br />
*r36746 IDE: fixed fixed size dialogs<br />
*r36747 IDE: sort selection: layout<br />
*r36748 IDE: added debugging for sort selection<br />
*r36749 gtk2: clean up<br />
*r36750 IDE: less debugging<br />
*r36751 IDE: jump to next/prev error: fixed direction<br />
*r36752 LCL: TTreeView: clean up<br />
*r36753 IDE: next/prev error: clear multi selection<br />
*r36754 lcl: move interface initialization of TCustomEdit from CreateWnd to InitializeWnd. Consistent with other controls and allows interfaces to check is handle is being created<br />
*r36755 IDE: Add acceleration keys and fix tab order in Project Wizard and ImageListEditor, issue [[http://bugs.freepascal.org/view.php?id=21718 21718]]<br />
*r36756 lcl: remove TCustomListBox.Loaded. ItemIndex is initialized in InitializeWnd<br />
*r36757 lcl: call inherited after setting FLines in TCustomMemo.InitializeWnd. Fix potential crash since widgetset code expect FLines be initialized <br />
*r36758 lcl: check for csDestroyingHandle in TControl.HandleObjectShouldBeVisible. Fix issue [[http://bugs.freepascal.org/view.php?id=19882 19882]]<br />
*r36759 lcl: revert 31890 since issue [[http://bugs.freepascal.org/view.php?id=19882 19882]] is properly fixed now<br />
*r36760 gtk2: less hints<br />
*r36761 gtk2: less hints<br />
*r36762 Carbon: fixed result of TWSCarbonCustomListView GetTopItem,GetViewOrigin and GetBoundingRect. issue [[http://bugs.freepascal.org/view.php?id=21733 21733]]<br />
*r36763 Carbon: added themed TComboBox drawing.Patch by David Jenkins. issue [[http://bugs.freepascal.org/view.php?id=21747 21747]]<br />
*r36764 Carbon: added themed TComboBox drawing.Patch by David Jenkins. issue [[http://bugs.freepascal.org/view.php?id=21747 21747]]<br />
*r36765 Docs: added David Jenkins to contributors list<br />
*r36766 Carbon: make carbon widget visibility in sync with lcl. Patch by David Jenkins. issue [[http://bugs.freepascal.org/view.php?id=21731 21731]]<br />
*r36767 lcl: remove Destroying and DestroyWnd calls from TCustomListBox.Destroy<br />
*r36768 lcl: cleanup TCustomListBox.Create<br />
*r36769 codetools: fixed skipping include files in skipped ifdef<br />
*r36770 gtk2: less hints<br />
*r36771 gtk2: less hints<br />
*r36772 ide: fix selection painting of debugger eventlog colors list<br />
*r36773 carbon: improved TCarbonWidgetSet.RawImage_XXXX routines.Patch by David Jenkins. issue [[http://bugs.freepascal.org/view.php?id=21743 21743]].<br />
*r36774 carbon: proper initialization of alpha channel.Patch by David Jenkins. issue [[http://bugs.freepascal.org/view.php?id=21753 21753]]<br />
*r36775 LCL: implement ClientToParent, ParentToClient based on patch of David Jenkins (issue [[http://bugs.freepascal.org/view.php?id=0021763 0021763]])<br />
*r36776 LCL: extend TThemeServices.IsDisabled, IsHot, IsPushed for teCombobox<br />
*r36777 IDE: Fix tab order and set shortcuts in Application Options frame.<br />
*r36778 LazControls: fix potential crash in TListFilterEdit and TTreeFilterEdit<br />
*r36779 GTK2: add TGtk2WidgetSet.SetDesigning to prevent Abstract method call in IDE. Issue [[http://bugs.freepascal.org/view.php?id=21773 21773]]<br />
*r36780 IDE: fix tab order in Project Save Options frame.<br />
*r36781 IDE: fix tab order in frames: Build Modes editor, Miscellaneous Options and Version Info<br />
*r36782 IDE: fix tab order in option frames: Code Generation, Compilation, Linking, Messages, Parsing.<br />
*r36783 GTK2: clean up<br />
*r36784 GTK2: clean up<br />
*r36786 Carbon: removed extra code for teComboBox, since teComboBox is supported by themes as of r36776.<br />
*r36787 gtk2: clean up<br />
*r36788 gtk2: fixed Gtk2WidgetSet.ClipboardGetData mem leak on stream write error<br />
*r36789 gtk2: removed OldCreateStatusBarPanel<br />
*r36790 gtk2: clean up<br />
*r36791 gtk2: clean up<br />
*r36794 IDE: CloseQueryIDEWindows: skip sub forms<br />
*r36795 Fix crash in dbg-console, if dbg not active. issue [[http://bugs.freepascal.org/view.php?id=21712 21712]]<br />
*r36796 SourceEdit: use softcenter for Replace prompt. Issue [[http://bugs.freepascal.org/view.php?id=0021709 0021709]]<br />
*r36797 regenerated translations; updated Russian translation<br />
*r36800 IDE: when checking if a FPC unit has changed: ignore units that have no source in the FPC sources. Needed to ignore user units reachable through fpc.cfg.<br />
*r36801 IDE: fix error message can't find unit if the ppu is in one of the loaded packages<br />
*r36803 DOCS: correct the documentation about CanFocus<br />
*r36806 LCL: clear FActiveDefaultControl on that control destruction<br />
*r36810 LCL: fix copy paste error<br />
*r36811 LCL: don't update Default, Cancel during their applying in UpdateDefaultCancel<br />
*r36812 LCL: add and ability to use own TListItems, TListItem descendants in TListView for delphi compatibility<br />
*r36821 gtk2 intf: fixed compilation FPC_FULLVERSION<20600<br />
*r36822 gtk2 intf: clean up<br />
*r36823 gtk2 intf: clean up<br />
*r36824 gtk2 intf: clean up<br />
*r36825 LCL: initialize font height with the height from DefFontData<br />
*r36852 IDE: when checking if global unit has changed, skip units in packages<br />
*r36857,36859 LCL: TControl.UpdateBaseBounds: set cfBaseBoundsValid<br />
*r36861 LCL: TCustomSplitter.SetAnchors: adapt anchors before applying<br />
*r36870 LCL: SetAlign: restore the basebounds set before changes<br />
*r36877 LCL: clean up<br />
*r36882 LCL: TControl.SetAnchors: during disabled autosize: update basebounds when changing Anchors, bug 21730<br />
*r36884 LCL: fixed sending CM_EXIT,CM_ENTER when flastfocusedcontrol was removed<br />
*r36885 LCL: constraint Width,Height to >=0<br />
*r36888 Converter: fixed 'Missing units' dialog localization, part of bug 21784<br />
*r36889,r36890 codetools: class completion: fixed gathr proc definitions<br />
*r36891 IDE: show compiling resource lines when error on compiling resources<br />
*r36892 IDE: improved message when can not find unit and unit was found in a package<br />
*r36893,r36894 IDE: messages: show debug: lines and calling resource compiler<br />
*r36895,r36896 gtk2 intf: checking for liboverlay, using value-changed instead of change-value<br />
*r36897 LCL: made TImage.DestRect public<br />
*r36899 Fix encoding errors in Japanese translation<br />
*r36900,r36901 startlazarus: fixed asking for custom or default<br />
*r36902 LCL: fixed ShowModal() when Hide() is called on modal form to be Delphi compatibile.issue [[http://bugs.freepascal.org/view.php?id=15390 15390]]<br />
*r36903 IDE: fixed read/write designinfo, bug 21804<br />
*r36904 IDE: do not save a new project where only session was modified, bug 21803<br />
*r36905 gtk2 intf: fixed TGtk2WSCustomTabControl.GetDefaultClientRect to check if gtknotebook has a page<br />
*r36906,36907 codetools: AddLocalVar: do not add hidden used unit<br />
*r36908 Qt: added TQtWidget.testAttribute() function.<br />
*r36910 DBG: Tests for environment<br />
*r36913 TAChart: Set Brush.Color before Brush.Style to work around issue [[http://bugs.freepascal.org/view.php?id=21806 21806]]<br />
*r36914: TAChart: Fix compilation of OpenGL drawer<br />
*r36924 gtk2 intf: TGtk2WSCustomTabControl.GetDefaultClientRect for TTabControl<br />
*r36925 Qt: fixed resize events of TQtTabWidget and accurate information about clientRect changes. issue [[http://bugs.freepascal.org/view.php?id=21805 21805]]<br />
*r36929 Gtk2: fixed text background drawing in TGtk2WidgetSet.ExtTextOut() when BkMode = OPAQUE.issue [[http://bugs.freepascal.org/view.php?id=19384 19384]]<br />
*r36941 Translations: Brazilian Portuguese translation update by Marcelo B Paula, bug 21818<br />
*r36938,36939 LazReport, lift up to preview window improving layout and functionality, from Julio Jimenez B.<br />
*r36942 LazReport, avoid hiding text at some zoom values due small differences in text height calc (DONT MERGE YET, NEEDS MORE TESTING)<br />
*r36943 IDE: msg quickfix for cant find unit: add position<br />
*r36956 carbon: added FHasPaint variable to TCarbonWidget to allow owner draw.issue [[http://bugs.freepascal.org/view.php?id=21744 21744]]<br />
*r36957 carbon: added ScrollRect() routine to TCarbonWidget. issue [[http://bugs.freepascal.org/view.php?id=21741 21741]]<br />
*r36958 carbon: set FTabIndex instead ATabIndex variable in TCarbonTabsControl.SetPageIndex. patch by David Jenkins.issue [[http://bugs.freepascal.org/view.php?id=21728 21728]]<br />
*r36959 carbon: optimized caret drawing to not update whole widget.patch by David Jenkins. issue [[http://bugs.freepascal.org/view.php?id=21768 21768]]<br />
*r36960 carbon: fixed order of check width > height in TCarbonTrackbar.patch by David Jenkins. issue [[http://bugs.freepascal.org/view.php?id=21740 21740]]<br />
*r36961 carbon: implemented autosizing for listview / databrowser columns.patch by David Jenkins. issue [[http://bugs.freepascal.org/view.php?id=21745 21745]]<br />
*r36962 carbon: fixed possible bad loop in TCarbonSpinEdit.CreateWidget.Patch by David Jenkins.issue [[http://bugs.freepascal.org/view.php?id=21732 21732]]<br />
*r36965 IDEIntf: fixed typo<br />
*r36967 Gtk2: fixed retreiving font name from TGtk2WidgetSet.GetObject() when font is default. issue [[http://bugs.freepascal.org/view.php?id=21828 21828]]<br />
*r36968 codetools: JumpToPublishedMethodBody: raise error<br />
*r36969 codetools: fixed FindMethodNodeInImplementation for program<br />
*r36971 tests: codetools: added test for duplicate sections, parsing library<br />
*r36972 codetools: fixed reparsing initialization, finalization, begin<br />
*r36973 codetools: fixed treating initialization, finalization as statement<br />
*r36974,r36975,r36976,36977,36978 codetools: fixed find declaration in library starting in initialization, bug 21832<br />
*r36981,r36982 codetools: identifier completion: fixed continue searching<br />
*r36979 Updated Japanese translation by Haruyuki Fujimaki<br />
*r36980 Fix japanese encoding<br />
*r36983,r36984 codetools: identifier completion: some keywords for library, program<br />
*r36985 codetools: identifier completion: keyword initialization for library, issue [[http://bugs.freepascal.org/view.php?id=21839 21839]]<br />
*r36986 Updated Japanese translation by Haruyuki Fujimaki<br />
*r36990 codetools: identifier list: skip identifier at cursor<br />
*r36991,r36992 IDE: identifier completion: add do after with, issue [[http://bugs.freepascal.org/view.php?id=16850 16850]]<br />
*r36996,r36997,r36999,r37013,r37014,r37015 runtests: fixed compilation, added some tests<br />
*r37012,r37011,r37009,r37008,r37007,r37006,r37005,r37004,r37003,r37002,r37000 carbon interface: clean up<br />
*r37020 IDE: recent/history lists: replaced case sensitive comparison with three types<br />
*r37021 docking: update modified flags<br />
*r37022 codetools: fixed uninitialized result<br />
*r37025 IDE: use unit dialog: check for syntax errors<br />
*r37026,r37027 DBG: Prepare for different line endings. / Accept different line endings (#10, #13, #10#13, #13#10) issue [[http://bugs.freepascal.org/view.php?id=0021834 0021834]].<br />
*r37029 Gtk2: fixed drawing of text with solid brush. issue [[http://bugs.freepascal.org/view.php?id=21863 21863]]<br />
*r37031 Gtk2: do not draw text background if colormap isn't assigned. Second part of issue [[http://bugs.freepascal.org/view.php?id=21863 21863]].<br />
*r37032 gtk2: clean up old mouse capture<br />
*r37033 gtk2: fixed releasecapture<br />
*r37034 gtk2: verbosity for ubuntu liboverlay mouse capture bug<br />
*r37038 sqldb: Enable mssqlconnection for fpc >= 2.6.1 (patch from Reinier Olilagers, bug 21867) - added because creates conflicts with later sqldb merges<br />
*r37040: TAChart: Workaround for TDbChartSource referring to the dataset with Filtered := true<br />
*r37043 LCL, fix TPostScriptPrinterCanvas.ClipRect is empty-rect until explicitly set by user, patch from Joachim Paepke, issue [[http://bugs.freepascal.org/view.php?id=21027 21027]]<br />
*r37051 Translations: Ukrainian translation update by Igor Paliychuk<br />
*r37052 regenerated translations; updated Russian translation<br />
*r37053 LCL: fixed compilation for fpc 2.7.1<br />
*r37054,37055,37057 set TDBLookup.FListLink.DataSource dynamically to FListSource or a local datasource. Issue [[http://bugs.freepascal.org/view.php?id=15410 15410]]<br />
*r37067 LCL: fixed visibility of implemented interfaces<br />
*r37069 simple deb: using make bigide, updated list of tools<br />
*r37070 openglcontrol: fixed mem leak, issue [[http://bugs.freepascal.org/view.php?id=21597 21597]]<br />
*r37071 codetools: identifier completion: unit name of self<br />
*r37076 gtk2: clean up<br />
*r37077 IDE: clean up<br />
*r37092 LCL: fixed compilation for fpc 2.7.1<br />
*r37093 DBG: Testcase: fixed reading env-options<br />
*r37095 SynEdit: fix crash in overview gutter creation. Issue [[http://bugs.freepascal.org/view.php?id=0021887 0021887]]<br />
*r37096 SynEdit: Do not offer OverviewGutter in Gutter-parts designer<br />
*r37101 lazreport: fixed compilation with fpc 2.7.1, new TBookMark<br />
*r37102 lazreport: clean up<br />
*r37112,r37113 SynEdit: highlight class "helper". Fix wrong highlight of "sealed" Issue [[http://bugs.freepascal.org/view.php?id=0021812 0021812]]<br />
*r37115 openglcontrol: fixed mem leak, issue [[http://bugs.freepascal.org/view.php?id=21597 21597]]<br />
*r37126 LCL: Publish some TCheckGroup properties.<br />
*r37129 gtk2: clean up<br />
*r37154,37247,37248 lcl-db: prevent lookup initialization when dataset is destroyed<br />
*r37155 LCL, use rectclip to set clipping rectangle instead of current path because it sometimes get drawn on next stroke (related to r37043)<br />
*r37157 Qt: fixed key events from QCalendar, now tabbing works fine.<br />
*r37160 LCL: published missing properties TCalendar.Hint and TCalendar.TabOrder.<br />
*r37167 LCL: Fix range check error in StringGrid when sorting and RowCount=FixedRows, issue [[http://bugs.freepascal.org/view.php?id=21947 21947]]<br />
*r37073 codetools: resolve expr: thisunitname.implementationenidentifier<br />
*r37078 codetools: find declaration: selfunit.implementationidentifier<br />
*r37079,r37080,r37081,r37082,r37083,r37087,r37089,r37098 codetools: getsmarthint: class variables, enum, array of, inheritance, property params and type, use unit<br />
*r37085 IDE: show compiler options: check compiler<br />
*r37086,37088 IDEIntf: removed TLazCompilerOptions.LCLWidgetType, fixed computing default LCLWidgetType on cross target OS<br />
*r37090 codetools: do not try to search in record ancestors<br />
*r37105 DBG: Watches Copy Name/Value to clipboard. Issue [[http://bugs.freepascal.org/view.php?id=0021860 0021860]]<br />
*r37106 DBG: Register Copy Name/Value to clipboard. Issue [[http://bugs.freepascal.org/view.php?id=0021860 0021860]]<br />
*r37107 DBG: Watches, added inspect/evaluate to popup<br />
*r37116 DBG: Fix a possible crash in debugger (history). Issue [[http://bugs.freepascal.org/view.php?id=0021901 0021901]]<br />
*r37195 SourceEdit: Do not access outdated tab-history entries (dangling pointers). Issue [[http://bugs.freepascal.org/view.php?id=0021939 0021939]]<br />
*r37196 SourceEdit: Only add tabs to tab-history that were accessed<br />
*r37103,r37132 codetools: nested types: Self and inherited<br />
*r37104,r37120 codetools: GetSmartHint: show anonymous arrays<br />
*r37111 IDE: Make Close button work in Components List dialog. Issue [[http://bugs.freepascal.org/view.php?id=21892 21892]],<br />
*r37118 IDE: build ide: if building fails, clear flag clean up once<br />
*r37119 IDE: when building IDE failed: restore backup<br />
*r37121,r37122 IDE: select frame: search in packages<br />
*r37130 IDE: select frame: search in packages<br />
*r37131 LCL, implements textrect clipping in Postscriptprintercanvas<br />
*r37133 SynEdit: Fix WantTabs / Change default to "True" Issue [[http://bugs.freepascal.org/view.php?id=0021904 0021904]]<br />
*r37134 SynEdit: Remove not required invalidation (paint / call to wrong Update() )<br />
*r37135 SynEdit: Remove wrong implementation of Update. Update no longer forwards to Invalidate<br />
*r37136 IpPro: Fix painting for SelectAll<br />
*r37137 IDE, IpPro: Allow copy to clipboard from hint (zeljko added because of conflict in 37345)<br />
*r37140 cody: show code node info: show complete source<br />
*r37141 SynEdit: Fixed Caret paint error (extra caret left on screen) Issue [[http://bugs.freepascal.org/view.php?id=0021924 0021924]]<br />
*r37143 IDEIntf: added TPropertyEditorHook.IsSelected<br />
*r37144 IDEIntf: TDefaultComponentEditor: always select component<br />
*r37146 IDE: if component class is missing: note about RegisterClass<br />
*r37148 Translations: Ukrainian translation cleanup<br />
*r37149 IDE: regenerated translations; updated Russian translation<br />
*r37151 cody: IDE item to create dockable IDE window<br />
*r37152 cody: new IDE window: show dialog to setup form name<br />
*r37162,r37163 IDE: TProjectFileDescriptor.DefaultResourceName: first try without appending a number, check for pascal keywords<br />
*r37164,r37165 IDE: fixed DoGetUnitRegisterInfo for virtual files<br />
*r37166 SynEdit: Fixed Caret when scrolling under older Wine (Win Emulator)[[http://bugs.freepascal.org/view.php?id=21929 21929]]<br />
*r37212 sqldb: added icon for TMySQL55Connection for fpc 2.6.1 '<br />
*r37213,r37214,r37219 codetools: do not save errors outside parser<br />
*r37215 codetools: GetSmartHint: ^, .., file of, class of<br />
*r37220 Translations: Czech IDE translation update by Martin Smat<br />
*r37224 SynEdit: Autocompletion, workaround for click on hint Issue [[http://bugs.freepascal.org/view.php?id=21952 21952]]<br />
*r37231 SynEdit: Prevent some scrolling, while selecting by mouse. Issue [[http://bugs.freepascal.org/view.php?id=0021996 0021996]]<br />
*r37232 DBG: Inspect window, improve scrolling<br />
*r37234 DBG: Improve start-up to work with bug in gdb 7.4<br />
*r37262 searching compiler: search first in dir of fpc.exe, then in PATH<br />
*r37263,r37265 codetools: improved error message on unit not found<br />
*r37264 fix setting radiogroup.itemindex under gtk2. Issue [[http://bugs.freepascal.org/view.php?id=22013 22013]]<br />
*r37267 Docs: improved build_lcl_docs robustness when working with TProcess, patch from Reinier Olislagers, bug 22000<br />
*r37273 SourceEditor: Fix crash when closing several tabs, while debugging (paused / loading line info). Maybe related to issue [[http://bugs.freepascal.org/view.php?id=22015 22015]]<br />
*r37274 Fix Crash in building "Windows" (list of open W.) Menu. Note 0059576 in Issue [[http://bugs.freepascal.org/view.php?id=22015 22015]] (not related to other parts of issue)<br />
*r37280 SQLdb: added missing tmysql55connection.png, bug 22033 '''Related to 37212 and other revisions for TMySQL55Connection'''<br />
*r37281 SynEdit: protect ProcessCommand() against early destruction by ReleaseComponent. Issue [[http://bugs.freepascal.org/view.php?id=0022035 0022035]]<br />
*r37285 IDE: make Close button work in Window Manager<br />
*r37286 Patch from bug 21651, automatically adds quotes to paths with spaces for OpenDocument in Mac OS X<br />
*r37297,r37298 SynEdit, Pas-HL: record helper, deprecated in object<br />
*r37311 Translations: Arabic IDE translation update by Mazen NEIFER<br />
*r37312 IDE: Make Help button work in Editor Window Manager, issue [[http://bugs.freepascal.org/view.php?id=21961 21961]]. (zeljko added to merge list because of conflicts in 37491)<br />
*r37325 regenerated translations; updated Russian translation<br />
*r37326 Translations: Brazilian Portuguese translation update by Marcelo B Paula, bug 22064<br />
*r37327 IDE, Code Generation options: changed wrong -Op386 option to correct -Op80386. Patch by barlone with some consistency changes, bug 22062.<br />
*r37357 Gtk2: fixed mbAll button on dialogs. Added response keys which does not exist in gtk2. issue [[http://bugs.freepascal.org/view.php?id=22083 22083]]<br />
*r37344 gtk2 intf: less hints<br />
*r37345 ipro: less hints <br />
*r37359 lazreport: German translations<br />
*r37360 cody: German translations<br />
*r37039,r37319,r37324,r37361 sqldb: German translations (zeljko added 37039,37319,37324 because of conflicts)<br />
*r37362 educationlaz: German translations<br />
*r37363 ide: German translations<br />
*r37372 lcl: don't access Items of TreeView if DragOver happens during treeview destruction<br />
*r37373 IDE: debugger options: check the resolved file, bug 22086<br />
*r37374 Qt: bypass windowmanager when showing dragimagelist.<br />
*r37375 Gtk2: do not show taskbar entry for dragimagelist.<br />
*r37376 IDE: update TUnitInfo.ResourceBaseClass on loading lfm<br />
*r37378 [Edited, includes selected lines of 37402] SourceEditor: Hide hint, when mouse moves (even if outside IDE, or IDE is not active). Issue [[http://bugs.freepascal.org/view.php?id=0022016 0022016]]<br />
*r37368 DBG: Fixed array len for 64 bit<br />
*r37369 lcl: don't crash when either DragTarget or dragged control is freed (issue [[http://bugs.freepascal.org/view.php?id=22067 22067]])<br />
*r37370 lcl: cleanup debug info<br />
*r37371 lcl: fixed a memory leak when canceling drag of dead control<br />
*r37380 SourceEdit/DBG: Ensure Codebuffer is updated before using it to add watches<br />
*r37383 IDE: TUnitInfo.fModified: do not set on get<br />
*r37384,r37401 IDE: do not set TUnitInfo.Modified when committing source editor to codetools<br />
*r37388,r37389,r37390,r37391,r37392 tests: added tests for cfgscripts, fixed unit output directory, cfgscript: fixed error message if semicolon is missing, IDE: added conditionals functions GetIDEValue, GetEnv, LCL: use IDE widgettype as default<br />
*r37397 TodoList: properly trim comment markers and convert multiline text to single line, fixes bug 22085. Based on patch by Anton.<br />
*r37400 codetools: fixed mem leak<br />
*r37418: TAChart: Fix range check using datapoint tool on a chart without series<br />
*r37440 DBG: do not set temporary stack = -1 in thread changing. This may cause errors<br />
*r37444 DBG: Watches, save "Use instance class" to config<br />
*r37449 LCL: fixed comments<br />
*r37451 Qt: fixed wrong SetCapture() under win32. Problem was passed TQtWidget handle instead of underlaying widget winID() which is native handle.<br />
*r37453 SynEdit: Fix goto bookmark and persistent block. Do not clear persistent block<br />
*r37461 lcl: TCustomForm.UpdateDockCaption: fixed repair garbage<br />
*r37463 IDE: when docked keep IDE caption<br />
*r37464 Help, DBG: New link to wiki for watch properties<br />
*r37475 codetools: TCustomCodeTool.FindLineEndOrCodeAfterPosition: fixed crash when at end of code<br />
*r37476 codetools: clear nodes behind, when linkscanner parsed only parts<br />
*r37481 IDE: fixed storing old LCLWidgeType, bug 22174<br />
*r37482 codetools: save parse error of operator, do not save errors outside parser, fixed parsing method name with generic parameter<br />
*r37483 codetools: allow keywords in program name<br />
*r37534 Qt: do not call setValue() but setPosition() so lcl gets accurate values later. issue [[http://bugs.freepascal.org/view.php?id=22187 22187]]<br />
*r37491 Help, DBG: Link to wiki for breakpoint properties (zeljko - 37312 is merged too, because of conflicts)<br />
*r37470 IDE, DBG: debug-eval hint, do not show, if selection exceeds one statement (e,g whole file selected). Part of issue [[http://bugs.freepascal.org/view.php?id=0022081 0022081]]<br />
*r37471 SourceEditor: Fix an issue with focusing an editor, that is being closed (while debugging) "no parent handle". Issue [[http://bugs.freepascal.org/view.php?id=0022015 0022015]]<br />
*r37517 SynEdit: fixed folding for "case" and "try" in certain code segments (initialization / case...else try)<br />
*r37518 SynEdit: Pas-HL: fix detection of case...else versus if...then...else<br />
*r37522 SynEdit: Pas-HL: better detection of case...else<br />
*r37623 SourceEditor: Fix (Work-around) an issue with focusing an editor, that is being closed (while debugging) "no parent handle". Issue [[http://bugs.freepascal.org/view.php?id=0022015 0022015]] // Required some parts of r37502<br />
*r37609 DBG: Avoid re-queuing of dis-assembler requests, after cancelling it. Part of issue [[http://bugs.freepascal.org/view.php?id=0022230 0022230]]<br />
*r37643 DBG: Disassembler: prevent disassembler from doing large address ranges, if gdb returns data with far away addresses. Issue [[http://bugs.freepascal.org/view.php?id=0022230 0022230]]<br />
*r37657 DBG: fixed a out of index error, in watches history<br />
*r37694 DBG: Fixed possible crash in watch evaluation (WatchValue freed while evaluating / in GetValue)<br />
*r37466 IDE: added menu item to insert MIT license text<br />
*r37407,r37474,r37492 IDE: TMainIDE.DoSourceEditorCommand: improved focus check, requires r37466<br />
*r37564 LCL: TCustomListView: reset FCacheIndex and FCacheItems before sorting list, otherwise we'll have unexpected results. issue [[http://bugs.freepascal.org/view.php?id=22218 22218]]<br />
*r37505, r37509, r37516, r37523 fixed compilation with fpc 2.7.1<br />
*r37592 lcl: fixed compilation fpc 2.7.1<br />
*r37525 TAChart: Display legend symbols even if the text is empty<br />
*r37565 TAChart: Display major axis marks at the edges of the clip range<br />
*r37576 TAChart: Fix infinite recursion when drawing chart listbox from series with Legend.Multiplicity <> lmSingle<br />
*r37588 TAChart: Include Item.Y in reordered list of TCalculatedChartSource. Update test. '''This will break old tests. Please contact me for a fix --- Ask'''<br />
*r37727 TAChart: Update to the recent version of FPVectorial<br />
*r37587 Qt: unset icon when doing internal sync after sorting. part of issue [[http://bugs.freepascal.org/view.php?id=22218 22218]]<br />
*r37620 LCL: invalidate parent preferredsize when borderspacing changed, bug 17947<br />
*r37621 LCL: clean up - invalidate in TControl.DoBorderSpacingChange no longer needed with new autosizing<br />
*r37622 lazutils: added missing file<br />
*r37624 LCL: GetClientRect: if interface has the right width,height trust the clientrect, this avoids some unneeded resizes<br />
*r37573 IDE: project inspector: add files: allow dotted unit names, bug 22209<br />
*r37619 IDE: open package dependency: try provides, issue [[http://bugs.freepascal.org/view.php?id=17960 17960]]<br />
*r37628 IDE: compiler options: disable target platform for packages<br />
*r37594 codetools: fixed Unneeded extra space in event assignment completion<br />
*r37613 codetools: property completion: add class var for class property variables<br />
*r37614 codetools: class completion: search variables in all sections, bug 22246<br />
*r37625,r37626,r37627 codetools: class completion: fixed searching var node when first is class var<br />
*r37629 codetools: fixed adding class keyword for property setter of a class property<br />
*r37630 IDE: codeexplorer: labels<br />
*r37634 IDEIntf: objectinspector: fixed painting outside paint event<br />
*r37631 codetools: no var node for anonymous record case variables<br />
*r37632 codetools: identifier completion: when creating an override hide higher visibility members<br />
*r37633 codetools: class completion: add static method modifier for setter of class property<br />
*r37636 codetools: class completion: add static method specifier for class property setter<br />
*r37635 IDE: paste component: fix renamed references<br />
*r37637,r37638,r37639 IDE: paste multiple components: fix references, lcl: LRSObjectTextToBinary: write convert list of components<br />
*r37640 IDE: paste components: update TControl.Caption<br />
*r37642 lcl: fixed LRSObjectTextToBinary toWString, issue [[http://bugs.freepascal.org/view.php?id=19650 19650]]<br />
*r37644 codetools: fixed inserting proc bodies in implementation in front of methods<br />
*r37652,r37653,r37655 codetools: using TFileStreamUTF8<br />
*r37656 IDE: using TFileStreamUTF8 and TStringListUTF8<br />
*r37663 IDE: fixed show info on --help when no stdout exists<br />
*r37689 LCL: fixing handling of special keys for TCustomEdit and TCustomMemo<br />
*r37690 codetools: forward proc completion: stay in same section<br />
*r37697 DBG: Dialogs, don't give help related commands to IDE. They will be ignored<br />
*r37698 IDE Help: add urls for dbg dialogs<br />
*r37703 lazutils: utf8pos: added optional parameter StartPos<br />
*r37704 IDE: setup dialog: show fpc source directory release version as warning instead of error<br />
*r37707 tools create deb+rpm: use 128x128 icon<br />
*r37705 SynEdit: open and close clipboard explicitly to write multiple formats.<br />
*r37714 lcl: gtk2: warn only once about liboverlay<br />
*r37711 lhelp: cleaned up paths<br />
*r37712 lhelp: clean up<br />
*r37713 lhelp: resolve macros in HelpEXE on the demand<br />
*r37715 chmhelp: using search path to search for chm files<br />
*r37716,r37717 chmhelp: added path $(LazarusDir)/docs/chm<br />
*r37718 'hmhelp: search ref.chm in docs/chm<br />
*r37726 create_lazarus_deb: added option chmhelp<br />
*r37722 DBG: Event-Log: Do not cache Options. Allow user to change options while debugging<br />
*r37596 Patch from {{MantisLink|0022231}} "fix warnings with fpc 2.6.1".--[[User:AlexVinS|AlexVinS]] 21:40, 8 June 2012 (UTC)<br />
*r37745 deb+rpm: default environmentoptions: updated to 107, removed default gdb entry<br />
*r37748,r37755 lhelp: added makefile<br />
*r37749 make bigide: build lhelp<br />
*r37753 IDE: fixed comparing file names case insensitive<br />
*r37754 lazutils: inlined UTF8CompareStr<br />
*r37760 Use Utf8CompareText instead of AnsiCompare<br />
*r37762 linux: added encoding to desktop file<br />
*r37769 Use Utf8CompareText instead of AnsiCompare<br />
*r37770 TAChart: Fix AV when clearing Series.Styles and TColorMapSeries.ColorSource properties<br />
*r37772 Use Utf8CompareText instead of AnsiCompare<br />
*r36804 win32: mark client rect as required update before WM_SIZE passing, remove DoAdjustClientRectChange - they are called inside WM_SIZE handler after the client rect is updated (fixes bug [[http://bugs.freepascal.org/view.php?id=0021724 0021724]])<br />
**Paul remarked about r36804: "Please don't merge it for at least 2 weeks". Also seems to cause problems in grids, see [http://bugs.freepascal.org/view.php?id=21790 issue [[http://bugs.freepascal.org/view.php?id=21790 21790]]].<br />
*r36993: LCL, fixed Problems setting Width, Height for TCustomGrid if ScrollBars is auto, from cobines, issue [[http://bugs.freepascal.org/view.php?id=21790 21790]]. If r36804 is merged, please merge also r36993<br />
*r37783 startlazarus: linux: adding LIBOVERLAY_SCROLLBAR=0 to avoid problems with mouse capturing<br />
*r37785 gtk2 intf: disable liboverlay by default<br />
*r37790 gtk2 intf: use setenv only on Linux<br />
*r37795: export tgz: added option to add chm files<br />
*r37796 IDE: when copying secondary configs create the primary config directory first<br />
*r37797 rpm: added option chmhelp<br />
*r37810 rpm: fixed building without chmhelp<br />
*r37811 lhelp: fixed invalid recent item path in config, added build modes default,debug<br />
*r37814 chmhelp: clean up old ipc files to prevent IDE hang<br />
*r37817-r37821 MAKE DEB<br />
*r37838 DBG: Fix handling console input<br />
*r37824 chmhelp: Fixed lazarus hanging when chmhelp pipe is leftover from an improperly closed lhelp<br />
*r37825 chmhelp; Fixed chmhelp typo (boolean error)<br />
*r37826 chmhelp: fixed bug where a new lhelp process could be started each time F1 was pressed<br />
*r37841 DBG: Pseudo-Terminal, accept tabs<br />
*r37848 lazutils: docs: fixed encoding and package name<br />
*r37849 lcl: docs: fixed encoding<br />
*r37850 ide: docs: fixed encoding<br />
*r37851 updated docs<br />
*r37853 lcl: docs: fixed some links<br />
*r37852 build_lcl_docs: using UTF-8 file functions, added option -h<br />
*r37855 build_lcl_docs: showcmd: show working directory<br />
*r37861 lcl: check if ListDataset is loading to update lookup info. Issue [[http://bugs.freepascal.org/view.php?id=22337 22337]]<br />
*r37846 win32: let TComboBox.CloseUp fire before Change (delphi compatible). Fix 22352<br />
*r37880 IDE+startlazarus: use same working directory, needed for passing relative file names as command line parameters, fixed building lcl+lazutils chm on ubuntu 12<br />
*r37866 lazutils: fixed unit names<br />
*r37868 lazutils: added fpdoc files<br />
*r37869 docs: building lazutils+lcl chm<br />
*r37885 DBG: fixed parsing sets for debug-inspector<br />
*r37906 IDE-Options / SynEdit: Fixed RightEdge visibility (Recression)<br />
*r37919 DBG: Prevent potential crash/memory-corruption in Watches<br />
*r37920 DBG: Prevent potential crash in (dbg-)OnIdle handling<br />
*r37921 DBG: Prevent build up of no longer needed commands in queue<br />
*r37945 DBG: Prevent a crash, when the selected snapshot is deleted. Cas also happen when starting the debugger, while a snapshot from previous run is active<br />
*r37950 DBG: fixed endless loop in watch eval (auto type cast) Issue [[http://bugs.freepascal.org/view.php?id=0022425 0022425]]<br />
*r37961 DBG: Disable rangechecks for certain PtrUInt casts<br />
*r37993 carbon: fixed crash of IDE when compiled with range checks on<br />
*r38006 gtk2: fixed crash on QuestionDlg<br />
*r38003 IDE: fixed showing custom project options, issue [[http://bugs.freepascal.org/view.php?id=22486 22486]]<br />
** merged ONLY main.pp<br />
*r38016 ToDoList: fixed encoding of French translation, it should be UTF-8, not ISO-8859-1. Patch by batyann811, bug 22489.<br />
*r37981,37983-37989,38001,38004-38005,38012,38017 Win Installer<br />
===== Fixed after RC1 =====<br />
*r38127 IDE, EditorOptions: Fixed finding color attribute in localized IDE<br />
*r38132 IDE: setup: after changing lazarusdir: fetch translations and translate<br />
*r38133 chmhelppkg: invoke lazbuild with --pcp parameter<br />
*r38138 examples: testall: fixed start<br />
*r38139 examples: cleandirs: error for fpc version<br />
*r38140 examples: componentstreaming: fixed typo, clean up<br />
*r38141 lazfreetype: fixed range check error, improved error message<br />
*r38142 examples: mssqlconn: requires fpc 2.6.1<br />
*r38144 examples: synguttermarks: win32 gui mode, fixed Left position<br />
*r38146 examples: tv_add_remove: updated<br />
*r38147 examples: xmlreader: added example xml<br />
*r38157 IDE: fixed saving ambiguousfileaction, bug 22573<br />
*r38158 examples: clean up<br />
*r38038 TAChart: Allow spaces in field names inside TDbChartSource.FieldY<br />
*r38168 synuni: clean up fpc options<br />
*r38170 synuni, semaphorgridlpk: clean up fpc options<br />
*r38022 SynEdit: Fixed drawing errors for frames (left frame site drawn at wrong offset)<br />
*r38145 LCL: TListView fixed "List index out of bounds" while deleting items. issue [[http://bugs.freepascal.org/view.php?id=22552 22552]]<br />
*r38150 SynEdit TSynMultiSyn: Fixed crash when deleting lines. Part of issue [[http://bugs.freepascal.org/view.php?id=0022519 0022519]]<br />
*r38151 SynEdit Highlighter: Fixed crash when scanning empty<br />
*r38152 SynEdit TSynMultiSyn: typo<br />
*r38175 SynEdit TSynMultiSyn: Fixed updating, when appending to EOT. Part of issue [[http://bugs.freepascal.org/view.php?id=0022519 0022519]]<br />
*r38205 lazaruside.fi.po: Finnish translations<br />
*r38180 Synedit: fix matching-bracket-highlight in comments (closing bracket at eol) issue [[http://bugs.freepascal.org/view.php?id=22586 22586]]<br />
*r38198 IDE: Export to html, do not enforce check for writeable. Issue [[http://bugs.freepascal.org/view.php?id=22588 22588]]<br />
*r38199 lazutils: do not use winodws W functions under Win98, issue [[http://bugs.freepascal.org/view.php?id=22596 22596]]; '''Breaks compilation on wince, because win32platform is not defined.'''<br />
*r38202 openglcontrol: win32: fixed sharing context<br />
*r38204 Synedit: fixed typo in IFDEF for fpc 2.60 bug<br />
*r38225 TAChart: Fix division by zero in zoom tools with extreme zoom ratios<br />
*r38226 TAChart: Fix hang in functional series with extreme zoom ratios<br />
*r38223 SynEdit TSynMultiSyn: Several fixes issue [[http://bugs.freepascal.org/view.php?id=0022519 0022519]]<br />
*r38232 TAChart: Add InRangeUlps utility function<br />
*r38233 TAChart: Fix disappearance of axis marks located exactly at chart bounds<br />
*r38234 TAChart: Fix crash when setting Marks.LabelFont from the Object Inspector<br />
*r38237 Examples/SynEdit: Readme and typo in comment<br />
*r38266 IDE: Tweak the layout of ManageExamplesForm<br />
*r38260 TAChart: Use correct notification when the series' source changes<br />
*r38261 TAChart: Issue change notifications when modifying TListChartSource.DataPoint property<br />
*r38285 lhelp: replace MessageBox, with Form.Modal. FIx IPC hang. issue [[http://bugs.freepascal.org/view.php?id=0022592 0022592]]<br />
<br />
===== Fixed after RC2 =====<br />
*r38293 windows installers: don't ask to overwrite the environment options in the secundary config directory from Reinier Olislagers<br />
*r38339 SynEdit TSynMultiSyn: Fix CaseSensitivity for Sheme marker. Issue [[http://bugs.freepascal.org/view.php?id=0022693 0022693]]<br />
*r37386 Remove writeln() that looks like a residual debug message. Issue [[http://bugs.freepascal.org/view.php?id=0022544 0022544]]<br />
*r38385 Translations: removed unmaintained Portuguese translation, which was outdated copy of Brazilian Portuguese one<br />
<br />
== How to merge ==<br />
The lazarus developers have decided to use the native svn merge for this branch. Other branches used the svnmerge.py script to manage the revisions to be merged.<br />
<br />
* TODO: Maybe this information should be put in a separate page.<br />
<br />
[[SVN_Migration#Merge_with_plain_svn]]<br />
=== Using TortoiseSVN ===<br />
As noted in the link above using TortoiseSVN is more or less self explaining. <br />
<br />
* TODO: add some screen shots.<br />
<br />
When committing, in the recent messages a nice commit message is available.<br />
<br />
Tested with TortoiseSVN 1.7.6, SVN 1.7.4.<br />
<br />
=== Show list of revision that can be merged ===<br />
In the lazarus fixes_1_0 directory do:<br />
svn mergeinfo ^/trunk --show-revs eligible<br />
Or if you don't have a fixes directory checked out, you can pass the URL path of the fixes branch:<br />
svn mergeinfo ^/trunk http://svn.freepascal.org/svn/lazarus/branches/fixes_1_0 --show-revs eligible<br />
<br />
=== Show list of revision that have been merged ===<br />
In the lazarus fixes_1_0 directory do:<br />
svn mergeinfo ^/trunk --show-revs merged<br />
<br />
=== Merging revisions from trunk ===<br />
To merge one or more revisions from trunk, use the svn merge command. For example to merge revision 36506 and 36510 use:<br />
svn merge -c 36506,36510 ^/trunk<br />
<br />
To generate a commit log message, use:<br />
svn log ^/trunk -c 36506,36510 > svnmerge-commit-message.txt<br />
<br />
Edit svnmerge-commit-message.txt with your favorite text editor and add a first line like:<br />
Merged revision 36506,36510 from /trunk.<br />
<br />
Commit this with:<br />
svn commit -F svnmerge-commit-message.txt<br />
<br />
=== Blocking a revision to be merged ===<br />
Sometimes you want to block a revision to be merged, i.e. you want to make sure that this revision is never merged to the fixes branch, for example, because it contains a new feature or it contains a version number change not applicable to the fixes branch, but only to trunk. To block revision 36507, use:<br />
svn merge -c 36507 --record-only ^/trunk<br />
Then you can create a log message with:<br />
svn log ^/trunk -c 36507 > svnmerge-commit-message.txt<br />
Edit svnmerge-commit-message.txt with your favorite text editor and add first line like:<br />
Blocked revision 36507 from /trunk<br />
Then commit this change:<br />
svn commit -F svnmerge-commit-message.txt</div>
Paul Ishenin
https://wiki.freepascal.org/index.php?title=Lazarus_1.0_fixes_branch&diff=62072
Lazarus 1.0 fixes branch
2012-09-26T00:08:51Z
<p>Paul Ishenin: /* Submitted by developer / committer */</p>
<hr />
<div>This page contains the revisions to be merged from trunk to the [http://svn.freepascal.org/svn/lazarus/branches/fixes_1_0/ Lazarus 1.0 fixes] branch.<br><br />
Release notes can be found here [http://wiki.lazarus.freepascal.org/Lazarus_0.99.0_release_notes Release notes]<br />
<br />
== Fixes for 1.0.2 ==<br />
=== Merge requests ===<br />
==== Submitted by developer / committer ====<br />
<br />
*r38735: TAChart: Fix memory leak in TDbChartSource.BeforeDraw<br />
*r38737: TAChart: Fix drawing of pie series with data from the db source<br />
*r38754: TAChart: Fix hang when changing TLineSeries.ShowPoints while drawing chart<br />
*r38757: TAChart: Display crosshair tool on mouse down<br />
*r38779: TAChart: Do not notify from TListChartSource.SetXValue and SetYValue if the value did not actually change.<br />
*r38780: TAChart: Add TBasicPointSeries.MovePoint overload for graph coordinates ''not a fix, but required for r38788''<br />
*r38788: TAChart: Support axis transformations in TCustomChartSeries.MovePoint<br />
*r38792: TAChart: Fix crash on deleting subcomponent with active property editor<br />
*r38802: lcl:revert 33020, 33082, 33086, part of 33089 and 33389. These changes made the hint behavior Delphi incompatible thus leading to a regression in third party control like VirtualTreeView that handles hints in CMHintShow. Retrieve parent hint recursively if hintcontrol.hint is empty' (delphi compatible)<br />
*r38816 LazUtils: improve unicode path/filename handling by Fileutil.ReadFileToString, patch from Takeda Matsuki, bug 22953<br />
*r38826 Qt: TQtWidgetSet.SetScrollInfo - fixed wrong result, it must return real slider position, not value which might be out of sync with position. This fixes problems with TScrollingWinControl (TControlScrollbar).<br />
<br />
==== Submitted by others ====<br />
<br />
=== Merged revisions for 1.0.2 ===<br />
*r37217,37218,37225,37239,37241,37293,37304,37316 Qt: fixed keys handling (arrow keys & enter).<br />
*r38396 LCL: ColorBox - keep FSelected in sync all the time. fixes issue [[http://bugs.freepascal.org/view.php?id=22729 22729]]<br />
*r38426 CodeBrowser: check for virtual units. Issue [[http://bugs.freepascal.org/view.php?id=0022740 0022740]]<br />
*r38428 SynEdit, MultiHighlighter: fix adding text/sections at EOL. issue [[http://bugs.freepascal.org/view.php?id=0022745 0022745]]<br />
*r38430 TAChart: Fix out-of-bounds access when drawing empty polygons and polylines<br />
*r38437 ide: project target: apply default extension even if the file has already an extension, issue [[http://bugs.freepascal.org/view.php?id=22750 22750]]<br />
*r38444 IDE: fixed crash when releasing non existing component palette select button<br />
*r38473 tests: fixed compilation<br />
*r38464 TAChart: Fix error message in TFPCanvasDrawer.RadialPie<br />
*r38486 avglvltree: setcompare: set when count=0<br />
*r38503 TAChart: Copy BaseLength in TChartArrow.Assign<br />
*r38507 EditorOpts: default for top-info-hint<br />
*r38509 Debugger: Ensure Queue is not blocked by LineInfo Request. (If a LineInfoRequest was queued the DebuggerCurrentLine could not search the stack, as commands were not immediately run)<br />
*r38519 Gtk2: fixed crash with TListView when viewstyle is vsIcon or vsSmallIcon. issue [[http://bugs.freepascal.org/view.php?id=22778 22778]]<br />
*r38520 Qt: do not propagate keyrelease event as action trigger. issue [[http://bugs.freepascal.org/view.php?id=22737 22737]]<br />
*r38531 Debugger: Workaround to fix exe-line-indicators (blue dots) at debug start<br />
*r38533 Qt: fixed header offset and getClientRect for TListView when ViewStyle=vsReport.<br />
*r38547 TAChart: Support Y NaNs in polar series ''(this will cause compilation error -- please remove 'and CloseCircle' part from the last conditional in the TPolarSeries.Draw procedure)''<br />
*r38557 TAChart: Support brush style, pen style and pen width in fpvectorial drawer<br />
*r38571 TAChart: Draw chart correctly after decrease of an axis margin<br />
*r38529,r38530,r38535,r38543,r38548: fix carbon clipping, correctly return region types on HRGN related operations, fix generic IntersectClipRect routine<br />
*r38640,r38641,r38642,r38649: various ExtTextOut fixes for Carbon and Cocoa<br />
*r38551,r38552,r38562,r38563 Carbon: various winapi compatibility functions fixes<br />
*r38518 Qt: TQtWinApi.ExtTextOut() implemented Dx param. issue [[http://bugs.freepascal.org/view.php?id=22795 22795]] (zeljko will merge, need some testing)<br />
*r38572 Qt: propagate QEvent::ShortcutOverride to parent, so stop key event if shortcut is executed. issue [[http://bugs.freepascal.org/view.php?id=22827 22827]]<br />
*r38576,38577: Qt: fixed TQtWidgetSet.FrameRect(), now it uses passed brush to draw frame border.<br />
*r38610 Qt: fixed non ascii utf8 chars in TQtWidgetSet.ExtTextOut() when we use dx param. issue [[http://bugs.freepascal.org/view.php?id=22795 22795]] (depends on merging of r38518).<br />
*r38628,38629,38630,38634: Qt: fixed clipping bugs inside TQtWidgetSet.ExtTextOut()<br />
*38670 SynEdit: Fixed past eol paint error ** Must be ported by hand **<br />
*r38584 TAChart: Copy Attachment and YIndex in TGenericChartMarks.Assign ''(this code is in TATypes unit in v1.0)''<br />
*r38589 TAChart: Do not draw lines which should be invisible in OpenGL drawer<br />
*r38607 TAChart: Workaround for issue [[http://bugs.freepascal.org/view.php?id=22850 22850]] '''see patch in the mailing list'''<br />
*r38617 TAChart: Fix GetNearestPoint returning true with no points found inside radius, issue [[http://bugs.freepascal.org/view.php?id=22854 22854]]<br />
*r38644: Qt: fixed menu flickering. issue [[http://bugs.freepascal.org/view.php?id=22872 22872]]<br />
*r38651: TAChart: Fix zero division when calling ImageToGraph before the chart is drawn<br />
*r38674 Qt: fixed crash when invalid or null handle is passed into SetCapture.<br />
*r38679 Qt: update bitmap if TMenuItem has associated ImageList and ImageIndex. issue [[http://bugs.freepascal.org/view.php?id=22896 22896]]<br />
*r38672 SynEdit: fixed delete-next-word, if caret past eol. Issue [[http://bugs.freepascal.org/view.php?id=0022890 0022890]]<br />
*r38720 LCL, DefaultTranslator: fix handling of non-ASCII path to .po file, bug 22907, patch by Vladimir Zhirov<br />
*r37398 IDE: corrected version info language list, added Ukrainian language, bug 22103<br />
*r38722 IDE: added Lithuanian to version info language list, bug 22898<br />
*r38671: carbon: fix accidental error in index<br />
*r38743: carbon: reimplement linear gradient draw using shading to support OS X < 10.5<br />
*r38636,r38637: Gtk2: fixed text clipping and text background drawing<br />
*r38758: gtk2: allocate GdkColor when we need a BkColor<br />
*r38727,r38728,r38742,r38744,r38745,r38748: gtk2: fix clipping and DC transformations<br />
*r38747: gtk2: fix FrameRect - it must use a passed brush instead of selected one<br />
*r38373 Gtk2,Qt: make ETO_OPAQUE work from TCanvas.TextOut(). issue #22719<br />
*r38769-r38772: lcl, gtk2, carbon: full implementation of GradientFill<br />
*r38673 TAChart: Ignore NaNs while calculating TCustomChartSource.ValuesTotal<br />
*r38675 TAChart: Support Marks.Attachment = maCenter in pie series<br />
*r38694: TAChart: Fix update of TListChartSource.ValuesTotal cache when adding or removing NaNs<br />
*r38710: TAChart: Fix crash when using TChartExtentLink with LinkedChart.Chart = nil<br />
*r38712: TAChart: Fix crash while replacing linked chart in TChartExtentLink<br />
*r38713: TAChart: Use NumberOr function instead of checking for NaN explicitly<br />
*r38719: TAChart: Extract TDrawFuncHelper.ForEachPoint helper procedure ''This also fixes a hang while using data point tool on extremely zoomed-in series''<br />
*r38729: TAChart: Extract TDrawFuncHelper.XRange helper function. + Fix GetNearestPoint for rotated function series.<br />
*r38733: TAChart: Fix TChartSeries.SetColor to notify all listeners and require ListSource. Add TListChartSource.SetColor<br />
*r36674: TAChart: Add AddArray, AddNull, AddX and AddY functions to TChartSeries<br />
*r38697,38698 Gtk2: set TToggleBox.ParentColor default false so it's color is consistent with TButton when eg.parent color is clRed and TToggleBox.Color=clDefault.<br />
*r38709: Qt: improved triggering of OnClick() in QEventShowToParent. issue [[http://bugs.freepascal.org/view.php?id=22872 22872]]<br />
*r38799: gtk2: implement SPI_GETWHEELSCROLLLINES. Fix a regression in VirtualTreeView wheel scroll<br />
<br />
== Fixes for 1.0 ==<br />
=== Merged revisions for 1.0.0 ===<br />
==== Submitted by developer / committer ====<br />
*r36506 LazReport, fix barcode dialog localization (Jesus)<br />
*r36508 Updated Japanese translation<br />
*r36509 Window Column, store pointer to resourcestring<br />
*r36510 LazReport, fix barcode addin when TfrBarCodeObject is not yet instantiated (in this case barcode editor defaults to memo view.<br />
*r36511 DividerBevel: implemented Transparent.<br />
*r36514 IDE: moved macros save/saveall to source editor<br />
*r36515 IDE: update macro descriptions after translating resource strings<br />
*r36516 IDE: trim TLazPackageGraph.GetFallbackOutputDir<br />
*r36517 IDE: check if package needs rebuild: switch to fall back directory: update compiler params<br />
*r36518 IDE: install/uninstall package dialog: fixed icons, added info about current state<br />
*r36523,r36530 IDE: Export as HTML<br />
*r36526 CodeTemplate: Improve final caret pos, if tmpl does not specify<br />
*r36527 CodeTemplate: allow tab to trigger / selection to ignore. issue [[http://bugs.freepascal.org/view.php?id=0017631 0017631]]<br />
*r36528 SynEdit: Template(Syncro) fix invalidation<br />
*r36529 IDE: Printing: break long lines. Issue [[http://bugs.freepascal.org/view.php?id=0013479 0013479]]; <br />
*r36547 IDE: Printing: break long lines. Fix Utf8. Update for rev 36529<br />
*r36531 LazReport: fixed buttonpanel localization in BarCode editor dialog<br />
*r36533 IDE: clean up of unused resourcestrings<br />
*r36534, r36536, r36553, r36583, r36646 regenerated translations; updated Russian translation<br />
*r36535 IDE: more clean up of unused resourcestrings<br />
*r36537 Documents LCLIntf.GetDeviceCaps<br />
*r36538 IDE: always store lazarus directory<br />
*r36539 LazReport: uppercase variable before comparing with hardcoded functions. Properly fix to 21624<br />
*r36543 IDE: setup dialog: using same file resolving as IDE<br />
*r36546 IDE: consider empty lazarusdirectory as pcp, empty fpcsrcdir as lazdir, empty testdir as lazdir<br />
*r36548 IDE: fixed note about wrong laz dir<br />
*r36549 IDE: fixed crash on find identifier references<br />
*r36551 IDE: translate descriptions of all macros<br />
*r36552 IDE: fixed editor tab position combobox items localization on Editor/Misc options page<br />
*r36556,r36557 IDE: warn if upgrading configs<br />
*r36561, 36562, 36563, 36566: Improve Options/Keymap<br />
*r36565 LCL: Prevent TShape.stRectangle disappearing with certain Height/Width and Pen.Width values.<br />
*r36567,r36568,r36569 IDE: show downgrade warning<br />
*r36570 lazbuild: select IDE build mode, fixed compiling with different mode<br />
*r36572 LCL: set csCaptureMouse on TToolButton, but don't send click if mouse is out of ttoolbutton on mouseup.issues [[http://bugs.freepascal.org/view.php?id=19688 19688]],[[http://bugs.freepascal.org/view.php?id=21560 21560]]<br />
*r36574 IDE: fixed saving environment on every change<br />
*r36577 LCL, TreeView: fix GetNextVisible, GetPrevVisible. Issue [[http://bugs.freepascal.org/view.php?id=21264 21264]]<br />
*r36575 IDE/Setup dialog: force taskbar button to be shown<br />
*r36584 IDE: import package list: opendialog<br />
*r36587 IDE: intial setup: fpc src dir: lazdir/fpc/fpcver/source<br />
*r36588 IDE: intial setup: fixed if no candidates found<br />
*r36589,r36590 IDE: compiler file name: search first with macros<br />
*r36591 IDE: verbose search for candidates<br />
*r36592 IDE: search fpc src relative to fpc.exe<br />
*r36594 IDE: check compiler: only run common names<br />
*r36595,r36599 IDE: use under windows as default for make the make.exe in the compiler directory<br />
*r36596 IDE,codetools: fixed ppccross,crossppc to ppcross<br />
*r36601 IDE: unify the 2 filters in KeyMapping window. Prevent a potential crash.<br />
*r36603 debian: updated patches to latest source in lazarus svn<br />
*r36608 Gtk2: do not set widget name, it's completelly unnecessary and produce unexpected behaviour if some keywords are in widget name.issue [[http://bugs.freepascal.org/view.php?id=21661 21661]].<br />
*r36613 SynEdit: Fix an issue with Scrollbars not being updated<br />
*r36617 lazbuild: build ide: replace exe on windows<br />
*r36644 IDE: improved 'Export package list' dialog localization<br />
*r36645 IDE: improved 'Package Graph Explorer' dialog localization<br />
*r36647,r36653,r36654,r36655,r36656,36668,36673 IDE: view / IDE internal / what needs building<br />
*r36648,r36650,r36651 IDE: read state file created by Makefile: fix path delimiters, checking compiled state: ignore -v,-i,-B flags, do not skip all -F<br />
*r36652 IDE: codetools options: shorter caption<br />
*r36658 regenerated translations; updated Russian translation <br />
*r36659 LCL: Refactoring. Make TCalculatorDialog.Execute more understandable by removing a "with" block.<br />
*r36661 LCL: Prevent "Test Dialog" feature of Calculator and Calendar dialogs locking the IDE, issue [[http://bugs.freepascal.org/view.php?id=21644 21644]]<br />
*r36616 SynEdit: do not include IME for WinCe<br />
*r36662 LCL: implementation of TCustomImageList.GetIcon()<br />
*r36663 In GUI strings, unify all 3 dots to have a space before them ( ...)<br />
*r36664 IDE: Use CreateAbsolutePath when switching between relative/absolute paths in AddFile dialogs (CreateAbsoluteSearchPath gives wrong output)<br />
*r36665 LCL: publish TUpDown.OnChangingEx<br />
*r36666 IDE etc.: unify 3 dots in GUI string to have a space ( ...).<br />
*r36667 translation: german: updates from Swen Heinig<br />
*r36669 updatemakefiles: write which lpk have conditionals<br />
*r36670,r36671 IDE,lazbuild: create makefile: use CPPROG instead of COPY to get the current date for Makefile.compiled under Windows<br />
*r36649,r36657,r36602,r36672,r36675,r36677,r36679,r36683,r36701,r36708,r36709 Makefiles: updated, reduced dependencies, fixed double compiles<br />
*r36676 LCL: Implement TListItem.EditCaption, issue [[http://bugs.freepascal.org/view.php?id=20295 20295]].<br />
*r36680,r36699 lazbuild: fixed crash, replaced some MessageDlg with IDEMessageDialog<br />
*r36681 IDE,lazbuild: use parsed compiler filename, make filename<br />
*r36682 IDE: debugfilename, debugsearchpath: use same function as other env vars to resolve macros, trim and find<br />
*r36686,r36688 IDE/lazbuild backup, delete the same lazarus exe on all platforms<br />
*r36694 regenerated translations; updated Russian translation<br />
*r36695 LazDataDesktop: regenerated translations; updated Russian translation<br />
*r36696 IDE: add resource strings for various windows manifest keys<br />
*r36697 fix ImageList.AddMasked() in case of source image has no mask description<br />
*r36702 IDE: TProject.TitleIsDefault: check for project+number, fix for renaming the title of a new project<br />
*r36711 Qt: enable wordwrap on TQtStaticText. issue [[http://bugs.freepascal.org/view.php?id=21697 21697]].<br />
*r36712 LCL: fixed function result<br />
*r36713,r36715 lcl: fixed TToolButton.MouseUp X,Y in boundsrect check<br />
*r36716 LCL, combination of modal form + wsMaximized style produces tiny windows on GTK2, issue [[http://bugs.freepascal.org/view.php?id=21634 21634]]<br />
*r36717 LCL: reverted changes to menus.pp from r36666 (by Paul's request)<br />
*r36718 LCL: regenerated translations<br />
*r36719, *r36826 LCL: fix range check error<br />
*r36720 LazReport: added option to ignore undefined symbols, from Luiz Americo, issue [[http://bugs.freepascal.org/view.php?id=21683 21683]]<br />
*r36723,36724 IDE,lazbuild: fixed repeated build project clean: save project state file before compiling too<br />
*r36727 lazbuild: fixed expanding --lazarusdir<br />
*r36728 make useride: pass --lazarusdir=.<br />
*r36729 Improve TStringHashList, prevents a PO file update crash. Issue [[http://bugs.freepascal.org/view.php?id=21685 21685]]<br />
*r36730 IDE: project wizard: fixed fixed size, bug 21714<br />
*r36731 lazreport: fix possible access violation by checking dataset for nil<br />
*r36732 win32: fix range check error<br />
*r36733 lazbuild: auto create ide/revision.inc if missing<br />
*r36734 Gtk2: fixed mouse capturing on native scrolling win controls (TListBox,TListView etc).issue [[http://bugs.freepascal.org/view.php?id=21713 21713]]<br />
*r36735 LCL: TToolButton: commented debugln().<br />
*r36740 lazbuild: fixed uninitialized function result, fixed checking if init failed, quick check if lazarusdir is valid.<br />
*r36741 lazutils: Patch with font collection support from Circular<br />
*r36744 examples: Adds a OpenURL/OpenDocument test<br />
*r36745 LCL: Adds the sysenvapis include files to the lpk and adds an extra safety in OpenURL for users which forget to encode spaces in filenames<br />
*r36746 IDE: fixed fixed size dialogs<br />
*r36747 IDE: sort selection: layout<br />
*r36748 IDE: added debugging for sort selection<br />
*r36749 gtk2: clean up<br />
*r36750 IDE: less debugging<br />
*r36751 IDE: jump to next/prev error: fixed direction<br />
*r36752 LCL: TTreeView: clean up<br />
*r36753 IDE: next/prev error: clear multi selection<br />
*r36754 lcl: move interface initialization of TCustomEdit from CreateWnd to InitializeWnd. Consistent with other controls and allows interfaces to check is handle is being created<br />
*r36755 IDE: Add acceleration keys and fix tab order in Project Wizard and ImageListEditor, issue [[http://bugs.freepascal.org/view.php?id=21718 21718]]<br />
*r36756 lcl: remove TCustomListBox.Loaded. ItemIndex is initialized in InitializeWnd<br />
*r36757 lcl: call inherited after setting FLines in TCustomMemo.InitializeWnd. Fix potential crash since widgetset code expect FLines be initialized <br />
*r36758 lcl: check for csDestroyingHandle in TControl.HandleObjectShouldBeVisible. Fix issue [[http://bugs.freepascal.org/view.php?id=19882 19882]]<br />
*r36759 lcl: revert 31890 since issue [[http://bugs.freepascal.org/view.php?id=19882 19882]] is properly fixed now<br />
*r36760 gtk2: less hints<br />
*r36761 gtk2: less hints<br />
*r36762 Carbon: fixed result of TWSCarbonCustomListView GetTopItem,GetViewOrigin and GetBoundingRect. issue [[http://bugs.freepascal.org/view.php?id=21733 21733]]<br />
*r36763 Carbon: added themed TComboBox drawing.Patch by David Jenkins. issue [[http://bugs.freepascal.org/view.php?id=21747 21747]]<br />
*r36764 Carbon: added themed TComboBox drawing.Patch by David Jenkins. issue [[http://bugs.freepascal.org/view.php?id=21747 21747]]<br />
*r36765 Docs: added David Jenkins to contributors list<br />
*r36766 Carbon: make carbon widget visibility in sync with lcl. Patch by David Jenkins. issue [[http://bugs.freepascal.org/view.php?id=21731 21731]]<br />
*r36767 lcl: remove Destroying and DestroyWnd calls from TCustomListBox.Destroy<br />
*r36768 lcl: cleanup TCustomListBox.Create<br />
*r36769 codetools: fixed skipping include files in skipped ifdef<br />
*r36770 gtk2: less hints<br />
*r36771 gtk2: less hints<br />
*r36772 ide: fix selection painting of debugger eventlog colors list<br />
*r36773 carbon: improved TCarbonWidgetSet.RawImage_XXXX routines.Patch by David Jenkins. issue [[http://bugs.freepascal.org/view.php?id=21743 21743]].<br />
*r36774 carbon: proper initialization of alpha channel.Patch by David Jenkins. issue [[http://bugs.freepascal.org/view.php?id=21753 21753]]<br />
*r36775 LCL: implement ClientToParent, ParentToClient based on patch of David Jenkins (issue [[http://bugs.freepascal.org/view.php?id=0021763 0021763]])<br />
*r36776 LCL: extend TThemeServices.IsDisabled, IsHot, IsPushed for teCombobox<br />
*r36777 IDE: Fix tab order and set shortcuts in Application Options frame.<br />
*r36778 LazControls: fix potential crash in TListFilterEdit and TTreeFilterEdit<br />
*r36779 GTK2: add TGtk2WidgetSet.SetDesigning to prevent Abstract method call in IDE. Issue [[http://bugs.freepascal.org/view.php?id=21773 21773]]<br />
*r36780 IDE: fix tab order in Project Save Options frame.<br />
*r36781 IDE: fix tab order in frames: Build Modes editor, Miscellaneous Options and Version Info<br />
*r36782 IDE: fix tab order in option frames: Code Generation, Compilation, Linking, Messages, Parsing.<br />
*r36783 GTK2: clean up<br />
*r36784 GTK2: clean up<br />
*r36786 Carbon: removed extra code for teComboBox, since teComboBox is supported by themes as of r36776.<br />
*r36787 gtk2: clean up<br />
*r36788 gtk2: fixed Gtk2WidgetSet.ClipboardGetData mem leak on stream write error<br />
*r36789 gtk2: removed OldCreateStatusBarPanel<br />
*r36790 gtk2: clean up<br />
*r36791 gtk2: clean up<br />
*r36794 IDE: CloseQueryIDEWindows: skip sub forms<br />
*r36795 Fix crash in dbg-console, if dbg not active. issue [[http://bugs.freepascal.org/view.php?id=21712 21712]]<br />
*r36796 SourceEdit: use softcenter for Replace prompt. Issue [[http://bugs.freepascal.org/view.php?id=0021709 0021709]]<br />
*r36797 regenerated translations; updated Russian translation<br />
*r36800 IDE: when checking if a FPC unit has changed: ignore units that have no source in the FPC sources. Needed to ignore user units reachable through fpc.cfg.<br />
*r36801 IDE: fix error message can't find unit if the ppu is in one of the loaded packages<br />
*r36803 DOCS: correct the documentation about CanFocus<br />
*r36806 LCL: clear FActiveDefaultControl on that control destruction<br />
*r36810 LCL: fix copy paste error<br />
*r36811 LCL: don't update Default, Cancel during their applying in UpdateDefaultCancel<br />
*r36812 LCL: add and ability to use own TListItems, TListItem descendants in TListView for delphi compatibility<br />
*r36821 gtk2 intf: fixed compilation FPC_FULLVERSION<20600<br />
*r36822 gtk2 intf: clean up<br />
*r36823 gtk2 intf: clean up<br />
*r36824 gtk2 intf: clean up<br />
*r36825 LCL: initialize font height with the height from DefFontData<br />
*r36852 IDE: when checking if global unit has changed, skip units in packages<br />
*r36857,36859 LCL: TControl.UpdateBaseBounds: set cfBaseBoundsValid<br />
*r36861 LCL: TCustomSplitter.SetAnchors: adapt anchors before applying<br />
*r36870 LCL: SetAlign: restore the basebounds set before changes<br />
*r36877 LCL: clean up<br />
*r36882 LCL: TControl.SetAnchors: during disabled autosize: update basebounds when changing Anchors, bug 21730<br />
*r36884 LCL: fixed sending CM_EXIT,CM_ENTER when flastfocusedcontrol was removed<br />
*r36885 LCL: constraint Width,Height to >=0<br />
*r36888 Converter: fixed 'Missing units' dialog localization, part of bug 21784<br />
*r36889,r36890 codetools: class completion: fixed gathr proc definitions<br />
*r36891 IDE: show compiling resource lines when error on compiling resources<br />
*r36892 IDE: improved message when can not find unit and unit was found in a package<br />
*r36893,r36894 IDE: messages: show debug: lines and calling resource compiler<br />
*r36895,r36896 gtk2 intf: checking for liboverlay, using value-changed instead of change-value<br />
*r36897 LCL: made TImage.DestRect public<br />
*r36899 Fix encoding errors in Japanese translation<br />
*r36900,r36901 startlazarus: fixed asking for custom or default<br />
*r36902 LCL: fixed ShowModal() when Hide() is called on modal form to be Delphi compatibile.issue [[http://bugs.freepascal.org/view.php?id=15390 15390]]<br />
*r36903 IDE: fixed read/write designinfo, bug 21804<br />
*r36904 IDE: do not save a new project where only session was modified, bug 21803<br />
*r36905 gtk2 intf: fixed TGtk2WSCustomTabControl.GetDefaultClientRect to check if gtknotebook has a page<br />
*r36906,36907 codetools: AddLocalVar: do not add hidden used unit<br />
*r36908 Qt: added TQtWidget.testAttribute() function.<br />
*r36910 DBG: Tests for environment<br />
*r36913 TAChart: Set Brush.Color before Brush.Style to work around issue [[http://bugs.freepascal.org/view.php?id=21806 21806]]<br />
*r36914: TAChart: Fix compilation of OpenGL drawer<br />
*r36924 gtk2 intf: TGtk2WSCustomTabControl.GetDefaultClientRect for TTabControl<br />
*r36925 Qt: fixed resize events of TQtTabWidget and accurate information about clientRect changes. issue [[http://bugs.freepascal.org/view.php?id=21805 21805]]<br />
*r36929 Gtk2: fixed text background drawing in TGtk2WidgetSet.ExtTextOut() when BkMode = OPAQUE.issue [[http://bugs.freepascal.org/view.php?id=19384 19384]]<br />
*r36941 Translations: Brazilian Portuguese translation update by Marcelo B Paula, bug 21818<br />
*r36938,36939 LazReport, lift up to preview window improving layout and functionality, from Julio Jimenez B.<br />
*r36942 LazReport, avoid hiding text at some zoom values due small differences in text height calc (DONT MERGE YET, NEEDS MORE TESTING)<br />
*r36943 IDE: msg quickfix for cant find unit: add position<br />
*r36956 carbon: added FHasPaint variable to TCarbonWidget to allow owner draw.issue [[http://bugs.freepascal.org/view.php?id=21744 21744]]<br />
*r36957 carbon: added ScrollRect() routine to TCarbonWidget. issue [[http://bugs.freepascal.org/view.php?id=21741 21741]]<br />
*r36958 carbon: set FTabIndex instead ATabIndex variable in TCarbonTabsControl.SetPageIndex. patch by David Jenkins.issue [[http://bugs.freepascal.org/view.php?id=21728 21728]]<br />
*r36959 carbon: optimized caret drawing to not update whole widget.patch by David Jenkins. issue [[http://bugs.freepascal.org/view.php?id=21768 21768]]<br />
*r36960 carbon: fixed order of check width > height in TCarbonTrackbar.patch by David Jenkins. issue [[http://bugs.freepascal.org/view.php?id=21740 21740]]<br />
*r36961 carbon: implemented autosizing for listview / databrowser columns.patch by David Jenkins. issue [[http://bugs.freepascal.org/view.php?id=21745 21745]]<br />
*r36962 carbon: fixed possible bad loop in TCarbonSpinEdit.CreateWidget.Patch by David Jenkins.issue [[http://bugs.freepascal.org/view.php?id=21732 21732]]<br />
*r36965 IDEIntf: fixed typo<br />
*r36967 Gtk2: fixed retreiving font name from TGtk2WidgetSet.GetObject() when font is default. issue [[http://bugs.freepascal.org/view.php?id=21828 21828]]<br />
*r36968 codetools: JumpToPublishedMethodBody: raise error<br />
*r36969 codetools: fixed FindMethodNodeInImplementation for program<br />
*r36971 tests: codetools: added test for duplicate sections, parsing library<br />
*r36972 codetools: fixed reparsing initialization, finalization, begin<br />
*r36973 codetools: fixed treating initialization, finalization as statement<br />
*r36974,r36975,r36976,36977,36978 codetools: fixed find declaration in library starting in initialization, bug 21832<br />
*r36981,r36982 codetools: identifier completion: fixed continue searching<br />
*r36979 Updated Japanese translation by Haruyuki Fujimaki<br />
*r36980 Fix japanese encoding<br />
*r36983,r36984 codetools: identifier completion: some keywords for library, program<br />
*r36985 codetools: identifier completion: keyword initialization for library, issue [[http://bugs.freepascal.org/view.php?id=21839 21839]]<br />
*r36986 Updated Japanese translation by Haruyuki Fujimaki<br />
*r36990 codetools: identifier list: skip identifier at cursor<br />
*r36991,r36992 IDE: identifier completion: add do after with, issue [[http://bugs.freepascal.org/view.php?id=16850 16850]]<br />
*r36996,r36997,r36999,r37013,r37014,r37015 runtests: fixed compilation, added some tests<br />
*r37012,r37011,r37009,r37008,r37007,r37006,r37005,r37004,r37003,r37002,r37000 carbon interface: clean up<br />
*r37020 IDE: recent/history lists: replaced case sensitive comparison with three types<br />
*r37021 docking: update modified flags<br />
*r37022 codetools: fixed uninitialized result<br />
*r37025 IDE: use unit dialog: check for syntax errors<br />
*r37026,r37027 DBG: Prepare for different line endings. / Accept different line endings (#10, #13, #10#13, #13#10) issue [[http://bugs.freepascal.org/view.php?id=0021834 0021834]].<br />
*r37029 Gtk2: fixed drawing of text with solid brush. issue [[http://bugs.freepascal.org/view.php?id=21863 21863]]<br />
*r37031 Gtk2: do not draw text background if colormap isn't assigned. Second part of issue [[http://bugs.freepascal.org/view.php?id=21863 21863]].<br />
*r37032 gtk2: clean up old mouse capture<br />
*r37033 gtk2: fixed releasecapture<br />
*r37034 gtk2: verbosity for ubuntu liboverlay mouse capture bug<br />
*r37038 sqldb: Enable mssqlconnection for fpc >= 2.6.1 (patch from Reinier Olilagers, bug 21867) - added because creates conflicts with later sqldb merges<br />
*r37040: TAChart: Workaround for TDbChartSource referring to the dataset with Filtered := true<br />
*r37043 LCL, fix TPostScriptPrinterCanvas.ClipRect is empty-rect until explicitly set by user, patch from Joachim Paepke, issue [[http://bugs.freepascal.org/view.php?id=21027 21027]]<br />
*r37051 Translations: Ukrainian translation update by Igor Paliychuk<br />
*r37052 regenerated translations; updated Russian translation<br />
*r37053 LCL: fixed compilation for fpc 2.7.1<br />
*r37054,37055,37057 set TDBLookup.FListLink.DataSource dynamically to FListSource or a local datasource. Issue [[http://bugs.freepascal.org/view.php?id=15410 15410]]<br />
*r37067 LCL: fixed visibility of implemented interfaces<br />
*r37069 simple deb: using make bigide, updated list of tools<br />
*r37070 openglcontrol: fixed mem leak, issue [[http://bugs.freepascal.org/view.php?id=21597 21597]]<br />
*r37071 codetools: identifier completion: unit name of self<br />
*r37076 gtk2: clean up<br />
*r37077 IDE: clean up<br />
*r37092 LCL: fixed compilation for fpc 2.7.1<br />
*r37093 DBG: Testcase: fixed reading env-options<br />
*r37095 SynEdit: fix crash in overview gutter creation. Issue [[http://bugs.freepascal.org/view.php?id=0021887 0021887]]<br />
*r37096 SynEdit: Do not offer OverviewGutter in Gutter-parts designer<br />
*r37101 lazreport: fixed compilation with fpc 2.7.1, new TBookMark<br />
*r37102 lazreport: clean up<br />
*r37112,r37113 SynEdit: highlight class "helper". Fix wrong highlight of "sealed" Issue [[http://bugs.freepascal.org/view.php?id=0021812 0021812]]<br />
*r37115 openglcontrol: fixed mem leak, issue [[http://bugs.freepascal.org/view.php?id=21597 21597]]<br />
*r37126 LCL: Publish some TCheckGroup properties.<br />
*r37129 gtk2: clean up<br />
*r37154,37247,37248 lcl-db: prevent lookup initialization when dataset is destroyed<br />
*r37155 LCL, use rectclip to set clipping rectangle instead of current path because it sometimes get drawn on next stroke (related to r37043)<br />
*r37157 Qt: fixed key events from QCalendar, now tabbing works fine.<br />
*r37160 LCL: published missing properties TCalendar.Hint and TCalendar.TabOrder.<br />
*r37167 LCL: Fix range check error in StringGrid when sorting and RowCount=FixedRows, issue [[http://bugs.freepascal.org/view.php?id=21947 21947]]<br />
*r37073 codetools: resolve expr: thisunitname.implementationenidentifier<br />
*r37078 codetools: find declaration: selfunit.implementationidentifier<br />
*r37079,r37080,r37081,r37082,r37083,r37087,r37089,r37098 codetools: getsmarthint: class variables, enum, array of, inheritance, property params and type, use unit<br />
*r37085 IDE: show compiler options: check compiler<br />
*r37086,37088 IDEIntf: removed TLazCompilerOptions.LCLWidgetType, fixed computing default LCLWidgetType on cross target OS<br />
*r37090 codetools: do not try to search in record ancestors<br />
*r37105 DBG: Watches Copy Name/Value to clipboard. Issue [[http://bugs.freepascal.org/view.php?id=0021860 0021860]]<br />
*r37106 DBG: Register Copy Name/Value to clipboard. Issue [[http://bugs.freepascal.org/view.php?id=0021860 0021860]]<br />
*r37107 DBG: Watches, added inspect/evaluate to popup<br />
*r37116 DBG: Fix a possible crash in debugger (history). Issue [[http://bugs.freepascal.org/view.php?id=0021901 0021901]]<br />
*r37195 SourceEdit: Do not access outdated tab-history entries (dangling pointers). Issue [[http://bugs.freepascal.org/view.php?id=0021939 0021939]]<br />
*r37196 SourceEdit: Only add tabs to tab-history that were accessed<br />
*r37103,r37132 codetools: nested types: Self and inherited<br />
*r37104,r37120 codetools: GetSmartHint: show anonymous arrays<br />
*r37111 IDE: Make Close button work in Components List dialog. Issue [[http://bugs.freepascal.org/view.php?id=21892 21892]],<br />
*r37118 IDE: build ide: if building fails, clear flag clean up once<br />
*r37119 IDE: when building IDE failed: restore backup<br />
*r37121,r37122 IDE: select frame: search in packages<br />
*r37130 IDE: select frame: search in packages<br />
*r37131 LCL, implements textrect clipping in Postscriptprintercanvas<br />
*r37133 SynEdit: Fix WantTabs / Change default to "True" Issue [[http://bugs.freepascal.org/view.php?id=0021904 0021904]]<br />
*r37134 SynEdit: Remove not required invalidation (paint / call to wrong Update() )<br />
*r37135 SynEdit: Remove wrong implementation of Update. Update no longer forwards to Invalidate<br />
*r37136 IpPro: Fix painting for SelectAll<br />
*r37137 IDE, IpPro: Allow copy to clipboard from hint (zeljko added because of conflict in 37345)<br />
*r37140 cody: show code node info: show complete source<br />
*r37141 SynEdit: Fixed Caret paint error (extra caret left on screen) Issue [[http://bugs.freepascal.org/view.php?id=0021924 0021924]]<br />
*r37143 IDEIntf: added TPropertyEditorHook.IsSelected<br />
*r37144 IDEIntf: TDefaultComponentEditor: always select component<br />
*r37146 IDE: if component class is missing: note about RegisterClass<br />
*r37148 Translations: Ukrainian translation cleanup<br />
*r37149 IDE: regenerated translations; updated Russian translation<br />
*r37151 cody: IDE item to create dockable IDE window<br />
*r37152 cody: new IDE window: show dialog to setup form name<br />
*r37162,r37163 IDE: TProjectFileDescriptor.DefaultResourceName: first try without appending a number, check for pascal keywords<br />
*r37164,r37165 IDE: fixed DoGetUnitRegisterInfo for virtual files<br />
*r37166 SynEdit: Fixed Caret when scrolling under older Wine (Win Emulator)[[http://bugs.freepascal.org/view.php?id=21929 21929]]<br />
*r37212 sqldb: added icon for TMySQL55Connection for fpc 2.6.1 '<br />
*r37213,r37214,r37219 codetools: do not save errors outside parser<br />
*r37215 codetools: GetSmartHint: ^, .., file of, class of<br />
*r37220 Translations: Czech IDE translation update by Martin Smat<br />
*r37224 SynEdit: Autocompletion, workaround for click on hint Issue [[http://bugs.freepascal.org/view.php?id=21952 21952]]<br />
*r37231 SynEdit: Prevent some scrolling, while selecting by mouse. Issue [[http://bugs.freepascal.org/view.php?id=0021996 0021996]]<br />
*r37232 DBG: Inspect window, improve scrolling<br />
*r37234 DBG: Improve start-up to work with bug in gdb 7.4<br />
*r37262 searching compiler: search first in dir of fpc.exe, then in PATH<br />
*r37263,r37265 codetools: improved error message on unit not found<br />
*r37264 fix setting radiogroup.itemindex under gtk2. Issue [[http://bugs.freepascal.org/view.php?id=22013 22013]]<br />
*r37267 Docs: improved build_lcl_docs robustness when working with TProcess, patch from Reinier Olislagers, bug 22000<br />
*r37273 SourceEditor: Fix crash when closing several tabs, while debugging (paused / loading line info). Maybe related to issue [[http://bugs.freepascal.org/view.php?id=22015 22015]]<br />
*r37274 Fix Crash in building "Windows" (list of open W.) Menu. Note 0059576 in Issue [[http://bugs.freepascal.org/view.php?id=22015 22015]] (not related to other parts of issue)<br />
*r37280 SQLdb: added missing tmysql55connection.png, bug 22033 '''Related to 37212 and other revisions for TMySQL55Connection'''<br />
*r37281 SynEdit: protect ProcessCommand() against early destruction by ReleaseComponent. Issue [[http://bugs.freepascal.org/view.php?id=0022035 0022035]]<br />
*r37285 IDE: make Close button work in Window Manager<br />
*r37286 Patch from bug 21651, automatically adds quotes to paths with spaces for OpenDocument in Mac OS X<br />
*r37297,r37298 SynEdit, Pas-HL: record helper, deprecated in object<br />
*r37311 Translations: Arabic IDE translation update by Mazen NEIFER<br />
*r37312 IDE: Make Help button work in Editor Window Manager, issue [[http://bugs.freepascal.org/view.php?id=21961 21961]]. (zeljko added to merge list because of conflicts in 37491)<br />
*r37325 regenerated translations; updated Russian translation<br />
*r37326 Translations: Brazilian Portuguese translation update by Marcelo B Paula, bug 22064<br />
*r37327 IDE, Code Generation options: changed wrong -Op386 option to correct -Op80386. Patch by barlone with some consistency changes, bug 22062.<br />
*r37357 Gtk2: fixed mbAll button on dialogs. Added response keys which does not exist in gtk2. issue [[http://bugs.freepascal.org/view.php?id=22083 22083]]<br />
*r37344 gtk2 intf: less hints<br />
*r37345 ipro: less hints <br />
*r37359 lazreport: German translations<br />
*r37360 cody: German translations<br />
*r37039,r37319,r37324,r37361 sqldb: German translations (zeljko added 37039,37319,37324 because of conflicts)<br />
*r37362 educationlaz: German translations<br />
*r37363 ide: German translations<br />
*r37372 lcl: don't access Items of TreeView if DragOver happens during treeview destruction<br />
*r37373 IDE: debugger options: check the resolved file, bug 22086<br />
*r37374 Qt: bypass windowmanager when showing dragimagelist.<br />
*r37375 Gtk2: do not show taskbar entry for dragimagelist.<br />
*r37376 IDE: update TUnitInfo.ResourceBaseClass on loading lfm<br />
*r37378 [Edited, includes selected lines of 37402] SourceEditor: Hide hint, when mouse moves (even if outside IDE, or IDE is not active). Issue [[http://bugs.freepascal.org/view.php?id=0022016 0022016]]<br />
*r37368 DBG: Fixed array len for 64 bit<br />
*r37369 lcl: don't crash when either DragTarget or dragged control is freed (issue [[http://bugs.freepascal.org/view.php?id=22067 22067]])<br />
*r37370 lcl: cleanup debug info<br />
*r37371 lcl: fixed a memory leak when canceling drag of dead control<br />
*r37380 SourceEdit/DBG: Ensure Codebuffer is updated before using it to add watches<br />
*r37383 IDE: TUnitInfo.fModified: do not set on get<br />
*r37384,r37401 IDE: do not set TUnitInfo.Modified when committing source editor to codetools<br />
*r37388,r37389,r37390,r37391,r37392 tests: added tests for cfgscripts, fixed unit output directory, cfgscript: fixed error message if semicolon is missing, IDE: added conditionals functions GetIDEValue, GetEnv, LCL: use IDE widgettype as default<br />
*r37397 TodoList: properly trim comment markers and convert multiline text to single line, fixes bug 22085. Based on patch by Anton.<br />
*r37400 codetools: fixed mem leak<br />
*r37418: TAChart: Fix range check using datapoint tool on a chart without series<br />
*r37440 DBG: do not set temporary stack = -1 in thread changing. This may cause errors<br />
*r37444 DBG: Watches, save "Use instance class" to config<br />
*r37449 LCL: fixed comments<br />
*r37451 Qt: fixed wrong SetCapture() under win32. Problem was passed TQtWidget handle instead of underlaying widget winID() which is native handle.<br />
*r37453 SynEdit: Fix goto bookmark and persistent block. Do not clear persistent block<br />
*r37461 lcl: TCustomForm.UpdateDockCaption: fixed repair garbage<br />
*r37463 IDE: when docked keep IDE caption<br />
*r37464 Help, DBG: New link to wiki for watch properties<br />
*r37475 codetools: TCustomCodeTool.FindLineEndOrCodeAfterPosition: fixed crash when at end of code<br />
*r37476 codetools: clear nodes behind, when linkscanner parsed only parts<br />
*r37481 IDE: fixed storing old LCLWidgeType, bug 22174<br />
*r37482 codetools: save parse error of operator, do not save errors outside parser, fixed parsing method name with generic parameter<br />
*r37483 codetools: allow keywords in program name<br />
*r37534 Qt: do not call setValue() but setPosition() so lcl gets accurate values later. issue [[http://bugs.freepascal.org/view.php?id=22187 22187]]<br />
*r37491 Help, DBG: Link to wiki for breakpoint properties (zeljko - 37312 is merged too, because of conflicts)<br />
*r37470 IDE, DBG: debug-eval hint, do not show, if selection exceeds one statement (e,g whole file selected). Part of issue [[http://bugs.freepascal.org/view.php?id=0022081 0022081]]<br />
*r37471 SourceEditor: Fix an issue with focusing an editor, that is being closed (while debugging) "no parent handle". Issue [[http://bugs.freepascal.org/view.php?id=0022015 0022015]]<br />
*r37517 SynEdit: fixed folding for "case" and "try" in certain code segments (initialization / case...else try)<br />
*r37518 SynEdit: Pas-HL: fix detection of case...else versus if...then...else<br />
*r37522 SynEdit: Pas-HL: better detection of case...else<br />
*r37623 SourceEditor: Fix (Work-around) an issue with focusing an editor, that is being closed (while debugging) "no parent handle". Issue [[http://bugs.freepascal.org/view.php?id=0022015 0022015]] // Required some parts of r37502<br />
*r37609 DBG: Avoid re-queuing of dis-assembler requests, after cancelling it. Part of issue [[http://bugs.freepascal.org/view.php?id=0022230 0022230]]<br />
*r37643 DBG: Disassembler: prevent disassembler from doing large address ranges, if gdb returns data with far away addresses. Issue [[http://bugs.freepascal.org/view.php?id=0022230 0022230]]<br />
*r37657 DBG: fixed a out of index error, in watches history<br />
*r37694 DBG: Fixed possible crash in watch evaluation (WatchValue freed while evaluating / in GetValue)<br />
*r37466 IDE: added menu item to insert MIT license text<br />
*r37407,r37474,r37492 IDE: TMainIDE.DoSourceEditorCommand: improved focus check, requires r37466<br />
*r37564 LCL: TCustomListView: reset FCacheIndex and FCacheItems before sorting list, otherwise we'll have unexpected results. issue [[http://bugs.freepascal.org/view.php?id=22218 22218]]<br />
*r37505, r37509, r37516, r37523 fixed compilation with fpc 2.7.1<br />
*r37592 lcl: fixed compilation fpc 2.7.1<br />
*r37525 TAChart: Display legend symbols even if the text is empty<br />
*r37565 TAChart: Display major axis marks at the edges of the clip range<br />
*r37576 TAChart: Fix infinite recursion when drawing chart listbox from series with Legend.Multiplicity <> lmSingle<br />
*r37588 TAChart: Include Item.Y in reordered list of TCalculatedChartSource. Update test. '''This will break old tests. Please contact me for a fix --- Ask'''<br />
*r37727 TAChart: Update to the recent version of FPVectorial<br />
*r37587 Qt: unset icon when doing internal sync after sorting. part of issue [[http://bugs.freepascal.org/view.php?id=22218 22218]]<br />
*r37620 LCL: invalidate parent preferredsize when borderspacing changed, bug 17947<br />
*r37621 LCL: clean up - invalidate in TControl.DoBorderSpacingChange no longer needed with new autosizing<br />
*r37622 lazutils: added missing file<br />
*r37624 LCL: GetClientRect: if interface has the right width,height trust the clientrect, this avoids some unneeded resizes<br />
*r37573 IDE: project inspector: add files: allow dotted unit names, bug 22209<br />
*r37619 IDE: open package dependency: try provides, issue [[http://bugs.freepascal.org/view.php?id=17960 17960]]<br />
*r37628 IDE: compiler options: disable target platform for packages<br />
*r37594 codetools: fixed Unneeded extra space in event assignment completion<br />
*r37613 codetools: property completion: add class var for class property variables<br />
*r37614 codetools: class completion: search variables in all sections, bug 22246<br />
*r37625,r37626,r37627 codetools: class completion: fixed searching var node when first is class var<br />
*r37629 codetools: fixed adding class keyword for property setter of a class property<br />
*r37630 IDE: codeexplorer: labels<br />
*r37634 IDEIntf: objectinspector: fixed painting outside paint event<br />
*r37631 codetools: no var node for anonymous record case variables<br />
*r37632 codetools: identifier completion: when creating an override hide higher visibility members<br />
*r37633 codetools: class completion: add static method modifier for setter of class property<br />
*r37636 codetools: class completion: add static method specifier for class property setter<br />
*r37635 IDE: paste component: fix renamed references<br />
*r37637,r37638,r37639 IDE: paste multiple components: fix references, lcl: LRSObjectTextToBinary: write convert list of components<br />
*r37640 IDE: paste components: update TControl.Caption<br />
*r37642 lcl: fixed LRSObjectTextToBinary toWString, issue [[http://bugs.freepascal.org/view.php?id=19650 19650]]<br />
*r37644 codetools: fixed inserting proc bodies in implementation in front of methods<br />
*r37652,r37653,r37655 codetools: using TFileStreamUTF8<br />
*r37656 IDE: using TFileStreamUTF8 and TStringListUTF8<br />
*r37663 IDE: fixed show info on --help when no stdout exists<br />
*r37689 LCL: fixing handling of special keys for TCustomEdit and TCustomMemo<br />
*r37690 codetools: forward proc completion: stay in same section<br />
*r37697 DBG: Dialogs, don't give help related commands to IDE. They will be ignored<br />
*r37698 IDE Help: add urls for dbg dialogs<br />
*r37703 lazutils: utf8pos: added optional parameter StartPos<br />
*r37704 IDE: setup dialog: show fpc source directory release version as warning instead of error<br />
*r37707 tools create deb+rpm: use 128x128 icon<br />
*r37705 SynEdit: open and close clipboard explicitly to write multiple formats.<br />
*r37714 lcl: gtk2: warn only once about liboverlay<br />
*r37711 lhelp: cleaned up paths<br />
*r37712 lhelp: clean up<br />
*r37713 lhelp: resolve macros in HelpEXE on the demand<br />
*r37715 chmhelp: using search path to search for chm files<br />
*r37716,r37717 chmhelp: added path $(LazarusDir)/docs/chm<br />
*r37718 'hmhelp: search ref.chm in docs/chm<br />
*r37726 create_lazarus_deb: added option chmhelp<br />
*r37722 DBG: Event-Log: Do not cache Options. Allow user to change options while debugging<br />
*r37596 Patch from {{MantisLink|0022231}} "fix warnings with fpc 2.6.1".--[[User:AlexVinS|AlexVinS]] 21:40, 8 June 2012 (UTC)<br />
*r37745 deb+rpm: default environmentoptions: updated to 107, removed default gdb entry<br />
*r37748,r37755 lhelp: added makefile<br />
*r37749 make bigide: build lhelp<br />
*r37753 IDE: fixed comparing file names case insensitive<br />
*r37754 lazutils: inlined UTF8CompareStr<br />
*r37760 Use Utf8CompareText instead of AnsiCompare<br />
*r37762 linux: added encoding to desktop file<br />
*r37769 Use Utf8CompareText instead of AnsiCompare<br />
*r37770 TAChart: Fix AV when clearing Series.Styles and TColorMapSeries.ColorSource properties<br />
*r37772 Use Utf8CompareText instead of AnsiCompare<br />
*r36804 win32: mark client rect as required update before WM_SIZE passing, remove DoAdjustClientRectChange - they are called inside WM_SIZE handler after the client rect is updated (fixes bug [[http://bugs.freepascal.org/view.php?id=0021724 0021724]])<br />
**Paul remarked about r36804: "Please don't merge it for at least 2 weeks". Also seems to cause problems in grids, see [http://bugs.freepascal.org/view.php?id=21790 issue [[http://bugs.freepascal.org/view.php?id=21790 21790]]].<br />
*r36993: LCL, fixed Problems setting Width, Height for TCustomGrid if ScrollBars is auto, from cobines, issue [[http://bugs.freepascal.org/view.php?id=21790 21790]]. If r36804 is merged, please merge also r36993<br />
*r37783 startlazarus: linux: adding LIBOVERLAY_SCROLLBAR=0 to avoid problems with mouse capturing<br />
*r37785 gtk2 intf: disable liboverlay by default<br />
*r37790 gtk2 intf: use setenv only on Linux<br />
*r37795: export tgz: added option to add chm files<br />
*r37796 IDE: when copying secondary configs create the primary config directory first<br />
*r37797 rpm: added option chmhelp<br />
*r37810 rpm: fixed building without chmhelp<br />
*r37811 lhelp: fixed invalid recent item path in config, added build modes default,debug<br />
*r37814 chmhelp: clean up old ipc files to prevent IDE hang<br />
*r37817-r37821 MAKE DEB<br />
*r37838 DBG: Fix handling console input<br />
*r37824 chmhelp: Fixed lazarus hanging when chmhelp pipe is leftover from an improperly closed lhelp<br />
*r37825 chmhelp; Fixed chmhelp typo (boolean error)<br />
*r37826 chmhelp: fixed bug where a new lhelp process could be started each time F1 was pressed<br />
*r37841 DBG: Pseudo-Terminal, accept tabs<br />
*r37848 lazutils: docs: fixed encoding and package name<br />
*r37849 lcl: docs: fixed encoding<br />
*r37850 ide: docs: fixed encoding<br />
*r37851 updated docs<br />
*r37853 lcl: docs: fixed some links<br />
*r37852 build_lcl_docs: using UTF-8 file functions, added option -h<br />
*r37855 build_lcl_docs: showcmd: show working directory<br />
*r37861 lcl: check if ListDataset is loading to update lookup info. Issue [[http://bugs.freepascal.org/view.php?id=22337 22337]]<br />
*r37846 win32: let TComboBox.CloseUp fire before Change (delphi compatible). Fix 22352<br />
*r37880 IDE+startlazarus: use same working directory, needed for passing relative file names as command line parameters, fixed building lcl+lazutils chm on ubuntu 12<br />
*r37866 lazutils: fixed unit names<br />
*r37868 lazutils: added fpdoc files<br />
*r37869 docs: building lazutils+lcl chm<br />
*r37885 DBG: fixed parsing sets for debug-inspector<br />
*r37906 IDE-Options / SynEdit: Fixed RightEdge visibility (Recression)<br />
*r37919 DBG: Prevent potential crash/memory-corruption in Watches<br />
*r37920 DBG: Prevent potential crash in (dbg-)OnIdle handling<br />
*r37921 DBG: Prevent build up of no longer needed commands in queue<br />
*r37945 DBG: Prevent a crash, when the selected snapshot is deleted. Cas also happen when starting the debugger, while a snapshot from previous run is active<br />
*r37950 DBG: fixed endless loop in watch eval (auto type cast) Issue [[http://bugs.freepascal.org/view.php?id=0022425 0022425]]<br />
*r37961 DBG: Disable rangechecks for certain PtrUInt casts<br />
*r37993 carbon: fixed crash of IDE when compiled with range checks on<br />
*r38006 gtk2: fixed crash on QuestionDlg<br />
*r38003 IDE: fixed showing custom project options, issue [[http://bugs.freepascal.org/view.php?id=22486 22486]]<br />
** merged ONLY main.pp<br />
*r38016 ToDoList: fixed encoding of French translation, it should be UTF-8, not ISO-8859-1. Patch by batyann811, bug 22489.<br />
*r37981,37983-37989,38001,38004-38005,38012,38017 Win Installer<br />
===== Fixed after RC1 =====<br />
*r38127 IDE, EditorOptions: Fixed finding color attribute in localized IDE<br />
*r38132 IDE: setup: after changing lazarusdir: fetch translations and translate<br />
*r38133 chmhelppkg: invoke lazbuild with --pcp parameter<br />
*r38138 examples: testall: fixed start<br />
*r38139 examples: cleandirs: error for fpc version<br />
*r38140 examples: componentstreaming: fixed typo, clean up<br />
*r38141 lazfreetype: fixed range check error, improved error message<br />
*r38142 examples: mssqlconn: requires fpc 2.6.1<br />
*r38144 examples: synguttermarks: win32 gui mode, fixed Left position<br />
*r38146 examples: tv_add_remove: updated<br />
*r38147 examples: xmlreader: added example xml<br />
*r38157 IDE: fixed saving ambiguousfileaction, bug 22573<br />
*r38158 examples: clean up<br />
*r38038 TAChart: Allow spaces in field names inside TDbChartSource.FieldY<br />
*r38168 synuni: clean up fpc options<br />
*r38170 synuni, semaphorgridlpk: clean up fpc options<br />
*r38022 SynEdit: Fixed drawing errors for frames (left frame site drawn at wrong offset)<br />
*r38145 LCL: TListView fixed "List index out of bounds" while deleting items. issue [[http://bugs.freepascal.org/view.php?id=22552 22552]]<br />
*r38150 SynEdit TSynMultiSyn: Fixed crash when deleting lines. Part of issue [[http://bugs.freepascal.org/view.php?id=0022519 0022519]]<br />
*r38151 SynEdit Highlighter: Fixed crash when scanning empty<br />
*r38152 SynEdit TSynMultiSyn: typo<br />
*r38175 SynEdit TSynMultiSyn: Fixed updating, when appending to EOT. Part of issue [[http://bugs.freepascal.org/view.php?id=0022519 0022519]]<br />
*r38205 lazaruside.fi.po: Finnish translations<br />
*r38180 Synedit: fix matching-bracket-highlight in comments (closing bracket at eol) issue [[http://bugs.freepascal.org/view.php?id=22586 22586]]<br />
*r38198 IDE: Export to html, do not enforce check for writeable. Issue [[http://bugs.freepascal.org/view.php?id=22588 22588]]<br />
*r38199 lazutils: do not use winodws W functions under Win98, issue [[http://bugs.freepascal.org/view.php?id=22596 22596]]; '''Breaks compilation on wince, because win32platform is not defined.'''<br />
*r38202 openglcontrol: win32: fixed sharing context<br />
*r38204 Synedit: fixed typo in IFDEF for fpc 2.60 bug<br />
*r38225 TAChart: Fix division by zero in zoom tools with extreme zoom ratios<br />
*r38226 TAChart: Fix hang in functional series with extreme zoom ratios<br />
*r38223 SynEdit TSynMultiSyn: Several fixes issue [[http://bugs.freepascal.org/view.php?id=0022519 0022519]]<br />
*r38232 TAChart: Add InRangeUlps utility function<br />
*r38233 TAChart: Fix disappearance of axis marks located exactly at chart bounds<br />
*r38234 TAChart: Fix crash when setting Marks.LabelFont from the Object Inspector<br />
*r38237 Examples/SynEdit: Readme and typo in comment<br />
*r38266 IDE: Tweak the layout of ManageExamplesForm<br />
*r38260 TAChart: Use correct notification when the series' source changes<br />
*r38261 TAChart: Issue change notifications when modifying TListChartSource.DataPoint property<br />
*r38285 lhelp: replace MessageBox, with Form.Modal. FIx IPC hang. issue [[http://bugs.freepascal.org/view.php?id=0022592 0022592]]<br />
<br />
===== Fixed after RC2 =====<br />
*r38293 windows installers: don't ask to overwrite the environment options in the secundary config directory from Reinier Olislagers<br />
*r38339 SynEdit TSynMultiSyn: Fix CaseSensitivity for Sheme marker. Issue [[http://bugs.freepascal.org/view.php?id=0022693 0022693]]<br />
*r37386 Remove writeln() that looks like a residual debug message. Issue [[http://bugs.freepascal.org/view.php?id=0022544 0022544]]<br />
*r38385 Translations: removed unmaintained Portuguese translation, which was outdated copy of Brazilian Portuguese one<br />
<br />
== How to merge ==<br />
The lazarus developers have decided to use the native svn merge for this branch. Other branches used the svnmerge.py script to manage the revisions to be merged.<br />
<br />
* TODO: Maybe this information should be put in a separate page.<br />
<br />
[[SVN_Migration#Merge_with_plain_svn]]<br />
=== Using TortoiseSVN ===<br />
As noted in the link above using TortoiseSVN is more or less self explaining. <br />
<br />
* TODO: add some screen shots.<br />
<br />
When committing, in the recent messages a nice commit message is available.<br />
<br />
Tested with TortoiseSVN 1.7.6, SVN 1.7.4.<br />
<br />
=== Show list of revision that can be merged ===<br />
In the lazarus fixes_1_0 directory do:<br />
svn mergeinfo ^/trunk --show-revs eligible<br />
Or if you don't have a fixes directory checked out, you can pass the URL path of the fixes branch:<br />
svn mergeinfo ^/trunk http://svn.freepascal.org/svn/lazarus/branches/fixes_1_0 --show-revs eligible<br />
<br />
=== Show list of revision that have been merged ===<br />
In the lazarus fixes_1_0 directory do:<br />
svn mergeinfo ^/trunk --show-revs merged<br />
<br />
=== Merging revisions from trunk ===<br />
To merge one or more revisions from trunk, use the svn merge command. For example to merge revision 36506 and 36510 use:<br />
svn merge -c 36506,36510 ^/trunk<br />
<br />
To generate a commit log message, use:<br />
svn log ^/trunk -c 36506,36510 > svnmerge-commit-message.txt<br />
<br />
Edit svnmerge-commit-message.txt with your favorite text editor and add a first line like:<br />
Merged revision 36506,36510 from /trunk.<br />
<br />
Commit this with:<br />
svn commit -F svnmerge-commit-message.txt<br />
<br />
=== Blocking a revision to be merged ===<br />
Sometimes you want to block a revision to be merged, i.e. you want to make sure that this revision is never merged to the fixes branch, for example, because it contains a new feature or it contains a version number change not applicable to the fixes branch, but only to trunk. To block revision 36507, use:<br />
svn merge -c 36507 --record-only ^/trunk<br />
Then you can create a log message with:<br />
svn log ^/trunk -c 36507 > svnmerge-commit-message.txt<br />
Edit svnmerge-commit-message.txt with your favorite text editor and add first line like:<br />
Blocked revision 36507 from /trunk<br />
Then commit this change:<br />
svn commit -F svnmerge-commit-message.txt</div>
Paul Ishenin
https://wiki.freepascal.org/index.php?title=Lazarus_1.0_fixes_branch&diff=62071
Lazarus 1.0 fixes branch
2012-09-26T00:08:39Z
<p>Paul Ishenin: /* Submitted by developer / committer */</p>
<hr />
<div>This page contains the revisions to be merged from trunk to the [http://svn.freepascal.org/svn/lazarus/branches/fixes_1_0/ Lazarus 1.0 fixes] branch.<br><br />
Release notes can be found here [http://wiki.lazarus.freepascal.org/Lazarus_0.99.0_release_notes Release notes]<br />
<br />
== Fixes for 1.0.2 ==<br />
=== Merge requests ===<br />
==== Submitted by developer / committer ====<br />
<br />
*r38735: TAChart: Fix memory leak in TDbChartSource.BeforeDraw<br />
*r38737: TAChart: Fix drawing of pie series with data from the db source<br />
*r38754: TAChart: Fix hang when changing TLineSeries.ShowPoints while drawing chart<br />
*r38757: TAChart: Display crosshair tool on mouse down<br />
*r38762: Gtk2: when style is drawing button then use style from button. issue #22901<br />
*r38779: TAChart: Do not notify from TListChartSource.SetXValue and SetYValue if the value did not actually change.<br />
*r38780: TAChart: Add TBasicPointSeries.MovePoint overload for graph coordinates ''not a fix, but required for r38788''<br />
*r38788: TAChart: Support axis transformations in TCustomChartSeries.MovePoint<br />
*r38792: TAChart: Fix crash on deleting subcomponent with active property editor<br />
*r38802: lcl:revert 33020, 33082, 33086, part of 33089 and 33389. These changes made the hint behavior Delphi incompatible thus leading to a regression in third party control like VirtualTreeView that handles hints in CMHintShow. Retrieve parent hint recursively if hintcontrol.hint is empty' (delphi compatible)<br />
*r38816 LazUtils: improve unicode path/filename handling by Fileutil.ReadFileToString, patch from Takeda Matsuki, bug 22953<br />
*r38826 Qt: TQtWidgetSet.SetScrollInfo - fixed wrong result, it must return real slider position, not value which might be out of sync with position. This fixes problems with TScrollingWinControl (TControlScrollbar).<br />
<br />
==== Submitted by others ====<br />
<br />
=== Merged revisions for 1.0.2 ===<br />
*r37217,37218,37225,37239,37241,37293,37304,37316 Qt: fixed keys handling (arrow keys & enter).<br />
*r38396 LCL: ColorBox - keep FSelected in sync all the time. fixes issue [[http://bugs.freepascal.org/view.php?id=22729 22729]]<br />
*r38426 CodeBrowser: check for virtual units. Issue [[http://bugs.freepascal.org/view.php?id=0022740 0022740]]<br />
*r38428 SynEdit, MultiHighlighter: fix adding text/sections at EOL. issue [[http://bugs.freepascal.org/view.php?id=0022745 0022745]]<br />
*r38430 TAChart: Fix out-of-bounds access when drawing empty polygons and polylines<br />
*r38437 ide: project target: apply default extension even if the file has already an extension, issue [[http://bugs.freepascal.org/view.php?id=22750 22750]]<br />
*r38444 IDE: fixed crash when releasing non existing component palette select button<br />
*r38473 tests: fixed compilation<br />
*r38464 TAChart: Fix error message in TFPCanvasDrawer.RadialPie<br />
*r38486 avglvltree: setcompare: set when count=0<br />
*r38503 TAChart: Copy BaseLength in TChartArrow.Assign<br />
*r38507 EditorOpts: default for top-info-hint<br />
*r38509 Debugger: Ensure Queue is not blocked by LineInfo Request. (If a LineInfoRequest was queued the DebuggerCurrentLine could not search the stack, as commands were not immediately run)<br />
*r38519 Gtk2: fixed crash with TListView when viewstyle is vsIcon or vsSmallIcon. issue [[http://bugs.freepascal.org/view.php?id=22778 22778]]<br />
*r38520 Qt: do not propagate keyrelease event as action trigger. issue [[http://bugs.freepascal.org/view.php?id=22737 22737]]<br />
*r38531 Debugger: Workaround to fix exe-line-indicators (blue dots) at debug start<br />
*r38533 Qt: fixed header offset and getClientRect for TListView when ViewStyle=vsReport.<br />
*r38547 TAChart: Support Y NaNs in polar series ''(this will cause compilation error -- please remove 'and CloseCircle' part from the last conditional in the TPolarSeries.Draw procedure)''<br />
*r38557 TAChart: Support brush style, pen style and pen width in fpvectorial drawer<br />
*r38571 TAChart: Draw chart correctly after decrease of an axis margin<br />
*r38529,r38530,r38535,r38543,r38548: fix carbon clipping, correctly return region types on HRGN related operations, fix generic IntersectClipRect routine<br />
*r38640,r38641,r38642,r38649: various ExtTextOut fixes for Carbon and Cocoa<br />
*r38551,r38552,r38562,r38563 Carbon: various winapi compatibility functions fixes<br />
*r38518 Qt: TQtWinApi.ExtTextOut() implemented Dx param. issue [[http://bugs.freepascal.org/view.php?id=22795 22795]] (zeljko will merge, need some testing)<br />
*r38572 Qt: propagate QEvent::ShortcutOverride to parent, so stop key event if shortcut is executed. issue [[http://bugs.freepascal.org/view.php?id=22827 22827]]<br />
*r38576,38577: Qt: fixed TQtWidgetSet.FrameRect(), now it uses passed brush to draw frame border.<br />
*r38610 Qt: fixed non ascii utf8 chars in TQtWidgetSet.ExtTextOut() when we use dx param. issue [[http://bugs.freepascal.org/view.php?id=22795 22795]] (depends on merging of r38518).<br />
*r38628,38629,38630,38634: Qt: fixed clipping bugs inside TQtWidgetSet.ExtTextOut()<br />
*38670 SynEdit: Fixed past eol paint error ** Must be ported by hand **<br />
*r38584 TAChart: Copy Attachment and YIndex in TGenericChartMarks.Assign ''(this code is in TATypes unit in v1.0)''<br />
*r38589 TAChart: Do not draw lines which should be invisible in OpenGL drawer<br />
*r38607 TAChart: Workaround for issue [[http://bugs.freepascal.org/view.php?id=22850 22850]] '''see patch in the mailing list'''<br />
*r38617 TAChart: Fix GetNearestPoint returning true with no points found inside radius, issue [[http://bugs.freepascal.org/view.php?id=22854 22854]]<br />
*r38644: Qt: fixed menu flickering. issue [[http://bugs.freepascal.org/view.php?id=22872 22872]]<br />
*r38651: TAChart: Fix zero division when calling ImageToGraph before the chart is drawn<br />
*r38674 Qt: fixed crash when invalid or null handle is passed into SetCapture.<br />
*r38679 Qt: update bitmap if TMenuItem has associated ImageList and ImageIndex. issue [[http://bugs.freepascal.org/view.php?id=22896 22896]]<br />
*r38672 SynEdit: fixed delete-next-word, if caret past eol. Issue [[http://bugs.freepascal.org/view.php?id=0022890 0022890]]<br />
*r38720 LCL, DefaultTranslator: fix handling of non-ASCII path to .po file, bug 22907, patch by Vladimir Zhirov<br />
*r37398 IDE: corrected version info language list, added Ukrainian language, bug 22103<br />
*r38722 IDE: added Lithuanian to version info language list, bug 22898<br />
*r38671: carbon: fix accidental error in index<br />
*r38743: carbon: reimplement linear gradient draw using shading to support OS X < 10.5<br />
*r38636,r38637: Gtk2: fixed text clipping and text background drawing<br />
*r38758: gtk2: allocate GdkColor when we need a BkColor<br />
*r38727,r38728,r38742,r38744,r38745,r38748: gtk2: fix clipping and DC transformations<br />
*r38747: gtk2: fix FrameRect - it must use a passed brush instead of selected one<br />
*r38373 Gtk2,Qt: make ETO_OPAQUE work from TCanvas.TextOut(). issue #22719<br />
*r38769-r38772: lcl, gtk2, carbon: full implementation of GradientFill<br />
*r38673 TAChart: Ignore NaNs while calculating TCustomChartSource.ValuesTotal<br />
*r38675 TAChart: Support Marks.Attachment = maCenter in pie series<br />
*r38694: TAChart: Fix update of TListChartSource.ValuesTotal cache when adding or removing NaNs<br />
*r38710: TAChart: Fix crash when using TChartExtentLink with LinkedChart.Chart = nil<br />
*r38712: TAChart: Fix crash while replacing linked chart in TChartExtentLink<br />
*r38713: TAChart: Use NumberOr function instead of checking for NaN explicitly<br />
*r38719: TAChart: Extract TDrawFuncHelper.ForEachPoint helper procedure ''This also fixes a hang while using data point tool on extremely zoomed-in series''<br />
*r38729: TAChart: Extract TDrawFuncHelper.XRange helper function. + Fix GetNearestPoint for rotated function series.<br />
*r38733: TAChart: Fix TChartSeries.SetColor to notify all listeners and require ListSource. Add TListChartSource.SetColor<br />
*r36674: TAChart: Add AddArray, AddNull, AddX and AddY functions to TChartSeries<br />
*r38697,38698 Gtk2: set TToggleBox.ParentColor default false so it's color is consistent with TButton when eg.parent color is clRed and TToggleBox.Color=clDefault.<br />
*r38709: Qt: improved triggering of OnClick() in QEventShowToParent. issue [[http://bugs.freepascal.org/view.php?id=22872 22872]]<br />
*r38799: gtk2: implement SPI_GETWHEELSCROLLLINES. Fix a regression in VirtualTreeView wheel scroll<br />
<br />
== Fixes for 1.0 ==<br />
=== Merged revisions for 1.0.0 ===<br />
==== Submitted by developer / committer ====<br />
*r36506 LazReport, fix barcode dialog localization (Jesus)<br />
*r36508 Updated Japanese translation<br />
*r36509 Window Column, store pointer to resourcestring<br />
*r36510 LazReport, fix barcode addin when TfrBarCodeObject is not yet instantiated (in this case barcode editor defaults to memo view.<br />
*r36511 DividerBevel: implemented Transparent.<br />
*r36514 IDE: moved macros save/saveall to source editor<br />
*r36515 IDE: update macro descriptions after translating resource strings<br />
*r36516 IDE: trim TLazPackageGraph.GetFallbackOutputDir<br />
*r36517 IDE: check if package needs rebuild: switch to fall back directory: update compiler params<br />
*r36518 IDE: install/uninstall package dialog: fixed icons, added info about current state<br />
*r36523,r36530 IDE: Export as HTML<br />
*r36526 CodeTemplate: Improve final caret pos, if tmpl does not specify<br />
*r36527 CodeTemplate: allow tab to trigger / selection to ignore. issue [[http://bugs.freepascal.org/view.php?id=0017631 0017631]]<br />
*r36528 SynEdit: Template(Syncro) fix invalidation<br />
*r36529 IDE: Printing: break long lines. Issue [[http://bugs.freepascal.org/view.php?id=0013479 0013479]]; <br />
*r36547 IDE: Printing: break long lines. Fix Utf8. Update for rev 36529<br />
*r36531 LazReport: fixed buttonpanel localization in BarCode editor dialog<br />
*r36533 IDE: clean up of unused resourcestrings<br />
*r36534, r36536, r36553, r36583, r36646 regenerated translations; updated Russian translation<br />
*r36535 IDE: more clean up of unused resourcestrings<br />
*r36537 Documents LCLIntf.GetDeviceCaps<br />
*r36538 IDE: always store lazarus directory<br />
*r36539 LazReport: uppercase variable before comparing with hardcoded functions. Properly fix to 21624<br />
*r36543 IDE: setup dialog: using same file resolving as IDE<br />
*r36546 IDE: consider empty lazarusdirectory as pcp, empty fpcsrcdir as lazdir, empty testdir as lazdir<br />
*r36548 IDE: fixed note about wrong laz dir<br />
*r36549 IDE: fixed crash on find identifier references<br />
*r36551 IDE: translate descriptions of all macros<br />
*r36552 IDE: fixed editor tab position combobox items localization on Editor/Misc options page<br />
*r36556,r36557 IDE: warn if upgrading configs<br />
*r36561, 36562, 36563, 36566: Improve Options/Keymap<br />
*r36565 LCL: Prevent TShape.stRectangle disappearing with certain Height/Width and Pen.Width values.<br />
*r36567,r36568,r36569 IDE: show downgrade warning<br />
*r36570 lazbuild: select IDE build mode, fixed compiling with different mode<br />
*r36572 LCL: set csCaptureMouse on TToolButton, but don't send click if mouse is out of ttoolbutton on mouseup.issues [[http://bugs.freepascal.org/view.php?id=19688 19688]],[[http://bugs.freepascal.org/view.php?id=21560 21560]]<br />
*r36574 IDE: fixed saving environment on every change<br />
*r36577 LCL, TreeView: fix GetNextVisible, GetPrevVisible. Issue [[http://bugs.freepascal.org/view.php?id=21264 21264]]<br />
*r36575 IDE/Setup dialog: force taskbar button to be shown<br />
*r36584 IDE: import package list: opendialog<br />
*r36587 IDE: intial setup: fpc src dir: lazdir/fpc/fpcver/source<br />
*r36588 IDE: intial setup: fixed if no candidates found<br />
*r36589,r36590 IDE: compiler file name: search first with macros<br />
*r36591 IDE: verbose search for candidates<br />
*r36592 IDE: search fpc src relative to fpc.exe<br />
*r36594 IDE: check compiler: only run common names<br />
*r36595,r36599 IDE: use under windows as default for make the make.exe in the compiler directory<br />
*r36596 IDE,codetools: fixed ppccross,crossppc to ppcross<br />
*r36601 IDE: unify the 2 filters in KeyMapping window. Prevent a potential crash.<br />
*r36603 debian: updated patches to latest source in lazarus svn<br />
*r36608 Gtk2: do not set widget name, it's completelly unnecessary and produce unexpected behaviour if some keywords are in widget name.issue [[http://bugs.freepascal.org/view.php?id=21661 21661]].<br />
*r36613 SynEdit: Fix an issue with Scrollbars not being updated<br />
*r36617 lazbuild: build ide: replace exe on windows<br />
*r36644 IDE: improved 'Export package list' dialog localization<br />
*r36645 IDE: improved 'Package Graph Explorer' dialog localization<br />
*r36647,r36653,r36654,r36655,r36656,36668,36673 IDE: view / IDE internal / what needs building<br />
*r36648,r36650,r36651 IDE: read state file created by Makefile: fix path delimiters, checking compiled state: ignore -v,-i,-B flags, do not skip all -F<br />
*r36652 IDE: codetools options: shorter caption<br />
*r36658 regenerated translations; updated Russian translation <br />
*r36659 LCL: Refactoring. Make TCalculatorDialog.Execute more understandable by removing a "with" block.<br />
*r36661 LCL: Prevent "Test Dialog" feature of Calculator and Calendar dialogs locking the IDE, issue [[http://bugs.freepascal.org/view.php?id=21644 21644]]<br />
*r36616 SynEdit: do not include IME for WinCe<br />
*r36662 LCL: implementation of TCustomImageList.GetIcon()<br />
*r36663 In GUI strings, unify all 3 dots to have a space before them ( ...)<br />
*r36664 IDE: Use CreateAbsolutePath when switching between relative/absolute paths in AddFile dialogs (CreateAbsoluteSearchPath gives wrong output)<br />
*r36665 LCL: publish TUpDown.OnChangingEx<br />
*r36666 IDE etc.: unify 3 dots in GUI string to have a space ( ...).<br />
*r36667 translation: german: updates from Swen Heinig<br />
*r36669 updatemakefiles: write which lpk have conditionals<br />
*r36670,r36671 IDE,lazbuild: create makefile: use CPPROG instead of COPY to get the current date for Makefile.compiled under Windows<br />
*r36649,r36657,r36602,r36672,r36675,r36677,r36679,r36683,r36701,r36708,r36709 Makefiles: updated, reduced dependencies, fixed double compiles<br />
*r36676 LCL: Implement TListItem.EditCaption, issue [[http://bugs.freepascal.org/view.php?id=20295 20295]].<br />
*r36680,r36699 lazbuild: fixed crash, replaced some MessageDlg with IDEMessageDialog<br />
*r36681 IDE,lazbuild: use parsed compiler filename, make filename<br />
*r36682 IDE: debugfilename, debugsearchpath: use same function as other env vars to resolve macros, trim and find<br />
*r36686,r36688 IDE/lazbuild backup, delete the same lazarus exe on all platforms<br />
*r36694 regenerated translations; updated Russian translation<br />
*r36695 LazDataDesktop: regenerated translations; updated Russian translation<br />
*r36696 IDE: add resource strings for various windows manifest keys<br />
*r36697 fix ImageList.AddMasked() in case of source image has no mask description<br />
*r36702 IDE: TProject.TitleIsDefault: check for project+number, fix for renaming the title of a new project<br />
*r36711 Qt: enable wordwrap on TQtStaticText. issue [[http://bugs.freepascal.org/view.php?id=21697 21697]].<br />
*r36712 LCL: fixed function result<br />
*r36713,r36715 lcl: fixed TToolButton.MouseUp X,Y in boundsrect check<br />
*r36716 LCL, combination of modal form + wsMaximized style produces tiny windows on GTK2, issue [[http://bugs.freepascal.org/view.php?id=21634 21634]]<br />
*r36717 LCL: reverted changes to menus.pp from r36666 (by Paul's request)<br />
*r36718 LCL: regenerated translations<br />
*r36719, *r36826 LCL: fix range check error<br />
*r36720 LazReport: added option to ignore undefined symbols, from Luiz Americo, issue [[http://bugs.freepascal.org/view.php?id=21683 21683]]<br />
*r36723,36724 IDE,lazbuild: fixed repeated build project clean: save project state file before compiling too<br />
*r36727 lazbuild: fixed expanding --lazarusdir<br />
*r36728 make useride: pass --lazarusdir=.<br />
*r36729 Improve TStringHashList, prevents a PO file update crash. Issue [[http://bugs.freepascal.org/view.php?id=21685 21685]]<br />
*r36730 IDE: project wizard: fixed fixed size, bug 21714<br />
*r36731 lazreport: fix possible access violation by checking dataset for nil<br />
*r36732 win32: fix range check error<br />
*r36733 lazbuild: auto create ide/revision.inc if missing<br />
*r36734 Gtk2: fixed mouse capturing on native scrolling win controls (TListBox,TListView etc).issue [[http://bugs.freepascal.org/view.php?id=21713 21713]]<br />
*r36735 LCL: TToolButton: commented debugln().<br />
*r36740 lazbuild: fixed uninitialized function result, fixed checking if init failed, quick check if lazarusdir is valid.<br />
*r36741 lazutils: Patch with font collection support from Circular<br />
*r36744 examples: Adds a OpenURL/OpenDocument test<br />
*r36745 LCL: Adds the sysenvapis include files to the lpk and adds an extra safety in OpenURL for users which forget to encode spaces in filenames<br />
*r36746 IDE: fixed fixed size dialogs<br />
*r36747 IDE: sort selection: layout<br />
*r36748 IDE: added debugging for sort selection<br />
*r36749 gtk2: clean up<br />
*r36750 IDE: less debugging<br />
*r36751 IDE: jump to next/prev error: fixed direction<br />
*r36752 LCL: TTreeView: clean up<br />
*r36753 IDE: next/prev error: clear multi selection<br />
*r36754 lcl: move interface initialization of TCustomEdit from CreateWnd to InitializeWnd. Consistent with other controls and allows interfaces to check is handle is being created<br />
*r36755 IDE: Add acceleration keys and fix tab order in Project Wizard and ImageListEditor, issue [[http://bugs.freepascal.org/view.php?id=21718 21718]]<br />
*r36756 lcl: remove TCustomListBox.Loaded. ItemIndex is initialized in InitializeWnd<br />
*r36757 lcl: call inherited after setting FLines in TCustomMemo.InitializeWnd. Fix potential crash since widgetset code expect FLines be initialized <br />
*r36758 lcl: check for csDestroyingHandle in TControl.HandleObjectShouldBeVisible. Fix issue [[http://bugs.freepascal.org/view.php?id=19882 19882]]<br />
*r36759 lcl: revert 31890 since issue [[http://bugs.freepascal.org/view.php?id=19882 19882]] is properly fixed now<br />
*r36760 gtk2: less hints<br />
*r36761 gtk2: less hints<br />
*r36762 Carbon: fixed result of TWSCarbonCustomListView GetTopItem,GetViewOrigin and GetBoundingRect. issue [[http://bugs.freepascal.org/view.php?id=21733 21733]]<br />
*r36763 Carbon: added themed TComboBox drawing.Patch by David Jenkins. issue [[http://bugs.freepascal.org/view.php?id=21747 21747]]<br />
*r36764 Carbon: added themed TComboBox drawing.Patch by David Jenkins. issue [[http://bugs.freepascal.org/view.php?id=21747 21747]]<br />
*r36765 Docs: added David Jenkins to contributors list<br />
*r36766 Carbon: make carbon widget visibility in sync with lcl. Patch by David Jenkins. issue [[http://bugs.freepascal.org/view.php?id=21731 21731]]<br />
*r36767 lcl: remove Destroying and DestroyWnd calls from TCustomListBox.Destroy<br />
*r36768 lcl: cleanup TCustomListBox.Create<br />
*r36769 codetools: fixed skipping include files in skipped ifdef<br />
*r36770 gtk2: less hints<br />
*r36771 gtk2: less hints<br />
*r36772 ide: fix selection painting of debugger eventlog colors list<br />
*r36773 carbon: improved TCarbonWidgetSet.RawImage_XXXX routines.Patch by David Jenkins. issue [[http://bugs.freepascal.org/view.php?id=21743 21743]].<br />
*r36774 carbon: proper initialization of alpha channel.Patch by David Jenkins. issue [[http://bugs.freepascal.org/view.php?id=21753 21753]]<br />
*r36775 LCL: implement ClientToParent, ParentToClient based on patch of David Jenkins (issue [[http://bugs.freepascal.org/view.php?id=0021763 0021763]])<br />
*r36776 LCL: extend TThemeServices.IsDisabled, IsHot, IsPushed for teCombobox<br />
*r36777 IDE: Fix tab order and set shortcuts in Application Options frame.<br />
*r36778 LazControls: fix potential crash in TListFilterEdit and TTreeFilterEdit<br />
*r36779 GTK2: add TGtk2WidgetSet.SetDesigning to prevent Abstract method call in IDE. Issue [[http://bugs.freepascal.org/view.php?id=21773 21773]]<br />
*r36780 IDE: fix tab order in Project Save Options frame.<br />
*r36781 IDE: fix tab order in frames: Build Modes editor, Miscellaneous Options and Version Info<br />
*r36782 IDE: fix tab order in option frames: Code Generation, Compilation, Linking, Messages, Parsing.<br />
*r36783 GTK2: clean up<br />
*r36784 GTK2: clean up<br />
*r36786 Carbon: removed extra code for teComboBox, since teComboBox is supported by themes as of r36776.<br />
*r36787 gtk2: clean up<br />
*r36788 gtk2: fixed Gtk2WidgetSet.ClipboardGetData mem leak on stream write error<br />
*r36789 gtk2: removed OldCreateStatusBarPanel<br />
*r36790 gtk2: clean up<br />
*r36791 gtk2: clean up<br />
*r36794 IDE: CloseQueryIDEWindows: skip sub forms<br />
*r36795 Fix crash in dbg-console, if dbg not active. issue [[http://bugs.freepascal.org/view.php?id=21712 21712]]<br />
*r36796 SourceEdit: use softcenter for Replace prompt. Issue [[http://bugs.freepascal.org/view.php?id=0021709 0021709]]<br />
*r36797 regenerated translations; updated Russian translation<br />
*r36800 IDE: when checking if a FPC unit has changed: ignore units that have no source in the FPC sources. Needed to ignore user units reachable through fpc.cfg.<br />
*r36801 IDE: fix error message can't find unit if the ppu is in one of the loaded packages<br />
*r36803 DOCS: correct the documentation about CanFocus<br />
*r36806 LCL: clear FActiveDefaultControl on that control destruction<br />
*r36810 LCL: fix copy paste error<br />
*r36811 LCL: don't update Default, Cancel during their applying in UpdateDefaultCancel<br />
*r36812 LCL: add and ability to use own TListItems, TListItem descendants in TListView for delphi compatibility<br />
*r36821 gtk2 intf: fixed compilation FPC_FULLVERSION<20600<br />
*r36822 gtk2 intf: clean up<br />
*r36823 gtk2 intf: clean up<br />
*r36824 gtk2 intf: clean up<br />
*r36825 LCL: initialize font height with the height from DefFontData<br />
*r36852 IDE: when checking if global unit has changed, skip units in packages<br />
*r36857,36859 LCL: TControl.UpdateBaseBounds: set cfBaseBoundsValid<br />
*r36861 LCL: TCustomSplitter.SetAnchors: adapt anchors before applying<br />
*r36870 LCL: SetAlign: restore the basebounds set before changes<br />
*r36877 LCL: clean up<br />
*r36882 LCL: TControl.SetAnchors: during disabled autosize: update basebounds when changing Anchors, bug 21730<br />
*r36884 LCL: fixed sending CM_EXIT,CM_ENTER when flastfocusedcontrol was removed<br />
*r36885 LCL: constraint Width,Height to >=0<br />
*r36888 Converter: fixed 'Missing units' dialog localization, part of bug 21784<br />
*r36889,r36890 codetools: class completion: fixed gathr proc definitions<br />
*r36891 IDE: show compiling resource lines when error on compiling resources<br />
*r36892 IDE: improved message when can not find unit and unit was found in a package<br />
*r36893,r36894 IDE: messages: show debug: lines and calling resource compiler<br />
*r36895,r36896 gtk2 intf: checking for liboverlay, using value-changed instead of change-value<br />
*r36897 LCL: made TImage.DestRect public<br />
*r36899 Fix encoding errors in Japanese translation<br />
*r36900,r36901 startlazarus: fixed asking for custom or default<br />
*r36902 LCL: fixed ShowModal() when Hide() is called on modal form to be Delphi compatibile.issue [[http://bugs.freepascal.org/view.php?id=15390 15390]]<br />
*r36903 IDE: fixed read/write designinfo, bug 21804<br />
*r36904 IDE: do not save a new project where only session was modified, bug 21803<br />
*r36905 gtk2 intf: fixed TGtk2WSCustomTabControl.GetDefaultClientRect to check if gtknotebook has a page<br />
*r36906,36907 codetools: AddLocalVar: do not add hidden used unit<br />
*r36908 Qt: added TQtWidget.testAttribute() function.<br />
*r36910 DBG: Tests for environment<br />
*r36913 TAChart: Set Brush.Color before Brush.Style to work around issue [[http://bugs.freepascal.org/view.php?id=21806 21806]]<br />
*r36914: TAChart: Fix compilation of OpenGL drawer<br />
*r36924 gtk2 intf: TGtk2WSCustomTabControl.GetDefaultClientRect for TTabControl<br />
*r36925 Qt: fixed resize events of TQtTabWidget and accurate information about clientRect changes. issue [[http://bugs.freepascal.org/view.php?id=21805 21805]]<br />
*r36929 Gtk2: fixed text background drawing in TGtk2WidgetSet.ExtTextOut() when BkMode = OPAQUE.issue [[http://bugs.freepascal.org/view.php?id=19384 19384]]<br />
*r36941 Translations: Brazilian Portuguese translation update by Marcelo B Paula, bug 21818<br />
*r36938,36939 LazReport, lift up to preview window improving layout and functionality, from Julio Jimenez B.<br />
*r36942 LazReport, avoid hiding text at some zoom values due small differences in text height calc (DONT MERGE YET, NEEDS MORE TESTING)<br />
*r36943 IDE: msg quickfix for cant find unit: add position<br />
*r36956 carbon: added FHasPaint variable to TCarbonWidget to allow owner draw.issue [[http://bugs.freepascal.org/view.php?id=21744 21744]]<br />
*r36957 carbon: added ScrollRect() routine to TCarbonWidget. issue [[http://bugs.freepascal.org/view.php?id=21741 21741]]<br />
*r36958 carbon: set FTabIndex instead ATabIndex variable in TCarbonTabsControl.SetPageIndex. patch by David Jenkins.issue [[http://bugs.freepascal.org/view.php?id=21728 21728]]<br />
*r36959 carbon: optimized caret drawing to not update whole widget.patch by David Jenkins. issue [[http://bugs.freepascal.org/view.php?id=21768 21768]]<br />
*r36960 carbon: fixed order of check width > height in TCarbonTrackbar.patch by David Jenkins. issue [[http://bugs.freepascal.org/view.php?id=21740 21740]]<br />
*r36961 carbon: implemented autosizing for listview / databrowser columns.patch by David Jenkins. issue [[http://bugs.freepascal.org/view.php?id=21745 21745]]<br />
*r36962 carbon: fixed possible bad loop in TCarbonSpinEdit.CreateWidget.Patch by David Jenkins.issue [[http://bugs.freepascal.org/view.php?id=21732 21732]]<br />
*r36965 IDEIntf: fixed typo<br />
*r36967 Gtk2: fixed retreiving font name from TGtk2WidgetSet.GetObject() when font is default. issue [[http://bugs.freepascal.org/view.php?id=21828 21828]]<br />
*r36968 codetools: JumpToPublishedMethodBody: raise error<br />
*r36969 codetools: fixed FindMethodNodeInImplementation for program<br />
*r36971 tests: codetools: added test for duplicate sections, parsing library<br />
*r36972 codetools: fixed reparsing initialization, finalization, begin<br />
*r36973 codetools: fixed treating initialization, finalization as statement<br />
*r36974,r36975,r36976,36977,36978 codetools: fixed find declaration in library starting in initialization, bug 21832<br />
*r36981,r36982 codetools: identifier completion: fixed continue searching<br />
*r36979 Updated Japanese translation by Haruyuki Fujimaki<br />
*r36980 Fix japanese encoding<br />
*r36983,r36984 codetools: identifier completion: some keywords for library, program<br />
*r36985 codetools: identifier completion: keyword initialization for library, issue [[http://bugs.freepascal.org/view.php?id=21839 21839]]<br />
*r36986 Updated Japanese translation by Haruyuki Fujimaki<br />
*r36990 codetools: identifier list: skip identifier at cursor<br />
*r36991,r36992 IDE: identifier completion: add do after with, issue [[http://bugs.freepascal.org/view.php?id=16850 16850]]<br />
*r36996,r36997,r36999,r37013,r37014,r37015 runtests: fixed compilation, added some tests<br />
*r37012,r37011,r37009,r37008,r37007,r37006,r37005,r37004,r37003,r37002,r37000 carbon interface: clean up<br />
*r37020 IDE: recent/history lists: replaced case sensitive comparison with three types<br />
*r37021 docking: update modified flags<br />
*r37022 codetools: fixed uninitialized result<br />
*r37025 IDE: use unit dialog: check for syntax errors<br />
*r37026,r37027 DBG: Prepare for different line endings. / Accept different line endings (#10, #13, #10#13, #13#10) issue [[http://bugs.freepascal.org/view.php?id=0021834 0021834]].<br />
*r37029 Gtk2: fixed drawing of text with solid brush. issue [[http://bugs.freepascal.org/view.php?id=21863 21863]]<br />
*r37031 Gtk2: do not draw text background if colormap isn't assigned. Second part of issue [[http://bugs.freepascal.org/view.php?id=21863 21863]].<br />
*r37032 gtk2: clean up old mouse capture<br />
*r37033 gtk2: fixed releasecapture<br />
*r37034 gtk2: verbosity for ubuntu liboverlay mouse capture bug<br />
*r37038 sqldb: Enable mssqlconnection for fpc >= 2.6.1 (patch from Reinier Olilagers, bug 21867) - added because creates conflicts with later sqldb merges<br />
*r37040: TAChart: Workaround for TDbChartSource referring to the dataset with Filtered := true<br />
*r37043 LCL, fix TPostScriptPrinterCanvas.ClipRect is empty-rect until explicitly set by user, patch from Joachim Paepke, issue [[http://bugs.freepascal.org/view.php?id=21027 21027]]<br />
*r37051 Translations: Ukrainian translation update by Igor Paliychuk<br />
*r37052 regenerated translations; updated Russian translation<br />
*r37053 LCL: fixed compilation for fpc 2.7.1<br />
*r37054,37055,37057 set TDBLookup.FListLink.DataSource dynamically to FListSource or a local datasource. Issue [[http://bugs.freepascal.org/view.php?id=15410 15410]]<br />
*r37067 LCL: fixed visibility of implemented interfaces<br />
*r37069 simple deb: using make bigide, updated list of tools<br />
*r37070 openglcontrol: fixed mem leak, issue [[http://bugs.freepascal.org/view.php?id=21597 21597]]<br />
*r37071 codetools: identifier completion: unit name of self<br />
*r37076 gtk2: clean up<br />
*r37077 IDE: clean up<br />
*r37092 LCL: fixed compilation for fpc 2.7.1<br />
*r37093 DBG: Testcase: fixed reading env-options<br />
*r37095 SynEdit: fix crash in overview gutter creation. Issue [[http://bugs.freepascal.org/view.php?id=0021887 0021887]]<br />
*r37096 SynEdit: Do not offer OverviewGutter in Gutter-parts designer<br />
*r37101 lazreport: fixed compilation with fpc 2.7.1, new TBookMark<br />
*r37102 lazreport: clean up<br />
*r37112,r37113 SynEdit: highlight class "helper". Fix wrong highlight of "sealed" Issue [[http://bugs.freepascal.org/view.php?id=0021812 0021812]]<br />
*r37115 openglcontrol: fixed mem leak, issue [[http://bugs.freepascal.org/view.php?id=21597 21597]]<br />
*r37126 LCL: Publish some TCheckGroup properties.<br />
*r37129 gtk2: clean up<br />
*r37154,37247,37248 lcl-db: prevent lookup initialization when dataset is destroyed<br />
*r37155 LCL, use rectclip to set clipping rectangle instead of current path because it sometimes get drawn on next stroke (related to r37043)<br />
*r37157 Qt: fixed key events from QCalendar, now tabbing works fine.<br />
*r37160 LCL: published missing properties TCalendar.Hint and TCalendar.TabOrder.<br />
*r37167 LCL: Fix range check error in StringGrid when sorting and RowCount=FixedRows, issue [[http://bugs.freepascal.org/view.php?id=21947 21947]]<br />
*r37073 codetools: resolve expr: thisunitname.implementationenidentifier<br />
*r37078 codetools: find declaration: selfunit.implementationidentifier<br />
*r37079,r37080,r37081,r37082,r37083,r37087,r37089,r37098 codetools: getsmarthint: class variables, enum, array of, inheritance, property params and type, use unit<br />
*r37085 IDE: show compiler options: check compiler<br />
*r37086,37088 IDEIntf: removed TLazCompilerOptions.LCLWidgetType, fixed computing default LCLWidgetType on cross target OS<br />
*r37090 codetools: do not try to search in record ancestors<br />
*r37105 DBG: Watches Copy Name/Value to clipboard. Issue [[http://bugs.freepascal.org/view.php?id=0021860 0021860]]<br />
*r37106 DBG: Register Copy Name/Value to clipboard. Issue [[http://bugs.freepascal.org/view.php?id=0021860 0021860]]<br />
*r37107 DBG: Watches, added inspect/evaluate to popup<br />
*r37116 DBG: Fix a possible crash in debugger (history). Issue [[http://bugs.freepascal.org/view.php?id=0021901 0021901]]<br />
*r37195 SourceEdit: Do not access outdated tab-history entries (dangling pointers). Issue [[http://bugs.freepascal.org/view.php?id=0021939 0021939]]<br />
*r37196 SourceEdit: Only add tabs to tab-history that were accessed<br />
*r37103,r37132 codetools: nested types: Self and inherited<br />
*r37104,r37120 codetools: GetSmartHint: show anonymous arrays<br />
*r37111 IDE: Make Close button work in Components List dialog. Issue [[http://bugs.freepascal.org/view.php?id=21892 21892]],<br />
*r37118 IDE: build ide: if building fails, clear flag clean up once<br />
*r37119 IDE: when building IDE failed: restore backup<br />
*r37121,r37122 IDE: select frame: search in packages<br />
*r37130 IDE: select frame: search in packages<br />
*r37131 LCL, implements textrect clipping in Postscriptprintercanvas<br />
*r37133 SynEdit: Fix WantTabs / Change default to "True" Issue [[http://bugs.freepascal.org/view.php?id=0021904 0021904]]<br />
*r37134 SynEdit: Remove not required invalidation (paint / call to wrong Update() )<br />
*r37135 SynEdit: Remove wrong implementation of Update. Update no longer forwards to Invalidate<br />
*r37136 IpPro: Fix painting for SelectAll<br />
*r37137 IDE, IpPro: Allow copy to clipboard from hint (zeljko added because of conflict in 37345)<br />
*r37140 cody: show code node info: show complete source<br />
*r37141 SynEdit: Fixed Caret paint error (extra caret left on screen) Issue [[http://bugs.freepascal.org/view.php?id=0021924 0021924]]<br />
*r37143 IDEIntf: added TPropertyEditorHook.IsSelected<br />
*r37144 IDEIntf: TDefaultComponentEditor: always select component<br />
*r37146 IDE: if component class is missing: note about RegisterClass<br />
*r37148 Translations: Ukrainian translation cleanup<br />
*r37149 IDE: regenerated translations; updated Russian translation<br />
*r37151 cody: IDE item to create dockable IDE window<br />
*r37152 cody: new IDE window: show dialog to setup form name<br />
*r37162,r37163 IDE: TProjectFileDescriptor.DefaultResourceName: first try without appending a number, check for pascal keywords<br />
*r37164,r37165 IDE: fixed DoGetUnitRegisterInfo for virtual files<br />
*r37166 SynEdit: Fixed Caret when scrolling under older Wine (Win Emulator)[[http://bugs.freepascal.org/view.php?id=21929 21929]]<br />
*r37212 sqldb: added icon for TMySQL55Connection for fpc 2.6.1 '<br />
*r37213,r37214,r37219 codetools: do not save errors outside parser<br />
*r37215 codetools: GetSmartHint: ^, .., file of, class of<br />
*r37220 Translations: Czech IDE translation update by Martin Smat<br />
*r37224 SynEdit: Autocompletion, workaround for click on hint Issue [[http://bugs.freepascal.org/view.php?id=21952 21952]]<br />
*r37231 SynEdit: Prevent some scrolling, while selecting by mouse. Issue [[http://bugs.freepascal.org/view.php?id=0021996 0021996]]<br />
*r37232 DBG: Inspect window, improve scrolling<br />
*r37234 DBG: Improve start-up to work with bug in gdb 7.4<br />
*r37262 searching compiler: search first in dir of fpc.exe, then in PATH<br />
*r37263,r37265 codetools: improved error message on unit not found<br />
*r37264 fix setting radiogroup.itemindex under gtk2. Issue [[http://bugs.freepascal.org/view.php?id=22013 22013]]<br />
*r37267 Docs: improved build_lcl_docs robustness when working with TProcess, patch from Reinier Olislagers, bug 22000<br />
*r37273 SourceEditor: Fix crash when closing several tabs, while debugging (paused / loading line info). Maybe related to issue [[http://bugs.freepascal.org/view.php?id=22015 22015]]<br />
*r37274 Fix Crash in building "Windows" (list of open W.) Menu. Note 0059576 in Issue [[http://bugs.freepascal.org/view.php?id=22015 22015]] (not related to other parts of issue)<br />
*r37280 SQLdb: added missing tmysql55connection.png, bug 22033 '''Related to 37212 and other revisions for TMySQL55Connection'''<br />
*r37281 SynEdit: protect ProcessCommand() against early destruction by ReleaseComponent. Issue [[http://bugs.freepascal.org/view.php?id=0022035 0022035]]<br />
*r37285 IDE: make Close button work in Window Manager<br />
*r37286 Patch from bug 21651, automatically adds quotes to paths with spaces for OpenDocument in Mac OS X<br />
*r37297,r37298 SynEdit, Pas-HL: record helper, deprecated in object<br />
*r37311 Translations: Arabic IDE translation update by Mazen NEIFER<br />
*r37312 IDE: Make Help button work in Editor Window Manager, issue [[http://bugs.freepascal.org/view.php?id=21961 21961]]. (zeljko added to merge list because of conflicts in 37491)<br />
*r37325 regenerated translations; updated Russian translation<br />
*r37326 Translations: Brazilian Portuguese translation update by Marcelo B Paula, bug 22064<br />
*r37327 IDE, Code Generation options: changed wrong -Op386 option to correct -Op80386. Patch by barlone with some consistency changes, bug 22062.<br />
*r37357 Gtk2: fixed mbAll button on dialogs. Added response keys which does not exist in gtk2. issue [[http://bugs.freepascal.org/view.php?id=22083 22083]]<br />
*r37344 gtk2 intf: less hints<br />
*r37345 ipro: less hints <br />
*r37359 lazreport: German translations<br />
*r37360 cody: German translations<br />
*r37039,r37319,r37324,r37361 sqldb: German translations (zeljko added 37039,37319,37324 because of conflicts)<br />
*r37362 educationlaz: German translations<br />
*r37363 ide: German translations<br />
*r37372 lcl: don't access Items of TreeView if DragOver happens during treeview destruction<br />
*r37373 IDE: debugger options: check the resolved file, bug 22086<br />
*r37374 Qt: bypass windowmanager when showing dragimagelist.<br />
*r37375 Gtk2: do not show taskbar entry for dragimagelist.<br />
*r37376 IDE: update TUnitInfo.ResourceBaseClass on loading lfm<br />
*r37378 [Edited, includes selected lines of 37402] SourceEditor: Hide hint, when mouse moves (even if outside IDE, or IDE is not active). Issue [[http://bugs.freepascal.org/view.php?id=0022016 0022016]]<br />
*r37368 DBG: Fixed array len for 64 bit<br />
*r37369 lcl: don't crash when either DragTarget or dragged control is freed (issue [[http://bugs.freepascal.org/view.php?id=22067 22067]])<br />
*r37370 lcl: cleanup debug info<br />
*r37371 lcl: fixed a memory leak when canceling drag of dead control<br />
*r37380 SourceEdit/DBG: Ensure Codebuffer is updated before using it to add watches<br />
*r37383 IDE: TUnitInfo.fModified: do not set on get<br />
*r37384,r37401 IDE: do not set TUnitInfo.Modified when committing source editor to codetools<br />
*r37388,r37389,r37390,r37391,r37392 tests: added tests for cfgscripts, fixed unit output directory, cfgscript: fixed error message if semicolon is missing, IDE: added conditionals functions GetIDEValue, GetEnv, LCL: use IDE widgettype as default<br />
*r37397 TodoList: properly trim comment markers and convert multiline text to single line, fixes bug 22085. Based on patch by Anton.<br />
*r37400 codetools: fixed mem leak<br />
*r37418: TAChart: Fix range check using datapoint tool on a chart without series<br />
*r37440 DBG: do not set temporary stack = -1 in thread changing. This may cause errors<br />
*r37444 DBG: Watches, save "Use instance class" to config<br />
*r37449 LCL: fixed comments<br />
*r37451 Qt: fixed wrong SetCapture() under win32. Problem was passed TQtWidget handle instead of underlaying widget winID() which is native handle.<br />
*r37453 SynEdit: Fix goto bookmark and persistent block. Do not clear persistent block<br />
*r37461 lcl: TCustomForm.UpdateDockCaption: fixed repair garbage<br />
*r37463 IDE: when docked keep IDE caption<br />
*r37464 Help, DBG: New link to wiki for watch properties<br />
*r37475 codetools: TCustomCodeTool.FindLineEndOrCodeAfterPosition: fixed crash when at end of code<br />
*r37476 codetools: clear nodes behind, when linkscanner parsed only parts<br />
*r37481 IDE: fixed storing old LCLWidgeType, bug 22174<br />
*r37482 codetools: save parse error of operator, do not save errors outside parser, fixed parsing method name with generic parameter<br />
*r37483 codetools: allow keywords in program name<br />
*r37534 Qt: do not call setValue() but setPosition() so lcl gets accurate values later. issue [[http://bugs.freepascal.org/view.php?id=22187 22187]]<br />
*r37491 Help, DBG: Link to wiki for breakpoint properties (zeljko - 37312 is merged too, because of conflicts)<br />
*r37470 IDE, DBG: debug-eval hint, do not show, if selection exceeds one statement (e,g whole file selected). Part of issue [[http://bugs.freepascal.org/view.php?id=0022081 0022081]]<br />
*r37471 SourceEditor: Fix an issue with focusing an editor, that is being closed (while debugging) "no parent handle". Issue [[http://bugs.freepascal.org/view.php?id=0022015 0022015]]<br />
*r37517 SynEdit: fixed folding for "case" and "try" in certain code segments (initialization / case...else try)<br />
*r37518 SynEdit: Pas-HL: fix detection of case...else versus if...then...else<br />
*r37522 SynEdit: Pas-HL: better detection of case...else<br />
*r37623 SourceEditor: Fix (Work-around) an issue with focusing an editor, that is being closed (while debugging) "no parent handle". Issue [[http://bugs.freepascal.org/view.php?id=0022015 0022015]] // Required some parts of r37502<br />
*r37609 DBG: Avoid re-queuing of dis-assembler requests, after cancelling it. Part of issue [[http://bugs.freepascal.org/view.php?id=0022230 0022230]]<br />
*r37643 DBG: Disassembler: prevent disassembler from doing large address ranges, if gdb returns data with far away addresses. Issue [[http://bugs.freepascal.org/view.php?id=0022230 0022230]]<br />
*r37657 DBG: fixed a out of index error, in watches history<br />
*r37694 DBG: Fixed possible crash in watch evaluation (WatchValue freed while evaluating / in GetValue)<br />
*r37466 IDE: added menu item to insert MIT license text<br />
*r37407,r37474,r37492 IDE: TMainIDE.DoSourceEditorCommand: improved focus check, requires r37466<br />
*r37564 LCL: TCustomListView: reset FCacheIndex and FCacheItems before sorting list, otherwise we'll have unexpected results. issue [[http://bugs.freepascal.org/view.php?id=22218 22218]]<br />
*r37505, r37509, r37516, r37523 fixed compilation with fpc 2.7.1<br />
*r37592 lcl: fixed compilation fpc 2.7.1<br />
*r37525 TAChart: Display legend symbols even if the text is empty<br />
*r37565 TAChart: Display major axis marks at the edges of the clip range<br />
*r37576 TAChart: Fix infinite recursion when drawing chart listbox from series with Legend.Multiplicity <> lmSingle<br />
*r37588 TAChart: Include Item.Y in reordered list of TCalculatedChartSource. Update test. '''This will break old tests. Please contact me for a fix --- Ask'''<br />
*r37727 TAChart: Update to the recent version of FPVectorial<br />
*r37587 Qt: unset icon when doing internal sync after sorting. part of issue [[http://bugs.freepascal.org/view.php?id=22218 22218]]<br />
*r37620 LCL: invalidate parent preferredsize when borderspacing changed, bug 17947<br />
*r37621 LCL: clean up - invalidate in TControl.DoBorderSpacingChange no longer needed with new autosizing<br />
*r37622 lazutils: added missing file<br />
*r37624 LCL: GetClientRect: if interface has the right width,height trust the clientrect, this avoids some unneeded resizes<br />
*r37573 IDE: project inspector: add files: allow dotted unit names, bug 22209<br />
*r37619 IDE: open package dependency: try provides, issue [[http://bugs.freepascal.org/view.php?id=17960 17960]]<br />
*r37628 IDE: compiler options: disable target platform for packages<br />
*r37594 codetools: fixed Unneeded extra space in event assignment completion<br />
*r37613 codetools: property completion: add class var for class property variables<br />
*r37614 codetools: class completion: search variables in all sections, bug 22246<br />
*r37625,r37626,r37627 codetools: class completion: fixed searching var node when first is class var<br />
*r37629 codetools: fixed adding class keyword for property setter of a class property<br />
*r37630 IDE: codeexplorer: labels<br />
*r37634 IDEIntf: objectinspector: fixed painting outside paint event<br />
*r37631 codetools: no var node for anonymous record case variables<br />
*r37632 codetools: identifier completion: when creating an override hide higher visibility members<br />
*r37633 codetools: class completion: add static method modifier for setter of class property<br />
*r37636 codetools: class completion: add static method specifier for class property setter<br />
*r37635 IDE: paste component: fix renamed references<br />
*r37637,r37638,r37639 IDE: paste multiple components: fix references, lcl: LRSObjectTextToBinary: write convert list of components<br />
*r37640 IDE: paste components: update TControl.Caption<br />
*r37642 lcl: fixed LRSObjectTextToBinary toWString, issue [[http://bugs.freepascal.org/view.php?id=19650 19650]]<br />
*r37644 codetools: fixed inserting proc bodies in implementation in front of methods<br />
*r37652,r37653,r37655 codetools: using TFileStreamUTF8<br />
*r37656 IDE: using TFileStreamUTF8 and TStringListUTF8<br />
*r37663 IDE: fixed show info on --help when no stdout exists<br />
*r37689 LCL: fixing handling of special keys for TCustomEdit and TCustomMemo<br />
*r37690 codetools: forward proc completion: stay in same section<br />
*r37697 DBG: Dialogs, don't give help related commands to IDE. They will be ignored<br />
*r37698 IDE Help: add urls for dbg dialogs<br />
*r37703 lazutils: utf8pos: added optional parameter StartPos<br />
*r37704 IDE: setup dialog: show fpc source directory release version as warning instead of error<br />
*r37707 tools create deb+rpm: use 128x128 icon<br />
*r37705 SynEdit: open and close clipboard explicitly to write multiple formats.<br />
*r37714 lcl: gtk2: warn only once about liboverlay<br />
*r37711 lhelp: cleaned up paths<br />
*r37712 lhelp: clean up<br />
*r37713 lhelp: resolve macros in HelpEXE on the demand<br />
*r37715 chmhelp: using search path to search for chm files<br />
*r37716,r37717 chmhelp: added path $(LazarusDir)/docs/chm<br />
*r37718 'hmhelp: search ref.chm in docs/chm<br />
*r37726 create_lazarus_deb: added option chmhelp<br />
*r37722 DBG: Event-Log: Do not cache Options. Allow user to change options while debugging<br />
*r37596 Patch from {{MantisLink|0022231}} "fix warnings with fpc 2.6.1".--[[User:AlexVinS|AlexVinS]] 21:40, 8 June 2012 (UTC)<br />
*r37745 deb+rpm: default environmentoptions: updated to 107, removed default gdb entry<br />
*r37748,r37755 lhelp: added makefile<br />
*r37749 make bigide: build lhelp<br />
*r37753 IDE: fixed comparing file names case insensitive<br />
*r37754 lazutils: inlined UTF8CompareStr<br />
*r37760 Use Utf8CompareText instead of AnsiCompare<br />
*r37762 linux: added encoding to desktop file<br />
*r37769 Use Utf8CompareText instead of AnsiCompare<br />
*r37770 TAChart: Fix AV when clearing Series.Styles and TColorMapSeries.ColorSource properties<br />
*r37772 Use Utf8CompareText instead of AnsiCompare<br />
*r36804 win32: mark client rect as required update before WM_SIZE passing, remove DoAdjustClientRectChange - they are called inside WM_SIZE handler after the client rect is updated (fixes bug [[http://bugs.freepascal.org/view.php?id=0021724 0021724]])<br />
**Paul remarked about r36804: "Please don't merge it for at least 2 weeks". Also seems to cause problems in grids, see [http://bugs.freepascal.org/view.php?id=21790 issue [[http://bugs.freepascal.org/view.php?id=21790 21790]]].<br />
*r36993: LCL, fixed Problems setting Width, Height for TCustomGrid if ScrollBars is auto, from cobines, issue [[http://bugs.freepascal.org/view.php?id=21790 21790]]. If r36804 is merged, please merge also r36993<br />
*r37783 startlazarus: linux: adding LIBOVERLAY_SCROLLBAR=0 to avoid problems with mouse capturing<br />
*r37785 gtk2 intf: disable liboverlay by default<br />
*r37790 gtk2 intf: use setenv only on Linux<br />
*r37795: export tgz: added option to add chm files<br />
*r37796 IDE: when copying secondary configs create the primary config directory first<br />
*r37797 rpm: added option chmhelp<br />
*r37810 rpm: fixed building without chmhelp<br />
*r37811 lhelp: fixed invalid recent item path in config, added build modes default,debug<br />
*r37814 chmhelp: clean up old ipc files to prevent IDE hang<br />
*r37817-r37821 MAKE DEB<br />
*r37838 DBG: Fix handling console input<br />
*r37824 chmhelp: Fixed lazarus hanging when chmhelp pipe is leftover from an improperly closed lhelp<br />
*r37825 chmhelp; Fixed chmhelp typo (boolean error)<br />
*r37826 chmhelp: fixed bug where a new lhelp process could be started each time F1 was pressed<br />
*r37841 DBG: Pseudo-Terminal, accept tabs<br />
*r37848 lazutils: docs: fixed encoding and package name<br />
*r37849 lcl: docs: fixed encoding<br />
*r37850 ide: docs: fixed encoding<br />
*r37851 updated docs<br />
*r37853 lcl: docs: fixed some links<br />
*r37852 build_lcl_docs: using UTF-8 file functions, added option -h<br />
*r37855 build_lcl_docs: showcmd: show working directory<br />
*r37861 lcl: check if ListDataset is loading to update lookup info. Issue [[http://bugs.freepascal.org/view.php?id=22337 22337]]<br />
*r37846 win32: let TComboBox.CloseUp fire before Change (delphi compatible). Fix 22352<br />
*r37880 IDE+startlazarus: use same working directory, needed for passing relative file names as command line parameters, fixed building lcl+lazutils chm on ubuntu 12<br />
*r37866 lazutils: fixed unit names<br />
*r37868 lazutils: added fpdoc files<br />
*r37869 docs: building lazutils+lcl chm<br />
*r37885 DBG: fixed parsing sets for debug-inspector<br />
*r37906 IDE-Options / SynEdit: Fixed RightEdge visibility (Recression)<br />
*r37919 DBG: Prevent potential crash/memory-corruption in Watches<br />
*r37920 DBG: Prevent potential crash in (dbg-)OnIdle handling<br />
*r37921 DBG: Prevent build up of no longer needed commands in queue<br />
*r37945 DBG: Prevent a crash, when the selected snapshot is deleted. Cas also happen when starting the debugger, while a snapshot from previous run is active<br />
*r37950 DBG: fixed endless loop in watch eval (auto type cast) Issue [[http://bugs.freepascal.org/view.php?id=0022425 0022425]]<br />
*r37961 DBG: Disable rangechecks for certain PtrUInt casts<br />
*r37993 carbon: fixed crash of IDE when compiled with range checks on<br />
*r38006 gtk2: fixed crash on QuestionDlg<br />
*r38003 IDE: fixed showing custom project options, issue [[http://bugs.freepascal.org/view.php?id=22486 22486]]<br />
** merged ONLY main.pp<br />
*r38016 ToDoList: fixed encoding of French translation, it should be UTF-8, not ISO-8859-1. Patch by batyann811, bug 22489.<br />
*r37981,37983-37989,38001,38004-38005,38012,38017 Win Installer<br />
===== Fixed after RC1 =====<br />
*r38127 IDE, EditorOptions: Fixed finding color attribute in localized IDE<br />
*r38132 IDE: setup: after changing lazarusdir: fetch translations and translate<br />
*r38133 chmhelppkg: invoke lazbuild with --pcp parameter<br />
*r38138 examples: testall: fixed start<br />
*r38139 examples: cleandirs: error for fpc version<br />
*r38140 examples: componentstreaming: fixed typo, clean up<br />
*r38141 lazfreetype: fixed range check error, improved error message<br />
*r38142 examples: mssqlconn: requires fpc 2.6.1<br />
*r38144 examples: synguttermarks: win32 gui mode, fixed Left position<br />
*r38146 examples: tv_add_remove: updated<br />
*r38147 examples: xmlreader: added example xml<br />
*r38157 IDE: fixed saving ambiguousfileaction, bug 22573<br />
*r38158 examples: clean up<br />
*r38038 TAChart: Allow spaces in field names inside TDbChartSource.FieldY<br />
*r38168 synuni: clean up fpc options<br />
*r38170 synuni, semaphorgridlpk: clean up fpc options<br />
*r38022 SynEdit: Fixed drawing errors for frames (left frame site drawn at wrong offset)<br />
*r38145 LCL: TListView fixed "List index out of bounds" while deleting items. issue [[http://bugs.freepascal.org/view.php?id=22552 22552]]<br />
*r38150 SynEdit TSynMultiSyn: Fixed crash when deleting lines. Part of issue [[http://bugs.freepascal.org/view.php?id=0022519 0022519]]<br />
*r38151 SynEdit Highlighter: Fixed crash when scanning empty<br />
*r38152 SynEdit TSynMultiSyn: typo<br />
*r38175 SynEdit TSynMultiSyn: Fixed updating, when appending to EOT. Part of issue [[http://bugs.freepascal.org/view.php?id=0022519 0022519]]<br />
*r38205 lazaruside.fi.po: Finnish translations<br />
*r38180 Synedit: fix matching-bracket-highlight in comments (closing bracket at eol) issue [[http://bugs.freepascal.org/view.php?id=22586 22586]]<br />
*r38198 IDE: Export to html, do not enforce check for writeable. Issue [[http://bugs.freepascal.org/view.php?id=22588 22588]]<br />
*r38199 lazutils: do not use winodws W functions under Win98, issue [[http://bugs.freepascal.org/view.php?id=22596 22596]]; '''Breaks compilation on wince, because win32platform is not defined.'''<br />
*r38202 openglcontrol: win32: fixed sharing context<br />
*r38204 Synedit: fixed typo in IFDEF for fpc 2.60 bug<br />
*r38225 TAChart: Fix division by zero in zoom tools with extreme zoom ratios<br />
*r38226 TAChart: Fix hang in functional series with extreme zoom ratios<br />
*r38223 SynEdit TSynMultiSyn: Several fixes issue [[http://bugs.freepascal.org/view.php?id=0022519 0022519]]<br />
*r38232 TAChart: Add InRangeUlps utility function<br />
*r38233 TAChart: Fix disappearance of axis marks located exactly at chart bounds<br />
*r38234 TAChart: Fix crash when setting Marks.LabelFont from the Object Inspector<br />
*r38237 Examples/SynEdit: Readme and typo in comment<br />
*r38266 IDE: Tweak the layout of ManageExamplesForm<br />
*r38260 TAChart: Use correct notification when the series' source changes<br />
*r38261 TAChart: Issue change notifications when modifying TListChartSource.DataPoint property<br />
*r38285 lhelp: replace MessageBox, with Form.Modal. FIx IPC hang. issue [[http://bugs.freepascal.org/view.php?id=0022592 0022592]]<br />
<br />
===== Fixed after RC2 =====<br />
*r38293 windows installers: don't ask to overwrite the environment options in the secundary config directory from Reinier Olislagers<br />
*r38339 SynEdit TSynMultiSyn: Fix CaseSensitivity for Sheme marker. Issue [[http://bugs.freepascal.org/view.php?id=0022693 0022693]]<br />
*r37386 Remove writeln() that looks like a residual debug message. Issue [[http://bugs.freepascal.org/view.php?id=0022544 0022544]]<br />
*r38385 Translations: removed unmaintained Portuguese translation, which was outdated copy of Brazilian Portuguese one<br />
<br />
== How to merge ==<br />
The lazarus developers have decided to use the native svn merge for this branch. Other branches used the svnmerge.py script to manage the revisions to be merged.<br />
<br />
* TODO: Maybe this information should be put in a separate page.<br />
<br />
[[SVN_Migration#Merge_with_plain_svn]]<br />
=== Using TortoiseSVN ===<br />
As noted in the link above using TortoiseSVN is more or less self explaining. <br />
<br />
* TODO: add some screen shots.<br />
<br />
When committing, in the recent messages a nice commit message is available.<br />
<br />
Tested with TortoiseSVN 1.7.6, SVN 1.7.4.<br />
<br />
=== Show list of revision that can be merged ===<br />
In the lazarus fixes_1_0 directory do:<br />
svn mergeinfo ^/trunk --show-revs eligible<br />
Or if you don't have a fixes directory checked out, you can pass the URL path of the fixes branch:<br />
svn mergeinfo ^/trunk http://svn.freepascal.org/svn/lazarus/branches/fixes_1_0 --show-revs eligible<br />
<br />
=== Show list of revision that have been merged ===<br />
In the lazarus fixes_1_0 directory do:<br />
svn mergeinfo ^/trunk --show-revs merged<br />
<br />
=== Merging revisions from trunk ===<br />
To merge one or more revisions from trunk, use the svn merge command. For example to merge revision 36506 and 36510 use:<br />
svn merge -c 36506,36510 ^/trunk<br />
<br />
To generate a commit log message, use:<br />
svn log ^/trunk -c 36506,36510 > svnmerge-commit-message.txt<br />
<br />
Edit svnmerge-commit-message.txt with your favorite text editor and add a first line like:<br />
Merged revision 36506,36510 from /trunk.<br />
<br />
Commit this with:<br />
svn commit -F svnmerge-commit-message.txt<br />
<br />
=== Blocking a revision to be merged ===<br />
Sometimes you want to block a revision to be merged, i.e. you want to make sure that this revision is never merged to the fixes branch, for example, because it contains a new feature or it contains a version number change not applicable to the fixes branch, but only to trunk. To block revision 36507, use:<br />
svn merge -c 36507 --record-only ^/trunk<br />
Then you can create a log message with:<br />
svn log ^/trunk -c 36507 > svnmerge-commit-message.txt<br />
Edit svnmerge-commit-message.txt with your favorite text editor and add first line like:<br />
Blocked revision 36507 from /trunk<br />
Then commit this change:<br />
svn commit -F svnmerge-commit-message.txt</div>
Paul Ishenin
https://wiki.freepascal.org/index.php?title=Lazarus_1.0_fixes_branch&diff=62070
Lazarus 1.0 fixes branch
2012-09-26T00:08:03Z
<p>Paul Ishenin: /* Merged revisions for 1.0.2 */</p>
<hr />
<div>This page contains the revisions to be merged from trunk to the [http://svn.freepascal.org/svn/lazarus/branches/fixes_1_0/ Lazarus 1.0 fixes] branch.<br><br />
Release notes can be found here [http://wiki.lazarus.freepascal.org/Lazarus_0.99.0_release_notes Release notes]<br />
<br />
== Fixes for 1.0.2 ==<br />
=== Merge requests ===<br />
==== Submitted by developer / committer ====<br />
<br />
*r38697,38698 Gtk2: set TToggleBox.ParentColor default false so it's color is consistent with TButton when eg.parent color is clRed and TToggleBox.Color=clDefault.<br />
*r38709: Qt: improved triggering of OnClick() in QEventShowToParent. issue [[http://bugs.freepascal.org/view.php?id=22872 22872]]<br />
*r38735: TAChart: Fix memory leak in TDbChartSource.BeforeDraw<br />
*r38737: TAChart: Fix drawing of pie series with data from the db source<br />
*r38754: TAChart: Fix hang when changing TLineSeries.ShowPoints while drawing chart<br />
*r38757: TAChart: Display crosshair tool on mouse down<br />
*r38762: Gtk2: when style is drawing button then use style from button. issue #22901<br />
*r38779: TAChart: Do not notify from TListChartSource.SetXValue and SetYValue if the value did not actually change.<br />
*r38780: TAChart: Add TBasicPointSeries.MovePoint overload for graph coordinates ''not a fix, but required for r38788''<br />
*r38788: TAChart: Support axis transformations in TCustomChartSeries.MovePoint<br />
*r38792: TAChart: Fix crash on deleting subcomponent with active property editor<br />
*r38799: gtk2: implement SPI_GETWHEELSCROLLLINES. Fix a regression in VirtualTreeView wheel scroll<br />
*r38802: lcl:revert 33020, 33082, 33086, part of 33089 and 33389. These changes made the hint behavior Delphi incompatible thus leading to a regression in third party control like VirtualTreeView that handles hints in CMHintShow. Retrieve parent hint recursively if hintcontrol.hint is empty' (delphi compatible)<br />
*r38816 LazUtils: improve unicode path/filename handling by Fileutil.ReadFileToString, patch from Takeda Matsuki, bug 22953<br />
*r38826 Qt: TQtWidgetSet.SetScrollInfo - fixed wrong result, it must return real slider position, not value which might be out of sync with position. This fixes problems with TScrollingWinControl (TControlScrollbar).<br />
<br />
==== Submitted by others ====<br />
<br />
=== Merged revisions for 1.0.2 ===<br />
*r37217,37218,37225,37239,37241,37293,37304,37316 Qt: fixed keys handling (arrow keys & enter).<br />
*r38396 LCL: ColorBox - keep FSelected in sync all the time. fixes issue [[http://bugs.freepascal.org/view.php?id=22729 22729]]<br />
*r38426 CodeBrowser: check for virtual units. Issue [[http://bugs.freepascal.org/view.php?id=0022740 0022740]]<br />
*r38428 SynEdit, MultiHighlighter: fix adding text/sections at EOL. issue [[http://bugs.freepascal.org/view.php?id=0022745 0022745]]<br />
*r38430 TAChart: Fix out-of-bounds access when drawing empty polygons and polylines<br />
*r38437 ide: project target: apply default extension even if the file has already an extension, issue [[http://bugs.freepascal.org/view.php?id=22750 22750]]<br />
*r38444 IDE: fixed crash when releasing non existing component palette select button<br />
*r38473 tests: fixed compilation<br />
*r38464 TAChart: Fix error message in TFPCanvasDrawer.RadialPie<br />
*r38486 avglvltree: setcompare: set when count=0<br />
*r38503 TAChart: Copy BaseLength in TChartArrow.Assign<br />
*r38507 EditorOpts: default for top-info-hint<br />
*r38509 Debugger: Ensure Queue is not blocked by LineInfo Request. (If a LineInfoRequest was queued the DebuggerCurrentLine could not search the stack, as commands were not immediately run)<br />
*r38519 Gtk2: fixed crash with TListView when viewstyle is vsIcon or vsSmallIcon. issue [[http://bugs.freepascal.org/view.php?id=22778 22778]]<br />
*r38520 Qt: do not propagate keyrelease event as action trigger. issue [[http://bugs.freepascal.org/view.php?id=22737 22737]]<br />
*r38531 Debugger: Workaround to fix exe-line-indicators (blue dots) at debug start<br />
*r38533 Qt: fixed header offset and getClientRect for TListView when ViewStyle=vsReport.<br />
*r38547 TAChart: Support Y NaNs in polar series ''(this will cause compilation error -- please remove 'and CloseCircle' part from the last conditional in the TPolarSeries.Draw procedure)''<br />
*r38557 TAChart: Support brush style, pen style and pen width in fpvectorial drawer<br />
*r38571 TAChart: Draw chart correctly after decrease of an axis margin<br />
*r38529,r38530,r38535,r38543,r38548: fix carbon clipping, correctly return region types on HRGN related operations, fix generic IntersectClipRect routine<br />
*r38640,r38641,r38642,r38649: various ExtTextOut fixes for Carbon and Cocoa<br />
*r38551,r38552,r38562,r38563 Carbon: various winapi compatibility functions fixes<br />
*r38518 Qt: TQtWinApi.ExtTextOut() implemented Dx param. issue [[http://bugs.freepascal.org/view.php?id=22795 22795]] (zeljko will merge, need some testing)<br />
*r38572 Qt: propagate QEvent::ShortcutOverride to parent, so stop key event if shortcut is executed. issue [[http://bugs.freepascal.org/view.php?id=22827 22827]]<br />
*r38576,38577: Qt: fixed TQtWidgetSet.FrameRect(), now it uses passed brush to draw frame border.<br />
*r38610 Qt: fixed non ascii utf8 chars in TQtWidgetSet.ExtTextOut() when we use dx param. issue [[http://bugs.freepascal.org/view.php?id=22795 22795]] (depends on merging of r38518).<br />
*r38628,38629,38630,38634: Qt: fixed clipping bugs inside TQtWidgetSet.ExtTextOut()<br />
*38670 SynEdit: Fixed past eol paint error ** Must be ported by hand **<br />
*r38584 TAChart: Copy Attachment and YIndex in TGenericChartMarks.Assign ''(this code is in TATypes unit in v1.0)''<br />
*r38589 TAChart: Do not draw lines which should be invisible in OpenGL drawer<br />
*r38607 TAChart: Workaround for issue [[http://bugs.freepascal.org/view.php?id=22850 22850]] '''see patch in the mailing list'''<br />
*r38617 TAChart: Fix GetNearestPoint returning true with no points found inside radius, issue [[http://bugs.freepascal.org/view.php?id=22854 22854]]<br />
*r38644: Qt: fixed menu flickering. issue [[http://bugs.freepascal.org/view.php?id=22872 22872]]<br />
*r38651: TAChart: Fix zero division when calling ImageToGraph before the chart is drawn<br />
*r38674 Qt: fixed crash when invalid or null handle is passed into SetCapture.<br />
*r38679 Qt: update bitmap if TMenuItem has associated ImageList and ImageIndex. issue [[http://bugs.freepascal.org/view.php?id=22896 22896]]<br />
*r38672 SynEdit: fixed delete-next-word, if caret past eol. Issue [[http://bugs.freepascal.org/view.php?id=0022890 0022890]]<br />
*r38720 LCL, DefaultTranslator: fix handling of non-ASCII path to .po file, bug 22907, patch by Vladimir Zhirov<br />
*r37398 IDE: corrected version info language list, added Ukrainian language, bug 22103<br />
*r38722 IDE: added Lithuanian to version info language list, bug 22898<br />
*r38671: carbon: fix accidental error in index<br />
*r38743: carbon: reimplement linear gradient draw using shading to support OS X < 10.5<br />
*r38636,r38637: Gtk2: fixed text clipping and text background drawing<br />
*r38758: gtk2: allocate GdkColor when we need a BkColor<br />
*r38727,r38728,r38742,r38744,r38745,r38748: gtk2: fix clipping and DC transformations<br />
*r38747: gtk2: fix FrameRect - it must use a passed brush instead of selected one<br />
*r38373 Gtk2,Qt: make ETO_OPAQUE work from TCanvas.TextOut(). issue #22719<br />
*r38769-r38772: lcl, gtk2, carbon: full implementation of GradientFill<br />
*r38673 TAChart: Ignore NaNs while calculating TCustomChartSource.ValuesTotal<br />
*r38675 TAChart: Support Marks.Attachment = maCenter in pie series<br />
*r38694: TAChart: Fix update of TListChartSource.ValuesTotal cache when adding or removing NaNs<br />
*r38710: TAChart: Fix crash when using TChartExtentLink with LinkedChart.Chart = nil<br />
*r38712: TAChart: Fix crash while replacing linked chart in TChartExtentLink<br />
*r38713: TAChart: Use NumberOr function instead of checking for NaN explicitly<br />
*r38719: TAChart: Extract TDrawFuncHelper.ForEachPoint helper procedure ''This also fixes a hang while using data point tool on extremely zoomed-in series''<br />
*r38729: TAChart: Extract TDrawFuncHelper.XRange helper function. + Fix GetNearestPoint for rotated function series.<br />
*r38733: TAChart: Fix TChartSeries.SetColor to notify all listeners and require ListSource. Add TListChartSource.SetColor<br />
*r36674: TAChart: Add AddArray, AddNull, AddX and AddY functions to TChartSeries<br />
*r38697,38698 Gtk2: set TToggleBox.ParentColor default false so it's color is consistent with TButton when eg.parent color is clRed and TToggleBox.Color=clDefault.<br />
*r38709: Qt: improved triggering of OnClick() in QEventShowToParent. issue [[http://bugs.freepascal.org/view.php?id=22872 22872]]<br />
*r38799: gtk2: implement SPI_GETWHEELSCROLLLINES. Fix a regression in VirtualTreeView wheel scroll<br />
<br />
== Fixes for 1.0 ==<br />
=== Merged revisions for 1.0.0 ===<br />
==== Submitted by developer / committer ====<br />
*r36506 LazReport, fix barcode dialog localization (Jesus)<br />
*r36508 Updated Japanese translation<br />
*r36509 Window Column, store pointer to resourcestring<br />
*r36510 LazReport, fix barcode addin when TfrBarCodeObject is not yet instantiated (in this case barcode editor defaults to memo view.<br />
*r36511 DividerBevel: implemented Transparent.<br />
*r36514 IDE: moved macros save/saveall to source editor<br />
*r36515 IDE: update macro descriptions after translating resource strings<br />
*r36516 IDE: trim TLazPackageGraph.GetFallbackOutputDir<br />
*r36517 IDE: check if package needs rebuild: switch to fall back directory: update compiler params<br />
*r36518 IDE: install/uninstall package dialog: fixed icons, added info about current state<br />
*r36523,r36530 IDE: Export as HTML<br />
*r36526 CodeTemplate: Improve final caret pos, if tmpl does not specify<br />
*r36527 CodeTemplate: allow tab to trigger / selection to ignore. issue [[http://bugs.freepascal.org/view.php?id=0017631 0017631]]<br />
*r36528 SynEdit: Template(Syncro) fix invalidation<br />
*r36529 IDE: Printing: break long lines. Issue [[http://bugs.freepascal.org/view.php?id=0013479 0013479]]; <br />
*r36547 IDE: Printing: break long lines. Fix Utf8. Update for rev 36529<br />
*r36531 LazReport: fixed buttonpanel localization in BarCode editor dialog<br />
*r36533 IDE: clean up of unused resourcestrings<br />
*r36534, r36536, r36553, r36583, r36646 regenerated translations; updated Russian translation<br />
*r36535 IDE: more clean up of unused resourcestrings<br />
*r36537 Documents LCLIntf.GetDeviceCaps<br />
*r36538 IDE: always store lazarus directory<br />
*r36539 LazReport: uppercase variable before comparing with hardcoded functions. Properly fix to 21624<br />
*r36543 IDE: setup dialog: using same file resolving as IDE<br />
*r36546 IDE: consider empty lazarusdirectory as pcp, empty fpcsrcdir as lazdir, empty testdir as lazdir<br />
*r36548 IDE: fixed note about wrong laz dir<br />
*r36549 IDE: fixed crash on find identifier references<br />
*r36551 IDE: translate descriptions of all macros<br />
*r36552 IDE: fixed editor tab position combobox items localization on Editor/Misc options page<br />
*r36556,r36557 IDE: warn if upgrading configs<br />
*r36561, 36562, 36563, 36566: Improve Options/Keymap<br />
*r36565 LCL: Prevent TShape.stRectangle disappearing with certain Height/Width and Pen.Width values.<br />
*r36567,r36568,r36569 IDE: show downgrade warning<br />
*r36570 lazbuild: select IDE build mode, fixed compiling with different mode<br />
*r36572 LCL: set csCaptureMouse on TToolButton, but don't send click if mouse is out of ttoolbutton on mouseup.issues [[http://bugs.freepascal.org/view.php?id=19688 19688]],[[http://bugs.freepascal.org/view.php?id=21560 21560]]<br />
*r36574 IDE: fixed saving environment on every change<br />
*r36577 LCL, TreeView: fix GetNextVisible, GetPrevVisible. Issue [[http://bugs.freepascal.org/view.php?id=21264 21264]]<br />
*r36575 IDE/Setup dialog: force taskbar button to be shown<br />
*r36584 IDE: import package list: opendialog<br />
*r36587 IDE: intial setup: fpc src dir: lazdir/fpc/fpcver/source<br />
*r36588 IDE: intial setup: fixed if no candidates found<br />
*r36589,r36590 IDE: compiler file name: search first with macros<br />
*r36591 IDE: verbose search for candidates<br />
*r36592 IDE: search fpc src relative to fpc.exe<br />
*r36594 IDE: check compiler: only run common names<br />
*r36595,r36599 IDE: use under windows as default for make the make.exe in the compiler directory<br />
*r36596 IDE,codetools: fixed ppccross,crossppc to ppcross<br />
*r36601 IDE: unify the 2 filters in KeyMapping window. Prevent a potential crash.<br />
*r36603 debian: updated patches to latest source in lazarus svn<br />
*r36608 Gtk2: do not set widget name, it's completelly unnecessary and produce unexpected behaviour if some keywords are in widget name.issue [[http://bugs.freepascal.org/view.php?id=21661 21661]].<br />
*r36613 SynEdit: Fix an issue with Scrollbars not being updated<br />
*r36617 lazbuild: build ide: replace exe on windows<br />
*r36644 IDE: improved 'Export package list' dialog localization<br />
*r36645 IDE: improved 'Package Graph Explorer' dialog localization<br />
*r36647,r36653,r36654,r36655,r36656,36668,36673 IDE: view / IDE internal / what needs building<br />
*r36648,r36650,r36651 IDE: read state file created by Makefile: fix path delimiters, checking compiled state: ignore -v,-i,-B flags, do not skip all -F<br />
*r36652 IDE: codetools options: shorter caption<br />
*r36658 regenerated translations; updated Russian translation <br />
*r36659 LCL: Refactoring. Make TCalculatorDialog.Execute more understandable by removing a "with" block.<br />
*r36661 LCL: Prevent "Test Dialog" feature of Calculator and Calendar dialogs locking the IDE, issue [[http://bugs.freepascal.org/view.php?id=21644 21644]]<br />
*r36616 SynEdit: do not include IME for WinCe<br />
*r36662 LCL: implementation of TCustomImageList.GetIcon()<br />
*r36663 In GUI strings, unify all 3 dots to have a space before them ( ...)<br />
*r36664 IDE: Use CreateAbsolutePath when switching between relative/absolute paths in AddFile dialogs (CreateAbsoluteSearchPath gives wrong output)<br />
*r36665 LCL: publish TUpDown.OnChangingEx<br />
*r36666 IDE etc.: unify 3 dots in GUI string to have a space ( ...).<br />
*r36667 translation: german: updates from Swen Heinig<br />
*r36669 updatemakefiles: write which lpk have conditionals<br />
*r36670,r36671 IDE,lazbuild: create makefile: use CPPROG instead of COPY to get the current date for Makefile.compiled under Windows<br />
*r36649,r36657,r36602,r36672,r36675,r36677,r36679,r36683,r36701,r36708,r36709 Makefiles: updated, reduced dependencies, fixed double compiles<br />
*r36676 LCL: Implement TListItem.EditCaption, issue [[http://bugs.freepascal.org/view.php?id=20295 20295]].<br />
*r36680,r36699 lazbuild: fixed crash, replaced some MessageDlg with IDEMessageDialog<br />
*r36681 IDE,lazbuild: use parsed compiler filename, make filename<br />
*r36682 IDE: debugfilename, debugsearchpath: use same function as other env vars to resolve macros, trim and find<br />
*r36686,r36688 IDE/lazbuild backup, delete the same lazarus exe on all platforms<br />
*r36694 regenerated translations; updated Russian translation<br />
*r36695 LazDataDesktop: regenerated translations; updated Russian translation<br />
*r36696 IDE: add resource strings for various windows manifest keys<br />
*r36697 fix ImageList.AddMasked() in case of source image has no mask description<br />
*r36702 IDE: TProject.TitleIsDefault: check for project+number, fix for renaming the title of a new project<br />
*r36711 Qt: enable wordwrap on TQtStaticText. issue [[http://bugs.freepascal.org/view.php?id=21697 21697]].<br />
*r36712 LCL: fixed function result<br />
*r36713,r36715 lcl: fixed TToolButton.MouseUp X,Y in boundsrect check<br />
*r36716 LCL, combination of modal form + wsMaximized style produces tiny windows on GTK2, issue [[http://bugs.freepascal.org/view.php?id=21634 21634]]<br />
*r36717 LCL: reverted changes to menus.pp from r36666 (by Paul's request)<br />
*r36718 LCL: regenerated translations<br />
*r36719, *r36826 LCL: fix range check error<br />
*r36720 LazReport: added option to ignore undefined symbols, from Luiz Americo, issue [[http://bugs.freepascal.org/view.php?id=21683 21683]]<br />
*r36723,36724 IDE,lazbuild: fixed repeated build project clean: save project state file before compiling too<br />
*r36727 lazbuild: fixed expanding --lazarusdir<br />
*r36728 make useride: pass --lazarusdir=.<br />
*r36729 Improve TStringHashList, prevents a PO file update crash. Issue [[http://bugs.freepascal.org/view.php?id=21685 21685]]<br />
*r36730 IDE: project wizard: fixed fixed size, bug 21714<br />
*r36731 lazreport: fix possible access violation by checking dataset for nil<br />
*r36732 win32: fix range check error<br />
*r36733 lazbuild: auto create ide/revision.inc if missing<br />
*r36734 Gtk2: fixed mouse capturing on native scrolling win controls (TListBox,TListView etc).issue [[http://bugs.freepascal.org/view.php?id=21713 21713]]<br />
*r36735 LCL: TToolButton: commented debugln().<br />
*r36740 lazbuild: fixed uninitialized function result, fixed checking if init failed, quick check if lazarusdir is valid.<br />
*r36741 lazutils: Patch with font collection support from Circular<br />
*r36744 examples: Adds a OpenURL/OpenDocument test<br />
*r36745 LCL: Adds the sysenvapis include files to the lpk and adds an extra safety in OpenURL for users which forget to encode spaces in filenames<br />
*r36746 IDE: fixed fixed size dialogs<br />
*r36747 IDE: sort selection: layout<br />
*r36748 IDE: added debugging for sort selection<br />
*r36749 gtk2: clean up<br />
*r36750 IDE: less debugging<br />
*r36751 IDE: jump to next/prev error: fixed direction<br />
*r36752 LCL: TTreeView: clean up<br />
*r36753 IDE: next/prev error: clear multi selection<br />
*r36754 lcl: move interface initialization of TCustomEdit from CreateWnd to InitializeWnd. Consistent with other controls and allows interfaces to check is handle is being created<br />
*r36755 IDE: Add acceleration keys and fix tab order in Project Wizard and ImageListEditor, issue [[http://bugs.freepascal.org/view.php?id=21718 21718]]<br />
*r36756 lcl: remove TCustomListBox.Loaded. ItemIndex is initialized in InitializeWnd<br />
*r36757 lcl: call inherited after setting FLines in TCustomMemo.InitializeWnd. Fix potential crash since widgetset code expect FLines be initialized <br />
*r36758 lcl: check for csDestroyingHandle in TControl.HandleObjectShouldBeVisible. Fix issue [[http://bugs.freepascal.org/view.php?id=19882 19882]]<br />
*r36759 lcl: revert 31890 since issue [[http://bugs.freepascal.org/view.php?id=19882 19882]] is properly fixed now<br />
*r36760 gtk2: less hints<br />
*r36761 gtk2: less hints<br />
*r36762 Carbon: fixed result of TWSCarbonCustomListView GetTopItem,GetViewOrigin and GetBoundingRect. issue [[http://bugs.freepascal.org/view.php?id=21733 21733]]<br />
*r36763 Carbon: added themed TComboBox drawing.Patch by David Jenkins. issue [[http://bugs.freepascal.org/view.php?id=21747 21747]]<br />
*r36764 Carbon: added themed TComboBox drawing.Patch by David Jenkins. issue [[http://bugs.freepascal.org/view.php?id=21747 21747]]<br />
*r36765 Docs: added David Jenkins to contributors list<br />
*r36766 Carbon: make carbon widget visibility in sync with lcl. Patch by David Jenkins. issue [[http://bugs.freepascal.org/view.php?id=21731 21731]]<br />
*r36767 lcl: remove Destroying and DestroyWnd calls from TCustomListBox.Destroy<br />
*r36768 lcl: cleanup TCustomListBox.Create<br />
*r36769 codetools: fixed skipping include files in skipped ifdef<br />
*r36770 gtk2: less hints<br />
*r36771 gtk2: less hints<br />
*r36772 ide: fix selection painting of debugger eventlog colors list<br />
*r36773 carbon: improved TCarbonWidgetSet.RawImage_XXXX routines.Patch by David Jenkins. issue [[http://bugs.freepascal.org/view.php?id=21743 21743]].<br />
*r36774 carbon: proper initialization of alpha channel.Patch by David Jenkins. issue [[http://bugs.freepascal.org/view.php?id=21753 21753]]<br />
*r36775 LCL: implement ClientToParent, ParentToClient based on patch of David Jenkins (issue [[http://bugs.freepascal.org/view.php?id=0021763 0021763]])<br />
*r36776 LCL: extend TThemeServices.IsDisabled, IsHot, IsPushed for teCombobox<br />
*r36777 IDE: Fix tab order and set shortcuts in Application Options frame.<br />
*r36778 LazControls: fix potential crash in TListFilterEdit and TTreeFilterEdit<br />
*r36779 GTK2: add TGtk2WidgetSet.SetDesigning to prevent Abstract method call in IDE. Issue [[http://bugs.freepascal.org/view.php?id=21773 21773]]<br />
*r36780 IDE: fix tab order in Project Save Options frame.<br />
*r36781 IDE: fix tab order in frames: Build Modes editor, Miscellaneous Options and Version Info<br />
*r36782 IDE: fix tab order in option frames: Code Generation, Compilation, Linking, Messages, Parsing.<br />
*r36783 GTK2: clean up<br />
*r36784 GTK2: clean up<br />
*r36786 Carbon: removed extra code for teComboBox, since teComboBox is supported by themes as of r36776.<br />
*r36787 gtk2: clean up<br />
*r36788 gtk2: fixed Gtk2WidgetSet.ClipboardGetData mem leak on stream write error<br />
*r36789 gtk2: removed OldCreateStatusBarPanel<br />
*r36790 gtk2: clean up<br />
*r36791 gtk2: clean up<br />
*r36794 IDE: CloseQueryIDEWindows: skip sub forms<br />
*r36795 Fix crash in dbg-console, if dbg not active. issue [[http://bugs.freepascal.org/view.php?id=21712 21712]]<br />
*r36796 SourceEdit: use softcenter for Replace prompt. Issue [[http://bugs.freepascal.org/view.php?id=0021709 0021709]]<br />
*r36797 regenerated translations; updated Russian translation<br />
*r36800 IDE: when checking if a FPC unit has changed: ignore units that have no source in the FPC sources. Needed to ignore user units reachable through fpc.cfg.<br />
*r36801 IDE: fix error message can't find unit if the ppu is in one of the loaded packages<br />
*r36803 DOCS: correct the documentation about CanFocus<br />
*r36806 LCL: clear FActiveDefaultControl on that control destruction<br />
*r36810 LCL: fix copy paste error<br />
*r36811 LCL: don't update Default, Cancel during their applying in UpdateDefaultCancel<br />
*r36812 LCL: add and ability to use own TListItems, TListItem descendants in TListView for delphi compatibility<br />
*r36821 gtk2 intf: fixed compilation FPC_FULLVERSION<20600<br />
*r36822 gtk2 intf: clean up<br />
*r36823 gtk2 intf: clean up<br />
*r36824 gtk2 intf: clean up<br />
*r36825 LCL: initialize font height with the height from DefFontData<br />
*r36852 IDE: when checking if global unit has changed, skip units in packages<br />
*r36857,36859 LCL: TControl.UpdateBaseBounds: set cfBaseBoundsValid<br />
*r36861 LCL: TCustomSplitter.SetAnchors: adapt anchors before applying<br />
*r36870 LCL: SetAlign: restore the basebounds set before changes<br />
*r36877 LCL: clean up<br />
*r36882 LCL: TControl.SetAnchors: during disabled autosize: update basebounds when changing Anchors, bug 21730<br />
*r36884 LCL: fixed sending CM_EXIT,CM_ENTER when flastfocusedcontrol was removed<br />
*r36885 LCL: constraint Width,Height to >=0<br />
*r36888 Converter: fixed 'Missing units' dialog localization, part of bug 21784<br />
*r36889,r36890 codetools: class completion: fixed gathr proc definitions<br />
*r36891 IDE: show compiling resource lines when error on compiling resources<br />
*r36892 IDE: improved message when can not find unit and unit was found in a package<br />
*r36893,r36894 IDE: messages: show debug: lines and calling resource compiler<br />
*r36895,r36896 gtk2 intf: checking for liboverlay, using value-changed instead of change-value<br />
*r36897 LCL: made TImage.DestRect public<br />
*r36899 Fix encoding errors in Japanese translation<br />
*r36900,r36901 startlazarus: fixed asking for custom or default<br />
*r36902 LCL: fixed ShowModal() when Hide() is called on modal form to be Delphi compatibile.issue [[http://bugs.freepascal.org/view.php?id=15390 15390]]<br />
*r36903 IDE: fixed read/write designinfo, bug 21804<br />
*r36904 IDE: do not save a new project where only session was modified, bug 21803<br />
*r36905 gtk2 intf: fixed TGtk2WSCustomTabControl.GetDefaultClientRect to check if gtknotebook has a page<br />
*r36906,36907 codetools: AddLocalVar: do not add hidden used unit<br />
*r36908 Qt: added TQtWidget.testAttribute() function.<br />
*r36910 DBG: Tests for environment<br />
*r36913 TAChart: Set Brush.Color before Brush.Style to work around issue [[http://bugs.freepascal.org/view.php?id=21806 21806]]<br />
*r36914: TAChart: Fix compilation of OpenGL drawer<br />
*r36924 gtk2 intf: TGtk2WSCustomTabControl.GetDefaultClientRect for TTabControl<br />
*r36925 Qt: fixed resize events of TQtTabWidget and accurate information about clientRect changes. issue [[http://bugs.freepascal.org/view.php?id=21805 21805]]<br />
*r36929 Gtk2: fixed text background drawing in TGtk2WidgetSet.ExtTextOut() when BkMode = OPAQUE.issue [[http://bugs.freepascal.org/view.php?id=19384 19384]]<br />
*r36941 Translations: Brazilian Portuguese translation update by Marcelo B Paula, bug 21818<br />
*r36938,36939 LazReport, lift up to preview window improving layout and functionality, from Julio Jimenez B.<br />
*r36942 LazReport, avoid hiding text at some zoom values due small differences in text height calc (DONT MERGE YET, NEEDS MORE TESTING)<br />
*r36943 IDE: msg quickfix for cant find unit: add position<br />
*r36956 carbon: added FHasPaint variable to TCarbonWidget to allow owner draw.issue [[http://bugs.freepascal.org/view.php?id=21744 21744]]<br />
*r36957 carbon: added ScrollRect() routine to TCarbonWidget. issue [[http://bugs.freepascal.org/view.php?id=21741 21741]]<br />
*r36958 carbon: set FTabIndex instead ATabIndex variable in TCarbonTabsControl.SetPageIndex. patch by David Jenkins.issue [[http://bugs.freepascal.org/view.php?id=21728 21728]]<br />
*r36959 carbon: optimized caret drawing to not update whole widget.patch by David Jenkins. issue [[http://bugs.freepascal.org/view.php?id=21768 21768]]<br />
*r36960 carbon: fixed order of check width > height in TCarbonTrackbar.patch by David Jenkins. issue [[http://bugs.freepascal.org/view.php?id=21740 21740]]<br />
*r36961 carbon: implemented autosizing for listview / databrowser columns.patch by David Jenkins. issue [[http://bugs.freepascal.org/view.php?id=21745 21745]]<br />
*r36962 carbon: fixed possible bad loop in TCarbonSpinEdit.CreateWidget.Patch by David Jenkins.issue [[http://bugs.freepascal.org/view.php?id=21732 21732]]<br />
*r36965 IDEIntf: fixed typo<br />
*r36967 Gtk2: fixed retreiving font name from TGtk2WidgetSet.GetObject() when font is default. issue [[http://bugs.freepascal.org/view.php?id=21828 21828]]<br />
*r36968 codetools: JumpToPublishedMethodBody: raise error<br />
*r36969 codetools: fixed FindMethodNodeInImplementation for program<br />
*r36971 tests: codetools: added test for duplicate sections, parsing library<br />
*r36972 codetools: fixed reparsing initialization, finalization, begin<br />
*r36973 codetools: fixed treating initialization, finalization as statement<br />
*r36974,r36975,r36976,36977,36978 codetools: fixed find declaration in library starting in initialization, bug 21832<br />
*r36981,r36982 codetools: identifier completion: fixed continue searching<br />
*r36979 Updated Japanese translation by Haruyuki Fujimaki<br />
*r36980 Fix japanese encoding<br />
*r36983,r36984 codetools: identifier completion: some keywords for library, program<br />
*r36985 codetools: identifier completion: keyword initialization for library, issue [[http://bugs.freepascal.org/view.php?id=21839 21839]]<br />
*r36986 Updated Japanese translation by Haruyuki Fujimaki<br />
*r36990 codetools: identifier list: skip identifier at cursor<br />
*r36991,r36992 IDE: identifier completion: add do after with, issue [[http://bugs.freepascal.org/view.php?id=16850 16850]]<br />
*r36996,r36997,r36999,r37013,r37014,r37015 runtests: fixed compilation, added some tests<br />
*r37012,r37011,r37009,r37008,r37007,r37006,r37005,r37004,r37003,r37002,r37000 carbon interface: clean up<br />
*r37020 IDE: recent/history lists: replaced case sensitive comparison with three types<br />
*r37021 docking: update modified flags<br />
*r37022 codetools: fixed uninitialized result<br />
*r37025 IDE: use unit dialog: check for syntax errors<br />
*r37026,r37027 DBG: Prepare for different line endings. / Accept different line endings (#10, #13, #10#13, #13#10) issue [[http://bugs.freepascal.org/view.php?id=0021834 0021834]].<br />
*r37029 Gtk2: fixed drawing of text with solid brush. issue [[http://bugs.freepascal.org/view.php?id=21863 21863]]<br />
*r37031 Gtk2: do not draw text background if colormap isn't assigned. Second part of issue [[http://bugs.freepascal.org/view.php?id=21863 21863]].<br />
*r37032 gtk2: clean up old mouse capture<br />
*r37033 gtk2: fixed releasecapture<br />
*r37034 gtk2: verbosity for ubuntu liboverlay mouse capture bug<br />
*r37038 sqldb: Enable mssqlconnection for fpc >= 2.6.1 (patch from Reinier Olilagers, bug 21867) - added because creates conflicts with later sqldb merges<br />
*r37040: TAChart: Workaround for TDbChartSource referring to the dataset with Filtered := true<br />
*r37043 LCL, fix TPostScriptPrinterCanvas.ClipRect is empty-rect until explicitly set by user, patch from Joachim Paepke, issue [[http://bugs.freepascal.org/view.php?id=21027 21027]]<br />
*r37051 Translations: Ukrainian translation update by Igor Paliychuk<br />
*r37052 regenerated translations; updated Russian translation<br />
*r37053 LCL: fixed compilation for fpc 2.7.1<br />
*r37054,37055,37057 set TDBLookup.FListLink.DataSource dynamically to FListSource or a local datasource. Issue [[http://bugs.freepascal.org/view.php?id=15410 15410]]<br />
*r37067 LCL: fixed visibility of implemented interfaces<br />
*r37069 simple deb: using make bigide, updated list of tools<br />
*r37070 openglcontrol: fixed mem leak, issue [[http://bugs.freepascal.org/view.php?id=21597 21597]]<br />
*r37071 codetools: identifier completion: unit name of self<br />
*r37076 gtk2: clean up<br />
*r37077 IDE: clean up<br />
*r37092 LCL: fixed compilation for fpc 2.7.1<br />
*r37093 DBG: Testcase: fixed reading env-options<br />
*r37095 SynEdit: fix crash in overview gutter creation. Issue [[http://bugs.freepascal.org/view.php?id=0021887 0021887]]<br />
*r37096 SynEdit: Do not offer OverviewGutter in Gutter-parts designer<br />
*r37101 lazreport: fixed compilation with fpc 2.7.1, new TBookMark<br />
*r37102 lazreport: clean up<br />
*r37112,r37113 SynEdit: highlight class "helper". Fix wrong highlight of "sealed" Issue [[http://bugs.freepascal.org/view.php?id=0021812 0021812]]<br />
*r37115 openglcontrol: fixed mem leak, issue [[http://bugs.freepascal.org/view.php?id=21597 21597]]<br />
*r37126 LCL: Publish some TCheckGroup properties.<br />
*r37129 gtk2: clean up<br />
*r37154,37247,37248 lcl-db: prevent lookup initialization when dataset is destroyed<br />
*r37155 LCL, use rectclip to set clipping rectangle instead of current path because it sometimes get drawn on next stroke (related to r37043)<br />
*r37157 Qt: fixed key events from QCalendar, now tabbing works fine.<br />
*r37160 LCL: published missing properties TCalendar.Hint and TCalendar.TabOrder.<br />
*r37167 LCL: Fix range check error in StringGrid when sorting and RowCount=FixedRows, issue [[http://bugs.freepascal.org/view.php?id=21947 21947]]<br />
*r37073 codetools: resolve expr: thisunitname.implementationenidentifier<br />
*r37078 codetools: find declaration: selfunit.implementationidentifier<br />
*r37079,r37080,r37081,r37082,r37083,r37087,r37089,r37098 codetools: getsmarthint: class variables, enum, array of, inheritance, property params and type, use unit<br />
*r37085 IDE: show compiler options: check compiler<br />
*r37086,37088 IDEIntf: removed TLazCompilerOptions.LCLWidgetType, fixed computing default LCLWidgetType on cross target OS<br />
*r37090 codetools: do not try to search in record ancestors<br />
*r37105 DBG: Watches Copy Name/Value to clipboard. Issue [[http://bugs.freepascal.org/view.php?id=0021860 0021860]]<br />
*r37106 DBG: Register Copy Name/Value to clipboard. Issue [[http://bugs.freepascal.org/view.php?id=0021860 0021860]]<br />
*r37107 DBG: Watches, added inspect/evaluate to popup<br />
*r37116 DBG: Fix a possible crash in debugger (history). Issue [[http://bugs.freepascal.org/view.php?id=0021901 0021901]]<br />
*r37195 SourceEdit: Do not access outdated tab-history entries (dangling pointers). Issue [[http://bugs.freepascal.org/view.php?id=0021939 0021939]]<br />
*r37196 SourceEdit: Only add tabs to tab-history that were accessed<br />
*r37103,r37132 codetools: nested types: Self and inherited<br />
*r37104,r37120 codetools: GetSmartHint: show anonymous arrays<br />
*r37111 IDE: Make Close button work in Components List dialog. Issue [[http://bugs.freepascal.org/view.php?id=21892 21892]],<br />
*r37118 IDE: build ide: if building fails, clear flag clean up once<br />
*r37119 IDE: when building IDE failed: restore backup<br />
*r37121,r37122 IDE: select frame: search in packages<br />
*r37130 IDE: select frame: search in packages<br />
*r37131 LCL, implements textrect clipping in Postscriptprintercanvas<br />
*r37133 SynEdit: Fix WantTabs / Change default to "True" Issue [[http://bugs.freepascal.org/view.php?id=0021904 0021904]]<br />
*r37134 SynEdit: Remove not required invalidation (paint / call to wrong Update() )<br />
*r37135 SynEdit: Remove wrong implementation of Update. Update no longer forwards to Invalidate<br />
*r37136 IpPro: Fix painting for SelectAll<br />
*r37137 IDE, IpPro: Allow copy to clipboard from hint (zeljko added because of conflict in 37345)<br />
*r37140 cody: show code node info: show complete source<br />
*r37141 SynEdit: Fixed Caret paint error (extra caret left on screen) Issue [[http://bugs.freepascal.org/view.php?id=0021924 0021924]]<br />
*r37143 IDEIntf: added TPropertyEditorHook.IsSelected<br />
*r37144 IDEIntf: TDefaultComponentEditor: always select component<br />
*r37146 IDE: if component class is missing: note about RegisterClass<br />
*r37148 Translations: Ukrainian translation cleanup<br />
*r37149 IDE: regenerated translations; updated Russian translation<br />
*r37151 cody: IDE item to create dockable IDE window<br />
*r37152 cody: new IDE window: show dialog to setup form name<br />
*r37162,r37163 IDE: TProjectFileDescriptor.DefaultResourceName: first try without appending a number, check for pascal keywords<br />
*r37164,r37165 IDE: fixed DoGetUnitRegisterInfo for virtual files<br />
*r37166 SynEdit: Fixed Caret when scrolling under older Wine (Win Emulator)[[http://bugs.freepascal.org/view.php?id=21929 21929]]<br />
*r37212 sqldb: added icon for TMySQL55Connection for fpc 2.6.1 '<br />
*r37213,r37214,r37219 codetools: do not save errors outside parser<br />
*r37215 codetools: GetSmartHint: ^, .., file of, class of<br />
*r37220 Translations: Czech IDE translation update by Martin Smat<br />
*r37224 SynEdit: Autocompletion, workaround for click on hint Issue [[http://bugs.freepascal.org/view.php?id=21952 21952]]<br />
*r37231 SynEdit: Prevent some scrolling, while selecting by mouse. Issue [[http://bugs.freepascal.org/view.php?id=0021996 0021996]]<br />
*r37232 DBG: Inspect window, improve scrolling<br />
*r37234 DBG: Improve start-up to work with bug in gdb 7.4<br />
*r37262 searching compiler: search first in dir of fpc.exe, then in PATH<br />
*r37263,r37265 codetools: improved error message on unit not found<br />
*r37264 fix setting radiogroup.itemindex under gtk2. Issue [[http://bugs.freepascal.org/view.php?id=22013 22013]]<br />
*r37267 Docs: improved build_lcl_docs robustness when working with TProcess, patch from Reinier Olislagers, bug 22000<br />
*r37273 SourceEditor: Fix crash when closing several tabs, while debugging (paused / loading line info). Maybe related to issue [[http://bugs.freepascal.org/view.php?id=22015 22015]]<br />
*r37274 Fix Crash in building "Windows" (list of open W.) Menu. Note 0059576 in Issue [[http://bugs.freepascal.org/view.php?id=22015 22015]] (not related to other parts of issue)<br />
*r37280 SQLdb: added missing tmysql55connection.png, bug 22033 '''Related to 37212 and other revisions for TMySQL55Connection'''<br />
*r37281 SynEdit: protect ProcessCommand() against early destruction by ReleaseComponent. Issue [[http://bugs.freepascal.org/view.php?id=0022035 0022035]]<br />
*r37285 IDE: make Close button work in Window Manager<br />
*r37286 Patch from bug 21651, automatically adds quotes to paths with spaces for OpenDocument in Mac OS X<br />
*r37297,r37298 SynEdit, Pas-HL: record helper, deprecated in object<br />
*r37311 Translations: Arabic IDE translation update by Mazen NEIFER<br />
*r37312 IDE: Make Help button work in Editor Window Manager, issue [[http://bugs.freepascal.org/view.php?id=21961 21961]]. (zeljko added to merge list because of conflicts in 37491)<br />
*r37325 regenerated translations; updated Russian translation<br />
*r37326 Translations: Brazilian Portuguese translation update by Marcelo B Paula, bug 22064<br />
*r37327 IDE, Code Generation options: changed wrong -Op386 option to correct -Op80386. Patch by barlone with some consistency changes, bug 22062.<br />
*r37357 Gtk2: fixed mbAll button on dialogs. Added response keys which does not exist in gtk2. issue [[http://bugs.freepascal.org/view.php?id=22083 22083]]<br />
*r37344 gtk2 intf: less hints<br />
*r37345 ipro: less hints <br />
*r37359 lazreport: German translations<br />
*r37360 cody: German translations<br />
*r37039,r37319,r37324,r37361 sqldb: German translations (zeljko added 37039,37319,37324 because of conflicts)<br />
*r37362 educationlaz: German translations<br />
*r37363 ide: German translations<br />
*r37372 lcl: don't access Items of TreeView if DragOver happens during treeview destruction<br />
*r37373 IDE: debugger options: check the resolved file, bug 22086<br />
*r37374 Qt: bypass windowmanager when showing dragimagelist.<br />
*r37375 Gtk2: do not show taskbar entry for dragimagelist.<br />
*r37376 IDE: update TUnitInfo.ResourceBaseClass on loading lfm<br />
*r37378 [Edited, includes selected lines of 37402] SourceEditor: Hide hint, when mouse moves (even if outside IDE, or IDE is not active). Issue [[http://bugs.freepascal.org/view.php?id=0022016 0022016]]<br />
*r37368 DBG: Fixed array len for 64 bit<br />
*r37369 lcl: don't crash when either DragTarget or dragged control is freed (issue [[http://bugs.freepascal.org/view.php?id=22067 22067]])<br />
*r37370 lcl: cleanup debug info<br />
*r37371 lcl: fixed a memory leak when canceling drag of dead control<br />
*r37380 SourceEdit/DBG: Ensure Codebuffer is updated before using it to add watches<br />
*r37383 IDE: TUnitInfo.fModified: do not set on get<br />
*r37384,r37401 IDE: do not set TUnitInfo.Modified when committing source editor to codetools<br />
*r37388,r37389,r37390,r37391,r37392 tests: added tests for cfgscripts, fixed unit output directory, cfgscript: fixed error message if semicolon is missing, IDE: added conditionals functions GetIDEValue, GetEnv, LCL: use IDE widgettype as default<br />
*r37397 TodoList: properly trim comment markers and convert multiline text to single line, fixes bug 22085. Based on patch by Anton.<br />
*r37400 codetools: fixed mem leak<br />
*r37418: TAChart: Fix range check using datapoint tool on a chart without series<br />
*r37440 DBG: do not set temporary stack = -1 in thread changing. This may cause errors<br />
*r37444 DBG: Watches, save "Use instance class" to config<br />
*r37449 LCL: fixed comments<br />
*r37451 Qt: fixed wrong SetCapture() under win32. Problem was passed TQtWidget handle instead of underlaying widget winID() which is native handle.<br />
*r37453 SynEdit: Fix goto bookmark and persistent block. Do not clear persistent block<br />
*r37461 lcl: TCustomForm.UpdateDockCaption: fixed repair garbage<br />
*r37463 IDE: when docked keep IDE caption<br />
*r37464 Help, DBG: New link to wiki for watch properties<br />
*r37475 codetools: TCustomCodeTool.FindLineEndOrCodeAfterPosition: fixed crash when at end of code<br />
*r37476 codetools: clear nodes behind, when linkscanner parsed only parts<br />
*r37481 IDE: fixed storing old LCLWidgeType, bug 22174<br />
*r37482 codetools: save parse error of operator, do not save errors outside parser, fixed parsing method name with generic parameter<br />
*r37483 codetools: allow keywords in program name<br />
*r37534 Qt: do not call setValue() but setPosition() so lcl gets accurate values later. issue [[http://bugs.freepascal.org/view.php?id=22187 22187]]<br />
*r37491 Help, DBG: Link to wiki for breakpoint properties (zeljko - 37312 is merged too, because of conflicts)<br />
*r37470 IDE, DBG: debug-eval hint, do not show, if selection exceeds one statement (e,g whole file selected). Part of issue [[http://bugs.freepascal.org/view.php?id=0022081 0022081]]<br />
*r37471 SourceEditor: Fix an issue with focusing an editor, that is being closed (while debugging) "no parent handle". Issue [[http://bugs.freepascal.org/view.php?id=0022015 0022015]]<br />
*r37517 SynEdit: fixed folding for "case" and "try" in certain code segments (initialization / case...else try)<br />
*r37518 SynEdit: Pas-HL: fix detection of case...else versus if...then...else<br />
*r37522 SynEdit: Pas-HL: better detection of case...else<br />
*r37623 SourceEditor: Fix (Work-around) an issue with focusing an editor, that is being closed (while debugging) "no parent handle". Issue [[http://bugs.freepascal.org/view.php?id=0022015 0022015]] // Required some parts of r37502<br />
*r37609 DBG: Avoid re-queuing of dis-assembler requests, after cancelling it. Part of issue [[http://bugs.freepascal.org/view.php?id=0022230 0022230]]<br />
*r37643 DBG: Disassembler: prevent disassembler from doing large address ranges, if gdb returns data with far away addresses. Issue [[http://bugs.freepascal.org/view.php?id=0022230 0022230]]<br />
*r37657 DBG: fixed a out of index error, in watches history<br />
*r37694 DBG: Fixed possible crash in watch evaluation (WatchValue freed while evaluating / in GetValue)<br />
*r37466 IDE: added menu item to insert MIT license text<br />
*r37407,r37474,r37492 IDE: TMainIDE.DoSourceEditorCommand: improved focus check, requires r37466<br />
*r37564 LCL: TCustomListView: reset FCacheIndex and FCacheItems before sorting list, otherwise we'll have unexpected results. issue [[http://bugs.freepascal.org/view.php?id=22218 22218]]<br />
*r37505, r37509, r37516, r37523 fixed compilation with fpc 2.7.1<br />
*r37592 lcl: fixed compilation fpc 2.7.1<br />
*r37525 TAChart: Display legend symbols even if the text is empty<br />
*r37565 TAChart: Display major axis marks at the edges of the clip range<br />
*r37576 TAChart: Fix infinite recursion when drawing chart listbox from series with Legend.Multiplicity <> lmSingle<br />
*r37588 TAChart: Include Item.Y in reordered list of TCalculatedChartSource. Update test. '''This will break old tests. Please contact me for a fix --- Ask'''<br />
*r37727 TAChart: Update to the recent version of FPVectorial<br />
*r37587 Qt: unset icon when doing internal sync after sorting. part of issue [[http://bugs.freepascal.org/view.php?id=22218 22218]]<br />
*r37620 LCL: invalidate parent preferredsize when borderspacing changed, bug 17947<br />
*r37621 LCL: clean up - invalidate in TControl.DoBorderSpacingChange no longer needed with new autosizing<br />
*r37622 lazutils: added missing file<br />
*r37624 LCL: GetClientRect: if interface has the right width,height trust the clientrect, this avoids some unneeded resizes<br />
*r37573 IDE: project inspector: add files: allow dotted unit names, bug 22209<br />
*r37619 IDE: open package dependency: try provides, issue [[http://bugs.freepascal.org/view.php?id=17960 17960]]<br />
*r37628 IDE: compiler options: disable target platform for packages<br />
*r37594 codetools: fixed Unneeded extra space in event assignment completion<br />
*r37613 codetools: property completion: add class var for class property variables<br />
*r37614 codetools: class completion: search variables in all sections, bug 22246<br />
*r37625,r37626,r37627 codetools: class completion: fixed searching var node when first is class var<br />
*r37629 codetools: fixed adding class keyword for property setter of a class property<br />
*r37630 IDE: codeexplorer: labels<br />
*r37634 IDEIntf: objectinspector: fixed painting outside paint event<br />
*r37631 codetools: no var node for anonymous record case variables<br />
*r37632 codetools: identifier completion: when creating an override hide higher visibility members<br />
*r37633 codetools: class completion: add static method modifier for setter of class property<br />
*r37636 codetools: class completion: add static method specifier for class property setter<br />
*r37635 IDE: paste component: fix renamed references<br />
*r37637,r37638,r37639 IDE: paste multiple components: fix references, lcl: LRSObjectTextToBinary: write convert list of components<br />
*r37640 IDE: paste components: update TControl.Caption<br />
*r37642 lcl: fixed LRSObjectTextToBinary toWString, issue [[http://bugs.freepascal.org/view.php?id=19650 19650]]<br />
*r37644 codetools: fixed inserting proc bodies in implementation in front of methods<br />
*r37652,r37653,r37655 codetools: using TFileStreamUTF8<br />
*r37656 IDE: using TFileStreamUTF8 and TStringListUTF8<br />
*r37663 IDE: fixed show info on --help when no stdout exists<br />
*r37689 LCL: fixing handling of special keys for TCustomEdit and TCustomMemo<br />
*r37690 codetools: forward proc completion: stay in same section<br />
*r37697 DBG: Dialogs, don't give help related commands to IDE. They will be ignored<br />
*r37698 IDE Help: add urls for dbg dialogs<br />
*r37703 lazutils: utf8pos: added optional parameter StartPos<br />
*r37704 IDE: setup dialog: show fpc source directory release version as warning instead of error<br />
*r37707 tools create deb+rpm: use 128x128 icon<br />
*r37705 SynEdit: open and close clipboard explicitly to write multiple formats.<br />
*r37714 lcl: gtk2: warn only once about liboverlay<br />
*r37711 lhelp: cleaned up paths<br />
*r37712 lhelp: clean up<br />
*r37713 lhelp: resolve macros in HelpEXE on the demand<br />
*r37715 chmhelp: using search path to search for chm files<br />
*r37716,r37717 chmhelp: added path $(LazarusDir)/docs/chm<br />
*r37718 'hmhelp: search ref.chm in docs/chm<br />
*r37726 create_lazarus_deb: added option chmhelp<br />
*r37722 DBG: Event-Log: Do not cache Options. Allow user to change options while debugging<br />
*r37596 Patch from {{MantisLink|0022231}} "fix warnings with fpc 2.6.1".--[[User:AlexVinS|AlexVinS]] 21:40, 8 June 2012 (UTC)<br />
*r37745 deb+rpm: default environmentoptions: updated to 107, removed default gdb entry<br />
*r37748,r37755 lhelp: added makefile<br />
*r37749 make bigide: build lhelp<br />
*r37753 IDE: fixed comparing file names case insensitive<br />
*r37754 lazutils: inlined UTF8CompareStr<br />
*r37760 Use Utf8CompareText instead of AnsiCompare<br />
*r37762 linux: added encoding to desktop file<br />
*r37769 Use Utf8CompareText instead of AnsiCompare<br />
*r37770 TAChart: Fix AV when clearing Series.Styles and TColorMapSeries.ColorSource properties<br />
*r37772 Use Utf8CompareText instead of AnsiCompare<br />
*r36804 win32: mark client rect as required update before WM_SIZE passing, remove DoAdjustClientRectChange - they are called inside WM_SIZE handler after the client rect is updated (fixes bug [[http://bugs.freepascal.org/view.php?id=0021724 0021724]])<br />
**Paul remarked about r36804: "Please don't merge it for at least 2 weeks". Also seems to cause problems in grids, see [http://bugs.freepascal.org/view.php?id=21790 issue [[http://bugs.freepascal.org/view.php?id=21790 21790]]].<br />
*r36993: LCL, fixed Problems setting Width, Height for TCustomGrid if ScrollBars is auto, from cobines, issue [[http://bugs.freepascal.org/view.php?id=21790 21790]]. If r36804 is merged, please merge also r36993<br />
*r37783 startlazarus: linux: adding LIBOVERLAY_SCROLLBAR=0 to avoid problems with mouse capturing<br />
*r37785 gtk2 intf: disable liboverlay by default<br />
*r37790 gtk2 intf: use setenv only on Linux<br />
*r37795: export tgz: added option to add chm files<br />
*r37796 IDE: when copying secondary configs create the primary config directory first<br />
*r37797 rpm: added option chmhelp<br />
*r37810 rpm: fixed building without chmhelp<br />
*r37811 lhelp: fixed invalid recent item path in config, added build modes default,debug<br />
*r37814 chmhelp: clean up old ipc files to prevent IDE hang<br />
*r37817-r37821 MAKE DEB<br />
*r37838 DBG: Fix handling console input<br />
*r37824 chmhelp: Fixed lazarus hanging when chmhelp pipe is leftover from an improperly closed lhelp<br />
*r37825 chmhelp; Fixed chmhelp typo (boolean error)<br />
*r37826 chmhelp: fixed bug where a new lhelp process could be started each time F1 was pressed<br />
*r37841 DBG: Pseudo-Terminal, accept tabs<br />
*r37848 lazutils: docs: fixed encoding and package name<br />
*r37849 lcl: docs: fixed encoding<br />
*r37850 ide: docs: fixed encoding<br />
*r37851 updated docs<br />
*r37853 lcl: docs: fixed some links<br />
*r37852 build_lcl_docs: using UTF-8 file functions, added option -h<br />
*r37855 build_lcl_docs: showcmd: show working directory<br />
*r37861 lcl: check if ListDataset is loading to update lookup info. Issue [[http://bugs.freepascal.org/view.php?id=22337 22337]]<br />
*r37846 win32: let TComboBox.CloseUp fire before Change (delphi compatible). Fix 22352<br />
*r37880 IDE+startlazarus: use same working directory, needed for passing relative file names as command line parameters, fixed building lcl+lazutils chm on ubuntu 12<br />
*r37866 lazutils: fixed unit names<br />
*r37868 lazutils: added fpdoc files<br />
*r37869 docs: building lazutils+lcl chm<br />
*r37885 DBG: fixed parsing sets for debug-inspector<br />
*r37906 IDE-Options / SynEdit: Fixed RightEdge visibility (Recression)<br />
*r37919 DBG: Prevent potential crash/memory-corruption in Watches<br />
*r37920 DBG: Prevent potential crash in (dbg-)OnIdle handling<br />
*r37921 DBG: Prevent build up of no longer needed commands in queue<br />
*r37945 DBG: Prevent a crash, when the selected snapshot is deleted. Cas also happen when starting the debugger, while a snapshot from previous run is active<br />
*r37950 DBG: fixed endless loop in watch eval (auto type cast) Issue [[http://bugs.freepascal.org/view.php?id=0022425 0022425]]<br />
*r37961 DBG: Disable rangechecks for certain PtrUInt casts<br />
*r37993 carbon: fixed crash of IDE when compiled with range checks on<br />
*r38006 gtk2: fixed crash on QuestionDlg<br />
*r38003 IDE: fixed showing custom project options, issue [[http://bugs.freepascal.org/view.php?id=22486 22486]]<br />
** merged ONLY main.pp<br />
*r38016 ToDoList: fixed encoding of French translation, it should be UTF-8, not ISO-8859-1. Patch by batyann811, bug 22489.<br />
*r37981,37983-37989,38001,38004-38005,38012,38017 Win Installer<br />
===== Fixed after RC1 =====<br />
*r38127 IDE, EditorOptions: Fixed finding color attribute in localized IDE<br />
*r38132 IDE: setup: after changing lazarusdir: fetch translations and translate<br />
*r38133 chmhelppkg: invoke lazbuild with --pcp parameter<br />
*r38138 examples: testall: fixed start<br />
*r38139 examples: cleandirs: error for fpc version<br />
*r38140 examples: componentstreaming: fixed typo, clean up<br />
*r38141 lazfreetype: fixed range check error, improved error message<br />
*r38142 examples: mssqlconn: requires fpc 2.6.1<br />
*r38144 examples: synguttermarks: win32 gui mode, fixed Left position<br />
*r38146 examples: tv_add_remove: updated<br />
*r38147 examples: xmlreader: added example xml<br />
*r38157 IDE: fixed saving ambiguousfileaction, bug 22573<br />
*r38158 examples: clean up<br />
*r38038 TAChart: Allow spaces in field names inside TDbChartSource.FieldY<br />
*r38168 synuni: clean up fpc options<br />
*r38170 synuni, semaphorgridlpk: clean up fpc options<br />
*r38022 SynEdit: Fixed drawing errors for frames (left frame site drawn at wrong offset)<br />
*r38145 LCL: TListView fixed "List index out of bounds" while deleting items. issue [[http://bugs.freepascal.org/view.php?id=22552 22552]]<br />
*r38150 SynEdit TSynMultiSyn: Fixed crash when deleting lines. Part of issue [[http://bugs.freepascal.org/view.php?id=0022519 0022519]]<br />
*r38151 SynEdit Highlighter: Fixed crash when scanning empty<br />
*r38152 SynEdit TSynMultiSyn: typo<br />
*r38175 SynEdit TSynMultiSyn: Fixed updating, when appending to EOT. Part of issue [[http://bugs.freepascal.org/view.php?id=0022519 0022519]]<br />
*r38205 lazaruside.fi.po: Finnish translations<br />
*r38180 Synedit: fix matching-bracket-highlight in comments (closing bracket at eol) issue [[http://bugs.freepascal.org/view.php?id=22586 22586]]<br />
*r38198 IDE: Export to html, do not enforce check for writeable. Issue [[http://bugs.freepascal.org/view.php?id=22588 22588]]<br />
*r38199 lazutils: do not use winodws W functions under Win98, issue [[http://bugs.freepascal.org/view.php?id=22596 22596]]; '''Breaks compilation on wince, because win32platform is not defined.'''<br />
*r38202 openglcontrol: win32: fixed sharing context<br />
*r38204 Synedit: fixed typo in IFDEF for fpc 2.60 bug<br />
*r38225 TAChart: Fix division by zero in zoom tools with extreme zoom ratios<br />
*r38226 TAChart: Fix hang in functional series with extreme zoom ratios<br />
*r38223 SynEdit TSynMultiSyn: Several fixes issue [[http://bugs.freepascal.org/view.php?id=0022519 0022519]]<br />
*r38232 TAChart: Add InRangeUlps utility function<br />
*r38233 TAChart: Fix disappearance of axis marks located exactly at chart bounds<br />
*r38234 TAChart: Fix crash when setting Marks.LabelFont from the Object Inspector<br />
*r38237 Examples/SynEdit: Readme and typo in comment<br />
*r38266 IDE: Tweak the layout of ManageExamplesForm<br />
*r38260 TAChart: Use correct notification when the series' source changes<br />
*r38261 TAChart: Issue change notifications when modifying TListChartSource.DataPoint property<br />
*r38285 lhelp: replace MessageBox, with Form.Modal. FIx IPC hang. issue [[http://bugs.freepascal.org/view.php?id=0022592 0022592]]<br />
<br />
===== Fixed after RC2 =====<br />
*r38293 windows installers: don't ask to overwrite the environment options in the secundary config directory from Reinier Olislagers<br />
*r38339 SynEdit TSynMultiSyn: Fix CaseSensitivity for Sheme marker. Issue [[http://bugs.freepascal.org/view.php?id=0022693 0022693]]<br />
*r37386 Remove writeln() that looks like a residual debug message. Issue [[http://bugs.freepascal.org/view.php?id=0022544 0022544]]<br />
*r38385 Translations: removed unmaintained Portuguese translation, which was outdated copy of Brazilian Portuguese one<br />
<br />
== How to merge ==<br />
The lazarus developers have decided to use the native svn merge for this branch. Other branches used the svnmerge.py script to manage the revisions to be merged.<br />
<br />
* TODO: Maybe this information should be put in a separate page.<br />
<br />
[[SVN_Migration#Merge_with_plain_svn]]<br />
=== Using TortoiseSVN ===<br />
As noted in the link above using TortoiseSVN is more or less self explaining. <br />
<br />
* TODO: add some screen shots.<br />
<br />
When committing, in the recent messages a nice commit message is available.<br />
<br />
Tested with TortoiseSVN 1.7.6, SVN 1.7.4.<br />
<br />
=== Show list of revision that can be merged ===<br />
In the lazarus fixes_1_0 directory do:<br />
svn mergeinfo ^/trunk --show-revs eligible<br />
Or if you don't have a fixes directory checked out, you can pass the URL path of the fixes branch:<br />
svn mergeinfo ^/trunk http://svn.freepascal.org/svn/lazarus/branches/fixes_1_0 --show-revs eligible<br />
<br />
=== Show list of revision that have been merged ===<br />
In the lazarus fixes_1_0 directory do:<br />
svn mergeinfo ^/trunk --show-revs merged<br />
<br />
=== Merging revisions from trunk ===<br />
To merge one or more revisions from trunk, use the svn merge command. For example to merge revision 36506 and 36510 use:<br />
svn merge -c 36506,36510 ^/trunk<br />
<br />
To generate a commit log message, use:<br />
svn log ^/trunk -c 36506,36510 > svnmerge-commit-message.txt<br />
<br />
Edit svnmerge-commit-message.txt with your favorite text editor and add a first line like:<br />
Merged revision 36506,36510 from /trunk.<br />
<br />
Commit this with:<br />
svn commit -F svnmerge-commit-message.txt<br />
<br />
=== Blocking a revision to be merged ===<br />
Sometimes you want to block a revision to be merged, i.e. you want to make sure that this revision is never merged to the fixes branch, for example, because it contains a new feature or it contains a version number change not applicable to the fixes branch, but only to trunk. To block revision 36507, use:<br />
svn merge -c 36507 --record-only ^/trunk<br />
Then you can create a log message with:<br />
svn log ^/trunk -c 36507 > svnmerge-commit-message.txt<br />
Edit svnmerge-commit-message.txt with your favorite text editor and add first line like:<br />
Blocked revision 36507 from /trunk<br />
Then commit this change:<br />
svn commit -F svnmerge-commit-message.txt</div>
Paul Ishenin
https://wiki.freepascal.org/index.php?title=Lazarus_1.0_fixes_branch&diff=62009
Lazarus 1.0 fixes branch
2012-09-25T04:50:11Z
<p>Paul Ishenin: /* Merged revisions for 1.0.2 */</p>
<hr />
<div>This page contains the revisions to be merged from trunk to the [http://svn.freepascal.org/svn/lazarus/branches/fixes_1_0/ Lazarus 1.0 fixes] branch.<br><br />
Release notes can be found here [http://wiki.lazarus.freepascal.org/Lazarus_0.99.0_release_notes Release notes]<br />
<br />
== Fixes for 1.0.2 ==<br />
=== Merge requests ===<br />
==== Submitted by developer / committer ====<br />
<br />
*r38673 TAChart: Ignore NaNs while calculating TCustomChartSource.ValuesTotal<br />
*r38675 TAChart: Support Marks.Attachment = maCenter in pie series<br />
*r38697,38698 Gtk2: set TToggleBox.ParentColor default false so it's color is consistent with TButton when eg.parent color is clRed and TToggleBox.Color=clDefault.<br />
*r38694: TAChart: Fix update of TListChartSource.ValuesTotal cache when adding or removing NaNs<br />
*r38709: Qt: improved triggering of OnClick() in QEventShowToParent. issue [[http://bugs.freepascal.org/view.php?id=22872 22872]]<br />
*r38710: TAChart: Fix crash when using TChartExtentLink with LinkedChart.Chart = nil<br />
*r38712: TAChart: Fix crash while replacing linked chart in TChartExtentLink<br />
*r38713: TAChart: Use NumberOr function instead of checking for NaN explicitly<br />
*r38719: TAChart: Extract TDrawFuncHelper.ForEachPoint helper procedure ''This also fixes a hang while using data point tool on extremely zoomed-in series''<br />
*r38729: TAChart: Extract TDrawFuncHelper.XRange helper function. + Fix GetNearestPoint for rotated function series.<br />
*r38733: TAChart: Fix TChartSeries.SetColor to notify all listeners and require ListSource. Add TListChartSource.SetColor<br />
*r38735: TAChart: Fix memory leak in TDbChartSource.BeforeDraw<br />
*r38737: TAChart: Fix drawing of pie series with data from the db source<br />
*r38754: TAChart: Fix hang when changing TLineSeries.ShowPoints while drawing chart<br />
*r38757: TAChart: Display crosshair tool on mouse down<br />
*r38762: Gtk2: when style is drawing button then use style from button. issue #22901<br />
*r38779: TAChart: Do not notify from TListChartSource.SetXValue and SetYValue if the value did not actually change.<br />
*r38780: TAChart: Add TBasicPointSeries.MovePoint overload for graph coordinates ''not a fix, but required for r38788''<br />
*r38788: TAChart: Support axis transformations in TCustomChartSeries.MovePoint<br />
*r38792: TAChart: Fix crash on deleting subcomponent with active property editor<br />
*r38799: gtk2: implement SPI_GETWHEELSCROLLLINES. Fix a regression in VirtualTreeView wheel scroll<br />
*r38802: lcl:revert 33020, 33082, 33086, part of 33089 and 33389. These changes made the hint behavior Delphi incompatible thus leading to a regression in third party control like VirtualTreeView that handles hints in CMHintShow. Retrieve parent hint recursively if hintcontrol.hint is empty' (delphi compatible)<br />
*r38816 LazUtils: improve unicode path/filename handling by Fileutil.ReadFileToString, patch from Takeda Matsuki, bug 22953<br />
<br />
==== Submitted by others ====<br />
<br />
=== Merged revisions for 1.0.2 ===<br />
*r37217,37218,37225,37239,37241,37293,37304,37316 Qt: fixed keys handling (arrow keys & enter).<br />
*r38396 LCL: ColorBox - keep FSelected in sync all the time. fixes issue [[http://bugs.freepascal.org/view.php?id=22729 22729]]<br />
*r38426 CodeBrowser: check for virtual units. Issue [[http://bugs.freepascal.org/view.php?id=0022740 0022740]]<br />
*r38428 SynEdit, MultiHighlighter: fix adding text/sections at EOL. issue [[http://bugs.freepascal.org/view.php?id=0022745 0022745]]<br />
*r38430 TAChart: Fix out-of-bounds access when drawing empty polygons and polylines<br />
*r38437 ide: project target: apply default extension even if the file has already an extension, issue [[http://bugs.freepascal.org/view.php?id=22750 22750]]<br />
*r38444 IDE: fixed crash when releasing non existing component palette select button<br />
*r38473 tests: fixed compilation<br />
*r38464 TAChart: Fix error message in TFPCanvasDrawer.RadialPie<br />
*r38486 avglvltree: setcompare: set when count=0<br />
*r38503 TAChart: Copy BaseLength in TChartArrow.Assign<br />
*r38507 EditorOpts: default for top-info-hint<br />
*r38509 Debugger: Ensure Queue is not blocked by LineInfo Request. (If a LineInfoRequest was queued the DebuggerCurrentLine could not search the stack, as commands were not immediately run)<br />
*r38519 Gtk2: fixed crash with TListView when viewstyle is vsIcon or vsSmallIcon. issue [[http://bugs.freepascal.org/view.php?id=22778 22778]]<br />
*r38520 Qt: do not propagate keyrelease event as action trigger. issue [[http://bugs.freepascal.org/view.php?id=22737 22737]]<br />
*r38531 Debugger: Workaround to fix exe-line-indicators (blue dots) at debug start<br />
*r38533 Qt: fixed header offset and getClientRect for TListView when ViewStyle=vsReport.<br />
*r38547 TAChart: Support Y NaNs in polar series ''(this will cause compilation error -- please remove 'and CloseCircle' part from the last conditional in the TPolarSeries.Draw procedure)''<br />
*r38557 TAChart: Support brush style, pen style and pen width in fpvectorial drawer<br />
*r38571 TAChart: Draw chart correctly after decrease of an axis margin<br />
*r38529,r38530,r38535,r38543,r38548: fix carbon clipping, correctly return region types on HRGN related operations, fix generic IntersectClipRect routine<br />
*r38640,r38641,r38642,r38649: various ExtTextOut fixes for Carbon and Cocoa<br />
*r38551,r38552,r38562,r38563 Carbon: various winapi compatibility functions fixes<br />
*r38518 Qt: TQtWinApi.ExtTextOut() implemented Dx param. issue [[http://bugs.freepascal.org/view.php?id=22795 22795]] (zeljko will merge, need some testing)<br />
*r38572 Qt: propagate QEvent::ShortcutOverride to parent, so stop key event if shortcut is executed. issue [[http://bugs.freepascal.org/view.php?id=22827 22827]]<br />
*r38576,38577: Qt: fixed TQtWidgetSet.FrameRect(), now it uses passed brush to draw frame border.<br />
*r38610 Qt: fixed non ascii utf8 chars in TQtWidgetSet.ExtTextOut() when we use dx param. issue [[http://bugs.freepascal.org/view.php?id=22795 22795]] (depends on merging of r38518).<br />
*r38628,38629,38630,38634: Qt: fixed clipping bugs inside TQtWidgetSet.ExtTextOut()<br />
*38670 SynEdit: Fixed past eol paint error ** Must be ported by hand **<br />
*r38584 TAChart: Copy Attachment and YIndex in TGenericChartMarks.Assign ''(this code is in TATypes unit in v1.0)''<br />
*r38589 TAChart: Do not draw lines which should be invisible in OpenGL drawer<br />
*r38607 TAChart: Workaround for issue [[http://bugs.freepascal.org/view.php?id=22850 22850]] '''see patch in the mailing list'''<br />
*r38617 TAChart: Fix GetNearestPoint returning true with no points found inside radius, issue [[http://bugs.freepascal.org/view.php?id=22854 22854]]<br />
*r38644: Qt: fixed menu flickering. issue [[http://bugs.freepascal.org/view.php?id=22872 22872]]<br />
*r38651: TAChart: Fix zero division when calling ImageToGraph before the chart is drawn<br />
*r38674 Qt: fixed crash when invalid or null handle is passed into SetCapture.<br />
*r38679 Qt: update bitmap if TMenuItem has associated ImageList and ImageIndex. issue [[http://bugs.freepascal.org/view.php?id=22896 22896]]<br />
*r38672 SynEdit: fixed delete-next-word, if caret past eol. Issue [[http://bugs.freepascal.org/view.php?id=0022890 0022890]]<br />
*r38720 LCL, DefaultTranslator: fix handling of non-ASCII path to .po file, bug 22907, patch by Vladimir Zhirov<br />
*r37398 IDE: corrected version info language list, added Ukrainian language, bug 22103<br />
*r38722 IDE: added Lithuanian to version info language list, bug 22898<br />
*r38671: carbon: fix accidental error in index<br />
*r38743: carbon: reimplement linear gradient draw using shading to support OS X < 10.5<br />
*r38636,r38637: Gtk2: fixed text clipping and text background drawing<br />
*r38758: gtk2: allocate GdkColor when we need a BkColor<br />
*r38727,r38728,r38742,r38744,r38745,r38748: gtk2: fix clipping and DC transformations<br />
*r38747: gtk2: fix FrameRect - it must use a passed brush instead of selected one<br />
*r38373 Gtk2,Qt: make ETO_OPAQUE work from TCanvas.TextOut(). issue #22719<br />
*r38769-r38772: lcl, gtk2, carbon: full implementation of GradientFill<br />
<br />
== Fixes for 1.0 ==<br />
=== Merged revisions for 1.0.0 ===<br />
==== Submitted by developer / committer ====<br />
*r36506 LazReport, fix barcode dialog localization (Jesus)<br />
*r36508 Updated Japanese translation<br />
*r36509 Window Column, store pointer to resourcestring<br />
*r36510 LazReport, fix barcode addin when TfrBarCodeObject is not yet instantiated (in this case barcode editor defaults to memo view.<br />
*r36511 DividerBevel: implemented Transparent.<br />
*r36514 IDE: moved macros save/saveall to source editor<br />
*r36515 IDE: update macro descriptions after translating resource strings<br />
*r36516 IDE: trim TLazPackageGraph.GetFallbackOutputDir<br />
*r36517 IDE: check if package needs rebuild: switch to fall back directory: update compiler params<br />
*r36518 IDE: install/uninstall package dialog: fixed icons, added info about current state<br />
*r36523,r36530 IDE: Export as HTML<br />
*r36526 CodeTemplate: Improve final caret pos, if tmpl does not specify<br />
*r36527 CodeTemplate: allow tab to trigger / selection to ignore. issue [[http://bugs.freepascal.org/view.php?id=0017631 0017631]]<br />
*r36528 SynEdit: Template(Syncro) fix invalidation<br />
*r36529 IDE: Printing: break long lines. Issue [[http://bugs.freepascal.org/view.php?id=0013479 0013479]]; <br />
*r36547 IDE: Printing: break long lines. Fix Utf8. Update for rev 36529<br />
*r36531 LazReport: fixed buttonpanel localization in BarCode editor dialog<br />
*r36533 IDE: clean up of unused resourcestrings<br />
*r36534, r36536, r36553, r36583, r36646 regenerated translations; updated Russian translation<br />
*r36535 IDE: more clean up of unused resourcestrings<br />
*r36537 Documents LCLIntf.GetDeviceCaps<br />
*r36538 IDE: always store lazarus directory<br />
*r36539 LazReport: uppercase variable before comparing with hardcoded functions. Properly fix to 21624<br />
*r36543 IDE: setup dialog: using same file resolving as IDE<br />
*r36546 IDE: consider empty lazarusdirectory as pcp, empty fpcsrcdir as lazdir, empty testdir as lazdir<br />
*r36548 IDE: fixed note about wrong laz dir<br />
*r36549 IDE: fixed crash on find identifier references<br />
*r36551 IDE: translate descriptions of all macros<br />
*r36552 IDE: fixed editor tab position combobox items localization on Editor/Misc options page<br />
*r36556,r36557 IDE: warn if upgrading configs<br />
*r36561, 36562, 36563, 36566: Improve Options/Keymap<br />
*r36565 LCL: Prevent TShape.stRectangle disappearing with certain Height/Width and Pen.Width values.<br />
*r36567,r36568,r36569 IDE: show downgrade warning<br />
*r36570 lazbuild: select IDE build mode, fixed compiling with different mode<br />
*r36572 LCL: set csCaptureMouse on TToolButton, but don't send click if mouse is out of ttoolbutton on mouseup.issues [[http://bugs.freepascal.org/view.php?id=19688 19688]],[[http://bugs.freepascal.org/view.php?id=21560 21560]]<br />
*r36574 IDE: fixed saving environment on every change<br />
*r36577 LCL, TreeView: fix GetNextVisible, GetPrevVisible. Issue [[http://bugs.freepascal.org/view.php?id=21264 21264]]<br />
*r36575 IDE/Setup dialog: force taskbar button to be shown<br />
*r36584 IDE: import package list: opendialog<br />
*r36587 IDE: intial setup: fpc src dir: lazdir/fpc/fpcver/source<br />
*r36588 IDE: intial setup: fixed if no candidates found<br />
*r36589,r36590 IDE: compiler file name: search first with macros<br />
*r36591 IDE: verbose search for candidates<br />
*r36592 IDE: search fpc src relative to fpc.exe<br />
*r36594 IDE: check compiler: only run common names<br />
*r36595,r36599 IDE: use under windows as default for make the make.exe in the compiler directory<br />
*r36596 IDE,codetools: fixed ppccross,crossppc to ppcross<br />
*r36601 IDE: unify the 2 filters in KeyMapping window. Prevent a potential crash.<br />
*r36603 debian: updated patches to latest source in lazarus svn<br />
*r36608 Gtk2: do not set widget name, it's completelly unnecessary and produce unexpected behaviour if some keywords are in widget name.issue [[http://bugs.freepascal.org/view.php?id=21661 21661]].<br />
*r36613 SynEdit: Fix an issue with Scrollbars not being updated<br />
*r36617 lazbuild: build ide: replace exe on windows<br />
*r36644 IDE: improved 'Export package list' dialog localization<br />
*r36645 IDE: improved 'Package Graph Explorer' dialog localization<br />
*r36647,r36653,r36654,r36655,r36656,36668,36673 IDE: view / IDE internal / what needs building<br />
*r36648,r36650,r36651 IDE: read state file created by Makefile: fix path delimiters, checking compiled state: ignore -v,-i,-B flags, do not skip all -F<br />
*r36652 IDE: codetools options: shorter caption<br />
*r36658 regenerated translations; updated Russian translation <br />
*r36659 LCL: Refactoring. Make TCalculatorDialog.Execute more understandable by removing a "with" block.<br />
*r36661 LCL: Prevent "Test Dialog" feature of Calculator and Calendar dialogs locking the IDE, issue [[http://bugs.freepascal.org/view.php?id=21644 21644]]<br />
*r36616 SynEdit: do not include IME for WinCe<br />
*r36662 LCL: implementation of TCustomImageList.GetIcon()<br />
*r36663 In GUI strings, unify all 3 dots to have a space before them ( ...)<br />
*r36664 IDE: Use CreateAbsolutePath when switching between relative/absolute paths in AddFile dialogs (CreateAbsoluteSearchPath gives wrong output)<br />
*r36665 LCL: publish TUpDown.OnChangingEx<br />
*r36666 IDE etc.: unify 3 dots in GUI string to have a space ( ...).<br />
*r36667 translation: german: updates from Swen Heinig<br />
*r36669 updatemakefiles: write which lpk have conditionals<br />
*r36670,r36671 IDE,lazbuild: create makefile: use CPPROG instead of COPY to get the current date for Makefile.compiled under Windows<br />
*r36649,r36657,r36602,r36672,r36675,r36677,r36679,r36683,r36701,r36708,r36709 Makefiles: updated, reduced dependencies, fixed double compiles<br />
*r36676 LCL: Implement TListItem.EditCaption, issue [[http://bugs.freepascal.org/view.php?id=20295 20295]].<br />
*r36680,r36699 lazbuild: fixed crash, replaced some MessageDlg with IDEMessageDialog<br />
*r36681 IDE,lazbuild: use parsed compiler filename, make filename<br />
*r36682 IDE: debugfilename, debugsearchpath: use same function as other env vars to resolve macros, trim and find<br />
*r36686,r36688 IDE/lazbuild backup, delete the same lazarus exe on all platforms<br />
*r36694 regenerated translations; updated Russian translation<br />
*r36695 LazDataDesktop: regenerated translations; updated Russian translation<br />
*r36696 IDE: add resource strings for various windows manifest keys<br />
*r36697 fix ImageList.AddMasked() in case of source image has no mask description<br />
*r36702 IDE: TProject.TitleIsDefault: check for project+number, fix for renaming the title of a new project<br />
*r36711 Qt: enable wordwrap on TQtStaticText. issue [[http://bugs.freepascal.org/view.php?id=21697 21697]].<br />
*r36712 LCL: fixed function result<br />
*r36713,r36715 lcl: fixed TToolButton.MouseUp X,Y in boundsrect check<br />
*r36716 LCL, combination of modal form + wsMaximized style produces tiny windows on GTK2, issue [[http://bugs.freepascal.org/view.php?id=21634 21634]]<br />
*r36717 LCL: reverted changes to menus.pp from r36666 (by Paul's request)<br />
*r36718 LCL: regenerated translations<br />
*r36719, *r36826 LCL: fix range check error<br />
*r36720 LazReport: added option to ignore undefined symbols, from Luiz Americo, issue [[http://bugs.freepascal.org/view.php?id=21683 21683]]<br />
*r36723,36724 IDE,lazbuild: fixed repeated build project clean: save project state file before compiling too<br />
*r36727 lazbuild: fixed expanding --lazarusdir<br />
*r36728 make useride: pass --lazarusdir=.<br />
*r36729 Improve TStringHashList, prevents a PO file update crash. Issue [[http://bugs.freepascal.org/view.php?id=21685 21685]]<br />
*r36730 IDE: project wizard: fixed fixed size, bug 21714<br />
*r36731 lazreport: fix possible access violation by checking dataset for nil<br />
*r36732 win32: fix range check error<br />
*r36733 lazbuild: auto create ide/revision.inc if missing<br />
*r36734 Gtk2: fixed mouse capturing on native scrolling win controls (TListBox,TListView etc).issue [[http://bugs.freepascal.org/view.php?id=21713 21713]]<br />
*r36735 LCL: TToolButton: commented debugln().<br />
*r36740 lazbuild: fixed uninitialized function result, fixed checking if init failed, quick check if lazarusdir is valid.<br />
*r36741 lazutils: Patch with font collection support from Circular<br />
*r36744 examples: Adds a OpenURL/OpenDocument test<br />
*r36745 LCL: Adds the sysenvapis include files to the lpk and adds an extra safety in OpenURL for users which forget to encode spaces in filenames<br />
*r36746 IDE: fixed fixed size dialogs<br />
*r36747 IDE: sort selection: layout<br />
*r36748 IDE: added debugging for sort selection<br />
*r36749 gtk2: clean up<br />
*r36750 IDE: less debugging<br />
*r36751 IDE: jump to next/prev error: fixed direction<br />
*r36752 LCL: TTreeView: clean up<br />
*r36753 IDE: next/prev error: clear multi selection<br />
*r36754 lcl: move interface initialization of TCustomEdit from CreateWnd to InitializeWnd. Consistent with other controls and allows interfaces to check is handle is being created<br />
*r36755 IDE: Add acceleration keys and fix tab order in Project Wizard and ImageListEditor, issue [[http://bugs.freepascal.org/view.php?id=21718 21718]]<br />
*r36756 lcl: remove TCustomListBox.Loaded. ItemIndex is initialized in InitializeWnd<br />
*r36757 lcl: call inherited after setting FLines in TCustomMemo.InitializeWnd. Fix potential crash since widgetset code expect FLines be initialized <br />
*r36758 lcl: check for csDestroyingHandle in TControl.HandleObjectShouldBeVisible. Fix issue [[http://bugs.freepascal.org/view.php?id=19882 19882]]<br />
*r36759 lcl: revert 31890 since issue [[http://bugs.freepascal.org/view.php?id=19882 19882]] is properly fixed now<br />
*r36760 gtk2: less hints<br />
*r36761 gtk2: less hints<br />
*r36762 Carbon: fixed result of TWSCarbonCustomListView GetTopItem,GetViewOrigin and GetBoundingRect. issue [[http://bugs.freepascal.org/view.php?id=21733 21733]]<br />
*r36763 Carbon: added themed TComboBox drawing.Patch by David Jenkins. issue [[http://bugs.freepascal.org/view.php?id=21747 21747]]<br />
*r36764 Carbon: added themed TComboBox drawing.Patch by David Jenkins. issue [[http://bugs.freepascal.org/view.php?id=21747 21747]]<br />
*r36765 Docs: added David Jenkins to contributors list<br />
*r36766 Carbon: make carbon widget visibility in sync with lcl. Patch by David Jenkins. issue [[http://bugs.freepascal.org/view.php?id=21731 21731]]<br />
*r36767 lcl: remove Destroying and DestroyWnd calls from TCustomListBox.Destroy<br />
*r36768 lcl: cleanup TCustomListBox.Create<br />
*r36769 codetools: fixed skipping include files in skipped ifdef<br />
*r36770 gtk2: less hints<br />
*r36771 gtk2: less hints<br />
*r36772 ide: fix selection painting of debugger eventlog colors list<br />
*r36773 carbon: improved TCarbonWidgetSet.RawImage_XXXX routines.Patch by David Jenkins. issue [[http://bugs.freepascal.org/view.php?id=21743 21743]].<br />
*r36774 carbon: proper initialization of alpha channel.Patch by David Jenkins. issue [[http://bugs.freepascal.org/view.php?id=21753 21753]]<br />
*r36775 LCL: implement ClientToParent, ParentToClient based on patch of David Jenkins (issue [[http://bugs.freepascal.org/view.php?id=0021763 0021763]])<br />
*r36776 LCL: extend TThemeServices.IsDisabled, IsHot, IsPushed for teCombobox<br />
*r36777 IDE: Fix tab order and set shortcuts in Application Options frame.<br />
*r36778 LazControls: fix potential crash in TListFilterEdit and TTreeFilterEdit<br />
*r36779 GTK2: add TGtk2WidgetSet.SetDesigning to prevent Abstract method call in IDE. Issue [[http://bugs.freepascal.org/view.php?id=21773 21773]]<br />
*r36780 IDE: fix tab order in Project Save Options frame.<br />
*r36781 IDE: fix tab order in frames: Build Modes editor, Miscellaneous Options and Version Info<br />
*r36782 IDE: fix tab order in option frames: Code Generation, Compilation, Linking, Messages, Parsing.<br />
*r36783 GTK2: clean up<br />
*r36784 GTK2: clean up<br />
*r36786 Carbon: removed extra code for teComboBox, since teComboBox is supported by themes as of r36776.<br />
*r36787 gtk2: clean up<br />
*r36788 gtk2: fixed Gtk2WidgetSet.ClipboardGetData mem leak on stream write error<br />
*r36789 gtk2: removed OldCreateStatusBarPanel<br />
*r36790 gtk2: clean up<br />
*r36791 gtk2: clean up<br />
*r36794 IDE: CloseQueryIDEWindows: skip sub forms<br />
*r36795 Fix crash in dbg-console, if dbg not active. issue [[http://bugs.freepascal.org/view.php?id=21712 21712]]<br />
*r36796 SourceEdit: use softcenter for Replace prompt. Issue [[http://bugs.freepascal.org/view.php?id=0021709 0021709]]<br />
*r36797 regenerated translations; updated Russian translation<br />
*r36800 IDE: when checking if a FPC unit has changed: ignore units that have no source in the FPC sources. Needed to ignore user units reachable through fpc.cfg.<br />
*r36801 IDE: fix error message can't find unit if the ppu is in one of the loaded packages<br />
*r36803 DOCS: correct the documentation about CanFocus<br />
*r36806 LCL: clear FActiveDefaultControl on that control destruction<br />
*r36810 LCL: fix copy paste error<br />
*r36811 LCL: don't update Default, Cancel during their applying in UpdateDefaultCancel<br />
*r36812 LCL: add and ability to use own TListItems, TListItem descendants in TListView for delphi compatibility<br />
*r36821 gtk2 intf: fixed compilation FPC_FULLVERSION<20600<br />
*r36822 gtk2 intf: clean up<br />
*r36823 gtk2 intf: clean up<br />
*r36824 gtk2 intf: clean up<br />
*r36825 LCL: initialize font height with the height from DefFontData<br />
*r36852 IDE: when checking if global unit has changed, skip units in packages<br />
*r36857,36859 LCL: TControl.UpdateBaseBounds: set cfBaseBoundsValid<br />
*r36861 LCL: TCustomSplitter.SetAnchors: adapt anchors before applying<br />
*r36870 LCL: SetAlign: restore the basebounds set before changes<br />
*r36877 LCL: clean up<br />
*r36882 LCL: TControl.SetAnchors: during disabled autosize: update basebounds when changing Anchors, bug 21730<br />
*r36884 LCL: fixed sending CM_EXIT,CM_ENTER when flastfocusedcontrol was removed<br />
*r36885 LCL: constraint Width,Height to >=0<br />
*r36888 Converter: fixed 'Missing units' dialog localization, part of bug 21784<br />
*r36889,r36890 codetools: class completion: fixed gathr proc definitions<br />
*r36891 IDE: show compiling resource lines when error on compiling resources<br />
*r36892 IDE: improved message when can not find unit and unit was found in a package<br />
*r36893,r36894 IDE: messages: show debug: lines and calling resource compiler<br />
*r36895,r36896 gtk2 intf: checking for liboverlay, using value-changed instead of change-value<br />
*r36897 LCL: made TImage.DestRect public<br />
*r36899 Fix encoding errors in Japanese translation<br />
*r36900,r36901 startlazarus: fixed asking for custom or default<br />
*r36902 LCL: fixed ShowModal() when Hide() is called on modal form to be Delphi compatibile.issue [[http://bugs.freepascal.org/view.php?id=15390 15390]]<br />
*r36903 IDE: fixed read/write designinfo, bug 21804<br />
*r36904 IDE: do not save a new project where only session was modified, bug 21803<br />
*r36905 gtk2 intf: fixed TGtk2WSCustomTabControl.GetDefaultClientRect to check if gtknotebook has a page<br />
*r36906,36907 codetools: AddLocalVar: do not add hidden used unit<br />
*r36908 Qt: added TQtWidget.testAttribute() function.<br />
*r36910 DBG: Tests for environment<br />
*r36913 TAChart: Set Brush.Color before Brush.Style to work around issue [[http://bugs.freepascal.org/view.php?id=21806 21806]]<br />
*r36914: TAChart: Fix compilation of OpenGL drawer<br />
*r36924 gtk2 intf: TGtk2WSCustomTabControl.GetDefaultClientRect for TTabControl<br />
*r36925 Qt: fixed resize events of TQtTabWidget and accurate information about clientRect changes. issue [[http://bugs.freepascal.org/view.php?id=21805 21805]]<br />
*r36929 Gtk2: fixed text background drawing in TGtk2WidgetSet.ExtTextOut() when BkMode = OPAQUE.issue [[http://bugs.freepascal.org/view.php?id=19384 19384]]<br />
*r36941 Translations: Brazilian Portuguese translation update by Marcelo B Paula, bug 21818<br />
*r36938,36939 LazReport, lift up to preview window improving layout and functionality, from Julio Jimenez B.<br />
*r36942 LazReport, avoid hiding text at some zoom values due small differences in text height calc (DONT MERGE YET, NEEDS MORE TESTING)<br />
*r36943 IDE: msg quickfix for cant find unit: add position<br />
*r36956 carbon: added FHasPaint variable to TCarbonWidget to allow owner draw.issue [[http://bugs.freepascal.org/view.php?id=21744 21744]]<br />
*r36957 carbon: added ScrollRect() routine to TCarbonWidget. issue [[http://bugs.freepascal.org/view.php?id=21741 21741]]<br />
*r36958 carbon: set FTabIndex instead ATabIndex variable in TCarbonTabsControl.SetPageIndex. patch by David Jenkins.issue [[http://bugs.freepascal.org/view.php?id=21728 21728]]<br />
*r36959 carbon: optimized caret drawing to not update whole widget.patch by David Jenkins. issue [[http://bugs.freepascal.org/view.php?id=21768 21768]]<br />
*r36960 carbon: fixed order of check width > height in TCarbonTrackbar.patch by David Jenkins. issue [[http://bugs.freepascal.org/view.php?id=21740 21740]]<br />
*r36961 carbon: implemented autosizing for listview / databrowser columns.patch by David Jenkins. issue [[http://bugs.freepascal.org/view.php?id=21745 21745]]<br />
*r36962 carbon: fixed possible bad loop in TCarbonSpinEdit.CreateWidget.Patch by David Jenkins.issue [[http://bugs.freepascal.org/view.php?id=21732 21732]]<br />
*r36965 IDEIntf: fixed typo<br />
*r36967 Gtk2: fixed retreiving font name from TGtk2WidgetSet.GetObject() when font is default. issue [[http://bugs.freepascal.org/view.php?id=21828 21828]]<br />
*r36968 codetools: JumpToPublishedMethodBody: raise error<br />
*r36969 codetools: fixed FindMethodNodeInImplementation for program<br />
*r36971 tests: codetools: added test for duplicate sections, parsing library<br />
*r36972 codetools: fixed reparsing initialization, finalization, begin<br />
*r36973 codetools: fixed treating initialization, finalization as statement<br />
*r36974,r36975,r36976,36977,36978 codetools: fixed find declaration in library starting in initialization, bug 21832<br />
*r36981,r36982 codetools: identifier completion: fixed continue searching<br />
*r36979 Updated Japanese translation by Haruyuki Fujimaki<br />
*r36980 Fix japanese encoding<br />
*r36983,r36984 codetools: identifier completion: some keywords for library, program<br />
*r36985 codetools: identifier completion: keyword initialization for library, issue [[http://bugs.freepascal.org/view.php?id=21839 21839]]<br />
*r36986 Updated Japanese translation by Haruyuki Fujimaki<br />
*r36990 codetools: identifier list: skip identifier at cursor<br />
*r36991,r36992 IDE: identifier completion: add do after with, issue [[http://bugs.freepascal.org/view.php?id=16850 16850]]<br />
*r36996,r36997,r36999,r37013,r37014,r37015 runtests: fixed compilation, added some tests<br />
*r37012,r37011,r37009,r37008,r37007,r37006,r37005,r37004,r37003,r37002,r37000 carbon interface: clean up<br />
*r37020 IDE: recent/history lists: replaced case sensitive comparison with three types<br />
*r37021 docking: update modified flags<br />
*r37022 codetools: fixed uninitialized result<br />
*r37025 IDE: use unit dialog: check for syntax errors<br />
*r37026,r37027 DBG: Prepare for different line endings. / Accept different line endings (#10, #13, #10#13, #13#10) issue [[http://bugs.freepascal.org/view.php?id=0021834 0021834]].<br />
*r37029 Gtk2: fixed drawing of text with solid brush. issue [[http://bugs.freepascal.org/view.php?id=21863 21863]]<br />
*r37031 Gtk2: do not draw text background if colormap isn't assigned. Second part of issue [[http://bugs.freepascal.org/view.php?id=21863 21863]].<br />
*r37032 gtk2: clean up old mouse capture<br />
*r37033 gtk2: fixed releasecapture<br />
*r37034 gtk2: verbosity for ubuntu liboverlay mouse capture bug<br />
*r37038 sqldb: Enable mssqlconnection for fpc >= 2.6.1 (patch from Reinier Olilagers, bug 21867) - added because creates conflicts with later sqldb merges<br />
*r37040: TAChart: Workaround for TDbChartSource referring to the dataset with Filtered := true<br />
*r37043 LCL, fix TPostScriptPrinterCanvas.ClipRect is empty-rect until explicitly set by user, patch from Joachim Paepke, issue [[http://bugs.freepascal.org/view.php?id=21027 21027]]<br />
*r37051 Translations: Ukrainian translation update by Igor Paliychuk<br />
*r37052 regenerated translations; updated Russian translation<br />
*r37053 LCL: fixed compilation for fpc 2.7.1<br />
*r37054,37055,37057 set TDBLookup.FListLink.DataSource dynamically to FListSource or a local datasource. Issue [[http://bugs.freepascal.org/view.php?id=15410 15410]]<br />
*r37067 LCL: fixed visibility of implemented interfaces<br />
*r37069 simple deb: using make bigide, updated list of tools<br />
*r37070 openglcontrol: fixed mem leak, issue [[http://bugs.freepascal.org/view.php?id=21597 21597]]<br />
*r37071 codetools: identifier completion: unit name of self<br />
*r37076 gtk2: clean up<br />
*r37077 IDE: clean up<br />
*r37092 LCL: fixed compilation for fpc 2.7.1<br />
*r37093 DBG: Testcase: fixed reading env-options<br />
*r37095 SynEdit: fix crash in overview gutter creation. Issue [[http://bugs.freepascal.org/view.php?id=0021887 0021887]]<br />
*r37096 SynEdit: Do not offer OverviewGutter in Gutter-parts designer<br />
*r37101 lazreport: fixed compilation with fpc 2.7.1, new TBookMark<br />
*r37102 lazreport: clean up<br />
*r37112,r37113 SynEdit: highlight class "helper". Fix wrong highlight of "sealed" Issue [[http://bugs.freepascal.org/view.php?id=0021812 0021812]]<br />
*r37115 openglcontrol: fixed mem leak, issue [[http://bugs.freepascal.org/view.php?id=21597 21597]]<br />
*r37126 LCL: Publish some TCheckGroup properties.<br />
*r37129 gtk2: clean up<br />
*r37154,37247,37248 lcl-db: prevent lookup initialization when dataset is destroyed<br />
*r37155 LCL, use rectclip to set clipping rectangle instead of current path because it sometimes get drawn on next stroke (related to r37043)<br />
*r37157 Qt: fixed key events from QCalendar, now tabbing works fine.<br />
*r37160 LCL: published missing properties TCalendar.Hint and TCalendar.TabOrder.<br />
*r37167 LCL: Fix range check error in StringGrid when sorting and RowCount=FixedRows, issue [[http://bugs.freepascal.org/view.php?id=21947 21947]]<br />
*r37073 codetools: resolve expr: thisunitname.implementationenidentifier<br />
*r37078 codetools: find declaration: selfunit.implementationidentifier<br />
*r37079,r37080,r37081,r37082,r37083,r37087,r37089,r37098 codetools: getsmarthint: class variables, enum, array of, inheritance, property params and type, use unit<br />
*r37085 IDE: show compiler options: check compiler<br />
*r37086,37088 IDEIntf: removed TLazCompilerOptions.LCLWidgetType, fixed computing default LCLWidgetType on cross target OS<br />
*r37090 codetools: do not try to search in record ancestors<br />
*r37105 DBG: Watches Copy Name/Value to clipboard. Issue [[http://bugs.freepascal.org/view.php?id=0021860 0021860]]<br />
*r37106 DBG: Register Copy Name/Value to clipboard. Issue [[http://bugs.freepascal.org/view.php?id=0021860 0021860]]<br />
*r37107 DBG: Watches, added inspect/evaluate to popup<br />
*r37116 DBG: Fix a possible crash in debugger (history). Issue [[http://bugs.freepascal.org/view.php?id=0021901 0021901]]<br />
*r37195 SourceEdit: Do not access outdated tab-history entries (dangling pointers). Issue [[http://bugs.freepascal.org/view.php?id=0021939 0021939]]<br />
*r37196 SourceEdit: Only add tabs to tab-history that were accessed<br />
*r37103,r37132 codetools: nested types: Self and inherited<br />
*r37104,r37120 codetools: GetSmartHint: show anonymous arrays<br />
*r37111 IDE: Make Close button work in Components List dialog. Issue [[http://bugs.freepascal.org/view.php?id=21892 21892]],<br />
*r37118 IDE: build ide: if building fails, clear flag clean up once<br />
*r37119 IDE: when building IDE failed: restore backup<br />
*r37121,r37122 IDE: select frame: search in packages<br />
*r37130 IDE: select frame: search in packages<br />
*r37131 LCL, implements textrect clipping in Postscriptprintercanvas<br />
*r37133 SynEdit: Fix WantTabs / Change default to "True" Issue [[http://bugs.freepascal.org/view.php?id=0021904 0021904]]<br />
*r37134 SynEdit: Remove not required invalidation (paint / call to wrong Update() )<br />
*r37135 SynEdit: Remove wrong implementation of Update. Update no longer forwards to Invalidate<br />
*r37136 IpPro: Fix painting for SelectAll<br />
*r37137 IDE, IpPro: Allow copy to clipboard from hint (zeljko added because of conflict in 37345)<br />
*r37140 cody: show code node info: show complete source<br />
*r37141 SynEdit: Fixed Caret paint error (extra caret left on screen) Issue [[http://bugs.freepascal.org/view.php?id=0021924 0021924]]<br />
*r37143 IDEIntf: added TPropertyEditorHook.IsSelected<br />
*r37144 IDEIntf: TDefaultComponentEditor: always select component<br />
*r37146 IDE: if component class is missing: note about RegisterClass<br />
*r37148 Translations: Ukrainian translation cleanup<br />
*r37149 IDE: regenerated translations; updated Russian translation<br />
*r37151 cody: IDE item to create dockable IDE window<br />
*r37152 cody: new IDE window: show dialog to setup form name<br />
*r37162,r37163 IDE: TProjectFileDescriptor.DefaultResourceName: first try without appending a number, check for pascal keywords<br />
*r37164,r37165 IDE: fixed DoGetUnitRegisterInfo for virtual files<br />
*r37166 SynEdit: Fixed Caret when scrolling under older Wine (Win Emulator)[[http://bugs.freepascal.org/view.php?id=21929 21929]]<br />
*r37212 sqldb: added icon for TMySQL55Connection for fpc 2.6.1 '<br />
*r37213,r37214,r37219 codetools: do not save errors outside parser<br />
*r37215 codetools: GetSmartHint: ^, .., file of, class of<br />
*r37220 Translations: Czech IDE translation update by Martin Smat<br />
*r37224 SynEdit: Autocompletion, workaround for click on hint Issue [[http://bugs.freepascal.org/view.php?id=21952 21952]]<br />
*r37231 SynEdit: Prevent some scrolling, while selecting by mouse. Issue [[http://bugs.freepascal.org/view.php?id=0021996 0021996]]<br />
*r37232 DBG: Inspect window, improve scrolling<br />
*r37234 DBG: Improve start-up to work with bug in gdb 7.4<br />
*r37262 searching compiler: search first in dir of fpc.exe, then in PATH<br />
*r37263,r37265 codetools: improved error message on unit not found<br />
*r37264 fix setting radiogroup.itemindex under gtk2. Issue [[http://bugs.freepascal.org/view.php?id=22013 22013]]<br />
*r37267 Docs: improved build_lcl_docs robustness when working with TProcess, patch from Reinier Olislagers, bug 22000<br />
*r37273 SourceEditor: Fix crash when closing several tabs, while debugging (paused / loading line info). Maybe related to issue [[http://bugs.freepascal.org/view.php?id=22015 22015]]<br />
*r37274 Fix Crash in building "Windows" (list of open W.) Menu. Note 0059576 in Issue [[http://bugs.freepascal.org/view.php?id=22015 22015]] (not related to other parts of issue)<br />
*r37280 SQLdb: added missing tmysql55connection.png, bug 22033 '''Related to 37212 and other revisions for TMySQL55Connection'''<br />
*r37281 SynEdit: protect ProcessCommand() against early destruction by ReleaseComponent. Issue [[http://bugs.freepascal.org/view.php?id=0022035 0022035]]<br />
*r37285 IDE: make Close button work in Window Manager<br />
*r37286 Patch from bug 21651, automatically adds quotes to paths with spaces for OpenDocument in Mac OS X<br />
*r37297,r37298 SynEdit, Pas-HL: record helper, deprecated in object<br />
*r37311 Translations: Arabic IDE translation update by Mazen NEIFER<br />
*r37312 IDE: Make Help button work in Editor Window Manager, issue [[http://bugs.freepascal.org/view.php?id=21961 21961]]. (zeljko added to merge list because of conflicts in 37491)<br />
*r37325 regenerated translations; updated Russian translation<br />
*r37326 Translations: Brazilian Portuguese translation update by Marcelo B Paula, bug 22064<br />
*r37327 IDE, Code Generation options: changed wrong -Op386 option to correct -Op80386. Patch by barlone with some consistency changes, bug 22062.<br />
*r37357 Gtk2: fixed mbAll button on dialogs. Added response keys which does not exist in gtk2. issue [[http://bugs.freepascal.org/view.php?id=22083 22083]]<br />
*r37344 gtk2 intf: less hints<br />
*r37345 ipro: less hints <br />
*r37359 lazreport: German translations<br />
*r37360 cody: German translations<br />
*r37039,r37319,r37324,r37361 sqldb: German translations (zeljko added 37039,37319,37324 because of conflicts)<br />
*r37362 educationlaz: German translations<br />
*r37363 ide: German translations<br />
*r37372 lcl: don't access Items of TreeView if DragOver happens during treeview destruction<br />
*r37373 IDE: debugger options: check the resolved file, bug 22086<br />
*r37374 Qt: bypass windowmanager when showing dragimagelist.<br />
*r37375 Gtk2: do not show taskbar entry for dragimagelist.<br />
*r37376 IDE: update TUnitInfo.ResourceBaseClass on loading lfm<br />
*r37378 [Edited, includes selected lines of 37402] SourceEditor: Hide hint, when mouse moves (even if outside IDE, or IDE is not active). Issue [[http://bugs.freepascal.org/view.php?id=0022016 0022016]]<br />
*r37368 DBG: Fixed array len for 64 bit<br />
*r37369 lcl: don't crash when either DragTarget or dragged control is freed (issue [[http://bugs.freepascal.org/view.php?id=22067 22067]])<br />
*r37370 lcl: cleanup debug info<br />
*r37371 lcl: fixed a memory leak when canceling drag of dead control<br />
*r37380 SourceEdit/DBG: Ensure Codebuffer is updated before using it to add watches<br />
*r37383 IDE: TUnitInfo.fModified: do not set on get<br />
*r37384,r37401 IDE: do not set TUnitInfo.Modified when committing source editor to codetools<br />
*r37388,r37389,r37390,r37391,r37392 tests: added tests for cfgscripts, fixed unit output directory, cfgscript: fixed error message if semicolon is missing, IDE: added conditionals functions GetIDEValue, GetEnv, LCL: use IDE widgettype as default<br />
*r37397 TodoList: properly trim comment markers and convert multiline text to single line, fixes bug 22085. Based on patch by Anton.<br />
*r37400 codetools: fixed mem leak<br />
*r37418: TAChart: Fix range check using datapoint tool on a chart without series<br />
*r37440 DBG: do not set temporary stack = -1 in thread changing. This may cause errors<br />
*r37444 DBG: Watches, save "Use instance class" to config<br />
*r37449 LCL: fixed comments<br />
*r37451 Qt: fixed wrong SetCapture() under win32. Problem was passed TQtWidget handle instead of underlaying widget winID() which is native handle.<br />
*r37453 SynEdit: Fix goto bookmark and persistent block. Do not clear persistent block<br />
*r37461 lcl: TCustomForm.UpdateDockCaption: fixed repair garbage<br />
*r37463 IDE: when docked keep IDE caption<br />
*r37464 Help, DBG: New link to wiki for watch properties<br />
*r37475 codetools: TCustomCodeTool.FindLineEndOrCodeAfterPosition: fixed crash when at end of code<br />
*r37476 codetools: clear nodes behind, when linkscanner parsed only parts<br />
*r37481 IDE: fixed storing old LCLWidgeType, bug 22174<br />
*r37482 codetools: save parse error of operator, do not save errors outside parser, fixed parsing method name with generic parameter<br />
*r37483 codetools: allow keywords in program name<br />
*r37534 Qt: do not call setValue() but setPosition() so lcl gets accurate values later. issue [[http://bugs.freepascal.org/view.php?id=22187 22187]]<br />
*r37491 Help, DBG: Link to wiki for breakpoint properties (zeljko - 37312 is merged too, because of conflicts)<br />
*r37470 IDE, DBG: debug-eval hint, do not show, if selection exceeds one statement (e,g whole file selected). Part of issue [[http://bugs.freepascal.org/view.php?id=0022081 0022081]]<br />
*r37471 SourceEditor: Fix an issue with focusing an editor, that is being closed (while debugging) "no parent handle". Issue [[http://bugs.freepascal.org/view.php?id=0022015 0022015]]<br />
*r37517 SynEdit: fixed folding for "case" and "try" in certain code segments (initialization / case...else try)<br />
*r37518 SynEdit: Pas-HL: fix detection of case...else versus if...then...else<br />
*r37522 SynEdit: Pas-HL: better detection of case...else<br />
*r37623 SourceEditor: Fix (Work-around) an issue with focusing an editor, that is being closed (while debugging) "no parent handle". Issue [[http://bugs.freepascal.org/view.php?id=0022015 0022015]] // Required some parts of r37502<br />
*r37609 DBG: Avoid re-queuing of dis-assembler requests, after cancelling it. Part of issue [[http://bugs.freepascal.org/view.php?id=0022230 0022230]]<br />
*r37643 DBG: Disassembler: prevent disassembler from doing large address ranges, if gdb returns data with far away addresses. Issue [[http://bugs.freepascal.org/view.php?id=0022230 0022230]]<br />
*r37657 DBG: fixed a out of index error, in watches history<br />
*r37694 DBG: Fixed possible crash in watch evaluation (WatchValue freed while evaluating / in GetValue)<br />
*r37466 IDE: added menu item to insert MIT license text<br />
*r37407,r37474,r37492 IDE: TMainIDE.DoSourceEditorCommand: improved focus check, requires r37466<br />
*r37564 LCL: TCustomListView: reset FCacheIndex and FCacheItems before sorting list, otherwise we'll have unexpected results. issue [[http://bugs.freepascal.org/view.php?id=22218 22218]]<br />
*r37505, r37509, r37516, r37523 fixed compilation with fpc 2.7.1<br />
*r37592 lcl: fixed compilation fpc 2.7.1<br />
*r37525 TAChart: Display legend symbols even if the text is empty<br />
*r37565 TAChart: Display major axis marks at the edges of the clip range<br />
*r37576 TAChart: Fix infinite recursion when drawing chart listbox from series with Legend.Multiplicity <> lmSingle<br />
*r37588 TAChart: Include Item.Y in reordered list of TCalculatedChartSource. Update test. '''This will break old tests. Please contact me for a fix --- Ask'''<br />
*r37727 TAChart: Update to the recent version of FPVectorial<br />
*r37587 Qt: unset icon when doing internal sync after sorting. part of issue [[http://bugs.freepascal.org/view.php?id=22218 22218]]<br />
*r37620 LCL: invalidate parent preferredsize when borderspacing changed, bug 17947<br />
*r37621 LCL: clean up - invalidate in TControl.DoBorderSpacingChange no longer needed with new autosizing<br />
*r37622 lazutils: added missing file<br />
*r37624 LCL: GetClientRect: if interface has the right width,height trust the clientrect, this avoids some unneeded resizes<br />
*r37573 IDE: project inspector: add files: allow dotted unit names, bug 22209<br />
*r37619 IDE: open package dependency: try provides, issue [[http://bugs.freepascal.org/view.php?id=17960 17960]]<br />
*r37628 IDE: compiler options: disable target platform for packages<br />
*r37594 codetools: fixed Unneeded extra space in event assignment completion<br />
*r37613 codetools: property completion: add class var for class property variables<br />
*r37614 codetools: class completion: search variables in all sections, bug 22246<br />
*r37625,r37626,r37627 codetools: class completion: fixed searching var node when first is class var<br />
*r37629 codetools: fixed adding class keyword for property setter of a class property<br />
*r37630 IDE: codeexplorer: labels<br />
*r37634 IDEIntf: objectinspector: fixed painting outside paint event<br />
*r37631 codetools: no var node for anonymous record case variables<br />
*r37632 codetools: identifier completion: when creating an override hide higher visibility members<br />
*r37633 codetools: class completion: add static method modifier for setter of class property<br />
*r37636 codetools: class completion: add static method specifier for class property setter<br />
*r37635 IDE: paste component: fix renamed references<br />
*r37637,r37638,r37639 IDE: paste multiple components: fix references, lcl: LRSObjectTextToBinary: write convert list of components<br />
*r37640 IDE: paste components: update TControl.Caption<br />
*r37642 lcl: fixed LRSObjectTextToBinary toWString, issue [[http://bugs.freepascal.org/view.php?id=19650 19650]]<br />
*r37644 codetools: fixed inserting proc bodies in implementation in front of methods<br />
*r37652,r37653,r37655 codetools: using TFileStreamUTF8<br />
*r37656 IDE: using TFileStreamUTF8 and TStringListUTF8<br />
*r37663 IDE: fixed show info on --help when no stdout exists<br />
*r37689 LCL: fixing handling of special keys for TCustomEdit and TCustomMemo<br />
*r37690 codetools: forward proc completion: stay in same section<br />
*r37697 DBG: Dialogs, don't give help related commands to IDE. They will be ignored<br />
*r37698 IDE Help: add urls for dbg dialogs<br />
*r37703 lazutils: utf8pos: added optional parameter StartPos<br />
*r37704 IDE: setup dialog: show fpc source directory release version as warning instead of error<br />
*r37707 tools create deb+rpm: use 128x128 icon<br />
*r37705 SynEdit: open and close clipboard explicitly to write multiple formats.<br />
*r37714 lcl: gtk2: warn only once about liboverlay<br />
*r37711 lhelp: cleaned up paths<br />
*r37712 lhelp: clean up<br />
*r37713 lhelp: resolve macros in HelpEXE on the demand<br />
*r37715 chmhelp: using search path to search for chm files<br />
*r37716,r37717 chmhelp: added path $(LazarusDir)/docs/chm<br />
*r37718 'hmhelp: search ref.chm in docs/chm<br />
*r37726 create_lazarus_deb: added option chmhelp<br />
*r37722 DBG: Event-Log: Do not cache Options. Allow user to change options while debugging<br />
*r37596 Patch from {{MantisLink|0022231}} "fix warnings with fpc 2.6.1".--[[User:AlexVinS|AlexVinS]] 21:40, 8 June 2012 (UTC)<br />
*r37745 deb+rpm: default environmentoptions: updated to 107, removed default gdb entry<br />
*r37748,r37755 lhelp: added makefile<br />
*r37749 make bigide: build lhelp<br />
*r37753 IDE: fixed comparing file names case insensitive<br />
*r37754 lazutils: inlined UTF8CompareStr<br />
*r37760 Use Utf8CompareText instead of AnsiCompare<br />
*r37762 linux: added encoding to desktop file<br />
*r37769 Use Utf8CompareText instead of AnsiCompare<br />
*r37770 TAChart: Fix AV when clearing Series.Styles and TColorMapSeries.ColorSource properties<br />
*r37772 Use Utf8CompareText instead of AnsiCompare<br />
*r36804 win32: mark client rect as required update before WM_SIZE passing, remove DoAdjustClientRectChange - they are called inside WM_SIZE handler after the client rect is updated (fixes bug [[http://bugs.freepascal.org/view.php?id=0021724 0021724]])<br />
**Paul remarked about r36804: "Please don't merge it for at least 2 weeks". Also seems to cause problems in grids, see [http://bugs.freepascal.org/view.php?id=21790 issue [[http://bugs.freepascal.org/view.php?id=21790 21790]]].<br />
*r36993: LCL, fixed Problems setting Width, Height for TCustomGrid if ScrollBars is auto, from cobines, issue [[http://bugs.freepascal.org/view.php?id=21790 21790]]. If r36804 is merged, please merge also r36993<br />
*r37783 startlazarus: linux: adding LIBOVERLAY_SCROLLBAR=0 to avoid problems with mouse capturing<br />
*r37785 gtk2 intf: disable liboverlay by default<br />
*r37790 gtk2 intf: use setenv only on Linux<br />
*r37795: export tgz: added option to add chm files<br />
*r37796 IDE: when copying secondary configs create the primary config directory first<br />
*r37797 rpm: added option chmhelp<br />
*r37810 rpm: fixed building without chmhelp<br />
*r37811 lhelp: fixed invalid recent item path in config, added build modes default,debug<br />
*r37814 chmhelp: clean up old ipc files to prevent IDE hang<br />
*r37817-r37821 MAKE DEB<br />
*r37838 DBG: Fix handling console input<br />
*r37824 chmhelp: Fixed lazarus hanging when chmhelp pipe is leftover from an improperly closed lhelp<br />
*r37825 chmhelp; Fixed chmhelp typo (boolean error)<br />
*r37826 chmhelp: fixed bug where a new lhelp process could be started each time F1 was pressed<br />
*r37841 DBG: Pseudo-Terminal, accept tabs<br />
*r37848 lazutils: docs: fixed encoding and package name<br />
*r37849 lcl: docs: fixed encoding<br />
*r37850 ide: docs: fixed encoding<br />
*r37851 updated docs<br />
*r37853 lcl: docs: fixed some links<br />
*r37852 build_lcl_docs: using UTF-8 file functions, added option -h<br />
*r37855 build_lcl_docs: showcmd: show working directory<br />
*r37861 lcl: check if ListDataset is loading to update lookup info. Issue [[http://bugs.freepascal.org/view.php?id=22337 22337]]<br />
*r37846 win32: let TComboBox.CloseUp fire before Change (delphi compatible). Fix 22352<br />
*r37880 IDE+startlazarus: use same working directory, needed for passing relative file names as command line parameters, fixed building lcl+lazutils chm on ubuntu 12<br />
*r37866 lazutils: fixed unit names<br />
*r37868 lazutils: added fpdoc files<br />
*r37869 docs: building lazutils+lcl chm<br />
*r37885 DBG: fixed parsing sets for debug-inspector<br />
*r37906 IDE-Options / SynEdit: Fixed RightEdge visibility (Recression)<br />
*r37919 DBG: Prevent potential crash/memory-corruption in Watches<br />
*r37920 DBG: Prevent potential crash in (dbg-)OnIdle handling<br />
*r37921 DBG: Prevent build up of no longer needed commands in queue<br />
*r37945 DBG: Prevent a crash, when the selected snapshot is deleted. Cas also happen when starting the debugger, while a snapshot from previous run is active<br />
*r37950 DBG: fixed endless loop in watch eval (auto type cast) Issue [[http://bugs.freepascal.org/view.php?id=0022425 0022425]]<br />
*r37961 DBG: Disable rangechecks for certain PtrUInt casts<br />
*r37993 carbon: fixed crash of IDE when compiled with range checks on<br />
*r38006 gtk2: fixed crash on QuestionDlg<br />
*r38003 IDE: fixed showing custom project options, issue [[http://bugs.freepascal.org/view.php?id=22486 22486]]<br />
** merged ONLY main.pp<br />
*r38016 ToDoList: fixed encoding of French translation, it should be UTF-8, not ISO-8859-1. Patch by batyann811, bug 22489.<br />
*r37981,37983-37989,38001,38004-38005,38012,38017 Win Installer<br />
===== Fixed after RC1 =====<br />
*r38127 IDE, EditorOptions: Fixed finding color attribute in localized IDE<br />
*r38132 IDE: setup: after changing lazarusdir: fetch translations and translate<br />
*r38133 chmhelppkg: invoke lazbuild with --pcp parameter<br />
*r38138 examples: testall: fixed start<br />
*r38139 examples: cleandirs: error for fpc version<br />
*r38140 examples: componentstreaming: fixed typo, clean up<br />
*r38141 lazfreetype: fixed range check error, improved error message<br />
*r38142 examples: mssqlconn: requires fpc 2.6.1<br />
*r38144 examples: synguttermarks: win32 gui mode, fixed Left position<br />
*r38146 examples: tv_add_remove: updated<br />
*r38147 examples: xmlreader: added example xml<br />
*r38157 IDE: fixed saving ambiguousfileaction, bug 22573<br />
*r38158 examples: clean up<br />
*r38038 TAChart: Allow spaces in field names inside TDbChartSource.FieldY<br />
*r38168 synuni: clean up fpc options<br />
*r38170 synuni, semaphorgridlpk: clean up fpc options<br />
*r38022 SynEdit: Fixed drawing errors for frames (left frame site drawn at wrong offset)<br />
*r38145 LCL: TListView fixed "List index out of bounds" while deleting items. issue [[http://bugs.freepascal.org/view.php?id=22552 22552]]<br />
*r38150 SynEdit TSynMultiSyn: Fixed crash when deleting lines. Part of issue [[http://bugs.freepascal.org/view.php?id=0022519 0022519]]<br />
*r38151 SynEdit Highlighter: Fixed crash when scanning empty<br />
*r38152 SynEdit TSynMultiSyn: typo<br />
*r38175 SynEdit TSynMultiSyn: Fixed updating, when appending to EOT. Part of issue [[http://bugs.freepascal.org/view.php?id=0022519 0022519]]<br />
*r38205 lazaruside.fi.po: Finnish translations<br />
*r38180 Synedit: fix matching-bracket-highlight in comments (closing bracket at eol) issue [[http://bugs.freepascal.org/view.php?id=22586 22586]]<br />
*r38198 IDE: Export to html, do not enforce check for writeable. Issue [[http://bugs.freepascal.org/view.php?id=22588 22588]]<br />
*r38199 lazutils: do not use winodws W functions under Win98, issue [[http://bugs.freepascal.org/view.php?id=22596 22596]]; '''Breaks compilation on wince, because win32platform is not defined.'''<br />
*r38202 openglcontrol: win32: fixed sharing context<br />
*r38204 Synedit: fixed typo in IFDEF for fpc 2.60 bug<br />
*r38225 TAChart: Fix division by zero in zoom tools with extreme zoom ratios<br />
*r38226 TAChart: Fix hang in functional series with extreme zoom ratios<br />
*r38223 SynEdit TSynMultiSyn: Several fixes issue [[http://bugs.freepascal.org/view.php?id=0022519 0022519]]<br />
*r38232 TAChart: Add InRangeUlps utility function<br />
*r38233 TAChart: Fix disappearance of axis marks located exactly at chart bounds<br />
*r38234 TAChart: Fix crash when setting Marks.LabelFont from the Object Inspector<br />
*r38237 Examples/SynEdit: Readme and typo in comment<br />
*r38266 IDE: Tweak the layout of ManageExamplesForm<br />
*r38260 TAChart: Use correct notification when the series' source changes<br />
*r38261 TAChart: Issue change notifications when modifying TListChartSource.DataPoint property<br />
*r38285 lhelp: replace MessageBox, with Form.Modal. FIx IPC hang. issue [[http://bugs.freepascal.org/view.php?id=0022592 0022592]]<br />
<br />
===== Fixed after RC2 =====<br />
*r38293 windows installers: don't ask to overwrite the environment options in the secundary config directory from Reinier Olislagers<br />
*r38339 SynEdit TSynMultiSyn: Fix CaseSensitivity for Sheme marker. Issue [[http://bugs.freepascal.org/view.php?id=0022693 0022693]]<br />
*r37386 Remove writeln() that looks like a residual debug message. Issue [[http://bugs.freepascal.org/view.php?id=0022544 0022544]]<br />
*r38385 Translations: removed unmaintained Portuguese translation, which was outdated copy of Brazilian Portuguese one<br />
<br />
== How to merge ==<br />
The lazarus developers have decided to use the native svn merge for this branch. Other branches used the svnmerge.py script to manage the revisions to be merged.<br />
<br />
* TODO: Maybe this information should be put in a separate page.<br />
<br />
[[SVN_Migration#Merge_with_plain_svn]]<br />
=== Using TortoiseSVN ===<br />
As noted in the link above using TortoiseSVN is more or less self explaining. <br />
<br />
* TODO: add some screen shots.<br />
<br />
When committing, in the recent messages a nice commit message is available.<br />
<br />
Tested with TortoiseSVN 1.7.6, SVN 1.7.4.<br />
<br />
=== Show list of revision that can be merged ===<br />
In the lazarus fixes_1_0 directory do:<br />
svn mergeinfo ^/trunk --show-revs eligible<br />
Or if you don't have a fixes directory checked out, you can pass the URL path of the fixes branch:<br />
svn mergeinfo ^/trunk http://svn.freepascal.org/svn/lazarus/branches/fixes_1_0 --show-revs eligible<br />
<br />
=== Show list of revision that have been merged ===<br />
In the lazarus fixes_1_0 directory do:<br />
svn mergeinfo ^/trunk --show-revs merged<br />
<br />
=== Merging revisions from trunk ===<br />
To merge one or more revisions from trunk, use the svn merge command. For example to merge revision 36506 and 36510 use:<br />
svn merge -c 36506,36510 ^/trunk<br />
<br />
To generate a commit log message, use:<br />
svn log ^/trunk -c 36506,36510 > svnmerge-commit-message.txt<br />
<br />
Edit svnmerge-commit-message.txt with your favorite text editor and add a first line like:<br />
Merged revision 36506,36510 from /trunk.<br />
<br />
Commit this with:<br />
svn commit -F svnmerge-commit-message.txt<br />
<br />
=== Blocking a revision to be merged ===<br />
Sometimes you want to block a revision to be merged, i.e. you want to make sure that this revision is never merged to the fixes branch, for example, because it contains a new feature or it contains a version number change not applicable to the fixes branch, but only to trunk. To block revision 36507, use:<br />
svn merge -c 36507 --record-only ^/trunk<br />
Then you can create a log message with:<br />
svn log ^/trunk -c 36507 > svnmerge-commit-message.txt<br />
Edit svnmerge-commit-message.txt with your favorite text editor and add first line like:<br />
Blocked revision 36507 from /trunk<br />
Then commit this change:<br />
svn commit -F svnmerge-commit-message.txt</div>
Paul Ishenin
https://wiki.freepascal.org/index.php?title=Lazarus_1.0_fixes_branch&diff=62008
Lazarus 1.0 fixes branch
2012-09-25T03:46:05Z
<p>Paul Ishenin: /* Merged revisions for 1.0.2 */</p>
<hr />
<div>This page contains the revisions to be merged from trunk to the [http://svn.freepascal.org/svn/lazarus/branches/fixes_1_0/ Lazarus 1.0 fixes] branch.<br><br />
Release notes can be found here [http://wiki.lazarus.freepascal.org/Lazarus_0.99.0_release_notes Release notes]<br />
<br />
== Fixes for 1.0.2 ==<br />
=== Merge requests ===<br />
==== Submitted by developer / committer ====<br />
<br />
*r38673 TAChart: Ignore NaNs while calculating TCustomChartSource.ValuesTotal<br />
*r38675 TAChart: Support Marks.Attachment = maCenter in pie series<br />
*r38697,38698 Gtk2: set TToggleBox.ParentColor default false so it's color is consistent with TButton when eg.parent color is clRed and TToggleBox.Color=clDefault.<br />
*r38694: TAChart: Fix update of TListChartSource.ValuesTotal cache when adding or removing NaNs<br />
*r38709: Qt: improved triggering of OnClick() in QEventShowToParent. issue [[http://bugs.freepascal.org/view.php?id=22872 22872]]<br />
*r38710: TAChart: Fix crash when using TChartExtentLink with LinkedChart.Chart = nil<br />
*r38712: TAChart: Fix crash while replacing linked chart in TChartExtentLink<br />
*r38713: TAChart: Use NumberOr function instead of checking for NaN explicitly<br />
*r38719: TAChart: Extract TDrawFuncHelper.ForEachPoint helper procedure ''This also fixes a hang while using data point tool on extremely zoomed-in series''<br />
*r38729: TAChart: Extract TDrawFuncHelper.XRange helper function. + Fix GetNearestPoint for rotated function series.<br />
*r38733: TAChart: Fix TChartSeries.SetColor to notify all listeners and require ListSource. Add TListChartSource.SetColor<br />
*r38735: TAChart: Fix memory leak in TDbChartSource.BeforeDraw<br />
*r38737: TAChart: Fix drawing of pie series with data from the db source<br />
*r38754: TAChart: Fix hang when changing TLineSeries.ShowPoints while drawing chart<br />
*r38757: TAChart: Display crosshair tool on mouse down<br />
*r38762: Gtk2: when style is drawing button then use style from button. issue #22901<br />
*r38779: TAChart: Do not notify from TListChartSource.SetXValue and SetYValue if the value did not actually change.<br />
*r38780: TAChart: Add TBasicPointSeries.MovePoint overload for graph coordinates ''not a fix, but required for r38788''<br />
*r38788: TAChart: Support axis transformations in TCustomChartSeries.MovePoint<br />
*r38792: TAChart: Fix crash on deleting subcomponent with active property editor<br />
*r38799: gtk2: implement SPI_GETWHEELSCROLLLINES. Fix a regression in VirtualTreeView wheel scroll<br />
*r38802: lcl:revert 33020, 33082, 33086, part of 33089 and 33389. These changes made the hint behavior Delphi incompatible thus leading to a regression in third party control like VirtualTreeView that handles hints in CMHintShow. Retrieve parent hint recursively if hintcontrol.hint is empty' (delphi compatible)<br />
*r38816 LazUtils: improve unicode path/filename handling by Fileutil.ReadFileToString, patch from Takeda Matsuki, bug 22953<br />
<br />
==== Submitted by others ====<br />
<br />
=== Merged revisions for 1.0.2 ===<br />
*r37217,37218,37225,37239,37241,37293,37304,37316 Qt: fixed keys handling (arrow keys & enter).<br />
*r38396 LCL: ColorBox - keep FSelected in sync all the time. fixes issue [[http://bugs.freepascal.org/view.php?id=22729 22729]]<br />
*r38426 CodeBrowser: check for virtual units. Issue [[http://bugs.freepascal.org/view.php?id=0022740 0022740]]<br />
*r38428 SynEdit, MultiHighlighter: fix adding text/sections at EOL. issue [[http://bugs.freepascal.org/view.php?id=0022745 0022745]]<br />
*r38430 TAChart: Fix out-of-bounds access when drawing empty polygons and polylines<br />
*r38437 ide: project target: apply default extension even if the file has already an extension, issue [[http://bugs.freepascal.org/view.php?id=22750 22750]]<br />
*r38444 IDE: fixed crash when releasing non existing component palette select button<br />
*r38473 tests: fixed compilation<br />
*r38464 TAChart: Fix error message in TFPCanvasDrawer.RadialPie<br />
*r38486 avglvltree: setcompare: set when count=0<br />
*r38503 TAChart: Copy BaseLength in TChartArrow.Assign<br />
*r38507 EditorOpts: default for top-info-hint<br />
*r38509 Debugger: Ensure Queue is not blocked by LineInfo Request. (If a LineInfoRequest was queued the DebuggerCurrentLine could not search the stack, as commands were not immediately run)<br />
*r38519 Gtk2: fixed crash with TListView when viewstyle is vsIcon or vsSmallIcon. issue [[http://bugs.freepascal.org/view.php?id=22778 22778]]<br />
*r38520 Qt: do not propagate keyrelease event as action trigger. issue [[http://bugs.freepascal.org/view.php?id=22737 22737]]<br />
*r38531 Debugger: Workaround to fix exe-line-indicators (blue dots) at debug start<br />
*r38533 Qt: fixed header offset and getClientRect for TListView when ViewStyle=vsReport.<br />
*r38547 TAChart: Support Y NaNs in polar series ''(this will cause compilation error -- please remove 'and CloseCircle' part from the last conditional in the TPolarSeries.Draw procedure)''<br />
*r38557 TAChart: Support brush style, pen style and pen width in fpvectorial drawer<br />
*r38571 TAChart: Draw chart correctly after decrease of an axis margin<br />
*r38529,r38530,r38535,r38543,r38548: fix carbon clipping, correctly return region types on HRGN related operations, fix generic IntersectClipRect routine<br />
*r38640,r38641,r38642,r38649: various ExtTextOut fixes for Carbon and Cocoa<br />
*r38551,r38552,r38562,r38563 Carbon: various winapi compatibility functions fixes<br />
*r38518 Qt: TQtWinApi.ExtTextOut() implemented Dx param. issue [[http://bugs.freepascal.org/view.php?id=22795 22795]] (zeljko will merge, need some testing)<br />
*r38572 Qt: propagate QEvent::ShortcutOverride to parent, so stop key event if shortcut is executed. issue [[http://bugs.freepascal.org/view.php?id=22827 22827]]<br />
*r38576,38577: Qt: fixed TQtWidgetSet.FrameRect(), now it uses passed brush to draw frame border.<br />
*r38610 Qt: fixed non ascii utf8 chars in TQtWidgetSet.ExtTextOut() when we use dx param. issue [[http://bugs.freepascal.org/view.php?id=22795 22795]] (depends on merging of r38518).<br />
*r38628,38629,38630,38634: Qt: fixed clipping bugs inside TQtWidgetSet.ExtTextOut()<br />
*38670 SynEdit: Fixed past eol paint error ** Must be ported by hand **<br />
*r38584 TAChart: Copy Attachment and YIndex in TGenericChartMarks.Assign ''(this code is in TATypes unit in v1.0)''<br />
*r38589 TAChart: Do not draw lines which should be invisible in OpenGL drawer<br />
*r38607 TAChart: Workaround for issue [[http://bugs.freepascal.org/view.php?id=22850 22850]] '''see patch in the mailing list'''<br />
*r38617 TAChart: Fix GetNearestPoint returning true with no points found inside radius, issue [[http://bugs.freepascal.org/view.php?id=22854 22854]]<br />
*r38644: Qt: fixed menu flickering. issue [[http://bugs.freepascal.org/view.php?id=22872 22872]]<br />
*r38651: TAChart: Fix zero division when calling ImageToGraph before the chart is drawn<br />
*r38674 Qt: fixed crash when invalid or null handle is passed into SetCapture.<br />
*r38679 Qt: update bitmap if TMenuItem has associated ImageList and ImageIndex. issue [[http://bugs.freepascal.org/view.php?id=22896 22896]]<br />
*r38672 SynEdit: fixed delete-next-word, if caret past eol. Issue [[http://bugs.freepascal.org/view.php?id=0022890 0022890]]<br />
*r38720 LCL, DefaultTranslator: fix handling of non-ASCII path to .po file, bug 22907, patch by Vladimir Zhirov<br />
*r37398 IDE: corrected version info language list, added Ukrainian language, bug 22103<br />
*r38722 IDE: added Lithuanian to version info language list, bug 22898<br />
*r38671: carbon: fix accidental error in index<br />
*r38743: carbon: reimplement linear gradient draw using shading to support OS X < 10.5<br />
*r38636,r38637: Gtk2: fixed text clipping and text background drawing<br />
*r38758: gtk2: allocate GdkColor when we need a BkColor<br />
*r38727,r38728,r38742,r38744,r38745,r38748: gtk2: fix clipping and DC transformations<br />
*r38747: gtk2: fix FrameRect - it must use a passed brush instead of selected one<br />
*r38373 Gtk2,Qt: make ETO_OPAQUE work from TCanvas.TextOut(). issue #22719<br />
<br />
== Fixes for 1.0 ==<br />
=== Merged revisions for 1.0.0 ===<br />
==== Submitted by developer / committer ====<br />
*r36506 LazReport, fix barcode dialog localization (Jesus)<br />
*r36508 Updated Japanese translation<br />
*r36509 Window Column, store pointer to resourcestring<br />
*r36510 LazReport, fix barcode addin when TfrBarCodeObject is not yet instantiated (in this case barcode editor defaults to memo view.<br />
*r36511 DividerBevel: implemented Transparent.<br />
*r36514 IDE: moved macros save/saveall to source editor<br />
*r36515 IDE: update macro descriptions after translating resource strings<br />
*r36516 IDE: trim TLazPackageGraph.GetFallbackOutputDir<br />
*r36517 IDE: check if package needs rebuild: switch to fall back directory: update compiler params<br />
*r36518 IDE: install/uninstall package dialog: fixed icons, added info about current state<br />
*r36523,r36530 IDE: Export as HTML<br />
*r36526 CodeTemplate: Improve final caret pos, if tmpl does not specify<br />
*r36527 CodeTemplate: allow tab to trigger / selection to ignore. issue [[http://bugs.freepascal.org/view.php?id=0017631 0017631]]<br />
*r36528 SynEdit: Template(Syncro) fix invalidation<br />
*r36529 IDE: Printing: break long lines. Issue [[http://bugs.freepascal.org/view.php?id=0013479 0013479]]; <br />
*r36547 IDE: Printing: break long lines. Fix Utf8. Update for rev 36529<br />
*r36531 LazReport: fixed buttonpanel localization in BarCode editor dialog<br />
*r36533 IDE: clean up of unused resourcestrings<br />
*r36534, r36536, r36553, r36583, r36646 regenerated translations; updated Russian translation<br />
*r36535 IDE: more clean up of unused resourcestrings<br />
*r36537 Documents LCLIntf.GetDeviceCaps<br />
*r36538 IDE: always store lazarus directory<br />
*r36539 LazReport: uppercase variable before comparing with hardcoded functions. Properly fix to 21624<br />
*r36543 IDE: setup dialog: using same file resolving as IDE<br />
*r36546 IDE: consider empty lazarusdirectory as pcp, empty fpcsrcdir as lazdir, empty testdir as lazdir<br />
*r36548 IDE: fixed note about wrong laz dir<br />
*r36549 IDE: fixed crash on find identifier references<br />
*r36551 IDE: translate descriptions of all macros<br />
*r36552 IDE: fixed editor tab position combobox items localization on Editor/Misc options page<br />
*r36556,r36557 IDE: warn if upgrading configs<br />
*r36561, 36562, 36563, 36566: Improve Options/Keymap<br />
*r36565 LCL: Prevent TShape.stRectangle disappearing with certain Height/Width and Pen.Width values.<br />
*r36567,r36568,r36569 IDE: show downgrade warning<br />
*r36570 lazbuild: select IDE build mode, fixed compiling with different mode<br />
*r36572 LCL: set csCaptureMouse on TToolButton, but don't send click if mouse is out of ttoolbutton on mouseup.issues [[http://bugs.freepascal.org/view.php?id=19688 19688]],[[http://bugs.freepascal.org/view.php?id=21560 21560]]<br />
*r36574 IDE: fixed saving environment on every change<br />
*r36577 LCL, TreeView: fix GetNextVisible, GetPrevVisible. Issue [[http://bugs.freepascal.org/view.php?id=21264 21264]]<br />
*r36575 IDE/Setup dialog: force taskbar button to be shown<br />
*r36584 IDE: import package list: opendialog<br />
*r36587 IDE: intial setup: fpc src dir: lazdir/fpc/fpcver/source<br />
*r36588 IDE: intial setup: fixed if no candidates found<br />
*r36589,r36590 IDE: compiler file name: search first with macros<br />
*r36591 IDE: verbose search for candidates<br />
*r36592 IDE: search fpc src relative to fpc.exe<br />
*r36594 IDE: check compiler: only run common names<br />
*r36595,r36599 IDE: use under windows as default for make the make.exe in the compiler directory<br />
*r36596 IDE,codetools: fixed ppccross,crossppc to ppcross<br />
*r36601 IDE: unify the 2 filters in KeyMapping window. Prevent a potential crash.<br />
*r36603 debian: updated patches to latest source in lazarus svn<br />
*r36608 Gtk2: do not set widget name, it's completelly unnecessary and produce unexpected behaviour if some keywords are in widget name.issue [[http://bugs.freepascal.org/view.php?id=21661 21661]].<br />
*r36613 SynEdit: Fix an issue with Scrollbars not being updated<br />
*r36617 lazbuild: build ide: replace exe on windows<br />
*r36644 IDE: improved 'Export package list' dialog localization<br />
*r36645 IDE: improved 'Package Graph Explorer' dialog localization<br />
*r36647,r36653,r36654,r36655,r36656,36668,36673 IDE: view / IDE internal / what needs building<br />
*r36648,r36650,r36651 IDE: read state file created by Makefile: fix path delimiters, checking compiled state: ignore -v,-i,-B flags, do not skip all -F<br />
*r36652 IDE: codetools options: shorter caption<br />
*r36658 regenerated translations; updated Russian translation <br />
*r36659 LCL: Refactoring. Make TCalculatorDialog.Execute more understandable by removing a "with" block.<br />
*r36661 LCL: Prevent "Test Dialog" feature of Calculator and Calendar dialogs locking the IDE, issue [[http://bugs.freepascal.org/view.php?id=21644 21644]]<br />
*r36616 SynEdit: do not include IME for WinCe<br />
*r36662 LCL: implementation of TCustomImageList.GetIcon()<br />
*r36663 In GUI strings, unify all 3 dots to have a space before them ( ...)<br />
*r36664 IDE: Use CreateAbsolutePath when switching between relative/absolute paths in AddFile dialogs (CreateAbsoluteSearchPath gives wrong output)<br />
*r36665 LCL: publish TUpDown.OnChangingEx<br />
*r36666 IDE etc.: unify 3 dots in GUI string to have a space ( ...).<br />
*r36667 translation: german: updates from Swen Heinig<br />
*r36669 updatemakefiles: write which lpk have conditionals<br />
*r36670,r36671 IDE,lazbuild: create makefile: use CPPROG instead of COPY to get the current date for Makefile.compiled under Windows<br />
*r36649,r36657,r36602,r36672,r36675,r36677,r36679,r36683,r36701,r36708,r36709 Makefiles: updated, reduced dependencies, fixed double compiles<br />
*r36676 LCL: Implement TListItem.EditCaption, issue [[http://bugs.freepascal.org/view.php?id=20295 20295]].<br />
*r36680,r36699 lazbuild: fixed crash, replaced some MessageDlg with IDEMessageDialog<br />
*r36681 IDE,lazbuild: use parsed compiler filename, make filename<br />
*r36682 IDE: debugfilename, debugsearchpath: use same function as other env vars to resolve macros, trim and find<br />
*r36686,r36688 IDE/lazbuild backup, delete the same lazarus exe on all platforms<br />
*r36694 regenerated translations; updated Russian translation<br />
*r36695 LazDataDesktop: regenerated translations; updated Russian translation<br />
*r36696 IDE: add resource strings for various windows manifest keys<br />
*r36697 fix ImageList.AddMasked() in case of source image has no mask description<br />
*r36702 IDE: TProject.TitleIsDefault: check for project+number, fix for renaming the title of a new project<br />
*r36711 Qt: enable wordwrap on TQtStaticText. issue [[http://bugs.freepascal.org/view.php?id=21697 21697]].<br />
*r36712 LCL: fixed function result<br />
*r36713,r36715 lcl: fixed TToolButton.MouseUp X,Y in boundsrect check<br />
*r36716 LCL, combination of modal form + wsMaximized style produces tiny windows on GTK2, issue [[http://bugs.freepascal.org/view.php?id=21634 21634]]<br />
*r36717 LCL: reverted changes to menus.pp from r36666 (by Paul's request)<br />
*r36718 LCL: regenerated translations<br />
*r36719, *r36826 LCL: fix range check error<br />
*r36720 LazReport: added option to ignore undefined symbols, from Luiz Americo, issue [[http://bugs.freepascal.org/view.php?id=21683 21683]]<br />
*r36723,36724 IDE,lazbuild: fixed repeated build project clean: save project state file before compiling too<br />
*r36727 lazbuild: fixed expanding --lazarusdir<br />
*r36728 make useride: pass --lazarusdir=.<br />
*r36729 Improve TStringHashList, prevents a PO file update crash. Issue [[http://bugs.freepascal.org/view.php?id=21685 21685]]<br />
*r36730 IDE: project wizard: fixed fixed size, bug 21714<br />
*r36731 lazreport: fix possible access violation by checking dataset for nil<br />
*r36732 win32: fix range check error<br />
*r36733 lazbuild: auto create ide/revision.inc if missing<br />
*r36734 Gtk2: fixed mouse capturing on native scrolling win controls (TListBox,TListView etc).issue [[http://bugs.freepascal.org/view.php?id=21713 21713]]<br />
*r36735 LCL: TToolButton: commented debugln().<br />
*r36740 lazbuild: fixed uninitialized function result, fixed checking if init failed, quick check if lazarusdir is valid.<br />
*r36741 lazutils: Patch with font collection support from Circular<br />
*r36744 examples: Adds a OpenURL/OpenDocument test<br />
*r36745 LCL: Adds the sysenvapis include files to the lpk and adds an extra safety in OpenURL for users which forget to encode spaces in filenames<br />
*r36746 IDE: fixed fixed size dialogs<br />
*r36747 IDE: sort selection: layout<br />
*r36748 IDE: added debugging for sort selection<br />
*r36749 gtk2: clean up<br />
*r36750 IDE: less debugging<br />
*r36751 IDE: jump to next/prev error: fixed direction<br />
*r36752 LCL: TTreeView: clean up<br />
*r36753 IDE: next/prev error: clear multi selection<br />
*r36754 lcl: move interface initialization of TCustomEdit from CreateWnd to InitializeWnd. Consistent with other controls and allows interfaces to check is handle is being created<br />
*r36755 IDE: Add acceleration keys and fix tab order in Project Wizard and ImageListEditor, issue [[http://bugs.freepascal.org/view.php?id=21718 21718]]<br />
*r36756 lcl: remove TCustomListBox.Loaded. ItemIndex is initialized in InitializeWnd<br />
*r36757 lcl: call inherited after setting FLines in TCustomMemo.InitializeWnd. Fix potential crash since widgetset code expect FLines be initialized <br />
*r36758 lcl: check for csDestroyingHandle in TControl.HandleObjectShouldBeVisible. Fix issue [[http://bugs.freepascal.org/view.php?id=19882 19882]]<br />
*r36759 lcl: revert 31890 since issue [[http://bugs.freepascal.org/view.php?id=19882 19882]] is properly fixed now<br />
*r36760 gtk2: less hints<br />
*r36761 gtk2: less hints<br />
*r36762 Carbon: fixed result of TWSCarbonCustomListView GetTopItem,GetViewOrigin and GetBoundingRect. issue [[http://bugs.freepascal.org/view.php?id=21733 21733]]<br />
*r36763 Carbon: added themed TComboBox drawing.Patch by David Jenkins. issue [[http://bugs.freepascal.org/view.php?id=21747 21747]]<br />
*r36764 Carbon: added themed TComboBox drawing.Patch by David Jenkins. issue [[http://bugs.freepascal.org/view.php?id=21747 21747]]<br />
*r36765 Docs: added David Jenkins to contributors list<br />
*r36766 Carbon: make carbon widget visibility in sync with lcl. Patch by David Jenkins. issue [[http://bugs.freepascal.org/view.php?id=21731 21731]]<br />
*r36767 lcl: remove Destroying and DestroyWnd calls from TCustomListBox.Destroy<br />
*r36768 lcl: cleanup TCustomListBox.Create<br />
*r36769 codetools: fixed skipping include files in skipped ifdef<br />
*r36770 gtk2: less hints<br />
*r36771 gtk2: less hints<br />
*r36772 ide: fix selection painting of debugger eventlog colors list<br />
*r36773 carbon: improved TCarbonWidgetSet.RawImage_XXXX routines.Patch by David Jenkins. issue [[http://bugs.freepascal.org/view.php?id=21743 21743]].<br />
*r36774 carbon: proper initialization of alpha channel.Patch by David Jenkins. issue [[http://bugs.freepascal.org/view.php?id=21753 21753]]<br />
*r36775 LCL: implement ClientToParent, ParentToClient based on patch of David Jenkins (issue [[http://bugs.freepascal.org/view.php?id=0021763 0021763]])<br />
*r36776 LCL: extend TThemeServices.IsDisabled, IsHot, IsPushed for teCombobox<br />
*r36777 IDE: Fix tab order and set shortcuts in Application Options frame.<br />
*r36778 LazControls: fix potential crash in TListFilterEdit and TTreeFilterEdit<br />
*r36779 GTK2: add TGtk2WidgetSet.SetDesigning to prevent Abstract method call in IDE. Issue [[http://bugs.freepascal.org/view.php?id=21773 21773]]<br />
*r36780 IDE: fix tab order in Project Save Options frame.<br />
*r36781 IDE: fix tab order in frames: Build Modes editor, Miscellaneous Options and Version Info<br />
*r36782 IDE: fix tab order in option frames: Code Generation, Compilation, Linking, Messages, Parsing.<br />
*r36783 GTK2: clean up<br />
*r36784 GTK2: clean up<br />
*r36786 Carbon: removed extra code for teComboBox, since teComboBox is supported by themes as of r36776.<br />
*r36787 gtk2: clean up<br />
*r36788 gtk2: fixed Gtk2WidgetSet.ClipboardGetData mem leak on stream write error<br />
*r36789 gtk2: removed OldCreateStatusBarPanel<br />
*r36790 gtk2: clean up<br />
*r36791 gtk2: clean up<br />
*r36794 IDE: CloseQueryIDEWindows: skip sub forms<br />
*r36795 Fix crash in dbg-console, if dbg not active. issue [[http://bugs.freepascal.org/view.php?id=21712 21712]]<br />
*r36796 SourceEdit: use softcenter for Replace prompt. Issue [[http://bugs.freepascal.org/view.php?id=0021709 0021709]]<br />
*r36797 regenerated translations; updated Russian translation<br />
*r36800 IDE: when checking if a FPC unit has changed: ignore units that have no source in the FPC sources. Needed to ignore user units reachable through fpc.cfg.<br />
*r36801 IDE: fix error message can't find unit if the ppu is in one of the loaded packages<br />
*r36803 DOCS: correct the documentation about CanFocus<br />
*r36806 LCL: clear FActiveDefaultControl on that control destruction<br />
*r36810 LCL: fix copy paste error<br />
*r36811 LCL: don't update Default, Cancel during their applying in UpdateDefaultCancel<br />
*r36812 LCL: add and ability to use own TListItems, TListItem descendants in TListView for delphi compatibility<br />
*r36821 gtk2 intf: fixed compilation FPC_FULLVERSION<20600<br />
*r36822 gtk2 intf: clean up<br />
*r36823 gtk2 intf: clean up<br />
*r36824 gtk2 intf: clean up<br />
*r36825 LCL: initialize font height with the height from DefFontData<br />
*r36852 IDE: when checking if global unit has changed, skip units in packages<br />
*r36857,36859 LCL: TControl.UpdateBaseBounds: set cfBaseBoundsValid<br />
*r36861 LCL: TCustomSplitter.SetAnchors: adapt anchors before applying<br />
*r36870 LCL: SetAlign: restore the basebounds set before changes<br />
*r36877 LCL: clean up<br />
*r36882 LCL: TControl.SetAnchors: during disabled autosize: update basebounds when changing Anchors, bug 21730<br />
*r36884 LCL: fixed sending CM_EXIT,CM_ENTER when flastfocusedcontrol was removed<br />
*r36885 LCL: constraint Width,Height to >=0<br />
*r36888 Converter: fixed 'Missing units' dialog localization, part of bug 21784<br />
*r36889,r36890 codetools: class completion: fixed gathr proc definitions<br />
*r36891 IDE: show compiling resource lines when error on compiling resources<br />
*r36892 IDE: improved message when can not find unit and unit was found in a package<br />
*r36893,r36894 IDE: messages: show debug: lines and calling resource compiler<br />
*r36895,r36896 gtk2 intf: checking for liboverlay, using value-changed instead of change-value<br />
*r36897 LCL: made TImage.DestRect public<br />
*r36899 Fix encoding errors in Japanese translation<br />
*r36900,r36901 startlazarus: fixed asking for custom or default<br />
*r36902 LCL: fixed ShowModal() when Hide() is called on modal form to be Delphi compatibile.issue [[http://bugs.freepascal.org/view.php?id=15390 15390]]<br />
*r36903 IDE: fixed read/write designinfo, bug 21804<br />
*r36904 IDE: do not save a new project where only session was modified, bug 21803<br />
*r36905 gtk2 intf: fixed TGtk2WSCustomTabControl.GetDefaultClientRect to check if gtknotebook has a page<br />
*r36906,36907 codetools: AddLocalVar: do not add hidden used unit<br />
*r36908 Qt: added TQtWidget.testAttribute() function.<br />
*r36910 DBG: Tests for environment<br />
*r36913 TAChart: Set Brush.Color before Brush.Style to work around issue [[http://bugs.freepascal.org/view.php?id=21806 21806]]<br />
*r36914: TAChart: Fix compilation of OpenGL drawer<br />
*r36924 gtk2 intf: TGtk2WSCustomTabControl.GetDefaultClientRect for TTabControl<br />
*r36925 Qt: fixed resize events of TQtTabWidget and accurate information about clientRect changes. issue [[http://bugs.freepascal.org/view.php?id=21805 21805]]<br />
*r36929 Gtk2: fixed text background drawing in TGtk2WidgetSet.ExtTextOut() when BkMode = OPAQUE.issue [[http://bugs.freepascal.org/view.php?id=19384 19384]]<br />
*r36941 Translations: Brazilian Portuguese translation update by Marcelo B Paula, bug 21818<br />
*r36938,36939 LazReport, lift up to preview window improving layout and functionality, from Julio Jimenez B.<br />
*r36942 LazReport, avoid hiding text at some zoom values due small differences in text height calc (DONT MERGE YET, NEEDS MORE TESTING)<br />
*r36943 IDE: msg quickfix for cant find unit: add position<br />
*r36956 carbon: added FHasPaint variable to TCarbonWidget to allow owner draw.issue [[http://bugs.freepascal.org/view.php?id=21744 21744]]<br />
*r36957 carbon: added ScrollRect() routine to TCarbonWidget. issue [[http://bugs.freepascal.org/view.php?id=21741 21741]]<br />
*r36958 carbon: set FTabIndex instead ATabIndex variable in TCarbonTabsControl.SetPageIndex. patch by David Jenkins.issue [[http://bugs.freepascal.org/view.php?id=21728 21728]]<br />
*r36959 carbon: optimized caret drawing to not update whole widget.patch by David Jenkins. issue [[http://bugs.freepascal.org/view.php?id=21768 21768]]<br />
*r36960 carbon: fixed order of check width > height in TCarbonTrackbar.patch by David Jenkins. issue [[http://bugs.freepascal.org/view.php?id=21740 21740]]<br />
*r36961 carbon: implemented autosizing for listview / databrowser columns.patch by David Jenkins. issue [[http://bugs.freepascal.org/view.php?id=21745 21745]]<br />
*r36962 carbon: fixed possible bad loop in TCarbonSpinEdit.CreateWidget.Patch by David Jenkins.issue [[http://bugs.freepascal.org/view.php?id=21732 21732]]<br />
*r36965 IDEIntf: fixed typo<br />
*r36967 Gtk2: fixed retreiving font name from TGtk2WidgetSet.GetObject() when font is default. issue [[http://bugs.freepascal.org/view.php?id=21828 21828]]<br />
*r36968 codetools: JumpToPublishedMethodBody: raise error<br />
*r36969 codetools: fixed FindMethodNodeInImplementation for program<br />
*r36971 tests: codetools: added test for duplicate sections, parsing library<br />
*r36972 codetools: fixed reparsing initialization, finalization, begin<br />
*r36973 codetools: fixed treating initialization, finalization as statement<br />
*r36974,r36975,r36976,36977,36978 codetools: fixed find declaration in library starting in initialization, bug 21832<br />
*r36981,r36982 codetools: identifier completion: fixed continue searching<br />
*r36979 Updated Japanese translation by Haruyuki Fujimaki<br />
*r36980 Fix japanese encoding<br />
*r36983,r36984 codetools: identifier completion: some keywords for library, program<br />
*r36985 codetools: identifier completion: keyword initialization for library, issue [[http://bugs.freepascal.org/view.php?id=21839 21839]]<br />
*r36986 Updated Japanese translation by Haruyuki Fujimaki<br />
*r36990 codetools: identifier list: skip identifier at cursor<br />
*r36991,r36992 IDE: identifier completion: add do after with, issue [[http://bugs.freepascal.org/view.php?id=16850 16850]]<br />
*r36996,r36997,r36999,r37013,r37014,r37015 runtests: fixed compilation, added some tests<br />
*r37012,r37011,r37009,r37008,r37007,r37006,r37005,r37004,r37003,r37002,r37000 carbon interface: clean up<br />
*r37020 IDE: recent/history lists: replaced case sensitive comparison with three types<br />
*r37021 docking: update modified flags<br />
*r37022 codetools: fixed uninitialized result<br />
*r37025 IDE: use unit dialog: check for syntax errors<br />
*r37026,r37027 DBG: Prepare for different line endings. / Accept different line endings (#10, #13, #10#13, #13#10) issue [[http://bugs.freepascal.org/view.php?id=0021834 0021834]].<br />
*r37029 Gtk2: fixed drawing of text with solid brush. issue [[http://bugs.freepascal.org/view.php?id=21863 21863]]<br />
*r37031 Gtk2: do not draw text background if colormap isn't assigned. Second part of issue [[http://bugs.freepascal.org/view.php?id=21863 21863]].<br />
*r37032 gtk2: clean up old mouse capture<br />
*r37033 gtk2: fixed releasecapture<br />
*r37034 gtk2: verbosity for ubuntu liboverlay mouse capture bug<br />
*r37038 sqldb: Enable mssqlconnection for fpc >= 2.6.1 (patch from Reinier Olilagers, bug 21867) - added because creates conflicts with later sqldb merges<br />
*r37040: TAChart: Workaround for TDbChartSource referring to the dataset with Filtered := true<br />
*r37043 LCL, fix TPostScriptPrinterCanvas.ClipRect is empty-rect until explicitly set by user, patch from Joachim Paepke, issue [[http://bugs.freepascal.org/view.php?id=21027 21027]]<br />
*r37051 Translations: Ukrainian translation update by Igor Paliychuk<br />
*r37052 regenerated translations; updated Russian translation<br />
*r37053 LCL: fixed compilation for fpc 2.7.1<br />
*r37054,37055,37057 set TDBLookup.FListLink.DataSource dynamically to FListSource or a local datasource. Issue [[http://bugs.freepascal.org/view.php?id=15410 15410]]<br />
*r37067 LCL: fixed visibility of implemented interfaces<br />
*r37069 simple deb: using make bigide, updated list of tools<br />
*r37070 openglcontrol: fixed mem leak, issue [[http://bugs.freepascal.org/view.php?id=21597 21597]]<br />
*r37071 codetools: identifier completion: unit name of self<br />
*r37076 gtk2: clean up<br />
*r37077 IDE: clean up<br />
*r37092 LCL: fixed compilation for fpc 2.7.1<br />
*r37093 DBG: Testcase: fixed reading env-options<br />
*r37095 SynEdit: fix crash in overview gutter creation. Issue [[http://bugs.freepascal.org/view.php?id=0021887 0021887]]<br />
*r37096 SynEdit: Do not offer OverviewGutter in Gutter-parts designer<br />
*r37101 lazreport: fixed compilation with fpc 2.7.1, new TBookMark<br />
*r37102 lazreport: clean up<br />
*r37112,r37113 SynEdit: highlight class "helper". Fix wrong highlight of "sealed" Issue [[http://bugs.freepascal.org/view.php?id=0021812 0021812]]<br />
*r37115 openglcontrol: fixed mem leak, issue [[http://bugs.freepascal.org/view.php?id=21597 21597]]<br />
*r37126 LCL: Publish some TCheckGroup properties.<br />
*r37129 gtk2: clean up<br />
*r37154,37247,37248 lcl-db: prevent lookup initialization when dataset is destroyed<br />
*r37155 LCL, use rectclip to set clipping rectangle instead of current path because it sometimes get drawn on next stroke (related to r37043)<br />
*r37157 Qt: fixed key events from QCalendar, now tabbing works fine.<br />
*r37160 LCL: published missing properties TCalendar.Hint and TCalendar.TabOrder.<br />
*r37167 LCL: Fix range check error in StringGrid when sorting and RowCount=FixedRows, issue [[http://bugs.freepascal.org/view.php?id=21947 21947]]<br />
*r37073 codetools: resolve expr: thisunitname.implementationenidentifier<br />
*r37078 codetools: find declaration: selfunit.implementationidentifier<br />
*r37079,r37080,r37081,r37082,r37083,r37087,r37089,r37098 codetools: getsmarthint: class variables, enum, array of, inheritance, property params and type, use unit<br />
*r37085 IDE: show compiler options: check compiler<br />
*r37086,37088 IDEIntf: removed TLazCompilerOptions.LCLWidgetType, fixed computing default LCLWidgetType on cross target OS<br />
*r37090 codetools: do not try to search in record ancestors<br />
*r37105 DBG: Watches Copy Name/Value to clipboard. Issue [[http://bugs.freepascal.org/view.php?id=0021860 0021860]]<br />
*r37106 DBG: Register Copy Name/Value to clipboard. Issue [[http://bugs.freepascal.org/view.php?id=0021860 0021860]]<br />
*r37107 DBG: Watches, added inspect/evaluate to popup<br />
*r37116 DBG: Fix a possible crash in debugger (history). Issue [[http://bugs.freepascal.org/view.php?id=0021901 0021901]]<br />
*r37195 SourceEdit: Do not access outdated tab-history entries (dangling pointers). Issue [[http://bugs.freepascal.org/view.php?id=0021939 0021939]]<br />
*r37196 SourceEdit: Only add tabs to tab-history that were accessed<br />
*r37103,r37132 codetools: nested types: Self and inherited<br />
*r37104,r37120 codetools: GetSmartHint: show anonymous arrays<br />
*r37111 IDE: Make Close button work in Components List dialog. Issue [[http://bugs.freepascal.org/view.php?id=21892 21892]],<br />
*r37118 IDE: build ide: if building fails, clear flag clean up once<br />
*r37119 IDE: when building IDE failed: restore backup<br />
*r37121,r37122 IDE: select frame: search in packages<br />
*r37130 IDE: select frame: search in packages<br />
*r37131 LCL, implements textrect clipping in Postscriptprintercanvas<br />
*r37133 SynEdit: Fix WantTabs / Change default to "True" Issue [[http://bugs.freepascal.org/view.php?id=0021904 0021904]]<br />
*r37134 SynEdit: Remove not required invalidation (paint / call to wrong Update() )<br />
*r37135 SynEdit: Remove wrong implementation of Update. Update no longer forwards to Invalidate<br />
*r37136 IpPro: Fix painting for SelectAll<br />
*r37137 IDE, IpPro: Allow copy to clipboard from hint (zeljko added because of conflict in 37345)<br />
*r37140 cody: show code node info: show complete source<br />
*r37141 SynEdit: Fixed Caret paint error (extra caret left on screen) Issue [[http://bugs.freepascal.org/view.php?id=0021924 0021924]]<br />
*r37143 IDEIntf: added TPropertyEditorHook.IsSelected<br />
*r37144 IDEIntf: TDefaultComponentEditor: always select component<br />
*r37146 IDE: if component class is missing: note about RegisterClass<br />
*r37148 Translations: Ukrainian translation cleanup<br />
*r37149 IDE: regenerated translations; updated Russian translation<br />
*r37151 cody: IDE item to create dockable IDE window<br />
*r37152 cody: new IDE window: show dialog to setup form name<br />
*r37162,r37163 IDE: TProjectFileDescriptor.DefaultResourceName: first try without appending a number, check for pascal keywords<br />
*r37164,r37165 IDE: fixed DoGetUnitRegisterInfo for virtual files<br />
*r37166 SynEdit: Fixed Caret when scrolling under older Wine (Win Emulator)[[http://bugs.freepascal.org/view.php?id=21929 21929]]<br />
*r37212 sqldb: added icon for TMySQL55Connection for fpc 2.6.1 '<br />
*r37213,r37214,r37219 codetools: do not save errors outside parser<br />
*r37215 codetools: GetSmartHint: ^, .., file of, class of<br />
*r37220 Translations: Czech IDE translation update by Martin Smat<br />
*r37224 SynEdit: Autocompletion, workaround for click on hint Issue [[http://bugs.freepascal.org/view.php?id=21952 21952]]<br />
*r37231 SynEdit: Prevent some scrolling, while selecting by mouse. Issue [[http://bugs.freepascal.org/view.php?id=0021996 0021996]]<br />
*r37232 DBG: Inspect window, improve scrolling<br />
*r37234 DBG: Improve start-up to work with bug in gdb 7.4<br />
*r37262 searching compiler: search first in dir of fpc.exe, then in PATH<br />
*r37263,r37265 codetools: improved error message on unit not found<br />
*r37264 fix setting radiogroup.itemindex under gtk2. Issue [[http://bugs.freepascal.org/view.php?id=22013 22013]]<br />
*r37267 Docs: improved build_lcl_docs robustness when working with TProcess, patch from Reinier Olislagers, bug 22000<br />
*r37273 SourceEditor: Fix crash when closing several tabs, while debugging (paused / loading line info). Maybe related to issue [[http://bugs.freepascal.org/view.php?id=22015 22015]]<br />
*r37274 Fix Crash in building "Windows" (list of open W.) Menu. Note 0059576 in Issue [[http://bugs.freepascal.org/view.php?id=22015 22015]] (not related to other parts of issue)<br />
*r37280 SQLdb: added missing tmysql55connection.png, bug 22033 '''Related to 37212 and other revisions for TMySQL55Connection'''<br />
*r37281 SynEdit: protect ProcessCommand() against early destruction by ReleaseComponent. Issue [[http://bugs.freepascal.org/view.php?id=0022035 0022035]]<br />
*r37285 IDE: make Close button work in Window Manager<br />
*r37286 Patch from bug 21651, automatically adds quotes to paths with spaces for OpenDocument in Mac OS X<br />
*r37297,r37298 SynEdit, Pas-HL: record helper, deprecated in object<br />
*r37311 Translations: Arabic IDE translation update by Mazen NEIFER<br />
*r37312 IDE: Make Help button work in Editor Window Manager, issue [[http://bugs.freepascal.org/view.php?id=21961 21961]]. (zeljko added to merge list because of conflicts in 37491)<br />
*r37325 regenerated translations; updated Russian translation<br />
*r37326 Translations: Brazilian Portuguese translation update by Marcelo B Paula, bug 22064<br />
*r37327 IDE, Code Generation options: changed wrong -Op386 option to correct -Op80386. Patch by barlone with some consistency changes, bug 22062.<br />
*r37357 Gtk2: fixed mbAll button on dialogs. Added response keys which does not exist in gtk2. issue [[http://bugs.freepascal.org/view.php?id=22083 22083]]<br />
*r37344 gtk2 intf: less hints<br />
*r37345 ipro: less hints <br />
*r37359 lazreport: German translations<br />
*r37360 cody: German translations<br />
*r37039,r37319,r37324,r37361 sqldb: German translations (zeljko added 37039,37319,37324 because of conflicts)<br />
*r37362 educationlaz: German translations<br />
*r37363 ide: German translations<br />
*r37372 lcl: don't access Items of TreeView if DragOver happens during treeview destruction<br />
*r37373 IDE: debugger options: check the resolved file, bug 22086<br />
*r37374 Qt: bypass windowmanager when showing dragimagelist.<br />
*r37375 Gtk2: do not show taskbar entry for dragimagelist.<br />
*r37376 IDE: update TUnitInfo.ResourceBaseClass on loading lfm<br />
*r37378 [Edited, includes selected lines of 37402] SourceEditor: Hide hint, when mouse moves (even if outside IDE, or IDE is not active). Issue [[http://bugs.freepascal.org/view.php?id=0022016 0022016]]<br />
*r37368 DBG: Fixed array len for 64 bit<br />
*r37369 lcl: don't crash when either DragTarget or dragged control is freed (issue [[http://bugs.freepascal.org/view.php?id=22067 22067]])<br />
*r37370 lcl: cleanup debug info<br />
*r37371 lcl: fixed a memory leak when canceling drag of dead control<br />
*r37380 SourceEdit/DBG: Ensure Codebuffer is updated before using it to add watches<br />
*r37383 IDE: TUnitInfo.fModified: do not set on get<br />
*r37384,r37401 IDE: do not set TUnitInfo.Modified when committing source editor to codetools<br />
*r37388,r37389,r37390,r37391,r37392 tests: added tests for cfgscripts, fixed unit output directory, cfgscript: fixed error message if semicolon is missing, IDE: added conditionals functions GetIDEValue, GetEnv, LCL: use IDE widgettype as default<br />
*r37397 TodoList: properly trim comment markers and convert multiline text to single line, fixes bug 22085. Based on patch by Anton.<br />
*r37400 codetools: fixed mem leak<br />
*r37418: TAChart: Fix range check using datapoint tool on a chart without series<br />
*r37440 DBG: do not set temporary stack = -1 in thread changing. This may cause errors<br />
*r37444 DBG: Watches, save "Use instance class" to config<br />
*r37449 LCL: fixed comments<br />
*r37451 Qt: fixed wrong SetCapture() under win32. Problem was passed TQtWidget handle instead of underlaying widget winID() which is native handle.<br />
*r37453 SynEdit: Fix goto bookmark and persistent block. Do not clear persistent block<br />
*r37461 lcl: TCustomForm.UpdateDockCaption: fixed repair garbage<br />
*r37463 IDE: when docked keep IDE caption<br />
*r37464 Help, DBG: New link to wiki for watch properties<br />
*r37475 codetools: TCustomCodeTool.FindLineEndOrCodeAfterPosition: fixed crash when at end of code<br />
*r37476 codetools: clear nodes behind, when linkscanner parsed only parts<br />
*r37481 IDE: fixed storing old LCLWidgeType, bug 22174<br />
*r37482 codetools: save parse error of operator, do not save errors outside parser, fixed parsing method name with generic parameter<br />
*r37483 codetools: allow keywords in program name<br />
*r37534 Qt: do not call setValue() but setPosition() so lcl gets accurate values later. issue [[http://bugs.freepascal.org/view.php?id=22187 22187]]<br />
*r37491 Help, DBG: Link to wiki for breakpoint properties (zeljko - 37312 is merged too, because of conflicts)<br />
*r37470 IDE, DBG: debug-eval hint, do not show, if selection exceeds one statement (e,g whole file selected). Part of issue [[http://bugs.freepascal.org/view.php?id=0022081 0022081]]<br />
*r37471 SourceEditor: Fix an issue with focusing an editor, that is being closed (while debugging) "no parent handle". Issue [[http://bugs.freepascal.org/view.php?id=0022015 0022015]]<br />
*r37517 SynEdit: fixed folding for "case" and "try" in certain code segments (initialization / case...else try)<br />
*r37518 SynEdit: Pas-HL: fix detection of case...else versus if...then...else<br />
*r37522 SynEdit: Pas-HL: better detection of case...else<br />
*r37623 SourceEditor: Fix (Work-around) an issue with focusing an editor, that is being closed (while debugging) "no parent handle". Issue [[http://bugs.freepascal.org/view.php?id=0022015 0022015]] // Required some parts of r37502<br />
*r37609 DBG: Avoid re-queuing of dis-assembler requests, after cancelling it. Part of issue [[http://bugs.freepascal.org/view.php?id=0022230 0022230]]<br />
*r37643 DBG: Disassembler: prevent disassembler from doing large address ranges, if gdb returns data with far away addresses. Issue [[http://bugs.freepascal.org/view.php?id=0022230 0022230]]<br />
*r37657 DBG: fixed a out of index error, in watches history<br />
*r37694 DBG: Fixed possible crash in watch evaluation (WatchValue freed while evaluating / in GetValue)<br />
*r37466 IDE: added menu item to insert MIT license text<br />
*r37407,r37474,r37492 IDE: TMainIDE.DoSourceEditorCommand: improved focus check, requires r37466<br />
*r37564 LCL: TCustomListView: reset FCacheIndex and FCacheItems before sorting list, otherwise we'll have unexpected results. issue [[http://bugs.freepascal.org/view.php?id=22218 22218]]<br />
*r37505, r37509, r37516, r37523 fixed compilation with fpc 2.7.1<br />
*r37592 lcl: fixed compilation fpc 2.7.1<br />
*r37525 TAChart: Display legend symbols even if the text is empty<br />
*r37565 TAChart: Display major axis marks at the edges of the clip range<br />
*r37576 TAChart: Fix infinite recursion when drawing chart listbox from series with Legend.Multiplicity <> lmSingle<br />
*r37588 TAChart: Include Item.Y in reordered list of TCalculatedChartSource. Update test. '''This will break old tests. Please contact me for a fix --- Ask'''<br />
*r37727 TAChart: Update to the recent version of FPVectorial<br />
*r37587 Qt: unset icon when doing internal sync after sorting. part of issue [[http://bugs.freepascal.org/view.php?id=22218 22218]]<br />
*r37620 LCL: invalidate parent preferredsize when borderspacing changed, bug 17947<br />
*r37621 LCL: clean up - invalidate in TControl.DoBorderSpacingChange no longer needed with new autosizing<br />
*r37622 lazutils: added missing file<br />
*r37624 LCL: GetClientRect: if interface has the right width,height trust the clientrect, this avoids some unneeded resizes<br />
*r37573 IDE: project inspector: add files: allow dotted unit names, bug 22209<br />
*r37619 IDE: open package dependency: try provides, issue [[http://bugs.freepascal.org/view.php?id=17960 17960]]<br />
*r37628 IDE: compiler options: disable target platform for packages<br />
*r37594 codetools: fixed Unneeded extra space in event assignment completion<br />
*r37613 codetools: property completion: add class var for class property variables<br />
*r37614 codetools: class completion: search variables in all sections, bug 22246<br />
*r37625,r37626,r37627 codetools: class completion: fixed searching var node when first is class var<br />
*r37629 codetools: fixed adding class keyword for property setter of a class property<br />
*r37630 IDE: codeexplorer: labels<br />
*r37634 IDEIntf: objectinspector: fixed painting outside paint event<br />
*r37631 codetools: no var node for anonymous record case variables<br />
*r37632 codetools: identifier completion: when creating an override hide higher visibility members<br />
*r37633 codetools: class completion: add static method modifier for setter of class property<br />
*r37636 codetools: class completion: add static method specifier for class property setter<br />
*r37635 IDE: paste component: fix renamed references<br />
*r37637,r37638,r37639 IDE: paste multiple components: fix references, lcl: LRSObjectTextToBinary: write convert list of components<br />
*r37640 IDE: paste components: update TControl.Caption<br />
*r37642 lcl: fixed LRSObjectTextToBinary toWString, issue [[http://bugs.freepascal.org/view.php?id=19650 19650]]<br />
*r37644 codetools: fixed inserting proc bodies in implementation in front of methods<br />
*r37652,r37653,r37655 codetools: using TFileStreamUTF8<br />
*r37656 IDE: using TFileStreamUTF8 and TStringListUTF8<br />
*r37663 IDE: fixed show info on --help when no stdout exists<br />
*r37689 LCL: fixing handling of special keys for TCustomEdit and TCustomMemo<br />
*r37690 codetools: forward proc completion: stay in same section<br />
*r37697 DBG: Dialogs, don't give help related commands to IDE. They will be ignored<br />
*r37698 IDE Help: add urls for dbg dialogs<br />
*r37703 lazutils: utf8pos: added optional parameter StartPos<br />
*r37704 IDE: setup dialog: show fpc source directory release version as warning instead of error<br />
*r37707 tools create deb+rpm: use 128x128 icon<br />
*r37705 SynEdit: open and close clipboard explicitly to write multiple formats.<br />
*r37714 lcl: gtk2: warn only once about liboverlay<br />
*r37711 lhelp: cleaned up paths<br />
*r37712 lhelp: clean up<br />
*r37713 lhelp: resolve macros in HelpEXE on the demand<br />
*r37715 chmhelp: using search path to search for chm files<br />
*r37716,r37717 chmhelp: added path $(LazarusDir)/docs/chm<br />
*r37718 'hmhelp: search ref.chm in docs/chm<br />
*r37726 create_lazarus_deb: added option chmhelp<br />
*r37722 DBG: Event-Log: Do not cache Options. Allow user to change options while debugging<br />
*r37596 Patch from {{MantisLink|0022231}} "fix warnings with fpc 2.6.1".--[[User:AlexVinS|AlexVinS]] 21:40, 8 June 2012 (UTC)<br />
*r37745 deb+rpm: default environmentoptions: updated to 107, removed default gdb entry<br />
*r37748,r37755 lhelp: added makefile<br />
*r37749 make bigide: build lhelp<br />
*r37753 IDE: fixed comparing file names case insensitive<br />
*r37754 lazutils: inlined UTF8CompareStr<br />
*r37760 Use Utf8CompareText instead of AnsiCompare<br />
*r37762 linux: added encoding to desktop file<br />
*r37769 Use Utf8CompareText instead of AnsiCompare<br />
*r37770 TAChart: Fix AV when clearing Series.Styles and TColorMapSeries.ColorSource properties<br />
*r37772 Use Utf8CompareText instead of AnsiCompare<br />
*r36804 win32: mark client rect as required update before WM_SIZE passing, remove DoAdjustClientRectChange - they are called inside WM_SIZE handler after the client rect is updated (fixes bug [[http://bugs.freepascal.org/view.php?id=0021724 0021724]])<br />
**Paul remarked about r36804: "Please don't merge it for at least 2 weeks". Also seems to cause problems in grids, see [http://bugs.freepascal.org/view.php?id=21790 issue [[http://bugs.freepascal.org/view.php?id=21790 21790]]].<br />
*r36993: LCL, fixed Problems setting Width, Height for TCustomGrid if ScrollBars is auto, from cobines, issue [[http://bugs.freepascal.org/view.php?id=21790 21790]]. If r36804 is merged, please merge also r36993<br />
*r37783 startlazarus: linux: adding LIBOVERLAY_SCROLLBAR=0 to avoid problems with mouse capturing<br />
*r37785 gtk2 intf: disable liboverlay by default<br />
*r37790 gtk2 intf: use setenv only on Linux<br />
*r37795: export tgz: added option to add chm files<br />
*r37796 IDE: when copying secondary configs create the primary config directory first<br />
*r37797 rpm: added option chmhelp<br />
*r37810 rpm: fixed building without chmhelp<br />
*r37811 lhelp: fixed invalid recent item path in config, added build modes default,debug<br />
*r37814 chmhelp: clean up old ipc files to prevent IDE hang<br />
*r37817-r37821 MAKE DEB<br />
*r37838 DBG: Fix handling console input<br />
*r37824 chmhelp: Fixed lazarus hanging when chmhelp pipe is leftover from an improperly closed lhelp<br />
*r37825 chmhelp; Fixed chmhelp typo (boolean error)<br />
*r37826 chmhelp: fixed bug where a new lhelp process could be started each time F1 was pressed<br />
*r37841 DBG: Pseudo-Terminal, accept tabs<br />
*r37848 lazutils: docs: fixed encoding and package name<br />
*r37849 lcl: docs: fixed encoding<br />
*r37850 ide: docs: fixed encoding<br />
*r37851 updated docs<br />
*r37853 lcl: docs: fixed some links<br />
*r37852 build_lcl_docs: using UTF-8 file functions, added option -h<br />
*r37855 build_lcl_docs: showcmd: show working directory<br />
*r37861 lcl: check if ListDataset is loading to update lookup info. Issue [[http://bugs.freepascal.org/view.php?id=22337 22337]]<br />
*r37846 win32: let TComboBox.CloseUp fire before Change (delphi compatible). Fix 22352<br />
*r37880 IDE+startlazarus: use same working directory, needed for passing relative file names as command line parameters, fixed building lcl+lazutils chm on ubuntu 12<br />
*r37866 lazutils: fixed unit names<br />
*r37868 lazutils: added fpdoc files<br />
*r37869 docs: building lazutils+lcl chm<br />
*r37885 DBG: fixed parsing sets for debug-inspector<br />
*r37906 IDE-Options / SynEdit: Fixed RightEdge visibility (Recression)<br />
*r37919 DBG: Prevent potential crash/memory-corruption in Watches<br />
*r37920 DBG: Prevent potential crash in (dbg-)OnIdle handling<br />
*r37921 DBG: Prevent build up of no longer needed commands in queue<br />
*r37945 DBG: Prevent a crash, when the selected snapshot is deleted. Cas also happen when starting the debugger, while a snapshot from previous run is active<br />
*r37950 DBG: fixed endless loop in watch eval (auto type cast) Issue [[http://bugs.freepascal.org/view.php?id=0022425 0022425]]<br />
*r37961 DBG: Disable rangechecks for certain PtrUInt casts<br />
*r37993 carbon: fixed crash of IDE when compiled with range checks on<br />
*r38006 gtk2: fixed crash on QuestionDlg<br />
*r38003 IDE: fixed showing custom project options, issue [[http://bugs.freepascal.org/view.php?id=22486 22486]]<br />
** merged ONLY main.pp<br />
*r38016 ToDoList: fixed encoding of French translation, it should be UTF-8, not ISO-8859-1. Patch by batyann811, bug 22489.<br />
*r37981,37983-37989,38001,38004-38005,38012,38017 Win Installer<br />
===== Fixed after RC1 =====<br />
*r38127 IDE, EditorOptions: Fixed finding color attribute in localized IDE<br />
*r38132 IDE: setup: after changing lazarusdir: fetch translations and translate<br />
*r38133 chmhelppkg: invoke lazbuild with --pcp parameter<br />
*r38138 examples: testall: fixed start<br />
*r38139 examples: cleandirs: error for fpc version<br />
*r38140 examples: componentstreaming: fixed typo, clean up<br />
*r38141 lazfreetype: fixed range check error, improved error message<br />
*r38142 examples: mssqlconn: requires fpc 2.6.1<br />
*r38144 examples: synguttermarks: win32 gui mode, fixed Left position<br />
*r38146 examples: tv_add_remove: updated<br />
*r38147 examples: xmlreader: added example xml<br />
*r38157 IDE: fixed saving ambiguousfileaction, bug 22573<br />
*r38158 examples: clean up<br />
*r38038 TAChart: Allow spaces in field names inside TDbChartSource.FieldY<br />
*r38168 synuni: clean up fpc options<br />
*r38170 synuni, semaphorgridlpk: clean up fpc options<br />
*r38022 SynEdit: Fixed drawing errors for frames (left frame site drawn at wrong offset)<br />
*r38145 LCL: TListView fixed "List index out of bounds" while deleting items. issue [[http://bugs.freepascal.org/view.php?id=22552 22552]]<br />
*r38150 SynEdit TSynMultiSyn: Fixed crash when deleting lines. Part of issue [[http://bugs.freepascal.org/view.php?id=0022519 0022519]]<br />
*r38151 SynEdit Highlighter: Fixed crash when scanning empty<br />
*r38152 SynEdit TSynMultiSyn: typo<br />
*r38175 SynEdit TSynMultiSyn: Fixed updating, when appending to EOT. Part of issue [[http://bugs.freepascal.org/view.php?id=0022519 0022519]]<br />
*r38205 lazaruside.fi.po: Finnish translations<br />
*r38180 Synedit: fix matching-bracket-highlight in comments (closing bracket at eol) issue [[http://bugs.freepascal.org/view.php?id=22586 22586]]<br />
*r38198 IDE: Export to html, do not enforce check for writeable. Issue [[http://bugs.freepascal.org/view.php?id=22588 22588]]<br />
*r38199 lazutils: do not use winodws W functions under Win98, issue [[http://bugs.freepascal.org/view.php?id=22596 22596]]; '''Breaks compilation on wince, because win32platform is not defined.'''<br />
*r38202 openglcontrol: win32: fixed sharing context<br />
*r38204 Synedit: fixed typo in IFDEF for fpc 2.60 bug<br />
*r38225 TAChart: Fix division by zero in zoom tools with extreme zoom ratios<br />
*r38226 TAChart: Fix hang in functional series with extreme zoom ratios<br />
*r38223 SynEdit TSynMultiSyn: Several fixes issue [[http://bugs.freepascal.org/view.php?id=0022519 0022519]]<br />
*r38232 TAChart: Add InRangeUlps utility function<br />
*r38233 TAChart: Fix disappearance of axis marks located exactly at chart bounds<br />
*r38234 TAChart: Fix crash when setting Marks.LabelFont from the Object Inspector<br />
*r38237 Examples/SynEdit: Readme and typo in comment<br />
*r38266 IDE: Tweak the layout of ManageExamplesForm<br />
*r38260 TAChart: Use correct notification when the series' source changes<br />
*r38261 TAChart: Issue change notifications when modifying TListChartSource.DataPoint property<br />
*r38285 lhelp: replace MessageBox, with Form.Modal. FIx IPC hang. issue [[http://bugs.freepascal.org/view.php?id=0022592 0022592]]<br />
<br />
===== Fixed after RC2 =====<br />
*r38293 windows installers: don't ask to overwrite the environment options in the secundary config directory from Reinier Olislagers<br />
*r38339 SynEdit TSynMultiSyn: Fix CaseSensitivity for Sheme marker. Issue [[http://bugs.freepascal.org/view.php?id=0022693 0022693]]<br />
*r37386 Remove writeln() that looks like a residual debug message. Issue [[http://bugs.freepascal.org/view.php?id=0022544 0022544]]<br />
*r38385 Translations: removed unmaintained Portuguese translation, which was outdated copy of Brazilian Portuguese one<br />
<br />
== How to merge ==<br />
The lazarus developers have decided to use the native svn merge for this branch. Other branches used the svnmerge.py script to manage the revisions to be merged.<br />
<br />
* TODO: Maybe this information should be put in a separate page.<br />
<br />
[[SVN_Migration#Merge_with_plain_svn]]<br />
=== Using TortoiseSVN ===<br />
As noted in the link above using TortoiseSVN is more or less self explaining. <br />
<br />
* TODO: add some screen shots.<br />
<br />
When committing, in the recent messages a nice commit message is available.<br />
<br />
Tested with TortoiseSVN 1.7.6, SVN 1.7.4.<br />
<br />
=== Show list of revision that can be merged ===<br />
In the lazarus fixes_1_0 directory do:<br />
svn mergeinfo ^/trunk --show-revs eligible<br />
Or if you don't have a fixes directory checked out, you can pass the URL path of the fixes branch:<br />
svn mergeinfo ^/trunk http://svn.freepascal.org/svn/lazarus/branches/fixes_1_0 --show-revs eligible<br />
<br />
=== Show list of revision that have been merged ===<br />
In the lazarus fixes_1_0 directory do:<br />
svn mergeinfo ^/trunk --show-revs merged<br />
<br />
=== Merging revisions from trunk ===<br />
To merge one or more revisions from trunk, use the svn merge command. For example to merge revision 36506 and 36510 use:<br />
svn merge -c 36506,36510 ^/trunk<br />
<br />
To generate a commit log message, use:<br />
svn log ^/trunk -c 36506,36510 > svnmerge-commit-message.txt<br />
<br />
Edit svnmerge-commit-message.txt with your favorite text editor and add a first line like:<br />
Merged revision 36506,36510 from /trunk.<br />
<br />
Commit this with:<br />
svn commit -F svnmerge-commit-message.txt<br />
<br />
=== Blocking a revision to be merged ===<br />
Sometimes you want to block a revision to be merged, i.e. you want to make sure that this revision is never merged to the fixes branch, for example, because it contains a new feature or it contains a version number change not applicable to the fixes branch, but only to trunk. To block revision 36507, use:<br />
svn merge -c 36507 --record-only ^/trunk<br />
Then you can create a log message with:<br />
svn log ^/trunk -c 36507 > svnmerge-commit-message.txt<br />
Edit svnmerge-commit-message.txt with your favorite text editor and add first line like:<br />
Blocked revision 36507 from /trunk<br />
Then commit this change:<br />
svn commit -F svnmerge-commit-message.txt</div>
Paul Ishenin
https://wiki.freepascal.org/index.php?title=Lazarus_1.0_fixes_branch&diff=62007
Lazarus 1.0 fixes branch
2012-09-25T03:36:24Z
<p>Paul Ishenin: /* Merged revisions for 1.0.2 */</p>
<hr />
<div>This page contains the revisions to be merged from trunk to the [http://svn.freepascal.org/svn/lazarus/branches/fixes_1_0/ Lazarus 1.0 fixes] branch.<br><br />
Release notes can be found here [http://wiki.lazarus.freepascal.org/Lazarus_0.99.0_release_notes Release notes]<br />
<br />
== Fixes for 1.0.2 ==<br />
=== Merge requests ===<br />
==== Submitted by developer / committer ====<br />
<br />
*r38673 TAChart: Ignore NaNs while calculating TCustomChartSource.ValuesTotal<br />
*r38675 TAChart: Support Marks.Attachment = maCenter in pie series<br />
*r38697,38698 Gtk2: set TToggleBox.ParentColor default false so it's color is consistent with TButton when eg.parent color is clRed and TToggleBox.Color=clDefault.<br />
*r38694: TAChart: Fix update of TListChartSource.ValuesTotal cache when adding or removing NaNs<br />
*r38709: Qt: improved triggering of OnClick() in QEventShowToParent. issue [[http://bugs.freepascal.org/view.php?id=22872 22872]]<br />
*r38710: TAChart: Fix crash when using TChartExtentLink with LinkedChart.Chart = nil<br />
*r38712: TAChart: Fix crash while replacing linked chart in TChartExtentLink<br />
*r38713: TAChart: Use NumberOr function instead of checking for NaN explicitly<br />
*r38719: TAChart: Extract TDrawFuncHelper.ForEachPoint helper procedure ''This also fixes a hang while using data point tool on extremely zoomed-in series''<br />
*r38729: TAChart: Extract TDrawFuncHelper.XRange helper function. + Fix GetNearestPoint for rotated function series.<br />
*r38733: TAChart: Fix TChartSeries.SetColor to notify all listeners and require ListSource. Add TListChartSource.SetColor<br />
*r38735: TAChart: Fix memory leak in TDbChartSource.BeforeDraw<br />
*r38737: TAChart: Fix drawing of pie series with data from the db source<br />
*r38754: TAChart: Fix hang when changing TLineSeries.ShowPoints while drawing chart<br />
*r38757: TAChart: Display crosshair tool on mouse down<br />
*r38762: Gtk2: when style is drawing button then use style from button. issue #22901<br />
*r38779: TAChart: Do not notify from TListChartSource.SetXValue and SetYValue if the value did not actually change.<br />
*r38780: TAChart: Add TBasicPointSeries.MovePoint overload for graph coordinates ''not a fix, but required for r38788''<br />
*r38788: TAChart: Support axis transformations in TCustomChartSeries.MovePoint<br />
*r38792: TAChart: Fix crash on deleting subcomponent with active property editor<br />
*r38799: gtk2: implement SPI_GETWHEELSCROLLLINES. Fix a regression in VirtualTreeView wheel scroll<br />
*r38802: lcl:revert 33020, 33082, 33086, part of 33089 and 33389. These changes made the hint behavior Delphi incompatible thus leading to a regression in third party control like VirtualTreeView that handles hints in CMHintShow. Retrieve parent hint recursively if hintcontrol.hint is empty' (delphi compatible)<br />
*r38816 LazUtils: improve unicode path/filename handling by Fileutil.ReadFileToString, patch from Takeda Matsuki, bug 22953<br />
<br />
==== Submitted by others ====<br />
<br />
=== Merged revisions for 1.0.2 ===<br />
*r37217,37218,37225,37239,37241,37293,37304,37316 Qt: fixed keys handling (arrow keys & enter).<br />
*r38396 LCL: ColorBox - keep FSelected in sync all the time. fixes issue [[http://bugs.freepascal.org/view.php?id=22729 22729]]<br />
*r38426 CodeBrowser: check for virtual units. Issue [[http://bugs.freepascal.org/view.php?id=0022740 0022740]]<br />
*r38428 SynEdit, MultiHighlighter: fix adding text/sections at EOL. issue [[http://bugs.freepascal.org/view.php?id=0022745 0022745]]<br />
*r38430 TAChart: Fix out-of-bounds access when drawing empty polygons and polylines<br />
*r38437 ide: project target: apply default extension even if the file has already an extension, issue [[http://bugs.freepascal.org/view.php?id=22750 22750]]<br />
*r38444 IDE: fixed crash when releasing non existing component palette select button<br />
*r38473 tests: fixed compilation<br />
*r38464 TAChart: Fix error message in TFPCanvasDrawer.RadialPie<br />
*r38486 avglvltree: setcompare: set when count=0<br />
*r38503 TAChart: Copy BaseLength in TChartArrow.Assign<br />
*r38507 EditorOpts: default for top-info-hint<br />
*r38509 Debugger: Ensure Queue is not blocked by LineInfo Request. (If a LineInfoRequest was queued the DebuggerCurrentLine could not search the stack, as commands were not immediately run)<br />
*r38519 Gtk2: fixed crash with TListView when viewstyle is vsIcon or vsSmallIcon. issue [[http://bugs.freepascal.org/view.php?id=22778 22778]]<br />
*r38520 Qt: do not propagate keyrelease event as action trigger. issue [[http://bugs.freepascal.org/view.php?id=22737 22737]]<br />
*r38531 Debugger: Workaround to fix exe-line-indicators (blue dots) at debug start<br />
*r38533 Qt: fixed header offset and getClientRect for TListView when ViewStyle=vsReport.<br />
*r38547 TAChart: Support Y NaNs in polar series ''(this will cause compilation error -- please remove 'and CloseCircle' part from the last conditional in the TPolarSeries.Draw procedure)''<br />
*r38557 TAChart: Support brush style, pen style and pen width in fpvectorial drawer<br />
*r38571 TAChart: Draw chart correctly after decrease of an axis margin<br />
*r38529,r38530,r38535,r38543,r38548: fix carbon clipping, correctly return region types on HRGN related operations, fix generic IntersectClipRect routine<br />
*r38640,r38641,r38642,r38649: various ExtTextOut fixes for Carbon and Cocoa<br />
*r38551,r38552,r38562,r38563 Carbon: various winapi compatibility functions fixes<br />
*r38518 Qt: TQtWinApi.ExtTextOut() implemented Dx param. issue [[http://bugs.freepascal.org/view.php?id=22795 22795]] (zeljko will merge, need some testing)<br />
*r38572 Qt: propagate QEvent::ShortcutOverride to parent, so stop key event if shortcut is executed. issue [[http://bugs.freepascal.org/view.php?id=22827 22827]]<br />
*r38576,38577: Qt: fixed TQtWidgetSet.FrameRect(), now it uses passed brush to draw frame border.<br />
*r38610 Qt: fixed non ascii utf8 chars in TQtWidgetSet.ExtTextOut() when we use dx param. issue [[http://bugs.freepascal.org/view.php?id=22795 22795]] (depends on merging of r38518).<br />
*r38628,38629,38630,38634: Qt: fixed clipping bugs inside TQtWidgetSet.ExtTextOut()<br />
*38670 SynEdit: Fixed past eol paint error ** Must be ported by hand **<br />
*r38584 TAChart: Copy Attachment and YIndex in TGenericChartMarks.Assign ''(this code is in TATypes unit in v1.0)''<br />
*r38589 TAChart: Do not draw lines which should be invisible in OpenGL drawer<br />
*r38607 TAChart: Workaround for issue [[http://bugs.freepascal.org/view.php?id=22850 22850]] '''see patch in the mailing list'''<br />
*r38617 TAChart: Fix GetNearestPoint returning true with no points found inside radius, issue [[http://bugs.freepascal.org/view.php?id=22854 22854]]<br />
*r38644: Qt: fixed menu flickering. issue [[http://bugs.freepascal.org/view.php?id=22872 22872]]<br />
*r38651: TAChart: Fix zero division when calling ImageToGraph before the chart is drawn<br />
*r38674 Qt: fixed crash when invalid or null handle is passed into SetCapture.<br />
*r38679 Qt: update bitmap if TMenuItem has associated ImageList and ImageIndex. issue [[http://bugs.freepascal.org/view.php?id=22896 22896]]<br />
*r38672 SynEdit: fixed delete-next-word, if caret past eol. Issue [[http://bugs.freepascal.org/view.php?id=0022890 0022890]]<br />
*r38720 LCL, DefaultTranslator: fix handling of non-ASCII path to .po file, bug 22907, patch by Vladimir Zhirov<br />
*r37398 IDE: corrected version info language list, added Ukrainian language, bug 22103<br />
*r38722 IDE: added Lithuanian to version info language list, bug 22898<br />
*r38671: carbon: fix accidental error in index<br />
*r38743: carbon: reimplement linear gradient draw using shading to support OS X < 10.5<br />
*r38636,r38637: Gtk2: fixed text clipping and text background drawing<br />
*r38758: gtk2: allocate GdkColor when we need a BkColor<br />
*r38727,r38728,r38742,r38744,r38745,r38748: gtk2: fix clipping and DC transformations<br />
*r38747: gtk2: fix FrameRect - it must use a passed brush instead of selected one<br />
<br />
== Fixes for 1.0 ==<br />
=== Merged revisions for 1.0.0 ===<br />
==== Submitted by developer / committer ====<br />
*r36506 LazReport, fix barcode dialog localization (Jesus)<br />
*r36508 Updated Japanese translation<br />
*r36509 Window Column, store pointer to resourcestring<br />
*r36510 LazReport, fix barcode addin when TfrBarCodeObject is not yet instantiated (in this case barcode editor defaults to memo view.<br />
*r36511 DividerBevel: implemented Transparent.<br />
*r36514 IDE: moved macros save/saveall to source editor<br />
*r36515 IDE: update macro descriptions after translating resource strings<br />
*r36516 IDE: trim TLazPackageGraph.GetFallbackOutputDir<br />
*r36517 IDE: check if package needs rebuild: switch to fall back directory: update compiler params<br />
*r36518 IDE: install/uninstall package dialog: fixed icons, added info about current state<br />
*r36523,r36530 IDE: Export as HTML<br />
*r36526 CodeTemplate: Improve final caret pos, if tmpl does not specify<br />
*r36527 CodeTemplate: allow tab to trigger / selection to ignore. issue [[http://bugs.freepascal.org/view.php?id=0017631 0017631]]<br />
*r36528 SynEdit: Template(Syncro) fix invalidation<br />
*r36529 IDE: Printing: break long lines. Issue [[http://bugs.freepascal.org/view.php?id=0013479 0013479]]; <br />
*r36547 IDE: Printing: break long lines. Fix Utf8. Update for rev 36529<br />
*r36531 LazReport: fixed buttonpanel localization in BarCode editor dialog<br />
*r36533 IDE: clean up of unused resourcestrings<br />
*r36534, r36536, r36553, r36583, r36646 regenerated translations; updated Russian translation<br />
*r36535 IDE: more clean up of unused resourcestrings<br />
*r36537 Documents LCLIntf.GetDeviceCaps<br />
*r36538 IDE: always store lazarus directory<br />
*r36539 LazReport: uppercase variable before comparing with hardcoded functions. Properly fix to 21624<br />
*r36543 IDE: setup dialog: using same file resolving as IDE<br />
*r36546 IDE: consider empty lazarusdirectory as pcp, empty fpcsrcdir as lazdir, empty testdir as lazdir<br />
*r36548 IDE: fixed note about wrong laz dir<br />
*r36549 IDE: fixed crash on find identifier references<br />
*r36551 IDE: translate descriptions of all macros<br />
*r36552 IDE: fixed editor tab position combobox items localization on Editor/Misc options page<br />
*r36556,r36557 IDE: warn if upgrading configs<br />
*r36561, 36562, 36563, 36566: Improve Options/Keymap<br />
*r36565 LCL: Prevent TShape.stRectangle disappearing with certain Height/Width and Pen.Width values.<br />
*r36567,r36568,r36569 IDE: show downgrade warning<br />
*r36570 lazbuild: select IDE build mode, fixed compiling with different mode<br />
*r36572 LCL: set csCaptureMouse on TToolButton, but don't send click if mouse is out of ttoolbutton on mouseup.issues [[http://bugs.freepascal.org/view.php?id=19688 19688]],[[http://bugs.freepascal.org/view.php?id=21560 21560]]<br />
*r36574 IDE: fixed saving environment on every change<br />
*r36577 LCL, TreeView: fix GetNextVisible, GetPrevVisible. Issue [[http://bugs.freepascal.org/view.php?id=21264 21264]]<br />
*r36575 IDE/Setup dialog: force taskbar button to be shown<br />
*r36584 IDE: import package list: opendialog<br />
*r36587 IDE: intial setup: fpc src dir: lazdir/fpc/fpcver/source<br />
*r36588 IDE: intial setup: fixed if no candidates found<br />
*r36589,r36590 IDE: compiler file name: search first with macros<br />
*r36591 IDE: verbose search for candidates<br />
*r36592 IDE: search fpc src relative to fpc.exe<br />
*r36594 IDE: check compiler: only run common names<br />
*r36595,r36599 IDE: use under windows as default for make the make.exe in the compiler directory<br />
*r36596 IDE,codetools: fixed ppccross,crossppc to ppcross<br />
*r36601 IDE: unify the 2 filters in KeyMapping window. Prevent a potential crash.<br />
*r36603 debian: updated patches to latest source in lazarus svn<br />
*r36608 Gtk2: do not set widget name, it's completelly unnecessary and produce unexpected behaviour if some keywords are in widget name.issue [[http://bugs.freepascal.org/view.php?id=21661 21661]].<br />
*r36613 SynEdit: Fix an issue with Scrollbars not being updated<br />
*r36617 lazbuild: build ide: replace exe on windows<br />
*r36644 IDE: improved 'Export package list' dialog localization<br />
*r36645 IDE: improved 'Package Graph Explorer' dialog localization<br />
*r36647,r36653,r36654,r36655,r36656,36668,36673 IDE: view / IDE internal / what needs building<br />
*r36648,r36650,r36651 IDE: read state file created by Makefile: fix path delimiters, checking compiled state: ignore -v,-i,-B flags, do not skip all -F<br />
*r36652 IDE: codetools options: shorter caption<br />
*r36658 regenerated translations; updated Russian translation <br />
*r36659 LCL: Refactoring. Make TCalculatorDialog.Execute more understandable by removing a "with" block.<br />
*r36661 LCL: Prevent "Test Dialog" feature of Calculator and Calendar dialogs locking the IDE, issue [[http://bugs.freepascal.org/view.php?id=21644 21644]]<br />
*r36616 SynEdit: do not include IME for WinCe<br />
*r36662 LCL: implementation of TCustomImageList.GetIcon()<br />
*r36663 In GUI strings, unify all 3 dots to have a space before them ( ...)<br />
*r36664 IDE: Use CreateAbsolutePath when switching between relative/absolute paths in AddFile dialogs (CreateAbsoluteSearchPath gives wrong output)<br />
*r36665 LCL: publish TUpDown.OnChangingEx<br />
*r36666 IDE etc.: unify 3 dots in GUI string to have a space ( ...).<br />
*r36667 translation: german: updates from Swen Heinig<br />
*r36669 updatemakefiles: write which lpk have conditionals<br />
*r36670,r36671 IDE,lazbuild: create makefile: use CPPROG instead of COPY to get the current date for Makefile.compiled under Windows<br />
*r36649,r36657,r36602,r36672,r36675,r36677,r36679,r36683,r36701,r36708,r36709 Makefiles: updated, reduced dependencies, fixed double compiles<br />
*r36676 LCL: Implement TListItem.EditCaption, issue [[http://bugs.freepascal.org/view.php?id=20295 20295]].<br />
*r36680,r36699 lazbuild: fixed crash, replaced some MessageDlg with IDEMessageDialog<br />
*r36681 IDE,lazbuild: use parsed compiler filename, make filename<br />
*r36682 IDE: debugfilename, debugsearchpath: use same function as other env vars to resolve macros, trim and find<br />
*r36686,r36688 IDE/lazbuild backup, delete the same lazarus exe on all platforms<br />
*r36694 regenerated translations; updated Russian translation<br />
*r36695 LazDataDesktop: regenerated translations; updated Russian translation<br />
*r36696 IDE: add resource strings for various windows manifest keys<br />
*r36697 fix ImageList.AddMasked() in case of source image has no mask description<br />
*r36702 IDE: TProject.TitleIsDefault: check for project+number, fix for renaming the title of a new project<br />
*r36711 Qt: enable wordwrap on TQtStaticText. issue [[http://bugs.freepascal.org/view.php?id=21697 21697]].<br />
*r36712 LCL: fixed function result<br />
*r36713,r36715 lcl: fixed TToolButton.MouseUp X,Y in boundsrect check<br />
*r36716 LCL, combination of modal form + wsMaximized style produces tiny windows on GTK2, issue [[http://bugs.freepascal.org/view.php?id=21634 21634]]<br />
*r36717 LCL: reverted changes to menus.pp from r36666 (by Paul's request)<br />
*r36718 LCL: regenerated translations<br />
*r36719, *r36826 LCL: fix range check error<br />
*r36720 LazReport: added option to ignore undefined symbols, from Luiz Americo, issue [[http://bugs.freepascal.org/view.php?id=21683 21683]]<br />
*r36723,36724 IDE,lazbuild: fixed repeated build project clean: save project state file before compiling too<br />
*r36727 lazbuild: fixed expanding --lazarusdir<br />
*r36728 make useride: pass --lazarusdir=.<br />
*r36729 Improve TStringHashList, prevents a PO file update crash. Issue [[http://bugs.freepascal.org/view.php?id=21685 21685]]<br />
*r36730 IDE: project wizard: fixed fixed size, bug 21714<br />
*r36731 lazreport: fix possible access violation by checking dataset for nil<br />
*r36732 win32: fix range check error<br />
*r36733 lazbuild: auto create ide/revision.inc if missing<br />
*r36734 Gtk2: fixed mouse capturing on native scrolling win controls (TListBox,TListView etc).issue [[http://bugs.freepascal.org/view.php?id=21713 21713]]<br />
*r36735 LCL: TToolButton: commented debugln().<br />
*r36740 lazbuild: fixed uninitialized function result, fixed checking if init failed, quick check if lazarusdir is valid.<br />
*r36741 lazutils: Patch with font collection support from Circular<br />
*r36744 examples: Adds a OpenURL/OpenDocument test<br />
*r36745 LCL: Adds the sysenvapis include files to the lpk and adds an extra safety in OpenURL for users which forget to encode spaces in filenames<br />
*r36746 IDE: fixed fixed size dialogs<br />
*r36747 IDE: sort selection: layout<br />
*r36748 IDE: added debugging for sort selection<br />
*r36749 gtk2: clean up<br />
*r36750 IDE: less debugging<br />
*r36751 IDE: jump to next/prev error: fixed direction<br />
*r36752 LCL: TTreeView: clean up<br />
*r36753 IDE: next/prev error: clear multi selection<br />
*r36754 lcl: move interface initialization of TCustomEdit from CreateWnd to InitializeWnd. Consistent with other controls and allows interfaces to check is handle is being created<br />
*r36755 IDE: Add acceleration keys and fix tab order in Project Wizard and ImageListEditor, issue [[http://bugs.freepascal.org/view.php?id=21718 21718]]<br />
*r36756 lcl: remove TCustomListBox.Loaded. ItemIndex is initialized in InitializeWnd<br />
*r36757 lcl: call inherited after setting FLines in TCustomMemo.InitializeWnd. Fix potential crash since widgetset code expect FLines be initialized <br />
*r36758 lcl: check for csDestroyingHandle in TControl.HandleObjectShouldBeVisible. Fix issue [[http://bugs.freepascal.org/view.php?id=19882 19882]]<br />
*r36759 lcl: revert 31890 since issue [[http://bugs.freepascal.org/view.php?id=19882 19882]] is properly fixed now<br />
*r36760 gtk2: less hints<br />
*r36761 gtk2: less hints<br />
*r36762 Carbon: fixed result of TWSCarbonCustomListView GetTopItem,GetViewOrigin and GetBoundingRect. issue [[http://bugs.freepascal.org/view.php?id=21733 21733]]<br />
*r36763 Carbon: added themed TComboBox drawing.Patch by David Jenkins. issue [[http://bugs.freepascal.org/view.php?id=21747 21747]]<br />
*r36764 Carbon: added themed TComboBox drawing.Patch by David Jenkins. issue [[http://bugs.freepascal.org/view.php?id=21747 21747]]<br />
*r36765 Docs: added David Jenkins to contributors list<br />
*r36766 Carbon: make carbon widget visibility in sync with lcl. Patch by David Jenkins. issue [[http://bugs.freepascal.org/view.php?id=21731 21731]]<br />
*r36767 lcl: remove Destroying and DestroyWnd calls from TCustomListBox.Destroy<br />
*r36768 lcl: cleanup TCustomListBox.Create<br />
*r36769 codetools: fixed skipping include files in skipped ifdef<br />
*r36770 gtk2: less hints<br />
*r36771 gtk2: less hints<br />
*r36772 ide: fix selection painting of debugger eventlog colors list<br />
*r36773 carbon: improved TCarbonWidgetSet.RawImage_XXXX routines.Patch by David Jenkins. issue [[http://bugs.freepascal.org/view.php?id=21743 21743]].<br />
*r36774 carbon: proper initialization of alpha channel.Patch by David Jenkins. issue [[http://bugs.freepascal.org/view.php?id=21753 21753]]<br />
*r36775 LCL: implement ClientToParent, ParentToClient based on patch of David Jenkins (issue [[http://bugs.freepascal.org/view.php?id=0021763 0021763]])<br />
*r36776 LCL: extend TThemeServices.IsDisabled, IsHot, IsPushed for teCombobox<br />
*r36777 IDE: Fix tab order and set shortcuts in Application Options frame.<br />
*r36778 LazControls: fix potential crash in TListFilterEdit and TTreeFilterEdit<br />
*r36779 GTK2: add TGtk2WidgetSet.SetDesigning to prevent Abstract method call in IDE. Issue [[http://bugs.freepascal.org/view.php?id=21773 21773]]<br />
*r36780 IDE: fix tab order in Project Save Options frame.<br />
*r36781 IDE: fix tab order in frames: Build Modes editor, Miscellaneous Options and Version Info<br />
*r36782 IDE: fix tab order in option frames: Code Generation, Compilation, Linking, Messages, Parsing.<br />
*r36783 GTK2: clean up<br />
*r36784 GTK2: clean up<br />
*r36786 Carbon: removed extra code for teComboBox, since teComboBox is supported by themes as of r36776.<br />
*r36787 gtk2: clean up<br />
*r36788 gtk2: fixed Gtk2WidgetSet.ClipboardGetData mem leak on stream write error<br />
*r36789 gtk2: removed OldCreateStatusBarPanel<br />
*r36790 gtk2: clean up<br />
*r36791 gtk2: clean up<br />
*r36794 IDE: CloseQueryIDEWindows: skip sub forms<br />
*r36795 Fix crash in dbg-console, if dbg not active. issue [[http://bugs.freepascal.org/view.php?id=21712 21712]]<br />
*r36796 SourceEdit: use softcenter for Replace prompt. Issue [[http://bugs.freepascal.org/view.php?id=0021709 0021709]]<br />
*r36797 regenerated translations; updated Russian translation<br />
*r36800 IDE: when checking if a FPC unit has changed: ignore units that have no source in the FPC sources. Needed to ignore user units reachable through fpc.cfg.<br />
*r36801 IDE: fix error message can't find unit if the ppu is in one of the loaded packages<br />
*r36803 DOCS: correct the documentation about CanFocus<br />
*r36806 LCL: clear FActiveDefaultControl on that control destruction<br />
*r36810 LCL: fix copy paste error<br />
*r36811 LCL: don't update Default, Cancel during their applying in UpdateDefaultCancel<br />
*r36812 LCL: add and ability to use own TListItems, TListItem descendants in TListView for delphi compatibility<br />
*r36821 gtk2 intf: fixed compilation FPC_FULLVERSION<20600<br />
*r36822 gtk2 intf: clean up<br />
*r36823 gtk2 intf: clean up<br />
*r36824 gtk2 intf: clean up<br />
*r36825 LCL: initialize font height with the height from DefFontData<br />
*r36852 IDE: when checking if global unit has changed, skip units in packages<br />
*r36857,36859 LCL: TControl.UpdateBaseBounds: set cfBaseBoundsValid<br />
*r36861 LCL: TCustomSplitter.SetAnchors: adapt anchors before applying<br />
*r36870 LCL: SetAlign: restore the basebounds set before changes<br />
*r36877 LCL: clean up<br />
*r36882 LCL: TControl.SetAnchors: during disabled autosize: update basebounds when changing Anchors, bug 21730<br />
*r36884 LCL: fixed sending CM_EXIT,CM_ENTER when flastfocusedcontrol was removed<br />
*r36885 LCL: constraint Width,Height to >=0<br />
*r36888 Converter: fixed 'Missing units' dialog localization, part of bug 21784<br />
*r36889,r36890 codetools: class completion: fixed gathr proc definitions<br />
*r36891 IDE: show compiling resource lines when error on compiling resources<br />
*r36892 IDE: improved message when can not find unit and unit was found in a package<br />
*r36893,r36894 IDE: messages: show debug: lines and calling resource compiler<br />
*r36895,r36896 gtk2 intf: checking for liboverlay, using value-changed instead of change-value<br />
*r36897 LCL: made TImage.DestRect public<br />
*r36899 Fix encoding errors in Japanese translation<br />
*r36900,r36901 startlazarus: fixed asking for custom or default<br />
*r36902 LCL: fixed ShowModal() when Hide() is called on modal form to be Delphi compatibile.issue [[http://bugs.freepascal.org/view.php?id=15390 15390]]<br />
*r36903 IDE: fixed read/write designinfo, bug 21804<br />
*r36904 IDE: do not save a new project where only session was modified, bug 21803<br />
*r36905 gtk2 intf: fixed TGtk2WSCustomTabControl.GetDefaultClientRect to check if gtknotebook has a page<br />
*r36906,36907 codetools: AddLocalVar: do not add hidden used unit<br />
*r36908 Qt: added TQtWidget.testAttribute() function.<br />
*r36910 DBG: Tests for environment<br />
*r36913 TAChart: Set Brush.Color before Brush.Style to work around issue [[http://bugs.freepascal.org/view.php?id=21806 21806]]<br />
*r36914: TAChart: Fix compilation of OpenGL drawer<br />
*r36924 gtk2 intf: TGtk2WSCustomTabControl.GetDefaultClientRect for TTabControl<br />
*r36925 Qt: fixed resize events of TQtTabWidget and accurate information about clientRect changes. issue [[http://bugs.freepascal.org/view.php?id=21805 21805]]<br />
*r36929 Gtk2: fixed text background drawing in TGtk2WidgetSet.ExtTextOut() when BkMode = OPAQUE.issue [[http://bugs.freepascal.org/view.php?id=19384 19384]]<br />
*r36941 Translations: Brazilian Portuguese translation update by Marcelo B Paula, bug 21818<br />
*r36938,36939 LazReport, lift up to preview window improving layout and functionality, from Julio Jimenez B.<br />
*r36942 LazReport, avoid hiding text at some zoom values due small differences in text height calc (DONT MERGE YET, NEEDS MORE TESTING)<br />
*r36943 IDE: msg quickfix for cant find unit: add position<br />
*r36956 carbon: added FHasPaint variable to TCarbonWidget to allow owner draw.issue [[http://bugs.freepascal.org/view.php?id=21744 21744]]<br />
*r36957 carbon: added ScrollRect() routine to TCarbonWidget. issue [[http://bugs.freepascal.org/view.php?id=21741 21741]]<br />
*r36958 carbon: set FTabIndex instead ATabIndex variable in TCarbonTabsControl.SetPageIndex. patch by David Jenkins.issue [[http://bugs.freepascal.org/view.php?id=21728 21728]]<br />
*r36959 carbon: optimized caret drawing to not update whole widget.patch by David Jenkins. issue [[http://bugs.freepascal.org/view.php?id=21768 21768]]<br />
*r36960 carbon: fixed order of check width > height in TCarbonTrackbar.patch by David Jenkins. issue [[http://bugs.freepascal.org/view.php?id=21740 21740]]<br />
*r36961 carbon: implemented autosizing for listview / databrowser columns.patch by David Jenkins. issue [[http://bugs.freepascal.org/view.php?id=21745 21745]]<br />
*r36962 carbon: fixed possible bad loop in TCarbonSpinEdit.CreateWidget.Patch by David Jenkins.issue [[http://bugs.freepascal.org/view.php?id=21732 21732]]<br />
*r36965 IDEIntf: fixed typo<br />
*r36967 Gtk2: fixed retreiving font name from TGtk2WidgetSet.GetObject() when font is default. issue [[http://bugs.freepascal.org/view.php?id=21828 21828]]<br />
*r36968 codetools: JumpToPublishedMethodBody: raise error<br />
*r36969 codetools: fixed FindMethodNodeInImplementation for program<br />
*r36971 tests: codetools: added test for duplicate sections, parsing library<br />
*r36972 codetools: fixed reparsing initialization, finalization, begin<br />
*r36973 codetools: fixed treating initialization, finalization as statement<br />
*r36974,r36975,r36976,36977,36978 codetools: fixed find declaration in library starting in initialization, bug 21832<br />
*r36981,r36982 codetools: identifier completion: fixed continue searching<br />
*r36979 Updated Japanese translation by Haruyuki Fujimaki<br />
*r36980 Fix japanese encoding<br />
*r36983,r36984 codetools: identifier completion: some keywords for library, program<br />
*r36985 codetools: identifier completion: keyword initialization for library, issue [[http://bugs.freepascal.org/view.php?id=21839 21839]]<br />
*r36986 Updated Japanese translation by Haruyuki Fujimaki<br />
*r36990 codetools: identifier list: skip identifier at cursor<br />
*r36991,r36992 IDE: identifier completion: add do after with, issue [[http://bugs.freepascal.org/view.php?id=16850 16850]]<br />
*r36996,r36997,r36999,r37013,r37014,r37015 runtests: fixed compilation, added some tests<br />
*r37012,r37011,r37009,r37008,r37007,r37006,r37005,r37004,r37003,r37002,r37000 carbon interface: clean up<br />
*r37020 IDE: recent/history lists: replaced case sensitive comparison with three types<br />
*r37021 docking: update modified flags<br />
*r37022 codetools: fixed uninitialized result<br />
*r37025 IDE: use unit dialog: check for syntax errors<br />
*r37026,r37027 DBG: Prepare for different line endings. / Accept different line endings (#10, #13, #10#13, #13#10) issue [[http://bugs.freepascal.org/view.php?id=0021834 0021834]].<br />
*r37029 Gtk2: fixed drawing of text with solid brush. issue [[http://bugs.freepascal.org/view.php?id=21863 21863]]<br />
*r37031 Gtk2: do not draw text background if colormap isn't assigned. Second part of issue [[http://bugs.freepascal.org/view.php?id=21863 21863]].<br />
*r37032 gtk2: clean up old mouse capture<br />
*r37033 gtk2: fixed releasecapture<br />
*r37034 gtk2: verbosity for ubuntu liboverlay mouse capture bug<br />
*r37038 sqldb: Enable mssqlconnection for fpc >= 2.6.1 (patch from Reinier Olilagers, bug 21867) - added because creates conflicts with later sqldb merges<br />
*r37040: TAChart: Workaround for TDbChartSource referring to the dataset with Filtered := true<br />
*r37043 LCL, fix TPostScriptPrinterCanvas.ClipRect is empty-rect until explicitly set by user, patch from Joachim Paepke, issue [[http://bugs.freepascal.org/view.php?id=21027 21027]]<br />
*r37051 Translations: Ukrainian translation update by Igor Paliychuk<br />
*r37052 regenerated translations; updated Russian translation<br />
*r37053 LCL: fixed compilation for fpc 2.7.1<br />
*r37054,37055,37057 set TDBLookup.FListLink.DataSource dynamically to FListSource or a local datasource. Issue [[http://bugs.freepascal.org/view.php?id=15410 15410]]<br />
*r37067 LCL: fixed visibility of implemented interfaces<br />
*r37069 simple deb: using make bigide, updated list of tools<br />
*r37070 openglcontrol: fixed mem leak, issue [[http://bugs.freepascal.org/view.php?id=21597 21597]]<br />
*r37071 codetools: identifier completion: unit name of self<br />
*r37076 gtk2: clean up<br />
*r37077 IDE: clean up<br />
*r37092 LCL: fixed compilation for fpc 2.7.1<br />
*r37093 DBG: Testcase: fixed reading env-options<br />
*r37095 SynEdit: fix crash in overview gutter creation. Issue [[http://bugs.freepascal.org/view.php?id=0021887 0021887]]<br />
*r37096 SynEdit: Do not offer OverviewGutter in Gutter-parts designer<br />
*r37101 lazreport: fixed compilation with fpc 2.7.1, new TBookMark<br />
*r37102 lazreport: clean up<br />
*r37112,r37113 SynEdit: highlight class "helper". Fix wrong highlight of "sealed" Issue [[http://bugs.freepascal.org/view.php?id=0021812 0021812]]<br />
*r37115 openglcontrol: fixed mem leak, issue [[http://bugs.freepascal.org/view.php?id=21597 21597]]<br />
*r37126 LCL: Publish some TCheckGroup properties.<br />
*r37129 gtk2: clean up<br />
*r37154,37247,37248 lcl-db: prevent lookup initialization when dataset is destroyed<br />
*r37155 LCL, use rectclip to set clipping rectangle instead of current path because it sometimes get drawn on next stroke (related to r37043)<br />
*r37157 Qt: fixed key events from QCalendar, now tabbing works fine.<br />
*r37160 LCL: published missing properties TCalendar.Hint and TCalendar.TabOrder.<br />
*r37167 LCL: Fix range check error in StringGrid when sorting and RowCount=FixedRows, issue [[http://bugs.freepascal.org/view.php?id=21947 21947]]<br />
*r37073 codetools: resolve expr: thisunitname.implementationenidentifier<br />
*r37078 codetools: find declaration: selfunit.implementationidentifier<br />
*r37079,r37080,r37081,r37082,r37083,r37087,r37089,r37098 codetools: getsmarthint: class variables, enum, array of, inheritance, property params and type, use unit<br />
*r37085 IDE: show compiler options: check compiler<br />
*r37086,37088 IDEIntf: removed TLazCompilerOptions.LCLWidgetType, fixed computing default LCLWidgetType on cross target OS<br />
*r37090 codetools: do not try to search in record ancestors<br />
*r37105 DBG: Watches Copy Name/Value to clipboard. Issue [[http://bugs.freepascal.org/view.php?id=0021860 0021860]]<br />
*r37106 DBG: Register Copy Name/Value to clipboard. Issue [[http://bugs.freepascal.org/view.php?id=0021860 0021860]]<br />
*r37107 DBG: Watches, added inspect/evaluate to popup<br />
*r37116 DBG: Fix a possible crash in debugger (history). Issue [[http://bugs.freepascal.org/view.php?id=0021901 0021901]]<br />
*r37195 SourceEdit: Do not access outdated tab-history entries (dangling pointers). Issue [[http://bugs.freepascal.org/view.php?id=0021939 0021939]]<br />
*r37196 SourceEdit: Only add tabs to tab-history that were accessed<br />
*r37103,r37132 codetools: nested types: Self and inherited<br />
*r37104,r37120 codetools: GetSmartHint: show anonymous arrays<br />
*r37111 IDE: Make Close button work in Components List dialog. Issue [[http://bugs.freepascal.org/view.php?id=21892 21892]],<br />
*r37118 IDE: build ide: if building fails, clear flag clean up once<br />
*r37119 IDE: when building IDE failed: restore backup<br />
*r37121,r37122 IDE: select frame: search in packages<br />
*r37130 IDE: select frame: search in packages<br />
*r37131 LCL, implements textrect clipping in Postscriptprintercanvas<br />
*r37133 SynEdit: Fix WantTabs / Change default to "True" Issue [[http://bugs.freepascal.org/view.php?id=0021904 0021904]]<br />
*r37134 SynEdit: Remove not required invalidation (paint / call to wrong Update() )<br />
*r37135 SynEdit: Remove wrong implementation of Update. Update no longer forwards to Invalidate<br />
*r37136 IpPro: Fix painting for SelectAll<br />
*r37137 IDE, IpPro: Allow copy to clipboard from hint (zeljko added because of conflict in 37345)<br />
*r37140 cody: show code node info: show complete source<br />
*r37141 SynEdit: Fixed Caret paint error (extra caret left on screen) Issue [[http://bugs.freepascal.org/view.php?id=0021924 0021924]]<br />
*r37143 IDEIntf: added TPropertyEditorHook.IsSelected<br />
*r37144 IDEIntf: TDefaultComponentEditor: always select component<br />
*r37146 IDE: if component class is missing: note about RegisterClass<br />
*r37148 Translations: Ukrainian translation cleanup<br />
*r37149 IDE: regenerated translations; updated Russian translation<br />
*r37151 cody: IDE item to create dockable IDE window<br />
*r37152 cody: new IDE window: show dialog to setup form name<br />
*r37162,r37163 IDE: TProjectFileDescriptor.DefaultResourceName: first try without appending a number, check for pascal keywords<br />
*r37164,r37165 IDE: fixed DoGetUnitRegisterInfo for virtual files<br />
*r37166 SynEdit: Fixed Caret when scrolling under older Wine (Win Emulator)[[http://bugs.freepascal.org/view.php?id=21929 21929]]<br />
*r37212 sqldb: added icon for TMySQL55Connection for fpc 2.6.1 '<br />
*r37213,r37214,r37219 codetools: do not save errors outside parser<br />
*r37215 codetools: GetSmartHint: ^, .., file of, class of<br />
*r37220 Translations: Czech IDE translation update by Martin Smat<br />
*r37224 SynEdit: Autocompletion, workaround for click on hint Issue [[http://bugs.freepascal.org/view.php?id=21952 21952]]<br />
*r37231 SynEdit: Prevent some scrolling, while selecting by mouse. Issue [[http://bugs.freepascal.org/view.php?id=0021996 0021996]]<br />
*r37232 DBG: Inspect window, improve scrolling<br />
*r37234 DBG: Improve start-up to work with bug in gdb 7.4<br />
*r37262 searching compiler: search first in dir of fpc.exe, then in PATH<br />
*r37263,r37265 codetools: improved error message on unit not found<br />
*r37264 fix setting radiogroup.itemindex under gtk2. Issue [[http://bugs.freepascal.org/view.php?id=22013 22013]]<br />
*r37267 Docs: improved build_lcl_docs robustness when working with TProcess, patch from Reinier Olislagers, bug 22000<br />
*r37273 SourceEditor: Fix crash when closing several tabs, while debugging (paused / loading line info). Maybe related to issue [[http://bugs.freepascal.org/view.php?id=22015 22015]]<br />
*r37274 Fix Crash in building "Windows" (list of open W.) Menu. Note 0059576 in Issue [[http://bugs.freepascal.org/view.php?id=22015 22015]] (not related to other parts of issue)<br />
*r37280 SQLdb: added missing tmysql55connection.png, bug 22033 '''Related to 37212 and other revisions for TMySQL55Connection'''<br />
*r37281 SynEdit: protect ProcessCommand() against early destruction by ReleaseComponent. Issue [[http://bugs.freepascal.org/view.php?id=0022035 0022035]]<br />
*r37285 IDE: make Close button work in Window Manager<br />
*r37286 Patch from bug 21651, automatically adds quotes to paths with spaces for OpenDocument in Mac OS X<br />
*r37297,r37298 SynEdit, Pas-HL: record helper, deprecated in object<br />
*r37311 Translations: Arabic IDE translation update by Mazen NEIFER<br />
*r37312 IDE: Make Help button work in Editor Window Manager, issue [[http://bugs.freepascal.org/view.php?id=21961 21961]]. (zeljko added to merge list because of conflicts in 37491)<br />
*r37325 regenerated translations; updated Russian translation<br />
*r37326 Translations: Brazilian Portuguese translation update by Marcelo B Paula, bug 22064<br />
*r37327 IDE, Code Generation options: changed wrong -Op386 option to correct -Op80386. Patch by barlone with some consistency changes, bug 22062.<br />
*r37357 Gtk2: fixed mbAll button on dialogs. Added response keys which does not exist in gtk2. issue [[http://bugs.freepascal.org/view.php?id=22083 22083]]<br />
*r37344 gtk2 intf: less hints<br />
*r37345 ipro: less hints <br />
*r37359 lazreport: German translations<br />
*r37360 cody: German translations<br />
*r37039,r37319,r37324,r37361 sqldb: German translations (zeljko added 37039,37319,37324 because of conflicts)<br />
*r37362 educationlaz: German translations<br />
*r37363 ide: German translations<br />
*r37372 lcl: don't access Items of TreeView if DragOver happens during treeview destruction<br />
*r37373 IDE: debugger options: check the resolved file, bug 22086<br />
*r37374 Qt: bypass windowmanager when showing dragimagelist.<br />
*r37375 Gtk2: do not show taskbar entry for dragimagelist.<br />
*r37376 IDE: update TUnitInfo.ResourceBaseClass on loading lfm<br />
*r37378 [Edited, includes selected lines of 37402] SourceEditor: Hide hint, when mouse moves (even if outside IDE, or IDE is not active). Issue [[http://bugs.freepascal.org/view.php?id=0022016 0022016]]<br />
*r37368 DBG: Fixed array len for 64 bit<br />
*r37369 lcl: don't crash when either DragTarget or dragged control is freed (issue [[http://bugs.freepascal.org/view.php?id=22067 22067]])<br />
*r37370 lcl: cleanup debug info<br />
*r37371 lcl: fixed a memory leak when canceling drag of dead control<br />
*r37380 SourceEdit/DBG: Ensure Codebuffer is updated before using it to add watches<br />
*r37383 IDE: TUnitInfo.fModified: do not set on get<br />
*r37384,r37401 IDE: do not set TUnitInfo.Modified when committing source editor to codetools<br />
*r37388,r37389,r37390,r37391,r37392 tests: added tests for cfgscripts, fixed unit output directory, cfgscript: fixed error message if semicolon is missing, IDE: added conditionals functions GetIDEValue, GetEnv, LCL: use IDE widgettype as default<br />
*r37397 TodoList: properly trim comment markers and convert multiline text to single line, fixes bug 22085. Based on patch by Anton.<br />
*r37400 codetools: fixed mem leak<br />
*r37418: TAChart: Fix range check using datapoint tool on a chart without series<br />
*r37440 DBG: do not set temporary stack = -1 in thread changing. This may cause errors<br />
*r37444 DBG: Watches, save "Use instance class" to config<br />
*r37449 LCL: fixed comments<br />
*r37451 Qt: fixed wrong SetCapture() under win32. Problem was passed TQtWidget handle instead of underlaying widget winID() which is native handle.<br />
*r37453 SynEdit: Fix goto bookmark and persistent block. Do not clear persistent block<br />
*r37461 lcl: TCustomForm.UpdateDockCaption: fixed repair garbage<br />
*r37463 IDE: when docked keep IDE caption<br />
*r37464 Help, DBG: New link to wiki for watch properties<br />
*r37475 codetools: TCustomCodeTool.FindLineEndOrCodeAfterPosition: fixed crash when at end of code<br />
*r37476 codetools: clear nodes behind, when linkscanner parsed only parts<br />
*r37481 IDE: fixed storing old LCLWidgeType, bug 22174<br />
*r37482 codetools: save parse error of operator, do not save errors outside parser, fixed parsing method name with generic parameter<br />
*r37483 codetools: allow keywords in program name<br />
*r37534 Qt: do not call setValue() but setPosition() so lcl gets accurate values later. issue [[http://bugs.freepascal.org/view.php?id=22187 22187]]<br />
*r37491 Help, DBG: Link to wiki for breakpoint properties (zeljko - 37312 is merged too, because of conflicts)<br />
*r37470 IDE, DBG: debug-eval hint, do not show, if selection exceeds one statement (e,g whole file selected). Part of issue [[http://bugs.freepascal.org/view.php?id=0022081 0022081]]<br />
*r37471 SourceEditor: Fix an issue with focusing an editor, that is being closed (while debugging) "no parent handle". Issue [[http://bugs.freepascal.org/view.php?id=0022015 0022015]]<br />
*r37517 SynEdit: fixed folding for "case" and "try" in certain code segments (initialization / case...else try)<br />
*r37518 SynEdit: Pas-HL: fix detection of case...else versus if...then...else<br />
*r37522 SynEdit: Pas-HL: better detection of case...else<br />
*r37623 SourceEditor: Fix (Work-around) an issue with focusing an editor, that is being closed (while debugging) "no parent handle". Issue [[http://bugs.freepascal.org/view.php?id=0022015 0022015]] // Required some parts of r37502<br />
*r37609 DBG: Avoid re-queuing of dis-assembler requests, after cancelling it. Part of issue [[http://bugs.freepascal.org/view.php?id=0022230 0022230]]<br />
*r37643 DBG: Disassembler: prevent disassembler from doing large address ranges, if gdb returns data with far away addresses. Issue [[http://bugs.freepascal.org/view.php?id=0022230 0022230]]<br />
*r37657 DBG: fixed a out of index error, in watches history<br />
*r37694 DBG: Fixed possible crash in watch evaluation (WatchValue freed while evaluating / in GetValue)<br />
*r37466 IDE: added menu item to insert MIT license text<br />
*r37407,r37474,r37492 IDE: TMainIDE.DoSourceEditorCommand: improved focus check, requires r37466<br />
*r37564 LCL: TCustomListView: reset FCacheIndex and FCacheItems before sorting list, otherwise we'll have unexpected results. issue [[http://bugs.freepascal.org/view.php?id=22218 22218]]<br />
*r37505, r37509, r37516, r37523 fixed compilation with fpc 2.7.1<br />
*r37592 lcl: fixed compilation fpc 2.7.1<br />
*r37525 TAChart: Display legend symbols even if the text is empty<br />
*r37565 TAChart: Display major axis marks at the edges of the clip range<br />
*r37576 TAChart: Fix infinite recursion when drawing chart listbox from series with Legend.Multiplicity <> lmSingle<br />
*r37588 TAChart: Include Item.Y in reordered list of TCalculatedChartSource. Update test. '''This will break old tests. Please contact me for a fix --- Ask'''<br />
*r37727 TAChart: Update to the recent version of FPVectorial<br />
*r37587 Qt: unset icon when doing internal sync after sorting. part of issue [[http://bugs.freepascal.org/view.php?id=22218 22218]]<br />
*r37620 LCL: invalidate parent preferredsize when borderspacing changed, bug 17947<br />
*r37621 LCL: clean up - invalidate in TControl.DoBorderSpacingChange no longer needed with new autosizing<br />
*r37622 lazutils: added missing file<br />
*r37624 LCL: GetClientRect: if interface has the right width,height trust the clientrect, this avoids some unneeded resizes<br />
*r37573 IDE: project inspector: add files: allow dotted unit names, bug 22209<br />
*r37619 IDE: open package dependency: try provides, issue [[http://bugs.freepascal.org/view.php?id=17960 17960]]<br />
*r37628 IDE: compiler options: disable target platform for packages<br />
*r37594 codetools: fixed Unneeded extra space in event assignment completion<br />
*r37613 codetools: property completion: add class var for class property variables<br />
*r37614 codetools: class completion: search variables in all sections, bug 22246<br />
*r37625,r37626,r37627 codetools: class completion: fixed searching var node when first is class var<br />
*r37629 codetools: fixed adding class keyword for property setter of a class property<br />
*r37630 IDE: codeexplorer: labels<br />
*r37634 IDEIntf: objectinspector: fixed painting outside paint event<br />
*r37631 codetools: no var node for anonymous record case variables<br />
*r37632 codetools: identifier completion: when creating an override hide higher visibility members<br />
*r37633 codetools: class completion: add static method modifier for setter of class property<br />
*r37636 codetools: class completion: add static method specifier for class property setter<br />
*r37635 IDE: paste component: fix renamed references<br />
*r37637,r37638,r37639 IDE: paste multiple components: fix references, lcl: LRSObjectTextToBinary: write convert list of components<br />
*r37640 IDE: paste components: update TControl.Caption<br />
*r37642 lcl: fixed LRSObjectTextToBinary toWString, issue [[http://bugs.freepascal.org/view.php?id=19650 19650]]<br />
*r37644 codetools: fixed inserting proc bodies in implementation in front of methods<br />
*r37652,r37653,r37655 codetools: using TFileStreamUTF8<br />
*r37656 IDE: using TFileStreamUTF8 and TStringListUTF8<br />
*r37663 IDE: fixed show info on --help when no stdout exists<br />
*r37689 LCL: fixing handling of special keys for TCustomEdit and TCustomMemo<br />
*r37690 codetools: forward proc completion: stay in same section<br />
*r37697 DBG: Dialogs, don't give help related commands to IDE. They will be ignored<br />
*r37698 IDE Help: add urls for dbg dialogs<br />
*r37703 lazutils: utf8pos: added optional parameter StartPos<br />
*r37704 IDE: setup dialog: show fpc source directory release version as warning instead of error<br />
*r37707 tools create deb+rpm: use 128x128 icon<br />
*r37705 SynEdit: open and close clipboard explicitly to write multiple formats.<br />
*r37714 lcl: gtk2: warn only once about liboverlay<br />
*r37711 lhelp: cleaned up paths<br />
*r37712 lhelp: clean up<br />
*r37713 lhelp: resolve macros in HelpEXE on the demand<br />
*r37715 chmhelp: using search path to search for chm files<br />
*r37716,r37717 chmhelp: added path $(LazarusDir)/docs/chm<br />
*r37718 'hmhelp: search ref.chm in docs/chm<br />
*r37726 create_lazarus_deb: added option chmhelp<br />
*r37722 DBG: Event-Log: Do not cache Options. Allow user to change options while debugging<br />
*r37596 Patch from {{MantisLink|0022231}} "fix warnings with fpc 2.6.1".--[[User:AlexVinS|AlexVinS]] 21:40, 8 June 2012 (UTC)<br />
*r37745 deb+rpm: default environmentoptions: updated to 107, removed default gdb entry<br />
*r37748,r37755 lhelp: added makefile<br />
*r37749 make bigide: build lhelp<br />
*r37753 IDE: fixed comparing file names case insensitive<br />
*r37754 lazutils: inlined UTF8CompareStr<br />
*r37760 Use Utf8CompareText instead of AnsiCompare<br />
*r37762 linux: added encoding to desktop file<br />
*r37769 Use Utf8CompareText instead of AnsiCompare<br />
*r37770 TAChart: Fix AV when clearing Series.Styles and TColorMapSeries.ColorSource properties<br />
*r37772 Use Utf8CompareText instead of AnsiCompare<br />
*r36804 win32: mark client rect as required update before WM_SIZE passing, remove DoAdjustClientRectChange - they are called inside WM_SIZE handler after the client rect is updated (fixes bug [[http://bugs.freepascal.org/view.php?id=0021724 0021724]])<br />
**Paul remarked about r36804: "Please don't merge it for at least 2 weeks". Also seems to cause problems in grids, see [http://bugs.freepascal.org/view.php?id=21790 issue [[http://bugs.freepascal.org/view.php?id=21790 21790]]].<br />
*r36993: LCL, fixed Problems setting Width, Height for TCustomGrid if ScrollBars is auto, from cobines, issue [[http://bugs.freepascal.org/view.php?id=21790 21790]]. If r36804 is merged, please merge also r36993<br />
*r37783 startlazarus: linux: adding LIBOVERLAY_SCROLLBAR=0 to avoid problems with mouse capturing<br />
*r37785 gtk2 intf: disable liboverlay by default<br />
*r37790 gtk2 intf: use setenv only on Linux<br />
*r37795: export tgz: added option to add chm files<br />
*r37796 IDE: when copying secondary configs create the primary config directory first<br />
*r37797 rpm: added option chmhelp<br />
*r37810 rpm: fixed building without chmhelp<br />
*r37811 lhelp: fixed invalid recent item path in config, added build modes default,debug<br />
*r37814 chmhelp: clean up old ipc files to prevent IDE hang<br />
*r37817-r37821 MAKE DEB<br />
*r37838 DBG: Fix handling console input<br />
*r37824 chmhelp: Fixed lazarus hanging when chmhelp pipe is leftover from an improperly closed lhelp<br />
*r37825 chmhelp; Fixed chmhelp typo (boolean error)<br />
*r37826 chmhelp: fixed bug where a new lhelp process could be started each time F1 was pressed<br />
*r37841 DBG: Pseudo-Terminal, accept tabs<br />
*r37848 lazutils: docs: fixed encoding and package name<br />
*r37849 lcl: docs: fixed encoding<br />
*r37850 ide: docs: fixed encoding<br />
*r37851 updated docs<br />
*r37853 lcl: docs: fixed some links<br />
*r37852 build_lcl_docs: using UTF-8 file functions, added option -h<br />
*r37855 build_lcl_docs: showcmd: show working directory<br />
*r37861 lcl: check if ListDataset is loading to update lookup info. Issue [[http://bugs.freepascal.org/view.php?id=22337 22337]]<br />
*r37846 win32: let TComboBox.CloseUp fire before Change (delphi compatible). Fix 22352<br />
*r37880 IDE+startlazarus: use same working directory, needed for passing relative file names as command line parameters, fixed building lcl+lazutils chm on ubuntu 12<br />
*r37866 lazutils: fixed unit names<br />
*r37868 lazutils: added fpdoc files<br />
*r37869 docs: building lazutils+lcl chm<br />
*r37885 DBG: fixed parsing sets for debug-inspector<br />
*r37906 IDE-Options / SynEdit: Fixed RightEdge visibility (Recression)<br />
*r37919 DBG: Prevent potential crash/memory-corruption in Watches<br />
*r37920 DBG: Prevent potential crash in (dbg-)OnIdle handling<br />
*r37921 DBG: Prevent build up of no longer needed commands in queue<br />
*r37945 DBG: Prevent a crash, when the selected snapshot is deleted. Cas also happen when starting the debugger, while a snapshot from previous run is active<br />
*r37950 DBG: fixed endless loop in watch eval (auto type cast) Issue [[http://bugs.freepascal.org/view.php?id=0022425 0022425]]<br />
*r37961 DBG: Disable rangechecks for certain PtrUInt casts<br />
*r37993 carbon: fixed crash of IDE when compiled with range checks on<br />
*r38006 gtk2: fixed crash on QuestionDlg<br />
*r38003 IDE: fixed showing custom project options, issue [[http://bugs.freepascal.org/view.php?id=22486 22486]]<br />
** merged ONLY main.pp<br />
*r38016 ToDoList: fixed encoding of French translation, it should be UTF-8, not ISO-8859-1. Patch by batyann811, bug 22489.<br />
*r37981,37983-37989,38001,38004-38005,38012,38017 Win Installer<br />
===== Fixed after RC1 =====<br />
*r38127 IDE, EditorOptions: Fixed finding color attribute in localized IDE<br />
*r38132 IDE: setup: after changing lazarusdir: fetch translations and translate<br />
*r38133 chmhelppkg: invoke lazbuild with --pcp parameter<br />
*r38138 examples: testall: fixed start<br />
*r38139 examples: cleandirs: error for fpc version<br />
*r38140 examples: componentstreaming: fixed typo, clean up<br />
*r38141 lazfreetype: fixed range check error, improved error message<br />
*r38142 examples: mssqlconn: requires fpc 2.6.1<br />
*r38144 examples: synguttermarks: win32 gui mode, fixed Left position<br />
*r38146 examples: tv_add_remove: updated<br />
*r38147 examples: xmlreader: added example xml<br />
*r38157 IDE: fixed saving ambiguousfileaction, bug 22573<br />
*r38158 examples: clean up<br />
*r38038 TAChart: Allow spaces in field names inside TDbChartSource.FieldY<br />
*r38168 synuni: clean up fpc options<br />
*r38170 synuni, semaphorgridlpk: clean up fpc options<br />
*r38022 SynEdit: Fixed drawing errors for frames (left frame site drawn at wrong offset)<br />
*r38145 LCL: TListView fixed "List index out of bounds" while deleting items. issue [[http://bugs.freepascal.org/view.php?id=22552 22552]]<br />
*r38150 SynEdit TSynMultiSyn: Fixed crash when deleting lines. Part of issue [[http://bugs.freepascal.org/view.php?id=0022519 0022519]]<br />
*r38151 SynEdit Highlighter: Fixed crash when scanning empty<br />
*r38152 SynEdit TSynMultiSyn: typo<br />
*r38175 SynEdit TSynMultiSyn: Fixed updating, when appending to EOT. Part of issue [[http://bugs.freepascal.org/view.php?id=0022519 0022519]]<br />
*r38205 lazaruside.fi.po: Finnish translations<br />
*r38180 Synedit: fix matching-bracket-highlight in comments (closing bracket at eol) issue [[http://bugs.freepascal.org/view.php?id=22586 22586]]<br />
*r38198 IDE: Export to html, do not enforce check for writeable. Issue [[http://bugs.freepascal.org/view.php?id=22588 22588]]<br />
*r38199 lazutils: do not use winodws W functions under Win98, issue [[http://bugs.freepascal.org/view.php?id=22596 22596]]; '''Breaks compilation on wince, because win32platform is not defined.'''<br />
*r38202 openglcontrol: win32: fixed sharing context<br />
*r38204 Synedit: fixed typo in IFDEF for fpc 2.60 bug<br />
*r38225 TAChart: Fix division by zero in zoom tools with extreme zoom ratios<br />
*r38226 TAChart: Fix hang in functional series with extreme zoom ratios<br />
*r38223 SynEdit TSynMultiSyn: Several fixes issue [[http://bugs.freepascal.org/view.php?id=0022519 0022519]]<br />
*r38232 TAChart: Add InRangeUlps utility function<br />
*r38233 TAChart: Fix disappearance of axis marks located exactly at chart bounds<br />
*r38234 TAChart: Fix crash when setting Marks.LabelFont from the Object Inspector<br />
*r38237 Examples/SynEdit: Readme and typo in comment<br />
*r38266 IDE: Tweak the layout of ManageExamplesForm<br />
*r38260 TAChart: Use correct notification when the series' source changes<br />
*r38261 TAChart: Issue change notifications when modifying TListChartSource.DataPoint property<br />
*r38285 lhelp: replace MessageBox, with Form.Modal. FIx IPC hang. issue [[http://bugs.freepascal.org/view.php?id=0022592 0022592]]<br />
<br />
===== Fixed after RC2 =====<br />
*r38293 windows installers: don't ask to overwrite the environment options in the secundary config directory from Reinier Olislagers<br />
*r38339 SynEdit TSynMultiSyn: Fix CaseSensitivity for Sheme marker. Issue [[http://bugs.freepascal.org/view.php?id=0022693 0022693]]<br />
*r37386 Remove writeln() that looks like a residual debug message. Issue [[http://bugs.freepascal.org/view.php?id=0022544 0022544]]<br />
*r38385 Translations: removed unmaintained Portuguese translation, which was outdated copy of Brazilian Portuguese one<br />
<br />
== How to merge ==<br />
The lazarus developers have decided to use the native svn merge for this branch. Other branches used the svnmerge.py script to manage the revisions to be merged.<br />
<br />
* TODO: Maybe this information should be put in a separate page.<br />
<br />
[[SVN_Migration#Merge_with_plain_svn]]<br />
=== Using TortoiseSVN ===<br />
As noted in the link above using TortoiseSVN is more or less self explaining. <br />
<br />
* TODO: add some screen shots.<br />
<br />
When committing, in the recent messages a nice commit message is available.<br />
<br />
Tested with TortoiseSVN 1.7.6, SVN 1.7.4.<br />
<br />
=== Show list of revision that can be merged ===<br />
In the lazarus fixes_1_0 directory do:<br />
svn mergeinfo ^/trunk --show-revs eligible<br />
Or if you don't have a fixes directory checked out, you can pass the URL path of the fixes branch:<br />
svn mergeinfo ^/trunk http://svn.freepascal.org/svn/lazarus/branches/fixes_1_0 --show-revs eligible<br />
<br />
=== Show list of revision that have been merged ===<br />
In the lazarus fixes_1_0 directory do:<br />
svn mergeinfo ^/trunk --show-revs merged<br />
<br />
=== Merging revisions from trunk ===<br />
To merge one or more revisions from trunk, use the svn merge command. For example to merge revision 36506 and 36510 use:<br />
svn merge -c 36506,36510 ^/trunk<br />
<br />
To generate a commit log message, use:<br />
svn log ^/trunk -c 36506,36510 > svnmerge-commit-message.txt<br />
<br />
Edit svnmerge-commit-message.txt with your favorite text editor and add a first line like:<br />
Merged revision 36506,36510 from /trunk.<br />
<br />
Commit this with:<br />
svn commit -F svnmerge-commit-message.txt<br />
<br />
=== Blocking a revision to be merged ===<br />
Sometimes you want to block a revision to be merged, i.e. you want to make sure that this revision is never merged to the fixes branch, for example, because it contains a new feature or it contains a version number change not applicable to the fixes branch, but only to trunk. To block revision 36507, use:<br />
svn merge -c 36507 --record-only ^/trunk<br />
Then you can create a log message with:<br />
svn log ^/trunk -c 36507 > svnmerge-commit-message.txt<br />
Edit svnmerge-commit-message.txt with your favorite text editor and add first line like:<br />
Blocked revision 36507 from /trunk<br />
Then commit this change:<br />
svn commit -F svnmerge-commit-message.txt</div>
Paul Ishenin
https://wiki.freepascal.org/index.php?title=Lazarus_1.0_fixes_branch&diff=62006
Lazarus 1.0 fixes branch
2012-09-25T03:28:07Z
<p>Paul Ishenin: /* Merged revisions for 1.0.2 */</p>
<hr />
<div>This page contains the revisions to be merged from trunk to the [http://svn.freepascal.org/svn/lazarus/branches/fixes_1_0/ Lazarus 1.0 fixes] branch.<br><br />
Release notes can be found here [http://wiki.lazarus.freepascal.org/Lazarus_0.99.0_release_notes Release notes]<br />
<br />
== Fixes for 1.0.2 ==<br />
=== Merge requests ===<br />
==== Submitted by developer / committer ====<br />
<br />
*r38673 TAChart: Ignore NaNs while calculating TCustomChartSource.ValuesTotal<br />
*r38675 TAChart: Support Marks.Attachment = maCenter in pie series<br />
*r38697,38698 Gtk2: set TToggleBox.ParentColor default false so it's color is consistent with TButton when eg.parent color is clRed and TToggleBox.Color=clDefault.<br />
*r38694: TAChart: Fix update of TListChartSource.ValuesTotal cache when adding or removing NaNs<br />
*r38709: Qt: improved triggering of OnClick() in QEventShowToParent. issue [[http://bugs.freepascal.org/view.php?id=22872 22872]]<br />
*r38710: TAChart: Fix crash when using TChartExtentLink with LinkedChart.Chart = nil<br />
*r38712: TAChart: Fix crash while replacing linked chart in TChartExtentLink<br />
*r38713: TAChart: Use NumberOr function instead of checking for NaN explicitly<br />
*r38719: TAChart: Extract TDrawFuncHelper.ForEachPoint helper procedure ''This also fixes a hang while using data point tool on extremely zoomed-in series''<br />
*r38729: TAChart: Extract TDrawFuncHelper.XRange helper function. + Fix GetNearestPoint for rotated function series.<br />
*r38733: TAChart: Fix TChartSeries.SetColor to notify all listeners and require ListSource. Add TListChartSource.SetColor<br />
*r38735: TAChart: Fix memory leak in TDbChartSource.BeforeDraw<br />
*r38737: TAChart: Fix drawing of pie series with data from the db source<br />
*r38754: TAChart: Fix hang when changing TLineSeries.ShowPoints while drawing chart<br />
*r38757: TAChart: Display crosshair tool on mouse down<br />
*r38762: Gtk2: when style is drawing button then use style from button. issue #22901<br />
*r38779: TAChart: Do not notify from TListChartSource.SetXValue and SetYValue if the value did not actually change.<br />
*r38780: TAChart: Add TBasicPointSeries.MovePoint overload for graph coordinates ''not a fix, but required for r38788''<br />
*r38788: TAChart: Support axis transformations in TCustomChartSeries.MovePoint<br />
*r38792: TAChart: Fix crash on deleting subcomponent with active property editor<br />
*r38799: gtk2: implement SPI_GETWHEELSCROLLLINES. Fix a regression in VirtualTreeView wheel scroll<br />
*r38802: lcl:revert 33020, 33082, 33086, part of 33089 and 33389. These changes made the hint behavior Delphi incompatible thus leading to a regression in third party control like VirtualTreeView that handles hints in CMHintShow. Retrieve parent hint recursively if hintcontrol.hint is empty' (delphi compatible)<br />
*r38816 LazUtils: improve unicode path/filename handling by Fileutil.ReadFileToString, patch from Takeda Matsuki, bug 22953<br />
<br />
==== Submitted by others ====<br />
<br />
=== Merged revisions for 1.0.2 ===<br />
*r37217,37218,37225,37239,37241,37293,37304,37316 Qt: fixed keys handling (arrow keys & enter).<br />
*r38396 LCL: ColorBox - keep FSelected in sync all the time. fixes issue [[http://bugs.freepascal.org/view.php?id=22729 22729]]<br />
*r38426 CodeBrowser: check for virtual units. Issue [[http://bugs.freepascal.org/view.php?id=0022740 0022740]]<br />
*r38428 SynEdit, MultiHighlighter: fix adding text/sections at EOL. issue [[http://bugs.freepascal.org/view.php?id=0022745 0022745]]<br />
*r38430 TAChart: Fix out-of-bounds access when drawing empty polygons and polylines<br />
*r38437 ide: project target: apply default extension even if the file has already an extension, issue [[http://bugs.freepascal.org/view.php?id=22750 22750]]<br />
*r38444 IDE: fixed crash when releasing non existing component palette select button<br />
*r38473 tests: fixed compilation<br />
*r38464 TAChart: Fix error message in TFPCanvasDrawer.RadialPie<br />
*r38486 avglvltree: setcompare: set when count=0<br />
*r38503 TAChart: Copy BaseLength in TChartArrow.Assign<br />
*r38507 EditorOpts: default for top-info-hint<br />
*r38509 Debugger: Ensure Queue is not blocked by LineInfo Request. (If a LineInfoRequest was queued the DebuggerCurrentLine could not search the stack, as commands were not immediately run)<br />
*r38519 Gtk2: fixed crash with TListView when viewstyle is vsIcon or vsSmallIcon. issue [[http://bugs.freepascal.org/view.php?id=22778 22778]]<br />
*r38520 Qt: do not propagate keyrelease event as action trigger. issue [[http://bugs.freepascal.org/view.php?id=22737 22737]]<br />
*r38531 Debugger: Workaround to fix exe-line-indicators (blue dots) at debug start<br />
*r38533 Qt: fixed header offset and getClientRect for TListView when ViewStyle=vsReport.<br />
*r38547 TAChart: Support Y NaNs in polar series ''(this will cause compilation error -- please remove 'and CloseCircle' part from the last conditional in the TPolarSeries.Draw procedure)''<br />
*r38557 TAChart: Support brush style, pen style and pen width in fpvectorial drawer<br />
*r38571 TAChart: Draw chart correctly after decrease of an axis margin<br />
*r38529,r38530,r38535,r38543,r38548: fix carbon clipping, correctly return region types on HRGN related operations, fix generic IntersectClipRect routine<br />
*r38640,r38641,r38642,r38649: various ExtTextOut fixes for Carbon and Cocoa<br />
*r38551,r38552,r38562,r38563 Carbon: various winapi compatibility functions fixes<br />
*r38518 Qt: TQtWinApi.ExtTextOut() implemented Dx param. issue [[http://bugs.freepascal.org/view.php?id=22795 22795]] (zeljko will merge, need some testing)<br />
*r38572 Qt: propagate QEvent::ShortcutOverride to parent, so stop key event if shortcut is executed. issue [[http://bugs.freepascal.org/view.php?id=22827 22827]]<br />
*r38576,38577: Qt: fixed TQtWidgetSet.FrameRect(), now it uses passed brush to draw frame border.<br />
*r38610 Qt: fixed non ascii utf8 chars in TQtWidgetSet.ExtTextOut() when we use dx param. issue [[http://bugs.freepascal.org/view.php?id=22795 22795]] (depends on merging of r38518).<br />
*r38628,38629,38630,38634: Qt: fixed clipping bugs inside TQtWidgetSet.ExtTextOut()<br />
*38670 SynEdit: Fixed past eol paint error ** Must be ported by hand **<br />
*r38584 TAChart: Copy Attachment and YIndex in TGenericChartMarks.Assign ''(this code is in TATypes unit in v1.0)''<br />
*r38589 TAChart: Do not draw lines which should be invisible in OpenGL drawer<br />
*r38607 TAChart: Workaround for issue [[http://bugs.freepascal.org/view.php?id=22850 22850]] '''see patch in the mailing list'''<br />
*r38617 TAChart: Fix GetNearestPoint returning true with no points found inside radius, issue [[http://bugs.freepascal.org/view.php?id=22854 22854]]<br />
*r38644: Qt: fixed menu flickering. issue [[http://bugs.freepascal.org/view.php?id=22872 22872]]<br />
*r38651: TAChart: Fix zero division when calling ImageToGraph before the chart is drawn<br />
*r38674 Qt: fixed crash when invalid or null handle is passed into SetCapture.<br />
*r38679 Qt: update bitmap if TMenuItem has associated ImageList and ImageIndex. issue [[http://bugs.freepascal.org/view.php?id=22896 22896]]<br />
*r38672 SynEdit: fixed delete-next-word, if caret past eol. Issue [[http://bugs.freepascal.org/view.php?id=0022890 0022890]]<br />
*r38720 LCL, DefaultTranslator: fix handling of non-ASCII path to .po file, bug 22907, patch by Vladimir Zhirov<br />
*r37398 IDE: corrected version info language list, added Ukrainian language, bug 22103<br />
*r38722 IDE: added Lithuanian to version info language list, bug 22898<br />
*r38671: carbon: fix accidental error in index<br />
*r38743: carbon: reimplement linear gradient draw using shading to support OS X < 10.5<br />
*r38636,r38637: Gtk2: fixed text clipping and text background drawing<br />
*r38758: gtk2: allocate GdkColor when we need a BkColor<br />
<br />
== Fixes for 1.0 ==<br />
=== Merged revisions for 1.0.0 ===<br />
==== Submitted by developer / committer ====<br />
*r36506 LazReport, fix barcode dialog localization (Jesus)<br />
*r36508 Updated Japanese translation<br />
*r36509 Window Column, store pointer to resourcestring<br />
*r36510 LazReport, fix barcode addin when TfrBarCodeObject is not yet instantiated (in this case barcode editor defaults to memo view.<br />
*r36511 DividerBevel: implemented Transparent.<br />
*r36514 IDE: moved macros save/saveall to source editor<br />
*r36515 IDE: update macro descriptions after translating resource strings<br />
*r36516 IDE: trim TLazPackageGraph.GetFallbackOutputDir<br />
*r36517 IDE: check if package needs rebuild: switch to fall back directory: update compiler params<br />
*r36518 IDE: install/uninstall package dialog: fixed icons, added info about current state<br />
*r36523,r36530 IDE: Export as HTML<br />
*r36526 CodeTemplate: Improve final caret pos, if tmpl does not specify<br />
*r36527 CodeTemplate: allow tab to trigger / selection to ignore. issue [[http://bugs.freepascal.org/view.php?id=0017631 0017631]]<br />
*r36528 SynEdit: Template(Syncro) fix invalidation<br />
*r36529 IDE: Printing: break long lines. Issue [[http://bugs.freepascal.org/view.php?id=0013479 0013479]]; <br />
*r36547 IDE: Printing: break long lines. Fix Utf8. Update for rev 36529<br />
*r36531 LazReport: fixed buttonpanel localization in BarCode editor dialog<br />
*r36533 IDE: clean up of unused resourcestrings<br />
*r36534, r36536, r36553, r36583, r36646 regenerated translations; updated Russian translation<br />
*r36535 IDE: more clean up of unused resourcestrings<br />
*r36537 Documents LCLIntf.GetDeviceCaps<br />
*r36538 IDE: always store lazarus directory<br />
*r36539 LazReport: uppercase variable before comparing with hardcoded functions. Properly fix to 21624<br />
*r36543 IDE: setup dialog: using same file resolving as IDE<br />
*r36546 IDE: consider empty lazarusdirectory as pcp, empty fpcsrcdir as lazdir, empty testdir as lazdir<br />
*r36548 IDE: fixed note about wrong laz dir<br />
*r36549 IDE: fixed crash on find identifier references<br />
*r36551 IDE: translate descriptions of all macros<br />
*r36552 IDE: fixed editor tab position combobox items localization on Editor/Misc options page<br />
*r36556,r36557 IDE: warn if upgrading configs<br />
*r36561, 36562, 36563, 36566: Improve Options/Keymap<br />
*r36565 LCL: Prevent TShape.stRectangle disappearing with certain Height/Width and Pen.Width values.<br />
*r36567,r36568,r36569 IDE: show downgrade warning<br />
*r36570 lazbuild: select IDE build mode, fixed compiling with different mode<br />
*r36572 LCL: set csCaptureMouse on TToolButton, but don't send click if mouse is out of ttoolbutton on mouseup.issues [[http://bugs.freepascal.org/view.php?id=19688 19688]],[[http://bugs.freepascal.org/view.php?id=21560 21560]]<br />
*r36574 IDE: fixed saving environment on every change<br />
*r36577 LCL, TreeView: fix GetNextVisible, GetPrevVisible. Issue [[http://bugs.freepascal.org/view.php?id=21264 21264]]<br />
*r36575 IDE/Setup dialog: force taskbar button to be shown<br />
*r36584 IDE: import package list: opendialog<br />
*r36587 IDE: intial setup: fpc src dir: lazdir/fpc/fpcver/source<br />
*r36588 IDE: intial setup: fixed if no candidates found<br />
*r36589,r36590 IDE: compiler file name: search first with macros<br />
*r36591 IDE: verbose search for candidates<br />
*r36592 IDE: search fpc src relative to fpc.exe<br />
*r36594 IDE: check compiler: only run common names<br />
*r36595,r36599 IDE: use under windows as default for make the make.exe in the compiler directory<br />
*r36596 IDE,codetools: fixed ppccross,crossppc to ppcross<br />
*r36601 IDE: unify the 2 filters in KeyMapping window. Prevent a potential crash.<br />
*r36603 debian: updated patches to latest source in lazarus svn<br />
*r36608 Gtk2: do not set widget name, it's completelly unnecessary and produce unexpected behaviour if some keywords are in widget name.issue [[http://bugs.freepascal.org/view.php?id=21661 21661]].<br />
*r36613 SynEdit: Fix an issue with Scrollbars not being updated<br />
*r36617 lazbuild: build ide: replace exe on windows<br />
*r36644 IDE: improved 'Export package list' dialog localization<br />
*r36645 IDE: improved 'Package Graph Explorer' dialog localization<br />
*r36647,r36653,r36654,r36655,r36656,36668,36673 IDE: view / IDE internal / what needs building<br />
*r36648,r36650,r36651 IDE: read state file created by Makefile: fix path delimiters, checking compiled state: ignore -v,-i,-B flags, do not skip all -F<br />
*r36652 IDE: codetools options: shorter caption<br />
*r36658 regenerated translations; updated Russian translation <br />
*r36659 LCL: Refactoring. Make TCalculatorDialog.Execute more understandable by removing a "with" block.<br />
*r36661 LCL: Prevent "Test Dialog" feature of Calculator and Calendar dialogs locking the IDE, issue [[http://bugs.freepascal.org/view.php?id=21644 21644]]<br />
*r36616 SynEdit: do not include IME for WinCe<br />
*r36662 LCL: implementation of TCustomImageList.GetIcon()<br />
*r36663 In GUI strings, unify all 3 dots to have a space before them ( ...)<br />
*r36664 IDE: Use CreateAbsolutePath when switching between relative/absolute paths in AddFile dialogs (CreateAbsoluteSearchPath gives wrong output)<br />
*r36665 LCL: publish TUpDown.OnChangingEx<br />
*r36666 IDE etc.: unify 3 dots in GUI string to have a space ( ...).<br />
*r36667 translation: german: updates from Swen Heinig<br />
*r36669 updatemakefiles: write which lpk have conditionals<br />
*r36670,r36671 IDE,lazbuild: create makefile: use CPPROG instead of COPY to get the current date for Makefile.compiled under Windows<br />
*r36649,r36657,r36602,r36672,r36675,r36677,r36679,r36683,r36701,r36708,r36709 Makefiles: updated, reduced dependencies, fixed double compiles<br />
*r36676 LCL: Implement TListItem.EditCaption, issue [[http://bugs.freepascal.org/view.php?id=20295 20295]].<br />
*r36680,r36699 lazbuild: fixed crash, replaced some MessageDlg with IDEMessageDialog<br />
*r36681 IDE,lazbuild: use parsed compiler filename, make filename<br />
*r36682 IDE: debugfilename, debugsearchpath: use same function as other env vars to resolve macros, trim and find<br />
*r36686,r36688 IDE/lazbuild backup, delete the same lazarus exe on all platforms<br />
*r36694 regenerated translations; updated Russian translation<br />
*r36695 LazDataDesktop: regenerated translations; updated Russian translation<br />
*r36696 IDE: add resource strings for various windows manifest keys<br />
*r36697 fix ImageList.AddMasked() in case of source image has no mask description<br />
*r36702 IDE: TProject.TitleIsDefault: check for project+number, fix for renaming the title of a new project<br />
*r36711 Qt: enable wordwrap on TQtStaticText. issue [[http://bugs.freepascal.org/view.php?id=21697 21697]].<br />
*r36712 LCL: fixed function result<br />
*r36713,r36715 lcl: fixed TToolButton.MouseUp X,Y in boundsrect check<br />
*r36716 LCL, combination of modal form + wsMaximized style produces tiny windows on GTK2, issue [[http://bugs.freepascal.org/view.php?id=21634 21634]]<br />
*r36717 LCL: reverted changes to menus.pp from r36666 (by Paul's request)<br />
*r36718 LCL: regenerated translations<br />
*r36719, *r36826 LCL: fix range check error<br />
*r36720 LazReport: added option to ignore undefined symbols, from Luiz Americo, issue [[http://bugs.freepascal.org/view.php?id=21683 21683]]<br />
*r36723,36724 IDE,lazbuild: fixed repeated build project clean: save project state file before compiling too<br />
*r36727 lazbuild: fixed expanding --lazarusdir<br />
*r36728 make useride: pass --lazarusdir=.<br />
*r36729 Improve TStringHashList, prevents a PO file update crash. Issue [[http://bugs.freepascal.org/view.php?id=21685 21685]]<br />
*r36730 IDE: project wizard: fixed fixed size, bug 21714<br />
*r36731 lazreport: fix possible access violation by checking dataset for nil<br />
*r36732 win32: fix range check error<br />
*r36733 lazbuild: auto create ide/revision.inc if missing<br />
*r36734 Gtk2: fixed mouse capturing on native scrolling win controls (TListBox,TListView etc).issue [[http://bugs.freepascal.org/view.php?id=21713 21713]]<br />
*r36735 LCL: TToolButton: commented debugln().<br />
*r36740 lazbuild: fixed uninitialized function result, fixed checking if init failed, quick check if lazarusdir is valid.<br />
*r36741 lazutils: Patch with font collection support from Circular<br />
*r36744 examples: Adds a OpenURL/OpenDocument test<br />
*r36745 LCL: Adds the sysenvapis include files to the lpk and adds an extra safety in OpenURL for users which forget to encode spaces in filenames<br />
*r36746 IDE: fixed fixed size dialogs<br />
*r36747 IDE: sort selection: layout<br />
*r36748 IDE: added debugging for sort selection<br />
*r36749 gtk2: clean up<br />
*r36750 IDE: less debugging<br />
*r36751 IDE: jump to next/prev error: fixed direction<br />
*r36752 LCL: TTreeView: clean up<br />
*r36753 IDE: next/prev error: clear multi selection<br />
*r36754 lcl: move interface initialization of TCustomEdit from CreateWnd to InitializeWnd. Consistent with other controls and allows interfaces to check is handle is being created<br />
*r36755 IDE: Add acceleration keys and fix tab order in Project Wizard and ImageListEditor, issue [[http://bugs.freepascal.org/view.php?id=21718 21718]]<br />
*r36756 lcl: remove TCustomListBox.Loaded. ItemIndex is initialized in InitializeWnd<br />
*r36757 lcl: call inherited after setting FLines in TCustomMemo.InitializeWnd. Fix potential crash since widgetset code expect FLines be initialized <br />
*r36758 lcl: check for csDestroyingHandle in TControl.HandleObjectShouldBeVisible. Fix issue [[http://bugs.freepascal.org/view.php?id=19882 19882]]<br />
*r36759 lcl: revert 31890 since issue [[http://bugs.freepascal.org/view.php?id=19882 19882]] is properly fixed now<br />
*r36760 gtk2: less hints<br />
*r36761 gtk2: less hints<br />
*r36762 Carbon: fixed result of TWSCarbonCustomListView GetTopItem,GetViewOrigin and GetBoundingRect. issue [[http://bugs.freepascal.org/view.php?id=21733 21733]]<br />
*r36763 Carbon: added themed TComboBox drawing.Patch by David Jenkins. issue [[http://bugs.freepascal.org/view.php?id=21747 21747]]<br />
*r36764 Carbon: added themed TComboBox drawing.Patch by David Jenkins. issue [[http://bugs.freepascal.org/view.php?id=21747 21747]]<br />
*r36765 Docs: added David Jenkins to contributors list<br />
*r36766 Carbon: make carbon widget visibility in sync with lcl. Patch by David Jenkins. issue [[http://bugs.freepascal.org/view.php?id=21731 21731]]<br />
*r36767 lcl: remove Destroying and DestroyWnd calls from TCustomListBox.Destroy<br />
*r36768 lcl: cleanup TCustomListBox.Create<br />
*r36769 codetools: fixed skipping include files in skipped ifdef<br />
*r36770 gtk2: less hints<br />
*r36771 gtk2: less hints<br />
*r36772 ide: fix selection painting of debugger eventlog colors list<br />
*r36773 carbon: improved TCarbonWidgetSet.RawImage_XXXX routines.Patch by David Jenkins. issue [[http://bugs.freepascal.org/view.php?id=21743 21743]].<br />
*r36774 carbon: proper initialization of alpha channel.Patch by David Jenkins. issue [[http://bugs.freepascal.org/view.php?id=21753 21753]]<br />
*r36775 LCL: implement ClientToParent, ParentToClient based on patch of David Jenkins (issue [[http://bugs.freepascal.org/view.php?id=0021763 0021763]])<br />
*r36776 LCL: extend TThemeServices.IsDisabled, IsHot, IsPushed for teCombobox<br />
*r36777 IDE: Fix tab order and set shortcuts in Application Options frame.<br />
*r36778 LazControls: fix potential crash in TListFilterEdit and TTreeFilterEdit<br />
*r36779 GTK2: add TGtk2WidgetSet.SetDesigning to prevent Abstract method call in IDE. Issue [[http://bugs.freepascal.org/view.php?id=21773 21773]]<br />
*r36780 IDE: fix tab order in Project Save Options frame.<br />
*r36781 IDE: fix tab order in frames: Build Modes editor, Miscellaneous Options and Version Info<br />
*r36782 IDE: fix tab order in option frames: Code Generation, Compilation, Linking, Messages, Parsing.<br />
*r36783 GTK2: clean up<br />
*r36784 GTK2: clean up<br />
*r36786 Carbon: removed extra code for teComboBox, since teComboBox is supported by themes as of r36776.<br />
*r36787 gtk2: clean up<br />
*r36788 gtk2: fixed Gtk2WidgetSet.ClipboardGetData mem leak on stream write error<br />
*r36789 gtk2: removed OldCreateStatusBarPanel<br />
*r36790 gtk2: clean up<br />
*r36791 gtk2: clean up<br />
*r36794 IDE: CloseQueryIDEWindows: skip sub forms<br />
*r36795 Fix crash in dbg-console, if dbg not active. issue [[http://bugs.freepascal.org/view.php?id=21712 21712]]<br />
*r36796 SourceEdit: use softcenter for Replace prompt. Issue [[http://bugs.freepascal.org/view.php?id=0021709 0021709]]<br />
*r36797 regenerated translations; updated Russian translation<br />
*r36800 IDE: when checking if a FPC unit has changed: ignore units that have no source in the FPC sources. Needed to ignore user units reachable through fpc.cfg.<br />
*r36801 IDE: fix error message can't find unit if the ppu is in one of the loaded packages<br />
*r36803 DOCS: correct the documentation about CanFocus<br />
*r36806 LCL: clear FActiveDefaultControl on that control destruction<br />
*r36810 LCL: fix copy paste error<br />
*r36811 LCL: don't update Default, Cancel during their applying in UpdateDefaultCancel<br />
*r36812 LCL: add and ability to use own TListItems, TListItem descendants in TListView for delphi compatibility<br />
*r36821 gtk2 intf: fixed compilation FPC_FULLVERSION<20600<br />
*r36822 gtk2 intf: clean up<br />
*r36823 gtk2 intf: clean up<br />
*r36824 gtk2 intf: clean up<br />
*r36825 LCL: initialize font height with the height from DefFontData<br />
*r36852 IDE: when checking if global unit has changed, skip units in packages<br />
*r36857,36859 LCL: TControl.UpdateBaseBounds: set cfBaseBoundsValid<br />
*r36861 LCL: TCustomSplitter.SetAnchors: adapt anchors before applying<br />
*r36870 LCL: SetAlign: restore the basebounds set before changes<br />
*r36877 LCL: clean up<br />
*r36882 LCL: TControl.SetAnchors: during disabled autosize: update basebounds when changing Anchors, bug 21730<br />
*r36884 LCL: fixed sending CM_EXIT,CM_ENTER when flastfocusedcontrol was removed<br />
*r36885 LCL: constraint Width,Height to >=0<br />
*r36888 Converter: fixed 'Missing units' dialog localization, part of bug 21784<br />
*r36889,r36890 codetools: class completion: fixed gathr proc definitions<br />
*r36891 IDE: show compiling resource lines when error on compiling resources<br />
*r36892 IDE: improved message when can not find unit and unit was found in a package<br />
*r36893,r36894 IDE: messages: show debug: lines and calling resource compiler<br />
*r36895,r36896 gtk2 intf: checking for liboverlay, using value-changed instead of change-value<br />
*r36897 LCL: made TImage.DestRect public<br />
*r36899 Fix encoding errors in Japanese translation<br />
*r36900,r36901 startlazarus: fixed asking for custom or default<br />
*r36902 LCL: fixed ShowModal() when Hide() is called on modal form to be Delphi compatibile.issue [[http://bugs.freepascal.org/view.php?id=15390 15390]]<br />
*r36903 IDE: fixed read/write designinfo, bug 21804<br />
*r36904 IDE: do not save a new project where only session was modified, bug 21803<br />
*r36905 gtk2 intf: fixed TGtk2WSCustomTabControl.GetDefaultClientRect to check if gtknotebook has a page<br />
*r36906,36907 codetools: AddLocalVar: do not add hidden used unit<br />
*r36908 Qt: added TQtWidget.testAttribute() function.<br />
*r36910 DBG: Tests for environment<br />
*r36913 TAChart: Set Brush.Color before Brush.Style to work around issue [[http://bugs.freepascal.org/view.php?id=21806 21806]]<br />
*r36914: TAChart: Fix compilation of OpenGL drawer<br />
*r36924 gtk2 intf: TGtk2WSCustomTabControl.GetDefaultClientRect for TTabControl<br />
*r36925 Qt: fixed resize events of TQtTabWidget and accurate information about clientRect changes. issue [[http://bugs.freepascal.org/view.php?id=21805 21805]]<br />
*r36929 Gtk2: fixed text background drawing in TGtk2WidgetSet.ExtTextOut() when BkMode = OPAQUE.issue [[http://bugs.freepascal.org/view.php?id=19384 19384]]<br />
*r36941 Translations: Brazilian Portuguese translation update by Marcelo B Paula, bug 21818<br />
*r36938,36939 LazReport, lift up to preview window improving layout and functionality, from Julio Jimenez B.<br />
*r36942 LazReport, avoid hiding text at some zoom values due small differences in text height calc (DONT MERGE YET, NEEDS MORE TESTING)<br />
*r36943 IDE: msg quickfix for cant find unit: add position<br />
*r36956 carbon: added FHasPaint variable to TCarbonWidget to allow owner draw.issue [[http://bugs.freepascal.org/view.php?id=21744 21744]]<br />
*r36957 carbon: added ScrollRect() routine to TCarbonWidget. issue [[http://bugs.freepascal.org/view.php?id=21741 21741]]<br />
*r36958 carbon: set FTabIndex instead ATabIndex variable in TCarbonTabsControl.SetPageIndex. patch by David Jenkins.issue [[http://bugs.freepascal.org/view.php?id=21728 21728]]<br />
*r36959 carbon: optimized caret drawing to not update whole widget.patch by David Jenkins. issue [[http://bugs.freepascal.org/view.php?id=21768 21768]]<br />
*r36960 carbon: fixed order of check width > height in TCarbonTrackbar.patch by David Jenkins. issue [[http://bugs.freepascal.org/view.php?id=21740 21740]]<br />
*r36961 carbon: implemented autosizing for listview / databrowser columns.patch by David Jenkins. issue [[http://bugs.freepascal.org/view.php?id=21745 21745]]<br />
*r36962 carbon: fixed possible bad loop in TCarbonSpinEdit.CreateWidget.Patch by David Jenkins.issue [[http://bugs.freepascal.org/view.php?id=21732 21732]]<br />
*r36965 IDEIntf: fixed typo<br />
*r36967 Gtk2: fixed retreiving font name from TGtk2WidgetSet.GetObject() when font is default. issue [[http://bugs.freepascal.org/view.php?id=21828 21828]]<br />
*r36968 codetools: JumpToPublishedMethodBody: raise error<br />
*r36969 codetools: fixed FindMethodNodeInImplementation for program<br />
*r36971 tests: codetools: added test for duplicate sections, parsing library<br />
*r36972 codetools: fixed reparsing initialization, finalization, begin<br />
*r36973 codetools: fixed treating initialization, finalization as statement<br />
*r36974,r36975,r36976,36977,36978 codetools: fixed find declaration in library starting in initialization, bug 21832<br />
*r36981,r36982 codetools: identifier completion: fixed continue searching<br />
*r36979 Updated Japanese translation by Haruyuki Fujimaki<br />
*r36980 Fix japanese encoding<br />
*r36983,r36984 codetools: identifier completion: some keywords for library, program<br />
*r36985 codetools: identifier completion: keyword initialization for library, issue [[http://bugs.freepascal.org/view.php?id=21839 21839]]<br />
*r36986 Updated Japanese translation by Haruyuki Fujimaki<br />
*r36990 codetools: identifier list: skip identifier at cursor<br />
*r36991,r36992 IDE: identifier completion: add do after with, issue [[http://bugs.freepascal.org/view.php?id=16850 16850]]<br />
*r36996,r36997,r36999,r37013,r37014,r37015 runtests: fixed compilation, added some tests<br />
*r37012,r37011,r37009,r37008,r37007,r37006,r37005,r37004,r37003,r37002,r37000 carbon interface: clean up<br />
*r37020 IDE: recent/history lists: replaced case sensitive comparison with three types<br />
*r37021 docking: update modified flags<br />
*r37022 codetools: fixed uninitialized result<br />
*r37025 IDE: use unit dialog: check for syntax errors<br />
*r37026,r37027 DBG: Prepare for different line endings. / Accept different line endings (#10, #13, #10#13, #13#10) issue [[http://bugs.freepascal.org/view.php?id=0021834 0021834]].<br />
*r37029 Gtk2: fixed drawing of text with solid brush. issue [[http://bugs.freepascal.org/view.php?id=21863 21863]]<br />
*r37031 Gtk2: do not draw text background if colormap isn't assigned. Second part of issue [[http://bugs.freepascal.org/view.php?id=21863 21863]].<br />
*r37032 gtk2: clean up old mouse capture<br />
*r37033 gtk2: fixed releasecapture<br />
*r37034 gtk2: verbosity for ubuntu liboverlay mouse capture bug<br />
*r37038 sqldb: Enable mssqlconnection for fpc >= 2.6.1 (patch from Reinier Olilagers, bug 21867) - added because creates conflicts with later sqldb merges<br />
*r37040: TAChart: Workaround for TDbChartSource referring to the dataset with Filtered := true<br />
*r37043 LCL, fix TPostScriptPrinterCanvas.ClipRect is empty-rect until explicitly set by user, patch from Joachim Paepke, issue [[http://bugs.freepascal.org/view.php?id=21027 21027]]<br />
*r37051 Translations: Ukrainian translation update by Igor Paliychuk<br />
*r37052 regenerated translations; updated Russian translation<br />
*r37053 LCL: fixed compilation for fpc 2.7.1<br />
*r37054,37055,37057 set TDBLookup.FListLink.DataSource dynamically to FListSource or a local datasource. Issue [[http://bugs.freepascal.org/view.php?id=15410 15410]]<br />
*r37067 LCL: fixed visibility of implemented interfaces<br />
*r37069 simple deb: using make bigide, updated list of tools<br />
*r37070 openglcontrol: fixed mem leak, issue [[http://bugs.freepascal.org/view.php?id=21597 21597]]<br />
*r37071 codetools: identifier completion: unit name of self<br />
*r37076 gtk2: clean up<br />
*r37077 IDE: clean up<br />
*r37092 LCL: fixed compilation for fpc 2.7.1<br />
*r37093 DBG: Testcase: fixed reading env-options<br />
*r37095 SynEdit: fix crash in overview gutter creation. Issue [[http://bugs.freepascal.org/view.php?id=0021887 0021887]]<br />
*r37096 SynEdit: Do not offer OverviewGutter in Gutter-parts designer<br />
*r37101 lazreport: fixed compilation with fpc 2.7.1, new TBookMark<br />
*r37102 lazreport: clean up<br />
*r37112,r37113 SynEdit: highlight class "helper". Fix wrong highlight of "sealed" Issue [[http://bugs.freepascal.org/view.php?id=0021812 0021812]]<br />
*r37115 openglcontrol: fixed mem leak, issue [[http://bugs.freepascal.org/view.php?id=21597 21597]]<br />
*r37126 LCL: Publish some TCheckGroup properties.<br />
*r37129 gtk2: clean up<br />
*r37154,37247,37248 lcl-db: prevent lookup initialization when dataset is destroyed<br />
*r37155 LCL, use rectclip to set clipping rectangle instead of current path because it sometimes get drawn on next stroke (related to r37043)<br />
*r37157 Qt: fixed key events from QCalendar, now tabbing works fine.<br />
*r37160 LCL: published missing properties TCalendar.Hint and TCalendar.TabOrder.<br />
*r37167 LCL: Fix range check error in StringGrid when sorting and RowCount=FixedRows, issue [[http://bugs.freepascal.org/view.php?id=21947 21947]]<br />
*r37073 codetools: resolve expr: thisunitname.implementationenidentifier<br />
*r37078 codetools: find declaration: selfunit.implementationidentifier<br />
*r37079,r37080,r37081,r37082,r37083,r37087,r37089,r37098 codetools: getsmarthint: class variables, enum, array of, inheritance, property params and type, use unit<br />
*r37085 IDE: show compiler options: check compiler<br />
*r37086,37088 IDEIntf: removed TLazCompilerOptions.LCLWidgetType, fixed computing default LCLWidgetType on cross target OS<br />
*r37090 codetools: do not try to search in record ancestors<br />
*r37105 DBG: Watches Copy Name/Value to clipboard. Issue [[http://bugs.freepascal.org/view.php?id=0021860 0021860]]<br />
*r37106 DBG: Register Copy Name/Value to clipboard. Issue [[http://bugs.freepascal.org/view.php?id=0021860 0021860]]<br />
*r37107 DBG: Watches, added inspect/evaluate to popup<br />
*r37116 DBG: Fix a possible crash in debugger (history). Issue [[http://bugs.freepascal.org/view.php?id=0021901 0021901]]<br />
*r37195 SourceEdit: Do not access outdated tab-history entries (dangling pointers). Issue [[http://bugs.freepascal.org/view.php?id=0021939 0021939]]<br />
*r37196 SourceEdit: Only add tabs to tab-history that were accessed<br />
*r37103,r37132 codetools: nested types: Self and inherited<br />
*r37104,r37120 codetools: GetSmartHint: show anonymous arrays<br />
*r37111 IDE: Make Close button work in Components List dialog. Issue [[http://bugs.freepascal.org/view.php?id=21892 21892]],<br />
*r37118 IDE: build ide: if building fails, clear flag clean up once<br />
*r37119 IDE: when building IDE failed: restore backup<br />
*r37121,r37122 IDE: select frame: search in packages<br />
*r37130 IDE: select frame: search in packages<br />
*r37131 LCL, implements textrect clipping in Postscriptprintercanvas<br />
*r37133 SynEdit: Fix WantTabs / Change default to "True" Issue [[http://bugs.freepascal.org/view.php?id=0021904 0021904]]<br />
*r37134 SynEdit: Remove not required invalidation (paint / call to wrong Update() )<br />
*r37135 SynEdit: Remove wrong implementation of Update. Update no longer forwards to Invalidate<br />
*r37136 IpPro: Fix painting for SelectAll<br />
*r37137 IDE, IpPro: Allow copy to clipboard from hint (zeljko added because of conflict in 37345)<br />
*r37140 cody: show code node info: show complete source<br />
*r37141 SynEdit: Fixed Caret paint error (extra caret left on screen) Issue [[http://bugs.freepascal.org/view.php?id=0021924 0021924]]<br />
*r37143 IDEIntf: added TPropertyEditorHook.IsSelected<br />
*r37144 IDEIntf: TDefaultComponentEditor: always select component<br />
*r37146 IDE: if component class is missing: note about RegisterClass<br />
*r37148 Translations: Ukrainian translation cleanup<br />
*r37149 IDE: regenerated translations; updated Russian translation<br />
*r37151 cody: IDE item to create dockable IDE window<br />
*r37152 cody: new IDE window: show dialog to setup form name<br />
*r37162,r37163 IDE: TProjectFileDescriptor.DefaultResourceName: first try without appending a number, check for pascal keywords<br />
*r37164,r37165 IDE: fixed DoGetUnitRegisterInfo for virtual files<br />
*r37166 SynEdit: Fixed Caret when scrolling under older Wine (Win Emulator)[[http://bugs.freepascal.org/view.php?id=21929 21929]]<br />
*r37212 sqldb: added icon for TMySQL55Connection for fpc 2.6.1 '<br />
*r37213,r37214,r37219 codetools: do not save errors outside parser<br />
*r37215 codetools: GetSmartHint: ^, .., file of, class of<br />
*r37220 Translations: Czech IDE translation update by Martin Smat<br />
*r37224 SynEdit: Autocompletion, workaround for click on hint Issue [[http://bugs.freepascal.org/view.php?id=21952 21952]]<br />
*r37231 SynEdit: Prevent some scrolling, while selecting by mouse. Issue [[http://bugs.freepascal.org/view.php?id=0021996 0021996]]<br />
*r37232 DBG: Inspect window, improve scrolling<br />
*r37234 DBG: Improve start-up to work with bug in gdb 7.4<br />
*r37262 searching compiler: search first in dir of fpc.exe, then in PATH<br />
*r37263,r37265 codetools: improved error message on unit not found<br />
*r37264 fix setting radiogroup.itemindex under gtk2. Issue [[http://bugs.freepascal.org/view.php?id=22013 22013]]<br />
*r37267 Docs: improved build_lcl_docs robustness when working with TProcess, patch from Reinier Olislagers, bug 22000<br />
*r37273 SourceEditor: Fix crash when closing several tabs, while debugging (paused / loading line info). Maybe related to issue [[http://bugs.freepascal.org/view.php?id=22015 22015]]<br />
*r37274 Fix Crash in building "Windows" (list of open W.) Menu. Note 0059576 in Issue [[http://bugs.freepascal.org/view.php?id=22015 22015]] (not related to other parts of issue)<br />
*r37280 SQLdb: added missing tmysql55connection.png, bug 22033 '''Related to 37212 and other revisions for TMySQL55Connection'''<br />
*r37281 SynEdit: protect ProcessCommand() against early destruction by ReleaseComponent. Issue [[http://bugs.freepascal.org/view.php?id=0022035 0022035]]<br />
*r37285 IDE: make Close button work in Window Manager<br />
*r37286 Patch from bug 21651, automatically adds quotes to paths with spaces for OpenDocument in Mac OS X<br />
*r37297,r37298 SynEdit, Pas-HL: record helper, deprecated in object<br />
*r37311 Translations: Arabic IDE translation update by Mazen NEIFER<br />
*r37312 IDE: Make Help button work in Editor Window Manager, issue [[http://bugs.freepascal.org/view.php?id=21961 21961]]. (zeljko added to merge list because of conflicts in 37491)<br />
*r37325 regenerated translations; updated Russian translation<br />
*r37326 Translations: Brazilian Portuguese translation update by Marcelo B Paula, bug 22064<br />
*r37327 IDE, Code Generation options: changed wrong -Op386 option to correct -Op80386. Patch by barlone with some consistency changes, bug 22062.<br />
*r37357 Gtk2: fixed mbAll button on dialogs. Added response keys which does not exist in gtk2. issue [[http://bugs.freepascal.org/view.php?id=22083 22083]]<br />
*r37344 gtk2 intf: less hints<br />
*r37345 ipro: less hints <br />
*r37359 lazreport: German translations<br />
*r37360 cody: German translations<br />
*r37039,r37319,r37324,r37361 sqldb: German translations (zeljko added 37039,37319,37324 because of conflicts)<br />
*r37362 educationlaz: German translations<br />
*r37363 ide: German translations<br />
*r37372 lcl: don't access Items of TreeView if DragOver happens during treeview destruction<br />
*r37373 IDE: debugger options: check the resolved file, bug 22086<br />
*r37374 Qt: bypass windowmanager when showing dragimagelist.<br />
*r37375 Gtk2: do not show taskbar entry for dragimagelist.<br />
*r37376 IDE: update TUnitInfo.ResourceBaseClass on loading lfm<br />
*r37378 [Edited, includes selected lines of 37402] SourceEditor: Hide hint, when mouse moves (even if outside IDE, or IDE is not active). Issue [[http://bugs.freepascal.org/view.php?id=0022016 0022016]]<br />
*r37368 DBG: Fixed array len for 64 bit<br />
*r37369 lcl: don't crash when either DragTarget or dragged control is freed (issue [[http://bugs.freepascal.org/view.php?id=22067 22067]])<br />
*r37370 lcl: cleanup debug info<br />
*r37371 lcl: fixed a memory leak when canceling drag of dead control<br />
*r37380 SourceEdit/DBG: Ensure Codebuffer is updated before using it to add watches<br />
*r37383 IDE: TUnitInfo.fModified: do not set on get<br />
*r37384,r37401 IDE: do not set TUnitInfo.Modified when committing source editor to codetools<br />
*r37388,r37389,r37390,r37391,r37392 tests: added tests for cfgscripts, fixed unit output directory, cfgscript: fixed error message if semicolon is missing, IDE: added conditionals functions GetIDEValue, GetEnv, LCL: use IDE widgettype as default<br />
*r37397 TodoList: properly trim comment markers and convert multiline text to single line, fixes bug 22085. Based on patch by Anton.<br />
*r37400 codetools: fixed mem leak<br />
*r37418: TAChart: Fix range check using datapoint tool on a chart without series<br />
*r37440 DBG: do not set temporary stack = -1 in thread changing. This may cause errors<br />
*r37444 DBG: Watches, save "Use instance class" to config<br />
*r37449 LCL: fixed comments<br />
*r37451 Qt: fixed wrong SetCapture() under win32. Problem was passed TQtWidget handle instead of underlaying widget winID() which is native handle.<br />
*r37453 SynEdit: Fix goto bookmark and persistent block. Do not clear persistent block<br />
*r37461 lcl: TCustomForm.UpdateDockCaption: fixed repair garbage<br />
*r37463 IDE: when docked keep IDE caption<br />
*r37464 Help, DBG: New link to wiki for watch properties<br />
*r37475 codetools: TCustomCodeTool.FindLineEndOrCodeAfterPosition: fixed crash when at end of code<br />
*r37476 codetools: clear nodes behind, when linkscanner parsed only parts<br />
*r37481 IDE: fixed storing old LCLWidgeType, bug 22174<br />
*r37482 codetools: save parse error of operator, do not save errors outside parser, fixed parsing method name with generic parameter<br />
*r37483 codetools: allow keywords in program name<br />
*r37534 Qt: do not call setValue() but setPosition() so lcl gets accurate values later. issue [[http://bugs.freepascal.org/view.php?id=22187 22187]]<br />
*r37491 Help, DBG: Link to wiki for breakpoint properties (zeljko - 37312 is merged too, because of conflicts)<br />
*r37470 IDE, DBG: debug-eval hint, do not show, if selection exceeds one statement (e,g whole file selected). Part of issue [[http://bugs.freepascal.org/view.php?id=0022081 0022081]]<br />
*r37471 SourceEditor: Fix an issue with focusing an editor, that is being closed (while debugging) "no parent handle". Issue [[http://bugs.freepascal.org/view.php?id=0022015 0022015]]<br />
*r37517 SynEdit: fixed folding for "case" and "try" in certain code segments (initialization / case...else try)<br />
*r37518 SynEdit: Pas-HL: fix detection of case...else versus if...then...else<br />
*r37522 SynEdit: Pas-HL: better detection of case...else<br />
*r37623 SourceEditor: Fix (Work-around) an issue with focusing an editor, that is being closed (while debugging) "no parent handle". Issue [[http://bugs.freepascal.org/view.php?id=0022015 0022015]] // Required some parts of r37502<br />
*r37609 DBG: Avoid re-queuing of dis-assembler requests, after cancelling it. Part of issue [[http://bugs.freepascal.org/view.php?id=0022230 0022230]]<br />
*r37643 DBG: Disassembler: prevent disassembler from doing large address ranges, if gdb returns data with far away addresses. Issue [[http://bugs.freepascal.org/view.php?id=0022230 0022230]]<br />
*r37657 DBG: fixed a out of index error, in watches history<br />
*r37694 DBG: Fixed possible crash in watch evaluation (WatchValue freed while evaluating / in GetValue)<br />
*r37466 IDE: added menu item to insert MIT license text<br />
*r37407,r37474,r37492 IDE: TMainIDE.DoSourceEditorCommand: improved focus check, requires r37466<br />
*r37564 LCL: TCustomListView: reset FCacheIndex and FCacheItems before sorting list, otherwise we'll have unexpected results. issue [[http://bugs.freepascal.org/view.php?id=22218 22218]]<br />
*r37505, r37509, r37516, r37523 fixed compilation with fpc 2.7.1<br />
*r37592 lcl: fixed compilation fpc 2.7.1<br />
*r37525 TAChart: Display legend symbols even if the text is empty<br />
*r37565 TAChart: Display major axis marks at the edges of the clip range<br />
*r37576 TAChart: Fix infinite recursion when drawing chart listbox from series with Legend.Multiplicity <> lmSingle<br />
*r37588 TAChart: Include Item.Y in reordered list of TCalculatedChartSource. Update test. '''This will break old tests. Please contact me for a fix --- Ask'''<br />
*r37727 TAChart: Update to the recent version of FPVectorial<br />
*r37587 Qt: unset icon when doing internal sync after sorting. part of issue [[http://bugs.freepascal.org/view.php?id=22218 22218]]<br />
*r37620 LCL: invalidate parent preferredsize when borderspacing changed, bug 17947<br />
*r37621 LCL: clean up - invalidate in TControl.DoBorderSpacingChange no longer needed with new autosizing<br />
*r37622 lazutils: added missing file<br />
*r37624 LCL: GetClientRect: if interface has the right width,height trust the clientrect, this avoids some unneeded resizes<br />
*r37573 IDE: project inspector: add files: allow dotted unit names, bug 22209<br />
*r37619 IDE: open package dependency: try provides, issue [[http://bugs.freepascal.org/view.php?id=17960 17960]]<br />
*r37628 IDE: compiler options: disable target platform for packages<br />
*r37594 codetools: fixed Unneeded extra space in event assignment completion<br />
*r37613 codetools: property completion: add class var for class property variables<br />
*r37614 codetools: class completion: search variables in all sections, bug 22246<br />
*r37625,r37626,r37627 codetools: class completion: fixed searching var node when first is class var<br />
*r37629 codetools: fixed adding class keyword for property setter of a class property<br />
*r37630 IDE: codeexplorer: labels<br />
*r37634 IDEIntf: objectinspector: fixed painting outside paint event<br />
*r37631 codetools: no var node for anonymous record case variables<br />
*r37632 codetools: identifier completion: when creating an override hide higher visibility members<br />
*r37633 codetools: class completion: add static method modifier for setter of class property<br />
*r37636 codetools: class completion: add static method specifier for class property setter<br />
*r37635 IDE: paste component: fix renamed references<br />
*r37637,r37638,r37639 IDE: paste multiple components: fix references, lcl: LRSObjectTextToBinary: write convert list of components<br />
*r37640 IDE: paste components: update TControl.Caption<br />
*r37642 lcl: fixed LRSObjectTextToBinary toWString, issue [[http://bugs.freepascal.org/view.php?id=19650 19650]]<br />
*r37644 codetools: fixed inserting proc bodies in implementation in front of methods<br />
*r37652,r37653,r37655 codetools: using TFileStreamUTF8<br />
*r37656 IDE: using TFileStreamUTF8 and TStringListUTF8<br />
*r37663 IDE: fixed show info on --help when no stdout exists<br />
*r37689 LCL: fixing handling of special keys for TCustomEdit and TCustomMemo<br />
*r37690 codetools: forward proc completion: stay in same section<br />
*r37697 DBG: Dialogs, don't give help related commands to IDE. They will be ignored<br />
*r37698 IDE Help: add urls for dbg dialogs<br />
*r37703 lazutils: utf8pos: added optional parameter StartPos<br />
*r37704 IDE: setup dialog: show fpc source directory release version as warning instead of error<br />
*r37707 tools create deb+rpm: use 128x128 icon<br />
*r37705 SynEdit: open and close clipboard explicitly to write multiple formats.<br />
*r37714 lcl: gtk2: warn only once about liboverlay<br />
*r37711 lhelp: cleaned up paths<br />
*r37712 lhelp: clean up<br />
*r37713 lhelp: resolve macros in HelpEXE on the demand<br />
*r37715 chmhelp: using search path to search for chm files<br />
*r37716,r37717 chmhelp: added path $(LazarusDir)/docs/chm<br />
*r37718 'hmhelp: search ref.chm in docs/chm<br />
*r37726 create_lazarus_deb: added option chmhelp<br />
*r37722 DBG: Event-Log: Do not cache Options. Allow user to change options while debugging<br />
*r37596 Patch from {{MantisLink|0022231}} "fix warnings with fpc 2.6.1".--[[User:AlexVinS|AlexVinS]] 21:40, 8 June 2012 (UTC)<br />
*r37745 deb+rpm: default environmentoptions: updated to 107, removed default gdb entry<br />
*r37748,r37755 lhelp: added makefile<br />
*r37749 make bigide: build lhelp<br />
*r37753 IDE: fixed comparing file names case insensitive<br />
*r37754 lazutils: inlined UTF8CompareStr<br />
*r37760 Use Utf8CompareText instead of AnsiCompare<br />
*r37762 linux: added encoding to desktop file<br />
*r37769 Use Utf8CompareText instead of AnsiCompare<br />
*r37770 TAChart: Fix AV when clearing Series.Styles and TColorMapSeries.ColorSource properties<br />
*r37772 Use Utf8CompareText instead of AnsiCompare<br />
*r36804 win32: mark client rect as required update before WM_SIZE passing, remove DoAdjustClientRectChange - they are called inside WM_SIZE handler after the client rect is updated (fixes bug [[http://bugs.freepascal.org/view.php?id=0021724 0021724]])<br />
**Paul remarked about r36804: "Please don't merge it for at least 2 weeks". Also seems to cause problems in grids, see [http://bugs.freepascal.org/view.php?id=21790 issue [[http://bugs.freepascal.org/view.php?id=21790 21790]]].<br />
*r36993: LCL, fixed Problems setting Width, Height for TCustomGrid if ScrollBars is auto, from cobines, issue [[http://bugs.freepascal.org/view.php?id=21790 21790]]. If r36804 is merged, please merge also r36993<br />
*r37783 startlazarus: linux: adding LIBOVERLAY_SCROLLBAR=0 to avoid problems with mouse capturing<br />
*r37785 gtk2 intf: disable liboverlay by default<br />
*r37790 gtk2 intf: use setenv only on Linux<br />
*r37795: export tgz: added option to add chm files<br />
*r37796 IDE: when copying secondary configs create the primary config directory first<br />
*r37797 rpm: added option chmhelp<br />
*r37810 rpm: fixed building without chmhelp<br />
*r37811 lhelp: fixed invalid recent item path in config, added build modes default,debug<br />
*r37814 chmhelp: clean up old ipc files to prevent IDE hang<br />
*r37817-r37821 MAKE DEB<br />
*r37838 DBG: Fix handling console input<br />
*r37824 chmhelp: Fixed lazarus hanging when chmhelp pipe is leftover from an improperly closed lhelp<br />
*r37825 chmhelp; Fixed chmhelp typo (boolean error)<br />
*r37826 chmhelp: fixed bug where a new lhelp process could be started each time F1 was pressed<br />
*r37841 DBG: Pseudo-Terminal, accept tabs<br />
*r37848 lazutils: docs: fixed encoding and package name<br />
*r37849 lcl: docs: fixed encoding<br />
*r37850 ide: docs: fixed encoding<br />
*r37851 updated docs<br />
*r37853 lcl: docs: fixed some links<br />
*r37852 build_lcl_docs: using UTF-8 file functions, added option -h<br />
*r37855 build_lcl_docs: showcmd: show working directory<br />
*r37861 lcl: check if ListDataset is loading to update lookup info. Issue [[http://bugs.freepascal.org/view.php?id=22337 22337]]<br />
*r37846 win32: let TComboBox.CloseUp fire before Change (delphi compatible). Fix 22352<br />
*r37880 IDE+startlazarus: use same working directory, needed for passing relative file names as command line parameters, fixed building lcl+lazutils chm on ubuntu 12<br />
*r37866 lazutils: fixed unit names<br />
*r37868 lazutils: added fpdoc files<br />
*r37869 docs: building lazutils+lcl chm<br />
*r37885 DBG: fixed parsing sets for debug-inspector<br />
*r37906 IDE-Options / SynEdit: Fixed RightEdge visibility (Recression)<br />
*r37919 DBG: Prevent potential crash/memory-corruption in Watches<br />
*r37920 DBG: Prevent potential crash in (dbg-)OnIdle handling<br />
*r37921 DBG: Prevent build up of no longer needed commands in queue<br />
*r37945 DBG: Prevent a crash, when the selected snapshot is deleted. Cas also happen when starting the debugger, while a snapshot from previous run is active<br />
*r37950 DBG: fixed endless loop in watch eval (auto type cast) Issue [[http://bugs.freepascal.org/view.php?id=0022425 0022425]]<br />
*r37961 DBG: Disable rangechecks for certain PtrUInt casts<br />
*r37993 carbon: fixed crash of IDE when compiled with range checks on<br />
*r38006 gtk2: fixed crash on QuestionDlg<br />
*r38003 IDE: fixed showing custom project options, issue [[http://bugs.freepascal.org/view.php?id=22486 22486]]<br />
** merged ONLY main.pp<br />
*r38016 ToDoList: fixed encoding of French translation, it should be UTF-8, not ISO-8859-1. Patch by batyann811, bug 22489.<br />
*r37981,37983-37989,38001,38004-38005,38012,38017 Win Installer<br />
===== Fixed after RC1 =====<br />
*r38127 IDE, EditorOptions: Fixed finding color attribute in localized IDE<br />
*r38132 IDE: setup: after changing lazarusdir: fetch translations and translate<br />
*r38133 chmhelppkg: invoke lazbuild with --pcp parameter<br />
*r38138 examples: testall: fixed start<br />
*r38139 examples: cleandirs: error for fpc version<br />
*r38140 examples: componentstreaming: fixed typo, clean up<br />
*r38141 lazfreetype: fixed range check error, improved error message<br />
*r38142 examples: mssqlconn: requires fpc 2.6.1<br />
*r38144 examples: synguttermarks: win32 gui mode, fixed Left position<br />
*r38146 examples: tv_add_remove: updated<br />
*r38147 examples: xmlreader: added example xml<br />
*r38157 IDE: fixed saving ambiguousfileaction, bug 22573<br />
*r38158 examples: clean up<br />
*r38038 TAChart: Allow spaces in field names inside TDbChartSource.FieldY<br />
*r38168 synuni: clean up fpc options<br />
*r38170 synuni, semaphorgridlpk: clean up fpc options<br />
*r38022 SynEdit: Fixed drawing errors for frames (left frame site drawn at wrong offset)<br />
*r38145 LCL: TListView fixed "List index out of bounds" while deleting items. issue [[http://bugs.freepascal.org/view.php?id=22552 22552]]<br />
*r38150 SynEdit TSynMultiSyn: Fixed crash when deleting lines. Part of issue [[http://bugs.freepascal.org/view.php?id=0022519 0022519]]<br />
*r38151 SynEdit Highlighter: Fixed crash when scanning empty<br />
*r38152 SynEdit TSynMultiSyn: typo<br />
*r38175 SynEdit TSynMultiSyn: Fixed updating, when appending to EOT. Part of issue [[http://bugs.freepascal.org/view.php?id=0022519 0022519]]<br />
*r38205 lazaruside.fi.po: Finnish translations<br />
*r38180 Synedit: fix matching-bracket-highlight in comments (closing bracket at eol) issue [[http://bugs.freepascal.org/view.php?id=22586 22586]]<br />
*r38198 IDE: Export to html, do not enforce check for writeable. Issue [[http://bugs.freepascal.org/view.php?id=22588 22588]]<br />
*r38199 lazutils: do not use winodws W functions under Win98, issue [[http://bugs.freepascal.org/view.php?id=22596 22596]]; '''Breaks compilation on wince, because win32platform is not defined.'''<br />
*r38202 openglcontrol: win32: fixed sharing context<br />
*r38204 Synedit: fixed typo in IFDEF for fpc 2.60 bug<br />
*r38225 TAChart: Fix division by zero in zoom tools with extreme zoom ratios<br />
*r38226 TAChart: Fix hang in functional series with extreme zoom ratios<br />
*r38223 SynEdit TSynMultiSyn: Several fixes issue [[http://bugs.freepascal.org/view.php?id=0022519 0022519]]<br />
*r38232 TAChart: Add InRangeUlps utility function<br />
*r38233 TAChart: Fix disappearance of axis marks located exactly at chart bounds<br />
*r38234 TAChart: Fix crash when setting Marks.LabelFont from the Object Inspector<br />
*r38237 Examples/SynEdit: Readme and typo in comment<br />
*r38266 IDE: Tweak the layout of ManageExamplesForm<br />
*r38260 TAChart: Use correct notification when the series' source changes<br />
*r38261 TAChart: Issue change notifications when modifying TListChartSource.DataPoint property<br />
*r38285 lhelp: replace MessageBox, with Form.Modal. FIx IPC hang. issue [[http://bugs.freepascal.org/view.php?id=0022592 0022592]]<br />
<br />
===== Fixed after RC2 =====<br />
*r38293 windows installers: don't ask to overwrite the environment options in the secundary config directory from Reinier Olislagers<br />
*r38339 SynEdit TSynMultiSyn: Fix CaseSensitivity for Sheme marker. Issue [[http://bugs.freepascal.org/view.php?id=0022693 0022693]]<br />
*r37386 Remove writeln() that looks like a residual debug message. Issue [[http://bugs.freepascal.org/view.php?id=0022544 0022544]]<br />
*r38385 Translations: removed unmaintained Portuguese translation, which was outdated copy of Brazilian Portuguese one<br />
<br />
== How to merge ==<br />
The lazarus developers have decided to use the native svn merge for this branch. Other branches used the svnmerge.py script to manage the revisions to be merged.<br />
<br />
* TODO: Maybe this information should be put in a separate page.<br />
<br />
[[SVN_Migration#Merge_with_plain_svn]]<br />
=== Using TortoiseSVN ===<br />
As noted in the link above using TortoiseSVN is more or less self explaining. <br />
<br />
* TODO: add some screen shots.<br />
<br />
When committing, in the recent messages a nice commit message is available.<br />
<br />
Tested with TortoiseSVN 1.7.6, SVN 1.7.4.<br />
<br />
=== Show list of revision that can be merged ===<br />
In the lazarus fixes_1_0 directory do:<br />
svn mergeinfo ^/trunk --show-revs eligible<br />
Or if you don't have a fixes directory checked out, you can pass the URL path of the fixes branch:<br />
svn mergeinfo ^/trunk http://svn.freepascal.org/svn/lazarus/branches/fixes_1_0 --show-revs eligible<br />
<br />
=== Show list of revision that have been merged ===<br />
In the lazarus fixes_1_0 directory do:<br />
svn mergeinfo ^/trunk --show-revs merged<br />
<br />
=== Merging revisions from trunk ===<br />
To merge one or more revisions from trunk, use the svn merge command. For example to merge revision 36506 and 36510 use:<br />
svn merge -c 36506,36510 ^/trunk<br />
<br />
To generate a commit log message, use:<br />
svn log ^/trunk -c 36506,36510 > svnmerge-commit-message.txt<br />
<br />
Edit svnmerge-commit-message.txt with your favorite text editor and add a first line like:<br />
Merged revision 36506,36510 from /trunk.<br />
<br />
Commit this with:<br />
svn commit -F svnmerge-commit-message.txt<br />
<br />
=== Blocking a revision to be merged ===<br />
Sometimes you want to block a revision to be merged, i.e. you want to make sure that this revision is never merged to the fixes branch, for example, because it contains a new feature or it contains a version number change not applicable to the fixes branch, but only to trunk. To block revision 36507, use:<br />
svn merge -c 36507 --record-only ^/trunk<br />
Then you can create a log message with:<br />
svn log ^/trunk -c 36507 > svnmerge-commit-message.txt<br />
Edit svnmerge-commit-message.txt with your favorite text editor and add first line like:<br />
Blocked revision 36507 from /trunk<br />
Then commit this change:<br />
svn commit -F svnmerge-commit-message.txt</div>
Paul Ishenin
https://wiki.freepascal.org/index.php?title=Lazarus_1.0_fixes_branch&diff=62005
Lazarus 1.0 fixes branch
2012-09-25T03:25:26Z
<p>Paul Ishenin: /* Merged revisions for 1.0.2 */</p>
<hr />
<div>This page contains the revisions to be merged from trunk to the [http://svn.freepascal.org/svn/lazarus/branches/fixes_1_0/ Lazarus 1.0 fixes] branch.<br><br />
Release notes can be found here [http://wiki.lazarus.freepascal.org/Lazarus_0.99.0_release_notes Release notes]<br />
<br />
== Fixes for 1.0.2 ==<br />
=== Merge requests ===<br />
==== Submitted by developer / committer ====<br />
<br />
*r38673 TAChart: Ignore NaNs while calculating TCustomChartSource.ValuesTotal<br />
*r38675 TAChart: Support Marks.Attachment = maCenter in pie series<br />
*r38697,38698 Gtk2: set TToggleBox.ParentColor default false so it's color is consistent with TButton when eg.parent color is clRed and TToggleBox.Color=clDefault.<br />
*r38694: TAChart: Fix update of TListChartSource.ValuesTotal cache when adding or removing NaNs<br />
*r38709: Qt: improved triggering of OnClick() in QEventShowToParent. issue [[http://bugs.freepascal.org/view.php?id=22872 22872]]<br />
*r38710: TAChart: Fix crash when using TChartExtentLink with LinkedChart.Chart = nil<br />
*r38712: TAChart: Fix crash while replacing linked chart in TChartExtentLink<br />
*r38713: TAChart: Use NumberOr function instead of checking for NaN explicitly<br />
*r38719: TAChart: Extract TDrawFuncHelper.ForEachPoint helper procedure ''This also fixes a hang while using data point tool on extremely zoomed-in series''<br />
*r38729: TAChart: Extract TDrawFuncHelper.XRange helper function. + Fix GetNearestPoint for rotated function series.<br />
*r38733: TAChart: Fix TChartSeries.SetColor to notify all listeners and require ListSource. Add TListChartSource.SetColor<br />
*r38735: TAChart: Fix memory leak in TDbChartSource.BeforeDraw<br />
*r38737: TAChart: Fix drawing of pie series with data from the db source<br />
*r38754: TAChart: Fix hang when changing TLineSeries.ShowPoints while drawing chart<br />
*r38757: TAChart: Display crosshair tool on mouse down<br />
*r38762: Gtk2: when style is drawing button then use style from button. issue #22901<br />
*r38779: TAChart: Do not notify from TListChartSource.SetXValue and SetYValue if the value did not actually change.<br />
*r38780: TAChart: Add TBasicPointSeries.MovePoint overload for graph coordinates ''not a fix, but required for r38788''<br />
*r38788: TAChart: Support axis transformations in TCustomChartSeries.MovePoint<br />
*r38792: TAChart: Fix crash on deleting subcomponent with active property editor<br />
*r38799: gtk2: implement SPI_GETWHEELSCROLLLINES. Fix a regression in VirtualTreeView wheel scroll<br />
*r38802: lcl:revert 33020, 33082, 33086, part of 33089 and 33389. These changes made the hint behavior Delphi incompatible thus leading to a regression in third party control like VirtualTreeView that handles hints in CMHintShow. Retrieve parent hint recursively if hintcontrol.hint is empty' (delphi compatible)<br />
*r38816 LazUtils: improve unicode path/filename handling by Fileutil.ReadFileToString, patch from Takeda Matsuki, bug 22953<br />
<br />
==== Submitted by others ====<br />
<br />
=== Merged revisions for 1.0.2 ===<br />
*r37217,37218,37225,37239,37241,37293,37304,37316 Qt: fixed keys handling (arrow keys & enter).<br />
*r38396 LCL: ColorBox - keep FSelected in sync all the time. fixes issue [[http://bugs.freepascal.org/view.php?id=22729 22729]]<br />
*r38426 CodeBrowser: check for virtual units. Issue [[http://bugs.freepascal.org/view.php?id=0022740 0022740]]<br />
*r38428 SynEdit, MultiHighlighter: fix adding text/sections at EOL. issue [[http://bugs.freepascal.org/view.php?id=0022745 0022745]]<br />
*r38430 TAChart: Fix out-of-bounds access when drawing empty polygons and polylines<br />
*r38437 ide: project target: apply default extension even if the file has already an extension, issue [[http://bugs.freepascal.org/view.php?id=22750 22750]]<br />
*r38444 IDE: fixed crash when releasing non existing component palette select button<br />
*r38473 tests: fixed compilation<br />
*r38464 TAChart: Fix error message in TFPCanvasDrawer.RadialPie<br />
*r38486 avglvltree: setcompare: set when count=0<br />
*r38503 TAChart: Copy BaseLength in TChartArrow.Assign<br />
*r38507 EditorOpts: default for top-info-hint<br />
*r38509 Debugger: Ensure Queue is not blocked by LineInfo Request. (If a LineInfoRequest was queued the DebuggerCurrentLine could not search the stack, as commands were not immediately run)<br />
*r38519 Gtk2: fixed crash with TListView when viewstyle is vsIcon or vsSmallIcon. issue [[http://bugs.freepascal.org/view.php?id=22778 22778]]<br />
*r38520 Qt: do not propagate keyrelease event as action trigger. issue [[http://bugs.freepascal.org/view.php?id=22737 22737]]<br />
*r38531 Debugger: Workaround to fix exe-line-indicators (blue dots) at debug start<br />
*r38533 Qt: fixed header offset and getClientRect for TListView when ViewStyle=vsReport.<br />
*r38547 TAChart: Support Y NaNs in polar series ''(this will cause compilation error -- please remove 'and CloseCircle' part from the last conditional in the TPolarSeries.Draw procedure)''<br />
*r38557 TAChart: Support brush style, pen style and pen width in fpvectorial drawer<br />
*r38571 TAChart: Draw chart correctly after decrease of an axis margin<br />
*r38529,r38530,r38535,r38543,r38548: fix carbon clipping, correctly return region types on HRGN related operations, fix generic IntersectClipRect routine<br />
*r38640,r38641,r38642,r38649: various ExtTextOut fixes for Carbon and Cocoa<br />
*r38551,r38552,r38562,r38563 Carbon: various winapi compatibility functions fixes<br />
*r38518 Qt: TQtWinApi.ExtTextOut() implemented Dx param. issue [[http://bugs.freepascal.org/view.php?id=22795 22795]] (zeljko will merge, need some testing)<br />
*r38572 Qt: propagate QEvent::ShortcutOverride to parent, so stop key event if shortcut is executed. issue [[http://bugs.freepascal.org/view.php?id=22827 22827]]<br />
*r38576,38577: Qt: fixed TQtWidgetSet.FrameRect(), now it uses passed brush to draw frame border.<br />
*r38610 Qt: fixed non ascii utf8 chars in TQtWidgetSet.ExtTextOut() when we use dx param. issue [[http://bugs.freepascal.org/view.php?id=22795 22795]] (depends on merging of r38518).<br />
*r38628,38629,38630,38634: Qt: fixed clipping bugs inside TQtWidgetSet.ExtTextOut()<br />
*38670 SynEdit: Fixed past eol paint error ** Must be ported by hand **<br />
*r38584 TAChart: Copy Attachment and YIndex in TGenericChartMarks.Assign ''(this code is in TATypes unit in v1.0)''<br />
*r38589 TAChart: Do not draw lines which should be invisible in OpenGL drawer<br />
*r38607 TAChart: Workaround for issue [[http://bugs.freepascal.org/view.php?id=22850 22850]] '''see patch in the mailing list'''<br />
*r38617 TAChart: Fix GetNearestPoint returning true with no points found inside radius, issue [[http://bugs.freepascal.org/view.php?id=22854 22854]]<br />
*r38644: Qt: fixed menu flickering. issue [[http://bugs.freepascal.org/view.php?id=22872 22872]]<br />
*r38651: TAChart: Fix zero division when calling ImageToGraph before the chart is drawn<br />
*r38674 Qt: fixed crash when invalid or null handle is passed into SetCapture.<br />
*r38679 Qt: update bitmap if TMenuItem has associated ImageList and ImageIndex. issue [[http://bugs.freepascal.org/view.php?id=22896 22896]]<br />
*r38672 SynEdit: fixed delete-next-word, if caret past eol. Issue [[http://bugs.freepascal.org/view.php?id=0022890 0022890]]<br />
*r38720 LCL, DefaultTranslator: fix handling of non-ASCII path to .po file, bug 22907, patch by Vladimir Zhirov<br />
*r37398 IDE: corrected version info language list, added Ukrainian language, bug 22103<br />
*r38722 IDE: added Lithuanian to version info language list, bug 22898<br />
*r38671: carbon: fix accidental error in index<br />
*r38743: carbon: reimplement linear gradient draw using shading to support OS X < 10.5<br />
*r38636,r38637: Gtk2: fixed text clipping and text background drawing<br />
<br />
== Fixes for 1.0 ==<br />
=== Merged revisions for 1.0.0 ===<br />
==== Submitted by developer / committer ====<br />
*r36506 LazReport, fix barcode dialog localization (Jesus)<br />
*r36508 Updated Japanese translation<br />
*r36509 Window Column, store pointer to resourcestring<br />
*r36510 LazReport, fix barcode addin when TfrBarCodeObject is not yet instantiated (in this case barcode editor defaults to memo view.<br />
*r36511 DividerBevel: implemented Transparent.<br />
*r36514 IDE: moved macros save/saveall to source editor<br />
*r36515 IDE: update macro descriptions after translating resource strings<br />
*r36516 IDE: trim TLazPackageGraph.GetFallbackOutputDir<br />
*r36517 IDE: check if package needs rebuild: switch to fall back directory: update compiler params<br />
*r36518 IDE: install/uninstall package dialog: fixed icons, added info about current state<br />
*r36523,r36530 IDE: Export as HTML<br />
*r36526 CodeTemplate: Improve final caret pos, if tmpl does not specify<br />
*r36527 CodeTemplate: allow tab to trigger / selection to ignore. issue [[http://bugs.freepascal.org/view.php?id=0017631 0017631]]<br />
*r36528 SynEdit: Template(Syncro) fix invalidation<br />
*r36529 IDE: Printing: break long lines. Issue [[http://bugs.freepascal.org/view.php?id=0013479 0013479]]; <br />
*r36547 IDE: Printing: break long lines. Fix Utf8. Update for rev 36529<br />
*r36531 LazReport: fixed buttonpanel localization in BarCode editor dialog<br />
*r36533 IDE: clean up of unused resourcestrings<br />
*r36534, r36536, r36553, r36583, r36646 regenerated translations; updated Russian translation<br />
*r36535 IDE: more clean up of unused resourcestrings<br />
*r36537 Documents LCLIntf.GetDeviceCaps<br />
*r36538 IDE: always store lazarus directory<br />
*r36539 LazReport: uppercase variable before comparing with hardcoded functions. Properly fix to 21624<br />
*r36543 IDE: setup dialog: using same file resolving as IDE<br />
*r36546 IDE: consider empty lazarusdirectory as pcp, empty fpcsrcdir as lazdir, empty testdir as lazdir<br />
*r36548 IDE: fixed note about wrong laz dir<br />
*r36549 IDE: fixed crash on find identifier references<br />
*r36551 IDE: translate descriptions of all macros<br />
*r36552 IDE: fixed editor tab position combobox items localization on Editor/Misc options page<br />
*r36556,r36557 IDE: warn if upgrading configs<br />
*r36561, 36562, 36563, 36566: Improve Options/Keymap<br />
*r36565 LCL: Prevent TShape.stRectangle disappearing with certain Height/Width and Pen.Width values.<br />
*r36567,r36568,r36569 IDE: show downgrade warning<br />
*r36570 lazbuild: select IDE build mode, fixed compiling with different mode<br />
*r36572 LCL: set csCaptureMouse on TToolButton, but don't send click if mouse is out of ttoolbutton on mouseup.issues [[http://bugs.freepascal.org/view.php?id=19688 19688]],[[http://bugs.freepascal.org/view.php?id=21560 21560]]<br />
*r36574 IDE: fixed saving environment on every change<br />
*r36577 LCL, TreeView: fix GetNextVisible, GetPrevVisible. Issue [[http://bugs.freepascal.org/view.php?id=21264 21264]]<br />
*r36575 IDE/Setup dialog: force taskbar button to be shown<br />
*r36584 IDE: import package list: opendialog<br />
*r36587 IDE: intial setup: fpc src dir: lazdir/fpc/fpcver/source<br />
*r36588 IDE: intial setup: fixed if no candidates found<br />
*r36589,r36590 IDE: compiler file name: search first with macros<br />
*r36591 IDE: verbose search for candidates<br />
*r36592 IDE: search fpc src relative to fpc.exe<br />
*r36594 IDE: check compiler: only run common names<br />
*r36595,r36599 IDE: use under windows as default for make the make.exe in the compiler directory<br />
*r36596 IDE,codetools: fixed ppccross,crossppc to ppcross<br />
*r36601 IDE: unify the 2 filters in KeyMapping window. Prevent a potential crash.<br />
*r36603 debian: updated patches to latest source in lazarus svn<br />
*r36608 Gtk2: do not set widget name, it's completelly unnecessary and produce unexpected behaviour if some keywords are in widget name.issue [[http://bugs.freepascal.org/view.php?id=21661 21661]].<br />
*r36613 SynEdit: Fix an issue with Scrollbars not being updated<br />
*r36617 lazbuild: build ide: replace exe on windows<br />
*r36644 IDE: improved 'Export package list' dialog localization<br />
*r36645 IDE: improved 'Package Graph Explorer' dialog localization<br />
*r36647,r36653,r36654,r36655,r36656,36668,36673 IDE: view / IDE internal / what needs building<br />
*r36648,r36650,r36651 IDE: read state file created by Makefile: fix path delimiters, checking compiled state: ignore -v,-i,-B flags, do not skip all -F<br />
*r36652 IDE: codetools options: shorter caption<br />
*r36658 regenerated translations; updated Russian translation <br />
*r36659 LCL: Refactoring. Make TCalculatorDialog.Execute more understandable by removing a "with" block.<br />
*r36661 LCL: Prevent "Test Dialog" feature of Calculator and Calendar dialogs locking the IDE, issue [[http://bugs.freepascal.org/view.php?id=21644 21644]]<br />
*r36616 SynEdit: do not include IME for WinCe<br />
*r36662 LCL: implementation of TCustomImageList.GetIcon()<br />
*r36663 In GUI strings, unify all 3 dots to have a space before them ( ...)<br />
*r36664 IDE: Use CreateAbsolutePath when switching between relative/absolute paths in AddFile dialogs (CreateAbsoluteSearchPath gives wrong output)<br />
*r36665 LCL: publish TUpDown.OnChangingEx<br />
*r36666 IDE etc.: unify 3 dots in GUI string to have a space ( ...).<br />
*r36667 translation: german: updates from Swen Heinig<br />
*r36669 updatemakefiles: write which lpk have conditionals<br />
*r36670,r36671 IDE,lazbuild: create makefile: use CPPROG instead of COPY to get the current date for Makefile.compiled under Windows<br />
*r36649,r36657,r36602,r36672,r36675,r36677,r36679,r36683,r36701,r36708,r36709 Makefiles: updated, reduced dependencies, fixed double compiles<br />
*r36676 LCL: Implement TListItem.EditCaption, issue [[http://bugs.freepascal.org/view.php?id=20295 20295]].<br />
*r36680,r36699 lazbuild: fixed crash, replaced some MessageDlg with IDEMessageDialog<br />
*r36681 IDE,lazbuild: use parsed compiler filename, make filename<br />
*r36682 IDE: debugfilename, debugsearchpath: use same function as other env vars to resolve macros, trim and find<br />
*r36686,r36688 IDE/lazbuild backup, delete the same lazarus exe on all platforms<br />
*r36694 regenerated translations; updated Russian translation<br />
*r36695 LazDataDesktop: regenerated translations; updated Russian translation<br />
*r36696 IDE: add resource strings for various windows manifest keys<br />
*r36697 fix ImageList.AddMasked() in case of source image has no mask description<br />
*r36702 IDE: TProject.TitleIsDefault: check for project+number, fix for renaming the title of a new project<br />
*r36711 Qt: enable wordwrap on TQtStaticText. issue [[http://bugs.freepascal.org/view.php?id=21697 21697]].<br />
*r36712 LCL: fixed function result<br />
*r36713,r36715 lcl: fixed TToolButton.MouseUp X,Y in boundsrect check<br />
*r36716 LCL, combination of modal form + wsMaximized style produces tiny windows on GTK2, issue [[http://bugs.freepascal.org/view.php?id=21634 21634]]<br />
*r36717 LCL: reverted changes to menus.pp from r36666 (by Paul's request)<br />
*r36718 LCL: regenerated translations<br />
*r36719, *r36826 LCL: fix range check error<br />
*r36720 LazReport: added option to ignore undefined symbols, from Luiz Americo, issue [[http://bugs.freepascal.org/view.php?id=21683 21683]]<br />
*r36723,36724 IDE,lazbuild: fixed repeated build project clean: save project state file before compiling too<br />
*r36727 lazbuild: fixed expanding --lazarusdir<br />
*r36728 make useride: pass --lazarusdir=.<br />
*r36729 Improve TStringHashList, prevents a PO file update crash. Issue [[http://bugs.freepascal.org/view.php?id=21685 21685]]<br />
*r36730 IDE: project wizard: fixed fixed size, bug 21714<br />
*r36731 lazreport: fix possible access violation by checking dataset for nil<br />
*r36732 win32: fix range check error<br />
*r36733 lazbuild: auto create ide/revision.inc if missing<br />
*r36734 Gtk2: fixed mouse capturing on native scrolling win controls (TListBox,TListView etc).issue [[http://bugs.freepascal.org/view.php?id=21713 21713]]<br />
*r36735 LCL: TToolButton: commented debugln().<br />
*r36740 lazbuild: fixed uninitialized function result, fixed checking if init failed, quick check if lazarusdir is valid.<br />
*r36741 lazutils: Patch with font collection support from Circular<br />
*r36744 examples: Adds a OpenURL/OpenDocument test<br />
*r36745 LCL: Adds the sysenvapis include files to the lpk and adds an extra safety in OpenURL for users which forget to encode spaces in filenames<br />
*r36746 IDE: fixed fixed size dialogs<br />
*r36747 IDE: sort selection: layout<br />
*r36748 IDE: added debugging for sort selection<br />
*r36749 gtk2: clean up<br />
*r36750 IDE: less debugging<br />
*r36751 IDE: jump to next/prev error: fixed direction<br />
*r36752 LCL: TTreeView: clean up<br />
*r36753 IDE: next/prev error: clear multi selection<br />
*r36754 lcl: move interface initialization of TCustomEdit from CreateWnd to InitializeWnd. Consistent with other controls and allows interfaces to check is handle is being created<br />
*r36755 IDE: Add acceleration keys and fix tab order in Project Wizard and ImageListEditor, issue [[http://bugs.freepascal.org/view.php?id=21718 21718]]<br />
*r36756 lcl: remove TCustomListBox.Loaded. ItemIndex is initialized in InitializeWnd<br />
*r36757 lcl: call inherited after setting FLines in TCustomMemo.InitializeWnd. Fix potential crash since widgetset code expect FLines be initialized <br />
*r36758 lcl: check for csDestroyingHandle in TControl.HandleObjectShouldBeVisible. Fix issue [[http://bugs.freepascal.org/view.php?id=19882 19882]]<br />
*r36759 lcl: revert 31890 since issue [[http://bugs.freepascal.org/view.php?id=19882 19882]] is properly fixed now<br />
*r36760 gtk2: less hints<br />
*r36761 gtk2: less hints<br />
*r36762 Carbon: fixed result of TWSCarbonCustomListView GetTopItem,GetViewOrigin and GetBoundingRect. issue [[http://bugs.freepascal.org/view.php?id=21733 21733]]<br />
*r36763 Carbon: added themed TComboBox drawing.Patch by David Jenkins. issue [[http://bugs.freepascal.org/view.php?id=21747 21747]]<br />
*r36764 Carbon: added themed TComboBox drawing.Patch by David Jenkins. issue [[http://bugs.freepascal.org/view.php?id=21747 21747]]<br />
*r36765 Docs: added David Jenkins to contributors list<br />
*r36766 Carbon: make carbon widget visibility in sync with lcl. Patch by David Jenkins. issue [[http://bugs.freepascal.org/view.php?id=21731 21731]]<br />
*r36767 lcl: remove Destroying and DestroyWnd calls from TCustomListBox.Destroy<br />
*r36768 lcl: cleanup TCustomListBox.Create<br />
*r36769 codetools: fixed skipping include files in skipped ifdef<br />
*r36770 gtk2: less hints<br />
*r36771 gtk2: less hints<br />
*r36772 ide: fix selection painting of debugger eventlog colors list<br />
*r36773 carbon: improved TCarbonWidgetSet.RawImage_XXXX routines.Patch by David Jenkins. issue [[http://bugs.freepascal.org/view.php?id=21743 21743]].<br />
*r36774 carbon: proper initialization of alpha channel.Patch by David Jenkins. issue [[http://bugs.freepascal.org/view.php?id=21753 21753]]<br />
*r36775 LCL: implement ClientToParent, ParentToClient based on patch of David Jenkins (issue [[http://bugs.freepascal.org/view.php?id=0021763 0021763]])<br />
*r36776 LCL: extend TThemeServices.IsDisabled, IsHot, IsPushed for teCombobox<br />
*r36777 IDE: Fix tab order and set shortcuts in Application Options frame.<br />
*r36778 LazControls: fix potential crash in TListFilterEdit and TTreeFilterEdit<br />
*r36779 GTK2: add TGtk2WidgetSet.SetDesigning to prevent Abstract method call in IDE. Issue [[http://bugs.freepascal.org/view.php?id=21773 21773]]<br />
*r36780 IDE: fix tab order in Project Save Options frame.<br />
*r36781 IDE: fix tab order in frames: Build Modes editor, Miscellaneous Options and Version Info<br />
*r36782 IDE: fix tab order in option frames: Code Generation, Compilation, Linking, Messages, Parsing.<br />
*r36783 GTK2: clean up<br />
*r36784 GTK2: clean up<br />
*r36786 Carbon: removed extra code for teComboBox, since teComboBox is supported by themes as of r36776.<br />
*r36787 gtk2: clean up<br />
*r36788 gtk2: fixed Gtk2WidgetSet.ClipboardGetData mem leak on stream write error<br />
*r36789 gtk2: removed OldCreateStatusBarPanel<br />
*r36790 gtk2: clean up<br />
*r36791 gtk2: clean up<br />
*r36794 IDE: CloseQueryIDEWindows: skip sub forms<br />
*r36795 Fix crash in dbg-console, if dbg not active. issue [[http://bugs.freepascal.org/view.php?id=21712 21712]]<br />
*r36796 SourceEdit: use softcenter for Replace prompt. Issue [[http://bugs.freepascal.org/view.php?id=0021709 0021709]]<br />
*r36797 regenerated translations; updated Russian translation<br />
*r36800 IDE: when checking if a FPC unit has changed: ignore units that have no source in the FPC sources. Needed to ignore user units reachable through fpc.cfg.<br />
*r36801 IDE: fix error message can't find unit if the ppu is in one of the loaded packages<br />
*r36803 DOCS: correct the documentation about CanFocus<br />
*r36806 LCL: clear FActiveDefaultControl on that control destruction<br />
*r36810 LCL: fix copy paste error<br />
*r36811 LCL: don't update Default, Cancel during their applying in UpdateDefaultCancel<br />
*r36812 LCL: add and ability to use own TListItems, TListItem descendants in TListView for delphi compatibility<br />
*r36821 gtk2 intf: fixed compilation FPC_FULLVERSION<20600<br />
*r36822 gtk2 intf: clean up<br />
*r36823 gtk2 intf: clean up<br />
*r36824 gtk2 intf: clean up<br />
*r36825 LCL: initialize font height with the height from DefFontData<br />
*r36852 IDE: when checking if global unit has changed, skip units in packages<br />
*r36857,36859 LCL: TControl.UpdateBaseBounds: set cfBaseBoundsValid<br />
*r36861 LCL: TCustomSplitter.SetAnchors: adapt anchors before applying<br />
*r36870 LCL: SetAlign: restore the basebounds set before changes<br />
*r36877 LCL: clean up<br />
*r36882 LCL: TControl.SetAnchors: during disabled autosize: update basebounds when changing Anchors, bug 21730<br />
*r36884 LCL: fixed sending CM_EXIT,CM_ENTER when flastfocusedcontrol was removed<br />
*r36885 LCL: constraint Width,Height to >=0<br />
*r36888 Converter: fixed 'Missing units' dialog localization, part of bug 21784<br />
*r36889,r36890 codetools: class completion: fixed gathr proc definitions<br />
*r36891 IDE: show compiling resource lines when error on compiling resources<br />
*r36892 IDE: improved message when can not find unit and unit was found in a package<br />
*r36893,r36894 IDE: messages: show debug: lines and calling resource compiler<br />
*r36895,r36896 gtk2 intf: checking for liboverlay, using value-changed instead of change-value<br />
*r36897 LCL: made TImage.DestRect public<br />
*r36899 Fix encoding errors in Japanese translation<br />
*r36900,r36901 startlazarus: fixed asking for custom or default<br />
*r36902 LCL: fixed ShowModal() when Hide() is called on modal form to be Delphi compatibile.issue [[http://bugs.freepascal.org/view.php?id=15390 15390]]<br />
*r36903 IDE: fixed read/write designinfo, bug 21804<br />
*r36904 IDE: do not save a new project where only session was modified, bug 21803<br />
*r36905 gtk2 intf: fixed TGtk2WSCustomTabControl.GetDefaultClientRect to check if gtknotebook has a page<br />
*r36906,36907 codetools: AddLocalVar: do not add hidden used unit<br />
*r36908 Qt: added TQtWidget.testAttribute() function.<br />
*r36910 DBG: Tests for environment<br />
*r36913 TAChart: Set Brush.Color before Brush.Style to work around issue [[http://bugs.freepascal.org/view.php?id=21806 21806]]<br />
*r36914: TAChart: Fix compilation of OpenGL drawer<br />
*r36924 gtk2 intf: TGtk2WSCustomTabControl.GetDefaultClientRect for TTabControl<br />
*r36925 Qt: fixed resize events of TQtTabWidget and accurate information about clientRect changes. issue [[http://bugs.freepascal.org/view.php?id=21805 21805]]<br />
*r36929 Gtk2: fixed text background drawing in TGtk2WidgetSet.ExtTextOut() when BkMode = OPAQUE.issue [[http://bugs.freepascal.org/view.php?id=19384 19384]]<br />
*r36941 Translations: Brazilian Portuguese translation update by Marcelo B Paula, bug 21818<br />
*r36938,36939 LazReport, lift up to preview window improving layout and functionality, from Julio Jimenez B.<br />
*r36942 LazReport, avoid hiding text at some zoom values due small differences in text height calc (DONT MERGE YET, NEEDS MORE TESTING)<br />
*r36943 IDE: msg quickfix for cant find unit: add position<br />
*r36956 carbon: added FHasPaint variable to TCarbonWidget to allow owner draw.issue [[http://bugs.freepascal.org/view.php?id=21744 21744]]<br />
*r36957 carbon: added ScrollRect() routine to TCarbonWidget. issue [[http://bugs.freepascal.org/view.php?id=21741 21741]]<br />
*r36958 carbon: set FTabIndex instead ATabIndex variable in TCarbonTabsControl.SetPageIndex. patch by David Jenkins.issue [[http://bugs.freepascal.org/view.php?id=21728 21728]]<br />
*r36959 carbon: optimized caret drawing to not update whole widget.patch by David Jenkins. issue [[http://bugs.freepascal.org/view.php?id=21768 21768]]<br />
*r36960 carbon: fixed order of check width > height in TCarbonTrackbar.patch by David Jenkins. issue [[http://bugs.freepascal.org/view.php?id=21740 21740]]<br />
*r36961 carbon: implemented autosizing for listview / databrowser columns.patch by David Jenkins. issue [[http://bugs.freepascal.org/view.php?id=21745 21745]]<br />
*r36962 carbon: fixed possible bad loop in TCarbonSpinEdit.CreateWidget.Patch by David Jenkins.issue [[http://bugs.freepascal.org/view.php?id=21732 21732]]<br />
*r36965 IDEIntf: fixed typo<br />
*r36967 Gtk2: fixed retreiving font name from TGtk2WidgetSet.GetObject() when font is default. issue [[http://bugs.freepascal.org/view.php?id=21828 21828]]<br />
*r36968 codetools: JumpToPublishedMethodBody: raise error<br />
*r36969 codetools: fixed FindMethodNodeInImplementation for program<br />
*r36971 tests: codetools: added test for duplicate sections, parsing library<br />
*r36972 codetools: fixed reparsing initialization, finalization, begin<br />
*r36973 codetools: fixed treating initialization, finalization as statement<br />
*r36974,r36975,r36976,36977,36978 codetools: fixed find declaration in library starting in initialization, bug 21832<br />
*r36981,r36982 codetools: identifier completion: fixed continue searching<br />
*r36979 Updated Japanese translation by Haruyuki Fujimaki<br />
*r36980 Fix japanese encoding<br />
*r36983,r36984 codetools: identifier completion: some keywords for library, program<br />
*r36985 codetools: identifier completion: keyword initialization for library, issue [[http://bugs.freepascal.org/view.php?id=21839 21839]]<br />
*r36986 Updated Japanese translation by Haruyuki Fujimaki<br />
*r36990 codetools: identifier list: skip identifier at cursor<br />
*r36991,r36992 IDE: identifier completion: add do after with, issue [[http://bugs.freepascal.org/view.php?id=16850 16850]]<br />
*r36996,r36997,r36999,r37013,r37014,r37015 runtests: fixed compilation, added some tests<br />
*r37012,r37011,r37009,r37008,r37007,r37006,r37005,r37004,r37003,r37002,r37000 carbon interface: clean up<br />
*r37020 IDE: recent/history lists: replaced case sensitive comparison with three types<br />
*r37021 docking: update modified flags<br />
*r37022 codetools: fixed uninitialized result<br />
*r37025 IDE: use unit dialog: check for syntax errors<br />
*r37026,r37027 DBG: Prepare for different line endings. / Accept different line endings (#10, #13, #10#13, #13#10) issue [[http://bugs.freepascal.org/view.php?id=0021834 0021834]].<br />
*r37029 Gtk2: fixed drawing of text with solid brush. issue [[http://bugs.freepascal.org/view.php?id=21863 21863]]<br />
*r37031 Gtk2: do not draw text background if colormap isn't assigned. Second part of issue [[http://bugs.freepascal.org/view.php?id=21863 21863]].<br />
*r37032 gtk2: clean up old mouse capture<br />
*r37033 gtk2: fixed releasecapture<br />
*r37034 gtk2: verbosity for ubuntu liboverlay mouse capture bug<br />
*r37038 sqldb: Enable mssqlconnection for fpc >= 2.6.1 (patch from Reinier Olilagers, bug 21867) - added because creates conflicts with later sqldb merges<br />
*r37040: TAChart: Workaround for TDbChartSource referring to the dataset with Filtered := true<br />
*r37043 LCL, fix TPostScriptPrinterCanvas.ClipRect is empty-rect until explicitly set by user, patch from Joachim Paepke, issue [[http://bugs.freepascal.org/view.php?id=21027 21027]]<br />
*r37051 Translations: Ukrainian translation update by Igor Paliychuk<br />
*r37052 regenerated translations; updated Russian translation<br />
*r37053 LCL: fixed compilation for fpc 2.7.1<br />
*r37054,37055,37057 set TDBLookup.FListLink.DataSource dynamically to FListSource or a local datasource. Issue [[http://bugs.freepascal.org/view.php?id=15410 15410]]<br />
*r37067 LCL: fixed visibility of implemented interfaces<br />
*r37069 simple deb: using make bigide, updated list of tools<br />
*r37070 openglcontrol: fixed mem leak, issue [[http://bugs.freepascal.org/view.php?id=21597 21597]]<br />
*r37071 codetools: identifier completion: unit name of self<br />
*r37076 gtk2: clean up<br />
*r37077 IDE: clean up<br />
*r37092 LCL: fixed compilation for fpc 2.7.1<br />
*r37093 DBG: Testcase: fixed reading env-options<br />
*r37095 SynEdit: fix crash in overview gutter creation. Issue [[http://bugs.freepascal.org/view.php?id=0021887 0021887]]<br />
*r37096 SynEdit: Do not offer OverviewGutter in Gutter-parts designer<br />
*r37101 lazreport: fixed compilation with fpc 2.7.1, new TBookMark<br />
*r37102 lazreport: clean up<br />
*r37112,r37113 SynEdit: highlight class "helper". Fix wrong highlight of "sealed" Issue [[http://bugs.freepascal.org/view.php?id=0021812 0021812]]<br />
*r37115 openglcontrol: fixed mem leak, issue [[http://bugs.freepascal.org/view.php?id=21597 21597]]<br />
*r37126 LCL: Publish some TCheckGroup properties.<br />
*r37129 gtk2: clean up<br />
*r37154,37247,37248 lcl-db: prevent lookup initialization when dataset is destroyed<br />
*r37155 LCL, use rectclip to set clipping rectangle instead of current path because it sometimes get drawn on next stroke (related to r37043)<br />
*r37157 Qt: fixed key events from QCalendar, now tabbing works fine.<br />
*r37160 LCL: published missing properties TCalendar.Hint and TCalendar.TabOrder.<br />
*r37167 LCL: Fix range check error in StringGrid when sorting and RowCount=FixedRows, issue [[http://bugs.freepascal.org/view.php?id=21947 21947]]<br />
*r37073 codetools: resolve expr: thisunitname.implementationenidentifier<br />
*r37078 codetools: find declaration: selfunit.implementationidentifier<br />
*r37079,r37080,r37081,r37082,r37083,r37087,r37089,r37098 codetools: getsmarthint: class variables, enum, array of, inheritance, property params and type, use unit<br />
*r37085 IDE: show compiler options: check compiler<br />
*r37086,37088 IDEIntf: removed TLazCompilerOptions.LCLWidgetType, fixed computing default LCLWidgetType on cross target OS<br />
*r37090 codetools: do not try to search in record ancestors<br />
*r37105 DBG: Watches Copy Name/Value to clipboard. Issue [[http://bugs.freepascal.org/view.php?id=0021860 0021860]]<br />
*r37106 DBG: Register Copy Name/Value to clipboard. Issue [[http://bugs.freepascal.org/view.php?id=0021860 0021860]]<br />
*r37107 DBG: Watches, added inspect/evaluate to popup<br />
*r37116 DBG: Fix a possible crash in debugger (history). Issue [[http://bugs.freepascal.org/view.php?id=0021901 0021901]]<br />
*r37195 SourceEdit: Do not access outdated tab-history entries (dangling pointers). Issue [[http://bugs.freepascal.org/view.php?id=0021939 0021939]]<br />
*r37196 SourceEdit: Only add tabs to tab-history that were accessed<br />
*r37103,r37132 codetools: nested types: Self and inherited<br />
*r37104,r37120 codetools: GetSmartHint: show anonymous arrays<br />
*r37111 IDE: Make Close button work in Components List dialog. Issue [[http://bugs.freepascal.org/view.php?id=21892 21892]],<br />
*r37118 IDE: build ide: if building fails, clear flag clean up once<br />
*r37119 IDE: when building IDE failed: restore backup<br />
*r37121,r37122 IDE: select frame: search in packages<br />
*r37130 IDE: select frame: search in packages<br />
*r37131 LCL, implements textrect clipping in Postscriptprintercanvas<br />
*r37133 SynEdit: Fix WantTabs / Change default to "True" Issue [[http://bugs.freepascal.org/view.php?id=0021904 0021904]]<br />
*r37134 SynEdit: Remove not required invalidation (paint / call to wrong Update() )<br />
*r37135 SynEdit: Remove wrong implementation of Update. Update no longer forwards to Invalidate<br />
*r37136 IpPro: Fix painting for SelectAll<br />
*r37137 IDE, IpPro: Allow copy to clipboard from hint (zeljko added because of conflict in 37345)<br />
*r37140 cody: show code node info: show complete source<br />
*r37141 SynEdit: Fixed Caret paint error (extra caret left on screen) Issue [[http://bugs.freepascal.org/view.php?id=0021924 0021924]]<br />
*r37143 IDEIntf: added TPropertyEditorHook.IsSelected<br />
*r37144 IDEIntf: TDefaultComponentEditor: always select component<br />
*r37146 IDE: if component class is missing: note about RegisterClass<br />
*r37148 Translations: Ukrainian translation cleanup<br />
*r37149 IDE: regenerated translations; updated Russian translation<br />
*r37151 cody: IDE item to create dockable IDE window<br />
*r37152 cody: new IDE window: show dialog to setup form name<br />
*r37162,r37163 IDE: TProjectFileDescriptor.DefaultResourceName: first try without appending a number, check for pascal keywords<br />
*r37164,r37165 IDE: fixed DoGetUnitRegisterInfo for virtual files<br />
*r37166 SynEdit: Fixed Caret when scrolling under older Wine (Win Emulator)[[http://bugs.freepascal.org/view.php?id=21929 21929]]<br />
*r37212 sqldb: added icon for TMySQL55Connection for fpc 2.6.1 '<br />
*r37213,r37214,r37219 codetools: do not save errors outside parser<br />
*r37215 codetools: GetSmartHint: ^, .., file of, class of<br />
*r37220 Translations: Czech IDE translation update by Martin Smat<br />
*r37224 SynEdit: Autocompletion, workaround for click on hint Issue [[http://bugs.freepascal.org/view.php?id=21952 21952]]<br />
*r37231 SynEdit: Prevent some scrolling, while selecting by mouse. Issue [[http://bugs.freepascal.org/view.php?id=0021996 0021996]]<br />
*r37232 DBG: Inspect window, improve scrolling<br />
*r37234 DBG: Improve start-up to work with bug in gdb 7.4<br />
*r37262 searching compiler: search first in dir of fpc.exe, then in PATH<br />
*r37263,r37265 codetools: improved error message on unit not found<br />
*r37264 fix setting radiogroup.itemindex under gtk2. Issue [[http://bugs.freepascal.org/view.php?id=22013 22013]]<br />
*r37267 Docs: improved build_lcl_docs robustness when working with TProcess, patch from Reinier Olislagers, bug 22000<br />
*r37273 SourceEditor: Fix crash when closing several tabs, while debugging (paused / loading line info). Maybe related to issue [[http://bugs.freepascal.org/view.php?id=22015 22015]]<br />
*r37274 Fix Crash in building "Windows" (list of open W.) Menu. Note 0059576 in Issue [[http://bugs.freepascal.org/view.php?id=22015 22015]] (not related to other parts of issue)<br />
*r37280 SQLdb: added missing tmysql55connection.png, bug 22033 '''Related to 37212 and other revisions for TMySQL55Connection'''<br />
*r37281 SynEdit: protect ProcessCommand() against early destruction by ReleaseComponent. Issue [[http://bugs.freepascal.org/view.php?id=0022035 0022035]]<br />
*r37285 IDE: make Close button work in Window Manager<br />
*r37286 Patch from bug 21651, automatically adds quotes to paths with spaces for OpenDocument in Mac OS X<br />
*r37297,r37298 SynEdit, Pas-HL: record helper, deprecated in object<br />
*r37311 Translations: Arabic IDE translation update by Mazen NEIFER<br />
*r37312 IDE: Make Help button work in Editor Window Manager, issue [[http://bugs.freepascal.org/view.php?id=21961 21961]]. (zeljko added to merge list because of conflicts in 37491)<br />
*r37325 regenerated translations; updated Russian translation<br />
*r37326 Translations: Brazilian Portuguese translation update by Marcelo B Paula, bug 22064<br />
*r37327 IDE, Code Generation options: changed wrong -Op386 option to correct -Op80386. Patch by barlone with some consistency changes, bug 22062.<br />
*r37357 Gtk2: fixed mbAll button on dialogs. Added response keys which does not exist in gtk2. issue [[http://bugs.freepascal.org/view.php?id=22083 22083]]<br />
*r37344 gtk2 intf: less hints<br />
*r37345 ipro: less hints <br />
*r37359 lazreport: German translations<br />
*r37360 cody: German translations<br />
*r37039,r37319,r37324,r37361 sqldb: German translations (zeljko added 37039,37319,37324 because of conflicts)<br />
*r37362 educationlaz: German translations<br />
*r37363 ide: German translations<br />
*r37372 lcl: don't access Items of TreeView if DragOver happens during treeview destruction<br />
*r37373 IDE: debugger options: check the resolved file, bug 22086<br />
*r37374 Qt: bypass windowmanager when showing dragimagelist.<br />
*r37375 Gtk2: do not show taskbar entry for dragimagelist.<br />
*r37376 IDE: update TUnitInfo.ResourceBaseClass on loading lfm<br />
*r37378 [Edited, includes selected lines of 37402] SourceEditor: Hide hint, when mouse moves (even if outside IDE, or IDE is not active). Issue [[http://bugs.freepascal.org/view.php?id=0022016 0022016]]<br />
*r37368 DBG: Fixed array len for 64 bit<br />
*r37369 lcl: don't crash when either DragTarget or dragged control is freed (issue [[http://bugs.freepascal.org/view.php?id=22067 22067]])<br />
*r37370 lcl: cleanup debug info<br />
*r37371 lcl: fixed a memory leak when canceling drag of dead control<br />
*r37380 SourceEdit/DBG: Ensure Codebuffer is updated before using it to add watches<br />
*r37383 IDE: TUnitInfo.fModified: do not set on get<br />
*r37384,r37401 IDE: do not set TUnitInfo.Modified when committing source editor to codetools<br />
*r37388,r37389,r37390,r37391,r37392 tests: added tests for cfgscripts, fixed unit output directory, cfgscript: fixed error message if semicolon is missing, IDE: added conditionals functions GetIDEValue, GetEnv, LCL: use IDE widgettype as default<br />
*r37397 TodoList: properly trim comment markers and convert multiline text to single line, fixes bug 22085. Based on patch by Anton.<br />
*r37400 codetools: fixed mem leak<br />
*r37418: TAChart: Fix range check using datapoint tool on a chart without series<br />
*r37440 DBG: do not set temporary stack = -1 in thread changing. This may cause errors<br />
*r37444 DBG: Watches, save "Use instance class" to config<br />
*r37449 LCL: fixed comments<br />
*r37451 Qt: fixed wrong SetCapture() under win32. Problem was passed TQtWidget handle instead of underlaying widget winID() which is native handle.<br />
*r37453 SynEdit: Fix goto bookmark and persistent block. Do not clear persistent block<br />
*r37461 lcl: TCustomForm.UpdateDockCaption: fixed repair garbage<br />
*r37463 IDE: when docked keep IDE caption<br />
*r37464 Help, DBG: New link to wiki for watch properties<br />
*r37475 codetools: TCustomCodeTool.FindLineEndOrCodeAfterPosition: fixed crash when at end of code<br />
*r37476 codetools: clear nodes behind, when linkscanner parsed only parts<br />
*r37481 IDE: fixed storing old LCLWidgeType, bug 22174<br />
*r37482 codetools: save parse error of operator, do not save errors outside parser, fixed parsing method name with generic parameter<br />
*r37483 codetools: allow keywords in program name<br />
*r37534 Qt: do not call setValue() but setPosition() so lcl gets accurate values later. issue [[http://bugs.freepascal.org/view.php?id=22187 22187]]<br />
*r37491 Help, DBG: Link to wiki for breakpoint properties (zeljko - 37312 is merged too, because of conflicts)<br />
*r37470 IDE, DBG: debug-eval hint, do not show, if selection exceeds one statement (e,g whole file selected). Part of issue [[http://bugs.freepascal.org/view.php?id=0022081 0022081]]<br />
*r37471 SourceEditor: Fix an issue with focusing an editor, that is being closed (while debugging) "no parent handle". Issue [[http://bugs.freepascal.org/view.php?id=0022015 0022015]]<br />
*r37517 SynEdit: fixed folding for "case" and "try" in certain code segments (initialization / case...else try)<br />
*r37518 SynEdit: Pas-HL: fix detection of case...else versus if...then...else<br />
*r37522 SynEdit: Pas-HL: better detection of case...else<br />
*r37623 SourceEditor: Fix (Work-around) an issue with focusing an editor, that is being closed (while debugging) "no parent handle". Issue [[http://bugs.freepascal.org/view.php?id=0022015 0022015]] // Required some parts of r37502<br />
*r37609 DBG: Avoid re-queuing of dis-assembler requests, after cancelling it. Part of issue [[http://bugs.freepascal.org/view.php?id=0022230 0022230]]<br />
*r37643 DBG: Disassembler: prevent disassembler from doing large address ranges, if gdb returns data with far away addresses. Issue [[http://bugs.freepascal.org/view.php?id=0022230 0022230]]<br />
*r37657 DBG: fixed a out of index error, in watches history<br />
*r37694 DBG: Fixed possible crash in watch evaluation (WatchValue freed while evaluating / in GetValue)<br />
*r37466 IDE: added menu item to insert MIT license text<br />
*r37407,r37474,r37492 IDE: TMainIDE.DoSourceEditorCommand: improved focus check, requires r37466<br />
*r37564 LCL: TCustomListView: reset FCacheIndex and FCacheItems before sorting list, otherwise we'll have unexpected results. issue [[http://bugs.freepascal.org/view.php?id=22218 22218]]<br />
*r37505, r37509, r37516, r37523 fixed compilation with fpc 2.7.1<br />
*r37592 lcl: fixed compilation fpc 2.7.1<br />
*r37525 TAChart: Display legend symbols even if the text is empty<br />
*r37565 TAChart: Display major axis marks at the edges of the clip range<br />
*r37576 TAChart: Fix infinite recursion when drawing chart listbox from series with Legend.Multiplicity <> lmSingle<br />
*r37588 TAChart: Include Item.Y in reordered list of TCalculatedChartSource. Update test. '''This will break old tests. Please contact me for a fix --- Ask'''<br />
*r37727 TAChart: Update to the recent version of FPVectorial<br />
*r37587 Qt: unset icon when doing internal sync after sorting. part of issue [[http://bugs.freepascal.org/view.php?id=22218 22218]]<br />
*r37620 LCL: invalidate parent preferredsize when borderspacing changed, bug 17947<br />
*r37621 LCL: clean up - invalidate in TControl.DoBorderSpacingChange no longer needed with new autosizing<br />
*r37622 lazutils: added missing file<br />
*r37624 LCL: GetClientRect: if interface has the right width,height trust the clientrect, this avoids some unneeded resizes<br />
*r37573 IDE: project inspector: add files: allow dotted unit names, bug 22209<br />
*r37619 IDE: open package dependency: try provides, issue [[http://bugs.freepascal.org/view.php?id=17960 17960]]<br />
*r37628 IDE: compiler options: disable target platform for packages<br />
*r37594 codetools: fixed Unneeded extra space in event assignment completion<br />
*r37613 codetools: property completion: add class var for class property variables<br />
*r37614 codetools: class completion: search variables in all sections, bug 22246<br />
*r37625,r37626,r37627 codetools: class completion: fixed searching var node when first is class var<br />
*r37629 codetools: fixed adding class keyword for property setter of a class property<br />
*r37630 IDE: codeexplorer: labels<br />
*r37634 IDEIntf: objectinspector: fixed painting outside paint event<br />
*r37631 codetools: no var node for anonymous record case variables<br />
*r37632 codetools: identifier completion: when creating an override hide higher visibility members<br />
*r37633 codetools: class completion: add static method modifier for setter of class property<br />
*r37636 codetools: class completion: add static method specifier for class property setter<br />
*r37635 IDE: paste component: fix renamed references<br />
*r37637,r37638,r37639 IDE: paste multiple components: fix references, lcl: LRSObjectTextToBinary: write convert list of components<br />
*r37640 IDE: paste components: update TControl.Caption<br />
*r37642 lcl: fixed LRSObjectTextToBinary toWString, issue [[http://bugs.freepascal.org/view.php?id=19650 19650]]<br />
*r37644 codetools: fixed inserting proc bodies in implementation in front of methods<br />
*r37652,r37653,r37655 codetools: using TFileStreamUTF8<br />
*r37656 IDE: using TFileStreamUTF8 and TStringListUTF8<br />
*r37663 IDE: fixed show info on --help when no stdout exists<br />
*r37689 LCL: fixing handling of special keys for TCustomEdit and TCustomMemo<br />
*r37690 codetools: forward proc completion: stay in same section<br />
*r37697 DBG: Dialogs, don't give help related commands to IDE. They will be ignored<br />
*r37698 IDE Help: add urls for dbg dialogs<br />
*r37703 lazutils: utf8pos: added optional parameter StartPos<br />
*r37704 IDE: setup dialog: show fpc source directory release version as warning instead of error<br />
*r37707 tools create deb+rpm: use 128x128 icon<br />
*r37705 SynEdit: open and close clipboard explicitly to write multiple formats.<br />
*r37714 lcl: gtk2: warn only once about liboverlay<br />
*r37711 lhelp: cleaned up paths<br />
*r37712 lhelp: clean up<br />
*r37713 lhelp: resolve macros in HelpEXE on the demand<br />
*r37715 chmhelp: using search path to search for chm files<br />
*r37716,r37717 chmhelp: added path $(LazarusDir)/docs/chm<br />
*r37718 'hmhelp: search ref.chm in docs/chm<br />
*r37726 create_lazarus_deb: added option chmhelp<br />
*r37722 DBG: Event-Log: Do not cache Options. Allow user to change options while debugging<br />
*r37596 Patch from {{MantisLink|0022231}} "fix warnings with fpc 2.6.1".--[[User:AlexVinS|AlexVinS]] 21:40, 8 June 2012 (UTC)<br />
*r37745 deb+rpm: default environmentoptions: updated to 107, removed default gdb entry<br />
*r37748,r37755 lhelp: added makefile<br />
*r37749 make bigide: build lhelp<br />
*r37753 IDE: fixed comparing file names case insensitive<br />
*r37754 lazutils: inlined UTF8CompareStr<br />
*r37760 Use Utf8CompareText instead of AnsiCompare<br />
*r37762 linux: added encoding to desktop file<br />
*r37769 Use Utf8CompareText instead of AnsiCompare<br />
*r37770 TAChart: Fix AV when clearing Series.Styles and TColorMapSeries.ColorSource properties<br />
*r37772 Use Utf8CompareText instead of AnsiCompare<br />
*r36804 win32: mark client rect as required update before WM_SIZE passing, remove DoAdjustClientRectChange - they are called inside WM_SIZE handler after the client rect is updated (fixes bug [[http://bugs.freepascal.org/view.php?id=0021724 0021724]])<br />
**Paul remarked about r36804: "Please don't merge it for at least 2 weeks". Also seems to cause problems in grids, see [http://bugs.freepascal.org/view.php?id=21790 issue [[http://bugs.freepascal.org/view.php?id=21790 21790]]].<br />
*r36993: LCL, fixed Problems setting Width, Height for TCustomGrid if ScrollBars is auto, from cobines, issue [[http://bugs.freepascal.org/view.php?id=21790 21790]]. If r36804 is merged, please merge also r36993<br />
*r37783 startlazarus: linux: adding LIBOVERLAY_SCROLLBAR=0 to avoid problems with mouse capturing<br />
*r37785 gtk2 intf: disable liboverlay by default<br />
*r37790 gtk2 intf: use setenv only on Linux<br />
*r37795: export tgz: added option to add chm files<br />
*r37796 IDE: when copying secondary configs create the primary config directory first<br />
*r37797 rpm: added option chmhelp<br />
*r37810 rpm: fixed building without chmhelp<br />
*r37811 lhelp: fixed invalid recent item path in config, added build modes default,debug<br />
*r37814 chmhelp: clean up old ipc files to prevent IDE hang<br />
*r37817-r37821 MAKE DEB<br />
*r37838 DBG: Fix handling console input<br />
*r37824 chmhelp: Fixed lazarus hanging when chmhelp pipe is leftover from an improperly closed lhelp<br />
*r37825 chmhelp; Fixed chmhelp typo (boolean error)<br />
*r37826 chmhelp: fixed bug where a new lhelp process could be started each time F1 was pressed<br />
*r37841 DBG: Pseudo-Terminal, accept tabs<br />
*r37848 lazutils: docs: fixed encoding and package name<br />
*r37849 lcl: docs: fixed encoding<br />
*r37850 ide: docs: fixed encoding<br />
*r37851 updated docs<br />
*r37853 lcl: docs: fixed some links<br />
*r37852 build_lcl_docs: using UTF-8 file functions, added option -h<br />
*r37855 build_lcl_docs: showcmd: show working directory<br />
*r37861 lcl: check if ListDataset is loading to update lookup info. Issue [[http://bugs.freepascal.org/view.php?id=22337 22337]]<br />
*r37846 win32: let TComboBox.CloseUp fire before Change (delphi compatible). Fix 22352<br />
*r37880 IDE+startlazarus: use same working directory, needed for passing relative file names as command line parameters, fixed building lcl+lazutils chm on ubuntu 12<br />
*r37866 lazutils: fixed unit names<br />
*r37868 lazutils: added fpdoc files<br />
*r37869 docs: building lazutils+lcl chm<br />
*r37885 DBG: fixed parsing sets for debug-inspector<br />
*r37906 IDE-Options / SynEdit: Fixed RightEdge visibility (Recression)<br />
*r37919 DBG: Prevent potential crash/memory-corruption in Watches<br />
*r37920 DBG: Prevent potential crash in (dbg-)OnIdle handling<br />
*r37921 DBG: Prevent build up of no longer needed commands in queue<br />
*r37945 DBG: Prevent a crash, when the selected snapshot is deleted. Cas also happen when starting the debugger, while a snapshot from previous run is active<br />
*r37950 DBG: fixed endless loop in watch eval (auto type cast) Issue [[http://bugs.freepascal.org/view.php?id=0022425 0022425]]<br />
*r37961 DBG: Disable rangechecks for certain PtrUInt casts<br />
*r37993 carbon: fixed crash of IDE when compiled with range checks on<br />
*r38006 gtk2: fixed crash on QuestionDlg<br />
*r38003 IDE: fixed showing custom project options, issue [[http://bugs.freepascal.org/view.php?id=22486 22486]]<br />
** merged ONLY main.pp<br />
*r38016 ToDoList: fixed encoding of French translation, it should be UTF-8, not ISO-8859-1. Patch by batyann811, bug 22489.<br />
*r37981,37983-37989,38001,38004-38005,38012,38017 Win Installer<br />
===== Fixed after RC1 =====<br />
*r38127 IDE, EditorOptions: Fixed finding color attribute in localized IDE<br />
*r38132 IDE: setup: after changing lazarusdir: fetch translations and translate<br />
*r38133 chmhelppkg: invoke lazbuild with --pcp parameter<br />
*r38138 examples: testall: fixed start<br />
*r38139 examples: cleandirs: error for fpc version<br />
*r38140 examples: componentstreaming: fixed typo, clean up<br />
*r38141 lazfreetype: fixed range check error, improved error message<br />
*r38142 examples: mssqlconn: requires fpc 2.6.1<br />
*r38144 examples: synguttermarks: win32 gui mode, fixed Left position<br />
*r38146 examples: tv_add_remove: updated<br />
*r38147 examples: xmlreader: added example xml<br />
*r38157 IDE: fixed saving ambiguousfileaction, bug 22573<br />
*r38158 examples: clean up<br />
*r38038 TAChart: Allow spaces in field names inside TDbChartSource.FieldY<br />
*r38168 synuni: clean up fpc options<br />
*r38170 synuni, semaphorgridlpk: clean up fpc options<br />
*r38022 SynEdit: Fixed drawing errors for frames (left frame site drawn at wrong offset)<br />
*r38145 LCL: TListView fixed "List index out of bounds" while deleting items. issue [[http://bugs.freepascal.org/view.php?id=22552 22552]]<br />
*r38150 SynEdit TSynMultiSyn: Fixed crash when deleting lines. Part of issue [[http://bugs.freepascal.org/view.php?id=0022519 0022519]]<br />
*r38151 SynEdit Highlighter: Fixed crash when scanning empty<br />
*r38152 SynEdit TSynMultiSyn: typo<br />
*r38175 SynEdit TSynMultiSyn: Fixed updating, when appending to EOT. Part of issue [[http://bugs.freepascal.org/view.php?id=0022519 0022519]]<br />
*r38205 lazaruside.fi.po: Finnish translations<br />
*r38180 Synedit: fix matching-bracket-highlight in comments (closing bracket at eol) issue [[http://bugs.freepascal.org/view.php?id=22586 22586]]<br />
*r38198 IDE: Export to html, do not enforce check for writeable. Issue [[http://bugs.freepascal.org/view.php?id=22588 22588]]<br />
*r38199 lazutils: do not use winodws W functions under Win98, issue [[http://bugs.freepascal.org/view.php?id=22596 22596]]; '''Breaks compilation on wince, because win32platform is not defined.'''<br />
*r38202 openglcontrol: win32: fixed sharing context<br />
*r38204 Synedit: fixed typo in IFDEF for fpc 2.60 bug<br />
*r38225 TAChart: Fix division by zero in zoom tools with extreme zoom ratios<br />
*r38226 TAChart: Fix hang in functional series with extreme zoom ratios<br />
*r38223 SynEdit TSynMultiSyn: Several fixes issue [[http://bugs.freepascal.org/view.php?id=0022519 0022519]]<br />
*r38232 TAChart: Add InRangeUlps utility function<br />
*r38233 TAChart: Fix disappearance of axis marks located exactly at chart bounds<br />
*r38234 TAChart: Fix crash when setting Marks.LabelFont from the Object Inspector<br />
*r38237 Examples/SynEdit: Readme and typo in comment<br />
*r38266 IDE: Tweak the layout of ManageExamplesForm<br />
*r38260 TAChart: Use correct notification when the series' source changes<br />
*r38261 TAChart: Issue change notifications when modifying TListChartSource.DataPoint property<br />
*r38285 lhelp: replace MessageBox, with Form.Modal. FIx IPC hang. issue [[http://bugs.freepascal.org/view.php?id=0022592 0022592]]<br />
<br />
===== Fixed after RC2 =====<br />
*r38293 windows installers: don't ask to overwrite the environment options in the secundary config directory from Reinier Olislagers<br />
*r38339 SynEdit TSynMultiSyn: Fix CaseSensitivity for Sheme marker. Issue [[http://bugs.freepascal.org/view.php?id=0022693 0022693]]<br />
*r37386 Remove writeln() that looks like a residual debug message. Issue [[http://bugs.freepascal.org/view.php?id=0022544 0022544]]<br />
*r38385 Translations: removed unmaintained Portuguese translation, which was outdated copy of Brazilian Portuguese one<br />
<br />
== How to merge ==<br />
The lazarus developers have decided to use the native svn merge for this branch. Other branches used the svnmerge.py script to manage the revisions to be merged.<br />
<br />
* TODO: Maybe this information should be put in a separate page.<br />
<br />
[[SVN_Migration#Merge_with_plain_svn]]<br />
=== Using TortoiseSVN ===<br />
As noted in the link above using TortoiseSVN is more or less self explaining. <br />
<br />
* TODO: add some screen shots.<br />
<br />
When committing, in the recent messages a nice commit message is available.<br />
<br />
Tested with TortoiseSVN 1.7.6, SVN 1.7.4.<br />
<br />
=== Show list of revision that can be merged ===<br />
In the lazarus fixes_1_0 directory do:<br />
svn mergeinfo ^/trunk --show-revs eligible<br />
Or if you don't have a fixes directory checked out, you can pass the URL path of the fixes branch:<br />
svn mergeinfo ^/trunk http://svn.freepascal.org/svn/lazarus/branches/fixes_1_0 --show-revs eligible<br />
<br />
=== Show list of revision that have been merged ===<br />
In the lazarus fixes_1_0 directory do:<br />
svn mergeinfo ^/trunk --show-revs merged<br />
<br />
=== Merging revisions from trunk ===<br />
To merge one or more revisions from trunk, use the svn merge command. For example to merge revision 36506 and 36510 use:<br />
svn merge -c 36506,36510 ^/trunk<br />
<br />
To generate a commit log message, use:<br />
svn log ^/trunk -c 36506,36510 > svnmerge-commit-message.txt<br />
<br />
Edit svnmerge-commit-message.txt with your favorite text editor and add a first line like:<br />
Merged revision 36506,36510 from /trunk.<br />
<br />
Commit this with:<br />
svn commit -F svnmerge-commit-message.txt<br />
<br />
=== Blocking a revision to be merged ===<br />
Sometimes you want to block a revision to be merged, i.e. you want to make sure that this revision is never merged to the fixes branch, for example, because it contains a new feature or it contains a version number change not applicable to the fixes branch, but only to trunk. To block revision 36507, use:<br />
svn merge -c 36507 --record-only ^/trunk<br />
Then you can create a log message with:<br />
svn log ^/trunk -c 36507 > svnmerge-commit-message.txt<br />
Edit svnmerge-commit-message.txt with your favorite text editor and add first line like:<br />
Blocked revision 36507 from /trunk<br />
Then commit this change:<br />
svn commit -F svnmerge-commit-message.txt</div>
Paul Ishenin
https://wiki.freepascal.org/index.php?title=Lazarus_1.0_fixes_branch&diff=62004
Lazarus 1.0 fixes branch
2012-09-25T03:25:10Z
<p>Paul Ishenin: /* Merge requests */</p>
<hr />
<div>This page contains the revisions to be merged from trunk to the [http://svn.freepascal.org/svn/lazarus/branches/fixes_1_0/ Lazarus 1.0 fixes] branch.<br><br />
Release notes can be found here [http://wiki.lazarus.freepascal.org/Lazarus_0.99.0_release_notes Release notes]<br />
<br />
== Fixes for 1.0.2 ==<br />
=== Merge requests ===<br />
==== Submitted by developer / committer ====<br />
<br />
*r38673 TAChart: Ignore NaNs while calculating TCustomChartSource.ValuesTotal<br />
*r38675 TAChart: Support Marks.Attachment = maCenter in pie series<br />
*r38697,38698 Gtk2: set TToggleBox.ParentColor default false so it's color is consistent with TButton when eg.parent color is clRed and TToggleBox.Color=clDefault.<br />
*r38694: TAChart: Fix update of TListChartSource.ValuesTotal cache when adding or removing NaNs<br />
*r38709: Qt: improved triggering of OnClick() in QEventShowToParent. issue [[http://bugs.freepascal.org/view.php?id=22872 22872]]<br />
*r38710: TAChart: Fix crash when using TChartExtentLink with LinkedChart.Chart = nil<br />
*r38712: TAChart: Fix crash while replacing linked chart in TChartExtentLink<br />
*r38713: TAChart: Use NumberOr function instead of checking for NaN explicitly<br />
*r38719: TAChart: Extract TDrawFuncHelper.ForEachPoint helper procedure ''This also fixes a hang while using data point tool on extremely zoomed-in series''<br />
*r38729: TAChart: Extract TDrawFuncHelper.XRange helper function. + Fix GetNearestPoint for rotated function series.<br />
*r38733: TAChart: Fix TChartSeries.SetColor to notify all listeners and require ListSource. Add TListChartSource.SetColor<br />
*r38735: TAChart: Fix memory leak in TDbChartSource.BeforeDraw<br />
*r38737: TAChart: Fix drawing of pie series with data from the db source<br />
*r38754: TAChart: Fix hang when changing TLineSeries.ShowPoints while drawing chart<br />
*r38757: TAChart: Display crosshair tool on mouse down<br />
*r38762: Gtk2: when style is drawing button then use style from button. issue #22901<br />
*r38779: TAChart: Do not notify from TListChartSource.SetXValue and SetYValue if the value did not actually change.<br />
*r38780: TAChart: Add TBasicPointSeries.MovePoint overload for graph coordinates ''not a fix, but required for r38788''<br />
*r38788: TAChart: Support axis transformations in TCustomChartSeries.MovePoint<br />
*r38792: TAChart: Fix crash on deleting subcomponent with active property editor<br />
*r38799: gtk2: implement SPI_GETWHEELSCROLLLINES. Fix a regression in VirtualTreeView wheel scroll<br />
*r38802: lcl:revert 33020, 33082, 33086, part of 33089 and 33389. These changes made the hint behavior Delphi incompatible thus leading to a regression in third party control like VirtualTreeView that handles hints in CMHintShow. Retrieve parent hint recursively if hintcontrol.hint is empty' (delphi compatible)<br />
*r38816 LazUtils: improve unicode path/filename handling by Fileutil.ReadFileToString, patch from Takeda Matsuki, bug 22953<br />
<br />
==== Submitted by others ====<br />
<br />
=== Merged revisions for 1.0.2 ===<br />
*r37217,37218,37225,37239,37241,37293,37304,37316 Qt: fixed keys handling (arrow keys & enter).<br />
*r38396 LCL: ColorBox - keep FSelected in sync all the time. fixes issue [[http://bugs.freepascal.org/view.php?id=22729 22729]]<br />
*r38426 CodeBrowser: check for virtual units. Issue [[http://bugs.freepascal.org/view.php?id=0022740 0022740]]<br />
*r38428 SynEdit, MultiHighlighter: fix adding text/sections at EOL. issue [[http://bugs.freepascal.org/view.php?id=0022745 0022745]]<br />
*r38430 TAChart: Fix out-of-bounds access when drawing empty polygons and polylines<br />
*r38437 ide: project target: apply default extension even if the file has already an extension, issue [[http://bugs.freepascal.org/view.php?id=22750 22750]]<br />
*r38444 IDE: fixed crash when releasing non existing component palette select button<br />
*r38473 tests: fixed compilation<br />
*r38464 TAChart: Fix error message in TFPCanvasDrawer.RadialPie<br />
*r38486 avglvltree: setcompare: set when count=0<br />
*r38503 TAChart: Copy BaseLength in TChartArrow.Assign<br />
*r38507 EditorOpts: default for top-info-hint<br />
*r38509 Debugger: Ensure Queue is not blocked by LineInfo Request. (If a LineInfoRequest was queued the DebuggerCurrentLine could not search the stack, as commands were not immediately run)<br />
*r38519 Gtk2: fixed crash with TListView when viewstyle is vsIcon or vsSmallIcon. issue [[http://bugs.freepascal.org/view.php?id=22778 22778]]<br />
*r38520 Qt: do not propagate keyrelease event as action trigger. issue [[http://bugs.freepascal.org/view.php?id=22737 22737]]<br />
*r38531 Debugger: Workaround to fix exe-line-indicators (blue dots) at debug start<br />
*r38533 Qt: fixed header offset and getClientRect for TListView when ViewStyle=vsReport.<br />
*r38547 TAChart: Support Y NaNs in polar series ''(this will cause compilation error -- please remove 'and CloseCircle' part from the last conditional in the TPolarSeries.Draw procedure)''<br />
*r38557 TAChart: Support brush style, pen style and pen width in fpvectorial drawer<br />
*r38571 TAChart: Draw chart correctly after decrease of an axis margin<br />
*r38529,r38530,r38535,r38543,r38548: fix carbon clipping, correctly return region types on HRGN related operations, fix generic IntersectClipRect routine<br />
*r38640,r38641,r38642,r38649: various ExtTextOut fixes for Carbon and Cocoa<br />
*r38551,r38552,r38562,r38563 Carbon: various winapi compatibility functions fixes<br />
*r38518 Qt: TQtWinApi.ExtTextOut() implemented Dx param. issue [[http://bugs.freepascal.org/view.php?id=22795 22795]] (zeljko will merge, need some testing)<br />
*r38572 Qt: propagate QEvent::ShortcutOverride to parent, so stop key event if shortcut is executed. issue [[http://bugs.freepascal.org/view.php?id=22827 22827]]<br />
*r38576,38577: Qt: fixed TQtWidgetSet.FrameRect(), now it uses passed brush to draw frame border.<br />
*r38610 Qt: fixed non ascii utf8 chars in TQtWidgetSet.ExtTextOut() when we use dx param. issue [[http://bugs.freepascal.org/view.php?id=22795 22795]] (depends on merging of r38518).<br />
*r38628,38629,38630,38634: Qt: fixed clipping bugs inside TQtWidgetSet.ExtTextOut()<br />
*38670 SynEdit: Fixed past eol paint error ** Must be ported by hand **<br />
*r38584 TAChart: Copy Attachment and YIndex in TGenericChartMarks.Assign ''(this code is in TATypes unit in v1.0)''<br />
*r38589 TAChart: Do not draw lines which should be invisible in OpenGL drawer<br />
*r38607 TAChart: Workaround for issue [[http://bugs.freepascal.org/view.php?id=22850 22850]] '''see patch in the mailing list'''<br />
*r38617 TAChart: Fix GetNearestPoint returning true with no points found inside radius, issue [[http://bugs.freepascal.org/view.php?id=22854 22854]]<br />
*r38644: Qt: fixed menu flickering. issue [[http://bugs.freepascal.org/view.php?id=22872 22872]]<br />
*r38651: TAChart: Fix zero division when calling ImageToGraph before the chart is drawn<br />
*r38674 Qt: fixed crash when invalid or null handle is passed into SetCapture.<br />
*r38679 Qt: update bitmap if TMenuItem has associated ImageList and ImageIndex. issue [[http://bugs.freepascal.org/view.php?id=22896 22896]]<br />
*r38672 SynEdit: fixed delete-next-word, if caret past eol. Issue [[http://bugs.freepascal.org/view.php?id=0022890 0022890]]<br />
*r38720 LCL, DefaultTranslator: fix handling of non-ASCII path to .po file, bug 22907, patch by Vladimir Zhirov<br />
*r37398 IDE: corrected version info language list, added Ukrainian language, bug 22103<br />
*r38722 IDE: added Lithuanian to version info language list, bug 22898<br />
*r38671: carbon: fix accidental error in index<br />
*r38743: carbon: reimplement linear gradient draw using shading to support OS X < 10.5<br />
<br />
== Fixes for 1.0 ==<br />
=== Merged revisions for 1.0.0 ===<br />
==== Submitted by developer / committer ====<br />
*r36506 LazReport, fix barcode dialog localization (Jesus)<br />
*r36508 Updated Japanese translation<br />
*r36509 Window Column, store pointer to resourcestring<br />
*r36510 LazReport, fix barcode addin when TfrBarCodeObject is not yet instantiated (in this case barcode editor defaults to memo view.<br />
*r36511 DividerBevel: implemented Transparent.<br />
*r36514 IDE: moved macros save/saveall to source editor<br />
*r36515 IDE: update macro descriptions after translating resource strings<br />
*r36516 IDE: trim TLazPackageGraph.GetFallbackOutputDir<br />
*r36517 IDE: check if package needs rebuild: switch to fall back directory: update compiler params<br />
*r36518 IDE: install/uninstall package dialog: fixed icons, added info about current state<br />
*r36523,r36530 IDE: Export as HTML<br />
*r36526 CodeTemplate: Improve final caret pos, if tmpl does not specify<br />
*r36527 CodeTemplate: allow tab to trigger / selection to ignore. issue [[http://bugs.freepascal.org/view.php?id=0017631 0017631]]<br />
*r36528 SynEdit: Template(Syncro) fix invalidation<br />
*r36529 IDE: Printing: break long lines. Issue [[http://bugs.freepascal.org/view.php?id=0013479 0013479]]; <br />
*r36547 IDE: Printing: break long lines. Fix Utf8. Update for rev 36529<br />
*r36531 LazReport: fixed buttonpanel localization in BarCode editor dialog<br />
*r36533 IDE: clean up of unused resourcestrings<br />
*r36534, r36536, r36553, r36583, r36646 regenerated translations; updated Russian translation<br />
*r36535 IDE: more clean up of unused resourcestrings<br />
*r36537 Documents LCLIntf.GetDeviceCaps<br />
*r36538 IDE: always store lazarus directory<br />
*r36539 LazReport: uppercase variable before comparing with hardcoded functions. Properly fix to 21624<br />
*r36543 IDE: setup dialog: using same file resolving as IDE<br />
*r36546 IDE: consider empty lazarusdirectory as pcp, empty fpcsrcdir as lazdir, empty testdir as lazdir<br />
*r36548 IDE: fixed note about wrong laz dir<br />
*r36549 IDE: fixed crash on find identifier references<br />
*r36551 IDE: translate descriptions of all macros<br />
*r36552 IDE: fixed editor tab position combobox items localization on Editor/Misc options page<br />
*r36556,r36557 IDE: warn if upgrading configs<br />
*r36561, 36562, 36563, 36566: Improve Options/Keymap<br />
*r36565 LCL: Prevent TShape.stRectangle disappearing with certain Height/Width and Pen.Width values.<br />
*r36567,r36568,r36569 IDE: show downgrade warning<br />
*r36570 lazbuild: select IDE build mode, fixed compiling with different mode<br />
*r36572 LCL: set csCaptureMouse on TToolButton, but don't send click if mouse is out of ttoolbutton on mouseup.issues [[http://bugs.freepascal.org/view.php?id=19688 19688]],[[http://bugs.freepascal.org/view.php?id=21560 21560]]<br />
*r36574 IDE: fixed saving environment on every change<br />
*r36577 LCL, TreeView: fix GetNextVisible, GetPrevVisible. Issue [[http://bugs.freepascal.org/view.php?id=21264 21264]]<br />
*r36575 IDE/Setup dialog: force taskbar button to be shown<br />
*r36584 IDE: import package list: opendialog<br />
*r36587 IDE: intial setup: fpc src dir: lazdir/fpc/fpcver/source<br />
*r36588 IDE: intial setup: fixed if no candidates found<br />
*r36589,r36590 IDE: compiler file name: search first with macros<br />
*r36591 IDE: verbose search for candidates<br />
*r36592 IDE: search fpc src relative to fpc.exe<br />
*r36594 IDE: check compiler: only run common names<br />
*r36595,r36599 IDE: use under windows as default for make the make.exe in the compiler directory<br />
*r36596 IDE,codetools: fixed ppccross,crossppc to ppcross<br />
*r36601 IDE: unify the 2 filters in KeyMapping window. Prevent a potential crash.<br />
*r36603 debian: updated patches to latest source in lazarus svn<br />
*r36608 Gtk2: do not set widget name, it's completelly unnecessary and produce unexpected behaviour if some keywords are in widget name.issue [[http://bugs.freepascal.org/view.php?id=21661 21661]].<br />
*r36613 SynEdit: Fix an issue with Scrollbars not being updated<br />
*r36617 lazbuild: build ide: replace exe on windows<br />
*r36644 IDE: improved 'Export package list' dialog localization<br />
*r36645 IDE: improved 'Package Graph Explorer' dialog localization<br />
*r36647,r36653,r36654,r36655,r36656,36668,36673 IDE: view / IDE internal / what needs building<br />
*r36648,r36650,r36651 IDE: read state file created by Makefile: fix path delimiters, checking compiled state: ignore -v,-i,-B flags, do not skip all -F<br />
*r36652 IDE: codetools options: shorter caption<br />
*r36658 regenerated translations; updated Russian translation <br />
*r36659 LCL: Refactoring. Make TCalculatorDialog.Execute more understandable by removing a "with" block.<br />
*r36661 LCL: Prevent "Test Dialog" feature of Calculator and Calendar dialogs locking the IDE, issue [[http://bugs.freepascal.org/view.php?id=21644 21644]]<br />
*r36616 SynEdit: do not include IME for WinCe<br />
*r36662 LCL: implementation of TCustomImageList.GetIcon()<br />
*r36663 In GUI strings, unify all 3 dots to have a space before them ( ...)<br />
*r36664 IDE: Use CreateAbsolutePath when switching between relative/absolute paths in AddFile dialogs (CreateAbsoluteSearchPath gives wrong output)<br />
*r36665 LCL: publish TUpDown.OnChangingEx<br />
*r36666 IDE etc.: unify 3 dots in GUI string to have a space ( ...).<br />
*r36667 translation: german: updates from Swen Heinig<br />
*r36669 updatemakefiles: write which lpk have conditionals<br />
*r36670,r36671 IDE,lazbuild: create makefile: use CPPROG instead of COPY to get the current date for Makefile.compiled under Windows<br />
*r36649,r36657,r36602,r36672,r36675,r36677,r36679,r36683,r36701,r36708,r36709 Makefiles: updated, reduced dependencies, fixed double compiles<br />
*r36676 LCL: Implement TListItem.EditCaption, issue [[http://bugs.freepascal.org/view.php?id=20295 20295]].<br />
*r36680,r36699 lazbuild: fixed crash, replaced some MessageDlg with IDEMessageDialog<br />
*r36681 IDE,lazbuild: use parsed compiler filename, make filename<br />
*r36682 IDE: debugfilename, debugsearchpath: use same function as other env vars to resolve macros, trim and find<br />
*r36686,r36688 IDE/lazbuild backup, delete the same lazarus exe on all platforms<br />
*r36694 regenerated translations; updated Russian translation<br />
*r36695 LazDataDesktop: regenerated translations; updated Russian translation<br />
*r36696 IDE: add resource strings for various windows manifest keys<br />
*r36697 fix ImageList.AddMasked() in case of source image has no mask description<br />
*r36702 IDE: TProject.TitleIsDefault: check for project+number, fix for renaming the title of a new project<br />
*r36711 Qt: enable wordwrap on TQtStaticText. issue [[http://bugs.freepascal.org/view.php?id=21697 21697]].<br />
*r36712 LCL: fixed function result<br />
*r36713,r36715 lcl: fixed TToolButton.MouseUp X,Y in boundsrect check<br />
*r36716 LCL, combination of modal form + wsMaximized style produces tiny windows on GTK2, issue [[http://bugs.freepascal.org/view.php?id=21634 21634]]<br />
*r36717 LCL: reverted changes to menus.pp from r36666 (by Paul's request)<br />
*r36718 LCL: regenerated translations<br />
*r36719, *r36826 LCL: fix range check error<br />
*r36720 LazReport: added option to ignore undefined symbols, from Luiz Americo, issue [[http://bugs.freepascal.org/view.php?id=21683 21683]]<br />
*r36723,36724 IDE,lazbuild: fixed repeated build project clean: save project state file before compiling too<br />
*r36727 lazbuild: fixed expanding --lazarusdir<br />
*r36728 make useride: pass --lazarusdir=.<br />
*r36729 Improve TStringHashList, prevents a PO file update crash. Issue [[http://bugs.freepascal.org/view.php?id=21685 21685]]<br />
*r36730 IDE: project wizard: fixed fixed size, bug 21714<br />
*r36731 lazreport: fix possible access violation by checking dataset for nil<br />
*r36732 win32: fix range check error<br />
*r36733 lazbuild: auto create ide/revision.inc if missing<br />
*r36734 Gtk2: fixed mouse capturing on native scrolling win controls (TListBox,TListView etc).issue [[http://bugs.freepascal.org/view.php?id=21713 21713]]<br />
*r36735 LCL: TToolButton: commented debugln().<br />
*r36740 lazbuild: fixed uninitialized function result, fixed checking if init failed, quick check if lazarusdir is valid.<br />
*r36741 lazutils: Patch with font collection support from Circular<br />
*r36744 examples: Adds a OpenURL/OpenDocument test<br />
*r36745 LCL: Adds the sysenvapis include files to the lpk and adds an extra safety in OpenURL for users which forget to encode spaces in filenames<br />
*r36746 IDE: fixed fixed size dialogs<br />
*r36747 IDE: sort selection: layout<br />
*r36748 IDE: added debugging for sort selection<br />
*r36749 gtk2: clean up<br />
*r36750 IDE: less debugging<br />
*r36751 IDE: jump to next/prev error: fixed direction<br />
*r36752 LCL: TTreeView: clean up<br />
*r36753 IDE: next/prev error: clear multi selection<br />
*r36754 lcl: move interface initialization of TCustomEdit from CreateWnd to InitializeWnd. Consistent with other controls and allows interfaces to check is handle is being created<br />
*r36755 IDE: Add acceleration keys and fix tab order in Project Wizard and ImageListEditor, issue [[http://bugs.freepascal.org/view.php?id=21718 21718]]<br />
*r36756 lcl: remove TCustomListBox.Loaded. ItemIndex is initialized in InitializeWnd<br />
*r36757 lcl: call inherited after setting FLines in TCustomMemo.InitializeWnd. Fix potential crash since widgetset code expect FLines be initialized <br />
*r36758 lcl: check for csDestroyingHandle in TControl.HandleObjectShouldBeVisible. Fix issue [[http://bugs.freepascal.org/view.php?id=19882 19882]]<br />
*r36759 lcl: revert 31890 since issue [[http://bugs.freepascal.org/view.php?id=19882 19882]] is properly fixed now<br />
*r36760 gtk2: less hints<br />
*r36761 gtk2: less hints<br />
*r36762 Carbon: fixed result of TWSCarbonCustomListView GetTopItem,GetViewOrigin and GetBoundingRect. issue [[http://bugs.freepascal.org/view.php?id=21733 21733]]<br />
*r36763 Carbon: added themed TComboBox drawing.Patch by David Jenkins. issue [[http://bugs.freepascal.org/view.php?id=21747 21747]]<br />
*r36764 Carbon: added themed TComboBox drawing.Patch by David Jenkins. issue [[http://bugs.freepascal.org/view.php?id=21747 21747]]<br />
*r36765 Docs: added David Jenkins to contributors list<br />
*r36766 Carbon: make carbon widget visibility in sync with lcl. Patch by David Jenkins. issue [[http://bugs.freepascal.org/view.php?id=21731 21731]]<br />
*r36767 lcl: remove Destroying and DestroyWnd calls from TCustomListBox.Destroy<br />
*r36768 lcl: cleanup TCustomListBox.Create<br />
*r36769 codetools: fixed skipping include files in skipped ifdef<br />
*r36770 gtk2: less hints<br />
*r36771 gtk2: less hints<br />
*r36772 ide: fix selection painting of debugger eventlog colors list<br />
*r36773 carbon: improved TCarbonWidgetSet.RawImage_XXXX routines.Patch by David Jenkins. issue [[http://bugs.freepascal.org/view.php?id=21743 21743]].<br />
*r36774 carbon: proper initialization of alpha channel.Patch by David Jenkins. issue [[http://bugs.freepascal.org/view.php?id=21753 21753]]<br />
*r36775 LCL: implement ClientToParent, ParentToClient based on patch of David Jenkins (issue [[http://bugs.freepascal.org/view.php?id=0021763 0021763]])<br />
*r36776 LCL: extend TThemeServices.IsDisabled, IsHot, IsPushed for teCombobox<br />
*r36777 IDE: Fix tab order and set shortcuts in Application Options frame.<br />
*r36778 LazControls: fix potential crash in TListFilterEdit and TTreeFilterEdit<br />
*r36779 GTK2: add TGtk2WidgetSet.SetDesigning to prevent Abstract method call in IDE. Issue [[http://bugs.freepascal.org/view.php?id=21773 21773]]<br />
*r36780 IDE: fix tab order in Project Save Options frame.<br />
*r36781 IDE: fix tab order in frames: Build Modes editor, Miscellaneous Options and Version Info<br />
*r36782 IDE: fix tab order in option frames: Code Generation, Compilation, Linking, Messages, Parsing.<br />
*r36783 GTK2: clean up<br />
*r36784 GTK2: clean up<br />
*r36786 Carbon: removed extra code for teComboBox, since teComboBox is supported by themes as of r36776.<br />
*r36787 gtk2: clean up<br />
*r36788 gtk2: fixed Gtk2WidgetSet.ClipboardGetData mem leak on stream write error<br />
*r36789 gtk2: removed OldCreateStatusBarPanel<br />
*r36790 gtk2: clean up<br />
*r36791 gtk2: clean up<br />
*r36794 IDE: CloseQueryIDEWindows: skip sub forms<br />
*r36795 Fix crash in dbg-console, if dbg not active. issue [[http://bugs.freepascal.org/view.php?id=21712 21712]]<br />
*r36796 SourceEdit: use softcenter for Replace prompt. Issue [[http://bugs.freepascal.org/view.php?id=0021709 0021709]]<br />
*r36797 regenerated translations; updated Russian translation<br />
*r36800 IDE: when checking if a FPC unit has changed: ignore units that have no source in the FPC sources. Needed to ignore user units reachable through fpc.cfg.<br />
*r36801 IDE: fix error message can't find unit if the ppu is in one of the loaded packages<br />
*r36803 DOCS: correct the documentation about CanFocus<br />
*r36806 LCL: clear FActiveDefaultControl on that control destruction<br />
*r36810 LCL: fix copy paste error<br />
*r36811 LCL: don't update Default, Cancel during their applying in UpdateDefaultCancel<br />
*r36812 LCL: add and ability to use own TListItems, TListItem descendants in TListView for delphi compatibility<br />
*r36821 gtk2 intf: fixed compilation FPC_FULLVERSION<20600<br />
*r36822 gtk2 intf: clean up<br />
*r36823 gtk2 intf: clean up<br />
*r36824 gtk2 intf: clean up<br />
*r36825 LCL: initialize font height with the height from DefFontData<br />
*r36852 IDE: when checking if global unit has changed, skip units in packages<br />
*r36857,36859 LCL: TControl.UpdateBaseBounds: set cfBaseBoundsValid<br />
*r36861 LCL: TCustomSplitter.SetAnchors: adapt anchors before applying<br />
*r36870 LCL: SetAlign: restore the basebounds set before changes<br />
*r36877 LCL: clean up<br />
*r36882 LCL: TControl.SetAnchors: during disabled autosize: update basebounds when changing Anchors, bug 21730<br />
*r36884 LCL: fixed sending CM_EXIT,CM_ENTER when flastfocusedcontrol was removed<br />
*r36885 LCL: constraint Width,Height to >=0<br />
*r36888 Converter: fixed 'Missing units' dialog localization, part of bug 21784<br />
*r36889,r36890 codetools: class completion: fixed gathr proc definitions<br />
*r36891 IDE: show compiling resource lines when error on compiling resources<br />
*r36892 IDE: improved message when can not find unit and unit was found in a package<br />
*r36893,r36894 IDE: messages: show debug: lines and calling resource compiler<br />
*r36895,r36896 gtk2 intf: checking for liboverlay, using value-changed instead of change-value<br />
*r36897 LCL: made TImage.DestRect public<br />
*r36899 Fix encoding errors in Japanese translation<br />
*r36900,r36901 startlazarus: fixed asking for custom or default<br />
*r36902 LCL: fixed ShowModal() when Hide() is called on modal form to be Delphi compatibile.issue [[http://bugs.freepascal.org/view.php?id=15390 15390]]<br />
*r36903 IDE: fixed read/write designinfo, bug 21804<br />
*r36904 IDE: do not save a new project where only session was modified, bug 21803<br />
*r36905 gtk2 intf: fixed TGtk2WSCustomTabControl.GetDefaultClientRect to check if gtknotebook has a page<br />
*r36906,36907 codetools: AddLocalVar: do not add hidden used unit<br />
*r36908 Qt: added TQtWidget.testAttribute() function.<br />
*r36910 DBG: Tests for environment<br />
*r36913 TAChart: Set Brush.Color before Brush.Style to work around issue [[http://bugs.freepascal.org/view.php?id=21806 21806]]<br />
*r36914: TAChart: Fix compilation of OpenGL drawer<br />
*r36924 gtk2 intf: TGtk2WSCustomTabControl.GetDefaultClientRect for TTabControl<br />
*r36925 Qt: fixed resize events of TQtTabWidget and accurate information about clientRect changes. issue [[http://bugs.freepascal.org/view.php?id=21805 21805]]<br />
*r36929 Gtk2: fixed text background drawing in TGtk2WidgetSet.ExtTextOut() when BkMode = OPAQUE.issue [[http://bugs.freepascal.org/view.php?id=19384 19384]]<br />
*r36941 Translations: Brazilian Portuguese translation update by Marcelo B Paula, bug 21818<br />
*r36938,36939 LazReport, lift up to preview window improving layout and functionality, from Julio Jimenez B.<br />
*r36942 LazReport, avoid hiding text at some zoom values due small differences in text height calc (DONT MERGE YET, NEEDS MORE TESTING)<br />
*r36943 IDE: msg quickfix for cant find unit: add position<br />
*r36956 carbon: added FHasPaint variable to TCarbonWidget to allow owner draw.issue [[http://bugs.freepascal.org/view.php?id=21744 21744]]<br />
*r36957 carbon: added ScrollRect() routine to TCarbonWidget. issue [[http://bugs.freepascal.org/view.php?id=21741 21741]]<br />
*r36958 carbon: set FTabIndex instead ATabIndex variable in TCarbonTabsControl.SetPageIndex. patch by David Jenkins.issue [[http://bugs.freepascal.org/view.php?id=21728 21728]]<br />
*r36959 carbon: optimized caret drawing to not update whole widget.patch by David Jenkins. issue [[http://bugs.freepascal.org/view.php?id=21768 21768]]<br />
*r36960 carbon: fixed order of check width > height in TCarbonTrackbar.patch by David Jenkins. issue [[http://bugs.freepascal.org/view.php?id=21740 21740]]<br />
*r36961 carbon: implemented autosizing for listview / databrowser columns.patch by David Jenkins. issue [[http://bugs.freepascal.org/view.php?id=21745 21745]]<br />
*r36962 carbon: fixed possible bad loop in TCarbonSpinEdit.CreateWidget.Patch by David Jenkins.issue [[http://bugs.freepascal.org/view.php?id=21732 21732]]<br />
*r36965 IDEIntf: fixed typo<br />
*r36967 Gtk2: fixed retreiving font name from TGtk2WidgetSet.GetObject() when font is default. issue [[http://bugs.freepascal.org/view.php?id=21828 21828]]<br />
*r36968 codetools: JumpToPublishedMethodBody: raise error<br />
*r36969 codetools: fixed FindMethodNodeInImplementation for program<br />
*r36971 tests: codetools: added test for duplicate sections, parsing library<br />
*r36972 codetools: fixed reparsing initialization, finalization, begin<br />
*r36973 codetools: fixed treating initialization, finalization as statement<br />
*r36974,r36975,r36976,36977,36978 codetools: fixed find declaration in library starting in initialization, bug 21832<br />
*r36981,r36982 codetools: identifier completion: fixed continue searching<br />
*r36979 Updated Japanese translation by Haruyuki Fujimaki<br />
*r36980 Fix japanese encoding<br />
*r36983,r36984 codetools: identifier completion: some keywords for library, program<br />
*r36985 codetools: identifier completion: keyword initialization for library, issue [[http://bugs.freepascal.org/view.php?id=21839 21839]]<br />
*r36986 Updated Japanese translation by Haruyuki Fujimaki<br />
*r36990 codetools: identifier list: skip identifier at cursor<br />
*r36991,r36992 IDE: identifier completion: add do after with, issue [[http://bugs.freepascal.org/view.php?id=16850 16850]]<br />
*r36996,r36997,r36999,r37013,r37014,r37015 runtests: fixed compilation, added some tests<br />
*r37012,r37011,r37009,r37008,r37007,r37006,r37005,r37004,r37003,r37002,r37000 carbon interface: clean up<br />
*r37020 IDE: recent/history lists: replaced case sensitive comparison with three types<br />
*r37021 docking: update modified flags<br />
*r37022 codetools: fixed uninitialized result<br />
*r37025 IDE: use unit dialog: check for syntax errors<br />
*r37026,r37027 DBG: Prepare for different line endings. / Accept different line endings (#10, #13, #10#13, #13#10) issue [[http://bugs.freepascal.org/view.php?id=0021834 0021834]].<br />
*r37029 Gtk2: fixed drawing of text with solid brush. issue [[http://bugs.freepascal.org/view.php?id=21863 21863]]<br />
*r37031 Gtk2: do not draw text background if colormap isn't assigned. Second part of issue [[http://bugs.freepascal.org/view.php?id=21863 21863]].<br />
*r37032 gtk2: clean up old mouse capture<br />
*r37033 gtk2: fixed releasecapture<br />
*r37034 gtk2: verbosity for ubuntu liboverlay mouse capture bug<br />
*r37038 sqldb: Enable mssqlconnection for fpc >= 2.6.1 (patch from Reinier Olilagers, bug 21867) - added because creates conflicts with later sqldb merges<br />
*r37040: TAChart: Workaround for TDbChartSource referring to the dataset with Filtered := true<br />
*r37043 LCL, fix TPostScriptPrinterCanvas.ClipRect is empty-rect until explicitly set by user, patch from Joachim Paepke, issue [[http://bugs.freepascal.org/view.php?id=21027 21027]]<br />
*r37051 Translations: Ukrainian translation update by Igor Paliychuk<br />
*r37052 regenerated translations; updated Russian translation<br />
*r37053 LCL: fixed compilation for fpc 2.7.1<br />
*r37054,37055,37057 set TDBLookup.FListLink.DataSource dynamically to FListSource or a local datasource. Issue [[http://bugs.freepascal.org/view.php?id=15410 15410]]<br />
*r37067 LCL: fixed visibility of implemented interfaces<br />
*r37069 simple deb: using make bigide, updated list of tools<br />
*r37070 openglcontrol: fixed mem leak, issue [[http://bugs.freepascal.org/view.php?id=21597 21597]]<br />
*r37071 codetools: identifier completion: unit name of self<br />
*r37076 gtk2: clean up<br />
*r37077 IDE: clean up<br />
*r37092 LCL: fixed compilation for fpc 2.7.1<br />
*r37093 DBG: Testcase: fixed reading env-options<br />
*r37095 SynEdit: fix crash in overview gutter creation. Issue [[http://bugs.freepascal.org/view.php?id=0021887 0021887]]<br />
*r37096 SynEdit: Do not offer OverviewGutter in Gutter-parts designer<br />
*r37101 lazreport: fixed compilation with fpc 2.7.1, new TBookMark<br />
*r37102 lazreport: clean up<br />
*r37112,r37113 SynEdit: highlight class "helper". Fix wrong highlight of "sealed" Issue [[http://bugs.freepascal.org/view.php?id=0021812 0021812]]<br />
*r37115 openglcontrol: fixed mem leak, issue [[http://bugs.freepascal.org/view.php?id=21597 21597]]<br />
*r37126 LCL: Publish some TCheckGroup properties.<br />
*r37129 gtk2: clean up<br />
*r37154,37247,37248 lcl-db: prevent lookup initialization when dataset is destroyed<br />
*r37155 LCL, use rectclip to set clipping rectangle instead of current path because it sometimes get drawn on next stroke (related to r37043)<br />
*r37157 Qt: fixed key events from QCalendar, now tabbing works fine.<br />
*r37160 LCL: published missing properties TCalendar.Hint and TCalendar.TabOrder.<br />
*r37167 LCL: Fix range check error in StringGrid when sorting and RowCount=FixedRows, issue [[http://bugs.freepascal.org/view.php?id=21947 21947]]<br />
*r37073 codetools: resolve expr: thisunitname.implementationenidentifier<br />
*r37078 codetools: find declaration: selfunit.implementationidentifier<br />
*r37079,r37080,r37081,r37082,r37083,r37087,r37089,r37098 codetools: getsmarthint: class variables, enum, array of, inheritance, property params and type, use unit<br />
*r37085 IDE: show compiler options: check compiler<br />
*r37086,37088 IDEIntf: removed TLazCompilerOptions.LCLWidgetType, fixed computing default LCLWidgetType on cross target OS<br />
*r37090 codetools: do not try to search in record ancestors<br />
*r37105 DBG: Watches Copy Name/Value to clipboard. Issue [[http://bugs.freepascal.org/view.php?id=0021860 0021860]]<br />
*r37106 DBG: Register Copy Name/Value to clipboard. Issue [[http://bugs.freepascal.org/view.php?id=0021860 0021860]]<br />
*r37107 DBG: Watches, added inspect/evaluate to popup<br />
*r37116 DBG: Fix a possible crash in debugger (history). Issue [[http://bugs.freepascal.org/view.php?id=0021901 0021901]]<br />
*r37195 SourceEdit: Do not access outdated tab-history entries (dangling pointers). Issue [[http://bugs.freepascal.org/view.php?id=0021939 0021939]]<br />
*r37196 SourceEdit: Only add tabs to tab-history that were accessed<br />
*r37103,r37132 codetools: nested types: Self and inherited<br />
*r37104,r37120 codetools: GetSmartHint: show anonymous arrays<br />
*r37111 IDE: Make Close button work in Components List dialog. Issue [[http://bugs.freepascal.org/view.php?id=21892 21892]],<br />
*r37118 IDE: build ide: if building fails, clear flag clean up once<br />
*r37119 IDE: when building IDE failed: restore backup<br />
*r37121,r37122 IDE: select frame: search in packages<br />
*r37130 IDE: select frame: search in packages<br />
*r37131 LCL, implements textrect clipping in Postscriptprintercanvas<br />
*r37133 SynEdit: Fix WantTabs / Change default to "True" Issue [[http://bugs.freepascal.org/view.php?id=0021904 0021904]]<br />
*r37134 SynEdit: Remove not required invalidation (paint / call to wrong Update() )<br />
*r37135 SynEdit: Remove wrong implementation of Update. Update no longer forwards to Invalidate<br />
*r37136 IpPro: Fix painting for SelectAll<br />
*r37137 IDE, IpPro: Allow copy to clipboard from hint (zeljko added because of conflict in 37345)<br />
*r37140 cody: show code node info: show complete source<br />
*r37141 SynEdit: Fixed Caret paint error (extra caret left on screen) Issue [[http://bugs.freepascal.org/view.php?id=0021924 0021924]]<br />
*r37143 IDEIntf: added TPropertyEditorHook.IsSelected<br />
*r37144 IDEIntf: TDefaultComponentEditor: always select component<br />
*r37146 IDE: if component class is missing: note about RegisterClass<br />
*r37148 Translations: Ukrainian translation cleanup<br />
*r37149 IDE: regenerated translations; updated Russian translation<br />
*r37151 cody: IDE item to create dockable IDE window<br />
*r37152 cody: new IDE window: show dialog to setup form name<br />
*r37162,r37163 IDE: TProjectFileDescriptor.DefaultResourceName: first try without appending a number, check for pascal keywords<br />
*r37164,r37165 IDE: fixed DoGetUnitRegisterInfo for virtual files<br />
*r37166 SynEdit: Fixed Caret when scrolling under older Wine (Win Emulator)[[http://bugs.freepascal.org/view.php?id=21929 21929]]<br />
*r37212 sqldb: added icon for TMySQL55Connection for fpc 2.6.1 '<br />
*r37213,r37214,r37219 codetools: do not save errors outside parser<br />
*r37215 codetools: GetSmartHint: ^, .., file of, class of<br />
*r37220 Translations: Czech IDE translation update by Martin Smat<br />
*r37224 SynEdit: Autocompletion, workaround for click on hint Issue [[http://bugs.freepascal.org/view.php?id=21952 21952]]<br />
*r37231 SynEdit: Prevent some scrolling, while selecting by mouse. Issue [[http://bugs.freepascal.org/view.php?id=0021996 0021996]]<br />
*r37232 DBG: Inspect window, improve scrolling<br />
*r37234 DBG: Improve start-up to work with bug in gdb 7.4<br />
*r37262 searching compiler: search first in dir of fpc.exe, then in PATH<br />
*r37263,r37265 codetools: improved error message on unit not found<br />
*r37264 fix setting radiogroup.itemindex under gtk2. Issue [[http://bugs.freepascal.org/view.php?id=22013 22013]]<br />
*r37267 Docs: improved build_lcl_docs robustness when working with TProcess, patch from Reinier Olislagers, bug 22000<br />
*r37273 SourceEditor: Fix crash when closing several tabs, while debugging (paused / loading line info). Maybe related to issue [[http://bugs.freepascal.org/view.php?id=22015 22015]]<br />
*r37274 Fix Crash in building "Windows" (list of open W.) Menu. Note 0059576 in Issue [[http://bugs.freepascal.org/view.php?id=22015 22015]] (not related to other parts of issue)<br />
*r37280 SQLdb: added missing tmysql55connection.png, bug 22033 '''Related to 37212 and other revisions for TMySQL55Connection'''<br />
*r37281 SynEdit: protect ProcessCommand() against early destruction by ReleaseComponent. Issue [[http://bugs.freepascal.org/view.php?id=0022035 0022035]]<br />
*r37285 IDE: make Close button work in Window Manager<br />
*r37286 Patch from bug 21651, automatically adds quotes to paths with spaces for OpenDocument in Mac OS X<br />
*r37297,r37298 SynEdit, Pas-HL: record helper, deprecated in object<br />
*r37311 Translations: Arabic IDE translation update by Mazen NEIFER<br />
*r37312 IDE: Make Help button work in Editor Window Manager, issue [[http://bugs.freepascal.org/view.php?id=21961 21961]]. (zeljko added to merge list because of conflicts in 37491)<br />
*r37325 regenerated translations; updated Russian translation<br />
*r37326 Translations: Brazilian Portuguese translation update by Marcelo B Paula, bug 22064<br />
*r37327 IDE, Code Generation options: changed wrong -Op386 option to correct -Op80386. Patch by barlone with some consistency changes, bug 22062.<br />
*r37357 Gtk2: fixed mbAll button on dialogs. Added response keys which does not exist in gtk2. issue [[http://bugs.freepascal.org/view.php?id=22083 22083]]<br />
*r37344 gtk2 intf: less hints<br />
*r37345 ipro: less hints <br />
*r37359 lazreport: German translations<br />
*r37360 cody: German translations<br />
*r37039,r37319,r37324,r37361 sqldb: German translations (zeljko added 37039,37319,37324 because of conflicts)<br />
*r37362 educationlaz: German translations<br />
*r37363 ide: German translations<br />
*r37372 lcl: don't access Items of TreeView if DragOver happens during treeview destruction<br />
*r37373 IDE: debugger options: check the resolved file, bug 22086<br />
*r37374 Qt: bypass windowmanager when showing dragimagelist.<br />
*r37375 Gtk2: do not show taskbar entry for dragimagelist.<br />
*r37376 IDE: update TUnitInfo.ResourceBaseClass on loading lfm<br />
*r37378 [Edited, includes selected lines of 37402] SourceEditor: Hide hint, when mouse moves (even if outside IDE, or IDE is not active). Issue [[http://bugs.freepascal.org/view.php?id=0022016 0022016]]<br />
*r37368 DBG: Fixed array len for 64 bit<br />
*r37369 lcl: don't crash when either DragTarget or dragged control is freed (issue [[http://bugs.freepascal.org/view.php?id=22067 22067]])<br />
*r37370 lcl: cleanup debug info<br />
*r37371 lcl: fixed a memory leak when canceling drag of dead control<br />
*r37380 SourceEdit/DBG: Ensure Codebuffer is updated before using it to add watches<br />
*r37383 IDE: TUnitInfo.fModified: do not set on get<br />
*r37384,r37401 IDE: do not set TUnitInfo.Modified when committing source editor to codetools<br />
*r37388,r37389,r37390,r37391,r37392 tests: added tests for cfgscripts, fixed unit output directory, cfgscript: fixed error message if semicolon is missing, IDE: added conditionals functions GetIDEValue, GetEnv, LCL: use IDE widgettype as default<br />
*r37397 TodoList: properly trim comment markers and convert multiline text to single line, fixes bug 22085. Based on patch by Anton.<br />
*r37400 codetools: fixed mem leak<br />
*r37418: TAChart: Fix range check using datapoint tool on a chart without series<br />
*r37440 DBG: do not set temporary stack = -1 in thread changing. This may cause errors<br />
*r37444 DBG: Watches, save "Use instance class" to config<br />
*r37449 LCL: fixed comments<br />
*r37451 Qt: fixed wrong SetCapture() under win32. Problem was passed TQtWidget handle instead of underlaying widget winID() which is native handle.<br />
*r37453 SynEdit: Fix goto bookmark and persistent block. Do not clear persistent block<br />
*r37461 lcl: TCustomForm.UpdateDockCaption: fixed repair garbage<br />
*r37463 IDE: when docked keep IDE caption<br />
*r37464 Help, DBG: New link to wiki for watch properties<br />
*r37475 codetools: TCustomCodeTool.FindLineEndOrCodeAfterPosition: fixed crash when at end of code<br />
*r37476 codetools: clear nodes behind, when linkscanner parsed only parts<br />
*r37481 IDE: fixed storing old LCLWidgeType, bug 22174<br />
*r37482 codetools: save parse error of operator, do not save errors outside parser, fixed parsing method name with generic parameter<br />
*r37483 codetools: allow keywords in program name<br />
*r37534 Qt: do not call setValue() but setPosition() so lcl gets accurate values later. issue [[http://bugs.freepascal.org/view.php?id=22187 22187]]<br />
*r37491 Help, DBG: Link to wiki for breakpoint properties (zeljko - 37312 is merged too, because of conflicts)<br />
*r37470 IDE, DBG: debug-eval hint, do not show, if selection exceeds one statement (e,g whole file selected). Part of issue [[http://bugs.freepascal.org/view.php?id=0022081 0022081]]<br />
*r37471 SourceEditor: Fix an issue with focusing an editor, that is being closed (while debugging) "no parent handle". Issue [[http://bugs.freepascal.org/view.php?id=0022015 0022015]]<br />
*r37517 SynEdit: fixed folding for "case" and "try" in certain code segments (initialization / case...else try)<br />
*r37518 SynEdit: Pas-HL: fix detection of case...else versus if...then...else<br />
*r37522 SynEdit: Pas-HL: better detection of case...else<br />
*r37623 SourceEditor: Fix (Work-around) an issue with focusing an editor, that is being closed (while debugging) "no parent handle". Issue [[http://bugs.freepascal.org/view.php?id=0022015 0022015]] // Required some parts of r37502<br />
*r37609 DBG: Avoid re-queuing of dis-assembler requests, after cancelling it. Part of issue [[http://bugs.freepascal.org/view.php?id=0022230 0022230]]<br />
*r37643 DBG: Disassembler: prevent disassembler from doing large address ranges, if gdb returns data with far away addresses. Issue [[http://bugs.freepascal.org/view.php?id=0022230 0022230]]<br />
*r37657 DBG: fixed a out of index error, in watches history<br />
*r37694 DBG: Fixed possible crash in watch evaluation (WatchValue freed while evaluating / in GetValue)<br />
*r37466 IDE: added menu item to insert MIT license text<br />
*r37407,r37474,r37492 IDE: TMainIDE.DoSourceEditorCommand: improved focus check, requires r37466<br />
*r37564 LCL: TCustomListView: reset FCacheIndex and FCacheItems before sorting list, otherwise we'll have unexpected results. issue [[http://bugs.freepascal.org/view.php?id=22218 22218]]<br />
*r37505, r37509, r37516, r37523 fixed compilation with fpc 2.7.1<br />
*r37592 lcl: fixed compilation fpc 2.7.1<br />
*r37525 TAChart: Display legend symbols even if the text is empty<br />
*r37565 TAChart: Display major axis marks at the edges of the clip range<br />
*r37576 TAChart: Fix infinite recursion when drawing chart listbox from series with Legend.Multiplicity <> lmSingle<br />
*r37588 TAChart: Include Item.Y in reordered list of TCalculatedChartSource. Update test. '''This will break old tests. Please contact me for a fix --- Ask'''<br />
*r37727 TAChart: Update to the recent version of FPVectorial<br />
*r37587 Qt: unset icon when doing internal sync after sorting. part of issue [[http://bugs.freepascal.org/view.php?id=22218 22218]]<br />
*r37620 LCL: invalidate parent preferredsize when borderspacing changed, bug 17947<br />
*r37621 LCL: clean up - invalidate in TControl.DoBorderSpacingChange no longer needed with new autosizing<br />
*r37622 lazutils: added missing file<br />
*r37624 LCL: GetClientRect: if interface has the right width,height trust the clientrect, this avoids some unneeded resizes<br />
*r37573 IDE: project inspector: add files: allow dotted unit names, bug 22209<br />
*r37619 IDE: open package dependency: try provides, issue [[http://bugs.freepascal.org/view.php?id=17960 17960]]<br />
*r37628 IDE: compiler options: disable target platform for packages<br />
*r37594 codetools: fixed Unneeded extra space in event assignment completion<br />
*r37613 codetools: property completion: add class var for class property variables<br />
*r37614 codetools: class completion: search variables in all sections, bug 22246<br />
*r37625,r37626,r37627 codetools: class completion: fixed searching var node when first is class var<br />
*r37629 codetools: fixed adding class keyword for property setter of a class property<br />
*r37630 IDE: codeexplorer: labels<br />
*r37634 IDEIntf: objectinspector: fixed painting outside paint event<br />
*r37631 codetools: no var node for anonymous record case variables<br />
*r37632 codetools: identifier completion: when creating an override hide higher visibility members<br />
*r37633 codetools: class completion: add static method modifier for setter of class property<br />
*r37636 codetools: class completion: add static method specifier for class property setter<br />
*r37635 IDE: paste component: fix renamed references<br />
*r37637,r37638,r37639 IDE: paste multiple components: fix references, lcl: LRSObjectTextToBinary: write convert list of components<br />
*r37640 IDE: paste components: update TControl.Caption<br />
*r37642 lcl: fixed LRSObjectTextToBinary toWString, issue [[http://bugs.freepascal.org/view.php?id=19650 19650]]<br />
*r37644 codetools: fixed inserting proc bodies in implementation in front of methods<br />
*r37652,r37653,r37655 codetools: using TFileStreamUTF8<br />
*r37656 IDE: using TFileStreamUTF8 and TStringListUTF8<br />
*r37663 IDE: fixed show info on --help when no stdout exists<br />
*r37689 LCL: fixing handling of special keys for TCustomEdit and TCustomMemo<br />
*r37690 codetools: forward proc completion: stay in same section<br />
*r37697 DBG: Dialogs, don't give help related commands to IDE. They will be ignored<br />
*r37698 IDE Help: add urls for dbg dialogs<br />
*r37703 lazutils: utf8pos: added optional parameter StartPos<br />
*r37704 IDE: setup dialog: show fpc source directory release version as warning instead of error<br />
*r37707 tools create deb+rpm: use 128x128 icon<br />
*r37705 SynEdit: open and close clipboard explicitly to write multiple formats.<br />
*r37714 lcl: gtk2: warn only once about liboverlay<br />
*r37711 lhelp: cleaned up paths<br />
*r37712 lhelp: clean up<br />
*r37713 lhelp: resolve macros in HelpEXE on the demand<br />
*r37715 chmhelp: using search path to search for chm files<br />
*r37716,r37717 chmhelp: added path $(LazarusDir)/docs/chm<br />
*r37718 'hmhelp: search ref.chm in docs/chm<br />
*r37726 create_lazarus_deb: added option chmhelp<br />
*r37722 DBG: Event-Log: Do not cache Options. Allow user to change options while debugging<br />
*r37596 Patch from {{MantisLink|0022231}} "fix warnings with fpc 2.6.1".--[[User:AlexVinS|AlexVinS]] 21:40, 8 June 2012 (UTC)<br />
*r37745 deb+rpm: default environmentoptions: updated to 107, removed default gdb entry<br />
*r37748,r37755 lhelp: added makefile<br />
*r37749 make bigide: build lhelp<br />
*r37753 IDE: fixed comparing file names case insensitive<br />
*r37754 lazutils: inlined UTF8CompareStr<br />
*r37760 Use Utf8CompareText instead of AnsiCompare<br />
*r37762 linux: added encoding to desktop file<br />
*r37769 Use Utf8CompareText instead of AnsiCompare<br />
*r37770 TAChart: Fix AV when clearing Series.Styles and TColorMapSeries.ColorSource properties<br />
*r37772 Use Utf8CompareText instead of AnsiCompare<br />
*r36804 win32: mark client rect as required update before WM_SIZE passing, remove DoAdjustClientRectChange - they are called inside WM_SIZE handler after the client rect is updated (fixes bug [[http://bugs.freepascal.org/view.php?id=0021724 0021724]])<br />
**Paul remarked about r36804: "Please don't merge it for at least 2 weeks". Also seems to cause problems in grids, see [http://bugs.freepascal.org/view.php?id=21790 issue [[http://bugs.freepascal.org/view.php?id=21790 21790]]].<br />
*r36993: LCL, fixed Problems setting Width, Height for TCustomGrid if ScrollBars is auto, from cobines, issue [[http://bugs.freepascal.org/view.php?id=21790 21790]]. If r36804 is merged, please merge also r36993<br />
*r37783 startlazarus: linux: adding LIBOVERLAY_SCROLLBAR=0 to avoid problems with mouse capturing<br />
*r37785 gtk2 intf: disable liboverlay by default<br />
*r37790 gtk2 intf: use setenv only on Linux<br />
*r37795: export tgz: added option to add chm files<br />
*r37796 IDE: when copying secondary configs create the primary config directory first<br />
*r37797 rpm: added option chmhelp<br />
*r37810 rpm: fixed building without chmhelp<br />
*r37811 lhelp: fixed invalid recent item path in config, added build modes default,debug<br />
*r37814 chmhelp: clean up old ipc files to prevent IDE hang<br />
*r37817-r37821 MAKE DEB<br />
*r37838 DBG: Fix handling console input<br />
*r37824 chmhelp: Fixed lazarus hanging when chmhelp pipe is leftover from an improperly closed lhelp<br />
*r37825 chmhelp; Fixed chmhelp typo (boolean error)<br />
*r37826 chmhelp: fixed bug where a new lhelp process could be started each time F1 was pressed<br />
*r37841 DBG: Pseudo-Terminal, accept tabs<br />
*r37848 lazutils: docs: fixed encoding and package name<br />
*r37849 lcl: docs: fixed encoding<br />
*r37850 ide: docs: fixed encoding<br />
*r37851 updated docs<br />
*r37853 lcl: docs: fixed some links<br />
*r37852 build_lcl_docs: using UTF-8 file functions, added option -h<br />
*r37855 build_lcl_docs: showcmd: show working directory<br />
*r37861 lcl: check if ListDataset is loading to update lookup info. Issue [[http://bugs.freepascal.org/view.php?id=22337 22337]]<br />
*r37846 win32: let TComboBox.CloseUp fire before Change (delphi compatible). Fix 22352<br />
*r37880 IDE+startlazarus: use same working directory, needed for passing relative file names as command line parameters, fixed building lcl+lazutils chm on ubuntu 12<br />
*r37866 lazutils: fixed unit names<br />
*r37868 lazutils: added fpdoc files<br />
*r37869 docs: building lazutils+lcl chm<br />
*r37885 DBG: fixed parsing sets for debug-inspector<br />
*r37906 IDE-Options / SynEdit: Fixed RightEdge visibility (Recression)<br />
*r37919 DBG: Prevent potential crash/memory-corruption in Watches<br />
*r37920 DBG: Prevent potential crash in (dbg-)OnIdle handling<br />
*r37921 DBG: Prevent build up of no longer needed commands in queue<br />
*r37945 DBG: Prevent a crash, when the selected snapshot is deleted. Cas also happen when starting the debugger, while a snapshot from previous run is active<br />
*r37950 DBG: fixed endless loop in watch eval (auto type cast) Issue [[http://bugs.freepascal.org/view.php?id=0022425 0022425]]<br />
*r37961 DBG: Disable rangechecks for certain PtrUInt casts<br />
*r37993 carbon: fixed crash of IDE when compiled with range checks on<br />
*r38006 gtk2: fixed crash on QuestionDlg<br />
*r38003 IDE: fixed showing custom project options, issue [[http://bugs.freepascal.org/view.php?id=22486 22486]]<br />
** merged ONLY main.pp<br />
*r38016 ToDoList: fixed encoding of French translation, it should be UTF-8, not ISO-8859-1. Patch by batyann811, bug 22489.<br />
*r37981,37983-37989,38001,38004-38005,38012,38017 Win Installer<br />
===== Fixed after RC1 =====<br />
*r38127 IDE, EditorOptions: Fixed finding color attribute in localized IDE<br />
*r38132 IDE: setup: after changing lazarusdir: fetch translations and translate<br />
*r38133 chmhelppkg: invoke lazbuild with --pcp parameter<br />
*r38138 examples: testall: fixed start<br />
*r38139 examples: cleandirs: error for fpc version<br />
*r38140 examples: componentstreaming: fixed typo, clean up<br />
*r38141 lazfreetype: fixed range check error, improved error message<br />
*r38142 examples: mssqlconn: requires fpc 2.6.1<br />
*r38144 examples: synguttermarks: win32 gui mode, fixed Left position<br />
*r38146 examples: tv_add_remove: updated<br />
*r38147 examples: xmlreader: added example xml<br />
*r38157 IDE: fixed saving ambiguousfileaction, bug 22573<br />
*r38158 examples: clean up<br />
*r38038 TAChart: Allow spaces in field names inside TDbChartSource.FieldY<br />
*r38168 synuni: clean up fpc options<br />
*r38170 synuni, semaphorgridlpk: clean up fpc options<br />
*r38022 SynEdit: Fixed drawing errors for frames (left frame site drawn at wrong offset)<br />
*r38145 LCL: TListView fixed "List index out of bounds" while deleting items. issue [[http://bugs.freepascal.org/view.php?id=22552 22552]]<br />
*r38150 SynEdit TSynMultiSyn: Fixed crash when deleting lines. Part of issue [[http://bugs.freepascal.org/view.php?id=0022519 0022519]]<br />
*r38151 SynEdit Highlighter: Fixed crash when scanning empty<br />
*r38152 SynEdit TSynMultiSyn: typo<br />
*r38175 SynEdit TSynMultiSyn: Fixed updating, when appending to EOT. Part of issue [[http://bugs.freepascal.org/view.php?id=0022519 0022519]]<br />
*r38205 lazaruside.fi.po: Finnish translations<br />
*r38180 Synedit: fix matching-bracket-highlight in comments (closing bracket at eol) issue [[http://bugs.freepascal.org/view.php?id=22586 22586]]<br />
*r38198 IDE: Export to html, do not enforce check for writeable. Issue [[http://bugs.freepascal.org/view.php?id=22588 22588]]<br />
*r38199 lazutils: do not use winodws W functions under Win98, issue [[http://bugs.freepascal.org/view.php?id=22596 22596]]; '''Breaks compilation on wince, because win32platform is not defined.'''<br />
*r38202 openglcontrol: win32: fixed sharing context<br />
*r38204 Synedit: fixed typo in IFDEF for fpc 2.60 bug<br />
*r38225 TAChart: Fix division by zero in zoom tools with extreme zoom ratios<br />
*r38226 TAChart: Fix hang in functional series with extreme zoom ratios<br />
*r38223 SynEdit TSynMultiSyn: Several fixes issue [[http://bugs.freepascal.org/view.php?id=0022519 0022519]]<br />
*r38232 TAChart: Add InRangeUlps utility function<br />
*r38233 TAChart: Fix disappearance of axis marks located exactly at chart bounds<br />
*r38234 TAChart: Fix crash when setting Marks.LabelFont from the Object Inspector<br />
*r38237 Examples/SynEdit: Readme and typo in comment<br />
*r38266 IDE: Tweak the layout of ManageExamplesForm<br />
*r38260 TAChart: Use correct notification when the series' source changes<br />
*r38261 TAChart: Issue change notifications when modifying TListChartSource.DataPoint property<br />
*r38285 lhelp: replace MessageBox, with Form.Modal. FIx IPC hang. issue [[http://bugs.freepascal.org/view.php?id=0022592 0022592]]<br />
<br />
===== Fixed after RC2 =====<br />
*r38293 windows installers: don't ask to overwrite the environment options in the secundary config directory from Reinier Olislagers<br />
*r38339 SynEdit TSynMultiSyn: Fix CaseSensitivity for Sheme marker. Issue [[http://bugs.freepascal.org/view.php?id=0022693 0022693]]<br />
*r37386 Remove writeln() that looks like a residual debug message. Issue [[http://bugs.freepascal.org/view.php?id=0022544 0022544]]<br />
*r38385 Translations: removed unmaintained Portuguese translation, which was outdated copy of Brazilian Portuguese one<br />
<br />
== How to merge ==<br />
The lazarus developers have decided to use the native svn merge for this branch. Other branches used the svnmerge.py script to manage the revisions to be merged.<br />
<br />
* TODO: Maybe this information should be put in a separate page.<br />
<br />
[[SVN_Migration#Merge_with_plain_svn]]<br />
=== Using TortoiseSVN ===<br />
As noted in the link above using TortoiseSVN is more or less self explaining. <br />
<br />
* TODO: add some screen shots.<br />
<br />
When committing, in the recent messages a nice commit message is available.<br />
<br />
Tested with TortoiseSVN 1.7.6, SVN 1.7.4.<br />
<br />
=== Show list of revision that can be merged ===<br />
In the lazarus fixes_1_0 directory do:<br />
svn mergeinfo ^/trunk --show-revs eligible<br />
Or if you don't have a fixes directory checked out, you can pass the URL path of the fixes branch:<br />
svn mergeinfo ^/trunk http://svn.freepascal.org/svn/lazarus/branches/fixes_1_0 --show-revs eligible<br />
<br />
=== Show list of revision that have been merged ===<br />
In the lazarus fixes_1_0 directory do:<br />
svn mergeinfo ^/trunk --show-revs merged<br />
<br />
=== Merging revisions from trunk ===<br />
To merge one or more revisions from trunk, use the svn merge command. For example to merge revision 36506 and 36510 use:<br />
svn merge -c 36506,36510 ^/trunk<br />
<br />
To generate a commit log message, use:<br />
svn log ^/trunk -c 36506,36510 > svnmerge-commit-message.txt<br />
<br />
Edit svnmerge-commit-message.txt with your favorite text editor and add a first line like:<br />
Merged revision 36506,36510 from /trunk.<br />
<br />
Commit this with:<br />
svn commit -F svnmerge-commit-message.txt<br />
<br />
=== Blocking a revision to be merged ===<br />
Sometimes you want to block a revision to be merged, i.e. you want to make sure that this revision is never merged to the fixes branch, for example, because it contains a new feature or it contains a version number change not applicable to the fixes branch, but only to trunk. To block revision 36507, use:<br />
svn merge -c 36507 --record-only ^/trunk<br />
Then you can create a log message with:<br />
svn log ^/trunk -c 36507 > svnmerge-commit-message.txt<br />
Edit svnmerge-commit-message.txt with your favorite text editor and add first line like:<br />
Blocked revision 36507 from /trunk<br />
Then commit this change:<br />
svn commit -F svnmerge-commit-message.txt</div>
Paul Ishenin
https://wiki.freepascal.org/index.php?title=Lazarus_1.0_fixes_branch&diff=61939
Lazarus 1.0 fixes branch
2012-09-24T12:57:57Z
<p>Paul Ishenin: /* Merged revisions for 1.0.2 */</p>
<hr />
<div>This page contains the revisions to be merged from trunk to the [http://svn.freepascal.org/svn/lazarus/branches/fixes_1_0/ Lazarus 1.0 fixes] branch.<br><br />
Release notes can be found here [http://wiki.lazarus.freepascal.org/Lazarus_0.99.0_release_notes Release notes]<br />
<br />
== Fixes for 1.0.2 ==<br />
=== Merge requests ===<br />
==== Submitted by developer / committer ====<br />
<br />
*r38636,r38637: Gtk2: fixed text clipping and text background drawing<br />
**r38636 CONFLICT<br />
*r38673 TAChart: Ignore NaNs while calculating TCustomChartSource.ValuesTotal<br />
*r38675 TAChart: Support Marks.Attachment = maCenter in pie series<br />
*r38697,38698 Gtk2: set TToggleBox.ParentColor default false so it's color is consistent with TButton when eg.parent color is clRed and TToggleBox.Color=clDefault.<br />
*r38694: TAChart: Fix update of TListChartSource.ValuesTotal cache when adding or removing NaNs<br />
*r38709: Qt: improved triggering of OnClick() in QEventShowToParent. issue [[http://bugs.freepascal.org/view.php?id=22872 22872]]<br />
*r38710: TAChart: Fix crash when using TChartExtentLink with LinkedChart.Chart = nil<br />
*r38712: TAChart: Fix crash while replacing linked chart in TChartExtentLink<br />
*r38713: TAChart: Use NumberOr function instead of checking for NaN explicitly<br />
*r38719: TAChart: Extract TDrawFuncHelper.ForEachPoint helper procedure ''This also fixes a hang while using data point tool on extremely zoomed-in series''<br />
*r38729: TAChart: Extract TDrawFuncHelper.XRange helper function. + Fix GetNearestPoint for rotated function series.<br />
*r38733: TAChart: Fix TChartSeries.SetColor to notify all listeners and require ListSource. Add TListChartSource.SetColor<br />
*r38735: TAChart: Fix memory leak in TDbChartSource.BeforeDraw<br />
*r38737: TAChart: Fix drawing of pie series with data from the db source<br />
*r38754: TAChart: Fix hang when changing TLineSeries.ShowPoints while drawing chart<br />
*r38757: TAChart: Display crosshair tool on mouse down<br />
*r38762: Gtk2: when style is drawing button then use style from button. issue #22901<br />
*r38779: TAChart: Do not notify from TListChartSource.SetXValue and SetYValue if the value did not actually change.<br />
*r38780: TAChart: Add TBasicPointSeries.MovePoint overload for graph coordinates ''not a fix, but required for r38788''<br />
*r38788: TAChart: Support axis transformations in TCustomChartSeries.MovePoint<br />
*r38792: TAChart: Fix crash on deleting subcomponent with active property editor<br />
*r38799: gtk2: implement SPI_GETWHEELSCROLLLINES. Fix a regression in VirtualTreeView wheel scroll<br />
*r38802: lcl:revert 33020, 33082, 33086, part of 33089 and 33389. These changes made the hint behavior Delphi incompatible thus leading to a regression in third party control like VirtualTreeView that handles hints in CMHintShow. Retrieve parent hint recursively if hintcontrol.hint is empty' (delphi compatible)<br />
<br />
==== Submitted by others ====<br />
<br />
=== Merged revisions for 1.0.2 ===<br />
*r37217,37218,37225,37239,37241,37293,37304,37316 Qt: fixed keys handling (arrow keys & enter).<br />
*r38396 LCL: ColorBox - keep FSelected in sync all the time. fixes issue [[http://bugs.freepascal.org/view.php?id=22729 22729]]<br />
*r38426 CodeBrowser: check for virtual units. Issue [[http://bugs.freepascal.org/view.php?id=0022740 0022740]]<br />
*r38428 SynEdit, MultiHighlighter: fix adding text/sections at EOL. issue [[http://bugs.freepascal.org/view.php?id=0022745 0022745]]<br />
*r38430 TAChart: Fix out-of-bounds access when drawing empty polygons and polylines<br />
*r38437 ide: project target: apply default extension even if the file has already an extension, issue [[http://bugs.freepascal.org/view.php?id=22750 22750]]<br />
*r38444 IDE: fixed crash when releasing non existing component palette select button<br />
*r38473 tests: fixed compilation<br />
*r38464 TAChart: Fix error message in TFPCanvasDrawer.RadialPie<br />
*r38486 avglvltree: setcompare: set when count=0<br />
*r38503 TAChart: Copy BaseLength in TChartArrow.Assign<br />
*r38507 EditorOpts: default for top-info-hint<br />
*r38509 Debugger: Ensure Queue is not blocked by LineInfo Request. (If a LineInfoRequest was queued the DebuggerCurrentLine could not search the stack, as commands were not immediately run)<br />
*r38519 Gtk2: fixed crash with TListView when viewstyle is vsIcon or vsSmallIcon. issue [[http://bugs.freepascal.org/view.php?id=22778 22778]]<br />
*r38520 Qt: do not propagate keyrelease event as action trigger. issue [[http://bugs.freepascal.org/view.php?id=22737 22737]]<br />
*r38531 Debugger: Workaround to fix exe-line-indicators (blue dots) at debug start<br />
*r38533 Qt: fixed header offset and getClientRect for TListView when ViewStyle=vsReport.<br />
*r38547 TAChart: Support Y NaNs in polar series ''(this will cause compilation error -- please remove 'and CloseCircle' part from the last conditional in the TPolarSeries.Draw procedure)''<br />
*r38557 TAChart: Support brush style, pen style and pen width in fpvectorial drawer<br />
*r38571 TAChart: Draw chart correctly after decrease of an axis margin<br />
*r38529,r38530,r38535,r38543,r38548: fix carbon clipping, correctly return region types on HRGN related operations, fix generic IntersectClipRect routine<br />
*r38640,r38641,r38642,r38649: various ExtTextOut fixes for Carbon and Cocoa<br />
*r38551,r38552,r38562,r38563 Carbon: various winapi compatibility functions fixes<br />
*r38518 Qt: TQtWinApi.ExtTextOut() implemented Dx param. issue [[http://bugs.freepascal.org/view.php?id=22795 22795]] (zeljko will merge, need some testing)<br />
*r38572 Qt: propagate QEvent::ShortcutOverride to parent, so stop key event if shortcut is executed. issue [[http://bugs.freepascal.org/view.php?id=22827 22827]]<br />
*r38576,38577: Qt: fixed TQtWidgetSet.FrameRect(), now it uses passed brush to draw frame border.<br />
*r38610 Qt: fixed non ascii utf8 chars in TQtWidgetSet.ExtTextOut() when we use dx param. issue [[http://bugs.freepascal.org/view.php?id=22795 22795]] (depends on merging of r38518).<br />
*r38628,38629,38630,38634: Qt: fixed clipping bugs inside TQtWidgetSet.ExtTextOut()<br />
*38670 SynEdit: Fixed past eol paint error ** Must be ported by hand **<br />
*r38584 TAChart: Copy Attachment and YIndex in TGenericChartMarks.Assign ''(this code is in TATypes unit in v1.0)''<br />
*r38589 TAChart: Do not draw lines which should be invisible in OpenGL drawer<br />
*r38607 TAChart: Workaround for issue [[http://bugs.freepascal.org/view.php?id=22850 22850]] '''see patch in the mailing list'''<br />
*r38617 TAChart: Fix GetNearestPoint returning true with no points found inside radius, issue [[http://bugs.freepascal.org/view.php?id=22854 22854]]<br />
*r38644: Qt: fixed menu flickering. issue [[http://bugs.freepascal.org/view.php?id=22872 22872]]<br />
*r38651: TAChart: Fix zero division when calling ImageToGraph before the chart is drawn<br />
*r38674 Qt: fixed crash when invalid or null handle is passed into SetCapture.<br />
*r38679 Qt: update bitmap if TMenuItem has associated ImageList and ImageIndex. issue [[http://bugs.freepascal.org/view.php?id=22896 22896]]<br />
*r38672 SynEdit: fixed delete-next-word, if caret past eol. Issue [[http://bugs.freepascal.org/view.php?id=0022890 0022890]]<br />
*r38720 LCL, DefaultTranslator: fix handling of non-ASCII path to .po file, bug 22907, patch by Vladimir Zhirov<br />
*r37398 IDE: corrected version info language list, added Ukrainian language, bug 22103<br />
*r38722 IDE: added Lithuanian to version info language list, bug 22898<br />
*r38671: carbon: fix accidental error in index<br />
*r38743: carbon: reimplement linear gradient draw using shading to support OS X < 10.5<br />
<br />
== Fixes for 1.0 ==<br />
=== Merged revisions for 1.0.0 ===<br />
==== Submitted by developer / committer ====<br />
*r36506 LazReport, fix barcode dialog localization (Jesus)<br />
*r36508 Updated Japanese translation<br />
*r36509 Window Column, store pointer to resourcestring<br />
*r36510 LazReport, fix barcode addin when TfrBarCodeObject is not yet instantiated (in this case barcode editor defaults to memo view.<br />
*r36511 DividerBevel: implemented Transparent.<br />
*r36514 IDE: moved macros save/saveall to source editor<br />
*r36515 IDE: update macro descriptions after translating resource strings<br />
*r36516 IDE: trim TLazPackageGraph.GetFallbackOutputDir<br />
*r36517 IDE: check if package needs rebuild: switch to fall back directory: update compiler params<br />
*r36518 IDE: install/uninstall package dialog: fixed icons, added info about current state<br />
*r36523,r36530 IDE: Export as HTML<br />
*r36526 CodeTemplate: Improve final caret pos, if tmpl does not specify<br />
*r36527 CodeTemplate: allow tab to trigger / selection to ignore. issue [[http://bugs.freepascal.org/view.php?id=0017631 0017631]]<br />
*r36528 SynEdit: Template(Syncro) fix invalidation<br />
*r36529 IDE: Printing: break long lines. Issue [[http://bugs.freepascal.org/view.php?id=0013479 0013479]]; <br />
*r36547 IDE: Printing: break long lines. Fix Utf8. Update for rev 36529<br />
*r36531 LazReport: fixed buttonpanel localization in BarCode editor dialog<br />
*r36533 IDE: clean up of unused resourcestrings<br />
*r36534, r36536, r36553, r36583, r36646 regenerated translations; updated Russian translation<br />
*r36535 IDE: more clean up of unused resourcestrings<br />
*r36537 Documents LCLIntf.GetDeviceCaps<br />
*r36538 IDE: always store lazarus directory<br />
*r36539 LazReport: uppercase variable before comparing with hardcoded functions. Properly fix to 21624<br />
*r36543 IDE: setup dialog: using same file resolving as IDE<br />
*r36546 IDE: consider empty lazarusdirectory as pcp, empty fpcsrcdir as lazdir, empty testdir as lazdir<br />
*r36548 IDE: fixed note about wrong laz dir<br />
*r36549 IDE: fixed crash on find identifier references<br />
*r36551 IDE: translate descriptions of all macros<br />
*r36552 IDE: fixed editor tab position combobox items localization on Editor/Misc options page<br />
*r36556,r36557 IDE: warn if upgrading configs<br />
*r36561, 36562, 36563, 36566: Improve Options/Keymap<br />
*r36565 LCL: Prevent TShape.stRectangle disappearing with certain Height/Width and Pen.Width values.<br />
*r36567,r36568,r36569 IDE: show downgrade warning<br />
*r36570 lazbuild: select IDE build mode, fixed compiling with different mode<br />
*r36572 LCL: set csCaptureMouse on TToolButton, but don't send click if mouse is out of ttoolbutton on mouseup.issues [[http://bugs.freepascal.org/view.php?id=19688 19688]],[[http://bugs.freepascal.org/view.php?id=21560 21560]]<br />
*r36574 IDE: fixed saving environment on every change<br />
*r36577 LCL, TreeView: fix GetNextVisible, GetPrevVisible. Issue [[http://bugs.freepascal.org/view.php?id=21264 21264]]<br />
*r36575 IDE/Setup dialog: force taskbar button to be shown<br />
*r36584 IDE: import package list: opendialog<br />
*r36587 IDE: intial setup: fpc src dir: lazdir/fpc/fpcver/source<br />
*r36588 IDE: intial setup: fixed if no candidates found<br />
*r36589,r36590 IDE: compiler file name: search first with macros<br />
*r36591 IDE: verbose search for candidates<br />
*r36592 IDE: search fpc src relative to fpc.exe<br />
*r36594 IDE: check compiler: only run common names<br />
*r36595,r36599 IDE: use under windows as default for make the make.exe in the compiler directory<br />
*r36596 IDE,codetools: fixed ppccross,crossppc to ppcross<br />
*r36601 IDE: unify the 2 filters in KeyMapping window. Prevent a potential crash.<br />
*r36603 debian: updated patches to latest source in lazarus svn<br />
*r36608 Gtk2: do not set widget name, it's completelly unnecessary and produce unexpected behaviour if some keywords are in widget name.issue [[http://bugs.freepascal.org/view.php?id=21661 21661]].<br />
*r36613 SynEdit: Fix an issue with Scrollbars not being updated<br />
*r36617 lazbuild: build ide: replace exe on windows<br />
*r36644 IDE: improved 'Export package list' dialog localization<br />
*r36645 IDE: improved 'Package Graph Explorer' dialog localization<br />
*r36647,r36653,r36654,r36655,r36656,36668,36673 IDE: view / IDE internal / what needs building<br />
*r36648,r36650,r36651 IDE: read state file created by Makefile: fix path delimiters, checking compiled state: ignore -v,-i,-B flags, do not skip all -F<br />
*r36652 IDE: codetools options: shorter caption<br />
*r36658 regenerated translations; updated Russian translation <br />
*r36659 LCL: Refactoring. Make TCalculatorDialog.Execute more understandable by removing a "with" block.<br />
*r36661 LCL: Prevent "Test Dialog" feature of Calculator and Calendar dialogs locking the IDE, issue [[http://bugs.freepascal.org/view.php?id=21644 21644]]<br />
*r36616 SynEdit: do not include IME for WinCe<br />
*r36662 LCL: implementation of TCustomImageList.GetIcon()<br />
*r36663 In GUI strings, unify all 3 dots to have a space before them ( ...)<br />
*r36664 IDE: Use CreateAbsolutePath when switching between relative/absolute paths in AddFile dialogs (CreateAbsoluteSearchPath gives wrong output)<br />
*r36665 LCL: publish TUpDown.OnChangingEx<br />
*r36666 IDE etc.: unify 3 dots in GUI string to have a space ( ...).<br />
*r36667 translation: german: updates from Swen Heinig<br />
*r36669 updatemakefiles: write which lpk have conditionals<br />
*r36670,r36671 IDE,lazbuild: create makefile: use CPPROG instead of COPY to get the current date for Makefile.compiled under Windows<br />
*r36649,r36657,r36602,r36672,r36675,r36677,r36679,r36683,r36701,r36708,r36709 Makefiles: updated, reduced dependencies, fixed double compiles<br />
*r36676 LCL: Implement TListItem.EditCaption, issue [[http://bugs.freepascal.org/view.php?id=20295 20295]].<br />
*r36680,r36699 lazbuild: fixed crash, replaced some MessageDlg with IDEMessageDialog<br />
*r36681 IDE,lazbuild: use parsed compiler filename, make filename<br />
*r36682 IDE: debugfilename, debugsearchpath: use same function as other env vars to resolve macros, trim and find<br />
*r36686,r36688 IDE/lazbuild backup, delete the same lazarus exe on all platforms<br />
*r36694 regenerated translations; updated Russian translation<br />
*r36695 LazDataDesktop: regenerated translations; updated Russian translation<br />
*r36696 IDE: add resource strings for various windows manifest keys<br />
*r36697 fix ImageList.AddMasked() in case of source image has no mask description<br />
*r36702 IDE: TProject.TitleIsDefault: check for project+number, fix for renaming the title of a new project<br />
*r36711 Qt: enable wordwrap on TQtStaticText. issue [[http://bugs.freepascal.org/view.php?id=21697 21697]].<br />
*r36712 LCL: fixed function result<br />
*r36713,r36715 lcl: fixed TToolButton.MouseUp X,Y in boundsrect check<br />
*r36716 LCL, combination of modal form + wsMaximized style produces tiny windows on GTK2, issue [[http://bugs.freepascal.org/view.php?id=21634 21634]]<br />
*r36717 LCL: reverted changes to menus.pp from r36666 (by Paul's request)<br />
*r36718 LCL: regenerated translations<br />
*r36719, *r36826 LCL: fix range check error<br />
*r36720 LazReport: added option to ignore undefined symbols, from Luiz Americo, issue [[http://bugs.freepascal.org/view.php?id=21683 21683]]<br />
*r36723,36724 IDE,lazbuild: fixed repeated build project clean: save project state file before compiling too<br />
*r36727 lazbuild: fixed expanding --lazarusdir<br />
*r36728 make useride: pass --lazarusdir=.<br />
*r36729 Improve TStringHashList, prevents a PO file update crash. Issue [[http://bugs.freepascal.org/view.php?id=21685 21685]]<br />
*r36730 IDE: project wizard: fixed fixed size, bug 21714<br />
*r36731 lazreport: fix possible access violation by checking dataset for nil<br />
*r36732 win32: fix range check error<br />
*r36733 lazbuild: auto create ide/revision.inc if missing<br />
*r36734 Gtk2: fixed mouse capturing on native scrolling win controls (TListBox,TListView etc).issue [[http://bugs.freepascal.org/view.php?id=21713 21713]]<br />
*r36735 LCL: TToolButton: commented debugln().<br />
*r36740 lazbuild: fixed uninitialized function result, fixed checking if init failed, quick check if lazarusdir is valid.<br />
*r36741 lazutils: Patch with font collection support from Circular<br />
*r36744 examples: Adds a OpenURL/OpenDocument test<br />
*r36745 LCL: Adds the sysenvapis include files to the lpk and adds an extra safety in OpenURL for users which forget to encode spaces in filenames<br />
*r36746 IDE: fixed fixed size dialogs<br />
*r36747 IDE: sort selection: layout<br />
*r36748 IDE: added debugging for sort selection<br />
*r36749 gtk2: clean up<br />
*r36750 IDE: less debugging<br />
*r36751 IDE: jump to next/prev error: fixed direction<br />
*r36752 LCL: TTreeView: clean up<br />
*r36753 IDE: next/prev error: clear multi selection<br />
*r36754 lcl: move interface initialization of TCustomEdit from CreateWnd to InitializeWnd. Consistent with other controls and allows interfaces to check is handle is being created<br />
*r36755 IDE: Add acceleration keys and fix tab order in Project Wizard and ImageListEditor, issue [[http://bugs.freepascal.org/view.php?id=21718 21718]]<br />
*r36756 lcl: remove TCustomListBox.Loaded. ItemIndex is initialized in InitializeWnd<br />
*r36757 lcl: call inherited after setting FLines in TCustomMemo.InitializeWnd. Fix potential crash since widgetset code expect FLines be initialized <br />
*r36758 lcl: check for csDestroyingHandle in TControl.HandleObjectShouldBeVisible. Fix issue [[http://bugs.freepascal.org/view.php?id=19882 19882]]<br />
*r36759 lcl: revert 31890 since issue [[http://bugs.freepascal.org/view.php?id=19882 19882]] is properly fixed now<br />
*r36760 gtk2: less hints<br />
*r36761 gtk2: less hints<br />
*r36762 Carbon: fixed result of TWSCarbonCustomListView GetTopItem,GetViewOrigin and GetBoundingRect. issue [[http://bugs.freepascal.org/view.php?id=21733 21733]]<br />
*r36763 Carbon: added themed TComboBox drawing.Patch by David Jenkins. issue [[http://bugs.freepascal.org/view.php?id=21747 21747]]<br />
*r36764 Carbon: added themed TComboBox drawing.Patch by David Jenkins. issue [[http://bugs.freepascal.org/view.php?id=21747 21747]]<br />
*r36765 Docs: added David Jenkins to contributors list<br />
*r36766 Carbon: make carbon widget visibility in sync with lcl. Patch by David Jenkins. issue [[http://bugs.freepascal.org/view.php?id=21731 21731]]<br />
*r36767 lcl: remove Destroying and DestroyWnd calls from TCustomListBox.Destroy<br />
*r36768 lcl: cleanup TCustomListBox.Create<br />
*r36769 codetools: fixed skipping include files in skipped ifdef<br />
*r36770 gtk2: less hints<br />
*r36771 gtk2: less hints<br />
*r36772 ide: fix selection painting of debugger eventlog colors list<br />
*r36773 carbon: improved TCarbonWidgetSet.RawImage_XXXX routines.Patch by David Jenkins. issue [[http://bugs.freepascal.org/view.php?id=21743 21743]].<br />
*r36774 carbon: proper initialization of alpha channel.Patch by David Jenkins. issue [[http://bugs.freepascal.org/view.php?id=21753 21753]]<br />
*r36775 LCL: implement ClientToParent, ParentToClient based on patch of David Jenkins (issue [[http://bugs.freepascal.org/view.php?id=0021763 0021763]])<br />
*r36776 LCL: extend TThemeServices.IsDisabled, IsHot, IsPushed for teCombobox<br />
*r36777 IDE: Fix tab order and set shortcuts in Application Options frame.<br />
*r36778 LazControls: fix potential crash in TListFilterEdit and TTreeFilterEdit<br />
*r36779 GTK2: add TGtk2WidgetSet.SetDesigning to prevent Abstract method call in IDE. Issue [[http://bugs.freepascal.org/view.php?id=21773 21773]]<br />
*r36780 IDE: fix tab order in Project Save Options frame.<br />
*r36781 IDE: fix tab order in frames: Build Modes editor, Miscellaneous Options and Version Info<br />
*r36782 IDE: fix tab order in option frames: Code Generation, Compilation, Linking, Messages, Parsing.<br />
*r36783 GTK2: clean up<br />
*r36784 GTK2: clean up<br />
*r36786 Carbon: removed extra code for teComboBox, since teComboBox is supported by themes as of r36776.<br />
*r36787 gtk2: clean up<br />
*r36788 gtk2: fixed Gtk2WidgetSet.ClipboardGetData mem leak on stream write error<br />
*r36789 gtk2: removed OldCreateStatusBarPanel<br />
*r36790 gtk2: clean up<br />
*r36791 gtk2: clean up<br />
*r36794 IDE: CloseQueryIDEWindows: skip sub forms<br />
*r36795 Fix crash in dbg-console, if dbg not active. issue [[http://bugs.freepascal.org/view.php?id=21712 21712]]<br />
*r36796 SourceEdit: use softcenter for Replace prompt. Issue [[http://bugs.freepascal.org/view.php?id=0021709 0021709]]<br />
*r36797 regenerated translations; updated Russian translation<br />
*r36800 IDE: when checking if a FPC unit has changed: ignore units that have no source in the FPC sources. Needed to ignore user units reachable through fpc.cfg.<br />
*r36801 IDE: fix error message can't find unit if the ppu is in one of the loaded packages<br />
*r36803 DOCS: correct the documentation about CanFocus<br />
*r36806 LCL: clear FActiveDefaultControl on that control destruction<br />
*r36810 LCL: fix copy paste error<br />
*r36811 LCL: don't update Default, Cancel during their applying in UpdateDefaultCancel<br />
*r36812 LCL: add and ability to use own TListItems, TListItem descendants in TListView for delphi compatibility<br />
*r36821 gtk2 intf: fixed compilation FPC_FULLVERSION<20600<br />
*r36822 gtk2 intf: clean up<br />
*r36823 gtk2 intf: clean up<br />
*r36824 gtk2 intf: clean up<br />
*r36825 LCL: initialize font height with the height from DefFontData<br />
*r36852 IDE: when checking if global unit has changed, skip units in packages<br />
*r36857,36859 LCL: TControl.UpdateBaseBounds: set cfBaseBoundsValid<br />
*r36861 LCL: TCustomSplitter.SetAnchors: adapt anchors before applying<br />
*r36870 LCL: SetAlign: restore the basebounds set before changes<br />
*r36877 LCL: clean up<br />
*r36882 LCL: TControl.SetAnchors: during disabled autosize: update basebounds when changing Anchors, bug 21730<br />
*r36884 LCL: fixed sending CM_EXIT,CM_ENTER when flastfocusedcontrol was removed<br />
*r36885 LCL: constraint Width,Height to >=0<br />
*r36888 Converter: fixed 'Missing units' dialog localization, part of bug 21784<br />
*r36889,r36890 codetools: class completion: fixed gathr proc definitions<br />
*r36891 IDE: show compiling resource lines when error on compiling resources<br />
*r36892 IDE: improved message when can not find unit and unit was found in a package<br />
*r36893,r36894 IDE: messages: show debug: lines and calling resource compiler<br />
*r36895,r36896 gtk2 intf: checking for liboverlay, using value-changed instead of change-value<br />
*r36897 LCL: made TImage.DestRect public<br />
*r36899 Fix encoding errors in Japanese translation<br />
*r36900,r36901 startlazarus: fixed asking for custom or default<br />
*r36902 LCL: fixed ShowModal() when Hide() is called on modal form to be Delphi compatibile.issue [[http://bugs.freepascal.org/view.php?id=15390 15390]]<br />
*r36903 IDE: fixed read/write designinfo, bug 21804<br />
*r36904 IDE: do not save a new project where only session was modified, bug 21803<br />
*r36905 gtk2 intf: fixed TGtk2WSCustomTabControl.GetDefaultClientRect to check if gtknotebook has a page<br />
*r36906,36907 codetools: AddLocalVar: do not add hidden used unit<br />
*r36908 Qt: added TQtWidget.testAttribute() function.<br />
*r36910 DBG: Tests for environment<br />
*r36913 TAChart: Set Brush.Color before Brush.Style to work around issue [[http://bugs.freepascal.org/view.php?id=21806 21806]]<br />
*r36914: TAChart: Fix compilation of OpenGL drawer<br />
*r36924 gtk2 intf: TGtk2WSCustomTabControl.GetDefaultClientRect for TTabControl<br />
*r36925 Qt: fixed resize events of TQtTabWidget and accurate information about clientRect changes. issue [[http://bugs.freepascal.org/view.php?id=21805 21805]]<br />
*r36929 Gtk2: fixed text background drawing in TGtk2WidgetSet.ExtTextOut() when BkMode = OPAQUE.issue [[http://bugs.freepascal.org/view.php?id=19384 19384]]<br />
*r36941 Translations: Brazilian Portuguese translation update by Marcelo B Paula, bug 21818<br />
*r36938,36939 LazReport, lift up to preview window improving layout and functionality, from Julio Jimenez B.<br />
*r36942 LazReport, avoid hiding text at some zoom values due small differences in text height calc (DONT MERGE YET, NEEDS MORE TESTING)<br />
*r36943 IDE: msg quickfix for cant find unit: add position<br />
*r36956 carbon: added FHasPaint variable to TCarbonWidget to allow owner draw.issue [[http://bugs.freepascal.org/view.php?id=21744 21744]]<br />
*r36957 carbon: added ScrollRect() routine to TCarbonWidget. issue [[http://bugs.freepascal.org/view.php?id=21741 21741]]<br />
*r36958 carbon: set FTabIndex instead ATabIndex variable in TCarbonTabsControl.SetPageIndex. patch by David Jenkins.issue [[http://bugs.freepascal.org/view.php?id=21728 21728]]<br />
*r36959 carbon: optimized caret drawing to not update whole widget.patch by David Jenkins. issue [[http://bugs.freepascal.org/view.php?id=21768 21768]]<br />
*r36960 carbon: fixed order of check width > height in TCarbonTrackbar.patch by David Jenkins. issue [[http://bugs.freepascal.org/view.php?id=21740 21740]]<br />
*r36961 carbon: implemented autosizing for listview / databrowser columns.patch by David Jenkins. issue [[http://bugs.freepascal.org/view.php?id=21745 21745]]<br />
*r36962 carbon: fixed possible bad loop in TCarbonSpinEdit.CreateWidget.Patch by David Jenkins.issue [[http://bugs.freepascal.org/view.php?id=21732 21732]]<br />
*r36965 IDEIntf: fixed typo<br />
*r36967 Gtk2: fixed retreiving font name from TGtk2WidgetSet.GetObject() when font is default. issue [[http://bugs.freepascal.org/view.php?id=21828 21828]]<br />
*r36968 codetools: JumpToPublishedMethodBody: raise error<br />
*r36969 codetools: fixed FindMethodNodeInImplementation for program<br />
*r36971 tests: codetools: added test for duplicate sections, parsing library<br />
*r36972 codetools: fixed reparsing initialization, finalization, begin<br />
*r36973 codetools: fixed treating initialization, finalization as statement<br />
*r36974,r36975,r36976,36977,36978 codetools: fixed find declaration in library starting in initialization, bug 21832<br />
*r36981,r36982 codetools: identifier completion: fixed continue searching<br />
*r36979 Updated Japanese translation by Haruyuki Fujimaki<br />
*r36980 Fix japanese encoding<br />
*r36983,r36984 codetools: identifier completion: some keywords for library, program<br />
*r36985 codetools: identifier completion: keyword initialization for library, issue [[http://bugs.freepascal.org/view.php?id=21839 21839]]<br />
*r36986 Updated Japanese translation by Haruyuki Fujimaki<br />
*r36990 codetools: identifier list: skip identifier at cursor<br />
*r36991,r36992 IDE: identifier completion: add do after with, issue [[http://bugs.freepascal.org/view.php?id=16850 16850]]<br />
*r36996,r36997,r36999,r37013,r37014,r37015 runtests: fixed compilation, added some tests<br />
*r37012,r37011,r37009,r37008,r37007,r37006,r37005,r37004,r37003,r37002,r37000 carbon interface: clean up<br />
*r37020 IDE: recent/history lists: replaced case sensitive comparison with three types<br />
*r37021 docking: update modified flags<br />
*r37022 codetools: fixed uninitialized result<br />
*r37025 IDE: use unit dialog: check for syntax errors<br />
*r37026,r37027 DBG: Prepare for different line endings. / Accept different line endings (#10, #13, #10#13, #13#10) issue [[http://bugs.freepascal.org/view.php?id=0021834 0021834]].<br />
*r37029 Gtk2: fixed drawing of text with solid brush. issue [[http://bugs.freepascal.org/view.php?id=21863 21863]]<br />
*r37031 Gtk2: do not draw text background if colormap isn't assigned. Second part of issue [[http://bugs.freepascal.org/view.php?id=21863 21863]].<br />
*r37032 gtk2: clean up old mouse capture<br />
*r37033 gtk2: fixed releasecapture<br />
*r37034 gtk2: verbosity for ubuntu liboverlay mouse capture bug<br />
*r37038 sqldb: Enable mssqlconnection for fpc >= 2.6.1 (patch from Reinier Olilagers, bug 21867) - added because creates conflicts with later sqldb merges<br />
*r37040: TAChart: Workaround for TDbChartSource referring to the dataset with Filtered := true<br />
*r37043 LCL, fix TPostScriptPrinterCanvas.ClipRect is empty-rect until explicitly set by user, patch from Joachim Paepke, issue [[http://bugs.freepascal.org/view.php?id=21027 21027]]<br />
*r37051 Translations: Ukrainian translation update by Igor Paliychuk<br />
*r37052 regenerated translations; updated Russian translation<br />
*r37053 LCL: fixed compilation for fpc 2.7.1<br />
*r37054,37055,37057 set TDBLookup.FListLink.DataSource dynamically to FListSource or a local datasource. Issue [[http://bugs.freepascal.org/view.php?id=15410 15410]]<br />
*r37067 LCL: fixed visibility of implemented interfaces<br />
*r37069 simple deb: using make bigide, updated list of tools<br />
*r37070 openglcontrol: fixed mem leak, issue [[http://bugs.freepascal.org/view.php?id=21597 21597]]<br />
*r37071 codetools: identifier completion: unit name of self<br />
*r37076 gtk2: clean up<br />
*r37077 IDE: clean up<br />
*r37092 LCL: fixed compilation for fpc 2.7.1<br />
*r37093 DBG: Testcase: fixed reading env-options<br />
*r37095 SynEdit: fix crash in overview gutter creation. Issue [[http://bugs.freepascal.org/view.php?id=0021887 0021887]]<br />
*r37096 SynEdit: Do not offer OverviewGutter in Gutter-parts designer<br />
*r37101 lazreport: fixed compilation with fpc 2.7.1, new TBookMark<br />
*r37102 lazreport: clean up<br />
*r37112,r37113 SynEdit: highlight class "helper". Fix wrong highlight of "sealed" Issue [[http://bugs.freepascal.org/view.php?id=0021812 0021812]]<br />
*r37115 openglcontrol: fixed mem leak, issue [[http://bugs.freepascal.org/view.php?id=21597 21597]]<br />
*r37126 LCL: Publish some TCheckGroup properties.<br />
*r37129 gtk2: clean up<br />
*r37154,37247,37248 lcl-db: prevent lookup initialization when dataset is destroyed<br />
*r37155 LCL, use rectclip to set clipping rectangle instead of current path because it sometimes get drawn on next stroke (related to r37043)<br />
*r37157 Qt: fixed key events from QCalendar, now tabbing works fine.<br />
*r37160 LCL: published missing properties TCalendar.Hint and TCalendar.TabOrder.<br />
*r37167 LCL: Fix range check error in StringGrid when sorting and RowCount=FixedRows, issue [[http://bugs.freepascal.org/view.php?id=21947 21947]]<br />
*r37073 codetools: resolve expr: thisunitname.implementationenidentifier<br />
*r37078 codetools: find declaration: selfunit.implementationidentifier<br />
*r37079,r37080,r37081,r37082,r37083,r37087,r37089,r37098 codetools: getsmarthint: class variables, enum, array of, inheritance, property params and type, use unit<br />
*r37085 IDE: show compiler options: check compiler<br />
*r37086,37088 IDEIntf: removed TLazCompilerOptions.LCLWidgetType, fixed computing default LCLWidgetType on cross target OS<br />
*r37090 codetools: do not try to search in record ancestors<br />
*r37105 DBG: Watches Copy Name/Value to clipboard. Issue [[http://bugs.freepascal.org/view.php?id=0021860 0021860]]<br />
*r37106 DBG: Register Copy Name/Value to clipboard. Issue [[http://bugs.freepascal.org/view.php?id=0021860 0021860]]<br />
*r37107 DBG: Watches, added inspect/evaluate to popup<br />
*r37116 DBG: Fix a possible crash in debugger (history). Issue [[http://bugs.freepascal.org/view.php?id=0021901 0021901]]<br />
*r37195 SourceEdit: Do not access outdated tab-history entries (dangling pointers). Issue [[http://bugs.freepascal.org/view.php?id=0021939 0021939]]<br />
*r37196 SourceEdit: Only add tabs to tab-history that were accessed<br />
*r37103,r37132 codetools: nested types: Self and inherited<br />
*r37104,r37120 codetools: GetSmartHint: show anonymous arrays<br />
*r37111 IDE: Make Close button work in Components List dialog. Issue [[http://bugs.freepascal.org/view.php?id=21892 21892]],<br />
*r37118 IDE: build ide: if building fails, clear flag clean up once<br />
*r37119 IDE: when building IDE failed: restore backup<br />
*r37121,r37122 IDE: select frame: search in packages<br />
*r37130 IDE: select frame: search in packages<br />
*r37131 LCL, implements textrect clipping in Postscriptprintercanvas<br />
*r37133 SynEdit: Fix WantTabs / Change default to "True" Issue [[http://bugs.freepascal.org/view.php?id=0021904 0021904]]<br />
*r37134 SynEdit: Remove not required invalidation (paint / call to wrong Update() )<br />
*r37135 SynEdit: Remove wrong implementation of Update. Update no longer forwards to Invalidate<br />
*r37136 IpPro: Fix painting for SelectAll<br />
*r37137 IDE, IpPro: Allow copy to clipboard from hint (zeljko added because of conflict in 37345)<br />
*r37140 cody: show code node info: show complete source<br />
*r37141 SynEdit: Fixed Caret paint error (extra caret left on screen) Issue [[http://bugs.freepascal.org/view.php?id=0021924 0021924]]<br />
*r37143 IDEIntf: added TPropertyEditorHook.IsSelected<br />
*r37144 IDEIntf: TDefaultComponentEditor: always select component<br />
*r37146 IDE: if component class is missing: note about RegisterClass<br />
*r37148 Translations: Ukrainian translation cleanup<br />
*r37149 IDE: regenerated translations; updated Russian translation<br />
*r37151 cody: IDE item to create dockable IDE window<br />
*r37152 cody: new IDE window: show dialog to setup form name<br />
*r37162,r37163 IDE: TProjectFileDescriptor.DefaultResourceName: first try without appending a number, check for pascal keywords<br />
*r37164,r37165 IDE: fixed DoGetUnitRegisterInfo for virtual files<br />
*r37166 SynEdit: Fixed Caret when scrolling under older Wine (Win Emulator)[[http://bugs.freepascal.org/view.php?id=21929 21929]]<br />
*r37212 sqldb: added icon for TMySQL55Connection for fpc 2.6.1 '<br />
*r37213,r37214,r37219 codetools: do not save errors outside parser<br />
*r37215 codetools: GetSmartHint: ^, .., file of, class of<br />
*r37220 Translations: Czech IDE translation update by Martin Smat<br />
*r37224 SynEdit: Autocompletion, workaround for click on hint Issue [[http://bugs.freepascal.org/view.php?id=21952 21952]]<br />
*r37231 SynEdit: Prevent some scrolling, while selecting by mouse. Issue [[http://bugs.freepascal.org/view.php?id=0021996 0021996]]<br />
*r37232 DBG: Inspect window, improve scrolling<br />
*r37234 DBG: Improve start-up to work with bug in gdb 7.4<br />
*r37262 searching compiler: search first in dir of fpc.exe, then in PATH<br />
*r37263,r37265 codetools: improved error message on unit not found<br />
*r37264 fix setting radiogroup.itemindex under gtk2. Issue [[http://bugs.freepascal.org/view.php?id=22013 22013]]<br />
*r37267 Docs: improved build_lcl_docs robustness when working with TProcess, patch from Reinier Olislagers, bug 22000<br />
*r37273 SourceEditor: Fix crash when closing several tabs, while debugging (paused / loading line info). Maybe related to issue [[http://bugs.freepascal.org/view.php?id=22015 22015]]<br />
*r37274 Fix Crash in building "Windows" (list of open W.) Menu. Note 0059576 in Issue [[http://bugs.freepascal.org/view.php?id=22015 22015]] (not related to other parts of issue)<br />
*r37280 SQLdb: added missing tmysql55connection.png, bug 22033 '''Related to 37212 and other revisions for TMySQL55Connection'''<br />
*r37281 SynEdit: protect ProcessCommand() against early destruction by ReleaseComponent. Issue [[http://bugs.freepascal.org/view.php?id=0022035 0022035]]<br />
*r37285 IDE: make Close button work in Window Manager<br />
*r37286 Patch from bug 21651, automatically adds quotes to paths with spaces for OpenDocument in Mac OS X<br />
*r37297,r37298 SynEdit, Pas-HL: record helper, deprecated in object<br />
*r37311 Translations: Arabic IDE translation update by Mazen NEIFER<br />
*r37312 IDE: Make Help button work in Editor Window Manager, issue [[http://bugs.freepascal.org/view.php?id=21961 21961]]. (zeljko added to merge list because of conflicts in 37491)<br />
*r37325 regenerated translations; updated Russian translation<br />
*r37326 Translations: Brazilian Portuguese translation update by Marcelo B Paula, bug 22064<br />
*r37327 IDE, Code Generation options: changed wrong -Op386 option to correct -Op80386. Patch by barlone with some consistency changes, bug 22062.<br />
*r37357 Gtk2: fixed mbAll button on dialogs. Added response keys which does not exist in gtk2. issue [[http://bugs.freepascal.org/view.php?id=22083 22083]]<br />
*r37344 gtk2 intf: less hints<br />
*r37345 ipro: less hints <br />
*r37359 lazreport: German translations<br />
*r37360 cody: German translations<br />
*r37039,r37319,r37324,r37361 sqldb: German translations (zeljko added 37039,37319,37324 because of conflicts)<br />
*r37362 educationlaz: German translations<br />
*r37363 ide: German translations<br />
*r37372 lcl: don't access Items of TreeView if DragOver happens during treeview destruction<br />
*r37373 IDE: debugger options: check the resolved file, bug 22086<br />
*r37374 Qt: bypass windowmanager when showing dragimagelist.<br />
*r37375 Gtk2: do not show taskbar entry for dragimagelist.<br />
*r37376 IDE: update TUnitInfo.ResourceBaseClass on loading lfm<br />
*r37378 [Edited, includes selected lines of 37402] SourceEditor: Hide hint, when mouse moves (even if outside IDE, or IDE is not active). Issue [[http://bugs.freepascal.org/view.php?id=0022016 0022016]]<br />
*r37368 DBG: Fixed array len for 64 bit<br />
*r37369 lcl: don't crash when either DragTarget or dragged control is freed (issue [[http://bugs.freepascal.org/view.php?id=22067 22067]])<br />
*r37370 lcl: cleanup debug info<br />
*r37371 lcl: fixed a memory leak when canceling drag of dead control<br />
*r37380 SourceEdit/DBG: Ensure Codebuffer is updated before using it to add watches<br />
*r37383 IDE: TUnitInfo.fModified: do not set on get<br />
*r37384,r37401 IDE: do not set TUnitInfo.Modified when committing source editor to codetools<br />
*r37388,r37389,r37390,r37391,r37392 tests: added tests for cfgscripts, fixed unit output directory, cfgscript: fixed error message if semicolon is missing, IDE: added conditionals functions GetIDEValue, GetEnv, LCL: use IDE widgettype as default<br />
*r37397 TodoList: properly trim comment markers and convert multiline text to single line, fixes bug 22085. Based on patch by Anton.<br />
*r37400 codetools: fixed mem leak<br />
*r37418: TAChart: Fix range check using datapoint tool on a chart without series<br />
*r37440 DBG: do not set temporary stack = -1 in thread changing. This may cause errors<br />
*r37444 DBG: Watches, save "Use instance class" to config<br />
*r37449 LCL: fixed comments<br />
*r37451 Qt: fixed wrong SetCapture() under win32. Problem was passed TQtWidget handle instead of underlaying widget winID() which is native handle.<br />
*r37453 SynEdit: Fix goto bookmark and persistent block. Do not clear persistent block<br />
*r37461 lcl: TCustomForm.UpdateDockCaption: fixed repair garbage<br />
*r37463 IDE: when docked keep IDE caption<br />
*r37464 Help, DBG: New link to wiki for watch properties<br />
*r37475 codetools: TCustomCodeTool.FindLineEndOrCodeAfterPosition: fixed crash when at end of code<br />
*r37476 codetools: clear nodes behind, when linkscanner parsed only parts<br />
*r37481 IDE: fixed storing old LCLWidgeType, bug 22174<br />
*r37482 codetools: save parse error of operator, do not save errors outside parser, fixed parsing method name with generic parameter<br />
*r37483 codetools: allow keywords in program name<br />
*r37534 Qt: do not call setValue() but setPosition() so lcl gets accurate values later. issue [[http://bugs.freepascal.org/view.php?id=22187 22187]]<br />
*r37491 Help, DBG: Link to wiki for breakpoint properties (zeljko - 37312 is merged too, because of conflicts)<br />
*r37470 IDE, DBG: debug-eval hint, do not show, if selection exceeds one statement (e,g whole file selected). Part of issue [[http://bugs.freepascal.org/view.php?id=0022081 0022081]]<br />
*r37471 SourceEditor: Fix an issue with focusing an editor, that is being closed (while debugging) "no parent handle". Issue [[http://bugs.freepascal.org/view.php?id=0022015 0022015]]<br />
*r37517 SynEdit: fixed folding for "case" and "try" in certain code segments (initialization / case...else try)<br />
*r37518 SynEdit: Pas-HL: fix detection of case...else versus if...then...else<br />
*r37522 SynEdit: Pas-HL: better detection of case...else<br />
*r37623 SourceEditor: Fix (Work-around) an issue with focusing an editor, that is being closed (while debugging) "no parent handle". Issue [[http://bugs.freepascal.org/view.php?id=0022015 0022015]] // Required some parts of r37502<br />
*r37609 DBG: Avoid re-queuing of dis-assembler requests, after cancelling it. Part of issue [[http://bugs.freepascal.org/view.php?id=0022230 0022230]]<br />
*r37643 DBG: Disassembler: prevent disassembler from doing large address ranges, if gdb returns data with far away addresses. Issue [[http://bugs.freepascal.org/view.php?id=0022230 0022230]]<br />
*r37657 DBG: fixed a out of index error, in watches history<br />
*r37694 DBG: Fixed possible crash in watch evaluation (WatchValue freed while evaluating / in GetValue)<br />
*r37466 IDE: added menu item to insert MIT license text<br />
*r37407,r37474,r37492 IDE: TMainIDE.DoSourceEditorCommand: improved focus check, requires r37466<br />
*r37564 LCL: TCustomListView: reset FCacheIndex and FCacheItems before sorting list, otherwise we'll have unexpected results. issue [[http://bugs.freepascal.org/view.php?id=22218 22218]]<br />
*r37505, r37509, r37516, r37523 fixed compilation with fpc 2.7.1<br />
*r37592 lcl: fixed compilation fpc 2.7.1<br />
*r37525 TAChart: Display legend symbols even if the text is empty<br />
*r37565 TAChart: Display major axis marks at the edges of the clip range<br />
*r37576 TAChart: Fix infinite recursion when drawing chart listbox from series with Legend.Multiplicity <> lmSingle<br />
*r37588 TAChart: Include Item.Y in reordered list of TCalculatedChartSource. Update test. '''This will break old tests. Please contact me for a fix --- Ask'''<br />
*r37727 TAChart: Update to the recent version of FPVectorial<br />
*r37587 Qt: unset icon when doing internal sync after sorting. part of issue [[http://bugs.freepascal.org/view.php?id=22218 22218]]<br />
*r37620 LCL: invalidate parent preferredsize when borderspacing changed, bug 17947<br />
*r37621 LCL: clean up - invalidate in TControl.DoBorderSpacingChange no longer needed with new autosizing<br />
*r37622 lazutils: added missing file<br />
*r37624 LCL: GetClientRect: if interface has the right width,height trust the clientrect, this avoids some unneeded resizes<br />
*r37573 IDE: project inspector: add files: allow dotted unit names, bug 22209<br />
*r37619 IDE: open package dependency: try provides, issue [[http://bugs.freepascal.org/view.php?id=17960 17960]]<br />
*r37628 IDE: compiler options: disable target platform for packages<br />
*r37594 codetools: fixed Unneeded extra space in event assignment completion<br />
*r37613 codetools: property completion: add class var for class property variables<br />
*r37614 codetools: class completion: search variables in all sections, bug 22246<br />
*r37625,r37626,r37627 codetools: class completion: fixed searching var node when first is class var<br />
*r37629 codetools: fixed adding class keyword for property setter of a class property<br />
*r37630 IDE: codeexplorer: labels<br />
*r37634 IDEIntf: objectinspector: fixed painting outside paint event<br />
*r37631 codetools: no var node for anonymous record case variables<br />
*r37632 codetools: identifier completion: when creating an override hide higher visibility members<br />
*r37633 codetools: class completion: add static method modifier for setter of class property<br />
*r37636 codetools: class completion: add static method specifier for class property setter<br />
*r37635 IDE: paste component: fix renamed references<br />
*r37637,r37638,r37639 IDE: paste multiple components: fix references, lcl: LRSObjectTextToBinary: write convert list of components<br />
*r37640 IDE: paste components: update TControl.Caption<br />
*r37642 lcl: fixed LRSObjectTextToBinary toWString, issue [[http://bugs.freepascal.org/view.php?id=19650 19650]]<br />
*r37644 codetools: fixed inserting proc bodies in implementation in front of methods<br />
*r37652,r37653,r37655 codetools: using TFileStreamUTF8<br />
*r37656 IDE: using TFileStreamUTF8 and TStringListUTF8<br />
*r37663 IDE: fixed show info on --help when no stdout exists<br />
*r37689 LCL: fixing handling of special keys for TCustomEdit and TCustomMemo<br />
*r37690 codetools: forward proc completion: stay in same section<br />
*r37697 DBG: Dialogs, don't give help related commands to IDE. They will be ignored<br />
*r37698 IDE Help: add urls for dbg dialogs<br />
*r37703 lazutils: utf8pos: added optional parameter StartPos<br />
*r37704 IDE: setup dialog: show fpc source directory release version as warning instead of error<br />
*r37707 tools create deb+rpm: use 128x128 icon<br />
*r37705 SynEdit: open and close clipboard explicitly to write multiple formats.<br />
*r37714 lcl: gtk2: warn only once about liboverlay<br />
*r37711 lhelp: cleaned up paths<br />
*r37712 lhelp: clean up<br />
*r37713 lhelp: resolve macros in HelpEXE on the demand<br />
*r37715 chmhelp: using search path to search for chm files<br />
*r37716,r37717 chmhelp: added path $(LazarusDir)/docs/chm<br />
*r37718 'hmhelp: search ref.chm in docs/chm<br />
*r37726 create_lazarus_deb: added option chmhelp<br />
*r37722 DBG: Event-Log: Do not cache Options. Allow user to change options while debugging<br />
*r37596 Patch from {{MantisLink|0022231}} "fix warnings with fpc 2.6.1".--[[User:AlexVinS|AlexVinS]] 21:40, 8 June 2012 (UTC)<br />
*r37745 deb+rpm: default environmentoptions: updated to 107, removed default gdb entry<br />
*r37748,r37755 lhelp: added makefile<br />
*r37749 make bigide: build lhelp<br />
*r37753 IDE: fixed comparing file names case insensitive<br />
*r37754 lazutils: inlined UTF8CompareStr<br />
*r37760 Use Utf8CompareText instead of AnsiCompare<br />
*r37762 linux: added encoding to desktop file<br />
*r37769 Use Utf8CompareText instead of AnsiCompare<br />
*r37770 TAChart: Fix AV when clearing Series.Styles and TColorMapSeries.ColorSource properties<br />
*r37772 Use Utf8CompareText instead of AnsiCompare<br />
*r36804 win32: mark client rect as required update before WM_SIZE passing, remove DoAdjustClientRectChange - they are called inside WM_SIZE handler after the client rect is updated (fixes bug [[http://bugs.freepascal.org/view.php?id=0021724 0021724]])<br />
**Paul remarked about r36804: "Please don't merge it for at least 2 weeks". Also seems to cause problems in grids, see [http://bugs.freepascal.org/view.php?id=21790 issue [[http://bugs.freepascal.org/view.php?id=21790 21790]]].<br />
*r36993: LCL, fixed Problems setting Width, Height for TCustomGrid if ScrollBars is auto, from cobines, issue [[http://bugs.freepascal.org/view.php?id=21790 21790]]. If r36804 is merged, please merge also r36993<br />
*r37783 startlazarus: linux: adding LIBOVERLAY_SCROLLBAR=0 to avoid problems with mouse capturing<br />
*r37785 gtk2 intf: disable liboverlay by default<br />
*r37790 gtk2 intf: use setenv only on Linux<br />
*r37795: export tgz: added option to add chm files<br />
*r37796 IDE: when copying secondary configs create the primary config directory first<br />
*r37797 rpm: added option chmhelp<br />
*r37810 rpm: fixed building without chmhelp<br />
*r37811 lhelp: fixed invalid recent item path in config, added build modes default,debug<br />
*r37814 chmhelp: clean up old ipc files to prevent IDE hang<br />
*r37817-r37821 MAKE DEB<br />
*r37838 DBG: Fix handling console input<br />
*r37824 chmhelp: Fixed lazarus hanging when chmhelp pipe is leftover from an improperly closed lhelp<br />
*r37825 chmhelp; Fixed chmhelp typo (boolean error)<br />
*r37826 chmhelp: fixed bug where a new lhelp process could be started each time F1 was pressed<br />
*r37841 DBG: Pseudo-Terminal, accept tabs<br />
*r37848 lazutils: docs: fixed encoding and package name<br />
*r37849 lcl: docs: fixed encoding<br />
*r37850 ide: docs: fixed encoding<br />
*r37851 updated docs<br />
*r37853 lcl: docs: fixed some links<br />
*r37852 build_lcl_docs: using UTF-8 file functions, added option -h<br />
*r37855 build_lcl_docs: showcmd: show working directory<br />
*r37861 lcl: check if ListDataset is loading to update lookup info. Issue [[http://bugs.freepascal.org/view.php?id=22337 22337]]<br />
*r37846 win32: let TComboBox.CloseUp fire before Change (delphi compatible). Fix 22352<br />
*r37880 IDE+startlazarus: use same working directory, needed for passing relative file names as command line parameters, fixed building lcl+lazutils chm on ubuntu 12<br />
*r37866 lazutils: fixed unit names<br />
*r37868 lazutils: added fpdoc files<br />
*r37869 docs: building lazutils+lcl chm<br />
*r37885 DBG: fixed parsing sets for debug-inspector<br />
*r37906 IDE-Options / SynEdit: Fixed RightEdge visibility (Recression)<br />
*r37919 DBG: Prevent potential crash/memory-corruption in Watches<br />
*r37920 DBG: Prevent potential crash in (dbg-)OnIdle handling<br />
*r37921 DBG: Prevent build up of no longer needed commands in queue<br />
*r37945 DBG: Prevent a crash, when the selected snapshot is deleted. Cas also happen when starting the debugger, while a snapshot from previous run is active<br />
*r37950 DBG: fixed endless loop in watch eval (auto type cast) Issue [[http://bugs.freepascal.org/view.php?id=0022425 0022425]]<br />
*r37961 DBG: Disable rangechecks for certain PtrUInt casts<br />
*r37993 carbon: fixed crash of IDE when compiled with range checks on<br />
*r38006 gtk2: fixed crash on QuestionDlg<br />
*r38003 IDE: fixed showing custom project options, issue [[http://bugs.freepascal.org/view.php?id=22486 22486]]<br />
** merged ONLY main.pp<br />
*r38016 ToDoList: fixed encoding of French translation, it should be UTF-8, not ISO-8859-1. Patch by batyann811, bug 22489.<br />
*r37981,37983-37989,38001,38004-38005,38012,38017 Win Installer<br />
===== Fixed after RC1 =====<br />
*r38127 IDE, EditorOptions: Fixed finding color attribute in localized IDE<br />
*r38132 IDE: setup: after changing lazarusdir: fetch translations and translate<br />
*r38133 chmhelppkg: invoke lazbuild with --pcp parameter<br />
*r38138 examples: testall: fixed start<br />
*r38139 examples: cleandirs: error for fpc version<br />
*r38140 examples: componentstreaming: fixed typo, clean up<br />
*r38141 lazfreetype: fixed range check error, improved error message<br />
*r38142 examples: mssqlconn: requires fpc 2.6.1<br />
*r38144 examples: synguttermarks: win32 gui mode, fixed Left position<br />
*r38146 examples: tv_add_remove: updated<br />
*r38147 examples: xmlreader: added example xml<br />
*r38157 IDE: fixed saving ambiguousfileaction, bug 22573<br />
*r38158 examples: clean up<br />
*r38038 TAChart: Allow spaces in field names inside TDbChartSource.FieldY<br />
*r38168 synuni: clean up fpc options<br />
*r38170 synuni, semaphorgridlpk: clean up fpc options<br />
*r38022 SynEdit: Fixed drawing errors for frames (left frame site drawn at wrong offset)<br />
*r38145 LCL: TListView fixed "List index out of bounds" while deleting items. issue [[http://bugs.freepascal.org/view.php?id=22552 22552]]<br />
*r38150 SynEdit TSynMultiSyn: Fixed crash when deleting lines. Part of issue [[http://bugs.freepascal.org/view.php?id=0022519 0022519]]<br />
*r38151 SynEdit Highlighter: Fixed crash when scanning empty<br />
*r38152 SynEdit TSynMultiSyn: typo<br />
*r38175 SynEdit TSynMultiSyn: Fixed updating, when appending to EOT. Part of issue [[http://bugs.freepascal.org/view.php?id=0022519 0022519]]<br />
*r38205 lazaruside.fi.po: Finnish translations<br />
*r38180 Synedit: fix matching-bracket-highlight in comments (closing bracket at eol) issue [[http://bugs.freepascal.org/view.php?id=22586 22586]]<br />
*r38198 IDE: Export to html, do not enforce check for writeable. Issue [[http://bugs.freepascal.org/view.php?id=22588 22588]]<br />
*r38199 lazutils: do not use winodws W functions under Win98, issue [[http://bugs.freepascal.org/view.php?id=22596 22596]]; '''Breaks compilation on wince, because win32platform is not defined.'''<br />
*r38202 openglcontrol: win32: fixed sharing context<br />
*r38204 Synedit: fixed typo in IFDEF for fpc 2.60 bug<br />
*r38225 TAChart: Fix division by zero in zoom tools with extreme zoom ratios<br />
*r38226 TAChart: Fix hang in functional series with extreme zoom ratios<br />
*r38223 SynEdit TSynMultiSyn: Several fixes issue [[http://bugs.freepascal.org/view.php?id=0022519 0022519]]<br />
*r38232 TAChart: Add InRangeUlps utility function<br />
*r38233 TAChart: Fix disappearance of axis marks located exactly at chart bounds<br />
*r38234 TAChart: Fix crash when setting Marks.LabelFont from the Object Inspector<br />
*r38237 Examples/SynEdit: Readme and typo in comment<br />
*r38266 IDE: Tweak the layout of ManageExamplesForm<br />
*r38260 TAChart: Use correct notification when the series' source changes<br />
*r38261 TAChart: Issue change notifications when modifying TListChartSource.DataPoint property<br />
*r38285 lhelp: replace MessageBox, with Form.Modal. FIx IPC hang. issue [[http://bugs.freepascal.org/view.php?id=0022592 0022592]]<br />
<br />
===== Fixed after RC2 =====<br />
*r38293 windows installers: don't ask to overwrite the environment options in the secundary config directory from Reinier Olislagers<br />
*r38339 SynEdit TSynMultiSyn: Fix CaseSensitivity for Sheme marker. Issue [[http://bugs.freepascal.org/view.php?id=0022693 0022693]]<br />
*r37386 Remove writeln() that looks like a residual debug message. Issue [[http://bugs.freepascal.org/view.php?id=0022544 0022544]]<br />
*r38385 Translations: removed unmaintained Portuguese translation, which was outdated copy of Brazilian Portuguese one<br />
<br />
== How to merge ==<br />
The lazarus developers have decided to use the native svn merge for this branch. Other branches used the svnmerge.py script to manage the revisions to be merged.<br />
<br />
* TODO: Maybe this information should be put in a separate page.<br />
<br />
[[SVN_Migration#Merge_with_plain_svn]]<br />
=== Using TortoiseSVN ===<br />
As noted in the link above using TortoiseSVN is more or less self explaining. <br />
<br />
* TODO: add some screen shots.<br />
<br />
When committing, in the recent messages a nice commit message is available.<br />
<br />
Tested with TortoiseSVN 1.7.6, SVN 1.7.4.<br />
<br />
=== Show list of revision that can be merged ===<br />
In the lazarus fixes_1_0 directory do:<br />
svn mergeinfo ^/trunk --show-revs eligible<br />
Or if you don't have a fixes directory checked out, you can pass the URL path of the fixes branch:<br />
svn mergeinfo ^/trunk http://svn.freepascal.org/svn/lazarus/branches/fixes_1_0 --show-revs eligible<br />
<br />
=== Show list of revision that have been merged ===<br />
In the lazarus fixes_1_0 directory do:<br />
svn mergeinfo ^/trunk --show-revs merged<br />
<br />
=== Merging revisions from trunk ===<br />
To merge one or more revisions from trunk, use the svn merge command. For example to merge revision 36506 and 36510 use:<br />
svn merge -c 36506,36510 ^/trunk<br />
<br />
To generate a commit log message, use:<br />
svn log ^/trunk -c 36506,36510 > svnmerge-commit-message.txt<br />
<br />
Edit svnmerge-commit-message.txt with your favorite text editor and add a first line like:<br />
Merged revision 36506,36510 from /trunk.<br />
<br />
Commit this with:<br />
svn commit -F svnmerge-commit-message.txt<br />
<br />
=== Blocking a revision to be merged ===<br />
Sometimes you want to block a revision to be merged, i.e. you want to make sure that this revision is never merged to the fixes branch, for example, because it contains a new feature or it contains a version number change not applicable to the fixes branch, but only to trunk. To block revision 36507, use:<br />
svn merge -c 36507 --record-only ^/trunk<br />
Then you can create a log message with:<br />
svn log ^/trunk -c 36507 > svnmerge-commit-message.txt<br />
Edit svnmerge-commit-message.txt with your favorite text editor and add first line like:<br />
Blocked revision 36507 from /trunk<br />
Then commit this change:<br />
svn commit -F svnmerge-commit-message.txt</div>
Paul Ishenin
https://wiki.freepascal.org/index.php?title=Lazarus_1.0_fixes_branch&diff=61938
Lazarus 1.0 fixes branch
2012-09-24T12:57:34Z
<p>Paul Ishenin: /* Submitted by developer / committer */</p>
<hr />
<div>This page contains the revisions to be merged from trunk to the [http://svn.freepascal.org/svn/lazarus/branches/fixes_1_0/ Lazarus 1.0 fixes] branch.<br><br />
Release notes can be found here [http://wiki.lazarus.freepascal.org/Lazarus_0.99.0_release_notes Release notes]<br />
<br />
== Fixes for 1.0.2 ==<br />
=== Merge requests ===<br />
==== Submitted by developer / committer ====<br />
<br />
*r38636,r38637: Gtk2: fixed text clipping and text background drawing<br />
**r38636 CONFLICT<br />
*r38673 TAChart: Ignore NaNs while calculating TCustomChartSource.ValuesTotal<br />
*r38675 TAChart: Support Marks.Attachment = maCenter in pie series<br />
*r38697,38698 Gtk2: set TToggleBox.ParentColor default false so it's color is consistent with TButton when eg.parent color is clRed and TToggleBox.Color=clDefault.<br />
*r38694: TAChart: Fix update of TListChartSource.ValuesTotal cache when adding or removing NaNs<br />
*r38709: Qt: improved triggering of OnClick() in QEventShowToParent. issue [[http://bugs.freepascal.org/view.php?id=22872 22872]]<br />
*r38710: TAChart: Fix crash when using TChartExtentLink with LinkedChart.Chart = nil<br />
*r38712: TAChart: Fix crash while replacing linked chart in TChartExtentLink<br />
*r38713: TAChart: Use NumberOr function instead of checking for NaN explicitly<br />
*r38719: TAChart: Extract TDrawFuncHelper.ForEachPoint helper procedure ''This also fixes a hang while using data point tool on extremely zoomed-in series''<br />
*r38729: TAChart: Extract TDrawFuncHelper.XRange helper function. + Fix GetNearestPoint for rotated function series.<br />
*r38733: TAChart: Fix TChartSeries.SetColor to notify all listeners and require ListSource. Add TListChartSource.SetColor<br />
*r38735: TAChart: Fix memory leak in TDbChartSource.BeforeDraw<br />
*r38737: TAChart: Fix drawing of pie series with data from the db source<br />
*r38754: TAChart: Fix hang when changing TLineSeries.ShowPoints while drawing chart<br />
*r38757: TAChart: Display crosshair tool on mouse down<br />
*r38762: Gtk2: when style is drawing button then use style from button. issue #22901<br />
*r38779: TAChart: Do not notify from TListChartSource.SetXValue and SetYValue if the value did not actually change.<br />
*r38780: TAChart: Add TBasicPointSeries.MovePoint overload for graph coordinates ''not a fix, but required for r38788''<br />
*r38788: TAChart: Support axis transformations in TCustomChartSeries.MovePoint<br />
*r38792: TAChart: Fix crash on deleting subcomponent with active property editor<br />
*r38799: gtk2: implement SPI_GETWHEELSCROLLLINES. Fix a regression in VirtualTreeView wheel scroll<br />
*r38802: lcl:revert 33020, 33082, 33086, part of 33089 and 33389. These changes made the hint behavior Delphi incompatible thus leading to a regression in third party control like VirtualTreeView that handles hints in CMHintShow. Retrieve parent hint recursively if hintcontrol.hint is empty' (delphi compatible)<br />
<br />
==== Submitted by others ====<br />
<br />
=== Merged revisions for 1.0.2 ===<br />
*r37217,37218,37225,37239,37241,37293,37304,37316 Qt: fixed keys handling (arrow keys & enter).<br />
*r38396 LCL: ColorBox - keep FSelected in sync all the time. fixes issue [[http://bugs.freepascal.org/view.php?id=22729 22729]]<br />
*r38426 CodeBrowser: check for virtual units. Issue [[http://bugs.freepascal.org/view.php?id=0022740 0022740]]<br />
*r38428 SynEdit, MultiHighlighter: fix adding text/sections at EOL. issue [[http://bugs.freepascal.org/view.php?id=0022745 0022745]]<br />
*r38430 TAChart: Fix out-of-bounds access when drawing empty polygons and polylines<br />
*r38437 ide: project target: apply default extension even if the file has already an extension, issue [[http://bugs.freepascal.org/view.php?id=22750 22750]]<br />
*r38444 IDE: fixed crash when releasing non existing component palette select button<br />
*r38473 tests: fixed compilation<br />
*r38464 TAChart: Fix error message in TFPCanvasDrawer.RadialPie<br />
*r38486 avglvltree: setcompare: set when count=0<br />
*r38503 TAChart: Copy BaseLength in TChartArrow.Assign<br />
*r38507 EditorOpts: default for top-info-hint<br />
*r38509 Debugger: Ensure Queue is not blocked by LineInfo Request. (If a LineInfoRequest was queued the DebuggerCurrentLine could not search the stack, as commands were not immediately run)<br />
*r38519 Gtk2: fixed crash with TListView when viewstyle is vsIcon or vsSmallIcon. issue [[http://bugs.freepascal.org/view.php?id=22778 22778]]<br />
*r38520 Qt: do not propagate keyrelease event as action trigger. issue [[http://bugs.freepascal.org/view.php?id=22737 22737]]<br />
*r38531 Debugger: Workaround to fix exe-line-indicators (blue dots) at debug start<br />
*r38533 Qt: fixed header offset and getClientRect for TListView when ViewStyle=vsReport.<br />
*r38547 TAChart: Support Y NaNs in polar series ''(this will cause compilation error -- please remove 'and CloseCircle' part from the last conditional in the TPolarSeries.Draw procedure)''<br />
*r38557 TAChart: Support brush style, pen style and pen width in fpvectorial drawer<br />
*r38571 TAChart: Draw chart correctly after decrease of an axis margin<br />
*r38529,r38530,r38535,r38543,r38548: fix carbon clipping, correctly return region types on HRGN related operations, fix generic IntersectClipRect routine<br />
*r38640,r38641,r38642,r38649: various ExtTextOut fixes for Carbon and Cocoa<br />
*r38551,r38552,r38562,r38563 Carbon: various winapi compatibility functions fixes<br />
*r38518 Qt: TQtWinApi.ExtTextOut() implemented Dx param. issue [[http://bugs.freepascal.org/view.php?id=22795 22795]] (zeljko will merge, need some testing)<br />
*r38572 Qt: propagate QEvent::ShortcutOverride to parent, so stop key event if shortcut is executed. issue [[http://bugs.freepascal.org/view.php?id=22827 22827]]<br />
*r38576,38577: Qt: fixed TQtWidgetSet.FrameRect(), now it uses passed brush to draw frame border.<br />
*r38610 Qt: fixed non ascii utf8 chars in TQtWidgetSet.ExtTextOut() when we use dx param. issue [[http://bugs.freepascal.org/view.php?id=22795 22795]] (depends on merging of r38518).<br />
*r38628,38629,38630,38634: Qt: fixed clipping bugs inside TQtWidgetSet.ExtTextOut()<br />
*38670 SynEdit: Fixed past eol paint error ** Must be ported by hand **<br />
*r38584 TAChart: Copy Attachment and YIndex in TGenericChartMarks.Assign ''(this code is in TATypes unit in v1.0)''<br />
*r38589 TAChart: Do not draw lines which should be invisible in OpenGL drawer<br />
*r38607 TAChart: Workaround for issue [[http://bugs.freepascal.org/view.php?id=22850 22850]] '''see patch in the mailing list'''<br />
*r38617 TAChart: Fix GetNearestPoint returning true with no points found inside radius, issue [[http://bugs.freepascal.org/view.php?id=22854 22854]]<br />
*r38644: Qt: fixed menu flickering. issue [[http://bugs.freepascal.org/view.php?id=22872 22872]]<br />
*r38651: TAChart: Fix zero division when calling ImageToGraph before the chart is drawn<br />
*r38674 Qt: fixed crash when invalid or null handle is passed into SetCapture.<br />
*r38679 Qt: update bitmap if TMenuItem has associated ImageList and ImageIndex. issue [[http://bugs.freepascal.org/view.php?id=22896 22896]]<br />
*r38672 SynEdit: fixed delete-next-word, if caret past eol. Issue [[http://bugs.freepascal.org/view.php?id=0022890 0022890]]<br />
*r38720 LCL, DefaultTranslator: fix handling of non-ASCII path to .po file, bug 22907, patch by Vladimir Zhirov<br />
*r37398 IDE: corrected version info language list, added Ukrainian language, bug 22103<br />
*r38722 IDE: added Lithuanian to version info language list, bug 22898<br />
<br />
== Fixes for 1.0 ==<br />
=== Merged revisions for 1.0.0 ===<br />
==== Submitted by developer / committer ====<br />
*r36506 LazReport, fix barcode dialog localization (Jesus)<br />
*r36508 Updated Japanese translation<br />
*r36509 Window Column, store pointer to resourcestring<br />
*r36510 LazReport, fix barcode addin when TfrBarCodeObject is not yet instantiated (in this case barcode editor defaults to memo view.<br />
*r36511 DividerBevel: implemented Transparent.<br />
*r36514 IDE: moved macros save/saveall to source editor<br />
*r36515 IDE: update macro descriptions after translating resource strings<br />
*r36516 IDE: trim TLazPackageGraph.GetFallbackOutputDir<br />
*r36517 IDE: check if package needs rebuild: switch to fall back directory: update compiler params<br />
*r36518 IDE: install/uninstall package dialog: fixed icons, added info about current state<br />
*r36523,r36530 IDE: Export as HTML<br />
*r36526 CodeTemplate: Improve final caret pos, if tmpl does not specify<br />
*r36527 CodeTemplate: allow tab to trigger / selection to ignore. issue [[http://bugs.freepascal.org/view.php?id=0017631 0017631]]<br />
*r36528 SynEdit: Template(Syncro) fix invalidation<br />
*r36529 IDE: Printing: break long lines. Issue [[http://bugs.freepascal.org/view.php?id=0013479 0013479]]; <br />
*r36547 IDE: Printing: break long lines. Fix Utf8. Update for rev 36529<br />
*r36531 LazReport: fixed buttonpanel localization in BarCode editor dialog<br />
*r36533 IDE: clean up of unused resourcestrings<br />
*r36534, r36536, r36553, r36583, r36646 regenerated translations; updated Russian translation<br />
*r36535 IDE: more clean up of unused resourcestrings<br />
*r36537 Documents LCLIntf.GetDeviceCaps<br />
*r36538 IDE: always store lazarus directory<br />
*r36539 LazReport: uppercase variable before comparing with hardcoded functions. Properly fix to 21624<br />
*r36543 IDE: setup dialog: using same file resolving as IDE<br />
*r36546 IDE: consider empty lazarusdirectory as pcp, empty fpcsrcdir as lazdir, empty testdir as lazdir<br />
*r36548 IDE: fixed note about wrong laz dir<br />
*r36549 IDE: fixed crash on find identifier references<br />
*r36551 IDE: translate descriptions of all macros<br />
*r36552 IDE: fixed editor tab position combobox items localization on Editor/Misc options page<br />
*r36556,r36557 IDE: warn if upgrading configs<br />
*r36561, 36562, 36563, 36566: Improve Options/Keymap<br />
*r36565 LCL: Prevent TShape.stRectangle disappearing with certain Height/Width and Pen.Width values.<br />
*r36567,r36568,r36569 IDE: show downgrade warning<br />
*r36570 lazbuild: select IDE build mode, fixed compiling with different mode<br />
*r36572 LCL: set csCaptureMouse on TToolButton, but don't send click if mouse is out of ttoolbutton on mouseup.issues [[http://bugs.freepascal.org/view.php?id=19688 19688]],[[http://bugs.freepascal.org/view.php?id=21560 21560]]<br />
*r36574 IDE: fixed saving environment on every change<br />
*r36577 LCL, TreeView: fix GetNextVisible, GetPrevVisible. Issue [[http://bugs.freepascal.org/view.php?id=21264 21264]]<br />
*r36575 IDE/Setup dialog: force taskbar button to be shown<br />
*r36584 IDE: import package list: opendialog<br />
*r36587 IDE: intial setup: fpc src dir: lazdir/fpc/fpcver/source<br />
*r36588 IDE: intial setup: fixed if no candidates found<br />
*r36589,r36590 IDE: compiler file name: search first with macros<br />
*r36591 IDE: verbose search for candidates<br />
*r36592 IDE: search fpc src relative to fpc.exe<br />
*r36594 IDE: check compiler: only run common names<br />
*r36595,r36599 IDE: use under windows as default for make the make.exe in the compiler directory<br />
*r36596 IDE,codetools: fixed ppccross,crossppc to ppcross<br />
*r36601 IDE: unify the 2 filters in KeyMapping window. Prevent a potential crash.<br />
*r36603 debian: updated patches to latest source in lazarus svn<br />
*r36608 Gtk2: do not set widget name, it's completelly unnecessary and produce unexpected behaviour if some keywords are in widget name.issue [[http://bugs.freepascal.org/view.php?id=21661 21661]].<br />
*r36613 SynEdit: Fix an issue with Scrollbars not being updated<br />
*r36617 lazbuild: build ide: replace exe on windows<br />
*r36644 IDE: improved 'Export package list' dialog localization<br />
*r36645 IDE: improved 'Package Graph Explorer' dialog localization<br />
*r36647,r36653,r36654,r36655,r36656,36668,36673 IDE: view / IDE internal / what needs building<br />
*r36648,r36650,r36651 IDE: read state file created by Makefile: fix path delimiters, checking compiled state: ignore -v,-i,-B flags, do not skip all -F<br />
*r36652 IDE: codetools options: shorter caption<br />
*r36658 regenerated translations; updated Russian translation <br />
*r36659 LCL: Refactoring. Make TCalculatorDialog.Execute more understandable by removing a "with" block.<br />
*r36661 LCL: Prevent "Test Dialog" feature of Calculator and Calendar dialogs locking the IDE, issue [[http://bugs.freepascal.org/view.php?id=21644 21644]]<br />
*r36616 SynEdit: do not include IME for WinCe<br />
*r36662 LCL: implementation of TCustomImageList.GetIcon()<br />
*r36663 In GUI strings, unify all 3 dots to have a space before them ( ...)<br />
*r36664 IDE: Use CreateAbsolutePath when switching between relative/absolute paths in AddFile dialogs (CreateAbsoluteSearchPath gives wrong output)<br />
*r36665 LCL: publish TUpDown.OnChangingEx<br />
*r36666 IDE etc.: unify 3 dots in GUI string to have a space ( ...).<br />
*r36667 translation: german: updates from Swen Heinig<br />
*r36669 updatemakefiles: write which lpk have conditionals<br />
*r36670,r36671 IDE,lazbuild: create makefile: use CPPROG instead of COPY to get the current date for Makefile.compiled under Windows<br />
*r36649,r36657,r36602,r36672,r36675,r36677,r36679,r36683,r36701,r36708,r36709 Makefiles: updated, reduced dependencies, fixed double compiles<br />
*r36676 LCL: Implement TListItem.EditCaption, issue [[http://bugs.freepascal.org/view.php?id=20295 20295]].<br />
*r36680,r36699 lazbuild: fixed crash, replaced some MessageDlg with IDEMessageDialog<br />
*r36681 IDE,lazbuild: use parsed compiler filename, make filename<br />
*r36682 IDE: debugfilename, debugsearchpath: use same function as other env vars to resolve macros, trim and find<br />
*r36686,r36688 IDE/lazbuild backup, delete the same lazarus exe on all platforms<br />
*r36694 regenerated translations; updated Russian translation<br />
*r36695 LazDataDesktop: regenerated translations; updated Russian translation<br />
*r36696 IDE: add resource strings for various windows manifest keys<br />
*r36697 fix ImageList.AddMasked() in case of source image has no mask description<br />
*r36702 IDE: TProject.TitleIsDefault: check for project+number, fix for renaming the title of a new project<br />
*r36711 Qt: enable wordwrap on TQtStaticText. issue [[http://bugs.freepascal.org/view.php?id=21697 21697]].<br />
*r36712 LCL: fixed function result<br />
*r36713,r36715 lcl: fixed TToolButton.MouseUp X,Y in boundsrect check<br />
*r36716 LCL, combination of modal form + wsMaximized style produces tiny windows on GTK2, issue [[http://bugs.freepascal.org/view.php?id=21634 21634]]<br />
*r36717 LCL: reverted changes to menus.pp from r36666 (by Paul's request)<br />
*r36718 LCL: regenerated translations<br />
*r36719, *r36826 LCL: fix range check error<br />
*r36720 LazReport: added option to ignore undefined symbols, from Luiz Americo, issue [[http://bugs.freepascal.org/view.php?id=21683 21683]]<br />
*r36723,36724 IDE,lazbuild: fixed repeated build project clean: save project state file before compiling too<br />
*r36727 lazbuild: fixed expanding --lazarusdir<br />
*r36728 make useride: pass --lazarusdir=.<br />
*r36729 Improve TStringHashList, prevents a PO file update crash. Issue [[http://bugs.freepascal.org/view.php?id=21685 21685]]<br />
*r36730 IDE: project wizard: fixed fixed size, bug 21714<br />
*r36731 lazreport: fix possible access violation by checking dataset for nil<br />
*r36732 win32: fix range check error<br />
*r36733 lazbuild: auto create ide/revision.inc if missing<br />
*r36734 Gtk2: fixed mouse capturing on native scrolling win controls (TListBox,TListView etc).issue [[http://bugs.freepascal.org/view.php?id=21713 21713]]<br />
*r36735 LCL: TToolButton: commented debugln().<br />
*r36740 lazbuild: fixed uninitialized function result, fixed checking if init failed, quick check if lazarusdir is valid.<br />
*r36741 lazutils: Patch with font collection support from Circular<br />
*r36744 examples: Adds a OpenURL/OpenDocument test<br />
*r36745 LCL: Adds the sysenvapis include files to the lpk and adds an extra safety in OpenURL for users which forget to encode spaces in filenames<br />
*r36746 IDE: fixed fixed size dialogs<br />
*r36747 IDE: sort selection: layout<br />
*r36748 IDE: added debugging for sort selection<br />
*r36749 gtk2: clean up<br />
*r36750 IDE: less debugging<br />
*r36751 IDE: jump to next/prev error: fixed direction<br />
*r36752 LCL: TTreeView: clean up<br />
*r36753 IDE: next/prev error: clear multi selection<br />
*r36754 lcl: move interface initialization of TCustomEdit from CreateWnd to InitializeWnd. Consistent with other controls and allows interfaces to check is handle is being created<br />
*r36755 IDE: Add acceleration keys and fix tab order in Project Wizard and ImageListEditor, issue [[http://bugs.freepascal.org/view.php?id=21718 21718]]<br />
*r36756 lcl: remove TCustomListBox.Loaded. ItemIndex is initialized in InitializeWnd<br />
*r36757 lcl: call inherited after setting FLines in TCustomMemo.InitializeWnd. Fix potential crash since widgetset code expect FLines be initialized <br />
*r36758 lcl: check for csDestroyingHandle in TControl.HandleObjectShouldBeVisible. Fix issue [[http://bugs.freepascal.org/view.php?id=19882 19882]]<br />
*r36759 lcl: revert 31890 since issue [[http://bugs.freepascal.org/view.php?id=19882 19882]] is properly fixed now<br />
*r36760 gtk2: less hints<br />
*r36761 gtk2: less hints<br />
*r36762 Carbon: fixed result of TWSCarbonCustomListView GetTopItem,GetViewOrigin and GetBoundingRect. issue [[http://bugs.freepascal.org/view.php?id=21733 21733]]<br />
*r36763 Carbon: added themed TComboBox drawing.Patch by David Jenkins. issue [[http://bugs.freepascal.org/view.php?id=21747 21747]]<br />
*r36764 Carbon: added themed TComboBox drawing.Patch by David Jenkins. issue [[http://bugs.freepascal.org/view.php?id=21747 21747]]<br />
*r36765 Docs: added David Jenkins to contributors list<br />
*r36766 Carbon: make carbon widget visibility in sync with lcl. Patch by David Jenkins. issue [[http://bugs.freepascal.org/view.php?id=21731 21731]]<br />
*r36767 lcl: remove Destroying and DestroyWnd calls from TCustomListBox.Destroy<br />
*r36768 lcl: cleanup TCustomListBox.Create<br />
*r36769 codetools: fixed skipping include files in skipped ifdef<br />
*r36770 gtk2: less hints<br />
*r36771 gtk2: less hints<br />
*r36772 ide: fix selection painting of debugger eventlog colors list<br />
*r36773 carbon: improved TCarbonWidgetSet.RawImage_XXXX routines.Patch by David Jenkins. issue [[http://bugs.freepascal.org/view.php?id=21743 21743]].<br />
*r36774 carbon: proper initialization of alpha channel.Patch by David Jenkins. issue [[http://bugs.freepascal.org/view.php?id=21753 21753]]<br />
*r36775 LCL: implement ClientToParent, ParentToClient based on patch of David Jenkins (issue [[http://bugs.freepascal.org/view.php?id=0021763 0021763]])<br />
*r36776 LCL: extend TThemeServices.IsDisabled, IsHot, IsPushed for teCombobox<br />
*r36777 IDE: Fix tab order and set shortcuts in Application Options frame.<br />
*r36778 LazControls: fix potential crash in TListFilterEdit and TTreeFilterEdit<br />
*r36779 GTK2: add TGtk2WidgetSet.SetDesigning to prevent Abstract method call in IDE. Issue [[http://bugs.freepascal.org/view.php?id=21773 21773]]<br />
*r36780 IDE: fix tab order in Project Save Options frame.<br />
*r36781 IDE: fix tab order in frames: Build Modes editor, Miscellaneous Options and Version Info<br />
*r36782 IDE: fix tab order in option frames: Code Generation, Compilation, Linking, Messages, Parsing.<br />
*r36783 GTK2: clean up<br />
*r36784 GTK2: clean up<br />
*r36786 Carbon: removed extra code for teComboBox, since teComboBox is supported by themes as of r36776.<br />
*r36787 gtk2: clean up<br />
*r36788 gtk2: fixed Gtk2WidgetSet.ClipboardGetData mem leak on stream write error<br />
*r36789 gtk2: removed OldCreateStatusBarPanel<br />
*r36790 gtk2: clean up<br />
*r36791 gtk2: clean up<br />
*r36794 IDE: CloseQueryIDEWindows: skip sub forms<br />
*r36795 Fix crash in dbg-console, if dbg not active. issue [[http://bugs.freepascal.org/view.php?id=21712 21712]]<br />
*r36796 SourceEdit: use softcenter for Replace prompt. Issue [[http://bugs.freepascal.org/view.php?id=0021709 0021709]]<br />
*r36797 regenerated translations; updated Russian translation<br />
*r36800 IDE: when checking if a FPC unit has changed: ignore units that have no source in the FPC sources. Needed to ignore user units reachable through fpc.cfg.<br />
*r36801 IDE: fix error message can't find unit if the ppu is in one of the loaded packages<br />
*r36803 DOCS: correct the documentation about CanFocus<br />
*r36806 LCL: clear FActiveDefaultControl on that control destruction<br />
*r36810 LCL: fix copy paste error<br />
*r36811 LCL: don't update Default, Cancel during their applying in UpdateDefaultCancel<br />
*r36812 LCL: add and ability to use own TListItems, TListItem descendants in TListView for delphi compatibility<br />
*r36821 gtk2 intf: fixed compilation FPC_FULLVERSION<20600<br />
*r36822 gtk2 intf: clean up<br />
*r36823 gtk2 intf: clean up<br />
*r36824 gtk2 intf: clean up<br />
*r36825 LCL: initialize font height with the height from DefFontData<br />
*r36852 IDE: when checking if global unit has changed, skip units in packages<br />
*r36857,36859 LCL: TControl.UpdateBaseBounds: set cfBaseBoundsValid<br />
*r36861 LCL: TCustomSplitter.SetAnchors: adapt anchors before applying<br />
*r36870 LCL: SetAlign: restore the basebounds set before changes<br />
*r36877 LCL: clean up<br />
*r36882 LCL: TControl.SetAnchors: during disabled autosize: update basebounds when changing Anchors, bug 21730<br />
*r36884 LCL: fixed sending CM_EXIT,CM_ENTER when flastfocusedcontrol was removed<br />
*r36885 LCL: constraint Width,Height to >=0<br />
*r36888 Converter: fixed 'Missing units' dialog localization, part of bug 21784<br />
*r36889,r36890 codetools: class completion: fixed gathr proc definitions<br />
*r36891 IDE: show compiling resource lines when error on compiling resources<br />
*r36892 IDE: improved message when can not find unit and unit was found in a package<br />
*r36893,r36894 IDE: messages: show debug: lines and calling resource compiler<br />
*r36895,r36896 gtk2 intf: checking for liboverlay, using value-changed instead of change-value<br />
*r36897 LCL: made TImage.DestRect public<br />
*r36899 Fix encoding errors in Japanese translation<br />
*r36900,r36901 startlazarus: fixed asking for custom or default<br />
*r36902 LCL: fixed ShowModal() when Hide() is called on modal form to be Delphi compatibile.issue [[http://bugs.freepascal.org/view.php?id=15390 15390]]<br />
*r36903 IDE: fixed read/write designinfo, bug 21804<br />
*r36904 IDE: do not save a new project where only session was modified, bug 21803<br />
*r36905 gtk2 intf: fixed TGtk2WSCustomTabControl.GetDefaultClientRect to check if gtknotebook has a page<br />
*r36906,36907 codetools: AddLocalVar: do not add hidden used unit<br />
*r36908 Qt: added TQtWidget.testAttribute() function.<br />
*r36910 DBG: Tests for environment<br />
*r36913 TAChart: Set Brush.Color before Brush.Style to work around issue [[http://bugs.freepascal.org/view.php?id=21806 21806]]<br />
*r36914: TAChart: Fix compilation of OpenGL drawer<br />
*r36924 gtk2 intf: TGtk2WSCustomTabControl.GetDefaultClientRect for TTabControl<br />
*r36925 Qt: fixed resize events of TQtTabWidget and accurate information about clientRect changes. issue [[http://bugs.freepascal.org/view.php?id=21805 21805]]<br />
*r36929 Gtk2: fixed text background drawing in TGtk2WidgetSet.ExtTextOut() when BkMode = OPAQUE.issue [[http://bugs.freepascal.org/view.php?id=19384 19384]]<br />
*r36941 Translations: Brazilian Portuguese translation update by Marcelo B Paula, bug 21818<br />
*r36938,36939 LazReport, lift up to preview window improving layout and functionality, from Julio Jimenez B.<br />
*r36942 LazReport, avoid hiding text at some zoom values due small differences in text height calc (DONT MERGE YET, NEEDS MORE TESTING)<br />
*r36943 IDE: msg quickfix for cant find unit: add position<br />
*r36956 carbon: added FHasPaint variable to TCarbonWidget to allow owner draw.issue [[http://bugs.freepascal.org/view.php?id=21744 21744]]<br />
*r36957 carbon: added ScrollRect() routine to TCarbonWidget. issue [[http://bugs.freepascal.org/view.php?id=21741 21741]]<br />
*r36958 carbon: set FTabIndex instead ATabIndex variable in TCarbonTabsControl.SetPageIndex. patch by David Jenkins.issue [[http://bugs.freepascal.org/view.php?id=21728 21728]]<br />
*r36959 carbon: optimized caret drawing to not update whole widget.patch by David Jenkins. issue [[http://bugs.freepascal.org/view.php?id=21768 21768]]<br />
*r36960 carbon: fixed order of check width > height in TCarbonTrackbar.patch by David Jenkins. issue [[http://bugs.freepascal.org/view.php?id=21740 21740]]<br />
*r36961 carbon: implemented autosizing for listview / databrowser columns.patch by David Jenkins. issue [[http://bugs.freepascal.org/view.php?id=21745 21745]]<br />
*r36962 carbon: fixed possible bad loop in TCarbonSpinEdit.CreateWidget.Patch by David Jenkins.issue [[http://bugs.freepascal.org/view.php?id=21732 21732]]<br />
*r36965 IDEIntf: fixed typo<br />
*r36967 Gtk2: fixed retreiving font name from TGtk2WidgetSet.GetObject() when font is default. issue [[http://bugs.freepascal.org/view.php?id=21828 21828]]<br />
*r36968 codetools: JumpToPublishedMethodBody: raise error<br />
*r36969 codetools: fixed FindMethodNodeInImplementation for program<br />
*r36971 tests: codetools: added test for duplicate sections, parsing library<br />
*r36972 codetools: fixed reparsing initialization, finalization, begin<br />
*r36973 codetools: fixed treating initialization, finalization as statement<br />
*r36974,r36975,r36976,36977,36978 codetools: fixed find declaration in library starting in initialization, bug 21832<br />
*r36981,r36982 codetools: identifier completion: fixed continue searching<br />
*r36979 Updated Japanese translation by Haruyuki Fujimaki<br />
*r36980 Fix japanese encoding<br />
*r36983,r36984 codetools: identifier completion: some keywords for library, program<br />
*r36985 codetools: identifier completion: keyword initialization for library, issue [[http://bugs.freepascal.org/view.php?id=21839 21839]]<br />
*r36986 Updated Japanese translation by Haruyuki Fujimaki<br />
*r36990 codetools: identifier list: skip identifier at cursor<br />
*r36991,r36992 IDE: identifier completion: add do after with, issue [[http://bugs.freepascal.org/view.php?id=16850 16850]]<br />
*r36996,r36997,r36999,r37013,r37014,r37015 runtests: fixed compilation, added some tests<br />
*r37012,r37011,r37009,r37008,r37007,r37006,r37005,r37004,r37003,r37002,r37000 carbon interface: clean up<br />
*r37020 IDE: recent/history lists: replaced case sensitive comparison with three types<br />
*r37021 docking: update modified flags<br />
*r37022 codetools: fixed uninitialized result<br />
*r37025 IDE: use unit dialog: check for syntax errors<br />
*r37026,r37027 DBG: Prepare for different line endings. / Accept different line endings (#10, #13, #10#13, #13#10) issue [[http://bugs.freepascal.org/view.php?id=0021834 0021834]].<br />
*r37029 Gtk2: fixed drawing of text with solid brush. issue [[http://bugs.freepascal.org/view.php?id=21863 21863]]<br />
*r37031 Gtk2: do not draw text background if colormap isn't assigned. Second part of issue [[http://bugs.freepascal.org/view.php?id=21863 21863]].<br />
*r37032 gtk2: clean up old mouse capture<br />
*r37033 gtk2: fixed releasecapture<br />
*r37034 gtk2: verbosity for ubuntu liboverlay mouse capture bug<br />
*r37038 sqldb: Enable mssqlconnection for fpc >= 2.6.1 (patch from Reinier Olilagers, bug 21867) - added because creates conflicts with later sqldb merges<br />
*r37040: TAChart: Workaround for TDbChartSource referring to the dataset with Filtered := true<br />
*r37043 LCL, fix TPostScriptPrinterCanvas.ClipRect is empty-rect until explicitly set by user, patch from Joachim Paepke, issue [[http://bugs.freepascal.org/view.php?id=21027 21027]]<br />
*r37051 Translations: Ukrainian translation update by Igor Paliychuk<br />
*r37052 regenerated translations; updated Russian translation<br />
*r37053 LCL: fixed compilation for fpc 2.7.1<br />
*r37054,37055,37057 set TDBLookup.FListLink.DataSource dynamically to FListSource or a local datasource. Issue [[http://bugs.freepascal.org/view.php?id=15410 15410]]<br />
*r37067 LCL: fixed visibility of implemented interfaces<br />
*r37069 simple deb: using make bigide, updated list of tools<br />
*r37070 openglcontrol: fixed mem leak, issue [[http://bugs.freepascal.org/view.php?id=21597 21597]]<br />
*r37071 codetools: identifier completion: unit name of self<br />
*r37076 gtk2: clean up<br />
*r37077 IDE: clean up<br />
*r37092 LCL: fixed compilation for fpc 2.7.1<br />
*r37093 DBG: Testcase: fixed reading env-options<br />
*r37095 SynEdit: fix crash in overview gutter creation. Issue [[http://bugs.freepascal.org/view.php?id=0021887 0021887]]<br />
*r37096 SynEdit: Do not offer OverviewGutter in Gutter-parts designer<br />
*r37101 lazreport: fixed compilation with fpc 2.7.1, new TBookMark<br />
*r37102 lazreport: clean up<br />
*r37112,r37113 SynEdit: highlight class "helper". Fix wrong highlight of "sealed" Issue [[http://bugs.freepascal.org/view.php?id=0021812 0021812]]<br />
*r37115 openglcontrol: fixed mem leak, issue [[http://bugs.freepascal.org/view.php?id=21597 21597]]<br />
*r37126 LCL: Publish some TCheckGroup properties.<br />
*r37129 gtk2: clean up<br />
*r37154,37247,37248 lcl-db: prevent lookup initialization when dataset is destroyed<br />
*r37155 LCL, use rectclip to set clipping rectangle instead of current path because it sometimes get drawn on next stroke (related to r37043)<br />
*r37157 Qt: fixed key events from QCalendar, now tabbing works fine.<br />
*r37160 LCL: published missing properties TCalendar.Hint and TCalendar.TabOrder.<br />
*r37167 LCL: Fix range check error in StringGrid when sorting and RowCount=FixedRows, issue [[http://bugs.freepascal.org/view.php?id=21947 21947]]<br />
*r37073 codetools: resolve expr: thisunitname.implementationenidentifier<br />
*r37078 codetools: find declaration: selfunit.implementationidentifier<br />
*r37079,r37080,r37081,r37082,r37083,r37087,r37089,r37098 codetools: getsmarthint: class variables, enum, array of, inheritance, property params and type, use unit<br />
*r37085 IDE: show compiler options: check compiler<br />
*r37086,37088 IDEIntf: removed TLazCompilerOptions.LCLWidgetType, fixed computing default LCLWidgetType on cross target OS<br />
*r37090 codetools: do not try to search in record ancestors<br />
*r37105 DBG: Watches Copy Name/Value to clipboard. Issue [[http://bugs.freepascal.org/view.php?id=0021860 0021860]]<br />
*r37106 DBG: Register Copy Name/Value to clipboard. Issue [[http://bugs.freepascal.org/view.php?id=0021860 0021860]]<br />
*r37107 DBG: Watches, added inspect/evaluate to popup<br />
*r37116 DBG: Fix a possible crash in debugger (history). Issue [[http://bugs.freepascal.org/view.php?id=0021901 0021901]]<br />
*r37195 SourceEdit: Do not access outdated tab-history entries (dangling pointers). Issue [[http://bugs.freepascal.org/view.php?id=0021939 0021939]]<br />
*r37196 SourceEdit: Only add tabs to tab-history that were accessed<br />
*r37103,r37132 codetools: nested types: Self and inherited<br />
*r37104,r37120 codetools: GetSmartHint: show anonymous arrays<br />
*r37111 IDE: Make Close button work in Components List dialog. Issue [[http://bugs.freepascal.org/view.php?id=21892 21892]],<br />
*r37118 IDE: build ide: if building fails, clear flag clean up once<br />
*r37119 IDE: when building IDE failed: restore backup<br />
*r37121,r37122 IDE: select frame: search in packages<br />
*r37130 IDE: select frame: search in packages<br />
*r37131 LCL, implements textrect clipping in Postscriptprintercanvas<br />
*r37133 SynEdit: Fix WantTabs / Change default to "True" Issue [[http://bugs.freepascal.org/view.php?id=0021904 0021904]]<br />
*r37134 SynEdit: Remove not required invalidation (paint / call to wrong Update() )<br />
*r37135 SynEdit: Remove wrong implementation of Update. Update no longer forwards to Invalidate<br />
*r37136 IpPro: Fix painting for SelectAll<br />
*r37137 IDE, IpPro: Allow copy to clipboard from hint (zeljko added because of conflict in 37345)<br />
*r37140 cody: show code node info: show complete source<br />
*r37141 SynEdit: Fixed Caret paint error (extra caret left on screen) Issue [[http://bugs.freepascal.org/view.php?id=0021924 0021924]]<br />
*r37143 IDEIntf: added TPropertyEditorHook.IsSelected<br />
*r37144 IDEIntf: TDefaultComponentEditor: always select component<br />
*r37146 IDE: if component class is missing: note about RegisterClass<br />
*r37148 Translations: Ukrainian translation cleanup<br />
*r37149 IDE: regenerated translations; updated Russian translation<br />
*r37151 cody: IDE item to create dockable IDE window<br />
*r37152 cody: new IDE window: show dialog to setup form name<br />
*r37162,r37163 IDE: TProjectFileDescriptor.DefaultResourceName: first try without appending a number, check for pascal keywords<br />
*r37164,r37165 IDE: fixed DoGetUnitRegisterInfo for virtual files<br />
*r37166 SynEdit: Fixed Caret when scrolling under older Wine (Win Emulator)[[http://bugs.freepascal.org/view.php?id=21929 21929]]<br />
*r37212 sqldb: added icon for TMySQL55Connection for fpc 2.6.1 '<br />
*r37213,r37214,r37219 codetools: do not save errors outside parser<br />
*r37215 codetools: GetSmartHint: ^, .., file of, class of<br />
*r37220 Translations: Czech IDE translation update by Martin Smat<br />
*r37224 SynEdit: Autocompletion, workaround for click on hint Issue [[http://bugs.freepascal.org/view.php?id=21952 21952]]<br />
*r37231 SynEdit: Prevent some scrolling, while selecting by mouse. Issue [[http://bugs.freepascal.org/view.php?id=0021996 0021996]]<br />
*r37232 DBG: Inspect window, improve scrolling<br />
*r37234 DBG: Improve start-up to work with bug in gdb 7.4<br />
*r37262 searching compiler: search first in dir of fpc.exe, then in PATH<br />
*r37263,r37265 codetools: improved error message on unit not found<br />
*r37264 fix setting radiogroup.itemindex under gtk2. Issue [[http://bugs.freepascal.org/view.php?id=22013 22013]]<br />
*r37267 Docs: improved build_lcl_docs robustness when working with TProcess, patch from Reinier Olislagers, bug 22000<br />
*r37273 SourceEditor: Fix crash when closing several tabs, while debugging (paused / loading line info). Maybe related to issue [[http://bugs.freepascal.org/view.php?id=22015 22015]]<br />
*r37274 Fix Crash in building "Windows" (list of open W.) Menu. Note 0059576 in Issue [[http://bugs.freepascal.org/view.php?id=22015 22015]] (not related to other parts of issue)<br />
*r37280 SQLdb: added missing tmysql55connection.png, bug 22033 '''Related to 37212 and other revisions for TMySQL55Connection'''<br />
*r37281 SynEdit: protect ProcessCommand() against early destruction by ReleaseComponent. Issue [[http://bugs.freepascal.org/view.php?id=0022035 0022035]]<br />
*r37285 IDE: make Close button work in Window Manager<br />
*r37286 Patch from bug 21651, automatically adds quotes to paths with spaces for OpenDocument in Mac OS X<br />
*r37297,r37298 SynEdit, Pas-HL: record helper, deprecated in object<br />
*r37311 Translations: Arabic IDE translation update by Mazen NEIFER<br />
*r37312 IDE: Make Help button work in Editor Window Manager, issue [[http://bugs.freepascal.org/view.php?id=21961 21961]]. (zeljko added to merge list because of conflicts in 37491)<br />
*r37325 regenerated translations; updated Russian translation<br />
*r37326 Translations: Brazilian Portuguese translation update by Marcelo B Paula, bug 22064<br />
*r37327 IDE, Code Generation options: changed wrong -Op386 option to correct -Op80386. Patch by barlone with some consistency changes, bug 22062.<br />
*r37357 Gtk2: fixed mbAll button on dialogs. Added response keys which does not exist in gtk2. issue [[http://bugs.freepascal.org/view.php?id=22083 22083]]<br />
*r37344 gtk2 intf: less hints<br />
*r37345 ipro: less hints <br />
*r37359 lazreport: German translations<br />
*r37360 cody: German translations<br />
*r37039,r37319,r37324,r37361 sqldb: German translations (zeljko added 37039,37319,37324 because of conflicts)<br />
*r37362 educationlaz: German translations<br />
*r37363 ide: German translations<br />
*r37372 lcl: don't access Items of TreeView if DragOver happens during treeview destruction<br />
*r37373 IDE: debugger options: check the resolved file, bug 22086<br />
*r37374 Qt: bypass windowmanager when showing dragimagelist.<br />
*r37375 Gtk2: do not show taskbar entry for dragimagelist.<br />
*r37376 IDE: update TUnitInfo.ResourceBaseClass on loading lfm<br />
*r37378 [Edited, includes selected lines of 37402] SourceEditor: Hide hint, when mouse moves (even if outside IDE, or IDE is not active). Issue [[http://bugs.freepascal.org/view.php?id=0022016 0022016]]<br />
*r37368 DBG: Fixed array len for 64 bit<br />
*r37369 lcl: don't crash when either DragTarget or dragged control is freed (issue [[http://bugs.freepascal.org/view.php?id=22067 22067]])<br />
*r37370 lcl: cleanup debug info<br />
*r37371 lcl: fixed a memory leak when canceling drag of dead control<br />
*r37380 SourceEdit/DBG: Ensure Codebuffer is updated before using it to add watches<br />
*r37383 IDE: TUnitInfo.fModified: do not set on get<br />
*r37384,r37401 IDE: do not set TUnitInfo.Modified when committing source editor to codetools<br />
*r37388,r37389,r37390,r37391,r37392 tests: added tests for cfgscripts, fixed unit output directory, cfgscript: fixed error message if semicolon is missing, IDE: added conditionals functions GetIDEValue, GetEnv, LCL: use IDE widgettype as default<br />
*r37397 TodoList: properly trim comment markers and convert multiline text to single line, fixes bug 22085. Based on patch by Anton.<br />
*r37400 codetools: fixed mem leak<br />
*r37418: TAChart: Fix range check using datapoint tool on a chart without series<br />
*r37440 DBG: do not set temporary stack = -1 in thread changing. This may cause errors<br />
*r37444 DBG: Watches, save "Use instance class" to config<br />
*r37449 LCL: fixed comments<br />
*r37451 Qt: fixed wrong SetCapture() under win32. Problem was passed TQtWidget handle instead of underlaying widget winID() which is native handle.<br />
*r37453 SynEdit: Fix goto bookmark and persistent block. Do not clear persistent block<br />
*r37461 lcl: TCustomForm.UpdateDockCaption: fixed repair garbage<br />
*r37463 IDE: when docked keep IDE caption<br />
*r37464 Help, DBG: New link to wiki for watch properties<br />
*r37475 codetools: TCustomCodeTool.FindLineEndOrCodeAfterPosition: fixed crash when at end of code<br />
*r37476 codetools: clear nodes behind, when linkscanner parsed only parts<br />
*r37481 IDE: fixed storing old LCLWidgeType, bug 22174<br />
*r37482 codetools: save parse error of operator, do not save errors outside parser, fixed parsing method name with generic parameter<br />
*r37483 codetools: allow keywords in program name<br />
*r37534 Qt: do not call setValue() but setPosition() so lcl gets accurate values later. issue [[http://bugs.freepascal.org/view.php?id=22187 22187]]<br />
*r37491 Help, DBG: Link to wiki for breakpoint properties (zeljko - 37312 is merged too, because of conflicts)<br />
*r37470 IDE, DBG: debug-eval hint, do not show, if selection exceeds one statement (e,g whole file selected). Part of issue [[http://bugs.freepascal.org/view.php?id=0022081 0022081]]<br />
*r37471 SourceEditor: Fix an issue with focusing an editor, that is being closed (while debugging) "no parent handle". Issue [[http://bugs.freepascal.org/view.php?id=0022015 0022015]]<br />
*r37517 SynEdit: fixed folding for "case" and "try" in certain code segments (initialization / case...else try)<br />
*r37518 SynEdit: Pas-HL: fix detection of case...else versus if...then...else<br />
*r37522 SynEdit: Pas-HL: better detection of case...else<br />
*r37623 SourceEditor: Fix (Work-around) an issue with focusing an editor, that is being closed (while debugging) "no parent handle". Issue [[http://bugs.freepascal.org/view.php?id=0022015 0022015]] // Required some parts of r37502<br />
*r37609 DBG: Avoid re-queuing of dis-assembler requests, after cancelling it. Part of issue [[http://bugs.freepascal.org/view.php?id=0022230 0022230]]<br />
*r37643 DBG: Disassembler: prevent disassembler from doing large address ranges, if gdb returns data with far away addresses. Issue [[http://bugs.freepascal.org/view.php?id=0022230 0022230]]<br />
*r37657 DBG: fixed a out of index error, in watches history<br />
*r37694 DBG: Fixed possible crash in watch evaluation (WatchValue freed while evaluating / in GetValue)<br />
*r37466 IDE: added menu item to insert MIT license text<br />
*r37407,r37474,r37492 IDE: TMainIDE.DoSourceEditorCommand: improved focus check, requires r37466<br />
*r37564 LCL: TCustomListView: reset FCacheIndex and FCacheItems before sorting list, otherwise we'll have unexpected results. issue [[http://bugs.freepascal.org/view.php?id=22218 22218]]<br />
*r37505, r37509, r37516, r37523 fixed compilation with fpc 2.7.1<br />
*r37592 lcl: fixed compilation fpc 2.7.1<br />
*r37525 TAChart: Display legend symbols even if the text is empty<br />
*r37565 TAChart: Display major axis marks at the edges of the clip range<br />
*r37576 TAChart: Fix infinite recursion when drawing chart listbox from series with Legend.Multiplicity <> lmSingle<br />
*r37588 TAChart: Include Item.Y in reordered list of TCalculatedChartSource. Update test. '''This will break old tests. Please contact me for a fix --- Ask'''<br />
*r37727 TAChart: Update to the recent version of FPVectorial<br />
*r37587 Qt: unset icon when doing internal sync after sorting. part of issue [[http://bugs.freepascal.org/view.php?id=22218 22218]]<br />
*r37620 LCL: invalidate parent preferredsize when borderspacing changed, bug 17947<br />
*r37621 LCL: clean up - invalidate in TControl.DoBorderSpacingChange no longer needed with new autosizing<br />
*r37622 lazutils: added missing file<br />
*r37624 LCL: GetClientRect: if interface has the right width,height trust the clientrect, this avoids some unneeded resizes<br />
*r37573 IDE: project inspector: add files: allow dotted unit names, bug 22209<br />
*r37619 IDE: open package dependency: try provides, issue [[http://bugs.freepascal.org/view.php?id=17960 17960]]<br />
*r37628 IDE: compiler options: disable target platform for packages<br />
*r37594 codetools: fixed Unneeded extra space in event assignment completion<br />
*r37613 codetools: property completion: add class var for class property variables<br />
*r37614 codetools: class completion: search variables in all sections, bug 22246<br />
*r37625,r37626,r37627 codetools: class completion: fixed searching var node when first is class var<br />
*r37629 codetools: fixed adding class keyword for property setter of a class property<br />
*r37630 IDE: codeexplorer: labels<br />
*r37634 IDEIntf: objectinspector: fixed painting outside paint event<br />
*r37631 codetools: no var node for anonymous record case variables<br />
*r37632 codetools: identifier completion: when creating an override hide higher visibility members<br />
*r37633 codetools: class completion: add static method modifier for setter of class property<br />
*r37636 codetools: class completion: add static method specifier for class property setter<br />
*r37635 IDE: paste component: fix renamed references<br />
*r37637,r37638,r37639 IDE: paste multiple components: fix references, lcl: LRSObjectTextToBinary: write convert list of components<br />
*r37640 IDE: paste components: update TControl.Caption<br />
*r37642 lcl: fixed LRSObjectTextToBinary toWString, issue [[http://bugs.freepascal.org/view.php?id=19650 19650]]<br />
*r37644 codetools: fixed inserting proc bodies in implementation in front of methods<br />
*r37652,r37653,r37655 codetools: using TFileStreamUTF8<br />
*r37656 IDE: using TFileStreamUTF8 and TStringListUTF8<br />
*r37663 IDE: fixed show info on --help when no stdout exists<br />
*r37689 LCL: fixing handling of special keys for TCustomEdit and TCustomMemo<br />
*r37690 codetools: forward proc completion: stay in same section<br />
*r37697 DBG: Dialogs, don't give help related commands to IDE. They will be ignored<br />
*r37698 IDE Help: add urls for dbg dialogs<br />
*r37703 lazutils: utf8pos: added optional parameter StartPos<br />
*r37704 IDE: setup dialog: show fpc source directory release version as warning instead of error<br />
*r37707 tools create deb+rpm: use 128x128 icon<br />
*r37705 SynEdit: open and close clipboard explicitly to write multiple formats.<br />
*r37714 lcl: gtk2: warn only once about liboverlay<br />
*r37711 lhelp: cleaned up paths<br />
*r37712 lhelp: clean up<br />
*r37713 lhelp: resolve macros in HelpEXE on the demand<br />
*r37715 chmhelp: using search path to search for chm files<br />
*r37716,r37717 chmhelp: added path $(LazarusDir)/docs/chm<br />
*r37718 'hmhelp: search ref.chm in docs/chm<br />
*r37726 create_lazarus_deb: added option chmhelp<br />
*r37722 DBG: Event-Log: Do not cache Options. Allow user to change options while debugging<br />
*r37596 Patch from {{MantisLink|0022231}} "fix warnings with fpc 2.6.1".--[[User:AlexVinS|AlexVinS]] 21:40, 8 June 2012 (UTC)<br />
*r37745 deb+rpm: default environmentoptions: updated to 107, removed default gdb entry<br />
*r37748,r37755 lhelp: added makefile<br />
*r37749 make bigide: build lhelp<br />
*r37753 IDE: fixed comparing file names case insensitive<br />
*r37754 lazutils: inlined UTF8CompareStr<br />
*r37760 Use Utf8CompareText instead of AnsiCompare<br />
*r37762 linux: added encoding to desktop file<br />
*r37769 Use Utf8CompareText instead of AnsiCompare<br />
*r37770 TAChart: Fix AV when clearing Series.Styles and TColorMapSeries.ColorSource properties<br />
*r37772 Use Utf8CompareText instead of AnsiCompare<br />
*r36804 win32: mark client rect as required update before WM_SIZE passing, remove DoAdjustClientRectChange - they are called inside WM_SIZE handler after the client rect is updated (fixes bug [[http://bugs.freepascal.org/view.php?id=0021724 0021724]])<br />
**Paul remarked about r36804: "Please don't merge it for at least 2 weeks". Also seems to cause problems in grids, see [http://bugs.freepascal.org/view.php?id=21790 issue [[http://bugs.freepascal.org/view.php?id=21790 21790]]].<br />
*r36993: LCL, fixed Problems setting Width, Height for TCustomGrid if ScrollBars is auto, from cobines, issue [[http://bugs.freepascal.org/view.php?id=21790 21790]]. If r36804 is merged, please merge also r36993<br />
*r37783 startlazarus: linux: adding LIBOVERLAY_SCROLLBAR=0 to avoid problems with mouse capturing<br />
*r37785 gtk2 intf: disable liboverlay by default<br />
*r37790 gtk2 intf: use setenv only on Linux<br />
*r37795: export tgz: added option to add chm files<br />
*r37796 IDE: when copying secondary configs create the primary config directory first<br />
*r37797 rpm: added option chmhelp<br />
*r37810 rpm: fixed building without chmhelp<br />
*r37811 lhelp: fixed invalid recent item path in config, added build modes default,debug<br />
*r37814 chmhelp: clean up old ipc files to prevent IDE hang<br />
*r37817-r37821 MAKE DEB<br />
*r37838 DBG: Fix handling console input<br />
*r37824 chmhelp: Fixed lazarus hanging when chmhelp pipe is leftover from an improperly closed lhelp<br />
*r37825 chmhelp; Fixed chmhelp typo (boolean error)<br />
*r37826 chmhelp: fixed bug where a new lhelp process could be started each time F1 was pressed<br />
*r37841 DBG: Pseudo-Terminal, accept tabs<br />
*r37848 lazutils: docs: fixed encoding and package name<br />
*r37849 lcl: docs: fixed encoding<br />
*r37850 ide: docs: fixed encoding<br />
*r37851 updated docs<br />
*r37853 lcl: docs: fixed some links<br />
*r37852 build_lcl_docs: using UTF-8 file functions, added option -h<br />
*r37855 build_lcl_docs: showcmd: show working directory<br />
*r37861 lcl: check if ListDataset is loading to update lookup info. Issue [[http://bugs.freepascal.org/view.php?id=22337 22337]]<br />
*r37846 win32: let TComboBox.CloseUp fire before Change (delphi compatible). Fix 22352<br />
*r37880 IDE+startlazarus: use same working directory, needed for passing relative file names as command line parameters, fixed building lcl+lazutils chm on ubuntu 12<br />
*r37866 lazutils: fixed unit names<br />
*r37868 lazutils: added fpdoc files<br />
*r37869 docs: building lazutils+lcl chm<br />
*r37885 DBG: fixed parsing sets for debug-inspector<br />
*r37906 IDE-Options / SynEdit: Fixed RightEdge visibility (Recression)<br />
*r37919 DBG: Prevent potential crash/memory-corruption in Watches<br />
*r37920 DBG: Prevent potential crash in (dbg-)OnIdle handling<br />
*r37921 DBG: Prevent build up of no longer needed commands in queue<br />
*r37945 DBG: Prevent a crash, when the selected snapshot is deleted. Cas also happen when starting the debugger, while a snapshot from previous run is active<br />
*r37950 DBG: fixed endless loop in watch eval (auto type cast) Issue [[http://bugs.freepascal.org/view.php?id=0022425 0022425]]<br />
*r37961 DBG: Disable rangechecks for certain PtrUInt casts<br />
*r37993 carbon: fixed crash of IDE when compiled with range checks on<br />
*r38006 gtk2: fixed crash on QuestionDlg<br />
*r38003 IDE: fixed showing custom project options, issue [[http://bugs.freepascal.org/view.php?id=22486 22486]]<br />
** merged ONLY main.pp<br />
*r38016 ToDoList: fixed encoding of French translation, it should be UTF-8, not ISO-8859-1. Patch by batyann811, bug 22489.<br />
*r37981,37983-37989,38001,38004-38005,38012,38017 Win Installer<br />
===== Fixed after RC1 =====<br />
*r38127 IDE, EditorOptions: Fixed finding color attribute in localized IDE<br />
*r38132 IDE: setup: after changing lazarusdir: fetch translations and translate<br />
*r38133 chmhelppkg: invoke lazbuild with --pcp parameter<br />
*r38138 examples: testall: fixed start<br />
*r38139 examples: cleandirs: error for fpc version<br />
*r38140 examples: componentstreaming: fixed typo, clean up<br />
*r38141 lazfreetype: fixed range check error, improved error message<br />
*r38142 examples: mssqlconn: requires fpc 2.6.1<br />
*r38144 examples: synguttermarks: win32 gui mode, fixed Left position<br />
*r38146 examples: tv_add_remove: updated<br />
*r38147 examples: xmlreader: added example xml<br />
*r38157 IDE: fixed saving ambiguousfileaction, bug 22573<br />
*r38158 examples: clean up<br />
*r38038 TAChart: Allow spaces in field names inside TDbChartSource.FieldY<br />
*r38168 synuni: clean up fpc options<br />
*r38170 synuni, semaphorgridlpk: clean up fpc options<br />
*r38022 SynEdit: Fixed drawing errors for frames (left frame site drawn at wrong offset)<br />
*r38145 LCL: TListView fixed "List index out of bounds" while deleting items. issue [[http://bugs.freepascal.org/view.php?id=22552 22552]]<br />
*r38150 SynEdit TSynMultiSyn: Fixed crash when deleting lines. Part of issue [[http://bugs.freepascal.org/view.php?id=0022519 0022519]]<br />
*r38151 SynEdit Highlighter: Fixed crash when scanning empty<br />
*r38152 SynEdit TSynMultiSyn: typo<br />
*r38175 SynEdit TSynMultiSyn: Fixed updating, when appending to EOT. Part of issue [[http://bugs.freepascal.org/view.php?id=0022519 0022519]]<br />
*r38205 lazaruside.fi.po: Finnish translations<br />
*r38180 Synedit: fix matching-bracket-highlight in comments (closing bracket at eol) issue [[http://bugs.freepascal.org/view.php?id=22586 22586]]<br />
*r38198 IDE: Export to html, do not enforce check for writeable. Issue [[http://bugs.freepascal.org/view.php?id=22588 22588]]<br />
*r38199 lazutils: do not use winodws W functions under Win98, issue [[http://bugs.freepascal.org/view.php?id=22596 22596]]; '''Breaks compilation on wince, because win32platform is not defined.'''<br />
*r38202 openglcontrol: win32: fixed sharing context<br />
*r38204 Synedit: fixed typo in IFDEF for fpc 2.60 bug<br />
*r38225 TAChart: Fix division by zero in zoom tools with extreme zoom ratios<br />
*r38226 TAChart: Fix hang in functional series with extreme zoom ratios<br />
*r38223 SynEdit TSynMultiSyn: Several fixes issue [[http://bugs.freepascal.org/view.php?id=0022519 0022519]]<br />
*r38232 TAChart: Add InRangeUlps utility function<br />
*r38233 TAChart: Fix disappearance of axis marks located exactly at chart bounds<br />
*r38234 TAChart: Fix crash when setting Marks.LabelFont from the Object Inspector<br />
*r38237 Examples/SynEdit: Readme and typo in comment<br />
*r38266 IDE: Tweak the layout of ManageExamplesForm<br />
*r38260 TAChart: Use correct notification when the series' source changes<br />
*r38261 TAChart: Issue change notifications when modifying TListChartSource.DataPoint property<br />
*r38285 lhelp: replace MessageBox, with Form.Modal. FIx IPC hang. issue [[http://bugs.freepascal.org/view.php?id=0022592 0022592]]<br />
<br />
===== Fixed after RC2 =====<br />
*r38293 windows installers: don't ask to overwrite the environment options in the secundary config directory from Reinier Olislagers<br />
*r38339 SynEdit TSynMultiSyn: Fix CaseSensitivity for Sheme marker. Issue [[http://bugs.freepascal.org/view.php?id=0022693 0022693]]<br />
*r37386 Remove writeln() that looks like a residual debug message. Issue [[http://bugs.freepascal.org/view.php?id=0022544 0022544]]<br />
*r38385 Translations: removed unmaintained Portuguese translation, which was outdated copy of Brazilian Portuguese one<br />
<br />
== How to merge ==<br />
The lazarus developers have decided to use the native svn merge for this branch. Other branches used the svnmerge.py script to manage the revisions to be merged.<br />
<br />
* TODO: Maybe this information should be put in a separate page.<br />
<br />
[[SVN_Migration#Merge_with_plain_svn]]<br />
=== Using TortoiseSVN ===<br />
As noted in the link above using TortoiseSVN is more or less self explaining. <br />
<br />
* TODO: add some screen shots.<br />
<br />
When committing, in the recent messages a nice commit message is available.<br />
<br />
Tested with TortoiseSVN 1.7.6, SVN 1.7.4.<br />
<br />
=== Show list of revision that can be merged ===<br />
In the lazarus fixes_1_0 directory do:<br />
svn mergeinfo ^/trunk --show-revs eligible<br />
Or if you don't have a fixes directory checked out, you can pass the URL path of the fixes branch:<br />
svn mergeinfo ^/trunk http://svn.freepascal.org/svn/lazarus/branches/fixes_1_0 --show-revs eligible<br />
<br />
=== Show list of revision that have been merged ===<br />
In the lazarus fixes_1_0 directory do:<br />
svn mergeinfo ^/trunk --show-revs merged<br />
<br />
=== Merging revisions from trunk ===<br />
To merge one or more revisions from trunk, use the svn merge command. For example to merge revision 36506 and 36510 use:<br />
svn merge -c 36506,36510 ^/trunk<br />
<br />
To generate a commit log message, use:<br />
svn log ^/trunk -c 36506,36510 > svnmerge-commit-message.txt<br />
<br />
Edit svnmerge-commit-message.txt with your favorite text editor and add a first line like:<br />
Merged revision 36506,36510 from /trunk.<br />
<br />
Commit this with:<br />
svn commit -F svnmerge-commit-message.txt<br />
<br />
=== Blocking a revision to be merged ===<br />
Sometimes you want to block a revision to be merged, i.e. you want to make sure that this revision is never merged to the fixes branch, for example, because it contains a new feature or it contains a version number change not applicable to the fixes branch, but only to trunk. To block revision 36507, use:<br />
svn merge -c 36507 --record-only ^/trunk<br />
Then you can create a log message with:<br />
svn log ^/trunk -c 36507 > svnmerge-commit-message.txt<br />
Edit svnmerge-commit-message.txt with your favorite text editor and add first line like:<br />
Blocked revision 36507 from /trunk<br />
Then commit this change:<br />
svn commit -F svnmerge-commit-message.txt</div>
Paul Ishenin
https://wiki.freepascal.org/index.php?title=modified_LGPL&diff=61803
modified LGPL
2012-09-20T06:45:01Z
<p>Paul Ishenin: Created page with "Modified LGPL is the Library GNU General Public License with the following modification: As a special exception, the copyright holders of this library give you permission to ..."</p>
<hr />
<div>Modified LGPL is the Library GNU General Public License with the following modification:<br />
<br />
As a special exception, the copyright holders of this library give you<br />
permission to link this library with independent modules to produce an<br />
executable, regardless of the license terms of these independent modules,<br />
and to copy and distribute the resulting executable under terms of your choice,<br />
provided that you also meet, for each linked independent module, the terms<br />
and conditions of the license of that module. An independent module is a<br />
module which is not derived from or based on this library. If you modify this<br />
library, you may extend this exception to your version of the library, but<br />
you are not obligated to do so. If you do not wish to do so, delete this<br />
exception statement from your version.</div>
Paul Ishenin