From 1f9e6dea8d07e08bd04a1fdac4e7de2409af39b1 Mon Sep 17 00:00:00 2001
From: Houtan Bastani <houtan@dynare.org>
Date: Thu, 4 Apr 2013 10:57:31 +0200
Subject: [PATCH] add strjoin to missing

---
 license.txt                      |  5 +++++
 matlab/dynare_config.m           |  5 +++++
 matlab/missing/strjoin/strjoin.m | 36 ++++++++++++++++++++++++++++++++
 3 files changed, 46 insertions(+)
 create mode 100644 matlab/missing/strjoin/strjoin.m

diff --git a/license.txt b/license.txt
index 2ee4d605f..ce6356598 100644
--- a/license.txt
+++ b/license.txt
@@ -68,6 +68,11 @@ Files: matlab/missing/bicgstab/bicgstab.m
 Copyright: 2008 Radek Salac
 License: GPL-3+
 
+Files: matlab/missing/strjoin/strjoin.m
+Copyright: 2007 Muthiah Annamalai <muthiah.annamalai@uta.edu>
+           2013 Dynare Team
+License: GPL-3+
+
 Files: doc/dynare.texi doc/*.tex doc/*.svg doc/*.dia doc/*.pdf doc/*.bib
 Copyright: 1996-2013 Dynare Team
 License: GFDL-NIV-1.3+
diff --git a/matlab/dynare_config.m b/matlab/dynare_config.m
index 6d77c52fb..68d720f4a 100644
--- a/matlab/dynare_config.m
+++ b/matlab/dynare_config.m
@@ -94,6 +94,11 @@ if exist('OCTAVE_VERSION') || matlab_ver_less_than('7.4')
     addpath([dynareroot '/missing/ilu'])
 end
 
+% strjoin is missing in older versions of MATLAB and in Octave
+if exist('OCTAVE_VERSION') || matlab_ver_less_than('8.1')
+    addpath([dynareroot '/missing/strjoin'])
+end
+
 % nanmean is in Octave Forge Statistics package and in MATLAB Statistics
 % toolbox
 if (exist('OCTAVE_VERSION') && ~user_has_octave_forge_package('statistics')) ...
diff --git a/matlab/missing/strjoin/strjoin.m b/matlab/missing/strjoin/strjoin.m
new file mode 100644
index 000000000..f14f42d4f
--- /dev/null
+++ b/matlab/missing/strjoin/strjoin.m
@@ -0,0 +1,36 @@
+function rval = strjoin (c, varargin)
+%function rval = strjoin (c, varargin)
+
+% Copyright (C) 2007 Muthiah Annamalai <muthiah.annamalai@uta.edu>
+% Copyright (C) 2013 Dynare Team
+%
+% This file is part of Dynare.
+%
+% Dynare is free software: you can redistribute it and/or modify
+% it under the terms of the GNU General Public License as published by
+% the Free Software Foundation, either version 3 of the License, or
+% (at your option) any later version.
+%
+% Dynare is distributed in the hope that it will be useful,
+% but WITHOUT ANY WARRANTY; without even the implied warranty of
+% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+% GNU General Public License for more details.
+%
+% You should have received a copy of the GNU General Public License
+% along with Dynare.  If not, see <http://www.gnu.org/licenses/>.
+
+assert(iscellstr(c), 'strjoin: first argument is a cell array of strings');
+assert(nargin <= 2, 'strjoin: takes one or two arguments');
+delimiter = ' ';
+if nargin == 2
+    delimiter = varargin{1};
+    assert(ischar(delimiter), 'strjoin: second argument must be a char');
+end
+
+rval = '';
+L = length(c);
+for idx = 1:(L-1)
+    rval = [rval c{idx} delimiter];
+end
+rval = [rval c{L}];
+end
-- 
GitLab