Check registry data type before assuming it's a string. Fixes issue #2127.

This commit is contained in:
Ansgar Becker
2010-08-17 16:59:08 +00:00
parent 54d0d91a9c
commit 3036f64a31

View File

@ -15,7 +15,7 @@ uses
SynEdit, SynEditTypes, SynEditKeyCmds, VirtualTrees, DateUtils, SynEdit, SynEditTypes, SynEditKeyCmds, VirtualTrees, DateUtils,
ShlObj, SynEditMiscClasses, SynEditSearch, SynEditRegexSearch, SynCompletionProposal, SynEditHighlighter, ShlObj, SynEditMiscClasses, SynEditSearch, SynEditRegexSearch, SynCompletionProposal, SynEditHighlighter,
SynHighlighterSQL, Tabs, SynUnicode, SynRegExpr, WideStrUtils, ExtActns, SynHighlighterSQL, Tabs, SynUnicode, SynRegExpr, WideStrUtils, ExtActns,
CommCtrl, Contnrs, Generics.Collections, SynEditExport, SynExportHTML, Math, ExtDlgs, CommCtrl, Contnrs, Generics.Collections, SynEditExport, SynExportHTML, Math, ExtDlgs, Registry,
routine_editor, trigger_editor, event_editor, options, EditVar, helpers, createdatabase, table_editor, routine_editor, trigger_editor, event_editor, options, EditVar, helpers, createdatabase, table_editor,
TableTools, View, Usermanager, SelectDBObject, connections, sqlhelp, mysql_connection, TableTools, View, Usermanager, SelectDBObject, connections, sqlhelp, mysql_connection,
mysql_api, insertfiles, searchreplace, loaddata, copytable, VTHeaderPopup; mysql_api, insertfiles, searchreplace, loaddata, copytable, VTHeaderPopup;
@ -8078,6 +8078,9 @@ begin
rx.Expression := '\s+'; rx.Expression := '\s+';
MainReg.GetValueNames(flt); MainReg.GetValueNames(flt);
for i := 0 to flt.Count - 1 do begin for i := 0 to flt.Count - 1 do begin
// Legacy releases seem to store some integers here
if MainReg.GetDataType(flt[i]) <> rdString then
continue;
item := TMenuItem.Create(popupFilter); item := TMenuItem.Create(popupFilter);
capt := MainReg.ReadString(flt[i]); capt := MainReg.ReadString(flt[i]);
capt := rx.Replace(capt, ' ', True); capt := rx.Replace(capt, ' ', True);