Matlab files extension is the same as ObjC, which is .m This makes clang-format think that those files are ObjC and then it wrongly formats them, leading to output that doesn't compile at all. It's a known issue and the solution is to disable it in Matlab files. I don't want to disable ObjC in whole folders, because of 2 reasons: 1) I want ObjC to be properly formatted if new files are added in the future 2) C++ header files are interpreted as ObjC and it will disable their formatting According to clang documentation (https://clang.llvm.org/docs/ClangFormatStyleOptions.html#disabling-formatting-on-a-piece-of-code), we can disable formatting inline. However, comments in Matlab are prefixed with `%` and not `//`, so I thought of a kinda hacky solution, which is `% // clang-format off`, and it works perfectly. No-Iwyu: Includes didn't change and it isn't related to formatting Bug: webrtc:42225392 Change-Id: I281462fd1aecd3ff0428e6ee974514ebabc696ec Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/374060 Reviewed-by: Danil Chapovalov <danilchap@webrtc.org> Reviewed-by: Harald Alvestrand <hta@webrtc.org> Commit-Queue: Harald Alvestrand <hta@webrtc.org> Cr-Commit-Position: refs/heads/main@{#43700}
56 lines
1.7 KiB
Matlab
56 lines
1.7 KiB
Matlab
% // clang-format off
|
|
function parsed = parseLog(filename)
|
|
%
|
|
% parsed = parseLog(filename)
|
|
% Parses a DataLog text file, with the filename specified in the string
|
|
% filename, into a struct with each column name as a field, and with the
|
|
% column data stored as a vector in that field.
|
|
%
|
|
% Arguments
|
|
%
|
|
% filename: A string with the name of the file to parse.
|
|
%
|
|
% Return value
|
|
%
|
|
% parsed: A struct containing each column parsed from the input file
|
|
% as a field and with the column data stored as a vector in that
|
|
% field.
|
|
%
|
|
|
|
% Copyright (c) 2011 The WebRTC project authors. All Rights Reserved.
|
|
%
|
|
% Use of this source code is governed by a BSD-style license
|
|
% that can be found in the LICENSE file in the root of the source
|
|
% tree. An additional intellectual property rights grant can be found
|
|
% in the file PATENTS. All contributing project authors may
|
|
% be found in the AUTHORS file in the root of the source tree.
|
|
|
|
table = importdata(filename, ',', 1);
|
|
if ~isstruct(table)
|
|
error('Malformed file, possibly empty or lacking data entries')
|
|
end
|
|
|
|
colheaders = table.textdata;
|
|
if length(colheaders) == 1
|
|
colheaders = regexp(table.textdata{1}, ',', 'split');
|
|
end
|
|
|
|
parsed = struct;
|
|
i = 1;
|
|
while i <= length(colheaders)
|
|
% Checking for a multi-value column.
|
|
m = regexp(colheaders{i}, '([\w\t]+)\[(\d+)\]', 'tokens');
|
|
if ~isempty(m)
|
|
% Parse a multi-value column
|
|
n = str2double(m{1}{2}) - 1;
|
|
parsed.(strrep(m{1}{1}, ' ', '_')) = table.data(:, i:i+n);
|
|
i = i + n + 1;
|
|
elseif ~isempty(colheaders{i})
|
|
% Parse a single-value column
|
|
parsed.(strrep(colheaders{i}, ' ', '_')) = table.data(:, i);
|
|
i = i + 1;
|
|
else
|
|
error('Empty column');
|
|
end
|
|
end
|