You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

80 lines
3.1 KiB

%CODEGENERATOR.REPLACEHEADER Replace autogenerated function headers by Toolbox-headers.
%
% CGen.replaceheader(HSTRUCT,FILENAME)
% HSTRUCT is the struct defining the contents of the header.
% FILENAME is the relative or full path to the file that has an autogenerated
% header to be replaced.
%
% Notes::
% The MatLab built-in function "matlabFunction" generates a standard
% header stub of 3 lines. This header is extended by the common
% toolbox-header. The contents of the header are coded in a struct that is
% the first input parameter and has the following self-explaining fields:
%
% Fieldname Datatype
% - funName 'string'
% - shortDescription 'string'
% - detailedDescription {'line1','line2',...}
% - inputs {'input1: description','input2: description',...}
% - outputs {'output1: description','output2: description',...}
% - examples {'line1','line2',...}
% - knownBugs {'line1','line2',...}
% - toDO {'line1','line2',...}
% - references {'line1','line2',...}
% - authors {'line1','line2',...}
% - seeAlso {'function1','function2',...}
%
% Authors::
% Joern Malzahn
% 2012 RST, Technische Universitaet Dortmund, Germany
% http://www.rst.e-technik.tu-dortmund.de
%
% See also matlabFunction, CodeGenerator.constructheaderstring.
% Copyright (C) 1993-2012, by Peter I. Corke
% Copyright (C) 2012-2013, by Joern Malzahn
%
% This file is part of The Robotics Toolbox for Matlab (RTB).
%
% RTB is free software: you can redistribute it and/or modify
% it under the terms of the GNU Lesser General Public License as published by
% the Free Software Foundation, either version 3 of the License, or
% (at your option) any later version.
%
% RTB 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 Lesser General Public License for more details.
%
% You should have received a copy of the GNU Leser General Public License
% along with RTB. If not, see <http://www.gnu.org/licenses/>.
%
% http://www.petercorke.com
%
% The code generation module emerged during the work on a project funded by
% the German Research Foundation (DFG, BE1569/7-1). The authors gratefully
% acknowledge the financial support.
function [] = replaceheader(CGen,hStruct,fileName)
%% Get the first three lines of the original file
threeLines = cell(1,3); % innitialize storage cell
fid = fopen(fileName,'r'); % open the file
threeLines{1} = fgetl(fid); % read the three lines
threeLines{2} = fgetl(fid);
threeLines{3} = fgetl(fid);
fclose(fid); % close the file
%% Delete old header
CGen.ffindreplace(fileName,threeLines{1},''); % Erase first line
CGen.ffindreplace(fileName,threeLines{2},''); % Erase second line
CGen.ffindreplace(fileName,threeLines{3},''); % Erase third line
%% Insert new header
hFString = CGen.constructheaderstring(hStruct);
CGen.finsertfront(fileName, sprintf([threeLines{1},'\n%s\n%s'],hFString,CGen.getpibugfixstring));
end