Kaydet (Commit) 53e13b25 authored tarafından Miklos Vajna's avatar Miklos Vajna

clang-format: standardize on 5.0.0

Restrict the git hook further to only enforce style in case the found
clang-format binary's version matches to avoid output differences with
different clang-format version.

While at it, move the blacklist reading after the version check to speed
up committing a bit when no local enforcement happens.

Also add a simple script to list formatted files, since the blacklist is
large enough that doing it naively from the shell is too slow.

Change-Id: I0bc05961d262cc6bc91c6efdd1b91994ecfc6940
Reviewed-on: https://gerrit.libreoffice.org/44662Reviewed-by: 's avatarMiklos Vajna <vmiklos@collabora.co.uk>
Tested-by: 's avatarJenkins <ci@libreoffice.org>
üst 70fa6191
......@@ -108,6 +108,18 @@ sub check_whitespaces($)
}
}
# Is this binary the version we standardize on?
sub is_matching_clang_format_version($$)
{
my ($clang_format, $version) = @_;
if (! -x $clang_format)
{
return 0;
}
return `$clang_format -version` =~ /^clang-format version $version \(tags/;
}
sub check_style($)
{
my ($h) = @_;
......@@ -119,35 +131,25 @@ sub check_style($)
# directory.
my $opt_lo = "/opt/lo/bin";
my $clang_format = "$opt_lo/clang-format";
if (! -x $clang_format)
my $version = "5.0.0";
if (!is_matching_clang_format_version($clang_format, $version))
{
foreach my $dir (split /:/, $ENV{PATH})
{
$clang_format = "$dir/clang-format";
if (-x $clang_format)
if (is_matching_clang_format_version($clang_format, $version))
{
last;
}
}
}
# Read the blacklist.
if (open(LINES, "solenv/clang-format/blacklist"))
{
while (my $line = <LINES>)
{
chomp $line;
$blacklist_names{$line} = 1;
}
}
# Check if clang-format is installed.
if (! -x $clang_format)
{
# As a first step, don't do any checks in this case.
return;
my $version = "r302580";
my $platform = "linux64";
my $download = "wget";
if ($^O eq "cygwin")
......@@ -170,6 +172,16 @@ sub check_style($)
exit(1);
}
# Read the blacklist.
if (open(LINES, "solenv/clang-format/blacklist"))
{
while (my $line = <LINES>)
{
chomp $line;
$blacklist_names{$line} = 1;
}
}
if ($^O eq "cygwin")
{
$clang_format = `cygpath -m $clang_format`;
......
#!/usr/bin/env perl
# Lists source files which are not blacklisted. This is interesting if the
# clang-format version or config changes. To trigger a reformat in that case,
# you can do:
#
# clang-format -i $(solenv/clang-format/list-formatted-files)
sub check_style()
{
my $src = "c|cpp|cxx|h|hxx|inl";
my %blacklist_names = ();
# Read the blacklist.
if (open(LINES, "solenv/clang-format/blacklist"))
{
while (my $line = <LINES>)
{
chomp $line;
$blacklist_names{$line} = 1;
}
}
# Get a list of files.
open (FILES, "git ls-files |") || die "Cannot run git ls-files.";
while (my $filename = <FILES>)
{
chomp $filename;
if ($filename =~ /\.($src)$/ and !exists($blacklist_names{$filename}))
{
print($filename . "\n");
}
}
}
check_style();
exit(0);
# vim: set shiftwidth=4 softtabstop=4 expandtab:
......@@ -184,9 +184,10 @@ void Qt5Frame::SetTitle(const OUString& rTitle)
void Qt5Frame::SetIcon(sal_uInt16 nIcon)
{
if (m_nStyle & (SalFrameStyleFlags::PLUG | SalFrameStyleFlags::SYSTEMCHILD
| SalFrameStyleFlags::FLOAT | SalFrameStyleFlags::INTRO
| SalFrameStyleFlags::OWNERDRAWDECORATION)
if (m_nStyle
& (SalFrameStyleFlags::PLUG | SalFrameStyleFlags::SYSTEMCHILD
| SalFrameStyleFlags::FLOAT | SalFrameStyleFlags::INTRO
| SalFrameStyleFlags::OWNERDRAWDECORATION)
|| !m_pQWidget->isWindow())
return;
......@@ -268,7 +269,7 @@ void Qt5Frame::SetPosSize(long nX, long nY, long nWidth, long nHeight, sal_uInt1
if ((nFlags & (SAL_FRAME_POSSIZE_WIDTH | SAL_FRAME_POSSIZE_HEIGHT))
&& (nWidth > 0 && nHeight > 0) // sometimes stupid things happen
)
)
{
m_bDefaultSize = false;
if (isChild(false) || !m_pQWidget->isMaximized())
......@@ -332,8 +333,9 @@ void Qt5Frame::SetWindowState(const SalFrameState* pState)
if ((pState->mnMask & WindowStateMask::State) && (pState->mnState & WindowStateState::Maximized)
&& (pState->mnMask & nMaxGeometryMask) == nMaxGeometryMask)
m_pQWidget->showMaximized();
else if (pState->mnMask & (WindowStateMask::X | WindowStateMask::Y | WindowStateMask::Width
| WindowStateMask::Height))
else if (pState->mnMask
& (WindowStateMask::X | WindowStateMask::Y | WindowStateMask::Width
| WindowStateMask::Height))
{
sal_uInt16 nPosSizeFlags = 0;
QPoint aPos = m_pQWidget->pos();
......
......@@ -56,7 +56,8 @@ static int tst_excludePostedEvents()
TestExcludePostedEvents test;
QCoreApplication::postEvent(&test, new QEvent(eventType));
QEventLoop loop;
loop.processEvents(QEventLoop::ExcludeUserInputEvents | QEventLoop::ExcludeSocketNotifiers
loop.processEvents(QEventLoop::ExcludeUserInputEvents
| QEventLoop::ExcludeSocketNotifiers
// | QEventLoop::WaitForMoreEvents
| QEventLoop::X11ExcludeTimers);
QVERIFY(!test.processed);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment