Added full ini and environment var replacement to halcmd. This applies to both command-line and interactive/file input Substitution is performed on the full command line before parsing
Added full ini and environment var replacement to halcmd.
This applies to both command-line and interactive/file input
Substitution is performed on the full command line before parsing

There are two formats for environment variables:
$envvar
$(envvar)

Similar for ini vars:
[section]variable
[section](variable)

The parenthesized versions allow variables to not be separated by whitespace:
if FOO = "baz", then $(FOO).bar will be expanded to "baz.bar"

araisrobo/machinekit,Cid427/machinekit,bobvanderlinden/machinekit,aschiffler/linuxcnc,ArcEye/MK-Qt5,cdsteinkuehler/linuxcnc,bmwiedemann/linuxcnc-mirror,kinsamanka/machinekit,bmwiedemann/linuxcnc-mirror,cnc-club/linuxcnc,unseenlaser/machinekit,bmwiedemann/linuxcnc-mirror,bmwiedemann/linuxcnc-mirror,bobvanderlinden/machinekit,kinsamanka/machinekit,Cid427/machinekit,ArcEye/machinekit-testing,strahlex/machinekit,cdsteinkuehler/MachineKit,EqAfrica/machinekit,narogon/linuxcnc,mhaberler/machinekit,araisrobo/machinekit,strahlex/machinekit,strahlex/machinekit,cnc-club/linuxcnc,ianmcmahon/linuxcnc-mirror,ArcEye/machinekit-testing,ArcEye/MK-Qt5,cnc-club/linuxcnc,bmwiedemann/linuxcnc-mirror,ianmcmahon/linuxcnc-mirror,RunningLight/machinekit,cdsteinkuehler/linuxcnc,ikcalB/linuxcnc-mirror,aschiffler/linuxcnc,mhaberler/machinekit,RunningLight/machinekit,Cid427/machinekit,ianmcmahon/linuxcnc-mirror,ianmcmahon/linuxcnc-mirror,EqAfrica/machinekit,bobvanderlinden/machinekit,araisrobo/machinekit,RunningLight/machinekit,ikcalB/linuxcnc-mirror,ArcEye/MK-Qt5,kinsamanka/machinekit,unseenlaser/linuxcnc,narogon/linuxcnc,araisrobo/machinekit,unseenlaser/machinekit,ArcEye/machinekit-testing,aschiffler/linuxcnc,ikcalB/linuxcnc-mirror,kinsamanka/machinekit,mhaberler/machinekit,unseenlaser/linuxcnc,cnc-club/linuxcnc,mhaberler/machinekit,yishinli/emc2,ianmcmahon/linuxcnc-mirror,RunningLight/machinekit,araisrobo/machinekit,jaguarcat79/ILC-with-LinuxCNC,EqAfrica/machinekit,unseenlaser/machinekit,yishinli/emc2,araisrobo/linuxcnc,cnc-club/linuxcnc,jaguarcat79/ILC-with-LinuxCNC,bobvanderlinden/machinekit,cdsteinkuehler/linuxcnc,cdsteinkuehler/linuxcnc,aschiffler/linuxcnc,unseenlaser/linuxcnc,Cid427/machinekit,yishinli/emc2,araisrobo/machinekit,EqAfrica/machinekit,cnc-club/linuxcnc,Cid427/machinekit,kinsamanka/machinekit,mhaberler/machinekit,unseenlaser/linuxcnc,narogon/linuxcnc,araisrobo/machinekit,bobvanderlinden/machinekit,araisrobo/linuxcnc,cnc-club/linuxcnc,ikcalB/linuxcnc-mirror,cdsteinkuehler/MachineKit,cdsteinkuehler/MachineKit,araisrobo/linuxcnc,ArcEye/machinekit-testing,ianmcmahon/linuxcnc-mirror,cdsteinkuehler/linuxcnc,mhaberler/machinekit,mhaberler/machinekit,narogon/linuxcnc,cdsteinkuehler/MachineKit,unseenlaser/machinekit,ArcEye/MK-Qt5,cdsteinkuehler/MachineKit,araisrobo/linuxcnc,ikcalB/linuxcnc-mirror,EqAfrica/machinekit,bmwiedemann/linuxcnc-mirror,ArcEye/MK-Qt5,yishinli/emc2,ArcEye/machinekit-testing,strahlex/machinekit,ArcEye/machinekit-testing,cdsteinkuehler/MachineKit,araisrobo/machinekit,unseenlaser/machinekit,strahlex/machinekit,ArcEye/MK-Qt5,mhaberler/machinekit,RunningLight/machinekit,Cid427/machinekit,bobvanderlinden/machinekit,unseenlaser/machinekit,Cid427/machinekit,araisrobo/machinekit,kinsamanka/machinekit,bmwiedemann/linuxcnc-mirror,jaguarcat79/ILC-with-LinuxCNC,unseenlaser/linuxcnc,ikcalB/linuxcnc-mirror,strahlex/machinekit,cdsteinkuehler/linuxcnc,kinsamanka/machinekit,RunningLight/machinekit,bobvanderlinden/machinekit,ArcEye/MK-Qt5,EqAfrica/machinekit,aschiffler/linuxcnc,strahlex/machinekit,ikcalB/linuxcnc-mirror,ianmcmahon/linuxcnc-mirror,ArcEye/machinekit-testing,bobvanderlinden/machinekit,Cid427/machinekit,RunningLight/machinekit,araisrobo/linuxcnc,unseenlaser/machinekit,unseenlaser/machinekit,ArcEye/machinekit-testing,RunningLight/machinekit,EqAfrica/machinekit,jaguarcat79/ILC-with-LinuxCNC,jaguarcat79/ILC-with-LinuxCNC,EqAfrica/machinekit,kinsamanka/machinekit,ArcEye/MK-Qt5,narogon/linuxcnc