From e163beb2212fe4688f2c1f01d1d95747f9a9082d Mon Sep 17 00:00:00 2001 From: George Hazan Date: Mon, 13 Apr 2015 18:16:50 +0000 Subject: bye-bye, Windows git-svn-id: http://svn.miranda-ng.org/main/trunk@12792 1316c22d-e87f-b044-9b9b-93d7a3e3ba9c --- protocols/WhatsApp/src/chat.cpp | 11 -- protocols/WhatsApp/src/common.h | 7 +- protocols/WhatsApp/src/dialogs.cpp | 355 +++++++++++++++++-------------------- protocols/WhatsApp/src/dialogs.h | 1 - protocols/WhatsApp/src/proto.cpp | 25 +-- protocols/WhatsApp/src/version.h | 2 +- 6 files changed, 171 insertions(+), 230 deletions(-) (limited to 'protocols/WhatsApp') diff --git a/protocols/WhatsApp/src/chat.cpp b/protocols/WhatsApp/src/chat.cpp index 116d347485..8f4469af3e 100644 --- a/protocols/WhatsApp/src/chat.cpp +++ b/protocols/WhatsApp/src/chat.cpp @@ -163,17 +163,6 @@ void WhatsAppProto::EditChatSubject(WAChatInfo *pInfo) } } -void WhatsAppProto::InviteChatUser(WAChatInfo *pInfo) -{ - if (TRUE != DialogBoxParam(g_hInstance, MAKEINTRESOURCE(IDD_GROUPCHAT_INVITE), NULL, InviteDialogProc, (LPARAM)this)) - return; - - if (isOnline()) { - m_pConnection->sendAddParticipants((char*)_T2A(pInfo->tszJid), m_szInviteJids); - m_szInviteJids.clear(); - } -} - void WhatsAppProto::SetChatAvatar(WAChatInfo *pInfo) { TCHAR tszFileName[MAX_PATH]; tszFileName[0] = '\0'; diff --git a/protocols/WhatsApp/src/common.h b/protocols/WhatsApp/src/common.h index 338b4578ca..009b0f0db7 100644 --- a/protocols/WhatsApp/src/common.h +++ b/protocols/WhatsApp/src/common.h @@ -12,8 +12,8 @@ Copyright #pragma warning(disable:4996) #pragma warning(disable:4290) -#define _WIN32_WINNT 0x0500 -#define _WIN32_WINDOWS 0x0500 +#define _WIN32_WINNT 0x0601 +#define _WIN32_WINDOWS 0x0601 #include #include @@ -69,16 +69,17 @@ Copyright #include #include #include +#include #include "constants.h" #include "utils.h" #include "db.h" #include "resource.h" -#include "dialogs.h" #include "theme.h" #include "definitions.h" #include "WASocketConnection.h" #include "proto.h" +#include "dialogs.h" #include "entities.h" #if defined _DEBUG diff --git a/protocols/WhatsApp/src/dialogs.cpp b/protocols/WhatsApp/src/dialogs.cpp index 17048df398..ab5c37fa30 100644 --- a/protocols/WhatsApp/src/dialogs.cpp +++ b/protocols/WhatsApp/src/dialogs.cpp @@ -3,225 +3,200 @@ #define szAskSendSms LPGEN("An SMS with registration code will be sent to your mobile phone.\nNotice that you are not able to use the real WhatsApp and this plugin simultaneously!\nContinue?") #define szPasswordSet LPGEN("Your password has been set automatically. You can proceed with login now") -INT_PTR CALLBACK WhatsAppAccountProc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam) +class COptionsDlg : public CProtoDlgBase { - WhatsAppProto *proto = (WhatsAppProto*)GetWindowLongPtr(hwndDlg, GWLP_USERDATA); - - switch (uMsg) { - case WM_INITDIALOG: - TranslateDialogDefault(hwndDlg); - - proto = (WhatsAppProto*)lParam; - SetWindowLongPtr(hwndDlg, GWLP_USERDATA, lParam); - SendDlgItemMessage(hwndDlg, IDC_PW, EM_LIMITTEXT, 3, 0); - SendDlgItemMessage(hwndDlg, IDC_PW2, EM_LIMITTEXT, 3, 0); - - CheckDlgButton(hwndDlg, IDC_SSL, db_get_b(NULL, proto->m_szModuleName, WHATSAPP_KEY_SSL, 0) ? BST_CHECKED : BST_UNCHECKED); - CheckDlgButton(hwndDlg, IDC_AUTORUN, proto->getBool(WHATSAPP_KEY_AUTORUNCHATS, true) ? BST_CHECKED : BST_UNCHECKED); - { - ptrA szStr(proto->getStringA(WHATSAPP_KEY_CC)); - if (szStr != NULL) - SetDlgItemTextA(hwndDlg, IDC_CC, szStr); - - if ((szStr = proto->getStringA(WHATSAPP_KEY_LOGIN)) != NULL) - SetDlgItemTextA(hwndDlg, IDC_LOGIN, szStr); - - if ((szStr = proto->getStringA(WHATSAPP_KEY_NICK)) != NULL) - SetDlgItemTextA(hwndDlg, IDC_NICK, szStr); - } - SetDlgItemText(hwndDlg, IDC_DEFGROUP, proto->m_tszDefaultGroup); - - EnableWindow(GetDlgItem(hwndDlg, IDC_PW), FALSE); - EnableWindow(GetDlgItem(hwndDlg, IDC_PW2), FALSE); - return TRUE; - - case WM_COMMAND: - if (LOWORD(wParam) == IDC_BUTTON_REQUEST_CODE || LOWORD(wParam) == IDC_BUTTON_REGISTER) { - string password; - char cc[5]; - char number[128]; - GetDlgItemTextA(hwndDlg, IDC_CC, cc, SIZEOF(cc)); - GetDlgItemTextA(hwndDlg, IDC_LOGIN, number, SIZEOF(number)); - - if (LOWORD(wParam) == IDC_BUTTON_REQUEST_CODE) { - if (IDYES == MessageBox(NULL, TranslateT(szAskSendSms), PRODUCT_NAME, MB_YESNO)) { - if (proto->Register(REG_STATE_REQ_CODE, string(cc), string(number), string(), password)) { - if (!password.empty()) { - MessageBox(NULL, TranslateT(szPasswordSet), PRODUCT_NAME, MB_ICONWARNING); - proto->setString(WHATSAPP_KEY_PASS, password.c_str()); - } - else { - EnableWindow(GetDlgItem(hwndDlg, IDC_PW), TRUE); // unblock sms code entry field - EnableWindow(GetDlgItem(hwndDlg, IDC_PW2), TRUE); - } - } - } - } - else if (LOWORD(wParam) == IDC_BUTTON_REGISTER) { - HWND hwnd1 = GetDlgItem(hwndDlg, IDC_PW), hwnd2 = GetDlgItem(hwndDlg, IDC_PW2); - if (GetWindowTextLength(hwnd1) != 3 || GetWindowTextLength(hwnd2) != 3) { - MessageBox(NULL, TranslateT("Please correctly specify your registration code received by SMS"), PRODUCT_NAME, MB_ICONEXCLAMATION); - return TRUE; - } - - char code[10]; - GetWindowTextA(hwnd1, code, 4); - GetWindowTextA(hwnd2, code + 3, 4); + CCtrlEdit m_pw1, m_pw2, m_cc, m_login, m_nick, m_group; + CCtrlCheck m_ssl, m_autorun; + CCtrlButton m_request, m_register; + +public: + COptionsDlg(WhatsAppProto *pThis, int dlgId) : + CProtoDlgBase(pThis, dlgId, false), + m_cc(this, IDC_CC), + m_pw1(this, IDC_PW), + m_pw2(this, IDC_PW2), + m_ssl(this, IDC_SSL), + m_nick(this, IDC_NICK), + m_group(this, IDC_DEFGROUP), + m_login(this, IDC_LOGIN), + m_autorun(this, IDC_AUTORUN), + m_request(this, IDC_BUTTON_REQUEST_CODE), + m_register(this, IDC_BUTTON_REGISTER) + { + CreateLink(m_ssl, WHATSAPP_KEY_SSL, DBVT_BYTE, false); + CreateLink(m_autorun, WHATSAPP_KEY_AUTORUNCHATS, DBVT_BYTE, true); + + CreateLink(m_cc, WHATSAPP_KEY_CC, _T("")); + CreateLink(m_nick, WHATSAPP_KEY_NICK, _T("")); + CreateLink(m_login, WHATSAPP_KEY_LOGIN, _T("")); + CreateLink(m_group, WHATSAPP_KEY_DEF_GROUP, _T("")); + + m_request.OnClick = Callback(this, &COptionsDlg::OnRequestClick); + m_register.OnClick = Callback(this, &COptionsDlg::OnRegisterClick); + } - if (proto->Register(REG_STATE_REG_CODE, string(cc), string(number), string(code), password)) { - proto->setString(WHATSAPP_KEY_PASS, password.c_str()); - MessageBox(NULL, TranslateT(szPasswordSet), PRODUCT_NAME, MB_ICONWARNING); - } - } - } + virtual void OnInitDialog() + { + m_pw1.SendMsg(EM_LIMITTEXT, 3, 0); m_pw1.Enable(false); + m_pw2.SendMsg(EM_LIMITTEXT, 3, 0); m_pw2.Enable(false); + } - if (HWND(lParam) == GetFocus()) { - if (HIWORD(wParam) == EN_CHANGE) { - switch (LOWORD(wParam)) { - case IDC_CC: - case IDC_LOGIN: - case IDC_NICK: - case IDC_DEFGROUP: - case IDC_PW: - case IDC_PW2: - SendMessage(GetParent(hwndDlg), PSM_CHANGED, 0, 0); - } + void OnRequestClick(CCtrlButton*) + { + if (IDYES != MessageBox(NULL, TranslateT(szAskSendSms), PRODUCT_NAME, MB_YESNO)) + return; + + ptrA cc(m_cc.GetTextA()), number(m_login.GetTextA()); + string password; + if (m_proto->Register(REG_STATE_REQ_CODE, string(cc), string(number), string(), password)) { + if (!password.empty()) { + MessageBox(NULL, TranslateT(szPasswordSet), PRODUCT_NAME, MB_ICONWARNING); + m_proto->setString(WHATSAPP_KEY_PASS, password.c_str()); } - else if (HIWORD(wParam) == BN_CLICKED) { - switch (LOWORD(wParam)) { - case IDC_AUTORUN: - case IDC_SSL: - SendMessage(GetParent(hwndDlg), PSM_CHANGED, 0, 0); - } + else { + m_pw1.Enable(); // unblock sms code entry field + m_pw2.Enable(); } } - break; - - case WM_NOTIFY: - if (reinterpret_cast(lParam)->code == PSN_APPLY) { - char str[128]; - GetDlgItemTextA(hwndDlg, IDC_CC, str, SIZEOF(str)); - proto->setString(WHATSAPP_KEY_CC, str); - - GetDlgItemTextA(hwndDlg, IDC_LOGIN, str, SIZEOF(str)); - proto->setString(WHATSAPP_KEY_LOGIN, str); + } - GetDlgItemTextA(hwndDlg, IDC_NICK, str, SIZEOF(str)); - proto->setString(WHATSAPP_KEY_NICK, str); + void OnRegisterClick(CCtrlButton*) + { + if (GetWindowTextLength(m_pw1.GetHwnd()) != 3 || GetWindowTextLength(m_pw2.GetHwnd()) != 3) { + MessageBox(NULL, TranslateT("Please correctly specify your registration code received by SMS"), PRODUCT_NAME, MB_ICONEXCLAMATION); + return; + } - TCHAR tstr[100]; - GetDlgItemText(hwndDlg, IDC_DEFGROUP, tstr, SIZEOF(tstr)); - if (mir_tstrcmp(proto->m_tszDefaultGroup, tstr)) { - proto->m_tszDefaultGroup = mir_tstrdup(tstr); - proto->setTString(WHATSAPP_KEY_DEF_GROUP, tstr); - } + char code[10]; + GetWindowTextA(m_pw1.GetHwnd(), code, 4); + GetWindowTextA(m_pw2.GetHwnd(), code + 3, 4); - proto->setByte(WHATSAPP_KEY_SSL, IsDlgButtonChecked(hwndDlg, IDC_SSL)); - proto->setByte(WHATSAPP_KEY_AUTORUNCHATS, IsDlgButtonChecked(hwndDlg, IDC_AUTORUN)); + string password; + ptrA cc(m_cc.GetTextA()), number(m_login.GetTextA()); + if (m_proto->Register(REG_STATE_REG_CODE, string(cc), string(number), string(code), password)) { + m_proto->setString(WHATSAPP_KEY_PASS, password.c_str()); + MessageBox(NULL, TranslateT(szPasswordSet), PRODUCT_NAME, MB_ICONWARNING); + } + } - if (proto->isOnline()) - MessageBox(NULL, TranslateT("Changes will be applied after protocol restart"), proto->m_tszUserName, MB_OK); + virtual void OnApply() + { + ptrT tszGroup(m_group.GetText()); + if (mir_tstrcmp(m_proto->m_tszDefaultGroup, tszGroup)) + m_proto->m_tszDefaultGroup = tszGroup.detouch(); - return TRUE; - } - break; + if (m_proto->isOnline()) + MessageBox(NULL, TranslateT("Changes will be applied after protocol restart"), m_proto->m_tszUserName, MB_OK); } +}; + +INT_PTR WhatsAppProto::SvcCreateAccMgrUI(WPARAM wParam, LPARAM lParam) +{ + COptionsDlg *pDlg = new COptionsDlg(this, IDD_ACCMGRUI); + pDlg->Create(); + return (INT_PTR)pDlg->GetHwnd(); +} - return FALSE; +int WhatsAppProto::OnOptionsInit(WPARAM wParam, LPARAM lParam) +{ + OPTIONSDIALOGPAGE odp = { sizeof(odp) }; + odp.ptszTitle = m_tszUserName; + odp.flags = ODPF_BOLDGROUPS | ODPF_TCHAR | ODPF_DONTTRANSLATE; + odp.ptszGroup = LPGENT("Network"); + + odp.ptszTab = LPGENT("Account"); + odp.pDialog = new COptionsDlg(this, IDD_OPTIONS); + Options_AddPage(wParam, &odp); + return 0; } ///////////////////////////////////////////////////////////////////////////////////////// // Invite dialog -static void FilterList(HWND hwndClist, WhatsAppProto *ppro) +class CInviteDialog : public CProtoDlgBase { - for (MCONTACT hContact = db_find_first(); hContact; hContact = db_find_next(hContact)) { - char *proto = GetContactProto(hContact); - if (mir_strcmp(proto, ppro->m_szModuleName) || ppro->isChatRoom(hContact)) - if (MCONTACT hItem = SendMessage(hwndClist, CLM_FINDCONTACT, hContact, 0)) - SendMessage(hwndClist, CLM_DELETEITEM, hItem, 0); + CCtrlClc m_clc; + CCtrlEdit m_entry; + CCtrlButton m_btnOk; + + void FilterList(CCtrlClc *) + { + for (MCONTACT hContact = db_find_first(); hContact; hContact = db_find_next(hContact)) { + char *proto = GetContactProto(hContact); + if (mir_strcmp(proto, m_proto->m_szModuleName) || m_proto->isChatRoom(hContact)) + if (HANDLE hItem = m_clc.FindContact(hContact)) + m_clc.DeleteItem(hItem); + } } -} -static void InitList(HWND hwndClist, WhatsAppProto *ppro) -{ - SetWindowLongPtr(hwndClist, GWL_STYLE, - GetWindowLongPtr(hwndClist, GWL_STYLE) | CLS_CHECKBOXES | CLS_HIDEEMPTYGROUPS | CLS_USEGROUPS | CLS_GREYALTERNATE); - SendMessage(hwndClist, CLM_SETEXSTYLE, CLS_EX_DISABLEDRAGDROP | CLS_EX_TRACKSELECT, 0); - SendMessage(hwndClist, CLM_SETBKBITMAP, 0, 0); - SendMessage(hwndClist, CLM_SETBKCOLOR, GetSysColor(COLOR_WINDOW), 0); - SendMessage(hwndClist, CLM_SETGREYOUTFLAGS, 0, 0); - SendMessage(hwndClist, CLM_SETLEFTMARGIN, 4, 0); - SendMessage(hwndClist, CLM_SETINDENT, 10, 0); - SendMessage(hwndClist, CLM_SETBKBITMAP, 0, 0); - SendMessage(hwndClist, CLM_SETHIDEEMPTYGROUPS, TRUE, 0); - SendMessage(hwndClist, CLM_SETHIDEOFFLINEROOT, TRUE, 0); - - for (int i = 0; i <= FONTID_MAX; i++) - SendMessage(hwndClist, CLM_SETTEXTCOLOR, i, GetSysColor(COLOR_WINDOWTEXT)); - - FilterList(hwndClist, ppro); -} + void ResetListOptions(CCtrlClc *) + { + m_clc.SetBkBitmap(0, NULL); + m_clc.SetBkColor(GetSysColor(COLOR_WINDOW)); + m_clc.SetGreyoutFlags(0); + m_clc.SetLeftMargin(4); + m_clc.SetIndent(10); + m_clc.SetHideEmptyGroups(true); + m_clc.SetHideOfflineRoot(true); + for (int i = 0; i <= FONTID_MAX; i++) + m_clc.SetTextColor(i, GetSysColor(COLOR_WINDOWTEXT)); + } -INT_PTR CALLBACK InviteDialogProc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam) -{ - WhatsAppProto *proto = (WhatsAppProto*)GetWindowLongPtr(hwndDlg, GWLP_USERDATA); +public: + CInviteDialog(WhatsAppProto *pThis) : + CProtoDlgBase(pThis, IDD_GROUPCHAT_INVITE, false), + m_clc(this, IDC_CLIST), + m_entry(this, IDC_NEWJID), + m_btnOk(this, IDOK) + { + m_btnOk.OnClick = Callback(this, &CInviteDialog::btnOk_OnClick); + m_clc.OnNewContact = + m_clc.OnListRebuilt = Callback(this, &CInviteDialog::FilterList); + m_clc.OnOptionsChanged = Callback(this, &CInviteDialog::ResetListOptions); + } + + void OnInitDialog() + { + SetWindowLongPtr(m_clc.GetHwnd(), GWL_STYLE, + GetWindowLongPtr(m_clc.GetHwnd(), GWL_STYLE) | CLS_CHECKBOXES | CLS_HIDEEMPTYGROUPS | CLS_USEGROUPS | CLS_GREYALTERNATE); + m_clc.SendMsg(CLM_SETEXSTYLE, CLS_EX_DISABLEDRAGDROP | CLS_EX_TRACKSELECT, 0); - switch (uMsg) { - case WM_INITDIALOG: - TranslateDialogDefault(hwndDlg); + ResetListOptions(&m_clc); + FilterList(&m_clc); + } - proto = (WhatsAppProto*)lParam; - SetWindowLongPtr(hwndDlg, GWLP_USERDATA, lParam); + void btnOk_OnClick(CCtrlButton*) + { + m_proto->m_szInviteJids.clear(); - InitList(GetDlgItem(hwndDlg, IDC_CLIST), proto); - return 1; + // invite users from clist + for (MCONTACT hContact = db_find_first(m_proto->m_szModuleName); hContact; hContact = db_find_next(hContact, m_proto->m_szModuleName)) { + if (m_proto->isChatRoom(hContact)) + continue; - case WM_NOTIFY: - if (((LPNMHDR)lParam)->idFrom == IDC_CLIST) { - switch (((LPNMHDR)lParam)->code) { - case CLN_LISTREBUILT: - case CLN_NEWCONTACT: - FilterList(((LPNMHDR)lParam)->hwndFrom, proto); - } - } - break; - - case WM_COMMAND: - switch (LOWORD(wParam)) { - case IDCANCEL: - EndDialog(hwndDlg, 0); - break; - - case IDOK: - proto->m_szInviteJids.clear(); - - // invite users from clist - for (MCONTACT hContact = db_find_first(proto->m_szModuleName); hContact; hContact = db_find_next(hContact, proto->m_szModuleName)) { - if (proto->isChatRoom(hContact)) - continue; - - HWND hwndList = GetDlgItem(hwndDlg, IDC_CLIST); - if (int hItem = SendMessage(hwndList, CLM_FINDCONTACT, hContact, 0)) { - if (SendMessage(hwndList, CLM_GETCHECKMARK, (WPARAM)hItem, 0)) { - ptrA jid(proto->getStringA(hContact, "ID")); - if (jid != NULL) - proto->m_szInviteJids.push_back((char*)jid); - } + if (HANDLE hItem = m_clc.FindContact(hContact)) { + if (m_clc.GetCheck(hItem)) { + ptrA jid(m_proto->getStringA(hContact, "ID")); + if (jid != NULL) + m_proto->m_szInviteJids.push_back((char*)jid); } } - - HWND hwndEntry = GetDlgItem(hwndDlg, IDC_NEWJID); - int len = GetWindowTextLength(hwndEntry); - if (len > 0) { - std::string szOther; szOther.resize(len + 1); - GetWindowTextA(hwndEntry, (char*)szOther.data(), len); - proto->m_szInviteJids.push_back(szOther); - } - - EndDialog(hwndDlg, 1); } + + ptrA tszText(m_entry.GetTextA()); + if (tszText != NULL) + m_proto->m_szInviteJids.push_back(string(tszText)); } +}; - return 0; +void WhatsAppProto::InviteChatUser(WAChatInfo *pInfo) +{ + CInviteDialog dlg(this); + if (!dlg.DoModal()) + return; + + if (isOnline()) { + m_pConnection->sendAddParticipants((char*)_T2A(pInfo->tszJid), m_szInviteJids); + m_szInviteJids.clear(); + } } diff --git a/protocols/WhatsApp/src/dialogs.h b/protocols/WhatsApp/src/dialogs.h index f31cc322c6..bb244c6834 100644 --- a/protocols/WhatsApp/src/dialogs.h +++ b/protocols/WhatsApp/src/dialogs.h @@ -2,6 +2,5 @@ #define DIALOGS_H INT_PTR CALLBACK InviteDialogProc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam); -INT_PTR CALLBACK WhatsAppAccountProc(HWND hwndDlg, UINT uMsg, WPARAM wparam, LPARAM lParam); #endif \ No newline at end of file diff --git a/protocols/WhatsApp/src/proto.cpp b/protocols/WhatsApp/src/proto.cpp index dd01ffac5b..c91b72dcc5 100644 --- a/protocols/WhatsApp/src/proto.cpp +++ b/protocols/WhatsApp/src/proto.cpp @@ -53,7 +53,7 @@ WhatsAppProto::WhatsAppProto(const char* proto_name, const TCHAR* username) : if (m_tszDefaultGroup == NULL) m_tszDefaultGroup = mir_tstrdup(_T("WhatsApp")); - Clist_CreateGroup(0, m_tszDefaultGroup); + Clist_CreateGroup(0, m_tszDefaultGroup); SetAllContactStatuses(ID_STATUS_OFFLINE, true); } @@ -316,29 +316,6 @@ bool WhatsAppProto::Register(int state, const string &cc, const string &number, ////////////////////////////////////////////////////////////////////////////// // EVENTS -INT_PTR WhatsAppProto::SvcCreateAccMgrUI(WPARAM wParam, LPARAM lParam) -{ - return (INT_PTR)CreateDialogParam(g_hInstance, MAKEINTRESOURCE(IDD_ACCMGRUI), - (HWND)lParam, WhatsAppAccountProc, (LPARAM)this); -} - -int WhatsAppProto::OnOptionsInit(WPARAM wParam, LPARAM lParam) -{ - OPTIONSDIALOGPAGE odp = { sizeof(odp) }; - odp.hInstance = g_hInstance; - odp.ptszTitle = m_tszUserName; - odp.dwInitParam = LPARAM(this); - odp.flags = ODPF_BOLDGROUPS | ODPF_TCHAR | ODPF_DONTTRANSLATE; - - odp.position = 1; - odp.ptszGroup = LPGENT("Network"); - odp.ptszTab = LPGENT("Account"); - odp.pszTemplate = MAKEINTRESOURCEA(IDD_OPTIONS); - odp.pfnDlgProc = WhatsAppAccountProc; - Options_AddPage(wParam, &odp); - return 0; -} - int WhatsAppProto::OnUserInfo(WPARAM, LPARAM hContact) { ptrA jid(getStringA(hContact, WHATSAPP_KEY_ID)); diff --git a/protocols/WhatsApp/src/version.h b/protocols/WhatsApp/src/version.h index 8abf89f928..65de5db425 100644 --- a/protocols/WhatsApp/src/version.h +++ b/protocols/WhatsApp/src/version.h @@ -1,7 +1,7 @@ #define __MAJOR_VERSION 0 #define __MINOR_VERSION 1 #define __RELEASE_NUM 2 -#define __BUILD_NUM 12 +#define __BUILD_NUM 13 #include -- cgit v1.2.3