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($) ...@@ -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($) sub check_style($)
{ {
my ($h) = @_; my ($h) = @_;
...@@ -119,35 +131,25 @@ sub check_style($) ...@@ -119,35 +131,25 @@ sub check_style($)
# directory. # directory.
my $opt_lo = "/opt/lo/bin"; my $opt_lo = "/opt/lo/bin";
my $clang_format = "$opt_lo/clang-format"; 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}) foreach my $dir (split /:/, $ENV{PATH})
{ {
$clang_format = "$dir/clang-format"; $clang_format = "$dir/clang-format";
if (-x $clang_format) if (is_matching_clang_format_version($clang_format, $version))
{ {
last; 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. # Check if clang-format is installed.
if (! -x $clang_format) if (! -x $clang_format)
{ {
# As a first step, don't do any checks in this case. # As a first step, don't do any checks in this case.
return; return;
my $version = "r302580";
my $platform = "linux64"; my $platform = "linux64";
my $download = "wget"; my $download = "wget";
if ($^O eq "cygwin") if ($^O eq "cygwin")
...@@ -170,6 +172,16 @@ sub check_style($) ...@@ -170,6 +172,16 @@ sub check_style($)
exit(1); 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") if ($^O eq "cygwin")
{ {
$clang_format = `cygpath -m $clang_format`; $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) ...@@ -184,9 +184,10 @@ void Qt5Frame::SetTitle(const OUString& rTitle)
void Qt5Frame::SetIcon(sal_uInt16 nIcon) void Qt5Frame::SetIcon(sal_uInt16 nIcon)
{ {
if (m_nStyle & (SalFrameStyleFlags::PLUG | SalFrameStyleFlags::SYSTEMCHILD if (m_nStyle
| SalFrameStyleFlags::FLOAT | SalFrameStyleFlags::INTRO & (SalFrameStyleFlags::PLUG | SalFrameStyleFlags::SYSTEMCHILD
| SalFrameStyleFlags::OWNERDRAWDECORATION) | SalFrameStyleFlags::FLOAT | SalFrameStyleFlags::INTRO
| SalFrameStyleFlags::OWNERDRAWDECORATION)
|| !m_pQWidget->isWindow()) || !m_pQWidget->isWindow())
return; return;
...@@ -268,7 +269,7 @@ void Qt5Frame::SetPosSize(long nX, long nY, long nWidth, long nHeight, sal_uInt1 ...@@ -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)) if ((nFlags & (SAL_FRAME_POSSIZE_WIDTH | SAL_FRAME_POSSIZE_HEIGHT))
&& (nWidth > 0 && nHeight > 0) // sometimes stupid things happen && (nWidth > 0 && nHeight > 0) // sometimes stupid things happen
) )
{ {
m_bDefaultSize = false; m_bDefaultSize = false;
if (isChild(false) || !m_pQWidget->isMaximized()) if (isChild(false) || !m_pQWidget->isMaximized())
...@@ -332,8 +333,9 @@ void Qt5Frame::SetWindowState(const SalFrameState* pState) ...@@ -332,8 +333,9 @@ void Qt5Frame::SetWindowState(const SalFrameState* pState)
if ((pState->mnMask & WindowStateMask::State) && (pState->mnState & WindowStateState::Maximized) if ((pState->mnMask & WindowStateMask::State) && (pState->mnState & WindowStateState::Maximized)
&& (pState->mnMask & nMaxGeometryMask) == nMaxGeometryMask) && (pState->mnMask & nMaxGeometryMask) == nMaxGeometryMask)
m_pQWidget->showMaximized(); m_pQWidget->showMaximized();
else if (pState->mnMask & (WindowStateMask::X | WindowStateMask::Y | WindowStateMask::Width else if (pState->mnMask
| WindowStateMask::Height)) & (WindowStateMask::X | WindowStateMask::Y | WindowStateMask::Width
| WindowStateMask::Height))
{ {
sal_uInt16 nPosSizeFlags = 0; sal_uInt16 nPosSizeFlags = 0;
QPoint aPos = m_pQWidget->pos(); QPoint aPos = m_pQWidget->pos();
......
...@@ -56,7 +56,8 @@ static int tst_excludePostedEvents() ...@@ -56,7 +56,8 @@ static int tst_excludePostedEvents()
TestExcludePostedEvents test; TestExcludePostedEvents test;
QCoreApplication::postEvent(&test, new QEvent(eventType)); QCoreApplication::postEvent(&test, new QEvent(eventType));
QEventLoop loop; QEventLoop loop;
loop.processEvents(QEventLoop::ExcludeUserInputEvents | QEventLoop::ExcludeSocketNotifiers loop.processEvents(QEventLoop::ExcludeUserInputEvents
| QEventLoop::ExcludeSocketNotifiers
// | QEventLoop::WaitForMoreEvents // | QEventLoop::WaitForMoreEvents
| QEventLoop::X11ExcludeTimers); | QEventLoop::X11ExcludeTimers);
QVERIFY(!test.processed); 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