From 4e2305f14628d426d081919b35acec07cac061dd Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?D=C3=B3ra=20Kocsis?= <dora@dynare.org>
Date: Thu, 27 Feb 2020 11:47:17 +0100
Subject: [PATCH] fix bug in mapping nested options in set_command_option

---
 src/+gui_auxiliary/set_command_option.m | 16 ++++++++++++----
 1 file changed, 12 insertions(+), 4 deletions(-)

diff --git a/src/+gui_auxiliary/set_command_option.m b/src/+gui_auxiliary/set_command_option.m
index 77745f7..3c69a46 100644
--- a/src/+gui_auxiliary/set_command_option.m
+++ b/src/+gui_auxiliary/set_command_option.m
@@ -102,11 +102,11 @@ try
             
         case 'mcmc_jumping_covariance'
             if value == 2
-                options_.(gui_auxiliary.command_option_mapping(name)) = 'prior_variance';
+                eval(['options_.' gui_auxiliary.command_option_mapping(name) 'prior_variance;']);
             elseif value == 3
-                options_.(gui_auxiliary.command_option_mapping(name)) = 'identity_matrix';
+                eval(['options_.' gui_auxiliary.command_option_mapping(name) 'identity_matrix;']);
             elseif value == 4
-                options_.(gui_auxiliary.command_option_mapping(name)) = 'FILENAME';
+                eval(['options_.' gui_auxiliary.command_option_mapping(name) 'FILENAME;']);
             end
             
         case 'mcmc_jumping_covariance_file'
@@ -114,8 +114,16 @@ try
                 options_.MCMC_jumping_covariance = strrep(value, '.mat', '');
             end
             
+        case 'mh_recover'
+            options_.mh_recover = logical(value);
+
         otherwise
-            options_.(gui_auxiliary.command_option_mapping(name)) = value;
+            if isnumeric(value)
+                eval(['options_.' gui_auxiliary.command_option_mapping(name) '=' num2str(value) ';']);
+            else
+                eval_expr = sprintf("options_.%s='%s';", gui_auxiliary.command_option_mapping(name), value);
+                eval(eval_expr);
+            end
     end
 catch
     status = 0;
-- 
GitLab