TWT

Исключительно из-за любви к питону я набросал скрипт по имени 0xd34df00migator.py для 0хd34df00d // via #igqhi/4
Скрипт лежит в https://paste.kde.org/pm77wmmpj и выглядит вот так:

#-*- coding: utf-8  -*-
import os
xwords = [
    b'Q_DECLARE_METATYPE',
    b'Q_DECLARE_OPERATORS_FOR_FLAGS',
    b'Q_DECLARE_INTERFACE',
]
multilinexwords = [
    b'Q_DECLARE_INTERFACE',
]
for root, dirs, files in os.walk(".", topdown=False):
    for name in files:
        if name.endswith('.h'):
            fn = os.path.join(root, name)
            print(fn)
            with open(fn, 'rb') as f:
                content = f.readlines()
                newcontent = []
            prevline = b''
            for line in content:
                newline = line
                for xword in xwords:
                    if xword in line:
                        print(line)
                        if line.strip().endswith(b';'):
                            newline = line.replace(b';', b'')
                            break
                for xword in multilinexwords:
                    if xword in prevline:
                        print(prevline)
                        if line.strip().endswith(b';'):
                            newline = line.replace(b';', b'')
                            break
                newcontent.append(newline)
                prevline = line
            content = b''.join(newcontent)
            with open(fn, 'wb') as f:
                f.write(content)

Скрипт исправляет косяки в leechcraft и получается вот такой patch на 2.5к строк
(по ссылке https://paste.kde.org/p1jw4n9yw лежит полный git diff а здесь в посте только небольшой кусочек для красоты)

diff --git a/src/plugins/azoth/interfaces/azoth/imucperms.h b/src/plugins/azoth/interfaces/azoth/imucperms.h
index a9010be..2c47d4f 100644
--- a/src/plugins/azoth/interfaces/azoth/imucperms.h
+++ b/src/plugins/azoth/interfaces/azoth/imucperms.h
@@ -218,6 +218,6 @@ namespace Azoth
 }

 Q_DECLARE_INTERFACE (LeechCraft::Azoth::IMUCPerms,
-       "org.Deviant.LeechCraft.Azoth.IMUCPerms/1.0");
+       "org.Deviant.LeechCraft.Azoth.IMUCPerms/1.0")

 #endif
diff --git a/src/plugins/azoth/interfaces/azoth/imucprotocol.h b/src/plugins/azoth/interfaces/azoth/imucprotocol.h
index 89b1bb7..2133ea8 100644
--- a/src/plugins/azoth/interfaces/azoth/imucprotocol.h
+++ b/src/plugins/azoth/interfaces/azoth/imucprotocol.h
@@ -101,4 +101,4 @@ namespace Azoth
 }

 Q_DECLARE_INTERFACE (LeechCraft::Azoth::IMUCProtocol,
-       "org.Deviant.LeechCraft.Azoth.IMUCProtocol/1.0");
+       "org.Deviant.LeechCraft.Azoth.IMUCProtocol/1.0")
diff --git a/src/plugins/azoth/interfaces/azoth/iprotocol.h b/src/plugins/azoth/interfaces/azoth/iprotocol.h
index 9a990f9..e0094e3 100644
--- a/src/plugins/azoth/interfaces/azoth/iprotocol.h
+++ b/src/plugins/azoth/interfaces/azoth/iprotocol.h
@@ -255,7 +255,7 @@ namespace Azoth
 }
 }

-Q_DECLARE_METATYPE (LeechCraft::Azoth::IProtocol*);
-Q_DECLARE_OPERATORS_FOR_FLAGS (LeechCraft::Azoth::IProtocol::ProtocolFeatures);
+Q_DECLARE_METATYPE (LeechCraft::Azoth::IProtocol*)
+Q_DECLARE_OPERATORS_FOR_FLAGS (LeechCraft::Azoth::IProtocol::ProtocolFeatures)
 Q_DECLARE_INTERFACE (LeechCraft::Azoth::IProtocol,
-       "org.Deviant.LeechCraft.Azoth.IProtocol/1.0");
+       "org.Deviant.LeechCraft.Azoth.IProtocol/1.0")

Можно накатывать сразу патч на мастер, а можно запустить питон - смотря в какой вы ветке сейчас.
Если дедфуд не воспользуется этим всем и его личи будут по-прежнему срать в консоль ворнингами о лишних ';' то хуй тогда пойми, например.

P. S. Господа nicka и c-a-s-u-s посмотрите плиз, сможете ли вы на sed и awk это повторить