[diffStruct,data1,data2] = compareFigFiles(figFilename1, figFilename2)
compareFigFiles compares *.fig files, reporting internal components and properties that are different between corresponding fig files.
Inputs can be either a figure filename or folder name. When a folder name is specified, then all the corresponding fig file(s) in that folder will be compared to the other folder/file. Note: when one of the inputs is a folder, then only files that have the same name will be compared.
compareFigFiles(folderOrFilename) compares the specified input to the current folder (pwd).
[diffStruct,data1,data2] = compareFigFiles(file1,file2) returns a Matlab struct containing the non-matching components/properties. Each of the struct fields corresponds to a specific figure handle and property name, and contains a cell array of 2 values, for each of the compared files. data1 and data2 contain the raw data used for the comparison - a Matlab struct with fields corresponding to each of the components/properties defined in the fig file (see attached screenshot).
compareFigFiles('C:\Yair',pwd); % compares corresponding fig files in 2 folders
compareFigFiles('C:\Yair'); % (same as above)
compareFigFiles('myApp', 'hisApp'); % compare 2 FIG files
compareFigFiles('myApp.fig','hisApp.fig'); % (same as above)
compareFigFiles('C:\Yair\myApp'); % compare C:\Yair\myApp.fig to (pwd)\myApp.fig
compareFigFiles('C:\Yair\myApp',pwd); % (same as above)
compareFigFiles(pwd,'C:\Yair\myApp'); % (same as above)
Bugs and suggestions:
Please send to Yair Altman (altmany at gmail dot com)
Fixed certain edge-cases; added support for savefig(...,'compact') mode