summaryrefslogtreecommitdiff
path: root/plugins
diff options
context:
space:
mode:
Diffstat (limited to 'plugins')
-rw-r--r--plugins/!NotAdopted/name_day/name_day.cpp42
-rw-r--r--plugins/!NotAdopted/name_day/name_day.vcproj411
-rw-r--r--plugins/!NotAdopted/name_day/name_day_core.cpp93
-rw-r--r--plugins/!NotAdopted/name_day/name_day_core.h5
-rw-r--r--plugins/!NotAdopted/name_day/namedayplug.apsbin45712 -> 0 bytes
-rw-r--r--plugins/!NotAdopted/name_day/static_database.h55
-rw-r--r--plugins/!NotAdopted/name_day/todo.txt23
7 files changed, 524 insertions, 105 deletions
diff --git a/plugins/!NotAdopted/name_day/name_day.cpp b/plugins/!NotAdopted/name_day/name_day.cpp
index 822f6ba439..7ef4b65be8 100644
--- a/plugins/!NotAdopted/name_day/name_day.cpp
+++ b/plugins/!NotAdopted/name_day/name_day.cpp
@@ -2,30 +2,38 @@
* @file Name day plugin
*/
#include <windows.h>
-#include "../../headers_c/newpluginapi.h"
+#include <newpluginapi.h>
#include "name_day_core.h"
static name_day_core_t name_day_core;
-HINSTANCE hInst;
-PLUGINLINK *pluginLink;
+HINSTANCE hInst = NULL;
+PLUGINLINK *pluginLink = NULL;
+
/**
* @brief Plugin info.
*
*/
-PLUGININFO pluginInfo={
- sizeof(PLUGININFO),
- "Name Day Plugin",
- PLUGIN_MAKE_VERSION(0, 0, 0, 7),
+PLUGININFOEX pluginInfo={
+ sizeof(PLUGININFOEX),
+ #ifdef _WIN64
+ "Name Day x64",
+ #else
+ "Name Day",
+ #endif
+ PLUGIN_MAKE_VERSION(0, 0, 1, 0),
"The Name Day plugin.",
- "Tibor Szabo",
- "tibor.szabo@gmail.com",
- " 2005 Tibor Szabo",
- "",
- 0, //not transient
- 0 //doesn't replace anything built-in
+ "Tibor Szabo, Robert Psel",
+ "robyer@seznam.cz",
+ " 2005 Tibor Szabo, 2011 Robert Psel",
+ "http://code.google.com/p/robyer",
+ UNICODE_AWARE, //not transient
+ 0, //doesn't replace anything built-in
+ // {E3FFE398-7004-46df-9FF1-9E0B8239FDE2}
+ { 0xe3ffe398, 0x7004, 0x46df, { 0x9f, 0xf1, 0x9e, 0xb, 0x82, 0x39, 0xfd, 0xe2 } }
+
};
/**
@@ -43,7 +51,7 @@ BOOL WINAPI DllMain(HINSTANCE hinstDLL, DWORD fdwReason, LPVOID lpvReserved)
* @brief Plugin Info
*
*/
-extern "C" __declspec(dllexport) PLUGININFO* MirandaPluginInfo(DWORD mirandaVersion)
+extern "C" __declspec(dllexport) PLUGININFOEX* MirandaPluginInfoEx(DWORD mirandaVersion)
{
return &pluginInfo;
}
@@ -66,6 +74,12 @@ extern "C" int __declspec(dllexport) Load(PLUGINLINK *link)
return 0;
}
+static const MUUID interfaces[] = {MIID_NAMEDAY, MIID_LAST};
+extern "C" __declspec(dllexport) const MUUID* MirandaPluginInterfaces(void)
+{
+ return interfaces;
+}
+
/**
* @brief Unload
*
diff --git a/plugins/!NotAdopted/name_day/name_day.vcproj b/plugins/!NotAdopted/name_day/name_day.vcproj
index 0d90239c80..1cae7babbc 100644
--- a/plugins/!NotAdopted/name_day/name_day.vcproj
+++ b/plugins/!NotAdopted/name_day/name_day.vcproj
@@ -1,138 +1,386 @@
<?xml version="1.0" encoding="windows-1250"?>
<VisualStudioProject
ProjectType="Visual C++"
- Version="7.10"
+ Version="9,00"
Name="namedayplug"
- SccProjectName=""
- SccLocalPath="">
+ ProjectGUID="{6A2EFA1C-A2EA-4E79-8BAF-69A2D7881B61}"
+ RootNamespace="namedayplug"
+ TargetFrameworkVersion="131072"
+ >
<Platforms>
<Platform
- Name="Win32"/>
+ Name="Win32"
+ />
+ <Platform
+ Name="x64"
+ />
</Platforms>
+ <ToolFiles>
+ </ToolFiles>
<Configurations>
<Configuration
Name="Release|Win32"
OutputDirectory=".\Release"
IntermediateDirectory=".\Release"
ConfigurationType="2"
+ InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops"
UseOfMFC="0"
- ATLMinimizesCRunTimeLibraryUsage="FALSE"
- CharacterSet="2">
+ ATLMinimizesCRunTimeLibraryUsage="false"
+ CharacterSet="2"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ PreprocessorDefinitions="NDEBUG"
+ MkTypLibCompatible="true"
+ SuppressStartupBanner="true"
+ TargetEnvironment="1"
+ TypeLibraryName=".\Release/name_day.tlb"
+ HeaderFileName=""
+ />
<Tool
Name="VCCLCompilerTool"
Optimization="1"
InlineFunctionExpansion="1"
PreprocessorDefinitions="WIN32;_WINDOWS;_USRDLL"
- StringPooling="TRUE"
+ StringPooling="true"
RuntimeLibrary="2"
- EnableFunctionLevelLinking="TRUE"
- UsePrecompiledHeader="2"
+ EnableFunctionLevelLinking="true"
+ UsePrecompiledHeader="0"
PrecompiledHeaderFile=".\Release/name_day.pch"
AssemblerListingLocation=".\Release/"
ObjectFile=".\Release/"
ProgramDataBaseFileName=".\Release/"
WarningLevel="3"
- SuppressStartupBanner="TRUE"/>
+ SuppressStartupBanner="true"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ PreprocessorDefinitions="NDEBUG"
+ Culture="2057"
+ />
<Tool
- Name="VCCustomBuildTool"/>
+ Name="VCPreLinkEventTool"
+ />
<Tool
Name="VCLinkerTool"
OutputFile=".\Release/name_day.dll"
LinkIncremental="1"
- SuppressStartupBanner="TRUE"
+ SuppressStartupBanner="true"
ProgramDatabaseFile=".\Release/name_day.pdb"
+ RandomizedBaseAddress="1"
+ DataExecutionPrevention="0"
ImportLibrary=".\Release/name_day.lib"
- TargetMachine="1"/>
+ TargetMachine="1"
+ />
<Tool
- Name="VCMIDLTool"
- PreprocessorDefinitions="NDEBUG"
- MkTypLibCompatible="TRUE"
- SuppressStartupBanner="TRUE"
- TargetEnvironment="1"
- TypeLibraryName=".\Release/name_day.tlb"
- HeaderFileName=""/>
- <Tool
- Name="VCPostBuildEventTool"/>
- <Tool
- Name="VCPreBuildEventTool"/>
- <Tool
- Name="VCPreLinkEventTool"/>
+ Name="VCALinkTool"
+ />
<Tool
- Name="VCResourceCompilerTool"
- PreprocessorDefinitions="NDEBUG"
- Culture="2057"/>
+ Name="VCManifestTool"
+ />
<Tool
- Name="VCWebServiceProxyGeneratorTool"/>
+ Name="VCXDCMakeTool"
+ />
<Tool
- Name="VCXMLDataGeneratorTool"/>
+ Name="VCBscMakeTool"
+ />
<Tool
- Name="VCWebDeploymentTool"/>
+ Name="VCFxCopTool"
+ />
<Tool
- Name="VCManagedWrapperGeneratorTool"/>
+ Name="VCAppVerifierTool"
+ />
<Tool
- Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+ Name="VCPostBuildEventTool"
+ />
</Configuration>
<Configuration
Name="Debug|Win32"
OutputDirectory=".\Debug"
IntermediateDirectory=".\Debug"
ConfigurationType="2"
+ InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops"
UseOfMFC="0"
- ATLMinimizesCRunTimeLibraryUsage="FALSE"
- CharacterSet="2">
+ ATLMinimizesCRunTimeLibraryUsage="false"
+ CharacterSet="2"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ PreprocessorDefinitions="_DEBUG"
+ MkTypLibCompatible="true"
+ SuppressStartupBanner="true"
+ TargetEnvironment="1"
+ TypeLibraryName=".\Debug/name_day.tlb"
+ HeaderFileName=""
+ />
<Tool
Name="VCCLCompilerTool"
Optimization="0"
PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_USRDLL;TESTPLUG_EXPORTS"
BasicRuntimeChecks="3"
RuntimeLibrary="1"
- UsePrecompiledHeader="2"
+ UsePrecompiledHeader="0"
PrecompiledHeaderFile=".\Debug/name_day.pch"
AssemblerListingLocation=".\Debug/"
ObjectFile=".\Debug/"
ProgramDataBaseFileName=".\Debug/"
WarningLevel="3"
- SuppressStartupBanner="TRUE"
- DebugInformationFormat="4"/>
+ SuppressStartupBanner="true"
+ DebugInformationFormat="4"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ PreprocessorDefinitions="_DEBUG"
+ Culture="2057"
+ />
<Tool
- Name="VCCustomBuildTool"/>
+ Name="VCPreLinkEventTool"
+ />
<Tool
Name="VCLinkerTool"
OutputFile=".\Debug/name_day.dll"
LinkIncremental="1"
- SuppressStartupBanner="TRUE"
- GenerateDebugInformation="TRUE"
+ SuppressStartupBanner="true"
+ GenerateDebugInformation="true"
ProgramDatabaseFile=".\Debug/name_day.pdb"
+ RandomizedBaseAddress="1"
+ DataExecutionPrevention="0"
ImportLibrary=".\Debug/name_day.lib"
- TargetMachine="1"/>
+ TargetMachine="1"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCManifestTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCAppVerifierTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ />
+ </Configuration>
+ <Configuration
+ Name="Release|x64"
+ OutputDirectory="$(PlatformName)\$(ConfigurationName)"
+ IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
+ ConfigurationType="2"
+ InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops"
+ UseOfMFC="0"
+ ATLMinimizesCRunTimeLibraryUsage="false"
+ CharacterSet="2"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ PreprocessorDefinitions="NDEBUG"
+ MkTypLibCompatible="true"
+ SuppressStartupBanner="true"
+ TargetEnvironment="3"
+ TypeLibraryName=".\Release/name_day.tlb"
+ HeaderFileName=""
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="1"
+ InlineFunctionExpansion="1"
+ PreprocessorDefinitions="WIN32;_WINDOWS;_USRDLL"
+ StringPooling="true"
+ RuntimeLibrary="2"
+ EnableFunctionLevelLinking="true"
+ UsePrecompiledHeader="0"
+ PrecompiledHeaderFile=".\Release/name_day.pch"
+ AssemblerListingLocation=".\Release/"
+ ObjectFile=".\Release/"
+ ProgramDataBaseFileName=".\Release/"
+ WarningLevel="3"
+ SuppressStartupBanner="true"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ PreprocessorDefinitions="NDEBUG"
+ Culture="2057"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLinkerTool"
+ OutputFile=".\Release/name_day.dll"
+ LinkIncremental="1"
+ SuppressStartupBanner="true"
+ ProgramDatabaseFile=".\Release/name_day.pdb"
+ RandomizedBaseAddress="1"
+ DataExecutionPrevention="0"
+ ImportLibrary=".\Release/name_day.lib"
+ TargetMachine="17"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCManifestTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCAppVerifierTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ />
+ </Configuration>
+ <Configuration
+ Name="Debug|x64"
+ OutputDirectory="$(PlatformName)\$(ConfigurationName)"
+ IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
+ ConfigurationType="2"
+ InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops"
+ UseOfMFC="0"
+ ATLMinimizesCRunTimeLibraryUsage="false"
+ CharacterSet="2"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
<Tool
Name="VCMIDLTool"
PreprocessorDefinitions="_DEBUG"
- MkTypLibCompatible="TRUE"
- SuppressStartupBanner="TRUE"
- TargetEnvironment="1"
+ MkTypLibCompatible="true"
+ SuppressStartupBanner="true"
+ TargetEnvironment="3"
TypeLibraryName=".\Debug/name_day.tlb"
- HeaderFileName=""/>
+ HeaderFileName=""
+ />
<Tool
- Name="VCPostBuildEventTool"/>
- <Tool
- Name="VCPreBuildEventTool"/>
+ Name="VCCLCompilerTool"
+ Optimization="0"
+ PreprocessorDefinitions="_WIN64;_DEBUG;_WINDOWS;_USRDLL;TESTPLUG_EXPORTS"
+ BasicRuntimeChecks="3"
+ RuntimeLibrary="1"
+ UsePrecompiledHeader="0"
+ PrecompiledHeaderFile=".\Debug/name_day.pch"
+ AssemblerListingLocation=".\Debug/"
+ ObjectFile=".\Debug/"
+ ProgramDataBaseFileName=".\Debug/"
+ WarningLevel="3"
+ SuppressStartupBanner="true"
+ DebugInformationFormat="3"
+ />
<Tool
- Name="VCPreLinkEventTool"/>
+ Name="VCManagedResourceCompilerTool"
+ />
<Tool
Name="VCResourceCompilerTool"
PreprocessorDefinitions="_DEBUG"
- Culture="2057"/>
+ Culture="2057"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLinkerTool"
+ OutputFile=".\Debug/name_day.dll"
+ LinkIncremental="1"
+ SuppressStartupBanner="true"
+ GenerateDebugInformation="true"
+ ProgramDatabaseFile=".\Debug/name_day.pdb"
+ RandomizedBaseAddress="1"
+ DataExecutionPrevention="0"
+ ImportLibrary=".\Debug/name_day.lib"
+ TargetMachine="17"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCManifestTool"
+ />
<Tool
- Name="VCWebServiceProxyGeneratorTool"/>
+ Name="VCXDCMakeTool"
+ />
<Tool
- Name="VCXMLDataGeneratorTool"/>
+ Name="VCBscMakeTool"
+ />
<Tool
- Name="VCWebDeploymentTool"/>
+ Name="VCFxCopTool"
+ />
<Tool
- Name="VCManagedWrapperGeneratorTool"/>
+ Name="VCAppVerifierTool"
+ />
<Tool
- Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+ Name="VCPostBuildEventTool"
+ />
</Configuration>
</Configurations>
<References>
@@ -140,57 +388,72 @@
<Files>
<Filter
Name="Source Files"
- Filter="cpp;c;cxx;rc;def;r;odl;idl;hpj;bat">
+ Filter="cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"
+ >
<File
- RelativePath=".\name_day.cpp">
+ RelativePath=".\name_day.cpp"
+ >
</File>
<File
- RelativePath=".\name_day_core.cpp">
+ RelativePath=".\name_day_core.cpp"
+ >
</File>
<File
- RelativePath=".\name_day_core.h">
+ RelativePath=".\name_day_core.h"
+ >
</File>
<File
- RelativePath=".\namedayplug.rc">
+ RelativePath=".\namedayplug.rc"
+ >
</File>
<File
- RelativePath=".\static_database.h">
+ RelativePath=".\static_database.h"
+ >
</File>
<Filter
Name="calendar"
- Filter="">
+ >
<File
- RelativePath=".\calendar\calendar.cpp">
+ RelativePath=".\calendar\calendar.cpp"
+ >
</File>
<File
- RelativePath=".\calendar\calendar.h">
+ RelativePath=".\calendar\calendar.h"
+ >
</File>
</Filter>
<Filter
Name="utils"
- Filter="">
+ >
<File
- RelativePath=".\utils\string_tokenizer.h">
+ RelativePath=".\utils\string_tokenizer.h"
+ >
</File>
</Filter>
</Filter>
<File
- RelativePath=".\resources\baloons.ico">
+ RelativePath=".\resources\baloons.ico"
+ >
</File>
<File
- RelativePath=".\resources\icon1.ico">
+ RelativePath=".\resources\icon1.ico"
+ >
</File>
<File
- RelativePath=".\icon1.ico">
+ RelativePath=".\icon1.ico"
+ >
</File>
<File
- RelativePath=".\resources\icon2.ico">
+ RelativePath=".\resources\icon2.ico"
+ >
</File>
<File
- RelativePath=".\resources\icon3.ico">
+ RelativePath=".\resources\icon3.ico"
+ >
</File>
<File
- RelativePath=".\resource.h">
+ RelativePath=".\resource.h"
+ >
</File>
</Files>
<Globals>
diff --git a/plugins/!NotAdopted/name_day/name_day_core.cpp b/plugins/!NotAdopted/name_day/name_day_core.cpp
index 9d962f8ad3..29622b6859 100644
--- a/plugins/!NotAdopted/name_day/name_day_core.cpp
+++ b/plugins/!NotAdopted/name_day/name_day_core.cpp
@@ -116,11 +116,27 @@ void name_day_core_t::perform_name_day_test(void)
// And the first name.
DBVARIANT dbv;
- dbv.pszVal = NULL;
- DBGetContactSetting(contact_handle, proto, "FirstName", &dbv);
+ bool found = false;
+
+ if (!found && !DBGetContactSettingString(contact_handle, proto, "FirstName", &dbv)) {
+ string first_name = dbv.pszVal;
- if (dbv.pszVal) {
+ for (unsigned i = 0; i < calendars.size(); ++i) {
+
+ const string name_day = calendars[i].get_name(sys_time.wMonth, sys_time.wDay);
+
+ // This user has name day.
+ // Create the miranda event.
+ if (has_name_day(name_day, first_name)) {
+ found = true;
+ create_name_day_event(contact_handle, contact_name, first_name, calendars[i].country);
+ }
+ }
+ DBFreeVariant(&dbv);
+ }
+
+ if (!found && !DBGetContactSettingString(contact_handle, "UserInfo", "FirstName", &dbv)) {
string first_name = dbv.pszVal;
for (unsigned i = 0; i < calendars.size(); ++i) {
@@ -130,10 +146,13 @@ void name_day_core_t::perform_name_day_test(void)
// This user has name day.
// Create the miranda event.
if (has_name_day(name_day, first_name)) {
+ found = true;
create_name_day_event(contact_handle, contact_name, first_name, calendars[i].country);
}
}
- }
+
+ DBFreeVariant(&dbv);
+ }
contact_handle = (HANDLE)CallService(MS_DB_CONTACT_FINDNEXT, (WPARAM)contact_handle, 0);
}
@@ -248,6 +267,68 @@ void name_day_core_t::create_sub_menu(const calendar_t &calendar, const string &
}
+const char Win1250[] = {(char)0xE1,(char)0xE4,(char)0xB9,(char)0xE2,
+ (char)0xE3,(char)0xE8,(char)0xE6,(char)0xE7,
+ (char)0xEF,(char)0xF0,(char)0xE9,(char)0xEC,
+ (char)0xEB,(char)0xEA,(char)0xED,(char)0xEE,
+ (char)0xBE,(char)0xB3,(char)0xE5,(char)0xF2,
+ (char)0xF1,(char)0xF3,(char)0xF6,(char)0xF4,
+ (char)0xF5,(char)0xF8,(char)0xE0,(char)0x9A,
+ (char)0xBA,(char)0x9C,(char)0x9D,(char)0xFE,
+ (char)0xFA,(char)0xF9,(char)0xFC,(char)0xFB,
+ (char)0xFD,(char)0x9E,(char)0x9F,(char)0xBF,
+ (char)0xC1,(char)0xC4,(char)0xA5,(char)0xC2,
+ (char)0xC3,(char)0xC8,(char)0xC6,(char)0xC7,
+ (char)0xCF,(char)0xD0,(char)0xC9,(char)0xCC,
+ (char)0xCB,(char)0xCA,(char)0xCD,(char)0xCE,
+ (char)0xBC,(char)0xA3,(char)0xC5,(char)0xD2,
+ (char)0xD1,(char)0xD3,(char)0xD6,(char)0xD4,
+ (char)0xD5,(char)0xD8,(char)0xC0,(char)0x8A,
+ (char)0xAA,(char)0x8C,(char)0x8D,(char)0xDE,
+ (char)0xDA,(char)0xD9,(char)0xDC,(char)0xDB,
+ (char)0xDD,(char)0x8E,(char)0x8F,(char)0xAF,
+ (char)0x00};
+const char WithoutDiac[] = {(char)0x61,(char)0x61,(char)0x61,(char)0x61,
+ (char)0x61,(char)0x63,(char)0x63,(char)0x63,
+ (char)0x64,(char)0x64,(char)0x65,(char)0x65,
+ (char)0x65,(char)0x65,(char)0x69,(char)0x69,
+ (char)0x6C,(char)0x6C,(char)0x6C,(char)0x6E,
+ (char)0x6E,(char)0x6F,(char)0x6F,(char)0x6F,
+ (char)0x6F,(char)0x72,(char)0x72,(char)0x73,
+ (char)0x73,(char)0x73,(char)0x74,(char)0x74,
+ (char)0x75,(char)0x75,(char)0x75,(char)0x75,
+ (char)0x79,(char)0x7A,(char)0x7A,(char)0x7A,
+ (char)0x41,(char)0x41,(char)0x41,(char)0x41,
+ (char)0x41,(char)0x43,(char)0x43,(char)0x43,
+ (char)0x44,(char)0x44,(char)0x45,(char)0x45,
+ (char)0x45,(char)0x45,(char)0x49,(char)0x49,
+ (char)0x4C,(char)0x4C,(char)0x4C,(char)0x4E,
+ (char)0x4E,(char)0x4F,(char)0x4F,(char)0x4F,
+ (char)0x4F,(char)0x52,(char)0x52,(char)0x53,
+ (char)0x53,(char)0x53,(char)0x54,(char)0x54,
+ (char)0x55,(char)0x55,(char)0x55,(char)0x55,
+ (char)0x59,(char)0x5A,(char)0x5A,(char)0x5A,
+ (char)0x00};
+
+string removeDiacritics( string data )
+{
+ string new_string = "";
+
+ char *find;
+
+ for ( string::size_type i = 0; i < data.length( ); i++ )
+ {
+ find = (char *)strchr(Win1250,data.at(i));
+ if (find) {
+ new_string += (int)WithoutDiac[find - Win1250];
+ } else {
+ new_string += (char)data.at(i);
+ }
+ }
+
+ return new_string;
+}
+
/**
* @brief has name day
* @param name_day
@@ -259,13 +340,15 @@ bool name_day_core_t::has_name_day(const string &name_day, const string &first_n
// Parse the name day string for today.
// Extract the names.
+ string name = removeDiacritics(first_name);
+
vector<string> today_names = string_tokenizer(name_day, " ");
// Try to match the first name with the extracted names.
for (size_t i = 0; i < today_names.size(); ++i) {
// Huray we have found the contact who could celebrate.
- if (today_names[i] == first_name) {
+ if (stricmp(today_names[i].c_str(), name.c_str()) == 0) {
return true;
}
}
diff --git a/plugins/!NotAdopted/name_day/name_day_core.h b/plugins/!NotAdopted/name_day/name_day_core.h
index d219dac240..1e1e25e9a8 100644
--- a/plugins/!NotAdopted/name_day/name_day_core.h
+++ b/plugins/!NotAdopted/name_day/name_day_core.h
@@ -5,6 +5,11 @@
#ifndef name_day_core_h
#define name_day_core_h
+#pragma warning(disable:4996)
+
+#define MIID_NAMEDAY { 0x5dc83ad2, 0x868c, 0x4c50, { 0xad, 0x33, 0x40, 0x51, 0x22, 0xe8, 0xcb, 0x38 } }
+
+
#include "calendar/calendar.h"
// WInd00z stuff
diff --git a/plugins/!NotAdopted/name_day/namedayplug.aps b/plugins/!NotAdopted/name_day/namedayplug.aps
deleted file mode 100644
index 0367dd45e9..0000000000
--- a/plugins/!NotAdopted/name_day/namedayplug.aps
+++ /dev/null
Binary files differ
diff --git a/plugins/!NotAdopted/name_day/static_database.h b/plugins/!NotAdopted/name_day/static_database.h
index 9eabb913e5..f29582db4e 100644
--- a/plugins/!NotAdopted/name_day/static_database.h
+++ b/plugins/!NotAdopted/name_day/static_database.h
@@ -16,7 +16,7 @@ static char *czech_names[] = {
"Hynek", "Nela", "Blazej", "Jarmila", "Dobromila", "Vanda", "Veronika", "Milada",
"Apolena", "Mojmir", "Bozena", "Slavina", "Vinceslav", "Valentyn", "Jirina",
"Ljuba", "Miloslava", "Gizela", "Patrik", "Oldrich", "Lenka", "Petr", "Svatopluk",
- "Matej", "Liliana", "Dorota", "Alexandr", "Lumir", ".....",
+ "Matej", "Liliana", "Dorota", "Alexandr", "Lumir", "Horymir",
"Bedrich", "Anezka", "Kamil", "Stela", "Kazimir", "Miroslav", "Tomas", "Gabriela",
"Frantiska", "Viktorie", "Andela", "Rehor", "Ruzena", "Rut a Matylda", "Ida",
@@ -83,25 +83,56 @@ static char *slovak_names[] = {
"Tatiana", "Erik a Erika", "Blazej", "Veronika", "Agata", "Dorota", "Vanda", "Zoja", "Zdenko",
"Gabriela", "Dezider", "Perla", "Arpad", "Valentin", "Pravoslav", "Ida a Liana", "Miloslava", "Jaromir",
- "Vlasta", "Livia", "Eleonora", "Etela", "Roman a Romana", "Matej", "Frederik", "Viktor", "Alexander", "Zlatica", "....",
+ "Vlasta", "Livia", "Eleonora", "Etela", "Roman a Romana", "Matej", "Frederik", "Viktor", "Alexander",
+ "Zlatica", "....",
- "Albin", "Anezka", "Bohumil a Bohumila", "Kazimir", "Fridrich", "Radoslav", "Tomas", "Alan", "Frantiska", "Branislav", "Angela", "Gregor", "Vlastimil", "Matilda", "Svetlana", "Boleslav", "Lubica", "Eduard", "Jozef", "Vtazoslav", "Blahoslav", "Benadik", "Adrian", "Gabriel", "Marian", "Emanuel", "Alena", "Sona", "Miroslav", "Vieroslava", "Benjamin",
+ "Albin", "Anezka", "Bohumil a Bohumila", "Kazimir", "Fridrich", "Radoslav", "Tomas", "Alan", "Frantiska",
+ "Branislav", "Angela", "Gregor", "Vlastimil", "Matilda", "Svetlana", "Boleslav", "Lubica", "Eduard",
+ "Jozef", "Vtazoslav", "Blahoslav", "Benadik", "Adrian", "Gabriel", "Marian", "Emanuel", "Alena", "Sona",
+ "Miroslav", "Vieroslava", "Benjamin",
- "Hugo", "Zita", "Richard", "Izidor", "Miroslava", "Irena", "Zoltan", "Albert", "Milena", "Igor", "Julius", "Estera", "Ales", "Justina", "Fedor", "Dana a Danica", "Rudolf", "Valer", "Jela", "Marcel", "Ervin", "Slavomir", "Vojtech", "Juraj", "Marek", "Jaroslava", "Jaroslav", "Jarmila", "Lea", "Anastazia",
+ "Hugo", "Zita", "Richard", "Izidor", "Miroslava", "Irena", "Zoltan", "Albert", "Milena", "Igor",
+ "Julius", "Estera", "Ales", "Justina", "Fedor", "Dana a Danica", "Rudolf", "Valer", "Jela", "Marcel",
+ "Ervin", "Slavomir", "Vojtech", "Juraj", "Marek", "Jaroslava", "Jaroslav", "Jarmila", "Lea", "Anastazia",
- "Sviatok prace", "Zigmund", "Galina", "Florian", "Lesana", "Hermina", "Monika", "Ingrida", "Roland", "Viktoria", "Blazena", "Pankrac", "Servc", "Bonifac", "Zofia", "Svetozar", "Gizela", "Viola", "Gertruda", "Bernard", "Zina", "Julia a Juliana", "Zelmira", "Ela", "Urban", "Dusan", "Iveta", "Viliam", "Vilma", "Ferdinand", "Petronela",
- "Zaneta", "Xenia", "Karolina", "Lenka", "Laura", "Norbert", "Robert", "Medard", "Stanislava", "Margareta", "Dobroslava", "Zlatko", "Anton", "Vasil", "Vit", "Blanka", "Adolf", "Vratislav", "Alfred", "Valeria", "Alojz", "Paulina", "Sidonia", "Jan", "Tadeas", "Adriana", "Ladislav", "Beata", "Peter a Pavol a Petra", "Melania",
- "Diana", "Berta", "Miloslav", "Prokop", "Cyril a Metod", "Patrik a Patricia", "Oliver", "Ivan", "Lujza", "Amalia", "Milota", "Nina", "Margita", "Kamil", "Henrich", "Drahomir", "Bohuslav", "Kamila", "Dusana", "Ilja", "Daniel", "Magdalena", "Olga", "Vladimir", "Jakub", "Anna", "Bozena", "Kristof", "Marta", "Libusa", "Ignac",
+ "Sviatok prace", "Zigmund", "Galina", "Florian", "Lesana", "Hermina", "Monika", "Ingrida", "Roland",
+ "Viktoria", "Blazena", "Pankrac", "Servc", "Bonifac", "Zofia", "Svetozar", "Gizela", "Viola",
+ "Gertruda", "Bernard", "Zina", "Julia a Juliana", "Zelmira", "Ela", "Urban", "Dusan", "Iveta", "Viliam",
+ "Vilma", "Ferdinand", "Petronela",
+
+ "Zaneta", "Xenia", "Karolina", "Lenka", "Laura", "Norbert", "Robert", "Medard", "Stanislava",
+ "Margareta", "Dobroslava", "Zlatko", "Anton", "Vasil", "Vit", "Blanka", "Adolf", "Vratislav", "Alfred",
+ "Valeria", "Alojz", "Paulina", "Sidonia", "Jan", "Tadeas", "Adriana", "Ladislav", "Beata",
+ "Peter a Pavol a Petra", "Melania",
+
+ "Diana", "Berta", "Miloslav", "Prokop", "Cyril a Metod", "Patrik a Patricia", "Oliver", "Ivan", "Lujza",
+ "Amalia", "Milota", "Nina", "Margita", "Kamil", "Henrich", "Drahomir", "Bohuslav", "Kamila", "Dusana",
+ "Ilja", "Daniel", "Magdalena", "Olga", "Vladimir", "Jakub", "Anna", "Bozena", "Kristof", "Marta",
+ "Libusa", "Ignac",
- "Bozidara", "Gustav", "Jergus", "Dominik", "Hortenzia", "Jozefina", "Stefania", "Oskar", "Lubomira", "Vavrinec", "Zuzana", "Darina", "Lubomir", "Mojmir", "Marcela", "Leonard", "Milica", "Elena", "Lydia", "Anabela", "Jana", "Tichomir", "Filip", "Bartolomej", "Ludovit", "Samuel", "Silvia", "Augustin", "Nikola", "Ruzena", "Nora",
+ "Bozidara", "Gustav", "Jergus", "Dominik", "Hortenzia", "Jozefina", "Stefania", "Oskar", "Lubomira",
+ "Vavrinec", "Zuzana", "Darina", "Lubomir", "Mojmir", "Marcela", "Leonard", "Milica", "Elena", "Lydia",
+ "Anabela", "Jana", "Tichomir", "Filip", "Bartolomej", "Ludovit", "Samuel", "Silvia", "Augustin",
+ "Nikola", "Ruzena", "Nora",
- "Drahoslava", "Linda", "Belo", "Rozalia", "Regina", "Alica", "Marianna", "Miriama", "Martina", "Oleg", "Bystrik", "Maria", "Ctibor", "Ludomil", "Jolana", "Ludomila a Ludmila", "Olympia", "Eugenia", "Konstantin", "Luboslava", "Matus", "Moric", "Zdenka", "Lubos", "Vladislav", "Edita", "Cyprian", "Vaclav", "Michal", "Jarolim",
+ "Drahoslava", "Linda", "Belo", "Rozalia", "Regina", "Alica", "Marianna", "Miriama", "Martina", "Oleg",
+ "Bystrik", "Maria", "Ctibor", "Ludomil", "Jolana", "Ludomila a Ludmila", "Olympia", "Eugenia",
+ "Konstantin", "Luboslava", "Matus", "Moric", "Zdenka", "Lubos", "Vladislav", "Edita", "Cyprian",
+ "Vaclav", "Michal", "Jarolim",
- "Arnold", "Levoslav", "Stela", "Frantisek", "Viera", "Natalia", "Eliska", "Brigita", "Dionyz", "Slavomira", "Valentina", "Maximilian", "Koloman", "Boris", "Terezia", "Vladimira", "Hedviga", "Lukas", "Kristian", "Vendelin", "Ursula", "Sergej", "Alojza", "Kvetoslava", "Aurel", "Demeter", "Sabina", "Dobromila", "Klara", "Simona", "Aurelia",
+ "Arnold", "Levoslav", "Stela", "Frantisek", "Viera", "Natalia", "Eliska", "Brigita", "Dionyz",
+ "Slavomira", "Valentina", "Maximilian", "Koloman", "Boris", "Terezia", "Vladimira", "Hedviga", "Lukas",
+ "Kristian", "Vendelin", "Ursula", "Sergej", "Alojza", "Kvetoslava", "Aurel", "Demeter", "Sabina",
+ "Dobromila", "Klara", "Simona", "Aurelia",
- "Denisa", "Pamiatka zosnulych", "Hubert", "Karol", "Imrich", "Renata", "Rene", "Bohumir", "Teodor", "Tibor", "Martin", "Svatopluk", "Stanislav", "Irma", "Leopold", "Agnesa", "Klaudia", "Eugen", "Alzbeta", "Felix", "Elvira", "Cecilia", "Klement", "Emilia", "Katarina", "Kornel", "Milan", "Henrieta", "Vratko", "Ondrej a Andrej",
+ "Denisa", "Pamiatka zosnulych", "Hubert", "Karol", "Imrich", "Renata", "Rene", "Bohumir", "Teodor",
+ "Tibor", "Martin", "Svatopluk", "Stanislav", "Irma", "Leopold", "Agnesa", "Klaudia", "Eugen", "Alzbeta",
+ "Felix", "Elvira", "Cecilia", "Klement", "Emilia", "Katarina", "Kornel", "Milan", "Henrieta", "Vratko",
+ "Ondrej a Andrej",
- "Edmund", "Bibiana", "Oldrich", "Barbora", "Oto", "Mikulas", "Ambroz", "Marina", "Izabela", "Raduz", "Hilda", "Otilia", "Lucia", "Branislava", "Ivica", "Albina", "Kornelia", "Slava", "Judita", "Dagmara", "Bohdan", "Adela", "Nadezda", "Adam a Eva", "sviatok vianocny", "Stefan", "Filomena", "Ivana", "Milada",
+ "Edmund", "Bibiana", "Oldrich", "Barbora", "Oto", "Mikulas", "Ambroz", "Marina", "Izabela", "Raduz",
+ "Hilda", "Otilia", "Lucia", "Branislava", "Ivica", "Albina", "Kornelia", "Slava", "Judita", "Dagmara",
+ "Bohdan", "Adela", "Nadezda", "Adam a Eva", "sviatok vianocny", "Stefan", "Filomena", "Ivana", "Milada",
"David", "Silvester" };
/**
diff --git a/plugins/!NotAdopted/name_day/todo.txt b/plugins/!NotAdopted/name_day/todo.txt
new file mode 100644
index 0000000000..cdd0d944bc
--- /dev/null
+++ b/plugins/!NotAdopted/name_day/todo.txt
@@ -0,0 +1,23 @@
+ 1. Kontrola svátků o půlnoci a po spuštění
+ 2. Možnost výběru kalendáře
+ 4. Zobrazení ikony v seznamu kontaktů u lidí, kteří mají dnes svátek (něco jako ikona narozenin od jiných pluginů)
+ 5. Kalendář načítán z externího souboru? / možnost vlastního kalendáře z ini?
+ 6. Položka v menu pro zjištění, kdo má aktuálně svátek.
+ 7. Oznamování státních svátků a podobných významných dnů
+ 8. 64bit verze
+ 9. Oznamování popupem jméno kdo má dnes svátek nebo i všechny lidi kteří ho mají?
+10. Přepsat jména aby byly v kalendáři s diakritikou
+
+
+V hlavním menu položka Name day
+-> Zobrazit dnešní svátek (popup nebo dialog, dle nastavení použití)
+-> Vyhledat kontakty, kteří mají dnes svátek (a zobrazit s nima popup)
+ -- tyhle 2 akce by se asi měly dělat po spuštění a po půlnoci (zase dle nastavení)
+
+
+0.0.1.1
+
+
+0.0.1.0 beta
+- Ignorování diakritiky a velikosti písmen
+- Kontrolování i upraveného jména uloženého skrz UserInfoEx