From 0fa45714dcc5f61ba4ea8d3af1aed0fd1ddb68e9 Mon Sep 17 00:00:00 2001
From: Basile Burg <basile.b@gmx.com>
Date: Sat, 29 Oct 2016 03:09:53 +0200
Subject: [PATCH] #97, custom commands can include symbolic strings

---
 src/ce_gdb.lfm | 2 +-
 src/ce_gdb.pas | 9 ++++++---
 2 files changed, 7 insertions(+), 4 deletions(-)

diff --git a/src/ce_gdb.lfm b/src/ce_gdb.lfm
index 0f9de9a4..a23c56a5 100644
--- a/src/ce_gdb.lfm
+++ b/src/ce_gdb.lfm
@@ -137,7 +137,7 @@ inherited CEGdbWidget: TCEGdbWidget
           AutoComplete = True
           AutoCompleteText = [cbactEnabled, cbactEndOfLineComplete, cbactSearchAscending]
           ItemHeight = 0
-          MaxLength = 64
+          MaxLength = 128
           OnKeyUp = Edit1KeyUp
           TabOrder = 0
         end
diff --git a/src/ce_gdb.pas b/src/ce_gdb.pas
index f996fe41..bbe08d3c 100644
--- a/src/ce_gdb.pas
+++ b/src/ce_gdb.pas
@@ -10,7 +10,7 @@ uses
   StdCtrls, ValEdit, process, fpjson, typinfo,
   ce_common, ce_interfaces, ce_widget, ce_processes, ce_observer, ce_synmemo,
   ce_sharedres, ce_stringrange, ce_dsgncontrols, ce_dialogs, ce_dbgitf,
-  ce_ddemangle, ce_writableComponent;
+  ce_ddemangle, ce_writableComponent, ce_symstring;
 
 type
 
@@ -356,6 +356,7 @@ type
     procedure setToolBarFlat(value: boolean); override;
     procedure updateLoop; override;
   private
+    fSyms: ICESymStringExpander;
     fExe: string;
     fOutputName: string;
     fShowFromCustomCommand: boolean;
@@ -844,6 +845,7 @@ begin
   inherited;
   EntitiesConnector.addObserver(self);
   EntitiesConnector.addSingleService(self);
+  fSyms := getSymStringExpander;
   fDocHandler:= getMultiDocHandler;
   fMsg:= getMessageDisplay;
   fFileLineBrks:= TStringList.Create;
@@ -2010,10 +2012,11 @@ begin
   cmd := edit1.Text;
   if cmd.isBlank or cmd.isEmpty then
     exit;
-  fShowFromCustomCommand := true;
-  gdbCommand(cmd, @gdboutJsonize);
   if edit1.Items.IndexOf(cmd) = -1 then
     edit1.Items.Add(cmd);
+  cmd := fSyms.expand(edit1.Text);
+  fShowFromCustomCommand := true;
+  gdbCommand(cmd, @gdboutJsonize);
   edit1.Text := '';
 end;