diff options
-rw-r--r-- | CHANGES | 83 | ||||
m--------- | celt | 0 | ||||
-rw-r--r-- | celtbuild/custom_support.h | 2 | ||||
-rw-r--r-- | speexbuild/os_support_custom.h | 2 | ||||
-rw-r--r-- | src/Channel.cpp | 6 | ||||
-rw-r--r-- | src/mumble/ConfigDialogDelegate.h | 56 | ||||
-rw-r--r-- | src/mumble/CrashReporter.cpp | 6 | ||||
-rw-r--r-- | src/mumble/CrashReporter.h | 32 | ||||
-rw-r--r-- | src/mumble/GlobalShortcut_unix.cpp | 86 | ||||
-rw-r--r-- | src/mumble/GlobalShortcut_unix.h | 6 | ||||
-rw-r--r-- | src/mumble/MainWindow.cpp | 18 | ||||
-rw-r--r-- | src/mumble/Messages.cpp | 3 | ||||
-rw-r--r-- | src/mumble/os_macx.cpp | 12 | ||||
-rw-r--r-- | src/mumble/os_win.cpp | 2 | ||||
-rw-r--r-- | src/murmur/Messages.cpp | 12 | ||||
-rw-r--r-- | src/murmur/Meta.cpp | 16 | ||||
-rw-r--r-- | src/murmur/Server.cpp | 6 | ||||
-rw-r--r-- | src/murmur/murmur_pch.h | 2 |
18 files changed, 223 insertions, 127 deletions
@@ -1,3 +1,86 @@ +2009-07-31 + Mikkel Krautz <mikkel@krautz.dk> + e923c0d Add CrashReporter. Generate minidumps on Win32 and report them + via CrashReporter. + + Thorvald Natvig <slicer@users.sourceforge.net> + 01cf723 Allow to add email/comment on crash + a2812c4 Compile without bonjour + 16a44d9 Use basepath in minidumpwrite, and add some comments and a + progress bar + 7530b91 Global qdBasePath + +2009-07-30 + Thorvald Natvig <slicer@users.sourceforge.net> + b30efc5 Explicitly remove output buffers when clients disconnect + 8cec38e Updated release scripts for new files and paths + b5b94c0 http://support.microsoft.com/kb/971092 + 6991334 Replace XEViE with XInput + +2009-07-29 + Thorvald Natvig <slicer@users.sourceforge.net> + 1141eee Autoexpand usermodel on hover, and use QStyledItemDelegate + +2009-07-28 + Thorvald Natvig <slicer@users.sourceforge.net> + 113a294 Fix a few compiler warnings + +2009-07-27 + Thorvald Natvig <slicer@users.sourceforge.net> + d0690b8 Use local copy of manifest/cat for vc90.crt + f2c804a Disable LTCG also for new Intel versions + +2009-07-26 + Thorvald Natvig <slicer@users.sourceforge.net> + 2082b4b Compile with Intel C++ 11.1 + +2009-07-25 + Stefan Hacker <dd0t@users.sourceforge.net> + 65a0f65 Make the fix actually work. + 144c631 Fix argument injection. + +2009-07-24 + Thorvald Natvig <slicer@users.sourceforge.net> + 5893adc With the data column, there's now 4 columns for the shortcut + editor + 9e25322 Use new QColorDialog::getColor for alpha-editing for overlay + colors + e2ebe02 Raw Message => Disable formatting + +2009-07-23 + Mikkel Krautz <mikkel@krautz.dk> + f67a93a Add CELT and Speex fatal error handling for Mac OS X. + +2009-07-22 + Mikkel Krautz <mikkel@krautz.dk> + 4eac398 Memory management fixes for ConfigDialogDelegate. + +2009-07-21 + Mikkel Krautz <mikkel@krautz.dk> + 2b96f33 Native-feeling ConfigDialog for Mac OS X. + + Thorvald Natvig <slicer@users.sourceforge.net> + 057df90 Default-ACL for @all shows default deny as well as default + allow + fe47903 Show suppress state in client + +2009-07-20 + Mikkel Krautz <mikkel@krautz.dk> + 1ef334b Disable GlobalShortcutMac for debug builds. + + Thorvald Natvig <slicer@users.sourceforge.net> + f1ec2d8 Use translated section strings + d095fd9 Allow SuperUser to move self + +2009-07-19 + Stefan Hacker <dd0t@users.sourceforge.net> + d3c9806 Channel sorting. + d552f0b Fix comment save + + Thorvald Natvig <slicer@users.sourceforge.net> + 9510ab8 Always initialize qtTimeout + 5a41af1 Don't bind to IPv6 if no interfaces has a v6 address + 2009-07-18 Stefan Hacker <dd0t@users.sourceforge.net> 0e1b3f3 Improve forced shutdown behavior diff --git a/celt b/celt -Subproject 8ccf148573277b983692e15d5f0753081f806be +Subproject 91f07dc125247a422c186edbebc05f54380b2db diff --git a/celtbuild/custom_support.h b/celtbuild/custom_support.h index d4e236d90..25882f9f3 100644 --- a/celtbuild/custom_support.h +++ b/celtbuild/custom_support.h @@ -17,7 +17,7 @@ static inline void _celt_fatal(const char *str, const char *file, int line) { mumble_macx_celt_fatal(str, file, line); } - + #endif /* __APPLE__ */ #endif /* _CELT_SUPPORT_MUMBLE */ diff --git a/speexbuild/os_support_custom.h b/speexbuild/os_support_custom.h index 33cebfab4..37bfe876c 100644 --- a/speexbuild/os_support_custom.h +++ b/speexbuild/os_support_custom.h @@ -17,7 +17,7 @@ static inline void _speex_fatal(const char *str, const char *file, int line) { mumble_macx_speex_fatal(str, file, line); } - + #endif /* __APPLE__ */ #endif /* _SPEEX_SUPPORT_MUMBLE */ diff --git a/src/Channel.cpp b/src/Channel.cpp index 40f4cdd12..d87b726d8 100644 --- a/src/Channel.cpp +++ b/src/Channel.cpp @@ -187,7 +187,7 @@ void Channel::removeUser(User *p) { Channel::operator const QString() const { return QString::fromLatin1("%1[%2:%3%4]").arg(qsName, - QString::number(iId), - QString::number(cParent ? cParent->iId : -1), - bTemporary ? QLatin1String("*") : QLatin1String("")); + QString::number(iId), + QString::number(cParent ? cParent->iId : -1), + bTemporary ? QLatin1String("*") : QLatin1String("")); } diff --git a/src/mumble/ConfigDialogDelegate.h b/src/mumble/ConfigDialogDelegate.h index 32efb8cbc..86c465a78 100644 --- a/src/mumble/ConfigDialogDelegate.h +++ b/src/mumble/ConfigDialogDelegate.h @@ -38,30 +38,44 @@ @class NSToolbarItem; @interface ConfigDialogDelegate : NSObject { - ConfigDialog *configDialog; - QMap<unsigned int, ConfigWidget *> *widgetMap; + ConfigDialog *configDialog; + QMap<unsigned int, ConfigWidget *> *widgetMap; - BOOL inExpertMode; - NSMutableDictionary *nameWidgetMapping; - NSMutableArray *identifiers; - NSToolbar *toolbarCache; + BOOL inExpertMode; + NSMutableDictionary *nameWidgetMapping; + NSMutableArray *identifiers; + NSToolbar *toolbarCache; } -- (id) initWithConfigDialog: (ConfigDialog *)dialog andWidgetMap:(QMap<unsigned int, ConfigWidget *> *) map inExpertMode:(BOOL)flag; - -- (NSArray *) toolbarAllowedItemIdentifiers: (NSToolbar *)toolbar; -- (NSArray *) toolbarDefaultItemIdentifiers: (NSToolbar *)toolbar; -- (NSArray *) toolbarSelectableItemIdentifiers: (NSToolbar *)toolbar; - -- (void) toolbarWillAddItem: (NSNotification*)notification; -- (void) toolbarDidRemoveItem: (NSNotification *)notification; - -- (NSToolbarItem *) toolbar: (NSToolbar *)toolbar itemForItemIdentifier: (NSString *)identifier willBeInsertedIntoToolbar:(BOOL)flag; - -- (BOOL) validateToolbarItem: (NSToolbarItem *)toolbarItem; - -- (void) selectItem: (ConfigWidget *)cw; -- (void) itemSelected: (NSToolbarItem *)toolbarItem; +- (id) initWithConfigDialog: +(ConfigDialog *)dialog andWidgetMap: +(QMap<unsigned int, ConfigWidget *> *) map inExpertMode: +(BOOL)flag; + +- (NSArray *) toolbarAllowedItemIdentifiers: +(NSToolbar *)toolbar; +- (NSArray *) toolbarDefaultItemIdentifiers: +(NSToolbar *)toolbar; +- (NSArray *) toolbarSelectableItemIdentifiers: +(NSToolbar *)toolbar; + +- (void) toolbarWillAddItem: +(NSNotification*)notification; +- (void) toolbarDidRemoveItem: +(NSNotification *)notification; + +- (NSToolbarItem *) toolbar: +(NSToolbar *)toolbar itemForItemIdentifier: +(NSString *)identifier willBeInsertedIntoToolbar: +(BOOL)flag; + +- (BOOL) validateToolbarItem: +(NSToolbarItem *)toolbarItem; + +- (void) selectItem: +(ConfigWidget *)cw; +- (void) itemSelected: +(NSToolbarItem *)toolbarItem; @end diff --git a/src/mumble/CrashReporter.cpp b/src/mumble/CrashReporter.cpp index 915740fb7..c60332f65 100644 --- a/src/mumble/CrashReporter.cpp +++ b/src/mumble/CrashReporter.cpp @@ -40,7 +40,7 @@ CrashReporter::CrashReporter(QWidget *p) : QDialog(p) { QLabel *l; l = new QLabel(tr("<p><b>We're terribly sorry, but it seems Mumble has crashed. Do you want to send a crash report to the Mumble developers?</b></p>" - "<p>The crash report contains a partial copy of Mumble's memory at the time it crashed, and will help the developers fix the problem.</p>")); + "<p>The crash report contains a partial copy of Mumble's memory at the time it crashed, and will help the developers fix the problem.</p>")); vbl->addWidget(l); @@ -70,8 +70,8 @@ CrashReporter::CrashReporter(QWidget *p) : QDialog(p) { QDialogButtonBox *dbb = new QDialogButtonBox(Qt::Horizontal); dbb->addButton(pbOk, QDialogButtonBox::AcceptRole); dbb->addButton(pbCancel, QDialogButtonBox::RejectRole); - connect(dbb, SIGNAL(accepted()), this, SLOT(accept())); - connect(dbb, SIGNAL(rejected()), this, SLOT(reject())); + connect(dbb, SIGNAL(accepted()), this, SLOT(accept())); + connect(dbb, SIGNAL(rejected()), this, SLOT(reject())); vbl->addWidget(dbb); qelLoop = new QEventLoop(this); diff --git a/src/mumble/CrashReporter.h b/src/mumble/CrashReporter.h index 98d4b4923..1565a8d63 100644 --- a/src/mumble/CrashReporter.h +++ b/src/mumble/CrashReporter.h @@ -34,22 +34,22 @@ #include "mumble_pch.hpp" class CrashReporter : QDialog { - Q_OBJECT - Q_DISABLE_COPY(CrashReporter) - -public: - CrashReporter(QWidget *p = 0); - ~CrashReporter(); - void run(); -protected: - QEventLoop *qelLoop; - QProgressDialog *qpdProgress; - QNetworkReply *qnrReply; - QLineEdit *qleEmail; - QTextEdit *qteDescription; -public slots: - void uploadFinished(); - void uploadProgress(qint64, qint64); + Q_OBJECT + Q_DISABLE_COPY(CrashReporter) + + public: + CrashReporter(QWidget *p = 0); + ~CrashReporter(); + void run(); + protected: + QEventLoop *qelLoop; + QProgressDialog *qpdProgress; + QNetworkReply *qnrReply; + QLineEdit *qleEmail; + QTextEdit *qteDescription; + public slots: + void uploadFinished(); + void uploadProgress(qint64, qint64); }; #else diff --git a/src/mumble/GlobalShortcut_unix.cpp b/src/mumble/GlobalShortcut_unix.cpp index c4fa6711e..a4774fb9f 100644 --- a/src/mumble/GlobalShortcut_unix.cpp +++ b/src/mumble/GlobalShortcut_unix.cpp @@ -39,7 +39,7 @@ GlobalShortcutX::GlobalShortcutX() { bXInput = false; display = NULL; - + iKeyPress = iKeyRelease = iButtonPress = iButtonRelease = -1; #ifdef Q_OS_LINUX @@ -89,28 +89,28 @@ GlobalShortcutX::GlobalShortcutX() { GlobalShortcutX::~GlobalShortcutX() { bRunning = false; wait(); - foreach(XDevice *dev, qmXDevices) + foreach(XDevice *dev, qmXDevices) XCloseDevice(display, dev); if (display) XCloseDisplay(display); } void GlobalShortcutX::initXInput() { - foreach(XDevice *dev, qmXDevices) + foreach(XDevice *dev, qmXDevices) XCloseDevice(display, dev); - + qmXDevices.clear(); int numdev; XDeviceInfo *infolist = XListInputDevices(display, &numdev); if (! infolist) return; - for(int i=0;i<numdev;++i) { + for (int i=0;i<numdev;++i) { XDeviceInfo *info = infolist + i; XDevice *dev = XOpenDevice(display, info->id); if (dev) { bool key = false, button = false; - for(int j=0;j<dev->num_classes;++j) { + for (int j=0;j<dev->num_classes;++j) { XInputClassInfo *ici = dev->classes + j; key = key || (ici->input_class == KeyClass); button = button || (ici->input_class == ButtonClass); @@ -143,46 +143,46 @@ void GlobalShortcutX::initXInput() { } void GlobalShortcutX::run() { - Window root = XDefaultRootWindow(display); - Window root_ret, child_ret; - int root_x, root_y; - int win_x, win_y; - unsigned int mask[2]; - int idx = 0; - int next = 0; - char keys[2][32]; - - memset(keys[0], 0, 32); - memset(keys[1], 0, 32); - mask[0] = mask[1] = 0; - - while (bRunning) { - if (bNeedRemap) - remap(); - - msleep(10); - - idx = next; - next = idx ^ 1; - if (XQueryPointer(display, root, &root_ret, &child_ret, &root_x, &root_y, &win_x, &win_y, &mask[next]) && XQueryKeymap(display, keys[next])) { - for (int i=0;i<256;++i) { - int index = i / 8; - int keymask = 1 << (i % 8); - bool oldstate = (keys[idx][index] & keymask) != 0; - bool newstate = (keys[next][index] & keymask) != 0; - if (oldstate != newstate) { - handleButton(i, newstate); - } + Window root = XDefaultRootWindow(display); + Window root_ret, child_ret; + int root_x, root_y; + int win_x, win_y; + unsigned int mask[2]; + int idx = 0; + int next = 0; + char keys[2][32]; + + memset(keys[0], 0, 32); + memset(keys[1], 0, 32); + mask[0] = mask[1] = 0; + + while (bRunning) { + if (bNeedRemap) + remap(); + + msleep(10); + + idx = next; + next = idx ^ 1; + if (XQueryPointer(display, root, &root_ret, &child_ret, &root_x, &root_y, &win_x, &win_y, &mask[next]) && XQueryKeymap(display, keys[next])) { + for (int i=0;i<256;++i) { + int index = i / 8; + int keymask = 1 << (i % 8); + bool oldstate = (keys[idx][index] & keymask) != 0; + bool newstate = (keys[next][index] & keymask) != 0; + if (oldstate != newstate) { + handleButton(i, newstate); } - for (int i=8;i<=12;++i) { - bool oldstate = (mask[idx] & (1 << i)) != 0; - bool newstate = (mask[next] & (1 << i)) != 0; - if (oldstate != newstate) { - handleButton(0x110 + i, newstate); - } + } + for (int i=8;i<=12;++i) { + bool oldstate = (mask[idx] & (1 << i)) != 0; + bool newstate = (mask[next] & (1 << i)) != 0; + if (oldstate != newstate) { + handleButton(0x110 + i, newstate); } } } + } } void GlobalShortcutX::displayReadyRead(int) { @@ -190,7 +190,7 @@ void GlobalShortcutX::displayReadyRead(int) { if (bNeedRemap) remap(); - + while (XPending(display)) { XNextEvent(display, &evt); if ((evt.type == iButtonPress) || (evt.type == iButtonRelease)) { diff --git a/src/mumble/GlobalShortcut_unix.h b/src/mumble/GlobalShortcut_unix.h index 69b665bfa..a42a4c550 100644 --- a/src/mumble/GlobalShortcut_unix.h +++ b/src/mumble/GlobalShortcut_unix.h @@ -60,12 +60,12 @@ class GlobalShortcutX : public GlobalShortcutEngine { ~GlobalShortcutX(); void run(); QString buttonName(const QVariant &); - + int iKeyPress, iKeyRelease, iButtonPress, iButtonRelease; - + void initXInput(); public slots: - void displayReadyRead(int); + void displayReadyRead(int); void inputReadyRead(int); void directoryChanged(const QString &); }; diff --git a/src/mumble/MainWindow.cpp b/src/mumble/MainWindow.cpp index 56c598736..27747991b 100644 --- a/src/mumble/MainWindow.cpp +++ b/src/mumble/MainWindow.cpp @@ -695,16 +695,16 @@ void MainWindow::on_qaServerInformation_triggered() { unsigned int version = g.sh->uiVersion; QString qsVersion=tr("<h2>Version</h2><p>Protocol %1.%2.%3. Release %4.<br />Running on %5 %6.</p>").arg(QString::number((version >> 16) & 0xFF), - QString::number((version >> 8) & 0xFF), - QString::number(version & 0xFF), - g.sh->qsRelease, - g.sh->qsOS, - g.sh->qsOSVersion); + QString::number((version >> 8) & 0xFF), + QString::number(version & 0xFF), + g.sh->qsRelease, + g.sh->qsOS, + g.sh->qsOSVersion); QString qsControl=tr("<h2>Control channel</h2><p>Encrypted with %1 bit %2<br />%3 ms average latency (%4 deviation)</p>").arg(QString::number(qsc.usedBits()), - qsc.name(), - QString::fromLatin1("%1").arg(boost::accumulators::mean(g.sh->accTCP), 0, 'f', 2), - QString::fromLatin1("%1").arg(sqrt(boost::accumulators::variance(g.sh->accTCP)),0,'f',2)); + qsc.name(), + QString::fromLatin1("%1").arg(boost::accumulators::mean(g.sh->accTCP), 0, 'f', 2), + QString::fromLatin1("%1").arg(sqrt(boost::accumulators::variance(g.sh->accTCP)),0,'f',2)); QString qsVoice, qsCrypt, qsAudio; if (NetworkConfig::TcpModeEnabled()) { @@ -860,7 +860,7 @@ void MainWindow::on_qaUserMute_triggered() { if (p->bSuppress) mpus.set_suppress(false); } else { - mpus.set_mute(true); + mpus.set_mute(true); } g.sh->sendMessage(mpus); } diff --git a/src/mumble/Messages.cpp b/src/mumble/Messages.cpp index 6d33cfd07..721a74311 100644 --- a/src/mumble/Messages.cpp +++ b/src/mumble/Messages.cpp @@ -235,8 +235,7 @@ void MainWindow::msgUserState(const MumbleProto::UserState &msg) { updateTrayIcon(); } else { if (msg.has_suppress() && ! pSrc) { - } - else if (msg.has_deaf() && pDst->bDeaf) + } else if (msg.has_deaf() && pDst->bDeaf) g.l->log(Log::YouMuted, tr("%1 deafened by %2.").arg(vic, admin)); else if (msg.has_mute() && pDst->bMute) g.l->log(Log::YouMuted, tr("%1 muted by %2.").arg(vic, admin)); diff --git a/src/mumble/os_macx.cpp b/src/mumble/os_macx.cpp index 2b508670d..c8c7bc9cf 100644 --- a/src/mumble/os_macx.cpp +++ b/src/mumble/os_macx.cpp @@ -149,12 +149,12 @@ void os_init() { */ extern "C" { -void mumble_macx_celt_fatal(const char *str, const char *file, int line) { - qFatal("Fatal (internal) libcelt error in %s, line %d: %s", file, line, str); -} + void mumble_macx_celt_fatal(const char *str, const char *file, int line) { + qFatal("Fatal (internal) libcelt error in %s, line %d: %s", file, line, str); + } -void mumble_macx_speex_fatal(const char *str, const char *file, int line) { - qFatal("Fatal (internal) libspeex error in %s, line %d: %s", file, line, str); -} + void mumble_macx_speex_fatal(const char *str, const char *file, int line) { + qFatal("Fatal (internal) libspeex error in %s, line %d: %s", file, line, str); + } } /* extern "C" */ diff --git a/src/mumble/os_win.cpp b/src/mumble/os_win.cpp index e3e880a47..58b88e563 100644 --- a/src/mumble/os_win.cpp +++ b/src/mumble/os_win.cpp @@ -36,7 +36,7 @@ #include "Version.h" extern "C" { -void __cpuid(int a[4], int b); + void __cpuid(int a[4], int b); }; #define PATH_MAX 1024 diff --git a/src/murmur/Messages.cpp b/src/murmur/Messages.cpp index f51965c2c..f9954147c 100644 --- a/src/murmur/Messages.cpp +++ b/src/murmur/Messages.cpp @@ -490,9 +490,9 @@ void Server::msgUserState(ServerUser *uSource, MumbleProto::UserState &msg) { pDstServerUser->bSuppress = msg.suppress(); log(uSource, QString("Changed speak-state of %1 (%2 %3 %4)").arg(QString(*pDstServerUser), - QString::number(pDstServerUser->bMute), - QString::number(pDstServerUser->bDeaf), - QString::number(pDstServerUser->bSuppress))); + QString::number(pDstServerUser->bMute), + QString::number(pDstServerUser->bDeaf), + QString::number(pDstServerUser->bSuppress))); } if (msg.has_user_id()) { @@ -748,15 +748,15 @@ void Server::msgChannelState(ServerUser *uSource, MumbleProto::ChannelState &msg if (p) { log(uSource, QString("Moved channel %1 from %2 to %3").arg(QString(*c), - QString(* c->cParent), - QString(*p))); + QString(* c->cParent), + QString(*p))); c->cParent->removeChannel(c); p->addChannel(c); } if (! qsName.isNull()) { log(uSource, QString("Renamed channel %1 to %2").arg(QString(*c), - QString(qsName))); + QString(qsName))); c->qsName = qsName; } if (! qsDesc.isNull()) diff --git a/src/murmur/Meta.cpp b/src/murmur/Meta.cpp index 484c393f8..95fe0fac3 100644 --- a/src/murmur/Meta.cpp +++ b/src/murmur/Meta.cpp @@ -152,18 +152,18 @@ void MetaParams::read(QString fname) { if (qlBind.isEmpty()) { bool hasipv6 = false; bool hasipv4 = false; - + foreach(const QNetworkInterface &qni, QNetworkInterface::allInterfaces()) { - if (! (qni.flags() & QNetworkInterface::IsUp)) + if (!(qni.flags() & QNetworkInterface::IsUp)) continue; - if (! (qni.flags() & QNetworkInterface::IsRunning)) + if (!(qni.flags() & QNetworkInterface::IsRunning)) continue; if (qni.flags() & QNetworkInterface::IsLoopBack) continue; - + foreach(const QNetworkAddressEntry &qna, qni.addressEntries()) { const QHostAddress &qha = qna.ip(); - switch(qha.protocol()) { + switch (qha.protocol()) { case QAbstractSocket::IPv4Protocol: hasipv4 = true; break; @@ -175,14 +175,14 @@ void MetaParams::read(QString fname) { } } } - + if (hasipv6) qlBind << QHostAddress(QHostAddress::AnyIPv6); #ifdef Q_OS_UNIX else #endif - if (hasipv4) - qlBind << QHostAddress(QHostAddress::Any); + if (hasipv4) + qlBind << QHostAddress(QHostAddress::Any); } qsPassword = qs.value("serverpassword", qsPassword).toString(); diff --git a/src/murmur/Server.cpp b/src/murmur/Server.cpp index 5ad1621ce..6df5ac32d 100644 --- a/src/murmur/Server.cpp +++ b/src/murmur/Server.cpp @@ -781,9 +781,9 @@ void Server::processMsg(ServerUser *u, const char *data, int len) { void Server::log(ServerUser *u, const QString &str) { QString msg = QString("<%1:%2(%3)> %4").arg(QString::number(u->uiSession), - u->qsName, - QString::number(u->iId), - str); + u->qsName, + QString::number(u->iId), + str); log(msg); } diff --git a/src/murmur/murmur_pch.h b/src/murmur/murmur_pch.h index 027bceac1..f5e359d10 100644 --- a/src/murmur/murmur_pch.h +++ b/src/murmur/murmur_pch.h @@ -30,7 +30,7 @@ #include <shellapi.h> #include <delayimp.h> extern "C" { -void __cpuid(int a[4], int b); + void __cpuid(int a[4], int b); }; #endif |